Curso de VHDL (blog)

V104. Instalación Quartus II, versión 20.1 para Linux.

En este video te muestro de dónde descargar la versión 20.1 del Quatus II de Intel para Linux. Elegí la opción de archivos individuales porque pesa algunos Gb menos que la completa. Junto con el Quartus descargué el ModelSim, un dispositivo FPGA y otro CPLD. Tanto el Quartus como el ModelSim son de extensión .run. Para instalar el Quartus desde la línea de comandos me encontré con dos problemas, primero, el nombre del archivo estaba encerrado entre comillas, lo tuve que renombrar y segundo, no era ejecutable, ni para el grupo ni para cualquiera (faltaban las correspondientes “x”), lo tuve que hacer ejecutable. Finalmente lo corrí con un diseño para corroborar el correcto funcionamiento.Observaciones: 1. Comprobé que es más sencillo instalarlo y ejecutarlo directamente desde Dolphi, dos clic y listo.2. No necesité agregar ninguna biblioteca probablemente porque ya tenía instalada otra versión del Quartus II y había tenido que agregar manualmente una serie de bibliotecas. Si no es tu caso, tienes que armarte de paciencia e ir buscando en la Web las bibliotecas que faltan, las agregas y finalmente va a funcionar.3. He bajado también la versión completa de 6.4 Gb, que no recomiendo. Esa versión es de extensión .tar. La ventaja es que la instalación resultó mucho más sencilla.4. Si bajas una versión vieja puede ser que funcione en 32 bits, por ejemplo la que yo necesité, la 13.0, y dependiendo de la versión de Linux que tengas, vas a necesitar bajar la arquitectura de 32 bits, porque va a estar corriendo por primera vez en ese Linux un programa de 32 bits. No hay garantía de que no necesites además bajar bibliotecas.

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/.

Lección 15.V102. Sumador serie. Casteo y acondicionamiento de operandos.

En este video describo un sumador serie basado en dos registros de desplazamiento, un sumador completo de 1 bit y un flip-flop tipo D, como muestro en un esquema. Explico cómo generar el flip-flop D y porqué es necesario incluirlo. Explico una solución para realizar la suma de 1 bit cuando los operandos contienen 1 solo bit de un std_logic_vector. Te muestro ejemplos de sumas realizadas de esta manera.

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/.

Lección 15.V101. Función de resolución. Aplicación a un multiplexor con salida de alta impedancia.

En este video te explico que es la función de resolución y la aplico a un caso concreto de un multplexor de dos canales, con salida de alta impedancia, Z. Además cómo se modeliza una entrada con pull-up y otra con pull-down. También te cuento los posibles problemas que puedes encontrar con los compiladores y los simuladores. Te muestro la el package std_1164.vhdl y dónde puedes encontrar la tabla de doble entrada para analizar la función de reolución. También te explico cómo modelizar un pull-up y un pull-down y cómo funcionan.

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/.

https://youtu.be/32hBfaDT5Kk

Lección 14.V100. Testbench del contador en secuencia arbitraria. Simulación. Generación de reset.

En este video explico el testbench del contador en secuencia arbitraria. Realizo la simulación con el STKWave y con el ModelSim. Genero un segundo pulso de reset y muestro un posible error y cómo se detecta.

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/.

Lección 14.V99. Máquina de estado. Contador que cuenta en una determinada secuencia. Comparación de estilos de descripción.

En este video te explico cómo describir a través de una máquina de estados un contador que cuenta en una determinada secuencia y comparo esta descripción con otra en la cual no usé una máquina de estado. Así vemos cómo varía en forma importante la cantidad de recursos usados en cada caso y también los tiempos de propagación. Estos son dos factores importantes a tener en cuenta cuando se debe elegir un estilo para realizar una descripció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/.

V98. Cómo hacer un archivo ejecutable de comandos para compilar y simular VHDL.

En este video explico cómo hacer un archivo ejecutable que contenga los comandos para analizar, elaborar, correr y simular la descripción a través de su testbench. Uso Git Bash y Visual Studio Code.

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/.

Lección 14.V97. Problemas cuando la entrada es asincrónica. Máquina Mealy. Detector de secuencia 1011.

Te muestro un testbench que genera entradas de bits no sincronizadas con el reloj de manera de poder constatar el mal funcionamiento del detector de secuencia con salida tipo Mealy cuando no se cumple la hipótesis de diseño (la entrada debía ser sincrónica). Luego simulo usando el GTKWave por línea de comando. Allí vemos que el estado próximo es el correcto ya que lo genera el proceso combinacional, que es asincrónico, pero el proceso secuencial sincrónico no actualiza el estado hasta no recibir un flanco ascendente de la señal de reloj, de manera que no hay coordinación entre los procesos. La salida se activó con un ‘1’ solamente en la última secuencia exitosa, no detectó las anteriores, fallando en los bits 8, 12, 21 y 33.

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/.

Lección 14. V96. Testbench, detector de secuencia, con solapamiento, salida Moore. GTKWave por línea de comando.

En este video te explico cómo hacer un testbench para el detector de secuencia con salida Moore, con solapamiento. Compilo y simulo por línea de comando (git bash). Genero la entrada sincronizada con el reloj, dentro del ciclo “for” y después de un flanco creciente del reloj. Defino una constante std_logic_vector para generar una cadena de bits correspondientes a los sucesivos bits de la entrada. Y otra para las salidas esperadas. Uso un ciclo for-loop. Uso los atributos ‘range e ‘image. Analizo las formas de ondas que muestra el GTKWave. Vemos las señales del port y los estados.

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/.

Lección 14. V95. Máquina de estado Moore, detector de secuencia, con solapamiento.

Te explico una máquinas de estado con salida Moore. Describo un detector de secuencia con solapamiento. Uso la sentencia case para modelizar la máquina de estados. Uso tipo de datos enumerados para definir los estados. Diseño la máquinas de estados usando dos procesos, uno secuencial y otro combinacional. Explico un diagrama de estados y luego lo traduzco a código VHDL. Uso la herramienta Tool del Quartus II, selecciono Netlist Viewer, RTL (para ver las características de la salida tipo Moore), Technology Map Viewer (vemos que el Quartus usa 4 flip-flop para generar 5 estados) y State Machine Viewer (vemos el diagrama de estados, la tabla de transiciones y la codificació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/.

Lección 14.V94. Testbench, detector de secuencia, sin solapamiento, salida Moore. GTKWave por línea de comando.

En este video te explico cómo hacer un testbench para el detector de secuencia con salida Moore, sin solapamiento. Compilo y simulo por línea de comando (git bash). Defino una constante std_logic_vector para generar una cadena de bits correspondientes a los sucesivos bits de la entrada. Y otra para las salidas esperadas. Uso un ciclo for-loop. Uso los atributos ‘range e ‘image. Analizo las formas de ondas que muestra el GTKWave. Vemos las señales del port y los estados.

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/.