1.有如下例子,借助 assign 语句实现组合逻辑,实现1位全加器功能,其中使用拼接运算符{}得到两位的计算结果。结果会按照从高位到低位的顺序自动分配给拼接的位。具体来说,cout 会得到进位值,而 sum 会得到和值。
module full_adder (
input wire a,
input wire b,
input wire cin,
output wire cout,
output wire sum
);
assign {cout, sum} = a + b + cin;
endmodule
假设 a、b、cin 均为 1 位宽,那么 a + b + cin 的结果范围是 0 到 3,需要 2 位来表示。拼接操作 {cout, sum} 将结果的最高位赋给 cout,最低位赋给 sum。
如:a、b的值为1;cin的位0; 则a+b+cin = 2,则cout=1,sum=0;
2万+

被折叠的 条评论
为什么被折叠?



