Lección 3.V22. Descripción: memoria estática, asincrónica con bus de datos bidireccional, SRAM.

Muestro una descripción de una memoria estática, asincrónica, con bus de datos bidireccional. Explico el circuito esquemático RTL que generó la herramienta Netlist Viewers del Quartus II. Analizo los warnings de la compilació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 http://susycursos.com/contactame/.

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

Lección 19.V129. Testbench memoria SRAM estática, sincrónica, bus bidireccional. Usa procedimientos.

Te explico el testbench para una memoria SRAM, sincrónica y con bus de datos bidireccional. Me base en los diagramas temporales de una memoria comercial y los modifiqué para convertirla en sincrónica. Para hacer más legible el testbench, definí procedimientos para escribir, leer y verificar la memoria. Los ubiqué en un “package” propio. Te explico detalladamente los procedimientos siguiendo la hoja de datos. Este video continúa en el siguiente que es donde realizo 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 http://susycursos.com/contactame/.

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

Hoja de datos, Fujitsu: MB8464A-10-X/-10LL-X.

Hoja de datos, Fujitsu: MB8464A-10-X/-10LL-X.

Lección 19.V128. Descripción: memoria estática sincrónica con bus de datos bidireccional, SRAM. DE1.

Te muestro la descripción de una memoria estática, sincrónica, con bus de datos bidireccional, SRAM. Luego la instancio en otra descripción, diseñada para usar la plaqueta. Uso un “package” propio en la misma carpeta de trabajo. Allí está la SRAM como componente. Te explico todos los circuitos esquemáticos generados por el RTL Viewer de la herramienta Tool del Netlist Viewers del Quartus II. Finalmente te mostro el funcionamiento en la FPGA Cyclone II de la plaqueta DE1 de Altera.

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

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

Lección 19.V127. Descripción de una memoria estática, sincrónica, SRAM. Ejecución en la plaqueta DE1.

Descripción de una memoria RAM estática, SRAM, sincrónica, con entrada de datos separada de la salida de datos. Es recomendable que en las FPGA todos los diseños sean sincrónicos, por ese motivo decidí describir una SRAM sincrónica. Intel reconoce el diseño como perteneciente a una memoria y el Quartus incluye un bloque RAM sincrónico propio, dentro de mi diseño. Te muestro el RTL Viewer de Tools, Netlist Viewers del Quartus y lo analizo. Allí se observa el bloque incluido por el Quartus. Luego programo la plaqueta DE1 de Intel-Altera y muestro el correcto funcionamiento.

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

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

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” 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 un decodificador genérico.
Última parte del código del testbench de un decodificador genérico.

Lección 7.V32. Testbench para el conversor BCD binario natural a Aiken.

En este video te explico cómo usar una tabla (un arreglo) para verificar si las salidas son las esperadas. Uso for…loop y el atributo ‘range. Uso el atributo ‘image. Incluyo el package numeric_std para poder usar las funciones: to_unsigned y 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.

Formas de onda del conversor de códigos BCD, de binario natural a Aiken,

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

Lección 3.V19. ROM: binario a Gray.

Descripción VHDL de una memoria ROM genérica usada para convertir de código binario natural de 4 bits a código Gray. Incluyo el package numeric_std para usar datos unsigned y la función to_integer para el casting. Defino un nuevo tipo de datos con type y arreglos con array. Escribo una tabla con el código Gray que será el contenido de la memoria ROM. Analizo el hardware sintetizado con la herramienta Technology Map Viewer del Quartus II. Y finalmente realizo la simulación para comprobar el correcto funcionamiento. Puedes ver el código en mi post Lección 3. 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/

Lección 3.V15. Multiplexor genérico.

Descripción VHDL de un multiplexor genérico con entrada de habilitación activa en alto. Uso el package numeric_std para cambiar el tipo de datos de std_logic_vector a enteros (unsigned, to_integer). Uso Generic y constante de tipo positive (> 0).  Luego de compilarlo sin errores, simulo el comportamiento. Puedes ver el código en mi post Lección 3. 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/

Lección 1.V6. Descripción de una tabla de verdad comprimida con punteros.

En este video te explico cómo describir una compuerta AND de 2 entradas con una tabla de verdad en forma comprimida mediante un puntero. Mantengo la entidad de los diseños anteriores, genero un vector con las dos entradas para lo cual las tengo que concatenar, como ya vimos en un ejemplo anterior. Y defino una “signal” de tipo “std_logic_vector”. Para hacer el “casting” incorporo un nuevo package: “numeric_std“. Defino una constante en la parte declarativa de la arquitectura y muestro cómo se hace un “casteo“. Puedes ver el código en mi post Lección 1. 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/