Verilog 模块调用问题
刚学VerilogHDL语言,现在对Verilog模块调用遇到了几个问题//将a0和b0中的数据送入四位超前进位的全加器cla4add_0(a0[3:0],b0[3:0]...
刚学Verilog HDL语言,现在对Verilog模块调用遇到了几个问题
//将a0和b0中的数据送入四位超前进位的全加器
cla4 add_0 ( a0[ 3 : 0 ], b0[ 3 : 0 ], cin, sum0[ 3 : 0 ], cout_1 );
cla4 add_1 ( a0[ 7 : 4 ], b0[ 7 : 4 ], cout_1 , sum0[ 7 : 4 ], cout_2 );
cla4 add_2 ( a0[ 11 : 8 ], b0[ 11 : 8 ], cout_2, sum0[ 11 : 8 ], cout_3 );
cla4 add_3 ( a0[ 15 : 12 ], b0[ 15 : 12 ], cout_3, sum0[ 15 : 12 ], cout_4 );
//将结果sum0锁存到输出sum中
D_4 D0 ( sum0[ 3 : 0], sum [ 3 : 0 ], clk );
D_4 D1 ( sum0[ 7 : 4], sum [ 7 : 4 ], clk );
D_4 D2 ( sum0[ 11 : 8], sum [ 11 : 8 ], clk );
D_5 D3 ( { cout_4, sum0[ 15 : 12 ] }, { cout, sum[ 15 : 12 ] }, clk);
其中cla4是四位超前进位加法器,D_4是四位寄存器,D_5是五位寄存器
问题是:这几段代码执行是并行的还是顺序执行。在综合为硬件电路后cla4电路是有一个四位超前进位加法器还是需要四个四位超前进位加法器,寄存器呢?? 展开
//将a0和b0中的数据送入四位超前进位的全加器
cla4 add_0 ( a0[ 3 : 0 ], b0[ 3 : 0 ], cin, sum0[ 3 : 0 ], cout_1 );
cla4 add_1 ( a0[ 7 : 4 ], b0[ 7 : 4 ], cout_1 , sum0[ 7 : 4 ], cout_2 );
cla4 add_2 ( a0[ 11 : 8 ], b0[ 11 : 8 ], cout_2, sum0[ 11 : 8 ], cout_3 );
cla4 add_3 ( a0[ 15 : 12 ], b0[ 15 : 12 ], cout_3, sum0[ 15 : 12 ], cout_4 );
//将结果sum0锁存到输出sum中
D_4 D0 ( sum0[ 3 : 0], sum [ 3 : 0 ], clk );
D_4 D1 ( sum0[ 7 : 4], sum [ 7 : 4 ], clk );
D_4 D2 ( sum0[ 11 : 8], sum [ 11 : 8 ], clk );
D_5 D3 ( { cout_4, sum0[ 15 : 12 ] }, { cout, sum[ 15 : 12 ] }, clk);
其中cla4是四位超前进位加法器,D_4是四位寄存器,D_5是五位寄存器
问题是:这几段代码执行是并行的还是顺序执行。在综合为硬件电路后cla4电路是有一个四位超前进位加法器还是需要四个四位超前进位加法器,寄存器呢?? 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询