2010年8月5日 星期四

block memory generator 2.8 is not supported in ISE 12

Here's the background.
I am trying to porting my project from ISE 10.5 to ISE12.1. I have modelsim 6.4c installed but ISE 12.1 supports 6.5b and above, so I install 6.5f and generate libraries for it. While doing simulation, xilinxcorelib.blk_mem_gen_V2_8 is missing.

Here's the reason.
I create it with v2.8 in ISE10.1. While porting the project to ISE12.1, the 2.8 simulation library will not be found in ise\\src\XilinxCoreLib. Simulation with both isim or modelsim will not work. Update  block memory generator version to a supported library  is necessary. The procedure is easy and could be found in ISE help.

Procedures.
Execute Core generator and open .cgp. The GUI should list all the ip that used in the project. Select the separate instance and click 
"Select Upgrade version, and Regenerate (Under Current Project Settings)" for a wanted version or "Upgrade to latest version, and Regenerate (Under Current Project Settings)" for a latest version. 
I got lots of ip in my project so I would like it to perform upgrade for entire of them. Click "Show Project" and then click "Upgrade and Regenerate Project IP (Latest Versions, Under Current Project Settings)". After then, click "Regenerate Project IP (under Current Project Settings)". Now it works. The message explains why I can't do simulation with v2.8 in ISE12.1.

WARNING:sim:599 - Selected IP Block_Memory_Generator v2.8 has been removed and is not available in Coregen 12.1. You can use the CORE Generator IP upgrade flow to upgrade to a more recent version. To generate Block_Memory_Generator v2.8 please use a previous version of ISE in which this IP is available.


Other notes for block ram.
1. make sure there is no *.coe is located in absolute path. if it does make it relative to a local directory. Edit *.xco with notepad is faster than open it in coregen.
2. All IP informations are written in *.cdc. Delete it if *.xco has been modified, next time core generator will regenerate it if it were not exist while opening *.cgc.

Spud