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

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

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

V104. Instalación Quartus II, versión 20.1 para Linux.

En este video te muestro de dónde descargar la versión 20.1 del Quatus II de Intel para Linux. Elegí la opción de archivos individuales porque pesa algunos Gb menos que la completa. Junto con el Quartus descargué el ModelSim, un dispositivo FPGA y otro CPLD. Tanto el Quartus como el ModelSim son de extensión .run. Para instalar el Quartus desde la línea de comandos me encontré con dos problemas, primero, el nombre del archivo estaba encerrado entre comillas, lo tuve que renombrar y segundo, no era ejecutable, ni para el grupo ni para cualquiera (faltaban las correspondientes “x”), lo tuve que hacer ejecutable. Finalmente lo corrí con un diseño para corroborar el correcto funcionamiento.Observaciones: 1. Comprobé que es más sencillo instalarlo y ejecutarlo directamente desde Dolphi, dos clic y listo.2. No necesité agregar ninguna biblioteca probablemente porque ya tenía instalada otra versión del Quartus II y había tenido que agregar manualmente una serie de bibliotecas. Si no es tu caso, tienes que armarte de paciencia e ir buscando en la Web las bibliotecas que faltan, las agregas y finalmente va a funcionar.3. He bajado también la versión completa de 6.4 Gb, que no recomiendo. Esa versión es de extensión .tar. La ventaja es que la instalación resultó mucho más sencilla.4. Si bajas una versión vieja puede ser que funcione en 32 bits, por ejemplo la que yo necesité, la 13.0, y dependiendo de la versión de Linux que tengas, vas a necesitar bajar la arquitectura de 32 bits, porque va a estar corriendo por primera vez en ese Linux un programa de 32 bits. No hay garantía de que no necesites además bajar bibliotecas.

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

Lección 15.V102. Sumador serie. Casteo y acondicionamiento de operandos.

En este video describo un sumador serie basado en dos registros de desplazamiento, un sumador completo de 1 bit y un flip-flop tipo D, como muestro en un esquema. Explico cómo generar el flip-flop D y porqué es necesario incluirlo. Explico una solución para realizar la suma de 1 bit cuando los operandos contienen 1 solo bit de un std_logic_vector. Te muestro ejemplos de sumas realizadas de esta manera.

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

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

Lección 10.V57. Flip-flop JK con entrada de clear y de preset.

En este video te explico cómo describir un flip-flop JK, con entradas asincrónicas de “clear” y “preset”, a partir de su ecuación característica. La entrada “clear” tienen prioridad sobre la entrada “preset”. Con la sentencia if…elsif, doy prioridad a clear sobre preset y sobre el flanco ascendente del reloj. Uso la función “rising_edge” para detectar el flanco creciente de la señal de reloj. En la arquitectura defino una señal auxiliar para poder escribir la ecuación característica del flip flop. Compilo y analizo los “warnings”. Luego recurro a la herramienta “Tool” y selecciono “RTL Viewer” del Quartus para ver y analizar el circuito esquemático generado. 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, entra en /contactame/ .