完善资料让更多小伙伴认识你,还能领取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]; 应该可以
最佳答案
|
|
|
|
谢谢 大佬帮助,
|
|
|
|
{:1:}
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1533 浏览 1 评论
1313 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
1523 浏览 0 评论
925 浏览 0 评论
2317 浏览 0 评论
1460 浏览 35 评论
5671 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 13:21 , Processed in 0.986079 second(s), Total 79, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号