Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> VHDL

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

  1. Guía para principiantes sobre el uso de Modelsim para simulación FPGA y ASIC
  2. Verificación formal en VHDL usando PSL
  3. Cuestionario básico de VHDL - parte 3
  4. Cómo crear una lista enlazada en VHDL
  5. Cómo usar Firmado y Sin firmar en VHDL
  6. Cuestionario básico de VHDL - parte 2
  7. Cómo usar una función en VHDL
  8. Cómo crear tu primer programa VHDL:¡Hola mundo!
  9. Master VHDL:Introducción completa al diseño FPGA y ASIC
  10. Cómo crear una máquina de estados finitos en VHDL
  11. Cómo crear un efecto LED de respiración utilizando una onda sinusoidal almacenada en RAM de bloque