Community
cancel
Showing results for 
Search instead for 
Did you mean: 
AWilc1
Beginner
1,454 Views

Reversing a bus in SystemVerilog

Jump to solution

Is there a way to reverse a bus in systemverilog?

I am trying to do:

 

genvar j;

generate

  for ( j=0 ; j < 256 ; j=j+1 ) begin

    out[j] <= in[256-j];

  end

endgenerate

 

But when I compile in ModelSim I get the errors:

 

** Error: (vlog-13069) near "[": syntax error, unexpected '['.

** Error: (vlog-13205) Syntax error found in the scope following 'out'. Is there a missing '::'?

 

 

I cannot see what is wrong here. Can anyone more familiar with SV see what is wrong?

Thanks.

0 Kudos

Accepted Solutions
dave_59
Novice
65 Views

The problem is with the procedural assignment statement inside your generate loop. Assuming out is declared as a wire, you need to change it to

for (genvar j=0j<256;j++) assign out[j] = in[256-j];

But there us a much simpler way of writing this without a loop using the streaming operator

assign out = {<<{in}};

 

 

View solution in original post

1 Reply
dave_59
Novice
66 Views

The problem is with the procedural assignment statement inside your generate loop. Assuming out is declared as a wire, you need to change it to

for (genvar j=0j<256;j++) assign out[j] = in[256-j];

But there us a much simpler way of writing this without a loop using the streaming operator

assign out = {<<{in}};

 

 

View solution in original post