Programación de sistemas reconfigurables

Slides:



Advertisements
Presentaciones similares
MOVIMIENTO JOVENES DE LA CALLE CIUDAD DE GUATEMALA chi siamo quienes-somos qui sommes-nous who we are attività actividades activités activities scuola.
Advertisements

SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR
1 Datos sobre webloggers Datos extraidos de la encuesta a webloggers disponibles en la web de los autores.
ULTRASONDO EN RODILLA MENISCOS Y LIGAMENTOS
Respuestas Jack y la mata de frijoles /60. 1.vivía 2.estaba 3.estaba 4.era 5.llamaba 6.gustaba 7.comía 8.dormía 9.gustaba 10.llamó 11.dijo 12.había 13.quería.
Lenguajes de Descripción de Hardware
Los números del 0 al cero uno dos tres cuatro cinco 6 7 8
50 formas de decir “Te Amo”.
Universidad San Martín de Porres
1 LA UTILIZACION DE LAS TIC EN LAS MICROEMPRESAS GALLEGAS. AÑO mayo 2005.
1 LA UTILIZACION DE LAS TIC EN LAS PYMES GALLEGAS AÑO de Junio de 2005.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS ( Resumen PYMES ) Noviembre de 2004.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS (MICROEMPRESAS, resultados provisionales) 29 de julio de 2004.
AYUDA A LA FUNCIÓN DOCENTE Internet
TEMA 5.- 1ª PARTE. EL A.O. Y SUS APLICACIONES
TEMA 2 MÚLTIPLOS Y DIVISORES
02- Plan Organización Docente v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
02- PLAN DOCENTE Febrero 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
01- OFERTA FORMATIVA v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
Aladdín-respuestas 1.Vivía 2.Era 3.Amaba 4.Quería 5.Gustaban 6.Se sentía 7.Salía 8.Tenía 9.Decidió 10.escapó 11. Se vistió 12. Conoció 13. Vio 14. Pensó
Respuestas Buscando a Nemo.
ABECEDARIO FIGURAS GEOMÉTRICAS NÚMERO
SIMATICA V2.0. Automatización de Viviendas con Simatic S7-200
Objetivo: Los estudiantes van a usar vocabulario del desayuno para comprender un cuento. Práctica: 1. ¿Te gusta comer? 2. ¿Te gusta beber Mt. Dew.
Mulán /75 puntos. 1.Querían 2.Gustaban 3.Escuchó 4.Dijo 5.Tenía 6.Ayudaron 7.Maquillaron 8.Arreglaron 9.Dio 10.Estaba 11.Iba 12.Quería 13.Salió 14.Gritó
CLASE 3 SOFTWARE DEL MICROPROCESADOR
1 XML Extensible Markup Language HTML HyperText Markup Language normas06_01.xml.
MOVIMIENTO JOVENES DE LA CALLE CIUDAD DE GUATEMALA chi siamo quienes-somos qui sommes-nous who we are attività actividades activités activities alimentazione.
60 razones para seguir vivo
William Shakespeare ( greg.), fue un dramaturgo, poeta y actor inglés. Conocido en ocasiones como el Bardo de Avon (o.
1. Apoyo exterior sobre ala inferior de viga de acero
1 Reporte Componente Impacto Por Orden Territorial Por Departamento No Disponible ND *Los indicadores para el año 2008 no fueron calculados.
Phone2Wave-Server Manual de Operación.
TELEFONÍA IP.
Parte 3. Descripción del código de una función 1.
FUNCIONES DE UNA VARIABLE REAL
Calendario 2008 Imágenes variadas Venezuela Elaborado por: MSc. Lucía Osuna Wendehake psicopedagogiaconlucia.com Enero 2008.
¿Qué te gusta hacer? Unit 3: Vocabulario.
EL OSO APRENDIZ Y SUS AMIGOS
Ejemplar de cortesía gratis para lectura y uso personal
1 PROYECTO DE PRESUPUESTO DE EGRESOS DE LA FEDERACION 2002 COORDINACIÓN DE POLITICA ECONOMICA GP-PRD.
Hacer click Hacer click en cualquiera de estos links.
Clasificación de los indicadores por categoría
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt El vocabulario.
Ecuaciones Cuadráticas
DISEÑO E IMPLEMENTACIÓN DE UN HORNO AUTOMÁTICO DE SECADO Y ENVEJECIDO DE ARROZ PARA LA PROCESADORA DE PROYELEC INGENIERIAS. FASE 1.
Julio Cadena Gabriel Mollocana
¡Primero mira fijo a la bruja!
¿Qué es un conjunto? Un conjunto es una colección de objetos considerada como un todo. Los objetos de un conjunto son llamados elementos o miembros del.
Índice Empresa 2-4 Signos de Identidad 5-12 Versiones Permitidas 13-23
Quetzalpapalotl Quetzalpapalotl – Gevederde Slang, vlindergod.
0 1 ¿Qué hora es? By: Craig Tillmann Revised by: Malinda Seger Coppell High School Coppell, TX.
POLÍTICAS MACROECONÓMICAS Econ. SEGUNDO A. CALLE RUIZ Ms. Sc. C. D.
¿Quién? ¿Qué? ¿Dónde? ¿Cuándo? ¿Cómo? ¿Por qué?
Módulo 2: Condiciones Generales de Trabajo
MSc. Lucía Osuna Wendehake
Calendario 2009 “Imágenes variadas” Venezuela Elaborado por: MSc. Lucía Osuna Wendehake psicopedagogiaconlucia.com Enero 2009.
Realimentacion de la salida
Los Numeros.
FACULTAD DE DERECHO PROTAGONISTAS PROMOCIÓN aniversario
Estructuras de control
Manual de Procedimientos Procedimiento de ejecución del programa de
Indicaciones: 1.- Tener en cuenta que esta estrategia, solo funciona asociando las cuentas los días lunes. 2.- Los cálculos son aproximados con un margen.
Herramienta FRAX Expositor: Boris Inturias.
CHAPTER 4 VOCABULARY: PART II
FUNDAMENTOS DE CALIDAD EN LA GESTIÓN PÚBLICA
Capítulo.2 - Fundamentos del Lenguaje VHDL
VHDL Breve introducción.
Diseño lógico combinacional mediante VHDL
1 LENGUAJE DE DESCRIPCION DE HARDWARE ELECTRONICA DIGITAL NAYIBE CHIO CHO NAYIBE CHIO CHO.
Transcripción de la presentación:

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 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. Estructuras de control. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Lecturas recomendadas Circuit Design with VHDL Volnei A. Pedroni MIT Press Fundamentals of Digital Logic with VHDL Design. Stephen Brown Zvonko Vranesic McGrawHill Third edition 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. 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 Description Language) 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. Estructuras de control. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - VHSIC Hardware Description Language VHSIC – Very High Speed Integrated Circuit Estructura VHDL Declaración de bibliotecas Declaración de entidad Cuerpo de la arquitectura M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Diagrama de la estructura de un archivo de VHDL

