Curso VHDL.V80. Descripción: contador en anillo con arranque automático. Hardware generado.

Te describo un contador en anillo con arranque automático, o sea que contempla la posibilidad tanto de que todos sus bits erróneamente estén en ‘0’ como que el contenido tenga más de ‘1’. En el primer caso inmediatamente lo lleva a su estado inicial (el del reset) con el bit más significativo en ‘1’ y el resto en ‘0’. En el segundo caso, en cada ciclo de reloj va limpiando los ‘1’ que hubiera. Uso dos procesos, la señal generada por uno de ellos dispara el otro proceso. Defino una variable. Uso for loop.

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 12.V76. Descripción: registro SISO, SIPO, carga paralelo, sincrónico, genérico, con reset.

En este video te muestro la descripción de un registro de desplazamiento a derecha tipo SISO (serial input serial output) que también es SIPO (serial input parallel output), con carga paralelo, sincrónico y con reset sincrónico. Te muestro el circuito esquemático Technology Map Viewer generado por tool del Quartus II. La señal “serial input” entra al bit más significativo del registro que se encuentra a la izquierda. Uso la concatenación de vectores para generar el nuevo contenido del registro

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 12.V74. Descripción: registro SISO/SIPO, genérico, sincrónico, desplazamiento a derecha.

En este video te muestro la descripción de un registro SISO (serial input, serial output)/ SIPO(serial input, parallel output), de desplazamiento a derecha, sincrónico y genérico. La señal “serial input” entra al bit más significativo del registro que se encuentra a la izquierda y el bit menos significativo sale por la derecha a “serial output” (bit menos significativo de la salida en paralelo). Este ejemplo también consta de salida paralelo de manera que también es un registro SIPO. Uso la concatenación de vectores para generar el nuevo contenido del registro.

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 12.V72. Registro PIPO, sincrónico, habilitación y salida de alta impedancia.

En este video te muestro la descripción VHDL de un registro PIPO (parallel input parallel output), sincrónico, genérico, con habilitación del registro y habilitación de las salidas tri-state. Señales chip-enable y output-enable. Te muestro la sentencia VHDL que permite generar un buffer tri-state. El reset es sincrónico. Luego de compilar, vemos los warnings. Te muestro también el circuito esquemático generado por “Technology Map Viewer” de “Tool” y lo analizo, comprobando la existencia de los buffers tri-state sintetizados.

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 12.V70. Descripción de un registro PIPO genérico, sincrónico, con reset.

En este video te muestro la descripción VHDL de un registro PIPO (parallel input, parallel output), sincrónico, genérico. Es muy sencillo, consta de un único proceso explícito que se dispara con la señal de reloj. El reset es sincrónico. Luego de compilar, vemos los warnings. Te muestro también el circuito esquemático generado por “Technology Map Viewer” de “Tool” y lo analizo.

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.V68. Contador sincrónico, de módulo arbitrario, ejemplo contador decimal.

En este video te explico la descripción de un contador sincrónico, genérico, de módulo M, que no es potencia de 2. Consta de la señal de reset para darle un valor inicial y de la señal de habilitación. Detecta el valor valor máximo de la cuenta, M-1 para reinicializar la cuenta. Explico porqué se compara con el valor del módulo menos uno. Explico qué instrucción va a producir un warning, posteriormente en la simulación con el ModelSim y porqué se produce. Luego analizo el circuito esquemático Technology Map Viewer que genera el Quartus II. Una celda de lógica combinacional sintetizó el detector del 9 (el ejemplo usa una constante M=10, se trata de un contador decimal) usando una compuerta OR. La salida de esa compuerta se niega para generar el port de salida tc_o (cuenta terminal), y se usa para resetear en forma sincrónica los flip-flops, generándose así el valor inicial de la cuenta.

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.

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.

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

Lección 10.V53. Descripción de un flip-flop D, clear asincrónico, habilitación del reloj.

En este video te explico la descripción VHDL de un flip-flop D, con clear asincrónico y habilitación del reloj. Te muestro la tabla de verdad a fin de realizar la arquitectura y ver porqué la habilitación se denomina “habilitación del reloj”. Uso un “process” con dos señales en la lista de sensibilidad. Para generar prioridades entre las señales de entrada y analizar condiciones uso la sentencia condicionada “if…then” con la opción “elsif” y con un “if…then” anidado. Uso la función “rising_edge” para detectar el flanco creciente. Especifico incompletamente el “if” para inferir memoria. Analizo un “warning”. Con la herramienta “Tool” del Quartus II y la opción “Technology Map Viewer (post Mapping)” te muestro el esquemático generado y te lo explico. 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 https://susycursos.com/contactame/ .