La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— Transcripción de la presentación:

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

2 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. Temas del día M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 2

3 Circuit Design with VHDL Volnei A. Pedroni MIT Press Fundamentals of Digital Logic with VHDL Design. Stephen Brown Zvonko Vranesic McGrawHill Third edition Lecturas recomendadas M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 3

4 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. Temas del día M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 4

5 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 Introducción a los lenguajes HDL M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Ha rdware_description_language.html 5

6 AHDL ABEL AHPL Bluespec ELLA HHDL Hydra ParC Introducción a los lenguajes HDL M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Ha rdware_description_language.html JHDL KARL Lava Lola MyHDL PALASM PSHDL RHDL THDL++ VHDL Verilog 6

7 Introducción a los lenguajes HDL M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Ha rdware_description_language.html VHDL Más común Más formal Estándar IEEE Verilog Segundo más común Mas fácil de enseñar Estándar IEEE 7

8 Introducción a los lenguajes HDL M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx http://www.altera.com/cgi-bin/device_compare.pl Xilinx vs Altera 8

9 Introducción a los lenguajes HDL M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx http://www.altera.com/cgi-bin/device_compare.pl Altera 9

10 Introducción a los lenguajes HDL M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx http://www.altera.com/cgi-bin/device_compare.pl Altera 10

11 Introducción a los lenguajes HDL M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx http://www.xilinx.com/products/silicon-devices/fpga/ Xilinx 11

12 Introducción a los lenguajes HDL M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx http://www.altera.com/cgi-bin/device_compare.pl Xilinx 12

13 Introducción a los lenguajes HDL M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Aplicaciones http://www.lemote.com/en/products/cpu/201 0/0310/114.html 13

14 Introducción a los lenguajes HDL M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Aplicaciones http://www.lemote.com/en/products/cpu/201 0/0310/114.html 14

15 Introducción a los lenguajes HDL M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Dispositivos reprogramables 15

16 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. Temas del día M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 16

17 VHDL - V HSIC H ardware D escription L anguage M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 17 VHSIC – Very High Speed Integrated Circuit Estructura VHDL Declaración de bibliotecas Declaración de entidad Cuerpo de la arquitectura Diagrama de la estructura de un archivo de VHDL

18 VHDL - V HSIC H ardware D escription L anguage M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 18 Modelos de programación (formas de programar) Comportamental Estructural

19 VHDL - V HSIC H ardware D escription L anguage M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 19 Modelos de programación (formas de programar) Comportamental Estructural Implementación

20 VHDL - V HSIC H ardware D escription L anguage M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 20 VHSIC – Very High Speed Integrated Circuit Estructura VHDL Declaración de bibliotecas Declaración de entidad Cuerpo de la arquitectura Diagrama de la estructura de un archivo de VHDL

21 VHDL - Entidad M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 21 Ejemplo de un diagrama lógico La entidad define la cantidad y tipo de entradas que tendrá el sistema digital. ¿Cuántas entradas y salidas tiene el diagrama?

22 VHDL - Entidad M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 22 Ejemplo de un entidad Entity Entidad_TACO is port ( a: in std_logic ; b: in std_logic ; f: out std_logic ); End Entidad_TACO ; ?

23 VHDL - V HSIC H ardware D escription L anguage M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 23 VHSIC – Very High Speed Integrated Circuit Estructura VHDL Declaración de bibliotecas Declaración de entidad Cuerpo de la arquitectura Diagrama de la estructura de un archivo de VHDL

24 VHDL - Bibliotecas M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 24 ¿std_logic?

25 Señales lógicas M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 25

26 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 26

27 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. 27

28 VHDL - Bibliotecas M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 28 ¿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.

29 VHDL - Bibliotecas M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 29 Library ieee ; Use ieee.std_logic_1164.all ; Ejemplo de una biblioteca común en VHDL. Ver Declaración de las representaciones de valores lógicos Ejemplo: std_logic 'U' - valor sin inicializar. 'X' - desconocido. '0' - 0 lógico. '1' - 1 lógico. '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.

30 VHDL - Bibliotecas M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 30 Bit 0,1 Nibble4 bits (0000-1111),(0-15), (0-F) Byte8 bits (00000000-11111111),(0-255) Ver Posición3210 #1010 00 LSBMSB Posición3210 #1010 00 LSB MSB 8 5

