Lección 5.V25.2. Hardware sintetizado y efectos de eliminación de una señal de la descripción.

En este video analizo el RTL y el Technology Map Viewers comparándolos con la descripción VHDL y explicando que son los LE (Logic Element) y la LUT ( look-up-table) y cómo verlos en el Technology Map. Modifico la descripción eliminando una señal y muestro los efectos sobre el hardware sintetizado y los tiempos de propagación de las señales. Muestro las etapas del diseño CAD. Muestro como se asignan las patas. Explico la diferencia entre programar y configurar. Muestro cómo se usa el programador del Quartus II, para configurar la FPGA. Archivo de extensión SOF para bajar a la SRAM del Cyclone II.
Puedes ver el código en mi post Lección 5. VHDL descripción estructural.  /blog/page/3/ A través de “contactame” puedes pedirme que te envíe los archivos de texto con las descripciones para que los puedas probar y el tutorial del Quartus II, que hice. /contactame/


Análisis el RTL y el Technology Map Viewers

Lección 5.V25.1. Descripción de un circuito que maneja hardware.

Descripción de un circuito para usar en la plaqueta DE1 de Altera. Se trata de manejar el display de 7 segmentos de 4 dígitos de la plaqueta. Al circuito entran dos señales BCD de 4 bits y una señal de modo. La salida son los 4 dígitos de un display de 7 segmentos, en los que se exhiben los datos de entrada, el mayor de ellos y el resultado de la suma. Y un indicador (un LED) de si la suma está entre 10 y 15 (no es BCD). Muestro el RTL Viewer. Puedes ver el código en mi post Lección 5. VHDL descripción estructural.  /blog/page/3/ A través de “contactame” puedes pedirme que te envíe los archivos de texto con las descripciones para que los puedas probar y el tutorial del Quartus II, que hice. /contactame/

Diagrama en bloques del circuito a describir.
Descripción estructural instanciando un comparador, un sumador y un display.

Lección 5.V24. Descripción estructural de un circuito.

En este video vemos la descripción VHDL de un circuito usando arquitectura estructural. Instancio componentes. Genero una library y un package propios. Informo al Quartus que voy a usar mi library y mi package y las descripciones de los componentes. Vemos los circuitos sintetizados por RTL Viewer y Technology Map Viewer, comparándolos con el circuito y con la tabla de verdad y ecuaciones del circuito. Puedes ver el código en mi post Lección 5. VHDL descripción estructural/blog/page/3/ A través de “contactame” puedes pedirme que te envíe los archivos de texto con las descripciones para que los puedas probar y el tutorial del Quartus II, que hice. /contactame/

Lección 4.V23. Descripción NAND genérica.

Puedes ver el código en mi post Lección 4. VHDL descripción algorítmica. /2018/09/03/leccion-4-arquitectura-algoritmica/ . A través de “contactame” puedes pedirme que te envíe los archivos de texto con las descripciones para que los puedas probar y el tutorial del Quartus II, que hice. /contactame/

Lección 4.V22. Descripción NOR genérica.

Descripción VHDL, usando arquitectura algorítmica de una compuerta NOR genérica, de N bits. este tipo de arquitectura por ser secuencial ncesita del uso de procesos explícitos, process. El proceso contiene solamente sentencias secuenciales y procesos implícitos de asignación simple.  En este ejemplo uso las sentencias for…loop e if. Defino una variable auxiliar. Muestro el RTL Viewer y el Technology Map Viewer, generados. Simulo para comprobar el correcto funcionamiento. Como introducción sintetizo lo visto hasta el momento: arquitecturas por comportamiento y los diferentes estilos. Puedes ver el código en mi post Lección 4. VHDL descripción algorítmica. /2018/09/03/leccion-4-arquitectura-algoritmica/ . A través de “contactame” puedes pedirme que te envíe los archivos de texto con las descripciones para que los puedas probar y el tutorial del Quartus II, que hice. /contactame/

Lección 3.V21. Árbol de paridad genérico.

Descripción VHDL de un árbol de paridad genérico, de N bits. Defino un proceso explícito, process y una variable. Uso una sentencia secuencial for…loop. Comento la diferencia entre señales y variables y entre procesos implícitos y explícitos. Uso una etiqueta, label. Te muestro el RTL Viewer y el resultado de la simulación. Puedes ver el código en mi post Lección 3. VHDL por comportamiento. /blog/page/6/. A través de “contactame” puedes pedirme que te envíe los archivos de texto con las descripciones para que los puedas probar y el tutorial del Quartus II, que hice.  /contactame/

Lección 3.V20. Decodificador genérico.

Descripción VHDL de un decodificador genérico de N bits, con habilitación activa en alto y salida activa en alto. Uso de proceso explícito: process. Uso del package numeric_std, para usar tipo de datos unsigned. Uso de la función to_integer para poder usar los std_logic_vector como subíndices. Uso de de generic. Puedes ver el código en mi post Lección 3. VHDL por comportamiento. /blog/page/6/. A través de “contactame” puedes pedirme que te envíe los archivos de texto con las descripciones para que los puedas probar y el tutorial del Quartus II, que hice.  /contactame/

Lección 3.V19. ROM: binario a Gray.

Descripción VHDL de una memoria ROM genérica usada para convertir de código binario natural de 4 bits a código Gray. Incluyo el package numeric_std para usar datos unsigned y la función to_integer para el casting. Defino un nuevo tipo de datos con type y arreglos con array. Escribo una tabla con el código Gray que será el contenido de la memoria ROM. Analizo el hardware sintetizado con la herramienta Technology Map Viewer del Quartus II. Y finalmente realizo la simulación para comprobar el correcto funcionamiento. Puedes ver el código en mi post Lección 3. VHDL por comportamiento. /blog/page/6/. A través de “contactame” puedes pedirme que te envíe los archivos de texto con las descripciones para que los puedas probar y el tutorial del Quartus II, que hice.  /contactame/

Lección 3.V18. Sumador-restador.

Descripción VHDL de un sumador-restador genérico de números enteros de N bits. Uso el package numeric_std porque voy a usar operaciones matemáticas, uso datos tipos signed, definidos en ese package. Para que sea genérico defino en generic la constante N que representa la cantidad de bits de los operandos. Uso operaciones lógicas y analizo la precedencia de operandos y la necesidad de usar paréntesis. Genero el indicador de desborde (overflow). Te muestro el circuito esquemático generado por la herramienta Netlist Viewer, opción RTL Viewer. Finalmente muestro la simulación. Puedes ver el código en mi post Lección 3. VHDL por comportamiento. /blog/page/6/. A través de “contactame” puedes pedirme que te envíe los archivos de texto con las descripciones para que los puedas probar y el tutorial del Quartus II, que hice.  /contactame/

Lección 3.V17. Multiplicador de enteros.

Descripción VHDL de un multiplicador genérico de números enteros de N bits. Uso el package numeric_std para poder realizar la operación multiplicación usando un multiplicador embebido del cual dispone la FPGA Cyclone II. Realizo un cambio de tipo de datos para poder realizar la multiplicación. Uso datos tipo  signed ya que los datos del enunciado son números enteros. Muestro en el RTL Viewer cómo la operación multiplicación se la representa a través de un multiplicador embebido. Finalmente vemos en la simulación el correcto funcionamiento. Puedes ver el código en mi post Lección 3. VHDL por comportamiento. /blog/page/6/. A través de “contactame” puedes pedirme que te envíe los archivos de texto con las descripciones para que los puedas probar y el tutorial del Quartus II, que hice.  /contactame/