Está en la página 1de 27

SISTEMAS EMBEBIDOS

Tema 2 – Tipos y objetos de datos

Freddy Leonardo Bueno Palomeque


Carrera de Ingeniería Electrónica
Carrera de Electrónica y Automatización

Abril 2020
Contenidos de la presentación

Contenidos:

• Introducción
• Tipos de datos
• Operadores
• Datos y atributos
• Módulos

Ingeniería Electrónica / Electrónica y Automatización 2


Introducción

En VHDL se propone desarrollar diseños modulares y


jerárquicos de forma natural. Se crean piezas (se
reutilizan) para crear diseños más complejos.

 Cada una de las piezas en un módulo


 El sistema completo también es un módulo que
podría reutilizarse

Ingeniería Electrónica / Electrónica y Automatización 3


Introducción (2)

Estrategias para la creación de un sistema digital

1. Top-bottom: iniciamos por el módulo más


complejo, y lo vamos descomponiendo en módulos
más pequeños en procesos iterativos de
refinamiento
2. Bottom-up: creamos pequeñas piezas con un
mínimo de funcionalidad y a partir de este vamos
creando elementos más complejos

Ingeniería Electrónica / Electrónica y Automatización 4


Generalidades
Un objeto de datos (data object) es cualquier elemento capaz de
contener un dato

 Constantes (constant)
 Variable (variable)
 Señales (signal)

VHDL dispone de tres clases de tipos de datos

1. Propios del lenguaje (built-in)


 Para usarlos no hay que indicar nada especial
2. Predefinidos de forma estándar
 Declaración almacenada en un package (por ejemplo: std_logic_1164
dentro de una library ieee)
 Es necesario importar la declaración (use) antes
3. Definidos por el usuario
Ingeniería Electrónica / Electrónica y Automatización 5
Tipos de datos built-in

 boolean: valores posibles (true, false)


 boolean_vector
 std_logic: valores posibles (0, 1), utilizando comillas
simples: ‘0’, ‘1’
 std_logic_vector: array de bits entre comillas dobles
“0010”

Ingeniería Electrónica / Electrónica y Automatización 6


Tipos de datos built-in (2)

Ingeniería Electrónica / Electrónica y Automatización 7


Tipos de datos built-in (3)

Ingeniería Electrónica / Electrónica y Automatización 8


Tipos de datos built-in (4)

 integer: Sin comillas. Subtipos natural y positive


 Se puede limitar el rango con range
 integer_vector (VHDL’08)
 real
 real_vector (VHDL’08)
 character (comillas simples)

 String
 Array de character entre comillas dobles
 time
 Tipo de datos físico
 Conjunto de magnitud y unidades de medida
 Time_vector (VHDL’08)

Ingeniería Electrónica / Electrónica y Automatización 9


Tipos de datos built-in (5)

Ingeniería Electrónica / Electrónica y Automatización 10


Tipos de datos predefinidos

 std_logic : tipo de dato estándar


 library ieee, package std_logic_1164
 Comillas simples
 Valores posibles
‘U’ Dato sin inicializar
‘X’ Dato desconocido fuerte
‘0’ Cero fuerte
‘1’ uno fuerte
‘Z’ Alta impedancia
‘W’ Dato desconocido débil
‘L’ Cero débil
‘H’ Uno débil
‘-’ Don’t care

Ingeniería Electrónica / Electrónica y Automatización 11


Tipos de datos predefinidos (2)

 unsigned
 library ieee, package numeric_std
 Array de std_logic
 Comillas dobles
 Interpretación aritmética equivalente a un entero sin signo
 Posible convertir el dato a/ desde natural
 signed
 library ieee, package numeric_std
 Array de std_logic
 Comillas dobles
 Interpretación aritmética equivalente a un entero con signo
 Posible convertir el dato a/desde integer

Ingeniería Electrónica / Electrónica y Automatización 12


Operadores

Ingeniería Electrónica / Electrónica y Automatización 13


Operadores (2)

Ingeniería Electrónica / Electrónica y Automatización 14


Actividad 2.1

 Grupos de 3 personas: diagrama electrónico, código