31 VHDL - Bibliotecas M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 31 Library ieee ; Use ieee.std_logic_1164.all ; Ver Ejemplo: std_logic ¿Cuál es el máximo valor en binario que puede representar una entrada o salida std_logic? Respuesta: 1

32 VHDL - Entidad M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 32 Ejemplo de un entidad Entity Entidad_TACO is port ( a: in std_logic ; b: in std_logic ; f: out std_logic ); End Entidad_TACO ; ?

33 VHDL - Bibliotecas M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 33 Library ieee ; Use ieee.std_logic_1164.all ; Ver Ejemplo: std_logic ¿Cómo puedo representar una nibble de información utilizando std_logic? Respuesta: con otro elemento de la biblioteca std_logic_vector

34 VHDL - Bibliotecas M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 34 Ver Posición3210 #1010 00 LSB MSB 8

35 VHDL - Bibliotecas M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 35 Ver LSBMSB Posición3210 #1010 00 5

36 VHDL - Bibliotecas+entidad: ejemplo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 36 Decodificador BCD a 7 segmentos Entradas: botones, contactos, sensores, etc. Salidas: pantallas, bocinas, motores, etc. ¿# salidas? ¿# entradas?

37 VHDL - Bibliotecas+entidad: ejemplo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 37

38 VHDL - Bibliotecas+entidad: ejemplo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 38

39 VHDL - Bibliotecas+entidad: ejemplo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 39

40 VHDL - Bibliotecas+entidad: ejemplo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 40

41 VHDL - Bibliotecas+entidad: ejemplo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 41 Decodificador BCD a 7 segmentos Entradas: botones, contactos, sensores, etc. Salidas: pantallas, bocinas, motores, etc. ¿# salidas? ¿# entradas?

42 VHDL - bibliotecas+entidad: ejemplo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 42 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 ;

43 VHDL - bibliotecas+entidad: ejemplo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 43 Código de ejemplo en VHDL de un circuito digital Biblioteca Entidad Arquitectura

44 VHDL - bibliotecas+entidad: ejemplo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 44 Código de ejemplo en VHDL de un circuito digital Biblioteca Entidad Nombre: ? # entradas: ? # salidas: ? # tamaño entradas:? # tamaño salidas: ? Arquitectura

45 VHDL - bibliotecas+entidad: ejemplo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 45 Código de ejemplo en VHDL de un circuito digital Biblioteca Arquitectura x1 A B A f X2 F X1 B A

46 VHDL - bibliotecas+entidad: ejemplo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 46 Código de ejemplo en VHDL de un circuito digital Biblioteca Arquitectura

47 VHDL - bibliotecas+entidad: ejemplo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 47 Código de ejemplo en VHDL de un circuito digital Biblioteca Arquitectura ? ?

48 VHDL - bibliotecas+entidad: ejemplo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 48 En VHDL no importa si se escribe con MAYúSCULAS o minúsculas Lenguaje C Int temperatura; Int Temperatura; VHDL Son dos variables distintas Entity = eNTity = EnTiTy

49 VHDL - bibliotecas+entidad: ejemplo M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 49 Código de ejemplo en VHDL de un circuito digital Biblioteca Arquitectura ? ?

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

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

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

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

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

55 VHDL - V HSIC H ardware D escription L anguage M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 55 VHSIC – Very High Speed Integrated Circuit Estructura VHDL Declaración de bibliotecas Declaración de entidad Cuerpo de la arquitectura Diagrama de la estructura de un archivo de VHDL

56 VHDL - V HSIC H ardware D escription L anguage M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 56 VHSIC – Very High Speed Integrated Circuit Estructura VHDL Declaración de bibliotecas Declaración de entidad Cuerpo de la arquitectura Diagrama de la estructura de un archivo de VHDL

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

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

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

60 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 ; M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx VHDL - arquitectura: ejemplo Biblioteca Entidad Arquitectura 60

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

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

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

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

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

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

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

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

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

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

71 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx VHDL - operadores 71 Variable 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.

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

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

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

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

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

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

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

79 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx VHDL - operadores 79 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). NOT AND OR NAND NOR XOR XNOR

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

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

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

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

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

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

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

87 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx VHDL - operadores 87 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.

