Curso de VHDL (blog)

Lección 19.V127. Descripción de una memoria estática, sincrónica, SRAM. Ejecución en la plaqueta DE1.

Descripción de una memoria RAM estática, SRAM, sincrónica, con entrada de datos separada de la salida de datos. Es recomendable que en las FPGA todos los diseños sean sincrónicos, por ese motivo decidí describir una SRAM sincrónica. Intel reconoce el diseño como perteneciente a una memoria y el Quartus incluye un bloque RAM sincrónico propio, dentro de mi diseño. Te muestro el RTL Viewer de Tools, Netlist Viewers del Quartus y lo analizo. Allí se observa el bloque incluido por el Quartus. Luego programo la plaqueta DE1 de Intel-Altera y muestro el correcto funcionamiento.

Si te parece útil la explicación no te olvides de darle un clic a “me gusta” ¡Gracias! Para contactarme y solicitarme los manuales del Quartus II que escribí en español en lenguaje amigable (no son una traducción) y también los archivos de las descripciones y testbenchs en formato texto para que los puedas probar, entrá en https://susycursos.com/contactame/.

Puedes ver y descargar mis códigos fuente de: https://github.com/susanacanel/proyectos-vhdl.

Lección 18.V126.Diseño estructural, sumador serie, divisor de frecuencia, antirrebote, conversores de binario a BCD y de BCD a 7segmentos.

En este video completo el diseño estructural de un sumador serie, instanciando los módulos: divisor de frecuencia, antirrebote, sumador serie, conversor de binario natural a dos dígitos BCD empaquetados (en 8 bits) y conversor de BCD a 7 segmentos. Te muestro el correcto funcionamiento en la plaqueta DE1 de Altera. Las entradas las realizo a través de interruptores y las salidas a través de LEDs y de un display de 4 dígitos de 7 segmentos. Muestro también el circuito esquemático generado por Tools, Netlist Viewera, RTL Viewer del Quartus II, comprobando el correcto instanciado de los módulos.

Si te parece útil la explicación no te olvides de darle un clic a “me gusta” ¡Gracias! Para contactarme y solicitarme los manuales del Quartus II que escribí en español en lenguaje amigable (no son una traducción) y también los archivos de las descripciones y testbenchs en formato texto para que los puedas probar, entrá en https://susycursos.com/contactame/.

Puedes ver y descargar mis códigos fuente de: https://github.com/susanacanel/proyectos-vhdl.

Lección 18.V125. Diseño estructural: divisor de frecuencia, anti rebote, sumador serie. Ejecución.

En este video te explico el siguiente bloque del diseño estructural, el que contiene los módulos del divisor de frecuencia, del anti rebote y del sumador y usa LEDs para ver las salidas. Además uso el RTL Viewer de la herramienta Tools, Netlist Viewera del Quartus II, para verificar el circuito sintetizado y la máquina de estados del módulo del sumador serie. Luego programo la plaqueta DE1 de Altera y verifico el correcto funcionamiento del hardware sintetizado.

Si te parece útil la explicación no te olvides de darle un clic a “me gusta” ¡Gracias! Para contactarme y solicitarme los manuales del Quartus II que escribí en español en lenguaje amigable (no son una traducción) y también los archivos de las descripciones y testbenchs en formato texto para que los puedas probar, entrá en https://susycursos.com/contactame/.

Puedes ver y descargar mis códigos fuente de: https://github.com/susanacanel/proyectos-vhdl.

Lección 18.V124. Descripción como máquina de estado, testbench y simulación de un sumador serie.

En este video realizo una nueva descripción de un sumador serie, esta vez como máquina de estado. Uso la sentencia “case”. Porqué necesité usar reset asincrónico. Te explico las dificultades que tuve para solucionar un comportamiento muy particular que descubrí al sintetizar el circuito en la plaqueta DE1 y que también obtuve en el testbench. Te explico la solución. Luego explico el testbench y la simulación con GTKwave.

Si te parece útil la explicación no te olvides de darle un clic a “me gusta” ¡Gracias! Para contactarme y solicitarme los manuales del Quartus II que escribí en español en lenguaje amigable (no son una traducción) y también los archivos de las descripciones y testbenchs en formato texto para que los puedas probar, entrá en https://susycursos.com/contactame/.

Puedes ver y descargar mis códigos fuente de: https://github.com/susanacanel/proyectos-vhdl.

Lección 18.V123. Testbench del 1er. bloque del sumador serie. Análisis de la simulación.

En este video te explico el testbench para probar el 1er. bloque del sumador serie, que está compuesto por el divisor de frecuencia y el antirrebote. Simulo con el GTKWave, analizo las señales y te muestro cómo descubrí que tenía que usar un reset asincrónico para el antirrebote.

Si te parece útil la explicación no te olvides de darle un clic a “me gusta” ¡Gracias! Para contactarme y solicitarme los manuales del Quartus II que escribí en español en lenguaje amigable (no son una traducción) y también los archivos de las descripciones y testbenchs en formato texto para que los puedas probar, entrá en https://susycursos.com/contactame/.

