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

Lección 13.V80. Descripción: contador en anillo con arranque automático. Hardware generado.

Te describo un contador en anillo con arranque automático, o sea que contempla la posibilidad tanto de que todos sus bits erróneamente estén en ‘0’ como que el contenido tenga más de ‘1’. En el primer caso inmediatamente lo lleva a su estado inicial (el del reset) con el bit más significativo en ‘1’ y el resto en ‘0’. En el segundo caso, en cada ciclo de reloj va limpiando los ‘1’ que hubiera. Uso dos procesos, la señal generada por uno de ellos dispara el otro proceso. Defino una variable. Uso for loop.

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 http://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” http://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” http://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” http://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.

Lección 8.V41. Testbench para la compuerta NOR genérica. For…loop.

En este video te muestro el testbench para una compuerta NOR 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” http://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 la compuerta NOR genérica.
Segunda parte del código del testbench para la compuerta NOR genérica.

Lección 8.V38. testbench para una memoria ROM que contiene el código Gray de 4 bits.

En este video te muestro un testbench para probar una memoria Rom usada como conversor de código binario natural de 4 bits a código Gray. inyecto direcciones y verifico que el contenido de la ROM sea el esperado, para el caso en que la ROM esté habilitada. Pruebo que la salida de datos se encuentre en alta impedancia cuando no está habilitada.
Para finalizar uso el testbench para simular y te muestro el resultado.
A través de “contactame” http://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 de una memoria ROM.
Segunda parte del código del testbench de una memoria ROM.
Tercera parte del código del testbench de una memoria ROM.
Última parte del código del testbench de una memoria ROM.

Lección 8.V35. Testbench para el sumador genérico de magnitudes. Varias tablas (array). For…loop.

En este video te muestro un testbench para el sumador genérico de magnitudes de N bits. Uso tablas para generar los estímulos de entrada (type … array) y también los valores esperados de la suma y del acarreo de salida. Con un simple for…loop verifico los 11 casos que elegí en las tablas. 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” http://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 del sumador genérico de magnitudes.
Última parte del código del testbench del sumador genérico de magnitudes.

Lección 8.V30.3. Testbench de un multiplexor genérico con entrada de habilitación.

En este video te muestro el testbench de un multiplexor genérico, de N canales, con entrada de habilitación. El testbench se realiza para un caso en particular. Uso “others” para dar el valor inicial a las señales del testbench. Sentencia for…loop. Uso generic map dado que la descripción era genérica. Uso port map. Uso el package numeric_std que necesita la función to_unsigned.
Para finalizar uso el testbench para simular y te muestro el resultado.
A través de “contactame” http://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 del multiplexor genérico.
Segunda parte del código del testbench del multiplexor genérico.
Última parte del código del testbench del multiplexor genérico.

Lección 2.V7. Descripción de un decodificador de 3 a 8 con habilitación.

Con este video inicio la Lección 2, que corresponde a descripciones VHDL de dispositivos combinacionales de propósitos generales o MSI. Describo un decodificador de 3 entradas a 8 salidas activas en alto, con entrada de habilitación también activa en alto. Uso las sentencias with-select para generar la tabla de verdad y las sentencias when else para poner la condición de habilitación. Uso when-others para cubrir todos los casos y la expresión (others =>’0′) para generar un std_logic_vector en 0 sin tener que conocer la dimensión del vector (el software ya posee esa información). Puedes ver el código en mi post Lección 2. VHDL por comportamiento. http://susycursos.com/blog/page/6/. A través de “contactame” puedes pedirme que te envíe los archivos de texto con las descripciones para que los puedas probar y el tutorial del Quartus II, que hice.  http://susycursos.com/contactame/