《FPGA觸發(fā)器與計(jì)數(shù)器實(shí)驗(yàn)報(bào)告》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《FPGA觸發(fā)器與計(jì)數(shù)器實(shí)驗(yàn)報(bào)告(12頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、上海電力學(xué)院
FPGA應(yīng)用開(kāi)發(fā)實(shí)驗(yàn)報(bào)告
實(shí)驗(yàn)名稱(chēng): 觸發(fā)器與計(jì)數(shù)器
專(zhuān) 業(yè): 電子科學(xué)與技術(shù)
姓 名:
班 級(jí):
學(xué) 號(hào):
1.觸發(fā)器功能的模擬實(shí)現(xiàn)
實(shí)驗(yàn)?zāi)康模?
1. 掌握觸發(fā)器功能的測(cè)試方法。
2. 掌握基本RS觸發(fā)器的組成及工作原理。
3. 掌握集成JK觸發(fā)器和D觸發(fā)器的邏輯功能及觸發(fā)方式。
2、4. 掌握幾種主要觸發(fā)器之間相互轉(zhuǎn)換的方法。
5. 通過(guò)實(shí)驗(yàn),體會(huì)EPLD芯片的高集成度和多I/O口。
實(shí)驗(yàn)說(shuō)明:
將基本RS觸發(fā)器,同步RS觸發(fā)器,集成J-K觸發(fā)器,D觸發(fā)器同時(shí)集一個(gè)FPGA芯片中模擬其功能,并研究其相互轉(zhuǎn)化的方法。
實(shí)驗(yàn)的具體實(shí)現(xiàn)要連線(xiàn)測(cè)試,實(shí)驗(yàn)原理如圖所示:
2.計(jì)數(shù)器
在VHDL中,可以用Q<=Q+1簡(jiǎn)單地實(shí)現(xiàn)一個(gè)計(jì)數(shù)器,也可以用LPM來(lái)實(shí)現(xiàn)。下面分別對(duì)這兩種方法進(jìn)行介紹。
方法一:
第1步:新建一個(gè)Quartus項(xiàng)目。
第2步:建立一個(gè)VHDL文件,實(shí)現(xiàn)一個(gè)8位計(jì)數(shù)器。計(jì)數(shù)器從“00000000”開(kāi)始計(jì)到“11111111”
3、,計(jì)數(shù)器的模是256。計(jì)數(shù)器模塊還需要包含一個(gè)時(shí)鐘clock、一個(gè)使能信號(hào)en、一個(gè)異步清0信號(hào)aclr和一個(gè)同步數(shù)據(jù)加載信號(hào)sload。模塊符號(hào)如下圖所示:
第3步:VHDL代碼如下:
第4步:將VHDL文件另存為counter_8bit.vhd,并將其設(shè)定為項(xiàng)目的最頂層文件,再進(jìn)行語(yǔ)法檢查。
第5步:語(yǔ)法檢查通過(guò)以后,用KEY[0]表示clock,SW[7..0]表示data,SW[8~10]分別表示en、sload和aclr;LEDR[7..0]表示q。
第6步:引腳分配完成后,編譯并下載。
第7步:修改上述代碼,把計(jì)數(shù)器的模更改為100,應(yīng)如何操作。
4、
模為100的計(jì)數(shù)器,VHDL代碼如下:
方法二:使用LPM實(shí)現(xiàn)8位計(jì)數(shù)器。
LPM是指參數(shù)化功能模塊,用LPM可以非常方便快捷地實(shí)現(xiàn)一個(gè)計(jì)數(shù)器。
第1步:選擇Tools->MegaWizard Plug-In Manager命令,打開(kāi)如下圖所示的對(duì)話(huà)框。
第2步:直接單擊Next按鈕,出現(xiàn)如下圖所示的對(duì)話(huà)框。如圖所示,在左邊的選擇框中選擇“LPM_COUNTER”,在輸出文件類(lèi)型單選框中選中“VHDL”,并輸入文件名為“counter_lpm”。
第3步:完成設(shè)置后直接單擊Next按鈕,打開(kāi)如下圖所示的對(duì)話(huà)框。在輸出位數(shù)的下拉框中選擇“8 bits”,
5、在計(jì)數(shù)方向的單選框中選中“Up only”。這個(gè)設(shè)置表示生成的計(jì)數(shù)器是8位加法計(jì)數(shù)器。
第4步:獨(dú)立設(shè)計(jì)模為七的計(jì)數(shù)器
第4步:?jiǎn)螕鬘ext按鈕后,出現(xiàn)如下圖所示的對(duì)話(huà)框。在該對(duì)話(huà)框中選擇添加額外的端口,在這里選中“Count Enable”選項(xiàng),表示添加了一個(gè)計(jì)數(shù)使能端口,此時(shí)在左邊的圖形符號(hào)中可以看到多了一個(gè)“cnt_en”的引腳。
第5步:?jiǎn)螕鬘ext按鈕,打開(kāi)如下圖所示的下一個(gè)對(duì)話(huà)框。在同步輸入(Synchronous inputs)處選擇“Load”,在異步輸入(Asynchronous inputs)處選擇“Clear”。表示在計(jì)數(shù)器中添加了一個(gè)同步置數(shù)端
6、和一個(gè)異步清0端,在左邊的圖形符號(hào)中可以看到又添加了一個(gè)aclr、sload和用于置數(shù)用的data[7..0]。
第6步:繼續(xù)單擊Next按鈕直到結(jié)束為止。到此即完成了一個(gè)8位計(jì)數(shù)器的設(shè)計(jì),同時(shí)生成了一個(gè)VHDL文件此couter_lpm.vhd。
第7步:接著需要將生成的couter_lpm.vhd文件添加到項(xiàng)目中,如下圖所示,在項(xiàng)目瀏覽器窗口中,右擊“Device Design Files”,在下拉菜單中選擇“Add/Remove Files in Project”命令。
第8步:選擇添加文件命令后,打開(kāi)如下圖所示的對(duì)話(huà)框。在“File name”處可直接輸入將
7、添加的文件名,或通過(guò)點(diǎn)擊右邊的 瀏覽按鈕,打開(kāi)瀏覽窗口,選擇需要添加的文件。然后點(diǎn)擊右邊的Add按鈕,即完成。
第9步:將couter_lpm.vhd設(shè)定為頂層設(shè)計(jì)文件,進(jìn)行語(yǔ)法檢查后,執(zhí)行與方法一相同的操作即可。
3.時(shí)鐘電路
利用上面設(shè)計(jì)好的計(jì)數(shù)器和分頻器設(shè)計(jì)一個(gè)實(shí)時(shí)的時(shí)鐘。一共需要1個(gè)模24計(jì)數(shù)器、2個(gè)模6計(jì)數(shù)器、2個(gè)模10計(jì)數(shù)器、一個(gè)生成1Hz的分頻器和6個(gè)數(shù)碼管解碼器。最終用HEX5~HEX4顯示小時(shí)(0~23),用HEX3~HEX2顯示分鐘(0~59),用HEX1~HEX0顯示秒鐘(0~59)。 具體步驟如下:
第1步:新建一個(gè)QuartusII工程,
8、將其命名為Clockcircut。
第2步:建立各功能模塊(計(jì)數(shù)器、分頻器及7段數(shù)碼管)的VHDL文件,并分別將它們?cè)O(shè)置成頂層文件,進(jìn)行編譯和仿真。
(1)模為24的計(jì)數(shù)器VHDL代碼:
(2)模為6的計(jì)數(shù)器VHDL代碼:
(3)模為10的計(jì)數(shù)器VHDL代碼:
(4)7段數(shù)碼管的VHDL代碼:
(5)50M分頻的分頻器VHDL代碼:
第3步:語(yǔ)法檢查通過(guò)后直接生成符號(hào)。
第4步:采用圖形編輯器,將幾個(gè)模塊連接起來(lái)構(gòu)成一個(gè)時(shí)鐘。
第5步:將原理圖保存為clockcircuit.bdf,并進(jìn)行語(yǔ)法分析,確定無(wú)誤后在進(jìn)行引腳分配。
第6步:鎖定引腳以后,對(duì)項(xiàng)目進(jìn)行全編譯,然后下載到開(kāi)發(fā)板上觀察實(shí)驗(yàn)現(xiàn)象。