VHDL - VHSIC Hardware Description Language 𝑋 =𝐴∙𝐵+ 𝐴+𝐵 Comportamental Estructural Modelos de programación (formas de programar) M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - VHSIC Hardware Description Language Modelos de programación (formas de programar) 𝑋 =𝐴∙𝐵+ 𝐴+𝐵 Comportamental Estructural M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Implementación

VHDL - VHSIC Hardware Description Language VHSIC – Very High Speed Integrated Circuit Estructura VHDL Declaración de bibliotecas Declaración de entidad Cuerpo de la arquitectura M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Diagrama de la estructura de un archivo de VHDL

Ejemplo de un diagrama lógico 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: in std_logic; b: in std_logic; f: out std_logic ); End Entidad_TACO; M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx ?

VHDL - VHSIC Hardware Description Language VHSIC – Very High Speed Integrated Circuit Estructura VHDL Declaración de bibliotecas Declaración de entidad Cuerpo de la arquitectura 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 Fig1. Rangos de valores de una señal lógica 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 '0' - 0 lógico. Ejemplo de una biblioteca común en VHDL. Library ieee; Use ieee.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 Nibble 4 bits (0000-1111) ,(0-15) , (0-F) Byte 8 bits (00000000-11111111),(0-255) MSB LSB Posición 3 2 1 # 1∗ 2 3 =8 1∗ 2 1 =2 8 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx LSB MSB Posición 3 2 1 # 1∗ 2 0 =1 1∗ 2 2 =4 5 Ver

VHDL - Bibliotecas Library ieee; Ejemplo: std_logic 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: in std_logic; b: in std_logic; f: out std_logic ); End Entidad_TACO; M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx ?

VHDL - Bibliotecas Library ieee; Ejemplo: std_logic 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 8 MSB LSB Posición 3 2 1 # Ver 1∗ 2 3 =8 1∗ 2 1 =2 # 1∗ 2 3 =8 1∗ 2 1 =2 8 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Ver

VHDL - Bibliotecas 5 LSB MSB Posición 3 2 1 # Ver 1∗ 2 0 =1 1∗ 2 2 =4 # 1∗ 2 0 =1 1∗ 2 2 =4 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: in std_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 A Biblioteca B A f M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx x1 X2 F Arquitectura X1 B A

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 A f Biblioteca Ejercicio1 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Arquitectura

VHDL - bibliotecas+entidad: ejercicio Completa cada código de acuerdo al diagrama x1 A Biblioteca TRETRE M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Arquitectura

VHDL - bibliotecas+entidad: ejercicio Completa cada código de acuerdo al diagrama X1 B A Biblioteca TACO M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Arquitectura

VHDL - bibliotecas+entidad: ejemplo Estructuras más completas X1 B A Biblioteca B X1 A M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Arquitectura

VHDL - bibliotecas+entidad: ejemplo Estructuras más completas Biblioteca M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Arquitectura

VHDL - VHSIC Hardware Description Language VHSIC – Very High Speed Integrated Circuit Estructura VHDL Declaración de bibliotecas Declaración de entidad Cuerpo de la arquitectura M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Diagrama de la estructura de un archivo de VHDL

VHDL - VHSIC Hardware Description Language VHSIC – Very High Speed Integrated Circuit Estructura VHDL Declaración de bibliotecas Declaración de entidad Cuerpo de la arquitectura M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Diagrama de la estructura de un archivo de VHDL

