Lección 16.V115. Testbench: archivos con datos de tipo bit_vector, problemas detectados.

En este testbench uso un archivo con datos de entrada de tipo bit_vector. Te muestro qué inconveniente surge usando estos tipos de datos y porqué hay que usar tipos std_logic_vector. Convierto los bit_vector a std_logic_vector. Te explico porqué aparece el siguiente warning: (assertion warning): NUMERIC_STD.: metavalue detected, returning FALSE. Muestro el siguiente error y explico porqué se produjo. (assertion failure): bit_vector read failure.

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

Puedes ver y descargar mis códigos fuente de: https://github.com/susanacanel/proyectos-vhdl.

Lección 16.V114. Utilizando el shell Bash para generar el archivo de entrada al testbench.

En este video te muestro cómo utilizar el Bash para generar el archivo de entrada al testbench que prueba el multiplicador de enteros de 8 bits. Se logra generar todas las combinaciones de enteros de 8 bits de manera que, para este caso particular, la prueba es exhaustiva. https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html https://linux.die.net/man/1/seq

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 15.V112. Testbench manejo de archivos, 2da. parte. Poniendo prolijo el archivo de salida.

Te muestro las modificaciones que hice con respecto al testbench de manejo de archivos del video anterior para poner prolijos los datos en el archivo de salida, “productos.txt”. Usé el tipo de datos “character LT” (line feed) para saltar un renglón. Usé los argumentos opcionales del “procedure write”. Usé un lazo “while loop” para calcular el número de caracteres de un número entero. Cambié los operandos en el archivo de entrada “factores.txt” de manera de considerar valores extremos. Te muestro cómo responde el testbench cuando hay un dato erróneo y cuando hay un error en la descripción.

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 15.V111. Testbench que usa archivos para leer los datos y para escribir los resultados.

En este video explico cómo hacer un testbench que lea los operandos y el valor esperado de un producto de números enteros desde un archivo de texto. Y luego escriba los operandos y el producto en otro archivo agregándole previamente un título y encabezamiento de las columnas. Te cuento qué package es necesario agregar, qué nuevos tipos (type) es necesario definir (file, text, line) y qué funciones y procedimientos del package uso. También te explico de qué modo pueden ser los archivos y qué estados pueden tener. Y qué es un filehandle. Se trata de un nuevo testbench para la descripción de un dispositivo que realiza el producto de dos operandos (en un videos anterior habíamos visto un testbench con dos lazos “for” anidados).

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

testbench con archivos, package std.textio,use std_textio.all,library std, file text,read_mode, write_mode, append_mode, file_open, file_close, file_open_status, filehandle, open_ok, status_error, name_error, mode_error, writeline, readline, while not loop, endfile, variable, string', string' attribute, lenght' attribute, read procedure, write procedure, readline procedure, type line, type text, std_imput, std_output, nivel inicial, curso, vhdl,

Lección 15.V110. Descripción, testbench y simulación: sumador serie de los N primeros números naturales.

Te muestro una aplicación del sumador serie para sumar los N primeros números naturales. Hice pequeñas modificaciones al sumador serie que habíamos analizado para que fuera más flexible. Te muestro las diferencias con el código anterior. Luego te explico el testbench. Uso un ciclo for…loop para generar los operandos que sucesivamente le introduzco a la señal b_i. Para finalizar mostrándote la simulación en el GTKWave.

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 15. V109. En la plaqueta muestro qué pasa cuando se elimina el estado “espera_liberación”. Testbench antirrebote y simulación.

Te muestro en la plaqueta qué sucede cuando no se tiene en cuenta el estado que llamé “espera_liberación”. Y luego el testbench y la simulación. Para hacer más clara la simulación con el GTKWave, cambié en la descripción los valores máximos de las cuentas de manera de obtener una demora del orden de los ns, compatible con el periodo de la señal de clock. También agregué un contador3 que cuenta los pulsos de la señal de clock. Te explico el testbench y lanzo la simulación utilizando el GTKWave. Analizo el resultado de la simulación.

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 15.V103. Testbench y simulación del sumador serie. Uso ghdl y gtkwave para simular.

En este video te muestro el testbench para el sumador serie de 4 bits, analizando el esquema del sumador y luego lo simulo. Vemos los desplazamientos de los bits en los registros y cómo después de 4 ciclos de reloj se obtiene el resultado de la suma en uno de ellos y se recupera el operando en el otro. Verifico para dos sumas, con y sin bit de acarreo final.

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 15.V105. Sumador serie, señales detener y fin de suma. Descripción, testbench y simulación.

En este video te explico las modificaciones que le hice al sumador serie del video anterior para que una señal indique cuándo hay una suma válida en el port de salida, s_o. Agregué otra señal para lograr que cuando terminó de realizar una suma se detenga la operación y usé la señal de carga paralelo, pe_i, como señal de arranque del sumador, a parte de que cumpla con su función específica de realizar la carga paralelo y de que actué como una especie de reset ya que da los valores iniciales de varias señales. Te muestro el testbench para comprobar el correcto funcionamiento del diseño. Compilo usando GHDL y luego simulo con GTKWave, analizando las formas de ondas.

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 15.V106. Divisor de frecuencia, con 2 contadores anidados. Descripción, testbench y simulación.

En este video te muestro un divisor de frecuencia realizado con dos contadores anidados a fin de poder obtener una frecuencia muy pequeña, Hz, por ejemplo, a partir de frecuencias de decenas de MHz. Realizo la simulación con relaciones de frecuencia pequeñas, 1/24, para poder analizar las formas de las ondas.

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 15.V108. Descripción de una máquina de estado antirrebote (debouce). Ejecución en la plaqueta DE1.

Explico una máquina de estados que resuelve el problema del rebote de los interruptores y luego el código para implementarla. Genero, state machine, con la herramienta tools, netlist viewers del Quartus II, comprobando el diseño de la máquina de estados. Uso pin planner para la asignación de terminales. Bajo la descripción, en formato .sof, a la RAM de la FPGA Cyclone II de la plaqueta DE1 de Altera. Acciono el interruptor y el reset para comprobar el correcto funcionamiento. Con cada acción vemos que los 4 leds muestran el incremento de una cuenta en binario. Te muestro todo el proceso de programación de la plaqueta.

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