Me complace compartir que el curso de VHDL y FPGA que he estado desarrollando durante los últimos seis meses está cerca de completarse. Actualmente en beta, se lanzará oficialmente este otoño. ¿Para quién es el curso? Este programa está diseñado para desarrolladores que ya conocen otros lenguajes d
Cuando me encontré por primera vez con la interfaz AXI al diseñar un módulo, me sorprendió su enfoque de control de flujo simplificado. A diferencia de protocolos tradicionales que dependen de pares busy/valid, full/valid o empty/valid, AXI usa solo dos señales: ready y valid. Lo que comenzó como fr
Poblar RAM de bloques con valores predefinidos se hace de forma más eficiente leyendo literales binarios o hexadecimales desde un archivo ASCII. Esta técnica también sirve para crear ROMs, ya que la ROM de FPGA es simplemente una RAM que solo se lee. Para los ejemplos siguientes, se declaran las si
Leer datos de estímulo desde un archivo externo es una forma potente de controlar un Device‑Under‑Test (DUT) en VHDL. Mediante scripting de una secuencia de valores de señal y tiempos de simulación en un archivo de texto plano, los diseñadores pueden intercambiar rápidamente patrones de prueba sin m
Al trabajar con testbenches VHDL, la forma más sencilla de importar una imagen es usar el formato de gráficos raster BMP. Los archivos BMP son nativamente compatibles con Windows y exponen datos de píxeles sin compresión, lo que los hace ideales para simulación. Este artículo explica cómo leer un a
Este video es una presentación introductoria sobre tecnología FPGA y lógica programable. Ofrecí esta charla de 45 minutos en un evento organizado por 7 Peaks Software en Bangkok, Tailandia, el 19 de noviembre de 2019. Aspectos destacados de la presentación: 05:07 – ¿Quién usa FPGAs? 09:06 – ¿Qué e
VHDL incluye un generador pseudoaleatorio integrado que produce valores de punto flotante en el intervalo [0, 1]. Escalando y desplazando estos valores, puede crear datos aleatorios de cualquier tipo —real, entero, std_logic_vector o time— adecuados para testbenches. La siguiente guía muestra cómo c
La modulación por ancho de pulso (PWM) convierte un pin digital de FPGA en un potente controlador analógico. Al conmutar la alimentación entre encendido y apagado a alta velocidad, el PWM entrega la corriente promedio exacta que un dispositivo necesita, sin generar nunca un voltaje analógico real.
He notado que muchos de los gadgets que he comprado en los últimos años han pasado del parpadeo LED a la respiración LED. La mayoría de dispositivos electrónicos contienen un LED de estado cuyo comportamiento indica lo que ocurre dentro del dispositivo. Mi cepillo eléctrico parpadea un LED cuando h
Cuando un testbench VHDL alcanza el final de su ejecución prevista, querrá que el simulador se detenga limpiamente y, si es posible, devuelva el control a cualquier script llamador. Este artículo repasa las técnicas más comunes y fiables para detener una simulación en los principales simuladores VHD
La mayoría de simuladores VHDL exponen el Tool Command Language (Tcl) como su interfaz de scripting principal. Cuando escribe un comando en la consola del simulador, está usando Tcl, y también puede escribir scripts que controlen y observen su diseño VHDL. Este artículo le guía en la construcción d
Los servos de radiocontrol (RC) son el corazón de aviones, coches y barcos de aficionados. Convierten una orden de radio remota en una posición angular precisa. Como los sistemas RC llevan décadas existiendo, la interfaz estándar de la industria es modulación por ancho de pulso (PWM) en lugar de un
La sentencia generate de VHDL permite a los diseñadores replicar automáticamente un bloque de código en múltiples instancias, cada una cableada a señales distintas. Piénselo como un bucle for en tiempo de compilación que puede crear procesos encadenados o instancias de módulos, reduciendo drásticame
Las cadenas de texto en VHDL generalmente se limitan a arrays de caracteres de longitud fija. Esto tiene sentido porque VHDL describe hardware, y las cadenas de longitud genérica requieren memoria dinámica. Para definir un array de cadenas, debe asignar espacio en tiempo de compilación para el mayo
Este tutorial le guía en el uso de los núcleos Analizador Lógico Integrado (ILA) y Entrada/Salida Virtual (VIO) de Xilinx Vivado para depurar y monitorizar diseños VHDL en el chip. Al final, sabrá cómo insertar sondas, configurar disparadores y capturar el comportamiento preciso de las señales sin n
Al diseñar VHDL para aplicaciones FPGA críticas de seguridad, simplemente escribir testbenches no basta. Los ingenieros deben probar que un módulo se comporta exactamente como se especifica, libre de efectos laterales ocultos. La verificación formal proporciona esa certeza matemática. La verificació
VUnit es un framework líder open‑source de verificación VHDL que acopla un runner de suite de tests Python con una librería VHDL dedicada. Juntos automatizan compilación de testbench, ejecución y reporte de resultados, permitiendo a ingenieros seguir un ciclo de desarrollo guiado por tests. En este
¿Alguna vez ha querido ejecutar una simulación VHDL que incluya un núcleo IP de Quartus a través del framework de verificación VUnit? Eso es lo que el ingeniero FPGA Konstantinos Paraskevopoulos tenía en mente, pero no encontró un tutorial adecuado. Afortunadamente, usó su talento para averiguarlo y
En VHDL, las variables se comportan similar a variables en C: su valor está disponible inmediatamente después de una asignación y permanece inalterado hasta la siguiente asignación. Esto las hace ideales para almacenamiento temporal y cálculos procedimentales dentro de un proceso. Reglas clave para
Los diseñadores digitales confían en aritmética precisa dentro de FPGAs y ASICs. Un concepto central es la distinción entre tipos de datos signed y unsigned en VHDL. Ambos tipos están definidos en el paquete numeric_std de la librería IEEE. Aunque muchos diseñadores aún usan std_logic_arith, este pa
VHDL