Lección 8.V39. Testbench del decodificador genérico con habilitación.

En este video te muestro la descripción de un testbench para un decodificador genérico de N bits con entrada de habilitación. Uso dos simples for…loop, uno para el decodificador habilitado y otro para cuando está inhabilitado, verificando así todos los casos posibles. En el assert uso la expresión: “2**i” o sea, 2 elevado al índice del for, para generar las salidas esperadas. Uso el atributo ‘image. Incluyo el package numeric_std para poder usar las funciones: to_integer, to_unsigned.
Para finalizar uso el testbench para simular y te muestro el resultado.
A través de “contactame” /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 un decodificador genérico.
Última parte del código del testbench de un decodificador genérico.

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” /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.V37. Testbench para el sumador/restador genérico de números enteros.

En este video te muestro un testbench para un sumador/restador de números enteros. Pruebo con números enteros de 4 bits, eligiendo distintas sumas y restas con números con igual o distintos signos de manera de cubrir todos los casos posibles. Analizo el indicador (flag) de desborde (overflow).
Para finalizar uso el testbench para simular y te muestro el resultado.
A través de “contactame” /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 sumador/restador genérico de enteros.
Segunda parte del código del testbench para el sumador/restador genérico de enteros.
Tercera parte del código del testbench para el sumador/restador genérico de enteros.
Cuarta parte del código del testbench para el sumador/restador genérico de enteros.
Quinta parte del código del testbench para el sumador/restador genérico de enteros.
Sexta parte del código del testbench para el sumador/restador genérico de enteros.
Última parte del código del testbench para el sumador/restador genérico de enteros.

Lección 8.V36. Testbench del multiplicador genérico de números enteros de N bits.

En este video te explico el testbench para probar el multiplicador genérico de números enteros de N bits. Muestro cómo el ModelSim modela la alta impedancia.
Para finalizar uso el testbench para simular y te muestro el resultado.
A través de “contactame” /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 multiplicador genérico de enteros.
Última parte del código del testbench para el multiplicador genérico de enteros.

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” /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.V34. Testbench para el conversor genérico de Gray a binario.Tablas (array).

En este video te explico el testbench para el conversor genérico, de N bits, de código Gray a código binario natural. Uso tablas para generar el estímulo de entrada (type … array). Con un simple for…loop verifico los 16 casos que elegí como para cubrir todas las posibilidades. Uso los atributos ‘range e ‘image. Incluyo el package numeric_std para poder usar las función: to_integer.
Para finalizar uso el testbench para simular y te muestro el resultado.
A través de “contactame” /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 conversor genérico de Gray a binario natural.
Última parte del código del testbench del conversor genérico de Gray a binario natural.

Lección 6.V26. VHDL para síntesis y para simulación.

En este video te explico la diferencia entre VHDL para síntesis y para simulación. Qué son los bancos de prueba o “testbenchs”. Te cuento que a partir de ahora voy a hacer screencast de testbenchs o sea programas en VHDL para probar las descripciones VHDL que vimos y también vamos a ver las simulaciones. Vas a necesitar descargar el ModelSim que viene con el SP del Quartus II, eso te lo explico en el próximo screencast.

Lección 5.V25.2. Hardware sintetizado y efectos de eliminación de una señal de la descripción.

En este video analizo el RTL y el Technology Map Viewers comparándolos con la descripción VHDL y explicando que son los LE (Logic Element) y la LUT ( look-up-table) y cómo verlos en el Technology Map. Modifico la descripción eliminando una señal y muestro los efectos sobre el hardware sintetizado y los tiempos de propagación de las señales. Muestro las etapas del diseño CAD. Muestro como se asignan las patas. Explico la diferencia entre programar y configurar. Muestro cómo se usa el programador del Quartus II, para configurar la FPGA. Archivo de extensión SOF para bajar a la SRAM del Cyclone II.
Puedes ver el código en mi post Lección 5. VHDL descripción estructural.  /blog/page/3/ 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. /contactame/


Análisis el RTL y el Technology Map Viewers

Lección 4.V23. Descripción NAND genérica.

Puedes ver el código en mi post Lección 4. VHDL descripción algorítmica. /2018/09/03/leccion-4-arquitectura-algoritmica/ . 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. /contactame/

Lección 3.V20. Decodificador genérico.

Descripción VHDL de un decodificador genérico de N bits, con habilitación activa en alto y salida activa en alto. Uso de proceso explícito: process. Uso del package numeric_std, para usar tipo de datos unsigned. Uso de la función to_integer para poder usar los std_logic_vector como subíndices. Uso de de generic. Puedes ver el código en mi post Lección 3. VHDL por comportamiento. /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.  /contactame/