VHDL - arquitectura Arquitectura. Define como funciona internamente el circuito o sistema digital. Sistema Digital Entradas Salidas Proceso M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Arquitectura Entidad Estructura VHDL

VHDL - arquitectura: modelo 𝑋 =𝐴∙𝐵+ 𝐴+𝐵 Comportamental Estructural La arquitectura define la forma de describir el circuito. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - arquitectura: ejemplo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Entradas Salidas Proceso

VHDL - arquitectura: ejemplo Library ieee; Use ieee.std_logic_1164.all; Entity TACO is port ( a: in std_logic; b: in std_logic; y: out std_logic ); End TACO; Architecture PUESTO of TACO is Begin y <= a and b ; End PUESTO; Biblioteca Entidad M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Arquitectura

VHDL - arquitectura: ejemplo Biblioteca Entidad M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Arquitectura

VHDL - arquitectura: ejemplo Biblioteca Entidad M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Arquitectura

VHDL - arquitectura: ejemplo Biblioteca Entidad M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Arquitectura

VHDL - arquitectura: ejemplo Nombre de arquitectura Nombre de entidad Inicio M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Fin Nombre de arquitectura

Temas del día Introducción a los lenguajes HDL Sintaxis de VHDL Estructura Variables y operadores Modelos de programación Estructuras de control Sintaxis de Verilog. Variables Estructuras de control. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores Asignación Lógicos Aritméticos Relacionales Desplazamiento Concatenación M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores en la vida diaria Asignación M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx A un cheque se le asigna un valor monetario. Ejemplo: cheque = $2,400.00 pesos

VHDL - operadores <= Asignación En VHDL se utilizan para asignar valores a señales, variables y constantes. <= M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Asigna un valor a una señal

VHDL - operadores := Asignación En VHDL se utilizan para asignar valores a señales, variables y constantes. := M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Asigna un valor a una variable o constante

VHDL - operadores => Asignación En VHDL se utilizan para asignar valores a señales, variables y constantes. => M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Asigna valores a elementos individuales de un vector en conjunto con OTHERS.

VHDL - operadores Variable Constante Una representación mediante etiquetas de un valor. Constante Un valor que no puede ser cambiado durante la implementación. Señal Conexiones externas que captura y representan datos reales e internas para conexiones. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores <= Asignación Asigna un valor a una señal M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores := Asignación Asigna un valor a una variable o constante M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores => Asignación W Asigna valores a elementos individuales de un vector en conjunto con OTHERS. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx W 1 Posición 3 2 1 0

VHDL - operadores : ejercicio Completa con el operador indicado la sentencia de VHDL W__ ‘0’; A __ ¨1191¨; D __ (OTHERs __ ‘0’); B __ D; Y __ B; G __ D; W, Y y G son señales A, B y C variables D es constante M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores Asignación Lógicos Aritméticos Relacionales Desplazamiento Concatenación M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores en la vida diaria Lógicos Los resultados de las operaciones lógicas son 2. Cierto o Falso M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores en la vida diaria Lógicos Los resultados de las operaciones lógicas son 2. Cierto o Falso M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores Lógicos Se utilizan para realizar operaciones lógicas. Los datos DEBEN ser del tipo bit, std_logic o std_ulogic (obviamente con su respectivo modificador vector). M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx NOT AND OR NAND NOR XOR XNOR

VHDL - operadores Compuertas lógicas M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores Ejemplo de operaciones lógicas 𝑌= 𝐴 +𝐵 𝑌= 𝐴 +𝐵 Y <= NOT a OR b ; -- esto es un comentario M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Y <=( NOT a) OR b ; -- mejor practica Y <= NOT ( a OR b) ; -- MAL!!!!!!!!

VHDL - operadores Ejemplo de operaciones lógicas 𝑌= 𝐴+𝐵 +𝐵𝐴 𝑌= 𝐴+𝐵 +𝐵𝐴 Y <= (not (A OR B)) or (B and A) ; M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores Ejercicio: traduzca al lenguaje VHDL las siguientes ecuaciones… 𝐷 0 … 𝐷 6 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores Asignación Lógicos Aritméticos Relacionales Desplazamiento Concatenación M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores en la vida diaria Aritméticos M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores en la vida diaria Aritméticos M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores Aritméticos Son utilizados para realizar operaciones aritméticas. Los datos pueden ser del tipo INTEGER, SIGNED, UNSIGNED o REAL. Si se agrega la biblioteca std_logic_signed o std_logic_unsigned también se pueden utilizar los operadores std_logic_vector. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores Aritméticos + Suma - Resta * Multiplicación. / División. ** Potencia. MOD Módulo. REM Residuo. ABS Valor absoluto. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Ver pagina 49 Volnei A.

