0
我有一個`define
宏,它將一維信號作爲輸入。是否可以使用Verilog生成語句來操作信號名稱?
`define FOO(x,width) \
reg [width-1:0] total_``x; \
[email protected](posedge clk) begin \
if (rst) total_``x = 'h0; \
else total_``x = total_``x + ``x; \
end
我有一個2-d信號
reg [7:0] signal_2d [127:0];
我想執行下列操作,生成聲明:
generate
for (genvar i=0; i<128; i=i+1) begin
`FOO(signal_2d[i],8);
end
endgenerate
但它不會工作,因爲signal_2d是打包數組。
是否將2-D陣列擴展爲128個1-D解包信號的選項?
如何根據循環索引使用generate for loop來操作信號名稱。
例如,創建signal_2d_「索引」?
reg [7:0] signal_2d_0;
reg [7:0] signal_2d_1;
reg [7:0] signal_2d_2;
....
reg [7:0] signal_2d_127;
非常感謝摩根 – user3743044