新手代码求助

[复制链接]
1620|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位加法的。
ifpga 发表于 2013-10-14 17:29 | 显示全部楼层
{cout,sum} 表示拼接
count 就是进位啊
别忘了,这里都是二进制
按二进制去想,应该就能想通了
 楼主| skybbuy 发表于 2013-10-14 18:06 | 显示全部楼层
ifpga 发表于 2013-10-14 17:29
{cout,sum} 表示拼接
count 就是进位啊
别忘了,这里都是二进制

这个不是直接给一个4位的二进制数去相加的吗,比如说ina=1001,inb=1002,那这个cin怎么确定啊,还是说ina,inb这里也都是一位的。另外拼接是什么意思
haitaox 发表于 2013-10-14 21:17 | 显示全部楼层
{}是拼接符号,意思是把几个二进制的数按高低位拼在一起。我建议你仿真一下,这应该是数字电路里最简单的表达式了。
影WK 发表于 2013-10-14 21:19 | 显示全部楼层
cin是低位的近位输出,count是最高位的近位输出,拼接就是将近位输出和所得的SUM接在一起,比如最高位近位输出1,SUM1001那结果就是11001。。还有。。你举的例子,1002不是二进制数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

22

主题

163

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部