• No results found

Secure Key Generation and Secure Routing Setup

Esta placa está provista de un canal de comunicación USB (Universal Serial Bus) para la comunicacion entre una PC (Personal Computer) y el FPGA. De esta manera, las aplicaciones sobre FPGA que requieran de una alta razón de transferencia pueden ser desarrolladas fácilmente por medio de una PC. Al mismo tiempo, este enlace de comunicación es usado para transmitir el programa de configuración del FPGA siempre que sea necesario.

Las principales características de la tarjeta son las siguientes:

• FPGA APEX EP20K100EQC240-2X de Altera cuyas características generales se representan en la tabla siguiente:

Tabla II.3. Características del FPGA (EP20K100EQC240-2X).

Parámetro Valor Unidades

Total de pines 240 -

Capacidad RAM 53 248 bits

Número máximo de compuertas 263 000 - Número máximo de macroceldas 416 - Voltaje de suministro interno 1.8 V Niveles de voltaje en pines de E/S 1.8, 2.5, 3.3, 5.0* V

Nota: El resto de las características de este dispositivo pueden ser consultadas en [“APEX 20K Device Family Data Sheet”, 2006].

• Controlador USB Cypress.

• Conector estándar de fuente de alimentación (5.0v) para aplicaciones de alto consumo (AC/DC IN).

• Un chip de memoria EEPROM EPC2LC20 que soporta la configuración en modo serie del FPGA.

• Todos los pines del FPGA son accesibles usando conectores estándares en relación a la interconexión de la tarjeta con otros sistemas.

• Esta placa admite los niveles de bajo voltaje como los que se muestran en la siguiente figura (tomada de una nota de aplicación de la Texas Instruments).

Figura II.13. Niveles de voltajes.

Las principales ventajas de este sistema son:

• El bajo costo de los componentes de hardware presentes en la tarjeta.

• El pequeño número de recursos lógicos y pines del FPGA que son dedicados al enlace de comunicación. El resto de estos recursos pueden ser programados de acuerdo a la aplicación usada.

• El hardware puede ser conectado a la PC sin necesidad de resetear esta última.

• Si el consumo de corriente de la aplicación es bajo, la tarjeta puede ser alimentada por el busUSB eliminando la necesidad de una fuente de suministro externa.

I.3.3. QUARTUS II.

El software de diseño Quartus II de Altera proporciona una completa y funcional plataforma para el diseño de sistemas electrónicos digitales que fácilmente se adapta a las necesidades de diseño de

cada usuario particular. Es una herramienta, tal como se ha comentado, especialmente indicada para el desarrollo de Sistemas en Chips Programables (SOPC). El software incluye soluciones para todas las fases de diseño utilizando diferentes tipos de dispositivos lógicos programables tales como FPGA o CPLD.

El Quartus II posee un interfaz de usuario totalmente gráfica, fácil de manejar y de comprender, además de que cuenta con un sistema de ayuda muy amplio que se complementa con la existencia de un tutorial.

Entre las familias de estos dispositivos lógicos programables de Altera que se pueden simular y compilar en este software están:

Tabla II.4. Familias de dispositivos lógicos programables de Altera.

• APEX™ 20K. • Cyclone™.

• APEX 20KC. • HardCopy Stratix™.

• APEX 20KE. • MAX® 3000A.

• APEX™ II. • MAX 7000AE.

• FLEX® 6000. • MAX 7000B.

• FLEX 10K®. • MAX 7000S.

• FLEX 10KA. • Mercury™.

• FLEX 10KE. • Stratix.

Se pueden utilizar las diferentes aplicaciones con las que cuenta el software Quartus II para implementar los diferentes procesos que conforman el diseño de un sistema digital. Para ello Quartus II provee al usuario de una interfaz gráfica con la que se pueden desarrollar los diferentes procesos de forma óptima.

Los avances en la interfaz de usuario de este software permiten trabajar al mismo tiempo con múltiples archivos y transferir información de varios archivos que se encuentren en múltiples diseños. Usted puede ver una jerarquía entera de archivos y hacer movimientos fácilmente de un nivel jerárquico a otro.

