Uso de cores generados por coregen en periféricos EDK

Muchos de los periféricos que se diseñan para la herramienta EDK hacen uso de primitivas tales como fifos, memorias RAM o ROM, multiplicadores, etc. Estas primitivas generalmente se sintetizan de forma eficiente mediante la herramienta coregen. Como resultado de la ejecución de la herramienta se obtienen dos tipos de ficheros:

  • ficheros para la simulación (vhdl o verilog)
  • ficheros de netlist (en formato edif o ngc, el formato propietario de Xilinx)

Simulación del Core

Los ficheros para la simulación se ubicarán típicamente en el directorio que contenga el banco de pruebas del periférico, ya que no son utilizados en las etapas de implementación del periférico. Es decir el código que contienen es utilizable para la simulación, y no puede ser sintetizado. Cosa que además no tiene sentido puesto coregen ya ha generado la netlist correspondiente.

Síntesis del Core

El objetivo de la síntesis es obtener la netlist correspondiente al periféricoa partir del código de alto nivel (vhdl o verilog). Este proceso se realiza sobre cada uno de los ficheros fuente por separado, respetando el orden impuesto por la jerarquía del diseño. Durante este paso, dado que no se ha incluido el código del core, éste se tratará como una caja negra, asumiendo que se aportará su netlist en los procesos de backend posteriores.

Para que la netlist de estos cores sea localizada es necesario realizar los siguientes pasos:

  • debe crearse un subdirectorio netlist en la estructura de directorios del periférico, al mismo nivel que los directorios data y vhdl.
  • deben copiarse todos los ficheros correspondientes a la netlist (edf o ngc) generados por coregen.
  • debe crearse el directorio data un fichero de texto con el mismo nombre que el de la descripción pao, pero con extensión bbd. Este fichero contiene la “definición de caja negra” (black box definition). Esta definición simplemente consiste en indicar los nombres de los ficheros de netlist que forman parte del core, con la siguiente sintaxis:

[code]FILES
, [/code]

  • debe editarse el fichero mpd del directorio data para incluir la siguiente opción, que indica que el periférico combina lógica procedente de varias fuentes:

[code]option style = mix[/code]