2.24k likes | 2.46k Views
I7268. Programación de sistemas reconfigurables. DEPARTAMENTO DE ELECTRÓNICA DIVISIÓN DE ELECTRÓNICA Y COMPUTACIÓN CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIRÍAS UNIVERSIDAD DE GUADALAJARA. Temas del día. Introducción a los lenguajes HDL Sintaxis de VHDL Estructura Variables
E N D
I7268 Programación de sistemas reconfigurables M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx DEPARTAMENTO DE ELECTRÓNICA DIVISIÓN DE ELECTRÓNICA Y COMPUTACIÓN CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIRÍAS UNIVERSIDAD DE GUADALAJARA
Temas del día • Introducción a los lenguajes HDL • Sintaxis de VHDL • Estructura • Variables • Modelos de programación • Estructuras de control • Sintaxis de Verilog. • Estructura • Variables • Modelos de programación • Estructuras de control. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx
Lecturas recomendadas • CircuitDesignwith VHDL • Volnei A. Pedroni • MIT Press • Fundamentals of Digital Logicwith VHDL Design. • Stephen Brown • ZvonkoVranesic • McGrawHill • Thirdedition M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx
Temas del día • Introducción a los lenguajes HDL • Sintaxis de VHDL • Estructura • Variables • Modelos de programación • Estructuras de control • Sintaxis de Verilog. • Estructura • Variables • Modelos de programación • Estructuras de control. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx
Introducción a los lenguajes HDL • Es cualquier lenguaje de una clase de lenguajes utilizado en la descripción y diseño formal de circuitos electrónicos y mas comúnmente de lógica digital. • HDL (Hardware DescriptionLanguage) Lenguaje que describe Hardware M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Hardware_description_language.html
Introducción a los lenguajes HDL • AHDL • ABEL • AHPL • Bluespec • ELLA • HHDL • Hydra • ParC • JHDL • KARL • Lava • Lola • MyHDL • PALASM • PSHDL • RHDL • THDL++ • VHDL • Verilog M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Hardware_description_language.html
Introducción a los lenguajes HDL Verilog • Segundo más común • Mas fácil de enseñar • Estándar IEEE VHDL • Más común • Más formal • Estándar IEEE M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Hardware_description_language.html
Introducción a los lenguajes HDL Xilinx vs Altera M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx http://www.altera.com/cgi-bin/device_compare.pl
Introducción a los lenguajes HDL Altera M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx http://www.altera.com/cgi-bin/device_compare.pl
Introducción a los lenguajes HDL Altera M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx http://www.altera.com/cgi-bin/device_compare.pl
Introducción a los lenguajes HDL Xilinx M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx http://www.xilinx.com/products/silicon-devices/fpga/
Introducción a los lenguajes HDL Xilinx M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx http://www.altera.com/cgi-bin/device_compare.pl
Introducción a los lenguajes HDL Aplicaciones M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx http://www.lemote.com/en/products/cpu/2010/0310/114.html
Introducción a los lenguajes HDL Aplicaciones M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx http://www.lemote.com/en/products/cpu/2010/0310/114.html
Introducción a los lenguajes HDL Dispositivos reprogramables M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx
Temas del día • Introducción a los lenguajes HDL • Sintaxis de VHDL • Estructura • Variables • Modelos de programación • Estructuras de control • Sintaxis de Verilog. • Estructura • Variables • Modelos de programación • Estructuras de control. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx
VHDL - VHSIC Hardware DescriptionLanguage VHSIC – Very High SpeedIntegratedCircuit M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Diagrama de la estructura de un archivo de VHDL
VHDL - VHSIC Hardware DescriptionLanguage Modelos de programación (formas de programar) M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx
VHDL - VHSIC Hardware DescriptionLanguage Modelos de programación (formas de programar) M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Implementación
VHDL - VHSIC Hardware DescriptionLanguage VHSIC – Very High SpeedIntegratedCircuit M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Diagrama de la estructura de un archivo de VHDL
VHDL - Entidad Ejemplo de un diagrama lógico M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx La entidad define la cantidad y tipo de entradas que tendrá el sistema digital. ¿Cuántas entradas y salidas tiene el diagrama?
VHDL - Entidad Ejemplo de un entidad Entity Entidad_TACO is port ( a: instd_logic; b: instd_logic; f: out std_logic ); End Entidad_TACO; M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx ?
VHDL - VHSIC Hardware DescriptionLanguage VHSIC – Very High SpeedIntegratedCircuit M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Diagrama de la estructura de un archivo de VHDL
VHDL - Bibliotecas ¿std_logic? M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx
Señales lógicas M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx
Señales lógicas M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Fig1. Rangos de valores de una señal lógica
Señales lógicas M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Fig 2. Rangos de valores de una señal lógica en valores de voltaje.
VHDL - Bibliotecas ¿std_logic? Las bibliotecas contienen definiciones y elementosútiles en el diseño de sistemas digitales por software. Como los valores lógicos necesarios para comunicar a un sistema digital. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx
VHDL - Bibliotecas Ejemplo de una biblioteca común en VHDL. Libraryieee; Useieee.std_logic_1164.all; Declaración de las representaciones de valores lógicos Ejemplo: std_logic M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 'Z' - alta impedancia. 'W' - señal débil 0 o 1. 'L' - señal débil 0. 'H' -señal débil 1. '-' -no importa. 'U' - valor sin inicializar. 'X' - desconocido. '0' - 0 lógico. '1' -1 lógico. Ver
VHDL - Bibliotecas Bit 0,1 Nibble4 bits (0000-1111) ,(0-15) , (0-F) Byte 8 bits (00000000-11111111),(0-255) MSB LSB 8 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx MSB LSB 5 Ver
VHDL - Bibliotecas Library ieee; Use ieee.std_logic_1164.all; Ejemplo:std_logic ¿Cuál es el máximo valor en binario que puede representar una entrada o salida std_logic? M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Respuesta: 1 Ver
VHDL - Entidad Ejemplo de un entidad Entity Entidad_TACO is port ( a: instd_logic; b: instd_logic; f: out std_logic ); End Entidad_TACO; M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx ?
VHDL - Bibliotecas Library ieee; Use ieee.std_logic_1164.all; Ejemplo:std_logic ¿Cómo puedo representar una nibble de información utilizando std_logic? M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Respuesta: con otro elemento de la biblioteca std_logic_vector Ver
VHDL - Bibliotecas MSB LSB 8 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Ver
VHDL - Bibliotecas LSB MSB 5 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Ver
VHDL - Bibliotecas+entidad: ejemplo Entradas: botones, contactos, sensores, etc. Salidas: pantallas, bocinas, motores, etc. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx ¿# salidas? ¿# entradas? Decodificador BCD a 7 segmentos
VHDL - Bibliotecas+entidad: ejemplo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx
VHDL - Bibliotecas+entidad: ejemplo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx
VHDL - Bibliotecas+entidad: ejemplo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx
VHDL - Bibliotecas+entidad: ejemplo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx
VHDL - Bibliotecas+entidad: ejemplo Entradas: botones, contactos, sensores, etc. Salidas: pantallas, bocinas, motores, etc. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx ¿# salidas? ¿# entradas? Decodificador BCD a 7 segmentos
VHDL - bibliotecas+entidad: ejemplo Entidad del diagrama anterior Entity Entidad_TACO is port ( BCD: instd_logic_vector(3 downto 0); SAL: out std_logic_vector(6 downto 0); ); End Entidad_TACO; M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx
VHDL - bibliotecas+entidad: ejemplo Código de ejemplo en VHDL de un circuito digital Biblioteca Entidad M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Arquitectura
VHDL - bibliotecas+entidad: ejemplo Código de ejemplo en VHDL de un circuito digital Entidad Nombre: ? # entradas: ? # salidas: ? # tamaño entradas:? # tamaño salidas: ? Biblioteca M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Arquitectura
VHDL - bibliotecas+entidad: ejemplo Código de ejemplo en VHDL de un circuito digital X1 x1 x1 B Biblioteca A F f A x1 B A X2 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Arquitectura
VHDL - bibliotecas+entidad: ejemplo Código de ejemplo en VHDL de un circuito digital Biblioteca M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Arquitectura
VHDL - bibliotecas+entidad: ejemplo Código de ejemplo en VHDL de un circuito digital Biblioteca ? M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Arquitectura ?
VHDL - bibliotecas+entidad: ejemplo En VHDL no importa si se escribe con MAYúSCULAS o minúsculas Lenguaje C Int temperatura; Int Temperatura; VHDL Entity = eNTity = EnTiTy M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Son dos variables distintas
VHDL - bibliotecas+entidad: ejemplo Código de ejemplo en VHDL de un circuito digital Biblioteca ? M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Arquitectura ?
VHDL - bibliotecas+entidad: ejercicio Completa cada código de acuerdo al diagrama B Biblioteca f A Ejercicio1 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Arquitectura