-2
我没那么多在verilog 我试图调用模块里面,如果语句 我找不到答案在谷歌或我可能不明白我应该怎么做我的代码模块里面,如果在verilog
我的代码是一个全加器除了 我需要的IF,因为我想添加其他的东西
这是我的代码:
module top (a,b,cin,Cout,Ctemp,sum,clk,X);
input [3:0] a,b;
input X;
input cin,clk;
output reg[3:0] sum;
output reg[2:0] Ctemp;
output reg Cout;
[email protected](posedge clk)
begin
generate
if (X==1)
add bit0(a[0], b[0], cin, sum[0], Ctemp[0]); //here i need to call add module
add bit1(a[1], b[1], Ctemp[0], sum[1], Ctemp[1]);
add bit2(a[2], b[2], Ctemp[1], sum[2], Ctemp[2]);
add bit3(a[3], b[3], Ctemp[2], sum[3], Cout);
end
endgenerate
endmodule
module add(a, b, cin, sum, cout);
input a;
input b;
input cin;
output sum;
output cout;
assign sum = (~a*~b*cin)+(~a*b*~cin)+(a*~b*~cin)+(a*b*cin);
assign cout = (a*b)+(a*cin)+(b*cin);
endmodule
您不能在'always'块中使用'generate'块。你不“调用”模块,你“实例化”它们,并且你不能在always块中实例化一个模型。 – Greg
所以我的工作大部分都是错误的:/ ..谢谢你@Greg –