Lección 11.V64. Contador binario, habilitación y reset sincrónicos, cuenta terminal y estado.

En este video te explico la descripción de un contador genérico, sincrónico, binario, de módulo potencia de 2, con salidas: cuenta terminal y estado (valor de la cuenta). Analizo una sentencia que en la simulación va a producir un “Warning: metavalue detected”. Analizo el circuito 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/.

Esquema circuital producido por Technology Map Viewer.

Detalle de las celdas lógicas combinacionales.

Lección 11.V63. Testbench y simulación del contador sincrónico, con reset sincrónico.

En este video te explico el testbench del contador sincrónico, genérico, binario, con módulo potencia de dos y con reset sincrónico. El reset sincrónico la da un estado inicial. Te muestro cómo se genera la señal de reset y qué ancho aproximado debería tener. Realizo la simulación y la 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/.

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. V58.1. Testbench del flip-flop JK con clear y preset.

En este video te explico el testbench del flip-flop JK, con clear y preset. Modelizo el tiempo para poder generar la señal periódica del reloj. 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. 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.

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