en VHDL, simulación, esquema RTL y esquema post-
síntesis.
 Multiplexor (when else)
 Selector (With - select)
 Flip Flop Tipo D
 Compuerta 3 estados
 Decodificador (case)
 Contador

Ingeniería Electrónica / Electrónica y Automatización 15


Datos: constantes

 constant
 Contenedor de datos que no puede cambiar de
valor
 Igual comportamiento que en un lenguaje de
programación

Ingeniería Electrónica / Electrónica y Automatización 16


Datos: variables

 variable
 Contenedor de datos que puede cambiar de valor
 Igual comportamiento que en un lenguaje de
programación
 Sólo disponible dentro de un bloque secuencial
(process)

Ingeniería Electrónica / Electrónica y Automatización 17


Datos: señales
 signal
 Contenedor de datos que puede cambiar de valor
 Almacena un dato y metainformación (atributos)
 Comportamiento radicalmente diferente a una variable de un lenguaje
de programación
 Señal se comporta diferente dentro de un bloque secuencial de
VHDL(process)

Ingeniería Electrónica / Electrónica y Automatización 18


Atributos

Además del dato almacenado, una señal contiene


metainformación que podemos obtener al consultar los
atributos de una señal

Ejemplos
1. El instante (en simulación) en que se escribió sobre una
señal
 La respuesta es un valor de tiempo

2. El último valor almacenado (antes del valor actual)


 La respuesta es un valor del mismo tipo que la señal

3. ¿Es estable la señal en este momento?


 La respuesta es un valor booleano

Ingeniería Electrónica / Electrónica y Automatización 19


Atributos (2)

Atributos asociados a señales

event (valor booleano), verdadero si la señal tiene un evento


(cambio de valor) en este preciso instante de la
simulación
last_event (valor de tiempo), el tiempo transcurrido desde el
último evento ocurrido sobre la señal
last_value (valor del mismo tipo de la señal), el valor previo de la
señal

Ingeniería Electrónica / Electrónica y Automatización 20


Atributos (2)

Atributos asociados a escalares


high Valor límite superior del tipo
 Por ejemplo integer’high devuelve 2147483647

low Valor límite inferior del tipo


 Por ejemplo real’low devuelve -1.0E308

Ingeniería Electrónica / Electrónica y Automatización 21


Atributos (3)

Atributos asociados a tipos array

left, right índices límite izquierdo y derecho del array


low, high índices límite inferior y superior del array
length tamaño del array

Ingeniería Electrónica / Electrónica y Automatización 22


Actividad 2.2

¿Cuáles son los tipos de atributos que se pueden utilizar en


VHDL?

Ingeniería Electrónica / Electrónica y Automatización 23


Módulo

 El diseño de un módulo (design entity) se separa en dos partes


independientes: la interfaz y su implementación
 La interfaz (entity) da una visión de “caja negra”, donde se informa
de las entradas y salidas
 La implementación (architecture) brinda la descripción de la lógica
interna
 Una interfaz paramétrica incluye una declaración de genéricos
(generic) y se incluye en el bloque entity

Ingeniería Electrónica / Electrónica y Automatización 24


Módulo - Interfaz

Ingeniería Electrónica / Electrónica y Automatización 25


Módulo - Implementación

 La implementación de un
módulo se desarrolla
mediante una architecture
 La sintaxis de declaración
de la architecture enlaza la
implementación con la
interfaz (entity) por el
nombre de esta
(…. of ts12)

Ingeniería Electrónica / Electrónica y Automatización 26


Módulo - Implementación (2)

 Los paquetes importados por la interfaz son heredados por la


implementación
 Con respecto a los puertos
1. Son señales accesibles dentro de implementación con restricciones
2. Sobre un port de entrada sólo se puede hacer lectura
3. Sobre un port de salida sólo se puede escribir
 La implementación también puede declarar nuevos objetosde
datos en región declarativa
 Internos, locales, no accesibles desde el exterior
 Sin restricciones de dirección

Ingeniería Electrónica / Electrónica y Automatización 27

También podría gustarte