Logic Verilog中的BCD加法器(带门)

Logic Verilog中的BCD加法器(带门),logic,verilog,hdl,bcd,Logic,Verilog,Hdl,Bcd,我的目标是用Verilog编写一个带门的BCD加法器。我有一些问题: 1-如何从第一个“四位加法器”输出中选择位。我的总数是S。在第一个加法器中使用S之后,我可以选择像S[0]这样的位,还是有其他方法 2-如何指定输入,特别是如果我有一个用于四位加法器的模块,并且它需要一个元素,如a(4位)?我试图指定一些位,但无法处理 例如,A[3]和A[1]在某些情况下需要为0或1,但我的模块采用一个元素 我的审判如下: `include "four_bit_adder.v" module bcd_ad

我的目标是用Verilog编写一个带门的BCD加法器。我有一些问题:

1-如何从第一个“四位加法器”输出中选择位。我的总数是
S
。在第一个加法器中使用
S
之后,我可以选择像
S[0]
这样的位,还是有其他方法

2-如何指定输入,特别是如果我有一个用于四位加法器的模块,并且它需要一个元素,如
a
(4位)?我试图指定一些位,但无法处理

例如,
A[3]
A[1]
在某些情况下需要为0或1,但我的模块采用一个元素

我的审判如下:


`include "four_bit_adder.v"

module bcd_adder(S,A,B,Cin);

input [3:0]A,B;
input Cin;
output [3:0]S;

wire [2:0]connectors;

//four_bit_adder(S,Cout,A,B,Cin);

four_bit_adder F_A1(S,Cout,A,B,Cin);

and(connectors[0],S[3],S[2]);

and(connectors[1],S[3],S[1]);

or(connectors[2],connectors[1],connectors[0],Cout);

//four_bit_adder F_A2();

endmodule



我添加了一个
Cout
输出到
bcd\u加法器
,由
门驱动。我将
连接器
更改为
[1:0]

我为二进制和(
sumb
)创建了一条线路,由第一个4位加法器驱动。这不同于您的BCD总和
S
sumb
连接到第二个4位加法器的
A
输入端

对于第二个加法器的
B
输入,我将4位串联如下:

{1'b0,Cout,Cout,1'b0}
以下是完整的模块:

模块bcd_加法器(S、Cout、A、B、Cin);
输入[3:0]A,B;
输入Cin;
输出[3:0]S;
输出电流;
导线[1:0]连接器;
电线[3:0]集水坑;
电线电缆;
导线cout2;//浮动
四位加法器F_A1(sumb、coutb、A、B、Cin);
四位加法器F_A2(S,cout2,sumb,{1'b0,Cout,Cout,1'b0},1'b0);
和(连接器[0],sumb[3],sumb[2]);
和(连接器[1],sumb[3],sumb[1]);
或(Cout,连接器[1],连接器[0],coutb);
端模