Master VHDL:Introducción completa al diseño FPGA y ASIC
Tutorial – Introducción a VHDL
VHDL es un acrónimo horrible. Significa V HSICH hardware D descripción L lenguaje. Un acrónimo dentro de un acrónimo, ¡increíble! VHSIC significa V muy H alto S orinar yo C integrada circuito. Por lo tanto, VHDL expandido es V Todo circuito integrado de alta velocidad H hardware D descripción L lenguaje. UF, eso es un bocado. VHDL es uno de los dos lenguajes utilizados por la educación y las empresas para diseñar FPGA y ASIC. Primero podría beneficiarse de una introducción a los FPGA y ASIC si no está familiarizado con estos fascinantes circuitos. VHDL y Verilog son los dos lenguajes que utilizan los diseñadores digitales para describir sus circuitos y su diseño es diferente al de los lenguajes de software tradicionales, como C y Java.
Para el siguiente ejemplo, crearemos un archivo VHDL que describe una y puerta. Como repaso, un And Gate simple tiene dos entradas y una salida. La salida es igual a 1 solo cuando ambas entradas son iguales a 1. A continuación se muestra una imagen de la puerta And que describiremos con VHDL.
Una puerta y
¡Vamos a ello! La unidad fundamental de VHDL se llama señal . Por ahora supongamos que una señal puede ser 0 o 1 (en realidad hay otras posibilidades, pero llegaremos a eso). Aquí hay algo de lógica VHDL básica:
signal and_gate : std_logic; and_gate <= input_1 and input_2;
La primera línea de código define una señal de tipo std_logic y se llama and_gate. Std_logic es el tipo que se usa más comúnmente para definir señales, pero hay otros que conocerá. Este código generará una puerta AND con una única salida (and_gate) y 2 entradas (input_1 y input_2). La palabra clave "y" está reservada en VHDL. El operador <=se conoce como operador de asignación. Cuando analizas verbalmente el código anterior, puedes decir en voz alta:"La señal and_gate OBTIENE input_1 y-ed con input_2".
Ahora quizás te preguntes de dónde vienen input_1 y input_2. Bueno, como su nombre lo indica, son entradas para este archivo, por lo que debes informar a las herramientas sobre ellas. Las entradas y salidas de un archivo se definen en una entidad . Una entidad contiene un puerto que define todas las entradas y salidas de un archivo. Creemos una entidad simple:
entity example_and is port ( input_1 : in std_logic; input_2 : in std_logic; and_result : out std_logic ); end example_and;
Esta es tu entidad básica. Define una entidad llamada ejemplo_and y 3 señales, 2 entradas y 1 salida, todas las cuales son de tipo std_logic. Se necesita otra palabra clave VHDL para completar esto y es arquitectura . Una arquitectura se utiliza para describir la funcionalidad de una entidad particular. Piense en un trabajo de tesis:la entidad es el índice y la arquitectura es el contenido. Creemos una arquitectura para esta entidad:
architecture rtl of example_and is signal and_gate : std_logic; begin and_gate <= input_1 and input_2; and_result <= and_gate; end rtl;
El código anterior define una arquitectura llamada rtl de la entidad ejemplo_y. Todas las señales que utiliza la arquitectura deben definirse entre las palabras clave "is" y "begin". La lógica de la arquitectura real se encuentra entre las palabras clave "inicio" y "fin". Ya casi has terminado con este archivo. Una última cosa que debe decirles a las herramientas es qué biblioteca usar. Una biblioteca define cómo se comportan ciertas palabras clave en su archivo. Por ahora, simplemente da por sentado que necesitas tener estas 2 líneas en la parte superior de tu archivo:
library ieee; use ieee.std_logic_1164.all;
¡Felicitaciones! Ha creado su primer archivo VHDL. Puedes ver el archivo completo aquí:
library ieee; use ieee.std_logic_1164.all; entity example_and is port ( input_1 : in std_logic; input_2 : in std_logic; and_result : out std_logic ); end example_and; architecture rtl of example_and is signal and_gate : std_logic; begin and_gate <= input_1 and input_2; and_result <= and_gate; end rtl;
¿Parece que tuviste que escribir mucho código solo para crear una puerta estúpida? En primer lugar, las puertas no son estúpidas. En segundo lugar, tienes razón; VHDL es un lenguaje muy detallado. Acostúmbrese al hecho de que hacer algo que era muy fácil en software le llevará mucho más tiempo en un HDL como Verilog o VHDL. ¡Pero simplemente pídale a algún experto en software que intente generar una imagen en un monitor VGA que muestre el Juego de la vida de Conway y observe cómo sus cabezas dan vueltas con asombro! Por cierto, ese vídeo está creado con VHDL y FPGA. ¡Podrás hacerlo muy pronto!
A continuación analizaremos otra palabra clave fundamental de VHDL:proceso.
VHDL
- Guía para principiantes sobre el uso de Modelsim para simulación FPGA y ASIC
- Verificación formal en VHDL usando PSL
- Cuestionario básico de VHDL - parte 3
- Cómo crear una lista enlazada en VHDL
- Cómo usar Firmado y Sin firmar en VHDL
- Cuestionario básico de VHDL - parte 2
- Cómo usar una función en VHDL
- Cómo crear tu primer programa VHDL:¡Hola mundo!
- Master VHDL:Introducción completa al diseño FPGA y ASIC
- Cómo crear una máquina de estados finitos en VHDL
- Cómo crear un efecto LED de respiración utilizando una onda sinusoidal almacenada en RAM de bloque