【发布时间】:2013-02-01 00:32:04
【问题描述】:
你可以在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。
我没有收到任何语法错误,但是当我尝试模拟它时,我得到: “错误:连接操作数“类型”的宽度不定”
你们会如何解决这样的设计问题?
【问题讨论】:
标签: verilog parameterized