HDLBits-02-Verilog语言–模块:层次结构
Module addsub
题目
可以通过有选择地取反一个输入来从加法器构建加法器-减法器,这等效于将输入取反然后加1。净结果是一个可以执行两种操作的电路:(a + b + 0)和( a +〜b + 1)。如果您想更详细地解释该电路的工作原理,请参见Wikipedia。
在下面构建加减法器。
为您提供了一个16位加法器模块,您需要实例化两次:
module add16 ( input[15:0] a, input[15:0] b, input cin, output[15:0] sum, output cout );
每当sub为1时,使用32位宽的XOR门将b输入反相。(也可以将b [31:0]视为与sub复制32次的XOR运算。请参见复制运算符)。还将子输入连接到加法器的输入端。
题目中已经申明输入与输出,在b的输入到子模块时,对b进行异或,将输入更改(小练习)。
具体代码如下: