Escribí un código que usa RAM (creado por el generador de bloques Xilinx). Su tamaño es 10X10 (total 100 datos).
Utilicé INSTANTIATION de la siguiente manera:
RAM1 RAM_NAME (
.clka(clka), // input clka
.wea(wea), // input [0 : 0] wea
.addra(addra), // input [6 : 0] addra
.dina(dina), // input [7 : 0] dina
.douta(douta) // output [7 : 0] douta
);
Puedo hacer síntesis, pero cuando estoy implementando diseño. Está dando error:
ERROR:NgdBuild:604 - logical block
'Leena/U0/xst_blk_mem_generator/gnativebmg.native_blk_mem_gen/valid.cstr/raml
oop[0].ram.r/s3a_init.ram/spram.ram' with type 'RAMB16BWE' could not be
resolved. A pin name misspelling can cause this, a missing edif or ngc file,
case mismatch between the block name and the edif or ngc file name, or the
misspelling of a type name. Symbol 'RAMB16BWE' is not supported in target
'spartan3e'.
¿Cuál es la causa del error anterior y cómo puedo corregirlo?
El Spartan-3E de Xilinx solo es compatible con RAMB16, siendo RAMB16WE una primitiva de una arquitectura posterior (Spartan-3A, y quizás otros).
Lo más probable es que haya generado su IP con las opciones de proyecto incorrectas. Asegúrese de generar la IP para un Spartan-3E, no para un Spartan-3A o cualquier otra arquitectura.
locopiro