Curso de VHDL (blog)

Lección 15. V120. Testbench del sumador serie usado para generar la tabla del 7. Graba un archivo.

En este video describo un testbench para una nueva aplicación del sumador serie: generar una tabla de multiplicación. Defino un package propio y en él declaro procedimientos para usar un archivo para los resultados. En ese archivo de salida escribo la tabla de multiplicación del 7.

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 17.V119. Testbench. Uso de procedimientos. Declaración en package. Diferencias con las funciones.

En este video te muestro cómo escribir un procedimiento (procedure) para usarlo en un testbench y cómo incluirlo en un “package”. Analizo las diferencias entre las funciones (function) y los procedimientos que constituyen los subprogramas de VHDL. Analizo y ejecuto la descripción, los dos “packages” que uso (uno contiene la función que vimos en el video anterior) y el testbench. Te muestro el contenido del archivo work-obj93.cf, que va generando el analizador de GHDL.

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 17.V118. Declarando una función en un package y compilando todo con GHDL y con ModelSim.

En este video te muestro cómo definir una función en un package de manera que pueda ser compartida por varios proyectos. Te explico cuáles son las partes del package. Luego compilo y ejecuto usando GHDL y repito esos pasos pero para ModelSim.

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 17.V117. Testbench con una función declarada dentro del código.

En este video te explico cómo modificar el código del conversor BCD binario natural a BCD Aiken para generar una función que se ubicará dentro del mismo código. Te explico las características de las funciones del lenguaje VHDL.

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.V116. Testbench: que usa archivos y datos string y std_logic_vector. Conversión de datos.

En este video te explico el testbench para el conversor de BCD binario natural a código BCD Aiken (contempla la posibilidad de que haya valores que no correspondan a un BCD binario natural válido). Uso archivos para la lectura de los datos y la escritura de los resultados. Los datos serán leídos desde el archivo de entrada, usando el tipo de datos “string” para posteriormente convertirlos al tipo “std_logic_vector”. Te muestro el archivo de entrada, con los datos que incluyen valores que no corresponden a un BCD binario natural válido. Convierto los subíndices que varían e n forma creciente (1 a 4) en otros en forma decreciente (de 3 a 0). Te comento porqué no uso el package de Synopsys. Puedes consultar sobre el problema de compatibilidad en:

http://ghdl.free.fr/ghdl/IEEE-library-pitfalls.html

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.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 16.V113. Testbench. Genera archivo de salida de formato compatible con planilla electrónica.

En este video muestro cómo obtener un archivo de salida con el formato compatible con una planilla electrónica, por ejemplo Microsoft Office Excel. Se trata de una modificación del testbench que expliqué en el video anterior. Si te parece útil la explicación no te olvides de darle un clic a “me gusta” y a la campanita ¡Gracias! Para contactarme entrá a mi sitio Web: https://susycursos.com. Puedes solicitarme a través de https://susycursos.com/contactame/ 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.

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 16.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 16.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,