Hi all, i got a problem in building 32X32 LUT ROM from 32X1 ROM which is there in unisim library i am not able to figure the thing how we have to use 32 "init" values when using for generate the 32X32 ROM using 32X1 ROM can anyone help me in understanding the usage of INIT for the ROM
The INIT value sets the contents of your RAM or ROM in this case. As posted already by John look in the Libraries Guide. You will also find an instantiation template under the lightbulb icon in ISE. Beware though I don't believe that 32xn RAM/ROM primative components are working in Spartan-3 due to the fact that some of the LUT based ram/rom features were removed from the architecture. I have not checked this recently and the primatives may be now converted to macros and hence work. Any one from Xilinx listening care to comment or check the detail in the latest Libraries Guide?
The init values should be used on an individual basis so the one that you use on bit0 the string is made up of all you bit0's out together as zero. You may find using the alternative components RAM32X8S or RAM16X8S easier as they are working in bytes. These components can be considered as re-writeable ROMs (just don't write to get a normal ROM operation) as they can have loaded values at power-up unlike a conventional stand-alone SRAM.
John Adair Enterpoint Ltd. - Home of Raggedstone1. The Low Cost High Performance Spartan-3 Development Board.
The 32 Init values are quite simple. Each ROM has one bit, each init value holds the value for that bit.
You can make a simple loop structure and procedure which will take 32 bit parameters and divide them into individual bits thereby allowing a sensible RAM/ROM structure to be created. I have done this for a 32x8 single port RAM and it works quite well.