找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 13662|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

基于一般模型的計(jì)數(shù)器的FPGA設(shè)計(jì)報(bào)告

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:346604 發(fā)表于 2018-6-7 00:26 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
電子科技大學(xué)實(shí)驗(yàn)文檔

名稱數(shù)字邏輯電路實(shí)驗(yàn)
實(shí)驗(yàn)名稱基于一般模型的計(jì)數(shù)器設(shè)計(jì)
指導(dǎo)教師鄭*
學(xué)生姓名鄭*
學(xué)生學(xué)號(hào)17011737
學(xué)生班級(jí)     17040324                             
學(xué)生專業(yè)電子信息類
實(shí)驗(yàn)日期     2018年6月
  • 實(shí)驗(yàn)?zāi)康?/font>
(1)熟悉計(jì)數(shù)器的一般模型
(2)掌握在QuartusII中實(shí)現(xiàn)計(jì)數(shù)器一般模型的方法。
(3)掌握自頂向下的電路設(shè)計(jì)方法。
(4)掌握使用FPGA實(shí)現(xiàn)時(shí)序電路的方法。
  • 實(shí)驗(yàn)儀器及器件

   序號(hào)


儀器或器件名稱


1


邏輯實(shí)驗(yàn)箱


2


PC機(jī)


3


QuartusII軟件


4


FPGA/CPLD開發(fā)板


5


USB  Blaster下載器

  • 實(shí)驗(yàn)原理
如果把計(jì)數(shù)器看作是輸出狀態(tài)隨時(shí)鐘信號(hào)不斷變化的狀態(tài)機(jī),可以把它抽象成如圖5.2.1所示的一般結(jié)構(gòu)模型。在這個(gè)模型里,包含一個(gè)根據(jù)現(xiàn)態(tài)求得次態(tài)的狀態(tài)譯碼器,和一個(gè)由時(shí)鐘信號(hào)同步控制的n位寄存器組。

如果把計(jì)數(shù)器看作是輸出狀態(tài)隨時(shí)鐘信號(hào)不斷變化的狀態(tài)機(jī),可以把它抽象成如圖5.2.1所示的一般結(jié)構(gòu)模型。在這個(gè)模型里,包含一個(gè)根據(jù)現(xiàn)態(tài)求得次態(tài)的狀態(tài)譯碼器,和一個(gè)由時(shí)鐘信號(hào)同步控制的n位寄存器組。
              圖5.2.1 計(jì)數(shù)器的一般模型
在QuartusII中,無(wú)論是實(shí)現(xiàn)寄存器組模塊,還是實(shí)現(xiàn)譯碼器模塊,都是比較容易的。例如實(shí)現(xiàn)一個(gè)模16計(jì)數(shù)器,根據(jù)第四章實(shí)驗(yàn)4.4廣義譯碼器的設(shè)計(jì)方法,可以寫Verilog HDL代碼實(shí)現(xiàn)。

首先創(chuàng)建新工程counter16,為新工程建立新文件夾counter16,命名工程和頂層文件名為counter16。點(diǎn)擊New|Verilog HDL File,新建文本文件,打開文本編輯窗口,鍵入Verilog HDL代碼,如圖5.2.2所示,生成CNT16元件。


圖5.2.2 狀態(tài)譯碼器

在這里,由于輸出狀態(tài)有4位,需要4個(gè)寄存器保存數(shù)據(jù),所以寄存器組模塊的電路圖如圖5.2.3所示。點(diǎn)擊New|Block Diagram/Schematic File,新建一個(gè)原理圖文件,命名為DFF4。在打開的圖形編輯窗口,放置4個(gè)dff元件,以及相應(yīng)的輸入輸出端口,連線。將所有的時(shí)鐘信號(hào)用統(tǒng)一的時(shí)鐘輸入信號(hào)CLK來(lái)控制,所有的清零信號(hào),用RST來(lái)統(tǒng)一控制。命名好輸入輸出端口,4位寄存器組模塊就繪制好了,生成一個(gè)DFF4的元件。當(dāng)然也可以調(diào)用元件庫(kù)中的74175等集成的寄存器宏模塊實(shí)現(xiàn)電路。

