, . 7.4.1, 7.4.2, 7.4.4 7.4.5 IEEE1800-2012. IEEE1800 SystemVerilog, - Verilog. , , IEEE1800 , IEEE1364.
LRM, - ieee.org: IEEE Std 1800- 2012
. : for-loop, , .
/* Using for-loop */
reg [7:0] FIFO [0:8];
integer i;
always@(posedge clk) begin
if(wr & !rd & !full) begin
for(i = 8; i > 0; i=i-i) begin
FIFO[i] <= FIFO[i-1];
end
FIFO[0] <= data_in;
end
end
/* Using double packed array */
reg [0:8] [7:0] FIFO; // NOTE: format and usage explained in IEEE1800-2012 7.4.5
always@(posedge clk) begin
if(wr & !rd & !full) begin
FIFO[0:8] <= {data_in,FIFO[0:7]};
end
end