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 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 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.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 14.V100. Testbench del contador en secuencia arbitraria. Simulación. Generación de reset.

En este video explico el testbench del contador en secuencia arbitraria. Realizo la simulación con el STKWave y con el ModelSim. Genero un segundo pulso de reset y muestro un posible error y cómo se detecta.

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 14.V97. Problemas cuando la entrada es asincrónica. Máquina Mealy. Detector de secuencia 1011.

Te muestro un testbench que genera entradas de bits no sincronizadas con el reloj de manera de poder constatar el mal funcionamiento del detector de secuencia con salida tipo Mealy cuando no se cumple la hipótesis de diseño (la entrada debía ser sincrónica). Luego simulo usando el GTKWave por línea de comando. Allí vemos que el estado próximo es el correcto ya que lo genera el proceso combinacional, que es asincrónico, pero el proceso secuencial sincrónico no actualiza el estado hasta no recibir un flanco ascendente de la señal de reloj, de manera que no hay coordinación entre los procesos. La salida se activó con un ‘1’ solamente en la última secuencia exitosa, no detectó las anteriores, fallando en los bits 8, 12, 21 y 33.

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 14. V96. Testbench, detector de secuencia, con solapamiento, salida Moore. GTKWave por línea de comando.

En este video te explico cómo hacer un testbench para el detector de secuencia con salida Moore, con solapamiento. Compilo y simulo por línea de comando (git bash). Genero la entrada sincronizada con el reloj, dentro del ciclo “for” y después de un flanco creciente del reloj. Defino una constante std_logic_vector para generar una cadena de bits correspondientes a los sucesivos bits de la entrada. Y otra para las salidas esperadas. Uso un ciclo for-loop. Uso los atributos ‘range e ‘image. Analizo las formas de ondas que muestra el GTKWave. Vemos las señales del port y los estados.

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 14.V94. Testbench, detector de secuencia, sin solapamiento, salida Moore. GTKWave por línea de comando.

En este video te explico cómo hacer un testbench para el detector de secuencia con salida Moore, sin solapamiento. Compilo y simulo por línea de comando (git bash). Defino una constante std_logic_vector para generar una cadena de bits correspondientes a los sucesivos bits de la entrada. Y otra para las salidas esperadas. Uso un ciclo for-loop. Uso los atributos ‘range e ‘image. Analizo las formas de ondas que muestra el GTKWave. Vemos las señales del port y los estados.

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 14. V92. Testbench, detector de secuencia, solapamiento, salida Mealy. ModelSim por línea de comando.

En este video te explico cómo hacer un testbench para el detector de secuencia con salida Mealy, con solapamiento. Compilo y simulo usando el ModelSim por línea de comando (git bash). Para simular uso opciones que permiten ver los ports de la entidad y las señales de la descripción, en este caso son los estados (actual y prox), de tipo enumerados. Defino una constante std_logic_vector para generar una cadena de bits correspondientes a los sucesivos bits de la entrada. Y otra para las salidas esperadas. Uso un ciclo for-loop. Uso los atributos ‘range e ‘image. Analizo las formas de ondas que muestra el ModelSim. Vemos las señales del port y los estados.

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