Core Generator

  • Published on
    24-Jul-2015

  • View
    278

  • Download
    1

Embed Size (px)

Transcript

XilinxTM CORE GeneratorTMIngeniero Hctor Herminio Bayona AcevedoUniversidad Tecnolgica de la Mixteca Ing_bayona@hotmail.com

Abstract. Actualmente el diseo e implementacin de nuevos circuitos y sistemas digitales cuenta con una amplia gama de herramientas asistidas por computadora que permiten optimizar dichos diseos de una manera ms eficaz, permitindonos tener un mayor aprovechamiento de sus recursos. En este tutorial se describe el funcionamiento de una potente herramienta de Xilinx, llamada Core generator, esta herramienta de diseo nos ofrece ncleos parametrizables optimizados para los FPGAS de Xilinx.

1 IntroduccinEl sistema CORE Generator es una potente herramienta de diseo que nos permite parametrizar y optimizar ncleos para los FPGAS de Xilinx. Esta herramienta nos brinda una amplia variedad de funciones e instrucciones predefinidas, mismas que varan en su nivel de complejidad, desde simples operadores aritmticos como sumadores, acumuladores y multiplicadores hasta la construccin de bloques para sistemas como filtros, memorias, FIFOs,etc. Para cada ncleo que este genera. CORE Generator produce un formato de intercambio de datos electrnicos (EDIF),una lista de conexiones ( archivo EDN), una plantilla VERILOG (VEO) que contiene un archivo Verilog (V), y/o un archivo de plantilla VHDL (VHO) que contiene un archivo VHDL(VHD),.Tambin crea uno o ms archivos NGC y NDF. Cabe mencionar que los archivos NGC solo se crean para ciertos ncleos. Los archivos EDN y NGC contienen informacin requerida para la implementacin de un modulo en el FPGA de Xilinx. Los archivos Asy y XSF nos permiten integrar el modulo hecho en COORE Generator dentro de un diseo esquemtico para ISE (utilizando ECS). La figura 1.1 muestra de manera completa el flujo diseo en COORE Generator. Las regiones encerradas en gris nos muestran las porciones del diseo que estn directamente asociadas con COORE Generator. Del lado izquierdo tenemos los archivos EDN, VEO, VHO generados por COOREGenerator. En el lado derecho se muestran las libreras fuente que son creadas o actualizadas durante la instalacin de actualizaciones de COORE Generator e IP module.

2

Ingeniero Hctor Herminio Bayona Acevedo

Fig. 1.1 Flujo de diseo Core Generator

2 Acerca de CORE GeneratorCOORE Generator ofrece un catalogo de arquitectura especifica, dominio especifico (integracin , conectividad y DSP) y mercado IP especifico( Automotriz,, consumo, Mil/Aero, Comunicaciones, AVB,etc.).Estas funciones IP personalizables por el usuario varan segn la complejidad de las funciones comnmente utilizadas, tales como memorias y FIFOs, a la construccin de bloques a nivel de sistema, tales como filtros y transformadores. Utilizando estas funciones IP se pueden ahorrar de das a meses en tiempo de diseo. El altamente optimizado IP permite a los diseadores de FPGA a concentrar sus esfuerzos en la construccin de diseos ms rpidamente, ayudando a llevar dichos diseos al mercado en menor tiempo. La IP del CORE Generator incluye: -Bloques de construccin. Memorias y FIFOs Operadores aritmticos (sumadores, complejos, etc. ) Operadores en punto flotante -Depuracin y verificacin Controladores Pro integrados ChipScope Logic Analyzer integrado Entradas/salidas virtuales.

acumuladores,

multiplicadores,

multiplicadores

Error! Use the Home tab to apply title to the text that you want to appear here.

3

