名稱:串行進(jìn)位和并行進(jìn)位加法器Verilog代碼Vivado仿真
軟件:Vivado
語(yǔ)言:Verilog
代碼功能:
回顧1位全加器的設(shè)計(jì),自學(xué)串行進(jìn)位和并行進(jìn)位加法器。在此基礎(chǔ)之上設(shè)計(jì)串行進(jìn)位和并行進(jìn)位的32位加法器,使用 Verilog實(shí)現(xiàn)該設(shè)計(jì),并寫(xiě)出相應(yīng)的 testbench對(duì)其進(jìn)行測(cè)試。
請(qǐng)觀察并定量分析不同種加法器的計(jì)算延時(shí)情況。(參考資料:課本5.2.1章:加法器)
要求提交實(shí)驗(yàn)報(bào)告,包括:
1.兩種加法器的 verilog代碼。
2.測(cè)試數(shù)據(jù)及輸出結(jié)果。
3.計(jì)算延時(shí)的分析與討論。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
演示視頻:
設(shè)計(jì)文檔:
串行加法器
1. 工程文件
2. 程序文件
3. 程序編譯
4. Testbench
5. 時(shí)序仿真圖
6. 延時(shí)分析
并行加法器
1. 工程文件
2. 程序文件
3. 程序編譯
4. Testbench
5. 時(shí)序仿真圖
6. 延時(shí)分析
可見(jiàn)并行的延遲小于串行
部分代碼展示:
//將4個(gè)加法器并聯(lián)組成16位并行加法器 module?adder_16(adder_A,?adder_B,?CIN,?COUT,?S); ???input?[15:0]??adder_A;//輸入A ???input?[15:0]??adder_B;//輸入B ???input?????????CIN;//輸入進(jìn)位 ??? ???output????????COUT;//輸出進(jìn)位 ???output?[15:0]?S;//輸出和 ??? ???//定義中間進(jìn)位 ???wire??????????CIN_1; ???wire??????????CIN_2; ???wire??????????CIN_3; ??? ???wire??????????COUT_signal; ???wire?[15:0]???S_signal; ??? ???assign?COUT?=?COUT_signal;//輸出進(jìn)位 ???assign?S?=?S_signal;//輸出和 ??? ???//調(diào)用4位加法器 ???adder_4bit?i1_adder_4bit ???( ???.A(adder_A[3:0]),? ???.B(adder_B[3:0]),? ???.CIN(CIN),? ???.COUT(CIN_1),? ???.S(S_signal[3:0]) ???); ??? ???//調(diào)用4位加法器 ???adder_4bit?i2_adder_4bit ???( ???.A(adder_A[7:4]),? ???.B(adder_B[7:4]),? ???.CIN(CIN_1),? ???.COUT(CIN_2),? ???.S(S_signal[7:4]) ???); ??? ???//調(diào)用4位加法器 ???adder_4bit?i3_adder_4bit ???( ???.A(adder_A[11:8]),? ???.B(adder_B[11:8]),? ???.CIN(CIN_2),? ???.COUT(CIN_3),? ???.S(S_signal[11:8]) ???); ??? ???//調(diào)用4位加法器 ???adder_4bit?i4_adder_4bit ???( ???.A(adder_A[15:12]),? ???.B(adder_B[15:12]),? ???.CIN(CIN_3),? ???.COUT(COUT_signal),? ???.S(S_signal[15:12]) ???); ??? endmodule
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=510