Descargar la presentación
La descarga está en progreso. Por favor, espere
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 M.C. Rubén E. Marmolejo
2
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
3
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
4
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
5
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
6
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
7
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
8
Introducción a los lenguajes HDL
Xilinx vs Altera M.C. Rubén E. Marmolejo
9
Introducción a los lenguajes HDL
Altera M.C. Rubén E. Marmolejo
10
Introducción a los lenguajes HDL
Altera M.C. Rubén E. Marmolejo
11
Introducción a los lenguajes HDL
Xilinx M.C. Rubén E. Marmolejo
12
Introducción a los lenguajes HDL
Xilinx M.C. Rubén E. Marmolejo
13
Introducción a los lenguajes HDL
Aplicaciones M.C. Rubén E. Marmolejo
14
Introducción a los lenguajes HDL
Aplicaciones M.C. Rubén E. Marmolejo
15
Introducción a los lenguajes HDL
Dispositivos reprogramables M.C. Rubén E. Marmolejo
16
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
17
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 Diagrama de la estructura de un archivo de VHDL
18
VHDL - VHSIC Hardware Description Language
𝑋 =𝐴∙𝐵+ 𝐴+𝐵 Comportamental Estructural Modelos de programación (formas de programar) M.C. Rubén E. Marmolejo
19
VHDL - VHSIC Hardware Description Language
Modelos de programación (formas de programar) 𝑋 =𝐴∙𝐵+ 𝐴+𝐵 Comportamental Estructural M.C. Rubén E. Marmolejo Implementación
20
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 Diagrama de la estructura de un archivo de VHDL
21
Ejemplo de un diagrama lógico
VHDL - Entidad Ejemplo de un diagrama lógico M.C. Rubén E. Marmolejo 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 ? 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 ?
23
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 Diagrama de la estructura de un archivo de VHDL
24
VHDL - Bibliotecas ¿std_logic?
M.C. Rubén E. Marmolejo
25
Señales lógicas M.C. Rubén E. Marmolejo
26
Señales lógicas Fig1. Rangos de valores de una señal lógica
M.C. Rubén E. Marmolejo Fig1. Rangos de valores de una señal lógica
27
Señales lógicas M.C. Rubén E. Marmolejo Fig 2. Rangos de valores de una señal lógica en valores de voltaje.
28
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
29
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 '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
30
VHDL - Bibliotecas Bit ,1 Nibble 4 bits ( ) ,(0-15) , (0-F) Byte 8 bits ( ),(0-255) MSB LSB Posición 3 2 1 # 1∗ 2 3 =8 1∗ 2 1 =2 8 M.C. Rubén E. Marmolejo LSB MSB Posición 3 2 1 # 1∗ 2 0 =1 1∗ 2 2 =4 5 Ver
31
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 Respuesta: 1 Ver
32
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 ?
33
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 Respuesta: con otro elemento de la biblioteca std_logic_vector Ver
34
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 Ver
35
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 Ver
36
VHDL - Bibliotecas+entidad: ejemplo
Entradas: botones, contactos, sensores, etc. Salidas: pantallas, bocinas, motores, etc. M.C. Rubén E. Marmolejo ¿# salidas? ¿# entradas? Decodificador BCD a 7 segmentos
37
VHDL - Bibliotecas+entidad: ejemplo
M.C. Rubén E. Marmolejo
38
VHDL - Bibliotecas+entidad: ejemplo
M.C. Rubén E. Marmolejo
39
VHDL - Bibliotecas+entidad: ejemplo
M.C. Rubén E. Marmolejo
40
VHDL - Bibliotecas+entidad: ejemplo
M.C. Rubén E. Marmolejo
41
VHDL - Bibliotecas+entidad: ejemplo
Entradas: botones, contactos, sensores, etc. Salidas: pantallas, bocinas, motores, etc. M.C. Rubén E. Marmolejo ¿# salidas? ¿# entradas? Decodificador BCD a 7 segmentos
42
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
43
VHDL - bibliotecas+entidad: ejemplo
Código de ejemplo en VHDL de un circuito digital Biblioteca Entidad M.C. Rubén E. Marmolejo Arquitectura
44
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 Arquitectura
45
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 x1 X2 F Arquitectura X1 B A
46
VHDL - bibliotecas+entidad: ejemplo
Código de ejemplo en VHDL de un circuito digital Biblioteca M.C. Rubén E. Marmolejo Arquitectura
47
VHDL - bibliotecas+entidad: ejemplo
Código de ejemplo en VHDL de un circuito digital Biblioteca ? M.C. Rubén E. Marmolejo Arquitectura ?
48
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 Son dos variables distintas
49
VHDL - bibliotecas+entidad: ejemplo
Código de ejemplo en VHDL de un circuito digital Biblioteca ? M.C. Rubén E. Marmolejo Arquitectura ?
50
VHDL - bibliotecas+entidad: ejercicio
Completa cada código de acuerdo al diagrama B A f Biblioteca Ejercicio1 M.C. Rubén E. Marmolejo Arquitectura
51
VHDL - bibliotecas+entidad: ejercicio
Completa cada código de acuerdo al diagrama x1 A Biblioteca TRETRE M.C. Rubén E. Marmolejo Arquitectura
52
VHDL - bibliotecas+entidad: ejercicio
Completa cada código de acuerdo al diagrama X1 B A Biblioteca TACO M.C. Rubén E. Marmolejo Arquitectura
53
VHDL - bibliotecas+entidad: ejemplo
Estructuras más completas X1 B A Biblioteca B X1 A M.C. Rubén E. Marmolejo Arquitectura
54
VHDL - bibliotecas+entidad: ejemplo
Estructuras más completas Biblioteca M.C. Rubén E. Marmolejo Arquitectura
55
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 Diagrama de la estructura de un archivo de VHDL
56
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 Diagrama de la estructura de un archivo de VHDL
57
VHDL - arquitectura Arquitectura. Define como funciona internamente el circuito o sistema digital. Sistema Digital Entradas Salidas Proceso M.C. Rubén E. Marmolejo Arquitectura Entidad Estructura VHDL
58
VHDL - arquitectura: modelo
𝑋 =𝐴∙𝐵+ 𝐴+𝐵 Comportamental Estructural La arquitectura define la forma de describir el circuito. M.C. Rubén E. Marmolejo
59
VHDL - arquitectura: ejemplo
M.C. Rubén E. Marmolejo Entradas Salidas Proceso
60
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 Arquitectura
61
VHDL - arquitectura: ejemplo
Biblioteca Entidad M.C. Rubén E. Marmolejo Arquitectura
62
VHDL - arquitectura: ejemplo
Biblioteca Entidad M.C. Rubén E. Marmolejo Arquitectura
63
VHDL - arquitectura: ejemplo
Biblioteca Entidad M.C. Rubén E. Marmolejo Arquitectura
64
VHDL - arquitectura: ejemplo
Nombre de arquitectura Nombre de entidad Inicio M.C. Rubén E. Marmolejo Fin Nombre de arquitectura
65
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
66
VHDL - operadores Asignación Lógicos Aritméticos Relacionales
Desplazamiento Concatenación M.C. Rubén E. Marmolejo
67
VHDL - operadores en la vida diaria
Asignación M.C. Rubén E. Marmolejo A un cheque se le asigna un valor monetario. Ejemplo: cheque = $2, pesos
68
VHDL - operadores <= Asignación
En VHDL se utilizan para asignar valores a señales, variables y constantes. <= M.C. Rubén E. Marmolejo Asigna un valor a una señal
69
VHDL - operadores := Asignación
En VHDL se utilizan para asignar valores a señales, variables y constantes. := M.C. Rubén E. Marmolejo Asigna un valor a una variable o constante
70
VHDL - operadores => Asignación
En VHDL se utilizan para asignar valores a señales, variables y constantes. => M.C. Rubén E. Marmolejo Asigna valores a elementos individuales de un vector en conjunto con OTHERS.
71
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
72
VHDL - operadores <= Asignación Asigna un valor a una señal
M.C. Rubén E. Marmolejo
73
VHDL - operadores := Asignación
Asigna un valor a una variable o constante M.C. Rubén E. Marmolejo
74
VHDL - operadores => Asignación W
Asigna valores a elementos individuales de un vector en conjunto con OTHERS. M.C. Rubén E. Marmolejo W 1 Posición
75
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
76
VHDL - operadores Asignación Lógicos Aritméticos Relacionales
Desplazamiento Concatenación M.C. Rubén E. Marmolejo
77
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
78
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
79
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 NOT AND OR NAND NOR XOR XNOR
80
VHDL - operadores Compuertas lógicas
M.C. Rubén E. Marmolejo
81
VHDL - operadores Ejemplo de operaciones lógicas 𝑌= 𝐴 +𝐵
𝑌= 𝐴 +𝐵 Y <= NOT a OR b ; -- esto es un comentario M.C. Rubén E. Marmolejo Y <=( NOT a) OR b ; -- mejor practica Y <= NOT ( a OR b) ; -- MAL!!!!!!!!
82
VHDL - operadores Ejemplo de operaciones lógicas 𝑌= 𝐴+𝐵 +𝐵𝐴
𝑌= 𝐴+𝐵 +𝐵𝐴 Y <= (not (A OR B)) or (B and A) ; M.C. Rubén E. Marmolejo
83
VHDL - operadores Ejercicio: traduzca al lenguaje VHDL las siguientes ecuaciones… 𝐷 0 … 𝐷 6 M.C. Rubén E. Marmolejo
84
VHDL - operadores Asignación Lógicos Aritméticos Relacionales
Desplazamiento Concatenación M.C. Rubén E. Marmolejo
85
VHDL - operadores en la vida diaria
Aritméticos M.C. Rubén E. Marmolejo
86
VHDL - operadores en la vida diaria
Aritméticos M.C. Rubén E. Marmolejo
87
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
88
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 Ver pagina 49 Volnei A.
89
VHDL - operadores Asignación Lógicos Aritméticos Relacionales
Desplazamiento Concatenación M.C. Rubén E. Marmolejo
90
VHDL - operadores Relacionales
M.C. Rubén E. Marmolejo
91
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
92
VHDL - operadores Asignación Lógicos Aritméticos Relacionales
Desplazamiento Concatenación M.C. Rubén E. Marmolejo
93
VHDL - operadores Desplazamiento
M.C. Rubén E. Marmolejo
94
VHDL - operadores Desplazamiento Son utilizados para desplazar datos.
sll desplazamiento lógico a la izquierda ¨1100¨ sll conlleva a ¨1000¨ srl desplazamiento lógico a la derecha ¨1100¨ sll conlleva a ¨0011¨ M.C. Rubén E. Marmolejo
95
VHDL - operadores Desplazamiento Son utilizados para desplazar datos.
sla desplazamiento aritmético a la izquierda ¨1100¨ sla conlleva a ¨1000¨ sra desplazamiento aritmético a la derecha ¨1100¨ sra conlleva a ¨1111¨ M.C. Rubén E. Marmolejo
96
VHDL - operadores Desplazamiento Son utilizados para desplazar datos.
rol desplazamiento aritmético a la izquierda ¨1100¨ rol conlleva a ¨1001¨ ror desplazamiento aritmético a la derecha ¨1100¨ ror conlleva a ¨0011¨ M.C. Rubén E. Marmolejo
97
VHDL - operadores Asignación Lógicos Aritméticos Relacionales
Desplazamiento Concatenación M.C. Rubén E. Marmolejo
98
VHDL - operadores Concatenación
M.C. Rubén E. Marmolejo
99
VHDL - operadores Concatenación
Son utilizados para unir cadenas de bits. & M.C. Rubén E. Marmolejo Bitcat := bit0 & bit1 & bit2 & bit3;
100
VHDL - operadores Asumiendo las siguientes declaraciones de señales, conteste. M.C. Rubén E. Marmolejo X1 <= a & c ; x1 <= __________ X2 <= c & b ; x2 <= __________ X3 <= b XOR c ; x3 <= __________ X4 <= a NOR b(3); x4 <= __________
101
VHDL - operadores Asumiendo las siguientes declaraciones de señales, conteste. M.C. Rubén E. Marmolejo X5 <= b sll 2; x5 <= __________ X6 <= b sla 2 ; x6 <= __________ X7 <= b rol 2 ; x7 <= __________
102
VHDL - operadores Asumiendo las siguientes declaraciones de señales, conteste. M.C. Rubén E. Marmolejo X8 <= a AND NOT b(0) AND NOT c(1); x8 <= __________
103
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 Diagrama de la estructura de un archivo de VHDL
104
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
105
VHDL - estructuras de control
Concurrentes Operadores When Generate Block Secuenciales Process Señales y variables If Wait Case M.C. Rubén E. Marmolejo Case e IF Case y When
106
VHDL - estructuras de control
Salidas Entradas Proceso Sistema combinatorio general Retroalimentación M.C. Rubén E. Marmolejo Salidas Entradas Proceso Sistema secuencial general
107
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
108
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
109
FPGA de bajo costo M.C. Rubén E. Marmolejo $850.00
110
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
111
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 3 F
112
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
113
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
114
Verilog: introducción
M.C. Rubén E. Marmolejo Protoboard utilizado en el diseño digital.
115
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 Palabras reservadas de Verilog. Nomenclatura utilizada en esta presentación
116
Verilog- arquitectura: ejemplo
M.C. Rubén E. Marmolejo Entradas Salidas Proceso
117
Verilog- arquitectura: ejemplo
module Compuerta_AND ( input A, input B, output Y ); assign Y = A & B; endmodule M.C. Rubén E. Marmolejo
118
Verilog- arquitectura: ejemplo
module Compuerta_AND (A, B, Y); input A; input B; output reg Y; or B) begin Y = A & B; end endmodule M.C. Rubén E. Marmolejo
119
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 Funcionamiento
120
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 Funcionamiento
121
Verilog- arquitectura: ejemplo
module Compuerta_AND (A, B, Y); input A; input B; output reg Y; or B) begin Y = A & B; end endmodule Tipo de entradas y salidas M.C. Rubén E. Marmolejo Funcionamiento
122
Verilog- arquitectura: ejemplo
module Compuerta_AND (A, B, Y); input A; input B; output reg Y; or B) begin Y = A & B; end endmodule Tipo de entradas y salidas M.C. Rubén E. Marmolejo Funcionamiento
123
Verilog Temas Tipos de datos. Operadores. Ejemplos combinatorios.
Diseño concurrente. Diseño estructural. M.C. Rubén E. Marmolejo
124
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
125
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
126
Verilog: tipos de datos
Representaciones numéricas binario Tamaño en bits: estándar 32 Apostrofe 8'b M.C. Rubén E. Marmolejo T'bX 2'b01 Valores de acuerdo al tamaño 4'b0010 b de binario
127
Verilog: tipos de datos
Representaciones numéricas hexadecimal Tamaño en bits: estándar 32 Apostrofe 8'hA = M.C. Rubén E. Marmolejo T'hX 8'hA1 = Valores de acuerdo al tamaño 8'hF2 = h de hexadecimal
128
Verilog: tipos de datos
Representaciones numéricas decimal Tamaño en bits: estándar 32 Apostrofe 8'd255 M.C. Rubén E. Marmolejo T'dX 16'd65_535 Valores de acuerdo al tamaño 8'd256 = d de decimal
129
Verilog: tipos de datos
Reg Net Parameter M.C. Rubén E. Marmolejo
130
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 Si le es asignado un valor en un bloque always con detección de flancos, infiere un flip-flop.
131
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 Si le es asignado un valor en un bloque always con detección de flancos, infiere un flip-flop.
132
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 Si le es asignado un valor en un bloque always con detección de flancos, infiere un flip-flop.
133
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 Si le es asignado un valor en un bloque always con detección de flancos, infiere un flip-flop.
134
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 No tienen memoria, excepto por trireg.
135
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 No tienen memoria, excepto por trireg.
136
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 No tienen memoria, excepto por trireg.
137
Verilog: tipos de datos
Wire Tri Tri0 Tri1 Trior Wand Wor Supply0 Supply1 trireg Reg Net Parameter M.C. Rubén E. Marmolejo
138
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 No puede ser cambiada en la ejecución del sistema digital.
139
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 No puede ser cambiada en la ejecución del sistema digital.
140
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 No puede ser cambiada en la ejecución del sistema digital.
141
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 No puede ser cambiada en la ejecución del sistema digital.
142
Verilog: tipos de datos, ejercicio.
Reg Net Parameter M.C. Rubén E. Marmolejo
143
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
144
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
145
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
146
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
147
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
148
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
149
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
150
Verilog Temas Tipos de datos. Operadores. Ejemplos combinatorios.
Diseño concurrente. Diseño estructural. M.C. Rubén E. Marmolejo
151
Verilog- operadores Aritméticos Lógicos Relacionales Desplazamiento
Condicionales Concatenación M.C. Rubén E. Marmolejo
152
Verilog- operadores Aritméticos Lógicos Relacionales Desplazamiento
Condicionales Concatenación M.C. Rubén E. Marmolejo
153
Verilog: operadores Aritméticos
M.C. Rubén E. Marmolejo
154
Verilog: operadores Aritméticos
M.C. Rubén E. Marmolejo
155
Verilog- operadores Aritméticos
Son utilizados para realizar operaciones aritméticas. M.C. Rubén E. Marmolejo Valores negativos se toman en complemento a 2, pero se consideran sin signo en expresiones.
156
Verilog- operadores Aritméticos + suma - resta * multiplicación
/ división % modulo M.C. Rubén E. Marmolejo
157
Verilog- operadores Aritméticos Lógicos Relacionales Desplazamiento
Condicionales Concatenación M.C. Rubén E. Marmolejo
158
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
159
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
160
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 1 and 1 = 0 0 and X = 1
161
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 1 and 1 = 0 0 and X = 1
162
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 1 or X = 0 0 or 0 = 1
163
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 1 or X = 0 0 or 0 = 1
164
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 A ≠ B = 0 A = B = 1
165
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 A ≠ B = 0 A = B = 1
166
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 A && B = FALSO VERDE && VERDE = VERDADERO
167
Verilog- operadores Aritméticos Lógicos Relacionales Desplazamiento
Condicionales Concatenación M.C. Rubén E. Marmolejo
168
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
169
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 ROJO == ROJO = V
170
Verilog- operadores Relacionales Se utilizan para evaluar relaciones.
ROJO != ROJO = F != desigualdad == igualdad M.C. Rubén E. Marmolejo ROJO == ROJO = V
171
Verilog- operadores Relacionales Se utilizan para evaluar relaciones.
ROJO != ROJO = F != desigualdad == igualdad M.C. Rubén E. Marmolejo ROJO == ROJO = V
172
Verilog- operadores Aritméticos Lógicos Relacionales Desplazamiento
Condicionales Concatenación M.C. Rubén E. Marmolejo
173
Verilog- operadores Desplazamiento
Se utilizan para desplazar información. M.C. Rubén E. Marmolejo
174
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 Valor de C. 1 3 2 Posición.
175
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 Valor de C. 1 3 2 Posición.
176
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 Valor de C. 1 3 2 Posición.
177
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 Valor de C. 1 3 2 Posición.
178
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 Valor de C. 1 3 2 Posición.
179
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 Valor de C. 1 3 2 Posición.
180
Verilog- operadores Aritméticos Lógicos Relacionales Desplazamiento
Condicionales Concatenación M.C. Rubén E. Marmolejo
181
Verilog- operadores ?: Condicional Trabaja como en el lenguaje C.
Condición ? caso verdadero : caso falso ; M.C. Rubén E. Marmolejo
182
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
183
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
184
Verilog- operadores Aritméticos Lógicos Relacionales Desplazamiento
Condicionales Concatenación M.C. Rubén E. Marmolejo
185
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
186
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 y = { b, c} // y valdrá 'b0010 y = { a, b, c, d, 3’b001} ’b
187
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 y = { a, b, c, d, 3’b001} ________________? y = { a, b[0], c[1]} ________________?
188
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 y = { a, b, c, d, 3’b001} 11’b y = { a, b[0], c[1]} ’b101
189
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 y = { 4{a} } // 4’b1111 y = { 4{a}, 2{b} } //8’
190
Verilog- operadores Aritméticos Lógicos Relacionales Desplazamiento
Condicionales Concatenación M.C. Rubén E. Marmolejo
191
Verilog Temas Tipos de datos. Operadores. Ejemplos combinatorios.
Diseño concurrente. Diseño estructural. M.C. Rubén E. Marmolejo
192
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
193
Operadores de asignación
Blocking: Non-blocking Evaluación y asignación son inmediatos. = M.C. Rubén E. Marmolejo Todas las asignaciones son retrasadas hasta que las operaciones sean evaluadas. <=
194
Operadores de asignación
Blocking: Evaluación y asignación son inmediatos. = (a or b or c) begin x = a | b; y = a ^ b ^ c; z = b & ~c; end M.C. Rubén E. Marmolejo // 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
Todas las asignaciones son retrasadas hasta que las operaciones sean evaluadas. Non-blocking <= (a or b or c) begin x <= a | b; y <= a ^ b ^ c; z <= b & ~c; end M.C. Rubén E. Marmolejo // 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
196
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
197
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 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
Temas Tipos de datos. Operadores : asignación Ejemplos combinatorios. Diseño concurrente. Diseño estructural. M.C. Rubén E. Marmolejo
199
Ejemplos combinatorios
Temas Bloque Ejemplo # 1 Ejemplo # 2 Ejemplo # 3 Ejercicio # 1 Ejercicio # 2 Ejercicio # 3 M.C. Rubén E. Marmolejo
200
Bloque always@ always@
Son utilizados para describir eventos que pasarían bajo ciertas circunstancias. Sintaxis: M.C. Rubén E. Marmolejo de sensibilidad) begin … elementos end
201
Blocking vs Non-blocking
(a or b or c or d) begin b <= a; c <= b; d <= c; end (a or b or c or d) begin b = a; c = b; d = c; end M.C. Rubén E. Marmolejo d = ? d = ?
202
Ejemplos combinatorios: # 1
𝐹=𝑋∙𝑌+ 𝑍 M.C. Rubén E. Marmolejo
203
Ejemplos combinatorios: # 1
Dibuja el diagrama lógico 𝐹=𝑋∙𝑌+ 𝑍 M.C. Rubén E. Marmolejo
204
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
205
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
206
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 Código de compuerta NOT
207
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 Código de compuerta NOT
208
Ejemplos combinatorios: # 1
module AND2gate(A, B, F); input A; input B; output F; reg F; (A or B) begin F <= A & B; end endmodule 𝐹=𝑋∙𝑌+ 𝑍 M.C. Rubén E. Marmolejo
209
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 Código de compuerta NOT
210
Ejemplos combinatorios: # 1
module OR2gate(A, B, F); input A; input B; output F; reg F; (A or B) begin F <= A | B; end endmodule 𝐹=𝑋∙𝑌+ 𝑍 M.C. Rubén E. Marmolejo
211
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 Código de compuerta NOT
212
Ejemplos combinatorios: # 1
module NOTgate(A, F); input A; output F; reg F; (A) begin F <= ~A; end endmodule 𝐹=𝑋∙𝑌+ 𝑍 M.C. Rubén E. Marmolejo
213
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 Código de compuerta NOT
214
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
215
Ejercicio combinatorios: # 1
𝐹= 𝑉 ∙𝑊∙𝑌+ 𝑍 ∙Y Diagrama Tabla de verdad #entradas #salidas Operaciones Código de comportamiento M.C. Rubén E. Marmolejo
216
Ejemplos combinatorios: #
M.C. Rubén E. Marmolejo
217
Ejemplos combinatorios: #
Definición del tipo de entradas/salidas. M.C. Rubén E. Marmolejo Numero ? Tamaño ? Nombre ? Tipo ?
218
Ejemplos combinatorios: #
Bloque always ¿Sensibilidad? ¿Qué incluye? M.C. Rubén E. Marmolejo
219
Ejemplos combinatorios: #
Bloque case ¿Sensibilidad? Sel = 3’b011 Sel = 3’b111 M.C. Rubén E. Marmolejo
220
Ejemplos combinatorios: # 1
M.C. Rubén E. Marmolejo Diagrama lógico que infiere la síntesis del código anterior.
221
Verilog Temas Tipos de datos. Operadores. Ejemplos combinatorios.
Diseño concurrente. Diseño estructural. Sentencias de control. M.C. Rubén E. Marmolejo
222
Verilog Temas Tipos de datos. Operadores. Ejemplos combinatorios.
Diseño concurrente. Diseño estructural. Sentencias de control. M.C. Rubén E. Marmolejo
223
Sentencias de control Sentencia IF Sentencia case
M.C. Rubén E. Marmolejo
224
Sentencia IF M.C. Rubén E. Marmolejo
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.