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 12.V70. Descripción de un registro PIPO genérico, sincrónico, con reset.

En este video te muestro la descripción VHDL de un registro PIPO (parallel input, parallel output), sincrónico, genérico. Es muy sencillo, consta de un único proceso explícito que se dispara con la señal de reloj. El reset es sincrónico. Luego de compilar, vemos los warnings. Te muestro también el circuito esquemático generado por “Technology Map Viewer” de “Tool” y lo analizo.

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 11.V68. Contador sincrónico, de módulo arbitrario, ejemplo contador decimal.

En este video te explico la descripción de un contador sincrónico, genérico, de módulo M, que no es potencia de 2. Consta de la señal de reset para darle un valor inicial y de la señal de habilitación. Detecta el valor valor máximo de la cuenta, M-1 para reinicializar la cuenta. Explico porqué se compara con el valor del módulo menos uno. Explico qué instrucción va a producir un warning, posteriormente en la simulación con el ModelSim y porqué se produce. Luego analizo el circuito esquemático Technology Map Viewer que genera el Quartus II. Una celda de lógica combinacional sintetizó el detector del 9 (el ejemplo usa una constante M=10, se trata de un contador decimal) usando una compuerta OR. La salida de esa compuerta se niega para generar el port de salida tc_o (cuenta terminal), y se usa para resetear en forma sincrónica los flip-flops, generándose así el valor inicial de la cuenta.

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

Technology Map Viewer.

Lección 11.V66. Contador binario, sincrónico, genérico, bidireccional.

En este video comparo dos descripciones para un contador sincrónico, genérico, bidireccional. Te muestro el RTL Viewer en ambos casos para justificar la segunda descripción (ahorra recuersos de hardware). En esa descripción uso una señal auxiliar “dir” para lograr que el contador incremente el valor de la cuenta cuando la señal del port de entrada “up_i” esté en ‘1’ o que lo decremente cuando” up_i” esté en ‘0’. Uso una señal integer y el atributo “range”, explico porqué es conveniente definir un rango. También comento la diferencia entre usar señales o usar variables. Compilo y analizo el Technology Map Viewer. Muestro que la señal auxiliar “dir” no se sintetizó.

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

Technology Map Viewer.

Te muestro el código “clásico” de un contador bidireccional, para que compares ambos diseños, fíjate cómo el primero es más claro, en él se evitó tener una gran cantidad de sentencias “if” anidadas que ensucian el código. Y, además, a continuación te muestro el esquemático RTL Viewer que generó el Quartus II para que lo compares con el anterior y compruebes cómo el primer diseño optimizó los recursos del hardware.

RTL Viewer.

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 https://susycursos.com/contactame/.

Esquema circuital producido por Technology Map Viewer.

Detalle de las celdas lógicas combinacionales.

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 https://susycursos.com/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. 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 https://susycursos.com/contactame/ .


Lección 8.V43. Testbench de un circuito descripto estructuralmente.

En este video te muestro un testbench para el circuito definido en forma estructural. Uso tablas para generar los estímulos de las entradas (type … array). Uso dos subíndices para acceder a un dato de la tabla y a un determinado bit del dato. Con un simple for…loop verifico los 16 casos. Uso los atributos ‘range e ‘image. Incluyo el package numeric_std para poder usar la función: to_integer.
Para finalizar uso el testbench para simular y te muestro el resultado.
A través de “contactame” https://susycursos.com/contactame/ puedes pedirme que te envíe los archivos de texto con las descripciones y testbenchs para que los puedas probar y el tutorial del Quartus II, que hice.

Primera parte del código del testbench para el circuito estructural.
Última parte del código del testbench para el circuito estructural.

Lección 8.V42. Testbench para una compuerta NAND genérica. For…loop.

En este video te muestro el testbench para una compuerta NAND genérica. Lo resuelvo mediante un for…loop para todos los casos excepto uno. Con el índice del for genero los estímulos para la entrada. Uso el package numeric_std para la función to_integer, y unsigned. Uso el atributo ‘image. Para finalizar uso el testbench para simular y te muestro el resultado.
A través de “contactame” https://susycursos.com/contactame/ puedes pedirme que te envíe los archivos de texto con las descripciones y testbenchs para que los puedas probar y el tutorial del Quartus II, que hice.

Descripción
Primera parte del código del testbench de la compuerta NAND genérica.
Última parte del código del testbench de la compuerta NAND genérica.

Lección 8.V40. Testbench para el árbol genérico de paridad par e impar.

En este video te muestro el testbench para un árbol genérico de paridad par e impar. Lo resuelvo mediante un for…loop. Con el índice del for genero los estímulos para la entrada y uso tablas (array) para generar los resultados esperados. Uso el package numeric_std para la funciones to_integer, to_unsigned y unsigned. Uso los atributos ‘range e ‘image.
Para finalizar uso el testbench para simular y te muestro el resultado.
A través de “contactame” https://susycursos.com/contactame/ puedes pedirme que te envíe los archivos de texto con las descripciones y testbenchs para que los puedas probar y el tutorial del Quartus II, que hice.

Primera parte del código del testbench para el árbol de paridad.
Última parte del código del testbench para el árbol de paridad.