Lección 11.V62. Descripción de un contador binario sincrónico, genérico, con reset sincrónico.

En este video te explico la descripción VHDL de un contador binario, genérico, de módulo potencia de 2, con reset sincrónico, también llamado cíclico. Tiene la entrada de pulsos a contar (reloj) y la de reset y como salida el estado de la cuenta. Como uso una señal de tipo unsigned incluyo el package numeric_std. Uso la función rising_edge. Compilo y controlo los “warnings”. Luego recurro a la herramienta “Tool” del Quartus II y selecciono “Technology Map Viewer” para ver y analizar el circuito esquemático generado.

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, entra en /contactame/ .



Desplegando el contenido de las celdas combinacionales vemos la señal de reset que llega a todas para generar en forma sincrónica el estado inicial del contador.

Lección 11.V61. Explicación y testbench sobre las limitaciones del contador sin una señal de reset.

En este video te explico el testbench para el contador elemental del video anterior. Se trataba de un contador con solo señal de pulsos a contar y la salida del estado de la cuenta. Te explico los problemas que se generan al no partir de un estado inicial conocido. Te muestro el testbench interactuando con la descripción. También analizo qué sucede en el hardware cuando no hay un estado inicial mirando el circuito generado por la herramienta “Technology Map Viewer” 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, entra en /contactame/ .

Salida de la ventana “transcript” luego de la simulación en el ModelSim.

Lección 11. V60. Contador sincrónico binario de módulo potencia de dos.

En este video te explico la descripción VHDL de un contador binario de módulo potencia de 2, también llamado cíclico. Como primer ejemplo elegí un contador que tiene solamente la entrada de pulsos a contar (reloj) y como salida el estado de la cuenta. Como uso una señal de tipo unsigned incluyo el package numeric_std. Uso la función rising_edge. Compilo y controlo los “warnings”. Luego recurro a la herramienta “Tool” y selecciono “Technology Map Viewer” del Quartus II para ver y analizar el circuito esquemático generado.

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, entra en /contactame/ .


Lección 10.V58.2. Simulación del flip flop JK con clear y preset.

En este video te muestro la simulación del flip-flop JK, con señal clear y preset. Uso el testbench que te expliqué en el video anterior. Simulo con el ModelSim para verificar el correcto funcionamiento de la descripción y también la generación de la señal del reloj y los distintos tiempos modelizados. Mido el ancho de los pulsos. Analizo la situación en que se activen simultáneamente las dos entradas asincrónicas comprobando que “clear” tiene prioridad sobre “preset”. Analizo los motivos por los cuales el pulso de salida en un caso es menor que los 20 ns usuales.

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, entra en /contactame/ .

Lección 10.V57. Flip-flop JK con entrada de clear y de preset.

En este video te explico cómo describir un flip-flop JK, con entradas asincrónicas de “clear” y “preset”, a partir de su ecuación característica. La entrada “clear” tienen prioridad sobre la entrada “preset”. Con la sentencia if…elsif, doy prioridad a clear sobre preset y sobre el flanco ascendente del reloj. Uso la función “rising_edge” para detectar el flanco creciente de la señal de reloj. En la arquitectura defino una señal auxiliar para poder escribir la ecuación característica del flip flop. Compilo y analizo los “warnings”. Luego recurro a la herramienta “Tool” y selecciono “RTL Viewer” del Quartus para ver y analizar el circuito esquemático generado. 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, entra en /contactame/ .

Lección 10.V56.2. Simulación del flip-flop JK.

En este video simulo el comportamiento del flip-flop JK ante distintos valores de las señales de entrada. Vemos que la señal de salida “undefined” no cambia cuando se la intenta “setear”, en cambio sí cambia cuando se la “resetea”. Analizo en detalle esta situación. Uso el testbench que te expliqué en el video anterior. Simulo con el ModelSim para verificar el correcto funcionamiento de la descripción y también la generación de la señal del reloj y los distintos tiempos modelizados. Mido el ancho de los pulsos en el esquema de ondas generadas. 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, entra en /contactame/ .

Lección 10.V56.1. Testbench del flip-flop JK.

En este video te explico el testbench del flip-flop JK. Modelizo el tiempo para poder generar la señal periódica del reloj. La novedad es qué sucede con la salida de un flip-flop que no dispone de una señal asincrónica para darle un estado inicial cuando se intenta “setearla”. Analizo en detalle esta situación. Uso constantes, división entera entre constantes (con truncamiento) para generar el periodo de la señal de reloj. Uso el tipo de datos físico, o sea aquellos que tienen un valor y una unidad, en este caso “time”. Defino una señal de tipo “booleano” para detener un proceso. Uso dos procesos, uno para generar la señal de reloj y el otro con el resto del código. Se ejecutan en modo concurrente. Uso la función “rising-edge”. Modelizo el tiempo de establecimiento, el tiempo de propagación y genero el ancho de los pulsos. Genero una señal pulsante infinita. Genero distintas situaciones en los valores de las señales de entrada, analizo caso por caso en el testbench. 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, entra en /contactame/ .

Lección 10.V55. Descripción de un flip-flop JK.

En este video te explico cómo describir un flip-flop JK a partir de su ecuación característica. Uso la función rising_edge para detectar el flanco creciente de la señal de reloj. En la arquitectura defino una señal auxiliar para poder escribir la ecuación característica del flip flop. Compilo y analizo un warning. Luego recurro a la herramienta Tool del Quartus y selecciono RTL Viewer para ver y analizar el circuito esquemático generado. 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, entra en /contactame/ .

Tabla de verdad y ecuación característica del flip flop JK.

Lección 10.V54. Testbench flip-flop D, clear y habilitación del clk. Generación de reloj. Simulación.

En este testbench del flip-flop D, con clear y habilitación del reloj modelizo el tiempo para poder generar la señal periódica del reloj. Te explico cómo se procede cuando el periodo es un número impar. Uso constantes, división entera entre constantes (con truncamiento) para generar el periodo de la señal de reloj. Uso el tipo de datos físico, o sea aquellos que tienen un valor y una unidad, en este caso “time”. Defino una señal de tipo “booleano” para detener un proceso. Uso dos procesos, recuerdo que se ejecutan en modo concurrente. Uso la función “rising-edge”. Modelizo el tiempo de establecimiento, el tiempo de propagación y genero el ancho de los pulsos. Genero una señal pulsante infinita. Genero distintas situaciones en los valores de las señales de entrada, analizo caso por caso tanto en el testbench como en la simulación. Simulo con el ModelSim para verificar el correcto funcionamiento de la descripción y también la generación de la señal del reloj y los distintos tiempos modelizados. Mido el ancho de los pulsos y el periodo de la señal de reloj en el esquema de ondas generadas. 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, entra en /contactame/ .

Lección 10.V53. Descripción de un flip-flop D, clear asincrónico, habilitación del reloj.

En este video te explico la descripción VHDL de un flip-flop D, con clear asincrónico y habilitación del reloj. Te muestro la tabla de verdad a fin de realizar la arquitectura y ver porqué la habilitación se denomina “habilitación del reloj”. Uso un “process” con dos señales en la lista de sensibilidad. Para generar prioridades entre las señales de entrada y analizar condiciones uso la sentencia condicionada “if…then” con la opción “elsif” y con un “if…then” anidado. Uso la función “rising_edge” para detectar el flanco creciente. Especifico incompletamente el “if” para inferir memoria. Analizo un “warning”. Con la herramienta “Tool” del Quartus II y la opción “Technology Map Viewer (post Mapping)” te muestro el esquemático generado y te lo explico. 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, entra en /contactame/ .