大家好!今天給大家分享的是4位全加器的代碼以及仿真程序。俗話說:“千里之行,始于足下?!睂τ诔鯇W(xué)者來說, 加法器是fpga初學(xué)者入門必須掌握的內(nèi)容。我們很多朋友在入門時囫圇吞棗,一些基礎(chǔ)的東西沒有掌握好,導(dǎo)致后面在做大型項目的時候漏洞百出。因此,大家在開始學(xué)習(xí)或者正在學(xué)習(xí)fpga的過程中,一定要把一些基礎(chǔ)的模塊理解透徹。我會給大家分享一些常見的模塊代碼以及仿真程序,希望能幫助到大家更好的去學(xué)習(xí)fpga!下面一起來看下4位加法器的代碼以及仿真程序:
4位全加器代碼:
module adder4(cout,sum,ina,inb,cin); output cout; output [3:0] sum; input [3:0] ina,inb; input cin; assign {cout,sum}=ina+inb+cin; endmodule
4位全加器的仿真程序:
`timescale 1ns/1ns module tb; // 測試模塊的名字 reg [3:0] ina,inb; // 測試輸入信號定義為 reg 型 reg cin; wire [3:0] sum; // 測試輸出信號定義為 wire 型 wire cout; integer i,j; adder4 adder(cout,sum[3:0],ina[3:0],inb[3:0],cin); // 調(diào)用測試對象 always #5 cin=~cin; // 設(shè)定 cin 的取值 initial begin ina=0;inb=0;cin=0; for (i=1;i<16;i=i+1) #10 ina=i; // 設(shè)定 a 的取值 end initial begin for (j=1;j<16;j=j+1) #10 inb=j; // 設(shè)定 b 的取值 end initial // 定義結(jié)果顯示格式 begin $monitor($time,,,"%d+%d+%b={%b,%d}",ina,inb,cin,cout,sum); #160 $finish; end endmodule
modelsim仿真結(jié)果:
具體的代碼細(xì)節(jié)我就不詳細(xì)闡述了,大家一定要學(xué)會思考,在這個代碼中,主要要理解清楚這樣幾個問題:
什么叫全加器?
半加器和全加器的區(qū)別是什么?
什么叫低位進(jìn)位?什么叫高位進(jìn)位?
為什么仿真出來的波形圖感覺和modelsim打印出來的結(jié)果不一樣?比如感覺數(shù)據(jù)沒對齊?
$monitor是什么意思?怎么使用?格式是什么?
這個4位全加器的電路圖是什么樣的?
就這樣一個“簡單”的4位全加器,你真的掌握了嗎?如果你能快速回答出我上面提出的幾個問題,那你就掌握了;如果不能,那還要好好看下!其實,我們很多的公司筆試就是考這些簡單的題目,但是卻可以難倒一大片同學(xué)!再次提醒大家!重視基礎(chǔ)!
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1620文章
21510瀏覽量
598877 -
仿真
+關(guān)注
關(guān)注
50文章
3971瀏覽量
132952 -
加法器
+關(guān)注
關(guān)注
6文章
183瀏覽量
29970 -
全加器
+關(guān)注
關(guān)注
10文章
59瀏覽量
28341 -
程序
+關(guān)注
關(guān)注
115文章
3719瀏覽量
80355
原文標(biāo)題:基礎(chǔ)模塊 | 4位全加器代碼以及仿真
文章出處:【微信號:fpga加油站,微信公眾號:fpga加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論