Este repositorio contiene archivos de descripciones hardware y testbenchs en VHDL; todos editables bajo licencia CC0.
En este repositorio se realiza integración continua del código. Esto quiere decir que, cada vez que se publica alguna actualización, se ejecutan automáticamente todos los testbench. Así, los usuarios pueden ver qué resultado esperar, antes de descargar y ejecutar el código en sus equipos.
Concretamente, se utiliza el servicio GitHub Actions. En el mismo, la acción setup-ghdl-ci se utiliza para instalar GHDL. GHDL es un analizador, compilador, simulador y sintetizador para VHDL. Es libre y gratuito, por lo que se puede utilizar en servicios públicos, a diferencia de otros simuladores (comerciales).
El contenido de este repositorio es material complementario de una serie de videotutoriales que se han publicando en el canal de YouTube SusanaCanel durante los últimos años. A continuación, se listan enlaces a todos ellos, para facilitar la visualización de forma ordenada.
- 000. ¿Qué es VHDL? ¿Qué es un CPLD? ¿Qué es una FPGA?
- 001.1 Descarga free del Quartus II. Altera (actual Intel). Ya no es posible bajar la 9.1.
- 001.2. Introducción. Descripción: AND2 por ecuaciones. Uso del Quartus II.
- 002. Compilación y simulación: compuerta AND de 2 entradas. Quartus II, 9.1.
- 003. Descripción: compuerta AND2 con when-else. Prioridades.Quartus II, 9.1.
- 004. Descripción: compuerta AND2 con with select. Concatenación. Tabla de verdad.
- 005. Simulación de una AND2 definida por tabla de verdad. Quartus II, 9.1.
- 006. Descripción: AND2 con puntero. Numeric_std. Casting. To_integer.
- 007. Descripción: decodificador 3 a 8 con habilitación. Concatenación. With-select.
- 008. Simulación de un decodificador de 3 a 8. Quartus II, 9.1.Generación de señales.
- 009. Visor de esquemáticos (Viewers). Quartus II. RTL, Technology Map.
- 010. Descripción y simulación: multiplexor de 4 canales. With-select. Quartus II,9.1.
- 011. Descripción: codificador de prioridad, señal de grupo. When-else. Simulación.
- 012. Descripción: conversor de BCD Natural a Aiken. Numeric_std.Simulación.
- 013. Descripción: comparador genérico de enteros. Numeric_std. When-else.Casting.
- 014. Descripción: conversor genérico Gray a Natural. Generic, XOR, Subíndices.
- 015. Descripción: multiplexor genérico. Habilitación. Numeric_std.Casting.
- 016. Descripción de un sumador de magnitudes genérico. Numeric_std, unsigned
- 017. Descripción de un multiplicador genérico de enteros. Numeric_std, signed.
- 018. Descripción de un sumador-restador genérico de enteros. Numeric_std
- 019. Descripción de una ROM como conversor de binario natural a Gray.
- 020. Descripción de un decodificador genérico mediante process. Lista de sensibilidad.
- 021. Descripciónde un árbol de Paridad genérico mediante process, for...loop, variable.
- 022. Descripción: memoria estática, asincrónica con bus de datos bidireccional, SRAM.
- 023. Descripción algorítmica de una NOR genérica. for...loop, if, process. Simulación
- 024. Descripción algorítmica de una NAND genérica. for...loop, if, process. Simulacion
- 025. Descripción estructural de un circuito. Package, RTL, Technology Viewer.
- 026.1. Descripción: display de 7 segmentos para exhibir comparación o suma de BCDs.
- 026.2 VHDL. Hardware sintetizado y efectos de eliminación de una señal de la descripción.
- 026.3. Ejecución del circuito sintentizado en la plaqueta DE1 de Altera.
- 026.4. Modificación de la descripción del circuito sintetizado del sumador y comparador.
- 027.0. Recapitulación y próximos screencasts.
- 027.1.Descarga del ModelSim del sitio de Intel-Altera.
- 028.1. Uso sencillo del ModelSim.TestBench para la AND2ecu.
- 028.2. Simulación con ModelSim generando formas de onda con Testbench.
- 029.1. Explicación de un testbench para el decodificador de 3 a 8 con habilitación.
- 029.2. Testbench usando "for" para el Decodificador 3 a 8.
- 030.1. Testbench para el multiplexor de 4 canales. Análisis de errores.
- 030.2. Testbench optimizado para el multiplexor de 4 canales. Uso "for" anidados.
- 030.3. Testbench de un multiplexor genérico con entrada de habilitación.
- 031. Testbench para el codificador de prioridad de 4a2
- 032. Testbench para el conversor BCD binario natural a Aiken.
- 033. Testbench para el comparador genérico de enteros. Tablas (array)
- 034. Testbench para el conversor genérico de Gray a binario.Tablas (array)
- 035. Testbench para el sumador genérico de magnitudes. Varias tablas (array). For...loop.
- 036. Testbench del multiplicador genérico de números enteros de N bits.
- 037. Testbench para el sumador/restador genérico de números enteros.
- 038. testbench para una memoria ROM que contiene el código Gray de 4 bits.
- 039. Testbench del decodificador genérico con habilitación.
- 040. Testbench para el árbol genérico de paridad par e impar.
- 041. Testbench para la compuerta NOR genérica. For...loop.
- 042. Testbench para una compuerta NAND genérica. For...loop.
- 043. Testbench de un circuito descripto estructuralmente.
- 044. Testbench para 4 dígitos de un display de 7 segmentos.
- 045.1 En este video te cuento cómo va a seguir el curso y por qué voy a pedir donaciones.
- 045.2 Te cuento porqué no puse el botón de donación.
- 046. Descripción de un biestable (latch) D.
- 047. testbench y simulación del latch D.
- 048. Descripción de un latch SR con reset prioritario.
- 049. Testbench y simulación de un latch SR con reset prioritario.
- 050. Descripción de un flip-flop D activo con flanco ascendente de reloj.
- 051. Programa VHDL de simulación para generar serie de pulsos.
- 052. Testbench de un flip-flop D. Generación del reloj.
- 053. Descripción de un Flip-flop D con clear asincrónico y habilitación del reloj.
- 054. Testbench y simulación flip-flop D clear y habilitación del clk. Generación de reloj
- 054.1. Testbench flip-flop D clear y habilitación del clk. Generación de reloj.
- 054.2. Simulación flip-flop D, con clear y habilitación del reloj.
- 055. Descripción de un flip-flop JK.
- 056.1. Testbench del flip-flop JK.
- 056.2. Simulación del flip-flop JK.
- 057. Descripción de un flip-flop JK, con clear y preset.
- 058.1. Testbench del flip-flop JK con clear y preset.
- 058.2. Simulación flip-flop JK, con clear y preset.
- 059. Comentarios sobre el curso.
- 060. Contador binario, sincrónico, módulo potencia de 2.
- 061. Explicación y testbench sobre las limitaciones del contador sin una señal de reset.
- 062. Descripción de un contador binario sincrónico, genérico, con reset sincrónico.
- 063. Testbench y simulación del contador sincrónico con reset sincrónico.
- 064. Contador binario, habilitación y reset sincrónicos, cuenta terminal y estado.
- 065. Testbench. Simulación. Metavalue. Cont. hab., reset, estado y cuenta terminal.
- 066. Contador binario, sincrónico, genérico, bidireccional.
- 067. Testbench y simulación del contador binario, sincrónico, bidireccional.
- 068. Contador sincrónico, de módulo arbitrario, ejemplo contador decimal.
- 069.1. Testbench y simulación del contador sincrónico, módulo M (decimal).
- 069.2. Análisis de un error de la simulación producido por el testbench del contador M.
- 070. Descripción de un registro PIPO, genérico, sincrónico, con reset.
- 071. Testbench y simulación del registro PIPO sincrónico con reset sincrónico.
- 072. Registro PIPO, sincrónico, habilitación y salida de alta impedancia.
- 073. Testbench y simulación: registro PIPO, sinc. , habilitación y salida tri-state.
- 074. Descripción de un registro SISO, genérico, de desplazamiento a derecha.
- 074. Descripción: registro SISO/SIPO, genérico, sincrónico, desplazamiento a derecha.
- 075. Testbench: registro SISO/SIPO, sincrónico, desplazamiento a derecha.
- 076. Descripción: registro SISO/SIPO, carga paralelo, sincrónico, genérico, reset.
- 077. Testbench: reg SISO/SIPO, carga paralelo, reset sincrónico.
- 078. Descripción de un generador de secuencia pseudo-aleatoria de 5 bits.
- 079. Testbench y simulación del generador de secuencia pseudo-aleatoria de 5 bits.
- 080. Descripción: contador en anillo con arranque automático. Hardware generado.
- 081. Testbench: contador en anillo con arranque automático.
- 082. Verificación del funcionamiento del autocorrector del contador en anillo.
- 083. Contador Johnson o Moebius, módulo par, arranque automático. Hardware generado.
- 084. Testbench, contador Johnson o Moebius, módulo par.
- 085. Verificación del funcionamiento del autocorrector del contador Johnson o Moebius.
- 086. Descripción de un contador Johnson o Moebius de módulo impar. Hardware generado.
- 087. Open Source para editar y simular, ghdl, gtkwave, vs code, git bash.
- 088. Descripción, testbench y simulación,contador Johnson o Moebius, M impar, autoarranque
- 089. Máquinas de estado, Mealy, detector de secuencia. Sentencia case.State Machine Viewer
- 090. Testbench, detector de secuencia, salida Mealy. Simulación con gtkwave, vista estados
- 091. Máquina de estado Mealy, detector de secuencia, solapamiento. Case. State Machine.
- 092. Testbench, detector de secuencia, solapamiento, salida Mealy. ModelSim por línea.
- 093. Máquina de estado Moore, detector de secuencia, sin solapamiento. Case. State Machine
- 094. Testbench, detector de secuencia, sin solapamiento, salida Moore. GTKWave por línea.
- 095. Máquina de estado Moore, detector de secuencia, con solapamiento. Case. State Machine
- 096. Testbench, detector de secuencia, con solapamiento, salida Moore. GTKWave por línea.
- 097. Problemas cuando la entrada es asincrónica. Máquina Mealy. Detector secuencia 1011.
- 098. Cómo hacer un archivo ejecutable de comandos para compilar y simular VHDL.
- 099. Máquina de estado. Contador que cuenta en una secuencia. Comparación de estilos.
- 100. Testbench del contador en secuencia arbitraria. Simulación. Generación de reset.
- 101. Función de resolución. Aplicación a un multiplexor con salida de alta impedancia.
- 102. Sumador serie. Casteo y acondicionamiento de operandos.
- 103. Testbench y simulación del sumador serie. Uso ghdl y gtkwave para simular.
- 104. Instalación Quartus II, versión 20.1 para Linux.
- 105. Sumador serie, señales detener y fin de suma. Descripción, testbench y simulación.
- 106. Divisor de frecuencia, 2 contadores anidados. Descripción, testbench y simulación.
- 107. Estudio del rebote cuando se cuenta en binario usando la plaqueta DE1 de altera.
- 108. Descripción: máquina de estado antirrebote (debouce). Ejecución en la plaqueta DE1.
- 109. En la plaqueta muestro sin "espera_liberación". Testbench antirrebote y simulación.
- 110. Descripción, testbench y simulación: sumador serie de los N 1eros. nros. naturales.
- 111. Testbench que usa archivos para leer los datos y para escribir los resultados.
- 112. Testbench manejo de archivos, 2da. parte. Poniendo prolijo el archivo de salida.
- 113. Testbench. Genera archivo de salida de formato compatible con planilla electrónica.
- 114. Utilizando el shell Bash para generar el archivo de entrada al testbench.
- 115. Testbench: archivos con datos de tipo bit_vector, problemas detectados.
- 116. Testbench: que usa archivos y datos string y std_logic_vector. Conversión de datos.
- 117. Testbench con una función declarada dentro del código.
- 118. Declarando una función en un package y compilando todo con GHDL y con ModelSim.
- 119. Testbench. Uso de procedimientos. Declaración en package. Diferencias con funciones
- 120. Testbench del sumador serie usado para generar la tabla del 7. Graba un archivo.
- 121. Divisor de frecuencia, genera dos frecuencias, 200Hz y 1Hz. Ejecución en plaqueta.
- 122. 1era.Parte: diseño estructural sincrónico, sumador serie. Ejecución en la plaqueta.
- 123. Testbench del 1er. bloque del sumador serie. Análisis de la simulación.
- 124. Descripción como máquina de estado, testbench y simulación de un sumador serie.
- 125. Diseño estructural: divisor de frecuencia, antirrebote, sumador serie. Ejecución.
- 126.Diseño estructural, sum.serie, div. frec, antirrebote, conversores bin2BCD, BCD-7seg
- 127. Descripción de una memoria estática, sincrónica, SRAM. Ejecución en la plaqueta DE1
- 128. Descripción: memoria estática sincrónica con bus de datos bidireccional, SRAM. DE1.
- 129. Testbench memoria SRAM estática, sincrónica, bus bidireccional. Usa procedimientos.
- 130. Simulación de la memoria SRAM estática, sincrónica, con bus bidireccional. Script.
- 131. Trasmisor de la UART RS-232. Prueba transmitiendo de la plaqueta a la computadora.
- 131 Parte final. Transmisor UART RS-232. Uso cable HL-340. Terminal PuTTY.
- 132.Transmitiendo un mensaje, RS232, desde el circuito sintetizado a la PC. Descripción.
- 133. Testbench: transmisor de la UART RS-232 enviando un mensaje. Simulación con GTKWave
- 134. Descripción: receptor de la UART-RS232, baud rate. Circuito sintetizado. Ejecución.
- 135.Testbench: receptor, UART RS-232. Relación: baud-rate/ muestreo. Solución.Simulación
- 136. Optimización: receptor de la UART RS-232. Descripción, testbench y simulación.
- 137. Optimización del hardware: UART RS-232 a 115200bps. Simulación. Ejecución plaqueta.
- 138. Optimización: transmisor de la UART RS-232. Descripción, testbench y simulación.