成人免费无码不卡毛片,亚洲AⅤ无码精品一区二区三区,国产尤物精品视频,久久精品日本亚洲,欧美成人一区三区无码乱码A片,中文字日产幕码一区二区色哟哟,亞洲日韓中文字幕網AV

  • 方案介紹
    • 1、課題任務(wù)及要求
    • 2、設(shè)計內(nèi)容
    • 3、設(shè)計及實現(xiàn)方法
    • 4、調(diào)試及運行結(jié)果
    • 5、設(shè)計總結(jié)
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

共陰數(shù)碼管顯示設(shè)計VHDL代碼Quartus仿真

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

2-250513192S3205.doc

共1個文件

名稱:利用VHDL語言,實現(xiàn)0~8090任意進制8421BCD計數(shù)譯碼顯示電路,并將計數(shù)器輸出的8421BCD進行共陰數(shù)碼管顯示設(shè)計VHDL代碼Quartus仿真

軟件:Quartus

語言:VHDL

代碼功能:

1、計數(shù)器具有同步置數(shù)功能、異步清零功能,用VHD實現(xiàn)計數(shù)邏輯,并闡述設(shè)計原理,給出關(guān)鍵block diagram設(shè)計框圖。

2、8421BCD碼7段譯碼部分可以參見74LS48功能,用VHDL實現(xiàn)譯碼邏輯,并闡述設(shè)計原理,給出關(guān)鍵 block diagram設(shè)計框圖。

3、譯碼輸岀后驅(qū)動的數(shù)碼管為共陰極數(shù)碼管,闡述電路原理,給出相應(yīng)編碼方式。

報告要求

(1)按要求的格式書寫,所有內(nèi)容一律打印、封面要求統(tǒng)一。

(2)報告內(nèi)容包括設(shè)計過程、軟件仿真的結(jié)果及分析。

(3)報告中要有整體電路原理圖、各模塊原理圖。

(4)軟件仿真包括各個模塊的仿真和整體電路的仿真。

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

設(shè)計文檔:

任意進制8421BCD計數(shù)譯碼顯示

1、課題任務(wù)及要求

1.1課題任務(wù)

利用VHDL語言,實現(xiàn)0~8090任意進制8421BCD計數(shù)譯碼顯示電路,并將計數(shù)器輸出的8421BCD進行共陰極數(shù)碼管顯示。要求:

1. 計數(shù)器具有同步置數(shù)功能、異步清零功能,利用VHDL實現(xiàn)計數(shù)邏輯,并闡述設(shè)計原理,給出關(guān)鍵block diagram設(shè)計框圖。

2. 8421BCD碼譯碼部分可以參見74LS48功能,用VHDL實現(xiàn)譯碼邏輯,并闡述設(shè)計原理,給出關(guān)鍵block diagram設(shè)計框圖。

3. 譯碼輸出后驅(qū)動的數(shù)碼管為共陰極數(shù)碼管,闡述電路原理,給出響應(yīng)的編碼方式。

1.2課題要求

課題設(shè)計實現(xiàn)的功能指標(biāo)為。

●設(shè)計指標(biāo)一:計數(shù)器具有同步置數(shù)功能、異步清零功能

●設(shè)計指標(biāo)二:使用8421BCD計數(shù)器

●設(shè)計指標(biāo)三:譯碼輸出后驅(qū)動的數(shù)碼管為共陰極數(shù)碼管

2、設(shè)計內(nèi)容

系統(tǒng)總體設(shè)計思路為采用分模塊設(shè)計,模塊分為計數(shù)模塊、數(shù)碼管顯示模塊及頂層模塊,具體模塊功能具體介紹如下。

2.1 設(shè)計總體功能簡介

系統(tǒng)總體設(shè)計思路為采用分模塊設(shè)計,模塊分為計數(shù)模塊、數(shù)碼管顯示模塊及頂層模塊,采用自頂向下的設(shè)計思想??傮w功能為實現(xiàn)0~8090任意進制8421BCD計數(shù)譯碼顯示電路,并將計數(shù)器輸出的8421BCD進行共陰極數(shù)碼管顯示

2.2 頂層模塊功能

頂層模塊實現(xiàn)將計數(shù)模塊和顯示模塊連接的功能,頂層模塊如下圖所示

上圖中,bcd_counter為計數(shù)模塊,display為顯示模塊。頂層輸入端口有:

Clk:時鐘信號

Rst_p:系統(tǒng)復(fù)位信號,高電平有效

Load:同步置數(shù)使能信號

Data_in[15:0]:同步置數(shù)的數(shù)據(jù),采用8421BCD編碼

頂層輸出端口為4個7段數(shù)碼管信號:

HEX0[6..0]:數(shù)碼管0

HEX1[6..0]:數(shù)碼管1

HEX2[6..0]:數(shù)碼管2

HEX3[6..0]:數(shù)碼管3

