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

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

Lección 10.V52. Testbench de un flip-flop D. Generación del reloj.

En este testbench del flip-flop D modelizo el tiempo para poder generar la señal periodica 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, recuerdo que se ejecutan en modo concurrente. Modelizo el tiempo de establecimiento, el tiempo de mantenimiento y genero el ancho de los pulsos. Genero una señal pulsante infinita. 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. 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/ .