您可以在verilog中使用参数值进行赋值吗?我可以以某种方式定义参数变量的宽度吗?
前任:
module mymodule #(parameter type =2)
(...
output [(3+type)-1:0] out);
wire [2:0] rate;
...
assign out = {rate, {1'b0{type}} };
endmodule
让我们说type = 2。然后我想要比特长度为 5。速率仍然是比特长度 3(假设它是 3'b100),当我分配时我希望它是 100 000。
类似地,如果 type=6。然后我想要位长为 9。速率仍然是位长 3(再次让我们说它的 3'b100),当我分配时我希望它是 100 000000。
我没有收到任何语法错误,但是当我尝试模拟它时,我得到:“错误:连接操作数“类型”的宽度不定”
你们将如何处理这样的设计问题?