SOGO論壇
  登入   註冊   找回密碼
查看: 669|回覆: 0
列印 上一主題 下一主題

[技術文章] 全加器 [複製連結]

Rank: 11Rank: 11Rank: 11Rank: 11

熱心參予論壇活動及用心回覆主題勳章 數位硬體勳章

狀態︰ 離線
跳轉到指定樓層
1
發表於 2012-7-3 08:59:31 |只看該作者 |倒序瀏覽 | x 1
程式:fulladder.v
module fulladder (input a, b, c_in, output sum, c_out);
wire s1, c1, c2;

xor g1(s1, a, b);
xor g2(sum, s1, c_in);
and g3(c1, a,b);
and g4(c2, s1, c_in) ;
or g5(c_out, c2, c1) ;

endmodule

module fulladder_test;
reg a, b, c_in;
wire sum, c_out;

fulladder DUT (a, b, c_in, sum, c_out);

initial
begin
  a = 0;
  b = 0;
  c_in = 0;
end

always #50 begin
  a = a+1;
  $monitor("%4dns monitor: a=%d b=%d c_in=%d sum=%d c_out=%d",
           $stime, a, b, c_in, sum, c_out);
end

always #100 begin
  b = b+1;
end

always #200 begin
  c_in = c_in+1;
end

initial #2000 $finish;

endmodule
Icarus 執行結果
D:\ccc101\icarus\ccc>iverilog -o fulladder fulladder.v

D:\ccc101\icarus\ccc>vvp fulladder
  50ns monitor: a=1 b=0 c_in=0 sum=1 c_out=0
100ns monitor: a=0 b=1 c_in=0 sum=1 c_out=0
150ns monitor: a=1 b=1 c_in=0 sum=0 c_out=1
200ns monitor: a=0 b=0 c_in=1 sum=1 c_out=0
250ns monitor: a=1 b=0 c_in=1 sum=0 c_out=1
300ns monitor: a=0 b=1 c_in=1 sum=0 c_out=1
350ns monitor: a=1 b=1 c_in=1 sum=1 c_out=1
400ns monitor: a=0 b=0 c_in=0 sum=0 c_out=0
450ns monitor: a=1 b=0 c_in=0 sum=1 c_out=0
500ns monitor: a=0 b=1 c_in=0 sum=1 c_out=0
550ns monitor: a=1 b=1 c_in=0 sum=0 c_out=1
600ns monitor: a=0 b=0 c_in=1 sum=1 c_out=0
650ns monitor: a=1 b=0 c_in=1 sum=0 c_out=1
700ns monitor: a=0 b=1 c_in=1 sum=0 c_out=1
750ns monitor: a=1 b=1 c_in=1 sum=1 c_out=1
800ns monitor: a=0 b=0 c_in=0 sum=0 c_out=0
850ns monitor: a=1 b=0 c_in=0 sum=1 c_out=0
900ns monitor: a=0 b=1 c_in=0 sum=1 c_out=0
950ns monitor: a=1 b=1 c_in=0 sum=0 c_out=1
1000ns monitor: a=0 b=0 c_in=1 sum=1 c_out=0
1050ns monitor: a=1 b=0 c_in=1 sum=0 c_out=1
1100ns monitor: a=0 b=1 c_in=1 sum=0 c_out=1
1150ns monitor: a=1 b=1 c_in=1 sum=1 c_out=1
1200ns monitor: a=0 b=0 c_in=0 sum=0 c_out=0
1250ns monitor: a=1 b=0 c_in=0 sum=1 c_out=0
1300ns monitor: a=0 b=1 c_in=0 sum=1 c_out=0
1350ns monitor: a=1 b=1 c_in=0 sum=0 c_out=1
1400ns monitor: a=0 b=0 c_in=1 sum=1 c_out=0
1450ns monitor: a=1 b=0 c_in=1 sum=0 c_out=1
1500ns monitor: a=0 b=1 c_in=1 sum=0 c_out=1
1550ns monitor: a=1 b=1 c_in=1 sum=1 c_out=1
1600ns monitor: a=0 b=0 c_in=0 sum=0 c_out=0
1650ns monitor: a=1 b=0 c_in=0 sum=1 c_out=0
1700ns monitor: a=0 b=1 c_in=0 sum=1 c_out=0
1750ns monitor: a=1 b=1 c_in=0 sum=0 c_out=1
1800ns monitor: a=0 b=0 c_in=1 sum=1 c_out=0
1850ns monitor: a=1 b=0 c_in=1 sum=0 c_out=1
1900ns monitor: a=0 b=1 c_in=1 sum=0 c_out=1
1950ns monitor: a=1 b=1 c_in=1 sum=1 c_out=1
2000ns monitor: a=0 b=0 c_in=0 sum=0 c_out=0
喜歡嗎?分享這篇文章給親朋好友︰
               感謝作者     

請注意︰利用多帳號發表自問自答的業配文置入性行銷廣告者,將直接禁訪或刪除帳號及全部文章!
您需要登錄後才可以回覆 登入 | 註冊


本論壇為非營利自由討論平台,所有個人言論不代表本站立場。文章內容如有涉及侵權,請通知管理人員,將立即刪除相關文章資料。侵權申訴或移除要求:abuse@oursogo.com

GMT+8, 2025-5-13 09:23

© 2004-2025 SOGO論壇 OURSOGO.COM
回頂部