Curso de VHDL (blog)

Lección 14. V91. Máquina de estado Mealy, detector de secuencia, solapamiento. Case. State Machine.

Te explico una máquinas de estado con salida Mealy. Describo un detector de secuencia con solapamiento. Uso la sentencia case. Tipo de datos enumerados. Máquinas de estados con dos procesos, uno secuencial y otro combinacional. Te muestro las plantillas del Quartus. Explico un diagrama de estados y luego lo traduzco a código VHDL. Uso la herramienta Tool del Quartus II, Netlist Viewer, RTL (para ver las características de la salida tipo Mealy), Technology Map Viewer (vemos que el Quartus usa 4 flip-flop para generar 4 estados) y State Machine Viewer (vemos el diagrama de estados, la tabla de transiciones y la codificación). Te explico la sentencia “case”. Para hacer la descripción VHDL uso datos enumerados para definir 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.V90. Testbench, detector de secuencia, salida Mealy. Simulación con gtkwave, vista estados

Te explico el testbench para el detector de secuencia con salida Mealy, sin solapamiento. Simulo con el gtkwave, genero un archivo de extensión .ghw, para ver, no solamente los ports de la entidad sino también las señales de la descripción, en este caso son los estados (actual y prox), de tipo enumerados. 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. Desde la línea de comando del git bash compilo y corro el testbench usando ghdl. Genero un archivo de extensión .ghw con el cual abro el gtkwave. Explico la simulación. 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.V89. Máquinas de estado, Mealy, detector de secuencia. Sentencia case.State Machine Viewer.

Te explico las máquinas de estado con salida Mealy y Moore. Describo un detector de secuencia. Uso la sentencia case. Tipo de datos enumerados. Diferencia entre salida tipo Mealy y tipo Moore. Máquinas de estados con dos procesos, uno secuencial y otro combinacional. Construyo y explico un diagrama de estados y luego lo traduzco a código VHDL. Uso la herramienta Tool del Quartus II, Netlist Viewer, RTL (para ver las características de la salida tipo Mealy), Technology Map Viewer (vemos que el Quartus usa 4 flip-flop para generar 4 estados) y State Machine Viewer (vemos el diagrama de estados, la tabla de transiciones y la codificación). Te explico la sentencia “case” comparándola con la correspondiente sentencia concurrente “when”. Para hacer la descripción VHDL uso datos enumerados para definir 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 13. V88. Descripción, testbench y simulación,contador Johnson o Moebius, módulo impar, autoarranque.

Te muestro la descripción y el testbench de un contador Johnson o Moebius, de módulo impar, con arranque automático. Uso vs code, compilo desde la línea de comando usando git bash. Y finalmente simulo desde la línea de comando usando 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/.

V87. Open Source para editar y simular, ghdl, gtkwave, vs code, git bash.

Te detallo todas las herramientas Open Source que voy a usar para la parte de simulación, de dónde descargarlas y cómo instalarlas. Edito una descripción y hago una simulació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 13.V86. Descripción de un contador Johnson o Moebius de módulo impar. Hardware generado.

En este video te explico la descripción de un contador Johnson o Moebius de módulo impar. Para lograrlo se debe saltear uno de los estados, por ejemplo, aquel que contiene todos sus bis en ‘1’. Uso Technology Map Viewer de la herramienta Tool para analizar el circuito esquemático del circuito 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/.

Lección 13.V85. Verificación del funcionamiento del autocorrector del contador Johnson o Moebius.

En este video te muestro cómo funciona el proceso de autocorrección del contador Johnson o Moebius de 4 bits que vimos en los dos videos anteriores. Para generar errores que se podrían dar, por ejemplo por ruido, cambié el código de la descripción de manera que el testbench tuviera la oportunidad de “producir esos códigos prohibidos” y pudiéramos ver cómo el proceso de autocorrección los corrige en como máximo 3 ciclos de reloj. Realizo la simulación con el ModelSim generando las formas de onda. Tuve que adaptar el testbench para usar el ModelSim solo como graficador y agregar la nueva señal de selecció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 13. V84. Testbench, contador Johnson o Moebius, módulo par.

Testbench de un contador Johnson o Moebius, de módulo par con arranque automático. Uso el Modelsim para la simulación. Genero el reloj y dos pulsos de reset. Constato en la simulación 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/.

Lección 13.V83. Contador Johnson o Moebius, módulo par, arranque automático. Hardware generado.

Descripción VHDL de un contador Johnson o Moebius, de módulo par con arranque automático. Uso el Quartus II. Tanto el reset como una determinada condición lo llevan al estado inicial que es el que tiene todos los bits en “0”. El arranque automático asegura que en no más de (N-1) ciclos de reloj el contador entra en secuencia. Vemos el circuito esquemático generado por Technology Map Viewer de la herramienta Tool del Quartus II.

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 13.V82. Verificación del funcionamiento del autocorrector del contador en anillo.

En este video te muestro cómo funciona el proceso de autocorrección que vimos en los dos videos anteriores. Para generar errores que se podrían dar en el hardware, cambié el código de la descripción de manera que el testbench tuviera la oportunidad de “producir esos errores” y pudiéramos ver cómo el proceso de autocorrección los corrige en varios ciclos de reloj. Realizo la simulación con el ModelSim generando las formas de onda.

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