La versión 4.2 del Quartus II incluye nuevas facilidades en cuanto a las herramientas EDA que soporta, los dispositivos lógicos que tiene disponibles para los diseños, la creación de estímulos en el tiempo, la síntesis y revisión de los diseños, entre otras, que lo hacen muy tentativo.

Alguno de estos nuevos dispositivos y sus respectivas familias se mencionan: Tabla II.5. nuevos dispositivos y sus familias.

Cyclone II Devices Stratix II Device Family Configuration Devices

• EP2C5 • EP2S60ESF484 • EPCS64 (Full Support)

• EP2C8 • EP2S60ESF672 • EP2C20 • EP2S60ESF1020 • EP2C35 • EP2S30F484 • EP2C50 • EP2S30F672 • EP2C70 • EP2S130F1020 • EP2S130F1508

El Quartus II versión 4.2 contiene una biblioteca de megafunciones incluyendo librerías de funciones de modelos parametrizados (LPM) que proporciona Altera, la cual puede resultar de mucha utilidad en diseños complejos de alto nivel. En la opción MegaWizard® Plug-In Manager (Tools menú) el usuario puede crear o modificar archivos del diseño que contienen una o varias megafunciones. El uso de las megafunciones proporciona una mayor eficiencia en la realización de la síntesis lógica del diseño; pero tienen como principal inconveniente que no son portables y que están implementadas solo para las familias de Altera.

La versión en cuestión del Quartus II posee megafunciones de analizadores, componentes aritméticos (acumuladores, multiplicadores, divisores, etc.), compuertas lógicas (OR, AND, XOR, inversores, etc.), componentes de entrada/salida, componentes de almacenamiento y compilador de memoria (Dorta, G. 2006).

A continuación se intentará describir de forma general los medios y los pasos seguidos para la implementación de cada una de éstas aplicaciones durante el desarrollo del Proyecto.

I.3.3.1. Diseño.

Un proyecto gestionado desde Quartus II incorpora todos los archivos de diseño y de software necesarios para la implementación del diseño que se desee elaborar. Para esto, se pueden usar las herramientas Quartus II Block Editor o Text Editor, mediante las cuales se podrá implementar de forma óptima los diferentes diseños digitales haciendo uso de las funciones predefinidas en las librerías de Altera.

Figura II.14. Pasos para la implementación.

Esta herramienta permite al usuario describir los diseños de diversas formas haciendo uso de diagramas de bloque/esquemático, lenguajes de programación AHDL, VHDL y Verilog HDL.

En este proyecto se han utilizado dos metodologías básicas para la elaboración del diseño de las aplicaciones seleccionadas. Por un lado, módulos editados a través de lenguajes de descripción de hardware VHDL (.vdh) y por otro lado, utilizando la aplicación de diseño de sistemas digitales que incorpora Quartus II mediante la utilización de archivos tipo diagramas de bloque (.bdf).

I.3.3.2. Síntesis.

Quartus II ofrece una herramienta para sintetizar los diseños implementados en la etapa de diseño. Para ello dispone de una gran número de opciones para realizar el proceso a través del módulo

Analysis & Syntesis Settings, mediante la cual se pueden elegir las diferentes metodologías para sintetizar el diseño.

Este módulo dispone de un compilador con el que se pueden analizar el nivel de corrección del diseño implementado (archivos VHDL) y proceder así a crear la base de datos y archivos con la que se desarrollará el proyecto iniciado en Quartus II.

I.3.3.3. Placement & Routing.

La herramienta Quartus II Fitter se encarga de localizar y plasmar el sistema que ha sido diseñado sobre los dispositivos lógicos presentes en la placa de desarrollo utilizada.

Utilizando los datos que se han generado a través del proceso de síntesis, este adaptador se encarga de de combinar las precondiciones en cuanto a lógica y tiempos derivadas del diseño creado con los recursos de los que dispone la placa de desarrollo o el dispositivo programable utilizado en cada caso.

