miércoles, 10 de agosto de 2011

Como agregar el XUPV5 board para Co-Simulación en Hardware con System Generator/Simulink

Co-Simulación en Hardware (Hardware Co_Simulation) es una poderosa herramienta en el ambiente de desarrollo Simulink-System Generator. Permite al diseñador simular en 'paralelo' en real-hardware, lo mismo que se simula en software usando los bloques de SysGen. 
Cando uno installa la version full de ISE, al instalar System Generator por defecto se instalan lo que se llaman 'plug-in' de los boards DSP de Xilinx. Sin embargo, dado que el XUPV5 board no es considerado un 'board DSP' no aparece en la lista de opciones de los boards para llevar a cabo co-simulation. Si aparece el ML505 board, que CASI igual que el XUPV5, pero con una 'pequeña' diferencia: el ML505 tiene un Virtex 5 XC5VLX50T, mientras que el XUPV5 tiene un XC5VLX110T. Pequeña gran diferencia que hace que NO se pueda usar el plug-in del board ML505 para el board XUPV5. Entonces... cual es la salida/solución si uno tiene el XUPV5 y quiere hacer Co-Simulación?????? 

Agregando el XUPV5 a la Lista de Boards de Co-Simulación
Paso 1:
Una vez abierto Simulink y abriendo colocado el bloque 'System Generator' en un diseño cualquiera, abrir el bloque 'System Generator' (doble click sobre el bloque). La ventana de configuración del bloque 'SysGen' aparecerá. Seleccione en 'Compilation' la opción 'Hardware Co-Simulation', y luego en el menú siguiente seleccione 'New Compilation Target'. 




Paso 2:
La ventana 'System Generator Board Description Builder' se abrirá. 




En esta ventana hay varios elementos a configurar. 
Paso 3: 
'Target Board Identification': Board Name: puede usarse cualquier nombre. Convenientemente use uno que facilite la identificación del board. Por ejemplo, XUPV5.
Paso 4:
'System Clock': 1- Frequency(MHZ): escribir la frecuencia del reloj del board que se usará normalmente como fuente de reloj para el FPGA. El oscilador de entrada al LX110T es de 100MHz. 2- Pin Location: el pin de E/S por el cual entra el oscilador el FPGA: AH15.
Paso 5:
'JTAG Options': por defecto la comunicación entre el board y el PC es hara usando JTAG. Hay otra opción que es la de usar Ethernet, pero como la configuración es mas complicada explicare ahora la de JTAG, después, de acuerdo a los pedidos, puedo explicar la de Ethernet. Las opciones de la configuración JTAG son: 1- Boundary Scan Position: esta es la posición del FPGA en la cadena JTAG de dispositivos en el board. El valor a introducir acá es 5, es decir es el quinto dispositivo de la cadena. Usando iMPACT es posible 'ver' la cadena y deducir la posición del FPGA. 2- IR Length: este es un parámetro necesario para la comunicación a través de JTAG. Si está el board conectado a su PC/Laptop por medio del cable JTAG, presione 'Detect' para que automáticamente se invoque iMPACT y llene los datos requeridos. Sino tiene el board conectado directamente escriba: 16,16,8,8,10.


Paso 6:
'Targetable Devices': en esta sección se debe introducir el FPGA que usa el board XUPV5. Click 'Add' y seleccione: Virtex 5, XC5VLX110T, Speed -1, package ff1136. Click OK.
Hasta acá la configuración de esta ventana debería ser similar a la mostrada a continuación: 


Paso 7:
En la sección 'Non-Memory Mapped Ports' click el botón 'Add' para agregar algunos puertos de E/S del FPGA que considere necesarios. La ventana 'Configure a Port' aparecerá. Introduzca el nombre del puerto de E/S, seleccione la direccion del mismo, y la ubicacion (Location). Opcionalmente puede tambien seleccionar si el puerto deber ser configurado con el resistor de Pullup o Pulldown. Una vez terminado con estas configuraciones, Click 'Add Pin'. El puerto de E/S configurado sera ahora mostrado en la parte llamada 'Pin List'. Para introducir otro puerto seleccione 'Save and Starte New'. Se pueden introducir tantos puertos como hagan falta. Una vez concluida esta tarea, presione 'Save and Close'.




Nota importante: Se aclara que este paso es totalmente OPCIONAL para la Co-Simulación. 


Paso 8:
Una vez completados los pasos anteriores, la siguiente figura debería ser similar a la que tienes en tu computadora (excepto por los 'Non-Memory Mapped Ports', que pueden no estar o pueden ser otros)




Paso 9:
Presionar 'Install' para instalar la configuracion del XUPV board en el directorio de plug-in de SysGen.




Navegue hasta el directorio:  ../Xilinx/
 En ese directorio debería ahora aparecer el directorio XUPV5 JTAG, tal como muestra la siguiente figura: 




Paso 10:
Finalizada la instalación un ventana de Simulink aparecerá con los puertos de E/S configurados. 




Grabe la librería de los puertos de E/S. Estos puertos pueden ahora usarse en cualquier sistema con System Generator. 

Paso 11:
Para probar que todo esta instalado correctamente. Cierre Matlab y luego ábralo nuevamente. En cualquier sistema de Simulink con el bloque System Generator, abra el bloque System Generator, y seleccione en 'Compilation', 'Hardware Co-Simulation'. Ahora deberia aparecer en la lista XUPV5 JTAG. 




Paso 12:
Listo ! ... el XUPV5 puede ahora usarse para correr Co-Simulación en Hardware de su sistema Simulink. 

Versión pdf   :)


4 comentarios:

  1. Como se hace cuando es por medio del USB
    He intententsdo y no me reconoce el dispositivo Basys2 en el boton DETEC

    ResponderEliminar
  2. Excelente documento, me gustaría que me ayudaras a configurar mediante Ethernet mi placa es una FPGA - Spartan 3AN

    ResponderEliminar
  3. Cuando usan el plugin de "Digilent USB JTAG cable" y quieren conocer el IR legth, lo pueden hacer desde ISE, en Chipscope; se comunican con la tarjeta y después en el menu JTAG chain > JTAG chain setup. Y en la ventana que aparece se muestra el valor IR legth.
    Para el caso de la Nexys 4 artix 7 el IR es de 6.

    ResponderEliminar