88 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx VHDL - operadores 88 Aritméticos +Suma - Resta * Multiplicación. /División. **Potencia. MODMódulo. REMResiduo. ABSValor absoluto. Ver pagina 49 Volnei A.

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

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

91 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx VHDL - operadores 91 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é?

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

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

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

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

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

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

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

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

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

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

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

103 VHDL - V HSIC H ardware D escription L anguage M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 103 VHSIC – Very High Speed Integrated Circuit Estructura VHDL Declaración de bibliotecas Declaración de entidad Cuerpo de la arquitectura Diagrama de la estructura de un archivo de VHDL

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

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

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

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

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

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

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

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

112 I7268 Plan de curso (17 semanas) Actividades de aprendizaje 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

113 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. Temas del día M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 113

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

115 Verilog: introducción M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 115 Nomenclatura utilizada en esta presentació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. Palabras reservadas de Verilog.

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

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

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

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

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

121 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Verilog- arquitectura: ejemplo 121 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 Funcionamiento

122 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Verilog- arquitectura: ejemplo 122 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 Funcionamiento

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

143 Verilog: tipos de datos ejemplos M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 143 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

144 Verilog: tipos de datos ejemplos M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 144 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

145 Verilog: tipos de datos ejemplos M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 145 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

146 Verilog: tipos de datos ejemplos M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 146 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

147 Verilog: tipos de datos ejemplos M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 147 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

148 Verilog: tipos de datos ejemplos M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 148 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

149 Verilog: tipos de datos ejemplos M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 149 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

175 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Verilog- operadores 175 Se utilizan para desplazar información. Desplazamiento < { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/3/1127084/slides/slide_175.jpg", "name": "M.C.Rubén E.", "description": "Marmolejo ruben.estrada@hetpro.com.mx Verilog- operadores 175 Se utilizan para desplazar información. Desplazamiento <

176 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Verilog- operadores 176 Se utilizan para desplazar información. Desplazamiento << { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/3/1127084/slides/slide_176.jpg", "name": "M.C.Rubén E.", "description": "Marmolejo ruben.estrada@hetpro.com.mx Verilog- operadores 176 Se utilizan para desplazar información. Desplazamiento <<

177 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx Verilog- operadores 177 Se utilizan para desplazar información. Desplazamiento << { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/3/1127084/slides/slide_177.jpg", "name": "M.C.Rubén E.", "description": "Marmolejo ruben.estrada@hetpro.com.mx Verilog- operadores 177 Se utilizan para desplazar información. Desplazamiento <<

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

194 Operadores de asignación M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 194 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 // Se evalúa y asigna a x // Se evalúa y asigna a y // Se evalúa y asigna a z

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

196 Blocking vs Non-blocking M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 196 1010 ABAB 1010 ABAB ideal real Transición de señales lógicas ABCABC wywy

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

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

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

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

201 Blocking vs Non-blocking M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 201 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 d = ?

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

203 Ejemplos combinatorios: # 1 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 203 Dibuja el diagrama lógico

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

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

206 Ejemplos combinatorios: # 1 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 206 Solución por estructura Código de compuerta AND Código de compuerta OR Código de compuerta NOT Código del circuito

207 Ejemplos combinatorios: # 1 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 207 Solución por estructura Código de compuerta AND Código de compuerta OR Código de compuerta NOT Código del circuito

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

209 Ejemplos combinatorios: # 1 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 209 Solución por estructura Código de compuerta AND Código de compuerta OR Código de compuerta NOT Código del circuito

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

211 Ejemplos combinatorios: # 1 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 211 Solución por estructura Código de compuerta AND Código de compuerta OR Código de compuerta NOT Código del circuito

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

213 Ejemplos combinatorios: # 1 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 213 Solución por estructura Código de compuerta AND Código de compuerta OR Código de compuerta NOT Código del circuito

214 Ejemplos combinatorios: # 1 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 214 module circuito ( X, Y, Z, Fou t) ; 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

215 Ejercicio combinatorios: # 1 M.C. Rubén E. Marmolejo ruben.estrada@hetpro.com.mx 215 Diagrama Tabla de verdad #entradas #salidas Operaciones Código de comportamiento

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

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

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

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

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

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

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

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

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


Descargar ppt "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."

Presentaciones similares


Anuncios Google