2.3 計數(shù)模塊功能

計數(shù)模塊如下圖所示:

輸入端口有:

Clk:時鐘信號

Rst_p:系統(tǒng)復(fù)位信號,高電平有效

Load:同步置數(shù)使能信號

Data_in[15:0]:同步置數(shù)的數(shù)據(jù),采用8421BCD編碼

輸出端口為計數(shù)值:

Data_out[15..0]:計數(shù)值輸出采用8421BCD編碼

該模塊實現(xiàn)0~8090任意進制8421BCD計數(shù)器的功能,計數(shù)器具有同步置數(shù)功能、異步清零功能

2.4 顯示模塊功能

顯示模塊如下圖所示:

輸入端口有:

Clk:時鐘信號

Data[15:0]:計數(shù)值,采用8421BCD編碼

輸出端口為4個7段數(shù)碼管信號:

HEX0[6..0]:數(shù)碼管0

HEX1[6..0]:數(shù)碼管1

HEX2[6..0]:數(shù)碼管2

HEX3[6..0]:數(shù)碼管3

該模塊實現(xiàn)8421BCD碼譯碼功能,譯碼輸出后驅(qū)動的數(shù)碼管為共陰極數(shù)碼管。

3、設(shè)計及實現(xiàn)方法

3.1 計時模塊設(shè)計方法

計時模塊實現(xiàn)0~8090任意進制8421BCD計數(shù)器的功能,計數(shù)器具有同步置數(shù)功能、異步清零功能。主要代碼如下:

上述代碼中,為實現(xiàn)任意進制的功能,定義了一個信號MOD_NUM信號,將該值設(shè)置為多少就是多少進制。下面process進制實現(xiàn)具體任意進制BCD碼計數(shù)器的功能,定義了一個BCD編碼的信號為count。

首先,實現(xiàn)異步清零的功能,當(dāng)rst信號為1時,輸出count為0,然后實現(xiàn)同步置數(shù)功能,當(dāng)load信號為1時,將輸入的data_in賦值給count。

最后就是實現(xiàn)BCD碼計數(shù)器功能,首先判斷是否計數(shù)到999,若是,則千位加1,否則繼續(xù)判斷是否計數(shù)到99,若是,則百位加1;否則繼續(xù)判斷是否計數(shù)到9,若是,則十位加1。否則只需要個位加1。

Count為BCD編碼,其15~12位表示千位,11~8表示百位,7~4表示十位,3~0表示個位。

3.2 顯示模塊設(shè)計方法

顯示模塊實現(xiàn)8421BCD碼譯碼功能,譯碼輸出后驅(qū)動的數(shù)碼管為共陰極數(shù)碼管。其中單個數(shù)碼管顯示代碼如下:

數(shù)碼管顯示模塊用于控制數(shù)碼管將計數(shù)值顯示出來。使用7段數(shù)碼管顯示,每個數(shù)碼管輸入為7位,對應(yīng)下圖中的abcdefg7段,數(shù)碼管為共陰極,當(dāng)輸入1時對應(yīng)的段點亮,當(dāng)輸入為0時,對應(yīng)的段滅。

根據(jù)上圖可以觀察到,若要顯示數(shù)字0,G滅,ABCDEF亮,如果是共陽極數(shù)碼管也就是對應(yīng)編碼為“1000000”,共陰極數(shù)碼管則正好相反,故可以寫成not “1000000”,也就是“0111111”,其中從左到右依次對應(yīng)GFEDCBA。以此類推可以得到0~9的所有編碼。

4、調(diào)試及運行結(jié)果

4.1 計時模塊調(diào)試及運行結(jié)果

對計時模塊進行單獨仿真,仿真圖如下圖所示(為便于觀察,設(shè)置進制為34)。

上圖中,rst為異步清零信號,圖中可以看到,當(dāng)rst信號為1時,輸出data_out立馬清零。圖中l(wèi)oad為置位信號,圖中可以看到,load信號為高時,輸出data_out為data_in得值。

當(dāng)rst和load信號均無效時,計數(shù)器按時鐘正常計數(shù),可以看到,當(dāng)計數(shù)到34后,計數(shù)器清零,重新開始計數(shù),故進制正確。

4.2 顯示模塊調(diào)試及運行結(jié)果

對顯示模塊進行單獨仿真,仿真圖如下圖所示(為便于觀察,設(shè)置計數(shù)器計數(shù)0~9)。

上圖中,計數(shù)值輸入為0000~0009,其中HEX0顯示個位,也就是0~9,HEX1~3均顯示0。根據(jù)前面關(guān)于數(shù)碼管的介紹可知,0對應(yīng)的編碼為0111111,1對應(yīng)的編碼為0000110,以此類推可以做到仿真圖0~9編碼具正確。

4.3 系統(tǒng)總體調(diào)試及運行結(jié)果

