assigning to multidimensional arrays

G

Greg Tumbush

Guest
Hello,
I'm trying to assign to a multidimensional array in one statement
instead of doing the assigns by array position. I'm using Verilog
2001. For example:

wire [1:0] multi_array [1:0];

// works fine
assign multi_array[0] = 0;
assign multi_array[1] = 1;

// Attempts that do not work!!
// assign multi_array[1:0] = [0,1];
// assign multi_array[1:0] = [0 1];
// assign multi_array[1:0] = (0, 1);
// assign multi_array[1:0] = (0 1);
// assign multi_array[1:0] = {0, 1};
// assign multi_array[1:0] = {0 1};
// assign multi_array[1:0] = 0, 1;
// assign multi_array[1:0] = 0 1;
// assign multi_array[1:0] = [0],[1];
// assign multi_array[1:0] = [0][1];

Any ideas?
Thanks,
Greg
 
There's always:
assign {multi_array[1],multi_array[0]} = {2'h0, 2'h1};

I often have short shift registers defined this way:

{srl[10],srl[9],srl[8],srl[7],srl[6],srl[5],srl[4],srl[3],srl[2],srl[1],srl[
0]} <=

{srl[9],srl[8],srl[7],srl[6],srl[5],srl[4],srl[3],srl[2],srl[1],srl[0],srl_i
n};
rather than using a for loop.

You could assign one huge vector then "reassign" to the multidimensional
vector through a for loop. I did this in some recent code to have a logical
256-bit memory implemented with 16 16-bit RAMs, allowing a 16-wide
initialization in 16 cycles rather than 256 cycles of sitting around waiting
for the bit-at-a-time initialization.


"Greg Tumbush" <gtumbush@yahoo.com> wrote in message
news:2c6ba200.0405120758.34d3010@posting.google.com...
Hello,
I'm trying to assign to a multidimensional array in one statement
instead of doing the assigns by array position. I'm using Verilog
2001. For example:

wire [1:0] multi_array [1:0];

// works fine
assign multi_array[0] = 0;
assign multi_array[1] = 1;

// Attempts that do not work!!
// assign multi_array[1:0] = [0,1];
// assign multi_array[1:0] = [0 1];
// assign multi_array[1:0] = (0, 1);
// assign multi_array[1:0] = (0 1);
// assign multi_array[1:0] = {0, 1};
// assign multi_array[1:0] = {0 1};
// assign multi_array[1:0] = 0, 1;
// assign multi_array[1:0] = 0 1;
// assign multi_array[1:0] = [0],[1];
// assign multi_array[1:0] = [0][1];

Any ideas?
Thanks,
Greg
 

Welcome to EDABoard.com

Sponsor

Back
Top