Laboratorio 9: Uso de verilog para ahorro de componentes PSoC
Juan Pablo López Guevara 20171005073
Universidad Distrital francisco José de caldas. Bogotá octubre
2020
Introducción
Debido a limitaciones en la tarjeta de desarrollo, es de gran utilidad recurrir a la programación mediante codigo. Esto permite reducir los componentes necesarios para un mismo propósito, lo cual nos será muy útil debido a la gran cantidad de compuertas que iremos necesitando en los laboratorios siguientes.
Objetivos
- Adquirir una destreza basica para la creación de componentes en Verilog
- Rediseñar componentes como los sumadores de las anteriores practicas usando lenguaje Verilog
- Diseñar usando solamente Verilog un multiplicador de 4 bits
Marco Teórico
Lenguaje Verilog
Verilog HDL es un tipo de lenguaje de descripción de hardware. Los lenguajes de descripción de hardware son similares a los lenguajes de programación en sintaxis (a excepción que en los lenguajes de descripción de hardware se hace importante los tiempos de ejecución, como se verá en practicas posteriores) pero están enfocados en ser usados como una forma practica de definir una estructura de diseño para circuitos digitales.
El diseño estructural en Verilog consta de básicamente describir las compuertas lógicas, así como sus diferentes conexiones necesarias para construir el modulo deseado (recordemos que un modulo es la unidad básica de diseño en verilog).
Para evidenciar de manera practica el funcionamiento de Verilog en circuitverse, recurriremos al ejemplo dado en clase
![]() |
| Figura 1. Sumador de 1 bit en Verilog (circuit verse) |
Como vemos en este ejemplo, la sintaxis estructural tiene por objetivo describir las compuertas a usar y sus conexiones.
Estos módulos los podemos instanciar para crear componentes más sofisticados, como vimos al principio del curso (que con un sumador completo de 1 bit podríamos construir un sumador de n bits).
![]() | ||
| Figura 2. Sumador de 4 bits en Verilog (circuitVerse) |
Aquí podemos ver un screenshot de los dos componentes
Para ver los tipos de conexión que tenemos disponibles, así como la diferencia entre Verilog en circuitVerse y en el PSoC creator, tomaremos directamente del material de la guia el ejemplo de como se construye este sumador de 4 bitsAmbos tipos de conexión nos seran utiles en mayor medida dependiendo de lo que necesitemos. Debido a lo extenso que puede hacerse nombrar demasiadas conexiones, puede que nos sea util solo crear componentes "repetitivos" en su construcción, como lo son comparadores, sumadores, multiplexores, decodificadores. Por esta razón, lo más practico en nuestra practica podría no ser nombrar todas las conexiones entre módulos de diferente indole, sino solo diseñar bloque por bloque en verilog y luego unirlos de forma estructural como las practicas anteriores.
Multiplicación binaria
Es bien sabido que la multiplicación binaria sigue la misma estructura que la decimal, por lo que esto nos permite hacer el análisis visto en la parte teórica
![]() |
| Figura 3. Estructura para el diseño del multiplicador usando sumadores de 4 bits |
Metodología
Para esta practica, construiremos en Verilog (PSoC creator) un sumador de 1 bit, y con este modulo, un sumador de 4 bits. Para completar el multiplicador, necesitamos diseñar un bloque que agrupe las diferentes multiplicaciones (compuertas AND) de tal manera que el multiplicador se arme como en la siguiente figura
| Figura 4. Diagrama de un multiplicador de 4 bits a partir de sumadores |
Diseño
Para diseñar este multiplicador, usaremos como base la figura 4. Por cada renglón, agruparemos los 4 sumadores de 1 bit en un sumador de 4 bits mediante Verilog, y agruparemos todas las compuertas AND en un único bloque multiplicador también en verilog.
Desarrollo de la practica
comenzamos programando el modulo sumador completo
Luego programamos el sumador de 4 bits, para lo que necesitamos incluir el codigo del sumador de 1 bit
Luego programamos el bloque multiplicador
Ahora veamos la unión de todos los bloques
En este link, podemos ver el funcionamiento de este multiplicador de 4 bits
Conclusiones
Vemos que gracias al uso de verilog pudimos construir el multiplicador con gran facilidad y sin necesidad de usar el apartado esquimatico con compuertas logicas como las practicas anteriores. Como se sabe, esto nos permite ahorrar compuertas, por lo que para practicas posteriores, sería de gran ayuda tener diseñados en Verilog los componentes como sumadores, comparadores, multiplexores y codificadores.












No hay comentarios:
Publicar un comentario