-Caractersticas de la arquitectura de los FPGA Clocking Wizard (asistente de tiempos) Generador de interfaz de memoria (MIG) RocketIO Multi-Gigabit Transceivers (MGTs) Asistente de monitoreo del sistema -Conectividad Interfaces de bus estndar tales como PCI y PCI-X Interfaces de red tales como Ethernet, SPI-4.2, RapidIO, CAN y PCI EXPRESS -Funciones DSP Compilador DDS, FIR, FFT, etc. Correccin de errores IP progresivos tales como Reed-Solomon Decoder and Encoder, Viterbi Decoder, etc. -Procesamiento de imgenes y video Convertidores Color-space Matriz de conversin de colores, matriz de interpolacin de filtro del color,procesamiento de imgenes de canalizacin, etc. -Automotriz e Industrial CAN Ethernet AVB -Telecomunicaciones Diez Gigabit Ethernet MAC Tri-modo Ethernet MAC, etc. -Wireless Codificador/ decodificador de canal LTE, Buscador 3GPP,etc. CPRI, OBSAI y Serial Rapid IO -Ip especificas del catalogo de Ips de CORE Generator se pueden utilizar en la metodologa elegida por el diseador tales como: Para diseadores lgicos utilizando el Project Navigator. Para diseadores de algoritmos DSP utilizando System Xilinx Generator Para diseadores integrados utilizando Xilinx Platform Studio (XPS) o PlanAhead

4

Ingeniero Hctor Herminio Bayona Acevedo

2.1 Arquitecturas que soporta Esta versin de CORE Generator es compatible con las siguientes familias de arquitecturas de FPGA Spartan-3 Spartan-3A Spartan-3AN Spartan-3A DSP Spartan-3E Spartan-6 Virtex-4 Virtex-5 Virtex-6

3 INTERFAZ DE CORE GENERATOR 3.1 Ventana Principal de COORE Generator La ventana principal de COORE Generator es el medio por el cual el resto de las dems ventanas aparecen, esta se compone de las siguientes partes Barra de Titulo Barra de Men Barra de herramientas Ventana de catalogo IP Ventana de consola Barra de estado

En la figura 3.1 se muestra la pantalla principal de COORE Generator.

Error! Use the Home tab to apply title to the text that you want to appear here.

5

Fig. 3-1 Ventana Principal COORE Generator.

Barra de Titulo Se muestra el nombre del programa y la ruta del archivo de proyecto (CGP) Barra de Menu En esta barra se despliegan el resto de los menus que controlan las operaciones del COORE Generator. Esta barra contiene los siguientes menus : File, Project, View, y Help.

6

Ingeniero Hctor Herminio Bayona Acevedo

Barra de Herramientas La barra de herramientas contiene los botones con acceso a los comandos ms utilizados. Ventana de catalogo IP Se muestra una lista con los catlogos de IP disponibles, este contiene los siguientes paneles: Mostrar por nombre Mostrar por funcin Proyecto IP Ventana de proyecto IP Esta ventana muestra la lista de los ncleos que han sido configurados y generados en un proyecto en COORE Generator, y datos como donde fue instanciado, la versin IP del ncleo, etc. Ventana de consola Esta cuenta esencialmente con tres paneles: Informacin Advertencias Errores Barra de estado Aqu se muestra el estado en el que se encuentra el proyecto as como los archivos generados

Error! Use the Home tab to apply title to the text that you want to appear here.

7

3.2 Barra de Herramientas COORE Generator Esta se encuentra ubicada exactamente bajo la barra de men y nos brinda acceso rpido a las operaciones de uso mas frecuente dentro del programa. New Project crea un nuevo proyecto CORE Generator. Open Project Abre un proyecto ya existente. Save Project Guarda el proyecto actual. Preferences Habilita tus principales preferencias del proyecto. Te brinda ayuda sobre el metodo o herramienta donde posicionas el cursor. Project Options Habilita la configuracion de opciones del proyecto. Import Existing Customized IP Te permite importer un IP previamente configurado Customize and Generate Te permite generar y personalizar un proyecto. Generate (current project options) Te permite generar o recondicionar las opciones de tu proyecto Upgrade IP Te permite actualizar un ncleo. Upgrade and Regenerate IP Te permite actualizar un ncleo mediante reconfiguracin. View Data Sheet Te muestra la hoja de datos View License Status Te muestra el estado de la licencia del ncleo. View Product Webpage Pagina web de Xilinx.

