题目:
通过实例化 100 个全加器来创建 100 位二进制纹波进位加法器。加法器将两个 100 位数字和一个进位输入相加,产生 100 位和并输出。为了鼓励您实际实例化全加器,还可以输出纹波进位加法器中每个全加器的进位。 cout[99] 是最后一个全加器的最终进位,也是您通常看到的进位。
提示:
有许多全加器需要实例化。实例数组或generatea语句在这里会有所帮助。
思路:
100位全加器,也就是三个100位a,b,cin对应位相加,然后再用一个100位向量cout来记录每一位的进位,cin的第一位就是外部输入的进位信号,而后每一位cin其实等于上一位的cout。
根据前面学过的全加器的布尔运算逻辑:
使用循环对每一位进行操作即可。
解答:
总结:
1.根据思路,只有第一位的sum[0],cout[0]是用到外部cin,其余位的cin都是上一位cout,所以将第一位单独拿出来赋值即可,后续都满足循环格式。
2.全加器的逻辑也可以直接写成
3.没有用到题目和提示说的实例化,generate语句。