打印

新手代码求助

[复制链接]
982|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
skybbuy|  楼主 | 2013-10-14 15:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在学verilog,在看到4位加法器的时候
module adder4(cout,sum,ina,inb,cin);
output[3:0] sum;
output cout;
input[3:0] ina,inb;
input cin;
assign {cout,sum}=ina+inb+cin;
endmodule
请问那个assign这个语句怎么这么简单就实现了4位加法运算,还有这个大括号是什么作用,我查找资料说是拼接符,但我还是不懂这个语句是怎么实现这个功能的 。新手较笨,求指导

相关帖子

沙发
skybbuy|  楼主 | 2013-10-14 15:41 | 只看该作者
是不是ina+inb+cin的值赋给sum,然后他们的进位赋给cout?然后这个语句要循环4次?

使用特权

评论回复
板凳
haitaox| | 2013-10-14 16:19 | 只看该作者
ina+inb+cin的值赋给sum,然后他们的进位赋给cout
这句话对了
没有循环

使用特权

评论回复
地板
skybbuy|  楼主 | 2013-10-14 16:45 | 只看该作者
haitaox 发表于 2013-10-14 16:19
ina+inb+cin的值赋给sum,然后他们的进位赋给cout
这句话对了
没有循环

那这个语句死如何实现4位加法的。

使用特权

评论回复
5
ifpga| | 2013-10-14 17:29 | 只看该作者
{cout,sum} 表示拼接
count 就是进位啊
别忘了,这里都是二进制
按二进制去想,应该就能想通了

使用特权

评论回复
6
skybbuy|  楼主 | 2013-10-14 18:06 | 只看该作者
ifpga 发表于 2013-10-14 17:29
{cout,sum} 表示拼接
count 就是进位啊
别忘了,这里都是二进制

这个不是直接给一个4位的二进制数去相加的吗,比如说ina=1001,inb=1002,那这个cin怎么确定啊,还是说ina,inb这里也都是一位的。另外拼接是什么意思

使用特权

评论回复
7
haitaox| | 2013-10-14 21:17 | 只看该作者
{}是拼接符号,意思是把几个二进制的数按高低位拼在一起。我建议你仿真一下,这应该是数字电路里最简单的表达式了。

使用特权

评论回复
8
影WK| | 2013-10-14 21:19 | 只看该作者
cin是低位的近位输出,count是最高位的近位输出,拼接就是将近位输出和所得的SUM接在一起,比如最高位近位输出1,SUM1001那结果就是11001。。还有。。你举的例子,1002不是二进制数。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:只有坚持不懈的努力,才能最终走向成功!

22

主题

164

帖子

0

粉丝