I want to have sth like this:
generate
for( i=0 ; i<16 ; i=i+1 ) begin:
always @(posedge clk) begin
L[i+1] <= #1 R[i];
R[i+1] <= #1 L[i] ^ out[i];
end
end
endgenerate
I would appreciate it if any one could possibly help me.
You could do
always @(posedge clk)
begin
L[16:1] <= #1 R[15:0]
R[16:1] <= #1 L[15:0] ^ out;
end
You don't need a generate
here, I think. Just using a for
loop within the always
block will work.
always @(posedge clk) begin
for( int i=0 ; i<16 ; i=i+1 ) begin
L[i+1] <= #1 R[i];
R[i+1] <= #1 L[i] ^ out[i];
end
end
A few questions you'd probably want to think about:
- What size are the
L
and R
buses? [15:0]
?
- Where are you assigning values to
L[0]
and R[0]
?
- Are you sure that
i+1
when i
hits 15 will be still within the bounds of your bus?