8

Ingeniero Hctor Herminio Bayona Acevedo

View Version Information Permite visualizar informacin sobre las versiones del ncleo. View Answer Records Permite ver las dudas sobre lo que se usa en la web. View Read Me Te muestra los archivos leeme de Xilinx XilinxNotify Abre la utilidad de notificaciones y permite realizar actualizaciones.

3.3 Shortcuts o atajos A continuacin se muestra una tabla con la lista de atajos mediante el uso del teclado, esto nos permite trabajar de manera mas gil dentro de la herramienta de COORE Generator. Shortcut (Atajo) Ctrl+N Ctrl+O Ctrl+W Ctrl+S Ctrl+Q Ctrl+U Shift+F1 Nuevo Proyecto Abrir Proyecto Cerrar Proyecto Guardar Proyecto Salir Notificaciones Xilinx Que es esto? Funcin

Error! Use the Home tab to apply title to the text that you want to appear here.

9

4 FLUJOS DE DISEO 4.1 Flujo de diseo esquemtico (Standalone) COORE Generator produce una implementacin de conexiones (NGC) para diseos esquemticos. Tambin produce de manera adicional, archivos NGC de bajo nivel para algunos ncleos IP. Los archivos NGC contienen informacin sobre la implementacin del mdulo.

4.2 Diseo VHDL Este tipo de diseo describe el procedimiento para simulacin de comportamiento, sntesis, e implementacin de diseos VHDL que contienen mdulos de COORE Generator, utilizando las siguientes herramientas del fabricante: Funcin Sntesis Xilinx XST FPGA Compiler II Mentor Graphics Precision Synthesis Synopsys Synplify MTI ModelSim/VLOG Herramientas

Simulacin Flujo de diseo VHDL

1.- Si va a realizar la simulacin funcional en su diseo con un simulador de 3 parte (3rdparty), compilar la biblioteca XilinxCoreLib. 2.-Iniciar COORE Generator Para comenzar CORE Generator desde el ambiente de Windows, selecciona Inicio ProgramasXilinx ISEAccesoriosCORE Generator System. Tambin puedes iniciar desde el interior de Xilinx ISE (vase Abrir CORE Generator desde Xilinx ISE) Otra manera de la que se puede acceder a CORE Generator desde Windows es mediante un smbolo del sistema: InicioEjecutar en Windows. En smbolo del sistema tecleamos, coregen. En el interprete de UNIX, Escribimos, coregen. Esto abrir CORE Generator.

10

Ingeniero Hctor Herminio Bayona Acevedo

Abrir CORE Generator desde Xilinx ISE CORE Generator se puede abrir desde el navegador de proyectos de las siguientes maneras: Si ya se tiene agregado un ncleo a un proyecto ISE, a continuacin puede abrir CORE Generator GUI desde el navegador de proyectos en ISE. El navegador de proyectos se puede ejecutar en una PC o en una Estacin de trabajo de UNIX. Para abrir CORE Generator GUI desde el navegado de Xilinx ISE a. En el navegador de Proyectos, seleccione el nombre de un nucleo IP en la ventana Sources in Project. b. De un click en el icono + al lado del proceso coregen en la ventana Processes for Current Source Los procesos Manage cores se muestran en la ventana de procesos. c. De doble click sobre Manage cores A continuacin se muestra la ventana de CORE Generator. Muchas operaciones del Core Generator pueden implementarse desde el navegador de proyectos sin la necesidad de abrir la ventana del CORE Generator. Estas operaciones se mencionaran ms adelante en este documento en el apartado de implementando operaciones de CORE Generator en Xilinx ISE 3.-Crear un nuevo proyecto en COORE Generator En la seccin flow(flujo), seleccionar Desing Entry yVHDL. En la seccin Flow Settings, seleccionar el fabricante apropiado. El ajuste del vendedor especifica el proveedor de la herramienta de sntesis que utiliza para su diseo y se llena en el formato adecuado en el cuadro de dilogo.Un formato adecuado permite integrar e implementar la lista de conexiones dentro del nivel superior del archivo VHDL.

