完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
`这是verilog代码 module adder4 (cout, sum, ina, inb, cin); input [3:0] ina, inb; input cin; output [3:0] sum; output cout; assign {cout, sum} = ina+inb+cin; endmodule 这是仿真 module test_adder4; reg [3:0] ina, inb; reg cin; wire [3:0] sum; wire cout; adder4 adder(sum, cout, ina, inb, cin); //调用测试对象 initial begin #0 ina = 4'b0001; inb = 4'b1010; cin = 1'b0; #5 ina = 4'b0010; inb = 4'b1010; cin = 1'b1; #5 ina = 4'b0010; inb = 4'b1110; cin = 1'b0; #5 ina = 4'b0011; inb = 4'b1100; cin = 1'b1; #5 ina = 4'b0111; inb = 4'b1001; cin = 1'b0; #5 ina = 4'b0001; inb = 4'b1100; cin = 1'b1; #5 ina = 4'b0011; inb = 4'b1100; cin = 1'b0; #5 ina = 4'b0111; inb = 4'b1111; cin = 1'b1; #5 $finish; end initial begin $monitor("At time %t, ina(%b) + inb(%b) + cin(%b) = sum(%b) (%2d), cout(%b)", $time,ina, inb, cin, sum, sum, cout); end endmodule 在vivado2017.3 Run Behavioral Simulation下的运行结果,sum是高阻态,这是为什么呀? ` ![]() |
|
相关推荐
3个回答
|
|
用modelsim仿真时可以的啊!我估计是assign {cout, sum} = ina+inb+cin;这句话的问题,你换个写法
wire [4:0] sum0; assign sum0 = ina+inb+{3'd0,cin}; assign sum = sum0[3:0]; assign cout = sum0[4]; 应该可以
最佳答案
|
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
393 浏览 0 评论
525 浏览 0 评论
使用jesd204b IP核时,无法完成综合,找不到jesd204_0.v
415 浏览 1 评论
779 浏览 3 评论
双目视觉处理系统开发实例-基于米尔安路国产DR1M90开发板
2093 浏览 0 评论
2543 浏览 58 评论
6346 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-3-15 08:25 , Processed in 0.599435 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191