Steve, Peter and Austin-
Can you give definitive instructions -- or point me to who can -- for initializing an array of registers?
I need to initialize an array of registers in one way, set values differently upon Reset, and set values differently again during normal operation. I have this code:
reg [31:0] array [11:0];
// synthesis attribute INIT of array is 64'h0C0001820C000080;
which is intended to initialize the first 2 elements of the array, but doesn't set any bits although XST appears to "accept" the INIT attribute. What is needed? The whole 384 bits set with one number? Can this be done using 384'hxxxx... syntax?
I have opened a webcase through our local FAE, but after about 3 weeks have no clear answers other than to instantiate a RAM using CoreGen and use a .coe file, or read in a .dat file for simulation purposes but not synthesis. To use a RAM I would have to switch the array row/column to get XST to recognize asynchronous reads, and I have done that in other cases, but in this case I can't because I actually need 32-bit registers (they are accessible via a host processor).
For something like array initialization, there has to be a solid answer
-- hopefully some actual code showing how to do it.
Thanks.
-Jeff