Você está na página 1de 6

Implementacin de IP-core DSP48 en modo ALU, usando USB

Keyboard y UART Terminal


Erika Toro. Jhon Uquillas. Danilo Urbano
Departamento de Elctrica y Electrnica.
Universidad de las Fuerzas Armadas ESPE
eatoro@espe.edu.ec, jfuquillas@espe.edu.ec, wdurbano@espe.edu.ec
Resumen- - A medida que la tecnologa de fabricacin de Para la resolucin del problema se propone el siguiente
chips avanza se agregan ms transistores y su tamao se reduce diagrama jerrquico a partir del cual se realizara la
es decir la escala de integracin es muy grande. Para el diseo implementacin.
de circuitos electrnicos de alta escala de integracin existen
herramientas verstiles y flexibles como FPGA y el lenguaje
VHDL que permiten reducir el tiempo en la elaboracin de
diseos complejos. El uso de IP core nos facilita esta tarea, ya
que son bloques lgicos previamente diseados, realizan una
tarea especfica y pueden ser reusados. Sin embargo se debe
adaptar segn el requerimiento del problema. En este
documento se utiliza IPcore DSP48 para realizar operaciones
aritmticas, el ingreso de datos usando teclado USB, la
visualizacin mediante terminal UART en una pantalla de PC
adems se implementa el sistema operativo mediante mquinas
de estado finito. Adems presenta el diagrama jerrquico del
programa, descripcin, anlisis, simulacin de cada mdulo y
recomendaciones para futuros trabajos con IP cores y
dispositivos externos como teclado USB en FPGA Basys3.

I. INTRODUCCIN Figura 1. Diagrama Jerrquico


El funcionamiento de proyecto est basado en mquinas
B. Mdulos
de estado que son circuitos secuenciales usados en muchos
EL reto presentado en el proyecto hace necesario el uso
sistemas digitales para controlar su comportamiento y rutas
del Demo de Keyboard disponible para Basys 3 de Digilent.
del flujo de datos. [1]
[8]
IP Core (Intellectual Property Core), es un bloque de
Como base para la resolucin este mdulo permite el
lgica o datos usado en FPGA, forma parte de la creciente
ingreso por teclado y muestra a travs de la terminal UART
tendencia de la industria de automatizacin de diseo
el scan-code de la tecla presionada en pantalla.
electrnico hacia el uso repetido de componentes
El cdigo fuente de el modulo demo es verilog por lo
previamente diseados. Idealmente el IP core debe ser capaz
que se realiz la implementacin de un proyecto en Vivado
de ser fcilmente insertado en cualquier tecnologa de
Xilix de tipo MIX: VHDL y VERILOG que permite el uso
proveedor o metodologa de diseo. Siendo las unidades
de estos dos lenguajes de descripcin de hardware.
centrales de procesamiento (CPU), los controladores
Partiendo de esta informacin se realiza la descripcin de
Ethernet ejemplos de IP cores.[5]
los mdulos usados y diseados de acorde a la necesidad del
problema:
El terminal UART es el componente clave del
subsistema de comunicaciones series de una computadora.
USB Keyboard
El UART toma bytes de datos y transmite los bits
Usando la tarjeta de trabajo Basys 3 con FPGA Artix-7
individuales de forma secuencial. En el destino, un segundo
se puede controlar un teclado o mouse a travs del puerto
UART reensambla los bits en bytes completos. La
USB HID HOST, a diferencia de las anteriores familias de
transmisin serie de la informacin digital (bits) a travs de
FPGA que poseen un puerto PS2, la comunicacin de datos
un cable nico es ms efectiva en cuanto a costo que la
a travs del puerto USB HOST en la familia 7 emula el
transmisin en paralelo a travs de mltiples cables.[3][6]
funcionamiento del puerto PS2 por medio de un
Para este proyecto la salida se visualiza en la pantalla de
microcontrolador PIC24FJ128.[2] (figura 2)
una computadora PC mediante una ventana de terminal
UART que recibe datos seriales provenientes de la tarjeta
FPGA .
Para la realizacin de los respectivos mdulos se
establece un diagrama jerrquico que muestra la particin
del diseo en mdulos.

