纹波进位加法器的一个缺点(参见以前的练习)是加法器计算执行的延迟(在最坏的情况下从进位开始)相当慢,并且第二级加法器在第一级加法器完成之前无法开始计算其进出。这会使加法器变慢。其中一项改进是进位选择加法器,如下所示。第一级加法器与之前相同,但我们复制了第二级加法器,一个假设进位=0,另一个假设进位=1,然后使用快速的2对1多路复用器来选择恰好正确的结果。
在本练习中,您将获得与上一个练习相同的模块,该模块将两个带进位的 16 位数字相加,并生成进位和 16 位求和。您必须实例化其中的三个,才能使用自己的 16 位 2 对 1 多路复用器构建进位选择加法器。add16
如下图所示将模块连接在一起。提供的模块具有以下声明:add16
module add16 ( input[15:0] a, input[15:0] b, input cin, output[15:0] sum, output cout );
我的答案: