Abstract Este artculo contiene el reporte del primer proyecto de diseo en VHDL para el curso de Lenguajes de Descripcin de Hardware. La primera seccin describe una pequea introduccin al proyecto, as como un enfoque de la solucin del mismo. En la segunda seccin se incluyen los aspectos ms importantes de la solucin, separndola en cada uno de sus enunciados. Igualmente se incluyen los cdigos y diagramas, a nivel de RTL, de los mdulos principales. La tercera seccin de este artculo exhibe los resultados y simulaciones de los mdulos ms importantes. Por ltimo, la seccin de conclusiones presenta un resumen final de los principales aspectos del proyecto, as como informacin adicional que se obtuvo a partir de los resultados del mismo.
I. INTRODUCCIN STE documento presenta el cdigo, resultados y las simulaciones realizadas para llevar a cabo el Proyecto de Diseo I del curso Lenguajes de Descripcin de Hardware. El proyecto se divide en 5 enunciados, ms uno opcional, en los que desarrollan mdulos que son necesarios para el diseo del enunciado final. El tema central de dicho proyecto es el manejo y la conversin de nmeros decimales codificados en binario (Binary Coded Decimal), esto se logr mediante la creacin de distintos mdulos para tareas especficas (decodificaciones, multiplexaciones, sumas, entre otras) donde a medida que se implementaban nuevas funciones fue necesario instanciar las diseadas anteriormente, dando como resultado un sistema modular, que finalmente realizaba la funcin de sumar dos nmeros en BCD de dos dgitos. En las secciones posteriores se presenta, con un mayor nivel de detalle, el diseo y los resultados obtenidos de las diferentes etapas del proyecto. II. DISEO DE LA SOLUCIN En general, el diseo de la solucin se bas enteramente en las especificaciones de cada seccin, haciendo uso de herramientas de diseo, por ejemplo simplificacin de
funciones por mapas de Karnaugh para el caso de las tablas de verdad de los diferentes decodificadores y comparadores. Las siguientes subsecciones incluyen el desarrollo de la solucin para cada una de las etapas del proyecto.
A. Parte I En la primera parte del proyecto, se debi disear un sistema que permitiera visualizar cuatro nmeros entre 0 a 9 en un display de 7 segmentos. Para lograr esto, se dise un convertidor de BCD a 7 segmentos, segn la tabla de verdad sugerida en el enunciado. El diagrama a nivel de RTL del convertidor diseado se muestra en la Figura 1. Posteriormente se realizaron cuatro instancias de este mismo mdulo para ser conectadas a cada una de las entradas del sistema.
Fig 1. Diagrama a nivel de RTL del convertidor de BCD a 7 segmentos.
B. Parte II Para dar solucin a la parte 2 fue necesario implementar un mdulo capaz de convertir un nmero de binario de cuatro bits a un nmero decimal de dos dgitos codificado en binario. Una vez finalizada la conversin el resultado es mostrado en dos displays siete segmentos con ayuda de un decodificador siete segmentos. La solucin consisti en un circuito donde se comparaba el nmero binario, cuando este fuese mayor a nueve el sistema actuaria para cambiar los bits siguientes e iniciar la cuenta de Reporte de primer proyecto de diseo con VHDL Yeiner Arias, Instituto Tecnolgico de Costa Rica yeinerarias@gmail.com Jeferson Gonzlez, Instituto Tecnolgico de Costa Rica jefg89@gmail.com E
Esta presentacin de la estructura del documento es ms adecuada hacia el final de la introduccin del documento, no en el abstract se podra omitir esta frase se podra cambiar por generado, pues esto lo genera la herramienta a partir de la descripcin que realizaron Formato 20/20 Estructura 20/20 Figuras 15/20 Ortografa 18/20 Redaccin 18/20 ______________ Nota 91/100 Notas PD1> 108.6 TD1> 100 ITCR. Y. Arias, J. Gonzlez. Reporte de primer proyecto de diseo en VHDL 2 las unidas desde cero y adems cambiar las decenas a uno. Las partes ms relevantes del cdigo diseado se muestran a continuacin e la figura 2.
Fig 2. Cdigo de VHDL implementado en la parte 2.
C. Parte III En la parte 3 se realizaron dos diseos, el primero un sumador completo (Full Adder) el cual suma dos bits "a" y "b" adems de un acareo de entrada "cin" y tiene como salida el resultado de la suma "s" y una acareo de salida "cout". El RTL del sumador de muestra en la figura 3.
Fig 3. Diagrama RTL de mdulo sumador completo
El segundo diseo consisti en sumar dos numero binario de cuatro bits cada uno, para esto se utiliz un arreglo de sumadores completos donde, el acareo de salida de un sumador se conecta al acareo de entrada del siguiente as hasta unir cuatro de estos. El resultado fue un sumador completo de cuatro entradas como acareo de entrada y de salida y se muestra en la Figura 4.
Fig 4. Diagrama RTL del mdulo principal de la parte 4.
D. Parte IV La parte 4 del proyecto corresponde a la suma de dos dgitos en BCD, tomando en cuenta un acarreo de entrada, de tal forma que el mximo nmero que pudiera obtenerse mediante esta suma correspondiera a 9 + 9 +1 = 19. Para la solucin de este circuito, se utiliz una instancia al sumador completo de la parte 3, as como un convertidor de binario a BCD, muy similar al de la parte 2, que fue modificado para convertir nmeros binarios entre 0 y 19 (nmero mximo representable en esta suma). Adems se dise un mdulo para la deteccin de errores, en caso de que las entradas no se encontraran codificados en BCD. Este circuito es, bsicamente, dos instancias del comparador diseado en la parte 2, unidos por medio de una compuerta OR, para generar una seal de error en caso de que el dgito A o el dgito B fueran mayores a 9. El diagrama RTL correspondiente a esta parte del proyecto se muestra en la figura 5.
Fig 5. Diagrama RTL del mdulo de la parte 4.
E. Parte V La parte 5 corresponde al diseo de un sumador de dos nmeros de dos dgitos BCD para uno, cuya salida corresponde a un nmero de 3 dgitos que debe ser visualizado en tres displays de 7 segmentos. Para llevar a cabo este circuito, se instanci dos veces el mdulo desarrollado en la parte 4; una instancia para las unidades y otra para las decenas. El acarreo de salida correspondiente a las unidades usualmente no se presenta cdigo en los papers. El objetivo es mostrar como se resolvi el problema y no como se desarroll a nivel tcnico ITCR. Y. Arias, J. Gonzlez. Reporte de primer proyecto de diseo en VHDL 3 ingresa al mdulo de las decenas por medio del acarreo de entrada. Adems se uni, por medio de una OR, las seales de error para ambos dgitos. El diagrama de este sistema se muestra en la Figura 6.
Fig 6. Diagrama RTL del mdulo de la parte 5 . F. Parte VI : Opcional Como parte opcional, se propuso realizar el mismo diseo de la parte 5 pero utilizando un seudo-cdigo, en vez de implementarlo mediante mdulos de hardware. El cdigo generado finalmente en VHDL para realizar esta funcin, as como su diagrama a nivel de RTL se muestra en las figuras 7 y 8 respectivamente.
Fig 7. Cdigo implementado para realizar la suma en la parte 6.
Fig 8. Diagrama RTL del mdulo de la parte 6 III. RESULTADOS En esta seccin se trataran los resultados obtenidos mediante la simulacin de los diseos. Dado que en la parte 5 del proyecto se utilizan todas las dems secciones mediante instancias, los datos presentados corresponden nicamente a dicho punto. Adems se incluye la simulacin de la parte opcional y se detallan aspectos comparativos entre ambas.
La simulacin del mdulo principal, correspondiente a la parte 4 (suma de dos nmeros de dos dgitos BCD cada uno) se muestra en la figura 9. Como se puede apreciar, el circuito fue probado para diferentes valores de entradas. Estas entradas se muestran en representacin Hexadecimal; en los casos en que algn digito de la entrada es mayor a 9, se puede notar como la seal de error se dispara. Para el resto de los casos, al no tener error, se puede observar como la salida corresponde (en codificacin de 7 segmentos) con el resultado de la suman de ambas entradas. En uno de los casos especficos, mostrados en el tiempo 13970000 ps de la simulacin, se presenta el mayor nmero representable mediante esta suma que corresponde a 99 + 99 + 1= 199, como se puede observar, este es el nmero obtenido mediante los 3 displays de 7 segmentos (Hex0, Hex1, Hex2).
Fig 9. Simulacin de la parte 5. Sumador de dos nmeros de dos dgitos en BCD. En el diseo de la seccin opcional a diferencia de la seccin 5 se utilizaron mdulos de suma y resta creados automticamente por Quartus durante la sntesis del cdigo, lo cual reduce y simplifica considerablemente el tamao y la complejidad del mismo. En la Figura 10 de se muestra una simulacin del mdulo.
Fig 10. Simulacin de la parte opcional. Sumador de dos nmeros de dos dgitos en BCD mediante cdigo (software like).
Como se puede observar al comparar el resultado de la Figura 9 con el de la Figura 10, se obtiene el mismo comportamiento. Lo que quiere decir que aunque las implementaciones son distintas su funcin es la misma.
estas imgenes no se aprecian bien, seria mejor colocarlas a todo el ancho de la pgina Las imgenes deben ser siempre legibles ITCR. Y. Arias, J. Gonzlez. Reporte de primer proyecto de diseo en VHDL 4 IV. CONCLUSIONES El diseo modular, mediante la instanciacin, reduce significativamente el tiempo de diseo, al mismo tiempo que facilita la comprensin del mismo. La visualizacin del circuito por medio del RTL facilita la interpretacin del funcionamiento e implementacin del diseo. Las simulaciones permiten encontrar errores de funcionamiento y sirve como gua para la correccin en el cdigo. La utilizacin de mdulos prediseados y diseo de mdulos por comportamiento reducen el tamao del cdigo y simplifica la implementacin. Sin embargo, no da claridad sobre la implementacin fsica de los circuitos.
REFERENCIAS [1] Altera. Basics of Programable Logic. http://www.altera.com/customertraining/webex/PLDBasics/presentation. html [2] Altera. Using the Quartus Software. http://www.altera.com/customertraining/webex/QII_Intro/player.html