II. DESCRIPCIN DEL PROBLEMA Figura 2. Basys 3 PIC24 connections. (Basys 3 Manual
reference)
Este microcontrolador covierte los datos recibidos en dos
Implementar en FPGA un sistema computacional descrito en
seales que son procesadas por el FPGA, PS2_CLK es una
HDL que incluye IP-cores del catlogo de Xilinx Vivado. El
seal de reloj y PS2_DAT una lnea de datos trasmitidos en
cmputo se realiza mediante el IPcore, la entrada de datos
serie de acuerdo a la Figura 3.
usando teclado USB, la visualizacin mediante terminal
UART en una pantalla de PC, y el sistema operativo (control)
ser implementado mediante FSMs.

A. Particin del diseo Figura 3. Secuencia de datos en la interfaz PS2


En la trasmisin de datos se envan 11 bits el primero
corresponde al bit de inicio (logic low) los siguientes 8 bits
que indican el dato de la tecla (scan-code) cuyo flujo es en
LSB primero y dos bits siguientes de paridad y de parada dise una maquina secuencial que reciba dichos datos en
cuando no se ingresa ningn datos (logic high). cdigo ASCII formato std_logic_vector y permita el ingreso
El modulo codifica los datos obtenidos y realiza los de nmeros y rechace letras o cualquier otro carcter en los
sincronismos correspondientes entre el reloj de teclado ps2 y operandos, el esquema del mdulo se muestra en la figura 7.
reloj del sistema.
Como salida de este mdulo se obtiene una seal de 16
bits correspondientes al Scan-Code (Figura 4) de las dos
teclas presionadas, recordando que los operandos A y C
estn en el rango decimal de (00:99).

Figura 7. Maquina Secuencial de validacin de operandos.


Siendo Data el vector que contiene los dos operandos la
maquina secuencial valida y extrae los operandos que se
Figura 4. Scan-Codes [2] conectaran al ip-core seleccionado.

Conversor Binario-ASCII IP CORE DSP48 Macro V 3.0


Este mdulo contenido en el demo de keyboard permite la En el Mercado los chips DSP son de gran de utilidad para el
conversin de los datos obtenidos en el mdulo Anterior a su procesamiento digital de seales, ya que permiten la
equivalente en cdigo ASCII el esquema general se presenta realizacin de operaciones matemticas consecutivas que
en la figura 5. definen el funcionamiento de un algoritmo matemtico
requerido.
Entre las aplicaciones bsicas de un DSP se tiene su
operacin como acumulador, multiplicador, sumador,
multiplicacin compleja y diseo de filtros.
La librera de Vivado Xilinx IP-Cores dispone del mdulo
DSP48 Macro V 3.0 que es una optimizacin del anterior
mdulo DSP V 2.0, al integrar 64 instrucciones en un solo
Figura 5. Modulo Conversor Binario-ASCII
modulo accediendo a cada una mediante la entrada de
El cdigo para la conversin en Verilog se muestra en la seleccin SEL.[9]
figura 6. Para la implementacin del IP-CORE se us 2 entradas (A y
C) en modo de ALU de 2 Operaciones (Tabla 1).
Tabla 1. Operaciones de IP-CORE

SEL OPERACION
0 A+C
1 A-C

El esquema general del IP-CORE DSP48 a implementar se


detalla en la figura

Figura 8. Ip-Core DSP48 de dos operandos y dos


operaciones.

Figura 6. Codigo Fuente de Conversin Bin-Ascii Terminal UART


To UART La tarjeta Basys 3 incluye un Puente USB-UART que
Previo al envi de los operando al IP-Core es necesario permite utilizar comandos COM para comunicar la tarjeta
realizar la validacin de los datos de forma que se ingresen con la computadora. Esto se hace posible al convertir los
nmeros y el operando de la operacin a realizar, para esto se paquetes USB a UART/puerto serie. Donde estos datos serie
se intercambian con el FPGA usando un puerto en serie de 2
hilos (TXD / RXD) con comandos COM desde la PC se
genera trfico de datos en serie en los pines B18 y A18 de la
FPGA (Figura 9).

Figura 9. Basys 3 FT2232HQ connections.[2]

De forma general los controladores para establecer la


comunicacin TXD/RXD de trasmisin y recepcin, reciben
el dato serie a mostrar as como una seal de start y el reloj
del sistema para establecer la sincronizacin y comunicacin
con la PC.
El esquema general de los controladores de trasmisin se
muestra en la figura 10.

Figura 10. Controladores de TXD/RXD

Figura 11. Codigo Verilog Controlador Uart_buf_con

