我正在Verilog设计一些硬件,但为了保持灵活性,我正在使用参数来设定宽度,以便我能够根据需要修改宽度,而不修改代码。 我陷入的一个问题是,在法典中,我想能够同时在多个囚室书写。
parameter DATA_WIDTH = 16;
parameter BUFFER_SIZE = 16;
parameter LOAD_WIDTH = DATA_WIDTH*BUFFER_SIZE;
input [LOAD_WIDTH-1:0] i_load_data;
reg [DATA_WIDTH-1:0] r_data_buf[BUFFER_SIZE-1:0];
...
always@(posedge clk) begin
....
else if (i_load_flag) begin
for(i = 0; i < BUFFER_SIZE; i = i + 1)
r_data_buf[i] <= i_load_data[i * BUFFER_SIZE + BUFFER_SIZE - 1:i * BUFFER_SIZE];
end
end
由于必须读取数据的方式,我需要把数据_成阵列。 我也不清楚的是,为什么真话象这一法典,因为所有东西都是在汇编时间时常有的,或者我如何确定,并且仍然得到我想要的行为。