4.- En la ventana de COORE Generator, crea ncleos personalizados que quieras utilizar en tu diseo. Crear un ncleo IP personalizado Utilice el siguiente procedimiento para crear un ncleo IP personalizado y as agregarlo a tu proyecto en C-G 1. En la ventana de catlogos IP, encuentra el IP que se desea personalizar 2. En la ventana de consola IP, seleccione el ncleo dando doble click sobre su nombre. 3. En la interfaz de personalizacin para la IP seleccionada, configura las opciones deseadas para el ncleo. 4. Cuando hallas terminado, selecciona Generate (generar) o pulsa el botn de la barra de herramientas.

Error! Use the Home tab to apply title to the text that you want to appear here.

11

5.- Instancia los ncleos que hallas creado.

Al seleccionar VHDL como el lenguaje preferido,se generaran los siguientes archivos para la instanciacin de cada ncleo que se ah creado en el sistema C-G Una plantilla de implementacin VHDL, component_name.vho, que contiene los siguientes artculos. -Declaracin de componente. -Instanciacin de componente. Una netlist de implementacin,component_name.edn ocomponent_name.ngc. Para algunos ncleos, una o ms netlists NGC de bajo nivel. Un archivo envoltura, component_name.vhd, para simulacin funcional del ncleo. Para instanciar un ncleo en un diseo VHDL 1. 2. 3. Copia la declaracin del componente y la instanciacin de la plantilla de instanciacin del ncleo (archivo VHO) dentro de las reas apropiadas del diseo padre. En el diseo padre, cambia your_instance_name(nombre genrico de la plantilla de instanciacin) por el nombre actual de la instancia. En el diseo padre, modifica los puertos de conexin copiados de la plantilla de instanciacin para reflejar las conexiones actuales en el diseo.

El archivo VHO o plantilla de instanciacin contiene instrucciones que describen la forma de instanciacin del ncleo en el diseo padre. El bloque de declaracin e instanciacin del componente establece una conexin entre el cdigo VHDL y el netlist NGC para el modulo COORE Generator . Esta conexin es necesaria para asegurar que el ncleo se ah integrado correctamente cuando el diseo VHDL padre ah sido sintetizado.

6.-Crea un banco de prueba. Para simular un diseo que contiene un ncleo, crea un archivo de banco de pruebas. El banco de prueba debe instanciar el modulo de nivel superior y debe contener los estmulos para impulsar los puertos de entrada del diseo. El siguiente ejemplo muestra una parte de un archivo de banco de pruebas usado para simular un diseo llamado myadder8_top. El archivo del banco de prueba se llama myadder_tb.vhd. En este ejemplo, se omite la parte que contiene la seccin de estmulos

12

Ingeniero Hctor Herminio Bayona Acevedo

Archivo de banco de pruebas VHDL: myadder_tb.vhd.library IEEE; use IEEE.std_logic_1164.ALL; ENTITY myadder_tb is END myadder_tb; ARCHITECTURE simulate OF myadder_tb IS ------------------------------------------------------ The parent design, myadder8_top, is instantiated --- in this testbench. Note the component --- declaration and the instantiation. ---------------------------------------------------COMPONENT myadder8_top PORT ( AP : IN std_logic_vector(7 downto 0); BP : IN std_logic_vector(7 downto 0); CLKP: IN std_logic ; C_INP: IN std_logic; QP: OUT std_logic_VECTOR (8 downto 0)); END COMPONENT; SIGNAL a_data_input : std_logic_vector(7 DOWNTO 0); SIGNAL b_data_input : std_logic_vector(7 DOWNTO 0); SIGNAL clock : std_logic; SIGNAL carry_in : std_logic; SIGNAL sum : std_logic_vector (8 DOWNTO 0); BEGIN uut: myadder8_top PORT MAP ( AP => a_data_input, BP => b_data_input, CLKP => clock, C_INP=> carry_in, QP => Q); st...