VHDL - operadores Asignación Lógicos Aritméticos Relacionales Desplazamiento Concatenación M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores Relacionales M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores Relacionales o de comparación Son utilizados para hacer comparaciones los resultados son lógicos. = ¿Es igual a? /= ¿Es distinto de? < ¿Es menor qué? > ¿Es mayor qué? <= ¿Menor o igual qué? => ¿Mayor o cual qué? M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores Asignación Lógicos Aritméticos Relacionales Desplazamiento Concatenación M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores Desplazamiento M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores Desplazamiento Son utilizados para desplazar datos. sll desplazamiento lógico a la izquierda ¨1100¨ sll 1 conlleva a ¨1000¨ srl desplazamiento lógico a la derecha ¨1100¨ sll 2 conlleva a ¨0011¨ M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores Desplazamiento Son utilizados para desplazar datos. sla desplazamiento aritmético a la izquierda ¨1100¨ sla 1 conlleva a ¨1000¨ sra desplazamiento aritmético a la derecha ¨1100¨ sra 2 conlleva a ¨1111¨ M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores Desplazamiento Son utilizados para desplazar datos. rol desplazamiento aritmético a la izquierda ¨1100¨ rol 1 conlleva a ¨1001¨ ror desplazamiento aritmético a la derecha ¨1100¨ ror 2 conlleva a ¨0011¨ M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores Asignación Lógicos Aritméticos Relacionales Desplazamiento Concatenación M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores Concatenación M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - operadores Concatenación Son utilizados para unir cadenas de bits. & M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Bitcat := bit0 & bit1 & bit2 & bit3;

VHDL - operadores Asumiendo las siguientes declaraciones de señales, conteste. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx X1 <= a & c ; x1 <= __________ X2 <= c & b ; x2 <= __________ X3 <= b XOR c ; x3 <= __________ X4 <= a NOR b(3); x4 <= __________

VHDL - operadores Asumiendo las siguientes declaraciones de señales, conteste. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx X5 <= b sll 2; x5 <= __________ X6 <= b sla 2 ; x6 <= __________ X7 <= b rol 2 ; x7 <= __________

VHDL - operadores Asumiendo las siguientes declaraciones de señales, conteste. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx X8 <= a AND NOT b(0) AND NOT c(1); x8 <= __________

VHDL - VHSIC Hardware Description Language VHSIC – Very High Speed Integrated Circuit Estructura VHDL Declaración de bibliotecas Declaración de entidad Cuerpo de la arquitectura M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Diagrama de la estructura de un archivo de VHDL

Temas del día Introducción a los lenguajes HDL Sintaxis de VHDL Estructura Variables y operadores Modelos de programación Estructuras de control Sintaxis de Verilog. Variables Estructuras de control. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

VHDL - estructuras de control Concurrentes Operadores When Generate Block Secuenciales Process Señales y variables If Wait Case M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Case e IF Case y When

VHDL - estructuras de control Salidas Entradas Proceso Sistema combinatorio general Retroalimentación M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Salidas Entradas Proceso Sistema secuencial general

VHDL - estructuras de control VHDL es un lenguaje concurrente. Sólo las instrucciones escritas dentro de un proceso, función o procedimiento son secuenciales. El bloque de estos conjuntos en su aspecto general es igualmente concurrente. 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 y operadores Modelos de programación Estructuras de control Sintaxis de Verilog. Variables Estructuras de control. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

FPGA de bajo costo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx $850.00

VHDL - Las estructuras de control se analizaran cuando el tema sea apropiado de acuerdo a la planeación semanal. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Plan de curso (17 semanas) Planeación de temas Introducción Combinatorio HDL+comb. Secuencial HDL+Secu. Vacaciones HDL+Sec. HDL+Mem. Aplicaciones Proyecto Ordinario Extraordinario I7268 1 2 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 3 F