然后再新建一個(gè)原理圖文件,命名為counter16,為頂層文件,和工程同名。調(diào)用CNT16和DFF4元件,按照計(jì)數(shù)器一般結(jié)構(gòu)模型連接兩個(gè)元件。注意模塊間傳輸多位數(shù)據(jù)時(shí),點(diǎn)擊工具欄上的符號(hào),用總線進(jìn)行連接。加上相應(yīng)的輸入和輸出端口,繪制頂層電路,如圖5.2.4所示。

              圖5.2.3 DFF4寄存器組

     圖5.2.4 計(jì)數(shù)器一般模型原理圖

設(shè)計(jì)計(jì)數(shù)器時(shí),有時(shí)需要設(shè)計(jì)進(jìn)位輸出或者借位輸出信號(hào),因此增加一個(gè)進(jìn)位信號(hào),如下圖5.2.5所示。

             圖5.2.5 進(jìn)位輸出電路

電路原理圖繪制完成后,接下來(lái)是編譯、仿真和下載。仿真時(shí),盡可能測(cè)試所有的輸入情況。例如在RST信號(hào)初期,用鼠標(biāo)左鍵拖曳的方式選中一段,置為低電平(有效,清零),后面置為高電平(無(wú)效,正常計(jì)數(shù)),如圖5.2.6所示,以觀察清零信號(hào)對(duì)輸出的影響。

                圖5.2.6 對(duì)RST賦值

圖5.2.7是16進(jìn)制計(jì)數(shù)器的仿真結(jié)果。由圖可見,在計(jì)數(shù)狀態(tài)到達(dá)1110時(shí),進(jìn)位輸出有一個(gè)毛刺。這是因?yàn)樵谳敵鰻顟B(tài)從1011到1110變化時(shí),變化時(shí)間不一致,導(dǎo)致有1111的信號(hào)短暫發(fā)生,因而出現(xiàn)了進(jìn)位輸出端的毛刺。

             圖5.2.7  16進(jìn)制計(jì)數(shù)器仿真結(jié)果

在這個(gè)一般模型電路的基礎(chǔ)上,增加一個(gè)比較器模塊,可以實(shí)現(xiàn)反饋清零型的一般模型電路。例如實(shí)現(xiàn)一個(gè)模12計(jì)數(shù)器,電路模型圖如圖5.2.8所示。

          圖5.2.8 基于一般模型的反饋清零型電路模塊圖

在QuartusII中畫出原理圖,如圖5.2.9所示。其中,譯碼器模塊和寄存器組和之前電路一模一樣。比較器模塊,用來(lái)比較現(xiàn)態(tài)CS和反饋清零預(yù)置數(shù)A,如果兩者相等,則清零;不相等,正常計(jì)數(shù)。

         圖5.2.9 反饋清零的一般模型電路原理圖

比較器具體實(shí)現(xiàn)如下:

module comP(CS,A,R);  //定義模塊名,及輸入輸出端口

  input [3:0]CS,A;//   定義輸入端口,CS為現(xiàn)態(tài)輸出,A為預(yù)置清零狀態(tài)

  output R;//       定義輸出端口,R為清零標(biāo)志數(shù)

  reg R;//           輸出端口定義為reg類型

  always@(CS,A,R)//  always過(guò)程語(yǔ)句,當(dāng)CS、A、R發(fā)生變化,執(zhí)行后面的塊語(yǔ)句

    case(CS)   //  case條件語(yǔ)句,這里也可以用if語(yǔ)句實(shí)現(xiàn)同樣的功能

     A:R<=1'b1;  //  當(dāng)CS等于A,R被賦值為1,這時(shí)反饋回寄存器,使輸出清零

     default:R<=1'b0;// 當(dāng)CS不等于A,R被賦值為0,這時(shí)計(jì)數(shù)器正常計(jì)數(shù);

    endcase    //   case語(yǔ)句結(jié)束

endmodule      //   模塊結(jié)束

這個(gè)電路,可以通過(guò)修改清零預(yù)置數(shù)A,方便的更改計(jì)數(shù)模值,仿真結(jié)果如圖5.2.10所示。




          圖5.2.10 反饋清零型一般模型電路的仿真結(jié)果
  • 實(shí)驗(yàn)內(nèi)容
  • 基于一般結(jié)構(gòu)模型,設(shè)計(jì)一個(gè)10進(jìn)制加法計(jì)數(shù)器。使用QuartusII 完成創(chuàng)建工程、編輯電路圖、編譯,編輯波形文件仿真,記錄波形并說(shuō)明仿真結(jié)果,最后在FPGA上進(jìn)行硬件測(cè)試。
(2)根據(jù)計(jì)數(shù)器設(shè)計(jì)的一般模型,設(shè)計(jì)一個(gè)12進(jìn)制加減法可逆計(jì)數(shù)器。使用QuartusII 完成創(chuàng)建工程、編輯電路圖、編譯,編輯波形文件仿真,記錄波形并說(shuō)明仿真結(jié)果,最
FPGA上進(jìn)行硬件測(cè)試
  • 根據(jù)計(jì)數(shù)器設(shè)計(jì)的一般模型,設(shè)計(jì)初值可預(yù)置的計(jì)數(shù)器,變換預(yù)置數(shù)可使計(jì)數(shù)模值在2-20之間變化。使用QuartusII 完成創(chuàng)建工程、編輯電路圖、編譯,編輯波形文件仿真,記錄波形并說(shuō)明仿真結(jié)果,最后在FPGA上進(jìn)行硬件測(cè)試。

五.實(shí)驗(yàn)總結(jié)
本次實(shí)驗(yàn)先從最基本的一般模型設(shè)計(jì)計(jì)數(shù)器,按照一般模型的原理圖,先設(shè)計(jì)譯碼器對(duì)輸入信號(hào)進(jìn)行編碼輸出譯碼后的信號(hào)給寄存器存儲(chǔ)數(shù)據(jù)。再根據(jù)要求,設(shè)計(jì)出正確的進(jìn)位輸出。本次實(shí)驗(yàn)在預(yù)習(xí)的電路原理圖設(shè)計(jì)與用語(yǔ)言設(shè)計(jì)譯碼器中出現(xiàn)不少問題。后不斷查閱資料,理解完畢,且在設(shè)計(jì)初值可預(yù)調(diào)的計(jì)數(shù)器實(shí)驗(yàn)中,由于采取電路圖的方式難以成功實(shí)現(xiàn),故在此次實(shí)驗(yàn)設(shè)計(jì)中采取了以HDL語(yǔ)言的形式進(jìn)行編譯及仿真,并成功實(shí)現(xiàn)。而在實(shí)現(xiàn)引腳導(dǎo)入時(shí)未進(jìn)行分頻,但在仿真中已成功實(shí)現(xiàn),且在位數(shù)上與理論設(shè)想相同。經(jīng)過(guò)這次實(shí)驗(yàn),我熟悉計(jì)數(shù)器的一般模型掌握在QuartusII中實(shí)現(xiàn)計(jì)數(shù)器一般模型的方法。掌握自頂向下的電路設(shè)計(jì)方法。掌握使用FPGA實(shí)現(xiàn)時(shí)序電路的方法。
六.思考題
verilog設(shè)計(jì)中,給時(shí)序電路清0有兩種不同方法,它們是什么?如何實(shí)現(xiàn)?
同步復(fù)位和異步復(fù)位。同步復(fù)位是指與時(shí)鐘同步,當(dāng)復(fù)位信號(hào)有效之后,出現(xiàn)時(shí)鐘有效邊沿時(shí)才對(duì)電路模塊進(jìn)行復(fù)位操作;而異步復(fù)位與時(shí)鐘信號(hào)無(wú)關(guān),只要復(fù)位信號(hào)有效,無(wú)論這時(shí)時(shí)鐘信號(hào)是什么樣,都對(duì)電路模塊進(jìn)行復(fù)位操作。


以上圖文的Word格式文檔下載(內(nèi)容和本網(wǎng)頁(yè)上的一模一樣,方便大家保存):
鄭雪峰 周二678節(jié) 17011737 實(shí)驗(yàn)八.docx (3.15 MB, 下載次數(shù): 98)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂2 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:348132 發(fā)表于 2018-6-9 12:39 | 只看該作者
杭電的吧
回復(fù)

使用道具 舉報(bào)

板凳
ID:448509 發(fā)表于 2018-12-18 13:19 | 只看該作者
我也是杭電的,小哥哥能不能發(fā)一份文檔給我,這個(gè)圖連線看不清,在線等,急!謝謝!
回復(fù)

使用道具 舉報(bào)

地板
ID:1056094 發(fā)表于 2022-12-7 11:19 | 只看該作者
不錯(cuò),就是圖片不夠清晰

回復(fù)

使用道具 舉報(bào)

5#
ID:1081340 發(fā)表于 2023-6-1 16:01 | 只看該作者
圖片太不清楚啦
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表