對系統(tǒng)進行總體仿真,仿真圖如下圖所示:

上圖可以看到,整體仿真圖的仿真結(jié)果相當(dāng)于將計數(shù)模塊和顯示模塊進行合并顯示,最終輸出為HEX0~3的編碼值。可以看到,當(dāng)異步清零時,輸出的編碼值為0000,當(dāng)同步置數(shù)時,輸出的編碼值為0034,其他情況下為遞增計數(shù)。

5、設(shè)計總結(jié)

5.1設(shè)計中的問題、原因分析及解決方法

設(shè)計中一開始沒有正確理解BCD編碼的含義,導(dǎo)致使用了通常的二進制編碼,這種編碼的優(yōu)點是代碼簡單,計數(shù)器較容易實現(xiàn),但是缺點是不能直接按位分離出千位,百位,十位個位,導(dǎo)致時數(shù)碼管顯示不正確,后續(xù)改進為8421BCD編碼,雖然計數(shù)器代碼設(shè)計相對復(fù)雜一點,但是對于數(shù)碼管顯示部分就可以按位分離出千位,百位,十位和個位。

5.2設(shè)計方案的優(yōu)缺點

本設(shè)計方案的優(yōu)點是結(jié)構(gòu)清晰,采用分模塊設(shè)計方法,各個模塊功能比較明確,可以分模塊仿真,易于調(diào)試;缺點的話在于任意進制的設(shè)計在計數(shù)模塊內(nèi)通過一個參數(shù)進行定義,當(dāng)要修改進制時,需要修改該模塊內(nèi)的參數(shù),不是很靈活。

5.3心得體會

通過這次設(shè)計,我加深了對VHDL代碼的理解,熟悉了quartus軟件的編碼和仿真操作,并且對8421BCD碼的作用也有了更深刻的認(rèn)識。通過這次實驗,我對我使用VHDL和EDA工具有了一定的提高,后續(xù)有其他功能設(shè)計的話可以更加容易的上手,也鍛煉了自己發(fā)現(xiàn)問題和解決問題的能力,為今后打下堅固基礎(chǔ)。

部分代碼展示:

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
ENTITY?display?IS
???PORT?(
??????clk???:?IN?STD_LOGIC;
??????data??:?IN?STD_LOGIC_VECTOR(15?DOWNTO?0);
??????HEX0??:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0);
??????HEX1??:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0);
??????HEX2??:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0);
??????HEX3??:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0)
???);
END?display;
ARCHITECTURE?RTL?OF?display?IS
BEGIN
???
???PROCESS?(clk)
???BEGIN
??????IF?(clk'EVENT?AND?clk?=?'1')?THEN
?????????CASE?data(3?DOWNTO?0)?IS
????????????WHEN?"0000"?=>
???????????????HEX0?
???????????????HEX0?
???????????????HEX0?
???????????????HEX0?
???????????????HEX0?
???????????????HEX0?
???????????????HEX0?
???????????????HEX0?
???????????????HEX0?
???????????????HEX0?
?????????END?CASE;
??????END?IF;
???END?PROCESS;
???
???
???PROCESS?(clk)
???BEGIN
??????IF?(clk'EVENT?AND?clk?=?'1')?THEN
?????????CASE?data(7?DOWNTO?4)?IS
????????????WHEN?"0000"?=>
???????????????HEX1?
???????????????HEX1?
???????????????HEX1?
???????????????HEX1?
???????????????HEX1?
???????????????HEX1?
???????????????HEX1?
???????????????HEX1?
???????????????HEX1?
???????????????HEX1?
?????????END?CASE;
??????END?IF;
???END?PROCESS;
???
???
???PROCESS?(clk)
???BEGIN
??????IF?(clk'EVENT?AND?clk?=?'1')?THEN
?????????CASE?data(11?DOWNTO?8)?IS
????????????WHEN?"0000"?=>
???????????????HEX2?
???????????????HEX2?
???????????????HEX2?
???????????????HEX2?
???????????????HEX2?
???????????????HEX2?
???????????????HEX2?
???????????????HEX2?
???????????????HEX2?
???????????????HEX2?
?????????END?CASE;
??????END?IF;
???END?PROCESS;

點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1518

  • 2-250513192S3205.doc
    下載

相關(guān)推薦

靖安县| 太白县| 奉节县| 南和县| 全州县| 永德县| 西乌珠穆沁旗| 石景山区| 松潘县| 曲沃县| 赤峰市| 来安县| 双流县| 沧州市| 石河子市| 无极县| 镇雄县| 新巴尔虎右旗| 蕲春县| 佛学| 靖边县| 金秀| 栾川县| 佛坪县| 南澳县| 句容市| 体育| 通辽市| 景德镇市| 厦门市| 聂荣县| 报价| 顺平县| 南昌县| 宁化县| 通城县| 洪洞县| 太原市| 灵璧县| 罗山县| 长泰县|