Plan de curso (17 semanas) Actividades de aprendizaje I7268 Actividad 1. Introducción (Encontrar ecuaciones lógicas a partir de una tabla de verdad. Actividad 2. Analizar, simular y encontrar los parámetros principales de un circuito combinatorio. Actividad 3. Diseñar un sistema digital con un CPLD. BCD a 7 segmentos. Actividad 4. Simular códigos de ejemplos en HDL. Sumador completo. Actividad 5. Implementación y simulación de un sistema digital aplicado a un problema de la vida cotidiana. Actividad 6. Diseño y simulación de circuitos secuenciales (FF´s, FSM). Actividad 7. Diseño y simulación de contadores de maquinas de estado finitas aplicados a resolver problemas reales. Actividad 8. Diseño y simulación de contadores síncronos. 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. Estructuras de control. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog: introducción M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Protoboard utilizado en el diseño digital.

Verilog: introducción !Cuidado no olvides escribirlo en tu código. Seguro esto no se te olvidara, sólo por si acaso. No te olvides de los paréntesis. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Palabras reservadas de Verilog. Nomenclatura utilizada en esta presentación

Verilog- arquitectura: ejemplo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Entradas Salidas Proceso

Verilog- arquitectura: ejemplo module Compuerta_AND ( input A, input B, output Y ); assign Y = A & B; endmodule M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog- arquitectura: ejemplo module Compuerta_AND (A, B, Y); input A; input B; output reg Y; always @(A or B) begin Y = A & B; end endmodule M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog- arquitectura: ejemplo module Compuerta_AND ( input A, input B, output Y ); assign Y = A & B; endmodule Tipo de entradas y salidas M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Funcionamiento

Verilog- arquitectura: ejemplo module Compuerta_AND ( input A, input B, output Y ); assign Y = A & B; endmodule Tipo de entradas y salidas M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Funcionamiento

Verilog- arquitectura: ejemplo module Compuerta_AND (A, B, Y); input A; input B; output reg Y; always @(A or B) begin Y = A & B; end endmodule Tipo de entradas y salidas M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Funcionamiento

Verilog- arquitectura: ejemplo module Compuerta_AND (A, B, Y); input A; input B; output reg Y; always @(A or B) begin Y = A & B; end endmodule Tipo de entradas y salidas M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Funcionamiento

Verilog Temas Tipos de datos. Operadores. Ejemplos combinatorios. Diseño concurrente. Diseño estructural. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog: tipos de datos Están diseñados para representar los elementos de transmisión y memoria encontrados en los sistemas digitales. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog: tipos de datos Valores lógicos 0 0 lógico o falso. 1 1 lógico o verdadero. X valor desconocido. Z estado de alta impedancia. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog: tipos de datos Representaciones numéricas binario Tamaño en bits: estándar 32 Apostrofe 8'b00101111 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx T'bX 2'b01 Valores de acuerdo al tamaño 4'b0010 b de binario

Verilog: tipos de datos Representaciones numéricas hexadecimal Tamaño en bits: estándar 32 Apostrofe 8'hA = 0000 1010 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx T'hX 8'hA1 = 1010 0001 Valores de acuerdo al tamaño 8'hF2 = 1111 0010 h de hexadecimal

Verilog: tipos de datos Representaciones numéricas decimal Tamaño en bits: estándar 32 Apostrofe 8'd255 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx T'dX 16'd65_535 Valores de acuerdo al tamaño 8'd256 = 000 0001 d de decimal

Verilog: tipos de datos Reg Net Parameter M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog: tipos de datos Reg Net Parameter Representan variables. No necesariamente sintetizan flip-flops. Sólo se asignan en bloques always. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Si le es asignado un valor en un bloque always con detección de flancos, infiere un flip-flop.

Verilog: tipos de datos Reg Net Parameter Representan variables. No necesariamente sintetizan flip-flops. Sólo se asignan en bloques always. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Si le es asignado un valor en un bloque always con detección de flancos, infiere un flip-flop.

Verilog: tipos de datos Reg Net Parameter Representan variables. No necesariamente sintetizan flip-flops. Sólo se asignan en bloques always. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Si le es asignado un valor en un bloque always con detección de flancos, infiere un flip-flop.

Verilog: tipos de datos Reg Net Parameter Representan variables. No necesariamente sintetizan flip-flops. Sólo se asignan en bloques always. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Si le es asignado un valor en un bloque always con detección de flancos, infiere un flip-flop.

Verilog: tipos de datos Representan distintas interconexiones eléctricas entre elementos de Hardware. Reg Net Parameter Existen 10 subtipos. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx No tienen memoria, excepto por trireg.

Verilog: tipos de datos Representan distintas interconexiones eléctricas entre elementos de Hardware. Reg Net Parameter Existen 10 subtipos. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx No tienen memoria, excepto por trireg.

Verilog: tipos de datos Representan distintas interconexiones eléctricas entre elementos de Hardware. Reg Net Parameter Existen 10 subtipos. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx No tienen memoria, excepto por trireg.

Verilog: tipos de datos Wire Tri Tri0 Tri1 Trior Wand Wor Supply0 Supply1 trireg Reg Net Parameter M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog: tipos de datos Representa constantes. Reg Net Parameter Se declara como: parameter ORDEN_TACO = 5; Puede ser sobre-escrita cuando un modulo es inicializado. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx No puede ser cambiada en la ejecución del sistema digital.

Verilog: tipos de datos Representa constantes. Reg Net Parameter Se declara como: parameter ORDEN_TACO = 5; Puede ser sobre-escrita cuando un modulo es inicializado. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx No puede ser cambiada en la ejecución del sistema digital.

Verilog: tipos de datos Representa constantes. Reg Net Parameter Se declara como: parameter ORDEN_TACO = 5; Puede ser sobre-escrita cuando un modulo es inicializado. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx No puede ser cambiada en la ejecución del sistema digital.

Verilog: tipos de datos Representa constantes. Reg Net Parameter Se declara como: parameter ORDEN_TACO = 5; Se declara como: parameter ORDEN_TACO = 5; Puede ser sobre-escrita cuando un modulo es inicializado. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx No puede ser cambiada en la ejecución del sistema digital.

Verilog: tipos de datos, ejercicio. Reg Net Parameter M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog: tipos de datos ejemplos reg a; // un registro escalar wand w; // un net del escalar del tipo wand reg [3:0] v; // registro vector de 4-bits tri [15:0] busa; // bus de 16-bits tri-estado Trireg (small) storeit; /* un nodo de almacenamiento por carga de poca fueraza */ wire w1, w1; // 2 «cables» reg [4:0] x, y, z; // declara 3 registros de 5 bits M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog: tipos de datos ejemplos reg a; // un registro escalar wand w; // un net del escalar del tipo wand reg [3:0] v; // registro vector de 4-bits tri [15:0] busa; // bus de 16-bits tri-estado Trireg (small) storeit; /* un nodo de almacenamiento por carga de poca fueraza */ wire w1, w1; // 2 «cables» reg [4:0] x, y, z; // declara 3 registros de 5 bits M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog: tipos de datos ejemplos reg a; // un registro escalar wand w; // un net del escalar del tipo wand reg [3:0] v; // registro vector de 4-bits tri [15:0] busa; // bus de 16-bits tri-estado Trireg (small) storeit; /* un nodo de almacenamiento por carga de poca fueraza */ wire w1, w1; // 2 «cables» reg [4:0] x, y, z; // declara 3 registros de 5 bits M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog: tipos de datos ejemplos reg a; // un registro escalar wand w; // un net del escalar del tipo wand reg [3:0] v; // registro vector de 4-bits tri [15:0] busa; // bus de 16-bits tri-estado trireg (small) storeit; /* un nodo de almacenamiento por carga de poca fueraza */ wire w1, w1; // 2 «cables» reg [4:0] x, y, z; // declara 3 registros de 5 bits M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog: tipos de datos ejemplos reg a; // un registro escalar wand w; // un net del escalar del tipo wand reg [3:0] v; // registro vector de 4-bits tri [15:0] busa; // bus de 16-bits tri-estado trireg (small) storeit; /* un nodo de almacenamiento por carga de poca fueraza */ wire w1, w1; // 2 «cables» reg [4:0] x, y, z; // declara 3 registros de 5 bits M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog: tipos de datos ejemplos reg a; // un registro escalar wand w; // un net del escalar del tipo wand reg [3:0] v; // registro vector de 4-bits tri [15:0] busa; // bus de 16-bits tri-estado Trireg (small) storeit; /* un nodo de almacenamiento por carga de poca fueraza */ wire w1, w1; // 2 «cables» reg [4:0] x, y, z; // declara 3 registros de 5 bits M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog: tipos de datos ejemplos reg a; // un registro escalar wand w; // un net del escalar del tipo wand reg [3:0] v; // registro vector de 4-bits tri [15:0] busa; // bus de 16-bits tri-estado Trireg (small) storeit; /* un nodo de almacenamiento por carga de poca fueraza */ wire w1, w1; // 2 «cables» reg [4:0] x, y, z; // declara 3 registros de 5 bits M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog Temas Tipos de datos. Operadores. Ejemplos combinatorios. Diseño concurrente. Diseño estructural. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog- operadores Aritméticos Lógicos Relacionales Desplazamiento Condicionales Concatenación M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog- operadores Aritméticos Lógicos Relacionales Desplazamiento Condicionales Concatenación M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog: operadores Aritméticos M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog: operadores Aritméticos M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog- operadores Aritméticos Son utilizados para realizar operaciones aritméticas. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Valores negativos se toman en complemento a 2, pero se consideran sin signo en expresiones.

Verilog- operadores Aritméticos + suma - resta * multiplicación / división % modulo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog- operadores Aritméticos Lógicos Relacionales Desplazamiento Condicionales Concatenación M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog- operadores en la vida diaria Lógicos Los resultados de las operaciones lógicas son 2. Cierto o Falso M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog- operadores en la vida diaria Lógicos Los resultados de las operaciones lógicas son 2. Cierto o Falso M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog- operadores Lógicos Se utilizan para realizar operaciones lógicas. 1 and 1 = 1 0 and X = 0 & AND ~& NAND M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 1 and 1 = 0 0 and X = 1

Verilog- operadores Lógicos Se utilizan para realizar operaciones lógicas. 1 and 1 = 1 0 and X = 0 & AND ~& NAND M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 1 and 1 = 0 0 and X = 1

Verilog- operadores Lógicos Se utilizan para realizar operaciones lógicas. 1 or X = 1 0 or 0 = 0 | OR ~| NOR M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 1 or X = 0 0 or 0 = 1

Verilog- operadores Lógicos Se utilizan para realizar operaciones lógicas. 1 or X = 1 0 or 0 = 0 | OR ~| NOR M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 1 or X = 0 0 or 0 = 1

Verilog- operadores Lógicos Se utilizan para realizar operaciones lógicas. A ≠ B = 1 A = B = 0 ^ XOR ~ ^ , ^ ~ XNOR M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx A ≠ B = 0 A = B = 1

Verilog- operadores Lógicos Se utilizan para realizar operaciones lógicas. A ≠ B = 1 A = B = 0 ^ XOR ~ ^ , ^ ~ XNOR M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx A ≠ B = 0 A = B = 1

Verilog- operadores Lógicos Se utilizan para realizar operaciones lógicas. !VERDADERO = FALSO ! Negación lógica && and lógica M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx A && B = FALSO VERDE && VERDE = VERDADERO

Verilog- operadores Aritméticos Lógicos Relacionales Desplazamiento Condicionales Concatenación M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Relacionales + lógicos Verilog- operadores Relacionales + lógicos Se utilizan para evaluar relaciones. !VERDADERO = FALSO A && B = FALSO VERDE && VERDE = VERDADERO 4'b0010 && 4'b0011 = FALSE 4'b0010 & 4'b0011 = 4'b0010 ! Negación lógica && and lógica M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Relacionales + lógicos Verilog- operadores Relacionales + lógicos Se utilizan para evaluar relaciones. V || F || F = V || OR lógica == igualdad M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx ROJO == ROJO = V

Verilog- operadores Relacionales Se utilizan para evaluar relaciones. ROJO != ROJO = F != desigualdad == igualdad M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx ROJO == ROJO = V

Verilog- operadores Relacionales Se utilizan para evaluar relaciones. ROJO != ROJO = F != desigualdad == igualdad M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx ROJO == ROJO = V

Verilog- operadores Aritméticos Lógicos Relacionales Desplazamiento Condicionales Concatenación M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog- operadores Desplazamiento Se utilizan para desplazar información. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

assign C = (4'b1100 >> 2); Verilog- operadores Desplazamiento Se utilizan para desplazar información. >> desplazamiento a la derecha assign C = (4'b1100 >> 2); M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Valor de C. 1 3 2 Posición.

assign C = (4'b1010 << 2); Verilog- operadores Desplazamiento Se utilizan para desplazar información. << desplazamiento a la izquierda assign C = (4'b1010 << 2); M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Valor de C. 1 3 2 Posición.

assign C = (4'b1010 <<< 2); Verilog- operadores Desplazamiento Se utilizan para desplazar información. <<< desplazamiento aritmético izquierdo assign C = (4'b1010 <<< 2); M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Valor de C. 1 3 2 Posición.

assign C = (4'b1011 <<< 2); Verilog- operadores Desplazamiento Se utilizan para desplazar información. <<< desplazamiento aritmético izquierdo assign C = (4'b1011 <<< 2); M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Valor de C. 1 3 2 Posición.

assign C = (4'b0111 >>> 2); Verilog- operadores Desplazamiento Se utilizan para desplazar información. >>> desplazamiento aritmético derecho assign C = (4'b0111 >>> 2); M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Valor de C. 1 3 2 Posición.

assign C = (4'b1011 >>> 2); Verilog- operadores Desplazamiento Se utilizan para desplazar información. >>> desplazamiento aritmético derecho assign C = (4'b1011 >>> 2); M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Valor de C. 1 3 2 Posición.

Verilog- operadores Aritméticos Lógicos Relacionales Desplazamiento Condicionales Concatenación M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog- operadores ?: Condicional Trabaja como en el lenguaje C. Condición ? caso verdadero : caso falso ; M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog- operadores ?: Condicional Si el resultado es verdadero se evalúa el caso verdadero. Si el resultado es falso se evalúa el caso falso. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog- operadores ?: Condicional module ejemplo02 ( input wire sel, input wire i0, i1, output wire out ); assign out = sel ? i0 : i1; endmodule M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog- operadores Aritméticos Lógicos Relacionales Desplazamiento Condicionales Concatenación M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog- operadores { , } Concatenación Provee de una forma de crear buses. Expresa operando separados por comas y dentro de llaves. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog- operadores { , } Concatenación // Tomando las siguientes consideraciones. a = 1'b1, b = 2'b00, c = 2'b10, d = 3'b110 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx y = { b, c} // y valdrá 4'b0010 y = { a, b, c, d, 3’b001} 11’b10010110001

Verilog- operadores: ejercicio { , } Concatenación // Tomando las siguientes consideraciones. a = 1'b1, b = 2'b00, c = 2'b10, d = 3'b110 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx y = { a, b, c, d, 3’b001} ________________? y = { a, b[0], c[1]} ________________?

Verilog- operadores: solución { , } Concatenación // Tomando las siguientes consideraciones. a = 1'b1, b = 2'b00, c = 2'b10, d = 3'b110 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx y = { a, b, c, d, 3’b001} 11’b10010110001 y = { a, b[0], c[1]} 3’b101

Verilog- operadores: solución { { } } Replicador // Tomando las siguientes consideraciones. a = 1'b1, b = 2'b00, c = 2'b10, d = 3'b110 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx y = { 4{a} } // 4’b1111 y = { 4{a}, 2{b} } //8’11110000

Verilog- operadores Aritméticos Lógicos Relacionales Desplazamiento Condicionales Concatenación M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog Temas Tipos de datos. Operadores. Ejemplos combinatorios. Diseño concurrente. Diseño estructural. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Operadores de asignación Temas Tipos de datos. Operadores : asignación Ejemplos combinatorios. Diseño concurrente. Diseño estructural. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Operadores de asignación Blocking: Non-blocking Evaluación y asignación son inmediatos. = M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Todas las asignaciones son retrasadas hasta que las operaciones sean evaluadas. <=

Operadores de asignación Blocking: Evaluación y asignación son inmediatos. = always @ (a or b or c) begin x = a | b; y = a ^ b ^ c; z = b & ~c; end M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx // Se evalúa y asigna a x // Se evalúa y asigna a y // Se evalúa y asigna a z

Operadores de asignación Todas las asignaciones son retrasadas hasta que las operaciones sean evaluadas. Non-blocking <= always @ (a or b or c) begin x <= a | b; y <= a ^ b ^ c; z <= b & ~c; end M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx // Se evalúa pero retrasa la asignación de x // Se evalúa pero retrasa la asignación de y // Se evalúa pero retrasa la asignación de y // Se asigna x, y y z con sus valores nuevos

Blocking vs Non-blocking 1 A B ideal real Transición de señales lógicas A B C w y M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Blocking vs Non-blocking 1 A B real Transición de señales lógicas C w y w = a & b y = w | c Blocking: Evaluación y asignaciones inmediatas a = b b = a M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Non-blocking: asignación con retardo hasta evaluar todo a <= b b <= a w <= a & b y <= w | c ¿Cuándo utilizarlo? Secuencial Combinatorio

Operadores de asignación Temas Tipos de datos. Operadores : asignación Ejemplos combinatorios. Diseño concurrente. Diseño estructural. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Ejemplos combinatorios Temas Bloque always@ Ejemplo # 1 Ejemplo # 2 Ejemplo # 3 Ejercicio # 1 Ejercicio # 2 Ejercicio # 3 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Bloque always@ always@ Son utilizados para describir eventos que pasarían bajo ciertas circunstancias. Sintaxis: M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx always @(lista de sensibilidad) begin … elementos end

Blocking vs Non-blocking always @ (a or b or c or d) begin b <= a; c <= b; d <= c; end always @ (a or b or c or d) begin b = a; c = b; d = c; end M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx d = ? d = ?

Ejemplos combinatorios: # 1 𝐹=𝑋∙𝑌+ 𝑍 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Ejemplos combinatorios: # 1 Dibuja el diagrama lógico 𝐹=𝑋∙𝑌+ 𝑍 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Ejemplos combinatorios: # 1 𝐹=𝑋∙𝑌+ 𝑍 ¿Combinatorio o secuencial? ¿Cuántas entradas? ¿Cuántas salidas? ¿Tamaño de entradas o salidas? ¿Qué operadores necesita? M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Ejemplos combinatorios: # 1 module ejemplo02 ( input wire X, input wire Y, input wire Z, output F ); assign F = ( X & Y ) | (~Z); endmodule Solución por comportamiento 𝐹=𝑋∙𝑌+ 𝑍 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Ejemplos combinatorios: # 1 𝐹=𝑋∙𝑌+ 𝑍 Ejemplos combinatorios: # 1 Solución por estructura Código de compuerta AND Código de compuerta OR Código del circuito M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Código de compuerta NOT

Ejemplos combinatorios: # 1 𝐹=𝑋∙𝑌+ 𝑍 Ejemplos combinatorios: # 1 Solución por estructura Código de compuerta AND Código de compuerta OR Código del circuito M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Código de compuerta NOT

Ejemplos combinatorios: # 1 module AND2gate(A, B, F); input A; input B; output F; reg F; always @ (A or B) begin F <= A & B; end endmodule 𝐹=𝑋∙𝑌+ 𝑍 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Ejemplos combinatorios: # 1 𝐹=𝑋∙𝑌+ 𝑍 Ejemplos combinatorios: # 1 Solución por estructura Código de compuerta AND Código de compuerta OR Código del circuito M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Código de compuerta NOT

Ejemplos combinatorios: # 1 module OR2gate(A, B, F); input A; input B; output F; reg F; always @ (A or B) begin F <= A | B; end endmodule 𝐹=𝑋∙𝑌+ 𝑍 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Ejemplos combinatorios: # 1 𝐹=𝑋∙𝑌+ 𝑍 Ejemplos combinatorios: # 1 Solución por estructura Código de compuerta AND Código de compuerta OR Código del circuito M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Código de compuerta NOT

Ejemplos combinatorios: # 1 module NOTgate(A, F); input A; output F; reg F; always @ (A) begin F <= ~A; end endmodule 𝐹=𝑋∙𝑌+ 𝑍 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Ejemplos combinatorios: # 1 𝐹=𝑋∙𝑌+ 𝑍 Ejemplos combinatorios: # 1 Solución por estructura Código de compuerta AND Código de compuerta OR Código del circuito M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Código de compuerta NOT

Ejemplos combinatorios: # 1 module circuito(X, Y, Z, Fout); input X, Y, Z; output Fout; reg Fout; wire w1, w2; AND2gate AND2gate_1(X, Y, w1); NOTgate1 NOTgate1_1(Z, w2); OR2gate OR2gate_1(w1, w2, Fout); endmodule 𝐹=𝑋∙𝑌+ 𝑍 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Ejercicio combinatorios: # 1 𝐹= 𝑉 ∙𝑊∙𝑌+ 𝑍 ∙Y Diagrama Tabla de verdad #entradas #salidas Operaciones Código de comportamiento M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Ejemplos combinatorios: # M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Ejemplos combinatorios: # Definición del tipo de entradas/salidas. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Numero ? Tamaño ? Nombre ? Tipo ?

Ejemplos combinatorios: # Bloque always ¿Sensibilidad? ¿Qué incluye? M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Ejemplos combinatorios: # Bloque case ¿Sensibilidad? Sel = 3’b011 Sel = 3’b111 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Ejemplos combinatorios: # 1 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Diagrama lógico que infiere la síntesis del código anterior.

Verilog Temas Tipos de datos. Operadores. Ejemplos combinatorios. Diseño concurrente. Diseño estructural. Sentencias de control. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Verilog Temas Tipos de datos. Operadores. Ejemplos combinatorios. Diseño concurrente. Diseño estructural. Sentencias de control. M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Sentencias de control Sentencia IF Sentencia case M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx

Sentencia IF M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx