题目:
为您提供了一个名为 bcd_fadd 的 BCD 一位数加法器,它将两个 BCD 数字和进位相加,并产生总和和进位输出。
实例化 100 个 bcd_fadd 副本以创建 100 位 BCD 纹波进位加法器。加法器应将两个 100 位 BCD 数字(打包为 400 位向量)和一个进位输入相加,以产生 100 位和并执行。
提示:
用generate语句。
思路:
其实就是给了一个一位的BCD加法器,BCD码是4bit的。然后让我们实例化100个一位BCD加法器组合成100位BCD加法器,其实就是和前面的全加器是一样的,每一位的cout就是下一位的cin。只不过这里每一位是4bit。
解答:
总结:
1.就是generate for的格式,for begin后要接 :模块名称。
2.中间定义了cout_next来寄存每一次的进位信息,最后要记得将模块的cout赋值为cout_next的最后一位。
3.generate使用的i,一定要用genvar来定义,在generate内外定义均可。
4.数的乘法就是用 *符号。