• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

兩個4位BCD數(shù)字求和Verilog代碼vivado ego1開發(fā)板

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

2-231231104H3438.doc

共1個文件

名稱:兩個4位BCD數(shù)字求和Verilog代碼vivado? ego1開發(fā)板

軟件:vivado

語言:Verilog

代碼功能:

兩個4位BCD數(shù)字求和

兩個4位BCD數(shù)字相加,并在Artix-7演示板上的7段LED顯示屏上顯示結(jié)果。

設(shè)計應(yīng)使用sw(3:0)作為一個輸入BCD值,其中sw(3)是最高有效位,而將sw(7:4)作為另一個BCD值,其中sw(7)是最高有效位。

設(shè)計BCD加法器,使sw(8)為進位輸入。

在演示板上的兩個四位數(shù)7段LED顯示屏的最右位數(shù)上顯示BCD總和。其他七個數(shù)字應(yīng)關(guān)閉。使用十進制點數(shù)(DP)顯示BCD加法的進位,當兩個4位BCD輸入和進位之和導致從BCD加法進位時,打開小數(shù)點。

演示板手冊記錄了如何使用可用的段來實現(xiàn)數(shù)字1-9。所有未使用的4位代碼應(yīng)導致空白顯示(所有LED段均熄滅)。

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

本代碼已在ego1開發(fā)板驗證,ego1開發(fā)板如下,其他開發(fā)板可以修改管腳適配:

ego1開發(fā)板.png

演示視頻:

設(shè)計文檔:

1. 工程文件

2. 程序文件

3. 程序編譯

4. Testbench

5. 仿真圖

部分代碼展示:

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
???USE?ieee.std_logic_unsigned.all;
ENTITY?BCD_adder?IS
???PORT?(
??????sw???????:?IN?STD_LOGIC_VECTOR(8?DOWNTO?0);--輸入SW
??????segment??:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0);--高到低位分別表示數(shù)碼管的gfedcba
??????dp???????:?OUT?STD_LOGIC;--數(shù)碼管小數(shù)點
??????an???????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--數(shù)碼管位選,低電平亮
???);
END?BCD_adder;
ARCHITECTURE?behave?OF?BCD_adder?IS
???
???SIGNAL?A???:?STD_LOGIC_VECTOR(4?DOWNTO?0);
???SIGNAL?B???:?STD_LOGIC_VECTOR(4?DOWNTO?0);
???SIGNAL?cin?:?STD_LOGIC_VECTOR(4?DOWNTO?0);
???
???SIGNAL?sum?:?STD_LOGIC_VECTOR(4?DOWNTO?0);
???SIGNAL?bcd_sum?:?STD_LOGIC_VECTOR(4?DOWNTO?0);
BEGIN
???an?<=?"11111110";--數(shù)碼管位選,低電平亮
???A?<='0'?&?sw(3?DOWNTO?0);--加數(shù)A
???B?<='0'?&?sw(7?DOWNTO?4);--加數(shù)B
???cin?<="0000"?&?sw(8);--輸入進位
???
???sum?<=?A?+?B?+?cin;--計算和
????PROCESS?(sum)
???????BEGIN?
??????????if(sum>="01010")then--判斷是否大于10
???????????????dp?<=?'1';--輸出進位
???????????????bcd_sum?<=?sum-"01010";--輸出BCD和
??????????else
???????????????dp?<=?'0';--不輸出進位
???????????????bcd_sum?<=?sum;--輸出BCD和??????
??????????end?if;??????
??????END?PROCESS;
??????
???--segment是數(shù)碼管段選--高到低位分別表示數(shù)碼管的gfedcba
???PROCESS?(bcd_sum)
???BEGIN
??????CASE?bcd_sum(3?DOWNTO?0)?IS--和
?????????WHEN?"0000"?=>
????????????segment?<=?"0111111";--0對應(yīng)的數(shù)碼管gfedcba碼值
?????????WHEN?"0001"?=>
????????????segment?<=?"0000110";--1對應(yīng)的數(shù)碼管gfedcba碼值
?????????WHEN?"0010"?=>
????????????segment?<=?"1011011";--2對應(yīng)的數(shù)碼管gfedcba碼值
?????????WHEN?"0011"?=>
????????????segment?<=?"1001111";--3對應(yīng)的數(shù)碼管gfedcba碼值
?????????WHEN?"0100"?=>
????????????segment?<=?"1100110";--4對應(yīng)的數(shù)碼管gfedcba碼值
?????????WHEN?"0101"?=>
????????????segment?<=?"1101101";--5對應(yīng)的數(shù)碼管gfedcba碼值
?????????WHEN?"0110"?=>
????????????segment?<=?"1111101";--6對應(yīng)的數(shù)碼管gfedcba碼值
?????????WHEN?"0111"?=>
????????????segment?<=?"0000111";--7對應(yīng)的數(shù)碼管gfedcba碼值
?????????WHEN?"1000"?=>
????????????segment?<=?"1111111";--8對應(yīng)的數(shù)碼管gfedcba碼值
?????????WHEN?"1001"?=>
????????????segment?<=?"1101111";--9對應(yīng)的數(shù)碼管gfedcba碼值
?????????WHEN?OTHERS?=>
??????END?CASE;
???END?PROCESS;
???
???
END?behave;

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

  • 2-231231104H3438.doc
    下載

相關(guān)推薦