Lección 11. V60. Contador sincrónico binario de módulo potencia de dos.

En este video te explico la descripción VHDL de un contador binario de módulo potencia de 2, también llamado cíclico. Como primer ejemplo elegí un contador que tiene solamente la entrada de pulsos a contar (reloj) y como salida el estado de la cuenta. Como uso una señal de tipo unsigned incluyo el package numeric_std. Uso la función rising_edge. Compilo y controlo los “warnings”. Luego recurro a la herramienta “Tool” y selecciono “Technology Map Viewer” del Quartus II 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/ .


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

Lección 3.V16. Sumador binario genérico.

Descripción y simulación de un sumador binario genérico de magnitudes de N bits. Uso el package numeric_std para cambiar el tipo de datos a unsigned para así de poder realizar la suma. Recuerdo que no existe el casting de un std_logic a unsigned, hay que transformarlo en un std_logic_vector de un solo elemento. Cambio el largo de un vector concatenándole un ‘0’ adelante. Puedes ver el código en mi post Lección 3. VHDL por comportamiento. /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.  /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. /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.  /contactame/

Lección 2.V12. BCD binario a Aiken.

En este video te describo un conversor de código BCD binario natural a código BCD Aiken, usando operaciones aritméticas que no están permitidas para el tipo de datos std_logic y std_logic_vector, motivo por el cual tengo que usar el package numeric_std del IEEE. Este package incluye nuevos tipos de datos, entre ellos unsigned. Haciendo conversión de datos soluciono el problema. Primero cometo adrede un error para que veas cómo te avisa el compilador que no puede hacer operaciones aritméticas con el tipo de datos std_logic_vector. Una vez corregido, lo vuelvo a compilar y finalmente simulo para comprobar el correcto comportamiento. También te muestro dónde se encuentran los package en la instalación de Altera, en particular los dos que hemos usado:

std_logic_1164    y     numeric_std

Los abro para mostrarte parte del contenido, por ejemplo los tipos de datos que usamos en esta descripción. Puedes ver el código en mi post Lección 2. VHDL por comportamiento. /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.  /contactame/