El adaptador se encargará de asignar cada una de las funciones lógicas generadas en la posición óptima del sistema de celdas lógicas del dispositivo hardware, seleccionando al mismo tiempo las interconexiones y asignaciones de pines más apropiadas. Esto es lo que se conoce como Placement & Routing. El Placement es como se denomina al proceso de asignación de celdas, mientras que el Routing se encargará del conexionado de las mismas.

I.3.2.4. Simulación.

Para comprobar que el funcionamiento de los diferentes dispositivos es el deseado, Quartus II incorpora una herramienta de simulación, el Quartus II Simulator. Mediante esta herramienta se puede simular el comportamiento de cualquier diseño generado en un proyecto. Dependiendo de las necesidades de cada usuario, puede configurarse una simulación de tipo funcional para los diferentes diseños o bien una simulación de tipo temporal, para analizar tanto las operaciones lógicas del diseño así como el peor caso en cuanto al retardo o comportamiento temporal del diseño en el dispositivo.

Esta aplicación permite tanto la simulación de diseños completos como de partes o módulos separados, facilitando de esta forma la progresión en el desarrollo del sistema.

De entre los diferentes parámetros que pueden configurarse en las simulaciones destacan el período temporal que debe cubrir la simulación, el vector de estímulos generados, etc.

Antes del inicio de cualquier simulación, se debe generar el archivo netlist apropiado indicando si se destina a simulación temporal o funcional. En consecuencia, se deberá crear el vector apropiado de señales que regulen la simulación. El simulador utilizará estos vectores de entrada de señales para generar el valor de las salidas que el sistema digital da como resultado.

Para la generación de estos vectores de entrada de datos, existe una aplicación en el software que permite generar estos vectores a través de un formato de ondas. Se trata de la aplicación Waveform Editor (Figura II.14), la cual, como se ha comentado, representa los vectores mediante formas de onda que describen el comportamiento del dispositivo lógico en el diseño implementado.

Figura II.15. Waveform Editor.

I.3.3.5. Programación.

Una vez que el proyecto fue generado en Quartus II y ha sido compilado mediante las herramientas que el mismo dispone para ello, se puede pasar a programar o configurar el dispositivo de Altera. El módulo de ensamblaje del compilador de Quartus II genera los pertinentes archivos de programación que el módulo Quartus II Programmer utilizará para configurar un dispositivo a través del hardware de Altera (Sanchez, M. A. 2004).

Existen tres vías para la programación del FPGA:

1. Desde la PC a través del bus USB y la interfaz JTAG.

2. Desde la PC a través del puerto paralelo y la interfaz JTAG (JTAG 1) usando un cable

ByteBlaster de Altera.

3. Desde la memoria EEPROM usando el modo de configuración serie (JTAG2).

Para lograr programar el FPGA, unido al Kit referenciado anteriormente, se brinda un software nombrado IEA, que incluye una ventana de aplicación que permite el control de la programación del FPGA y el monitoreo de la transferencia de datos. El ambiente de trabajo para esta aplicación se muestra en la figura II.16.

Figura II.16. Entorno de trabajo de la aplicación IEA.

II.4. Conclusiones parciales del capítulo.

Tomando como referencia los contenidos tratados en este capítulo, se derivan las siguientes conclusiones:

1. Los dispositivos lógicos programables APEX 20K debido a sus características son de gran utilidad para la implementación de aplicaciones digitales.

2. El Quartus II es un software que presenta un alto grado de flexibilidad para describir los diseños digitales y para seleccionar el dispositivo lógico programable de Altera en el cual se desea compilar y simular.

3. La versión 4.2 del Quartus II incluye nuevas bondades, entre las que se destacan: el aumento de los dispositivos lógicos que tiene disponibles para los diseños y la existencia de una biblioteca con una amplia variedad de megafunciones, la cual resulta de mucha utilidad en diseños complejos de alto nivel.

CAPÍTULO III APLICACIÓN DE ADQUISICIÓN DE DATOS CONTROLADO POR FPGA,