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 https://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 https://susycursos.com/contactame/.

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

Lección 18.V121. Divisor de frecuencia que genera dos frecuencias, 200Hz y 1Hz. Ejecución en la plaqueta DE1 de Altera.

En este video te muestro cómo generar dos frecuencias distintas usando una sentencia “case”. Una frecuencia de 200 Hz, periodo de 5ms y otra de 1 Hz, periodo de 1 s, para usos generales. Te muestro el circuito esquemático generado por Nestlist Viewer de la herramienta Tool del Quartus II. Analizo la cantidad de multiplexores y de flip-flop tipo D necesarios para sintetizar el circuito cuando se usa el atributo “range” al definir una señal como “integer” y la comparo con la cantidad necesaria cuando no se usa ese atributo. Luego programo la plaqueta DE1 de Altera-Intel para verificar 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 https://susycursos.com/contactame/.

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

Lección 15.V101. Función de resolución. Aplicación a un multiplexor con salida de alta impedancia.

En este video te explico que es la función de resolución y la aplico a un caso concreto de un multplexor de dos canales, con salida de alta impedancia, Z. Además cómo se modeliza una entrada con pull-up y otra con pull-down. También te cuento los posibles problemas que puedes encontrar con los compiladores y los simuladores. Te muestro la el package std_1164.vhdl y dónde puedes encontrar la tabla de doble entrada para analizar la función de reolución. También te explico cómo modelizar un pull-up y un pull-down y cómo funcionan.

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. V95. Máquina de estado Moore, detector de secuencia, con solapamiento.

Te explico una máquinas de estado con salida Moore. Describo un detector de secuencia con solapamiento. Uso la sentencia case para modelizar la máquina de estados. Uso tipo de datos enumerados para definir los estados. Diseño la máquinas de estados usando dos procesos, uno secuencial y otro combinacional. Explico un diagrama de estados y luego lo traduzco a código VHDL. Uso la herramienta Tool del Quartus II, selecciono Netlist Viewer, RTL (para ver las características de la salida tipo Moore), Technology Map Viewer (vemos que el Quartus usa 4 flip-flop para generar 5 estados) y State Machine Viewer (vemos el diagrama de estados, la tabla de transiciones y la codificació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 14.V93. Máquina de estado Moore, detector de secuencia, sin solapamiento. Case. State Machine.

Te explico una máquinas de estado con salida Moore. Describo un detector de secuencia sin solapamiento. Uso la sentencia case para modelizar la máquina de estados. Uso tipo de datos enumerados para definir los estados. Te explico las diferencias principales de las salidas tipo Mealy y Moore y algunas ventajas de éstas últimas. Diseño la máquinas de estados usando dos procesos, uno secuencial y otro combinacional. Explico un diagrama de estados y luego lo traduzco a código VHDL. Uso la herramienta Tool del Quartus II, selecciono Netlist Viewer, RTL (para ver las características de la salida tipo Moore), Technology Map Viewer (vemos que el Quartus usa 4 flip-flop para generar 4 estados) y State Machine Viewer (vemos el diagrama de estados, la tabla de transiciones y la codificació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 14. V91. Máquina de estado Mealy, detector de secuencia, solapamiento. Case. State Machine.

Te explico una máquinas de estado con salida Mealy. Describo un detector de secuencia con solapamiento. Uso la sentencia case. Tipo de datos enumerados. Máquinas de estados con dos procesos, uno secuencial y otro combinacional. Te muestro las plantillas del Quartus. Explico un diagrama de estados y luego lo traduzco a código VHDL. Uso la herramienta Tool del Quartus II, Netlist Viewer, RTL (para ver las características de la salida tipo Mealy), Technology Map Viewer (vemos que el Quartus usa 4 flip-flop para generar 4 estados) y State Machine Viewer (vemos el diagrama de estados, la tabla de transiciones y la codificación). Te explico la sentencia “case”. Para hacer la descripción VHDL uso datos enumerados para definir 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.V89. Máquinas de estado, Mealy, detector de secuencia. Sentencia case.State Machine Viewer.

Te explico las máquinas de estado con salida Mealy y Moore. Describo un detector de secuencia. Uso la sentencia case. Tipo de datos enumerados. Diferencia entre salida tipo Mealy y tipo Moore. Máquinas de estados con dos procesos, uno secuencial y otro combinacional. Construyo y explico un diagrama de estados y luego lo traduzco a código VHDL. Uso la herramienta Tool del Quartus II, Netlist Viewer, RTL (para ver las características de la salida tipo Mealy), Technology Map Viewer (vemos que el Quartus usa 4 flip-flop para generar 4 estados) y State Machine Viewer (vemos el diagrama de estados, la tabla de transiciones y la codificación). Te explico la sentencia “case” comparándola con la correspondiente sentencia concurrente “when”. Para hacer la descripción VHDL uso datos enumerados para definir 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 13.V78. Descripción de un generador de secuencia pseudo-aleatoria de 5 bits.

Descripción y explicación de un generador de una secuencia pseudo-aleatoria de 5 bits usando un registro de desplazamiento. Este generador cuenta con 32 estados ya que se fuerza el estado con todos los bits en cero. También tiene una señal de reset. Te muestro en una tabla la secuencia generada. Analizo con detalle los esquemáticos generados por RTL y Technology Map Viewer del Quartus II.

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 11.V66. Contador binario, sincrónico, genérico, bidireccional.

En este video comparo dos descripciones para un contador sincrónico, genérico, bidireccional. Te muestro el RTL Viewer en ambos casos para justificar la segunda descripción (ahorra recuersos de hardware). En esa descripción uso una señal auxiliar “dir” para lograr que el contador incremente el valor de la cuenta cuando la señal del port de entrada “up_i” esté en ‘1’ o que lo decremente cuando” up_i” esté en ‘0’. Uso una señal integer y el atributo “range”, explico porqué es conveniente definir un rango. También comento la diferencia entre usar señales o usar variables. Compilo y analizo el Technology Map Viewer. Muestro que la señal auxiliar “dir” no se sintetizó.

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

Technology Map Viewer.

Te muestro el código “clásico” de un contador bidireccional, para que compares ambos diseños, fíjate cómo el primero es más claro, en él se evitó tener una gran cantidad de sentencias “if” anidadas que ensucian el código. Y, además, a continuación te muestro el esquemático RTL Viewer que generó el Quartus II para que lo compares con el anterior y compruebes cómo el primer diseño optimizó los recursos del hardware.

RTL Viewer.