Puedes ver y descargar mis códigos fuente de: https://github.com/susanacanel/proyectos-vhdl.

Lección 18.V122. 1era.Parte: diseño estructural sincrónico, sumador serie. Ejecución en la plaqueta.

Primera parte del diseño estructural secuencial sincrónico de un sumador serie para ejecutar en una plaqueta. Instanciado de componentes. Comienzo explicando los dos 1eros. módulos a instanciar. Definición de señales para unir módulos. Uso de un package propio. Problemas con las distintas frecuencias de operación, a partir de un único oscilador. Necesidad del reset asincrónico en uno de los módulos. Máquinas de estado. Te muestro el circuito esquemático que genera Tool, Netlist Viewers del Quartus II, analizando la máquina de estados del antirrebote. Para finalmente programar la plaqueta DE1 de Altera y ver la ejecución.

Si te parece útil la explicación no te olvides de darle un clic a “me gusta” ¡Gracias! Para contactarme y solicitarme los manuales del Quartus II que escribí en español en lenguaje amigable (no son una traducción) y también los archivos de las descripciones y testbenchs en formato texto para que los puedas probar, entrá en https://susycursos.com/contactame/.

Puedes ver y descargar mis códigos fuente de: https://github.com/susanacanel/proyectos-vhdl.

Lección 18.V121. Divisor de frecuencia que genera dos frecuencias, 200Hz y 1Hz. Ejecución en la plaqueta DE1 de Altera.

En este video te muestro cómo generar dos frecuencias distintas usando una sentencia “case”. Una frecuencia de 200 Hz, periodo de 5ms y otra de 1 Hz, periodo de 1 s, para usos generales. Te muestro el circuito esquemático generado por Nestlist Viewer de la herramienta Tool del Quartus II. Analizo la cantidad de multiplexores y de flip-flop tipo D necesarios para sintetizar el circuito cuando se usa el atributo “range” al definir una señal como “integer” y la comparo con la cantidad necesaria cuando no se usa ese atributo. Luego programo la plaqueta DE1 de Altera-Intel para verificar el correcto funcionamiento.

Si te parece útil la explicación no te olvides de darle un clic a “me gusta” ¡Gracias! Para contactarme y solicitarme los manuales del Quartus II que escribí en español en lenguaje amigable (no son una traducción) y también los archivos de las descripciones y testbenchs en formato texto para que los puedas probar, entrá en https://susycursos.com/contactame/.

Puedes ver y descargar mis códigos fuente de: https://github.com/susanacanel/proyectos-vhdl.

Lección 15. V120. Testbench del sumador serie usado para generar la tabla del 7. Graba un archivo.

En este video describo un testbench para una nueva aplicación del sumador serie: generar una tabla de multiplicación. Defino un package propio y en él declaro procedimientos para usar un archivo para los resultados. En ese archivo de salida escribo la tabla de multiplicación del 7.

Si te parece útil la explicación no te olvides de darle un clic a “me gusta” ¡Gracias! Para contactarme y solicitarme los manuales del Quartus II que escribí en español en lenguaje amigable (no son una traducción) y también los archivos de las descripciones y testbenchs en formato texto para que los puedas probar, entrá en https://susycursos.com/contactame/.

Puedes ver y descargar mis códigos fuente de: https://github.com/susanacanel/proyectos-vhdl.

Lección 17.V119. Testbench. Uso de procedimientos. Declaración en package. Diferencias con las funciones.

En este video te muestro cómo escribir un procedimiento (procedure) para usarlo en un testbench y cómo incluirlo en un “package”. Analizo las diferencias entre las funciones (function) y los procedimientos que constituyen los subprogramas de VHDL. Analizo y ejecuto la descripción, los dos “packages” que uso (uno contiene la función que vimos en el video anterior) y el testbench. Te muestro el contenido del archivo work-obj93.cf, que va generando el analizador de GHDL.

Si te parece útil la explicación no te olvides de darle un clic a “me gusta” ¡Gracias! Para contactarme y solicitarme los manuales del Quartus II que escribí en español en lenguaje amigable (no son una traducción) y también los archivos de las descripciones y testbenchs en formato texto para que los puedas probar, entrá en https://susycursos.com/contactame/.

Puedes ver y descargar mis códigos fuente de: https://github.com/susanacanel/proyectos-vhdl.

Lección 17.V118. Declarando una función en un package y compilando todo con GHDL y con ModelSim.

En este video te muestro cómo definir una función en un package de manera que pueda ser compartida por varios proyectos. Te explico cuáles son las partes del package. Luego compilo y ejecuto usando GHDL y repito esos pasos pero para ModelSim.

Si te parece útil la explicación no te olvides de darle un clic a “me gusta” ¡Gracias! Para contactarme y solicitarme los manuales del Quartus II que escribí en español en lenguaje amigable (no son una traducción) y también los archivos de las descripciones y testbenchs en formato texto para que los puedas probar, entrá en https://susycursos.com/contactame/.

Puedes ver y descargar mis códigos fuente de: https://github.com/susanacanel/proyectos-vhdl.