Figura 12. Codigo Verilog Modulo Uart_tx


III. IMPLEMENTACIN VI.RECOMENDACIONES
Siguiendo el esquema jerrquico la implementacin del En el desarrollo del sistema fue frecuente el uso del
sistema se realiza mediando un archivo Top por necesidad de sistema hexadecimal para la representacin de los
manejo de cdigo se realiza en Verilog. Figura 13. datos, de igual manera se trabajo con cdigo ascii
para la comunicacin serial, por este motivo se
trabajo con funciones para convertir los datos de
tipo binario a entero y viceversa, la librera que
permite llevar a cabo estas operaciones
std_logic_unsigned result muy conveniente ya que
se trabaj con valores sin signo, existen otras
libreras como std_logic_arith que permite
Figura 13. Esquema Jerrquico Vivado Xilinx considerar el signo al momento de realizar la
conversin, se recomienda por lo tanto considerar
EL mapeo de cada mdulo o componente en el lenguaje esto al momento de disear un sistema como el
verilog se realiza de acuerdo a la figura 14. propuesto en este informe.

El trabajar con Verilog y VHDL en un mismo


sistema puede ser confuso en un principio por este
motivo se recomienda tener presente los
fundamentos acerca de VHDL esto facilita el
entendimiento de la programacin en Verilog y
permite aprovechar sus ventajas como por ejemplo a
la hora de instanciar componentes en el archivo top
Figura 14. Mapeo en Verilog de Modulo to Uart y IP-Core lo cual es mucho ms sencillo que en VHDL.
Dsp48

REFERENCIAS
IV. RESULTADOS
[1] Pedroni. V. A. (2004). Circuit Design with VHDL. Londres. Inglaterra.
MIT press.

V. CONCLUSIONES [2] Digilent. (2016). Basys 3 FPGA Board Reference Manual.

- IP core es un bloque que realiza determinada [3] Lgica Programable. (s.f.). Recuperado el 25 de 07 de 2017, de Basys
operacin, cuyo fin es ser insertado en cualquier 3 Artix-7 FPGA Board:
tecnologa de proveedor o metodologa de diseo. https://sites.google.com/site/logicaprogramable/calculadoras/fpga/basy
s-3-artix-7-fpga-board
- El ambiente de desarrollo vivado Xilinx presta [4] Digilent. (2014). VGA Display Controller. Recuperado el 21 de 07 de
muchos facilidades a la hora de elaborar un 2017 de:
https://learn.digilentinc.com/Documents/269
proyecto, por lo tanto es necesario realizar un
esquema de bloques grafico previo a la
programacin.

- El lenguaje VHDL nos permite reutilizar mdulos


que ya han sido desarrollados, depurados y
probados adems de compartir informacin entre
integrantes y equipos de un proyecto.

- Los pines en constraints se deben colocar de manera


adecuada de acuerdo a la FPGA que se ocupe de
manera que no se designen pines inexistentes u
ocupados, adems los nombres de las variables de
entradas sean iguales a los indicados en el proyecto.

- La creacin del archivo Test Bench permite simular


y verificar que las operaciones que realiza el
circuito sean correctas.

- La integracin de mdulos en distintos lenguajes de


descripcin de hardware (VHDL, Verilog) es
posible en Vivado Xilix mediante la creacin de un
Proyecto de formato Mix.
[5] Rouse, M. (Marzo de 2011). What is?x. Recuperado el 4 de Agosto de 2017, de http://whatis.techtarget.com/definition/IP-core-intellectual-property-core
[6] Universal Asynchronous Receiver-Transmitter. (11 de Diciembre de 2014). Recuperado el 4 de Agosto de 2017, de What is?:
https://Universal_Asynchronous_Receiver-Transmitter
[7] , L. (2013). www.xilinx.com. Recuperado el 4 de Agosto de 2017, de Finite State Machines :
https://www.xilinx.com/support/documentation/university/Vivado-Teaching/HDL-Design/2013x/Nexys4/Verilog/docs-pdf/lab10.pdf
[9] Digilent (2014). Basys 3 Keyboard Demo. Recuperado el 07 de 08 de 2017 de:
https://reference.digilentinc.com/learn/programmable-logic/tutorials/basys-3-keyboard-demo/start
[8] Xilinx Vivado Desing Suite, DSP48 Macro V 3.0 "LogiCORE IP Product Guide, PG148 November 18 2015."

Você também pode gostar