Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el...

107
Rosa Corti Digital II - ECA Departamento de Sistemas e Informática 2015 VHDL Very High speed integrated circuit Hardware Description Language

Transcript of Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el...

Page 1: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

Rosa Corti

Digital II - ECA

Departamento de Sistemas e Informática

2015

VHDL

Very High speed integrated circuit Hardware Description Language

Page 2: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

Contenido

Lógica programable - Dispositivos FPGA

Lenguaje VHDL: Evolución y características

Unidades de diseño: Entidad y Arquitectura

Objetos VHDL: señales

Tipos de datos – Bibliotecas usuales

Descripción de circuitos combinacionales

Sentencias de asignación concurrente

Ejemplos

Descripción de circuitos secuenciales

El bloque Process

Representación de la señal de reloj

Sentencias algorítmicas

Ejemplos

Resolución de señales

Page 3: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

3

Evolución de metodologías y dispositivos

La electrónica digital ha incrementado sus áreas de aplicación

y la complejidad de los sistemas que se pueden implementar

Niveles de integración

Metodologías de diseño

Ambientes de diseño EDA

Page 4: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

4

Dispositivos de lógica programable.

Primera generación

Segunda generación

Tercera generación

PLA (Programmable Logic Array)

PAL (Programmable Array Logic)

GAL (Generic Array Logic)

CPLD (Complex Programmable Logic Device )

FPGA (Field Programmable Gate Array)

DIGITAL II

PLA

Page 5: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

5

Qué es una FPGA?

Dispositivo semiconductor basado en una matriz de

bloques lógicos configurables, cuya interconexión

es programable. El usuario puede reconfigurarla,

para cumplir con requerimientos específicos.

Dispositivo semiconductor cuya funcionalidad

y características se pueden definir luego de

fabricado e instalado, reconfigurando el

hardware en el circuito integrado.

Page 6: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

6

Esquema general de la arquitectura

Flexibilidad

Paralelismo

Page 7: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

7

FPGA: ¿ Cómo cambiar la lógica ?

PLD convencionales

LUT´s

FPGA

Page 8: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

8

Función lógica representada en el CLB

Page 9: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

9

Elementos básicos de la FPGA

Celdas o bloques lógicos (CLB)

• Multiplexor

• Registro (FF)

• LUT (Look Up Table)

Distintos usos:

Representar funciones lógicas

Memoria distribuida en el chip

Registros de 16 posiciones

Page 10: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

10

Los bits permanecen en el

dispositivo que se configura

Configuración de una FPGA:

BITSTREAM

Un bit de configuración controla

un switch de conexión o un bit de

lógica

Page 11: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

11

Se cambian las conexiones

y las funciones lógicas

FPGA µP

Se cambian las instrucciones

Cambia el Software Cambia el Hardware

Programación de un dispositivo

Page 12: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

FPGA: Aspectos importantes

Flexibilidad

Velocidad – Arquitectura paralela

Prototipado rápido y simple

Desarrollo tolerante a fallas

Reducción del tiempo de puesta en el mercado de los productos

Implementación de SoC

Alta capacidad de procesamiento

Mantenimiento y actualización de los diseños

Mantenimiento a largo plazo de las aplicaciones

12

Page 13: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

El procesamiento digital

de señales (DSP) es su

principal aplicación

Sistemas de visión artificial

Sistemas de imágenes médicas

Codificación y encriptación

Reconocimiento de voz

Radioastronomía

Aeronáutica y defensa

Dominios de aplicación

Fuente: Genera (2008) – www.generatecnologias.es

13

Page 14: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

Fabricantes y participación en el mercado

www.xilinx.com

www.altera.com

www.microsemi.com

www.latticesemi.com

www.quicklogic.com

Fuente: High Tech Marketing (2011)

14

Volumen del mercado global FPGA: US$5.4 billion en 2013,

US$9.9 billion en 2020 (TABB Group - abril 2015)

Page 15: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

Precios de dispositivos

www.em.avnet.com – 05/06/2013

1111

15

Page 16: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

16

Diseño digital

CI de gran nivel de integración

Nuevas metodologías para manejar la

complejidad creciente de los diseños

Un lenguaje permite la edición más rápida y sencilla

Una descripción con esquemas resulta más fácil de entender

Page 17: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

Descripción por esquemas Descripción VHDL

Nivel RT: Ingreso del diseño (Digital II)

Descripción mixta 17

Page 18: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

18

Lenguajes de descripción de HW

Lenguajes de Descripción de Hardware (HDL)

Permiten descripciones de alto nivel

La edición es rápida y sencilla

Soportados por herramientas EDA

Las herramientas EDA permiten

integrar distintos estilos de diseño

Page 19: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

19

DoD +IEEE Patrocinan el desarrollo en los 80´s

Es estándar de IEEE en 1987 VHDL-87

El estándar se amplía en 1993 VHDL-93

Existen otros HDL populares como ABEL y VERILOG

VHDL: Antecedentes históricos

Necesidad de estandarizar los diseños

Se realizaron modificaciones al estándar en 2001 y 2008

Page 20: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

20

Se inicia como un leguaje de modelado y especificación.

Ligado a actividades de

Documentación

Simulación

Luego se incorporan herramientas de síntesis capaces

de manejar este tipo de descripciones

VHDL: Evolución

Ambientes integrados de diseño

Page 21: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

21

Flujo de diseño VHDL orientado a FPGA

Análisis Código Síntesis Simulación

funcional

Mapeo, rutas

y ubicación

Simulación

post PAR Bitstream

Page 22: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

VHDL

Construcciones básicas

Page 23: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

23

VHDL: Características

Independencia tecnológica

Lenguaje de alto nivel

Organización del diseño

Reutilización de diseños

Control de flujo

¡¡ Se está describiendo HW!!

Portabilidad

Uso de componentes

Situaciones físicas en un circuito

Comportamiento paralelo

Es un diseño y no un programa

Page 24: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

24

VHDL: Unidades de diseño básicas

Componentes

Dispositivo

VHDL Entidad Arquitectura

Declaración de I/O Descripción

comportamental

Caja negra Caja blanca

Page 25: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

Descripción de un dispositivo VHDL

Diseño VHDL

Entidad

Archivo de texto

library IEEE;

use IEEE.std_logic_1164.all;

entity Puerta is

port (A, B:in std_logic_vector (3 downto 0);

C: out std_logic_vector (3 downto 0) );

end Puerta;

architecture Behavioral of Puerta is

begin

C <= A and B;

end Behavioral;

AND

1

2

3

Arquitectura

25

Page 26: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

26

Colecciones de

unidades de diseño

Secciones mínimas de

código compilables en

forma independiente

Compuesto por

unidades de diseño

Bibliotecas

VHDL

Modelo

VHDL

Organizan el código

Promueven el reuso

Bibliotecas y unidades de diseño

Page 27: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

27

Unidades de diseño VHDL

Se almacenan en bibliotecas (lenguaje y usuario)

Tienen relación jerárquica entre ellas

Entidad

Arquitectura

Cuerpo

Declaración

Configuración

Componentes

Paquetes

Tipos de datos

Constantes

Componentes

Subprogramas

………..

Page 28: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

28

Unidades de diseño: Entidad

library IEEE;

use IEEE.std_logic_1164.all;

entity Puerta is

port ( A, B:in std_logic_vector (3 downto 0);

C: out std_logic_vector (3 downto 0) );

end Puerta;

Declaración de bibliotecas

Visibilidad de paquetes

Declaración de

puertos

INTERFAZ

Da nombre al módulo y define su conexión con el exterior

Page 29: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

29

Puertos de la entidad

in: Entrada, se lee. No se le puede asignar valor.

out: Salida, se le asigna valor. No se puede leer.

inout: Entrada / Salida. CUIDADO !!

buffer: Salida / Puede ser usado en el sistema (leído).

port (nombre_señal : modo tipo_señal) ;

Modo

Tipo Define los valores y operaciones legales

Define cómo se lo utiliza

Los puertos de una entidad son señales

Page 30: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

30

Objetos VHDL: señales

a

b

c

d

s

nd

x nc

Modelan hilos de un circuito

SEÑALES

Page 31: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

31

Objetos VHDL

Un objeto en VHDL es un elemento que contiene

información de un tipo específico de datos.

Señales

Constantes

Variables

VHDL es un lenguaje fuertemente tipado.

Page 32: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

32

VHDL: Tipos de datos

Un tipo de datos define los valores legales y los operadores

aplicables para los objetos de ese tipo.

Tipos de datos escalares Sus valores constituyen

una unidad indivisible

Tipos de datos compuestos Sus valores pueden dividirse en

unidades atómicas más pequeñas

No hay tipos propios del lenguaje,

existen tipos predefinidos

Se pueden definir tipos de datos en forma sencilla

Bibliotecas del sistema

Page 33: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

33

VHDL: Tipos de datos

Tipos de datos predefinidos

Bit_vector (n-1 downto 0)

Modela buses

Es un arreglo de n bits

Escalares

Biblioteca Standard (STD)

BIT

BOOLEAN

INTEGER

REAL

Orientados a síntesis

Compuestos

Page 34: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

34

Datos predefinidos: Ejemplos

Signal valor: integer range 0 to 255;

valor <= 128;

Signal Bus1, Bus2: Bit_vector (7 downto 0);

Bus1 <= “11001010”;

Bus2 <= “11” & Bus1(6 downto 1);

Operador concatenación

Declaración

Declaración

Asignación

Asignación

Page 35: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

35

Datos definidos por el usuaro: Ejemplos

Type desplazamiento is (arriba, abajo, izquierda, derecha);

Signal puntero: desplazamiento;

Puntero <= arriba;

Escalar enumerado

Type memoria is array ( 0 to 63) of std_logic_vector(15 downto 0);

Signal MiMem: memoria;

Mimem (15) <= (others => ‘1’);

Mimen (7) <= “1111000011110000”;

Compuesto

Page 36: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

36

VHDL: Tipos de datos

Para representar situaciones reales en los circuitos, la IEEE definió

dos tipos de datos multivaluados orientados a síntesis

Std_logic

Std_logic_vector (n-1 downto 0)

Modela líneas (escalar)

Modela buses (enumerado)

Los valores posibles en síntesis para un objeto de estos tipos son:

‘0’ valor bajo

‘1’ valor alto

‘Z’ alta impedancia

Biblioteca: IEEE

Paquete: std_logic_1164

Page 37: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

37

library IEEE;

use IEEE.std_logic_1164.all;

entity circuito is

port ( a, b, c, d: in std_logic;

s: out std_logic );

end;

architecture arch_flu of circuito is

signal nc, nd, x: std_logic;

begin

nc <= not c;

nd <= not d;

x <= b and nc and nd ;

s <= a or x;

end arch_flu;

b

c s

nd

x nc

a

d

VHDL: Descripción de un circuito

Cada sentencia VHDL describe

un bloque HW

Interface del componente

Page 38: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

38

Unidades de diseño: Arquitectura

architecture arch_flu of Circuito is

signal nc, nd, x: std_logic;

begin

nc <= not c;

nd <= not d;

x <= b and nc and nd ;

s <= a or x;

end arch_flu;

Descripción de la

funcionalidad del módulo

Declaración objetos utilizados

b

c s

nd

x nc

a

d

Se ligan arquitectura y entidad

Descripción de flujo de datos

Descripción algorítmica

Descripción estructural

Page 39: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

VHDL

Descripción de circuitos combinacionales

Page 40: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

40

Asignación concurrente de señal

Salida <= (a or b) and c;

Asignación condicional: WHEN … ELSE

Salida <= a when cond = “011” else b when cond < “010” else c;

Prioridad explícita entre las opciones

Se pueden usar varias expresiones booleanas distintas

La última opción de la sentencia es sin condición

Descripción en flujo de datos: Sentencias

Page 41: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

41

Asignación con selección: WITH … SELECT … WHEN

Descripción en flujo de datos: Sentencias

with sel select

salida <= a when “00”,

b when “01”,

c when “11”,

d when others;

Las opciones no tienen una prioridad explícita entre ellas

La expresión de selección es única y todos sus valores deben

estar listados en las cláusulas mutuamente excluyentes

Multiplexores

Page 42: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

42

architecture Behavioral of Cod_7seg is

begin

with HEX select

LED <= "1111001" when "0001", --1

"0100100" when "0010", --2

"0110000" when "0011", --3

"0011001 " when"0100", --4

"0010010" when "0101", --5

"0000010" when "0110", --6

"1111000 " when "0111", --7

"0000000" when "1000", --8

"0010000" when "1001", --9

"0001000" when "1010", --A

"0000011" when "1011", --b

"1000110" when "1100", --C

"0100001" when "1101", --d

"0000110" when "1110", --E

"0001110" when "1111", --F

"1000000" when others; --0

end;

Lógica negativa

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity Cod_7seg is

port ( HEX : in std_logic_vector( 3 downto 0);

LED:out in std_logic_vector( 6 downto 0));

end;

Descripción de Codificadores

Page 43: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

43

Descripción de una memoria ROM

architecture behavioral of MROM is

type mem is array ( 0 to 15) of std_logic_vector(7 downto 0);

signal mi_Rom : mem;

begin

mi_Rom <= (

0 => "00000000",

1 => "00000001",

2 => "00000010",

3 => "00000011",

4 => "00000100",

5 => "11110000",

6 => "11110011",

7 => "11110111",

others => "11111111");

datos <= Mi_rom (CONV_INTEGER(dir));

end behavioral;

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity MROM is

port ( dir : in std_logic_vector(3 downto 0);

datos : out std_logic_vector(7 downto 0) );

end MROM;

Esquemático RTL

Tipo de datos

del usuario

Page 44: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

44

VHDL: Operadores usados en Digital II

Lógicos

Relacionales

Aritméticos

Concatenación

Existe una gran cantidad de

operadores definidos para

distintos tipos de datos

Sólo un subconjunto está

orientado a síntesis

Page 45: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

45

VHDL: Operadores usados en Digital II

Lógicos and, or, nor, xor, not

Definidos para: bit, bit_vector, std_logic, std_logic_vector, boolean

Los operandos deben ser del mismo tipo y tener la misma cantidad

de bits

Ejemplos

signal A, B, C, D: std_logic_vector (7 downto 0);

A <= “11001010”;

B <=“10011010”;

C <= A or B; (11011010)

D <= A and B; (10001010)

Page 46: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

46

Relacionales = (igual) /= (distinto)

< (menor) <= (menor o igual)

> (mayor) >= (mayor o igual)

Definidos para: bit, bit_vector, std_logic, std_logic_vector,

boolean, integer

Los operandos deben ser del mismo tipo y pueden tener distinta

cantidad de bits

Las comparación de dos vectores, se realiza bit a bit alineando

ambas tiras de dígitos a partir del MSB de cada una.

Cuidado !!!

VHDL: Operadores usados en Digital II

Page 47: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

47

VHDL: Operadores relacionales

Comparación de vectores de distinta cantidad de bits

signal A : std_logic_vector (7 downto 0);

signal B : std_logic_vector (3 downto 0);

A <= “00100100”;

B <= “0110”

A > B ? NO !!

Page 48: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

48

Comparación de vectores

VHDL: Operadores relacionales

¿ Cómo se interpreta la tira de dígitos de std_logic_vector?

signal A : std_logic_vector (3 downto 0);

A <= “1010”;

¿A es igual a 10 o a -6?

Page 49: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

49

La interpretación que se da a los datos std_logic_vector

depende de los paquetes que se incluyan en el diseño

Interpretación de std_logic_vector

STD_LOGIC_ARITH

STD_LOGIC_UNSIGNED

STD_LOGIC_SIGNED

Desarrollados por Synopsis.

Se distribuyen como parte de

la biblioteca IEEE.

Los incorporan muchos de los ambientes de diseño

Se instalaron como un estándar “de facto”

Page 50: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

50

library IEEE;

use IEEE.STD_LOGIC_1164.all;

use IEEE.STD_LOGIC_UNSIGNED.all;

use IEEE.STD_LOGIC_SIGNED.all;

STD_LOGIC_VECTOR se interpreta como entero en C2

STD_LOGIC_VECTOR se interpreta como entero sin signo

Interpretación de std_logic_vector

Page 51: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

51

Paquete NUMERIC_STD (IEEE):

library IEEE;

use IEEE.NUMERIC_STD.all; Para darle visibilidad:

Define los tipos signed y unsigned y operaciones aritméticas.

Define funciones de conversión entre signed, unsigned, integer

y std_logic_vector.

Se recomienda incorporarlo para desarrollos futuros

Se opera con datos signed o unsigned y luego se usa un cast para

convertirlos a std_logic_vector.

Interpretación de std_logic_vector

Page 52: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

52

Ejemplo de comparación de vectores

COMP será falso si se incluyó el paquete UNSIGNED

signal A :std_logic_vector (3 downto 0);

signal B :std_logic_vector (3 downto 0);

signal COMP: boolean;

A <= “0110”;

B <= “1000”;

COMP <= A > B; COMP verdadero si se

incluyó el paquete SIGNED

VHDL: Operadores de comparación

Page 53: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

53

VHDL: Comparador sin signo

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity compara is

port ( a : in std_logic_vector(3 downto 0);

b : in std_logic_vector(3 downto 0);

mayor: out std_logic);

end compara;

architecture Behavioral of compara is

begin

mayor <= '1' when a > b else '0';

end Behavioral;

Page 54: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

54

VHDL: Comparador sin signo

Circuito RTL inferido por el ambiente

Simulación del modelo

Page 55: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

55

VHDL: Comparador en C2

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_SIGNED.ALL;

entity comparaSig is

port ( a : in std_logic_vector(3 downto 0);

b : in std_logic_vector(3 downto 0);

mayor: out std_logic);

end comparaSig;

architecture Behavioral of comparaSig is

begin

mayor <= '1' when a > b else '0';

end Behavioral;

Page 56: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

56

VHDL: Comparador en C2

Circuito RTL inferido

por el ambiente

Simulación del modelo

Page 57: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

57

Aritméticos + (suma) - (resta)

Definidos para datos enteros (integer)

VHDL: Operadores usados en Digital II

Se pueden utilizar con vectores std_logic_vector

Se debe incluir el paquete correspondiente (SIGNED o UNSIGNED)

Page 58: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

58

Concatenación (&)

Permite definir vectores a partir de líneas u otros vectores

VHDL: Operadores usados en Digital II

signal A :std_logic_vector (3 downto 0);

signal B :std_logic_vector (3 downto 0);

signal C: std_logic_vector (5 downto 0);

A <= “0110”;

B <=“1000”;

C <= A(3 downto 1) & B(2 downto 0); C será “011000”

Page 59: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

59

VHDL: Sumador / Restador en C2

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_SIGNED.ALL;

entity SuRes is

port ( a : in std_logic_vector(3 downto 0);

b : in std_logic_vector(3 downto 0);

sub : in std_logic;

s : out std_logic_vector(4 downto 0));

end;

architecture Behavioral of SuRes is

begin

s <= (a(3) & a) + b when sub = '0'

else (a(3) & a) - b;

end;

Se completa formato

con bit de signo

Se previene OF

definiendo la salida

con un bit más

Se incluye el

paquete SIGNED

Page 60: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

60

VHDL: Sumador / Restador en C2

Page 61: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

61

VHDL: Sumador / Restador en C2

Simulación del modelo

Al trabajar con un bit más en la salida, se previene el sobreflujo

Page 62: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

62

VHDL: Sumadores/Restadores

De acuerdo con la representación de datos adoptada

Incluir el paquete que corresponde

Completar formato en forma adecuada

Si el tamaño de bus está acotado y se requiere detectar OF

Se debe agregar en la descripción del sumador

Page 63: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

VHDL

Descripción de circuitos secuenciales sincrónicos

Page 64: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

64

Circuitos secuenciales sincrónicos

Las salidas dependen del estado interno del sistema

y, dependiendo del modelo, de las entradas.

MOORE

Interviene la señal de reloj

Page 65: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

65

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity FF is

port ( entrada: in std_logic;

clk:in std_logic;

salida: out std_logic);

end;

architecture Behavioral of FF is

begin

process (clk)

begin

if clk'event and clk = '1' then salida <= entrada ;

end if;

end process ;

end;

Descripción de un elemento de memoria

Lista de sensibilidad

Descripción del

flanco activo de reloj

Page 66: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

66

Procesos y bloques secuenciales sincrónicos

process (clk)

begin

if clk'event and clk = '1‘

then … ;

end if;

end process ;

En simulación, cada vez que

cambia alguna de las señales

se ejecuta el bloque

Activación del bloque PROCESS Lista de sensibilidad

Descripción del

flanco activo de reloj Las sentencias internas se ejecutan

secuencialmente

SIMULADOR:

El bloque es una sentencia concurrente

Page 67: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

67

Se describen circuitos temporizados

Es necesario reconocer un flanco activo de reloj.

clk’event and clk = ‘1’

Expresiones reconocidas por XST para describir un flanco

ascendente de reloj

Circuitos secuenciales sincrónicos

(rising_edge(clk))

Atributo event de la señal de reloj

Función que recibe el reloj como argumento

Page 68: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

68

El bloque process

Es una construcción de un mayor de abstracción

Su uso está ligado a un tipo de descripción “ALGORITMICA”

Permite otros elementos sintácticos

Condicionales

Selección

Bucles

Están ligados a una descripción de más alto nivel

Page 69: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

69

Simulación de un FFD

El simulador adecúa

las ondas, respetando

el sincronismo

Page 70: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

70

Sentencia condicional IF...THEN...ELSE

if condición then

sentencias

elsif condición then

sentencias

else

sentencias

end if ;

Esta estructura puede anidarse

elsif y else son optativas. Si

no se contemplan todas las

posibilidades, se infiere

almacenamiento.

Modela una selección

jerárquica.

El bloque process: Elementos sintácticos

Indicada para describir las señales de control

de bloques secuenciales sincrónicos

Page 71: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

71

Sentencia condicional IF...THEN...ELSE

process ( a, b, c )

begin

if a > b then

p <= b;

elsif a > c then

p <= c;

elsif (a = c and c = b) then

p <= a;

else p <= ‘0’;

end if ;

end process ;

p < = b when a > b else

c when a > c else

a when (a = c and c = b) else

‘0’ ;

Con asignación “concurrente”

La lista sensible debe incluir todas las

señales cuyo cambio es importante.

Procesos y circuitos combinacionales

Page 72: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

72

Sentencia de selección CASE

case expresión is

when caso1 = >

instrucciones

when caso2 = >

instrucciones

when others = >

instrucciones

end case ;

La expresión de selección debe ser discreta.

No puede haber casos duplicados.

Se deben cubrir todas las opciones de selección.

El bloque process: Elementos sintácticos

case sel is

when “10” = > s <= a;

when “00” = > s <= b;

when “01” => s <= c;

when others = > s <= d;

end case ;

MU

X

Sel (1:0)

a

d

sc

b

Page 73: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

73

case sel is

when “10” = > s <= a;

when “00” = > s <= b;

when “01” => s <= c;

when others = > s <= d;

end case ;

Sentencia de selección CASE

La expresión de selección debe ser discreta.

No puede haber casos duplicados.

Se deben cubrir todas las opciones de selección.

Procesos y circuitos combinacionales

with sel select

s <= a when “10” ,

b when “00”,

c when “01”,

d when others;

MU

X

Sel (1:0)

a

d

sc

b

Con asignación “concurrente”

Page 74: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

74

Modelado y simulación de la concurrencia

Se modela HARDWARE usando SOFTWARE

Concurrente Secuencial

C F

E

A

B

Las puertas deben funcionar

al mismo tiempo !!

No se puede modelar y simular en un

lenguaje convencional

Page 75: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

VHDL: Simulación de la concurrencia

Las señales se actualizan luego de que el

simulador “procesa” una sentencia concurrente.

Cada vez que se presenta un evento

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity SimCon is

port ( a,b,c : in std_logic;

e,f : out std_logic);

end ;

architecture Behavioral of SimCon is

begin

e<= a and b;

f<= b or c;

end ;

Page 76: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

¿Qué se debe incluir en la lista de sensibilidad?

Todas las señales cuyo cambio es importante !!

Procesos y simulación: Lista de sensibilidad

process (a,b,sel)

Circuito combinacional

Circuito secuencial sincrónico

Todas las señales que definen valores

El reloj si todas las señales

de control son sincrónicas

El reset asincrónico si existe

76

process (clk, reset)

Page 77: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

77

Descripción de un registro de desplazamiento

library IEEE;

use IEEE.std_logic_1164.all;

use IEEE.std_logic_unsigned.all;

--Registro con reset sincrónico, carga paralela y

--desplazamiento a la izquierda, prioridades en ese orden.

entity regis is

port (

din: in STD_LOGIC_VECTOR (3 downto 0);

clk: in STD_LOGIC;

r, l, shl: in STD_LOGIC;

sli: in STD_LOGIC;

dout: out std_logic_vector (3 downto 0)

);

end regis;

Page 78: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

78

architecture register_arch of regis is

begin

process (clk)

variable bout : std_logic_vector (3 downto 0);

begin

if ( clk'event and clk = '1') then

if r = ‘1’ then bout := (others => ‘0’);

elsif l = ‘1’ then bout := din;

elsif shl ='1' then bout := bout (2 downto 0) & sli;

end if;

end if;

dout <= bout;

end process;

end register_arch;

Registro de desplazamiento: Continuación

Flanco ascendente del reloj.

Todas las señales de control son sincrónicas

Operador de

concatenación

Local al proceso

Page 79: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

Deben ser declaradas dentro del proceso y son locales a él.

Su asignación es inmediata pero secuencial, al estar

en distintas sentencias en el proceso.

El orden de las sentencias es importante

Deben tener un valor asignado antes de utilizarlas.

No tienen significado físico

a := b or c;

d := e and a;

El bloque process y las variables

Page 80: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

Variables vs. Señales

Señales Variables

Sintaxis destino<= fuente destino:= fuente

Utilidad Modelan nodos físicos del

circuito

Representan almacenamiento

local

Visibilidad Global (comunicación entre

procesos) Local (dentro del

proceso)

Comportamiento Se actualizan al avanzar el

tiempo (suspensión proceso) Se actualizan

inmediatamente

Page 81: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

81

Registro de desplazamiento: Continuación

Page 82: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

82

Descripción de un contador binario

library IEEE;

use IEEE.std_logic_1164.all;

use IEEE.std_logic_unsigned.all;

-- Contador de 8 bits con reset asincrónico carga paralela y

-- habilitación de cuenta, con prioridades en ese orden.

-- La salida tc indica cuenta máxima.

entity contador is

port (

din: in STD_LOGIC_VECTOR (7 downto 0);

clk: in STD_LOGIC;

r, l, en: in STD_LOGIC;

tc: out STD_LOGIC;

cuenta: out std_logic_vector (7 downto 0)

);

end contador;

Page 83: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

83

architecture contador_arch of contador is

signal bout : std_logic_vector (7 downto 0);

begin

process (clk, r)

begin

if r = ‘1' then bout <= (others => '0');

elsif ( clk'event and clk = '1') then

if l = '1' then bout <= din;

elsif en = '1' then bout <= bout +1;

end if;

end if;

end process;

cuenta <= bout;

tc <= '1' when bout = “11111111” else '0';

end contador_arch;

Contador binario: Continuación

El reset es asincrónico

En la misma arquitectura coexisten

distintos estilos de descripción

Page 84: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

84

Contador binario: Continuación

Esquemático inferido

por el ambiente

Contador con

carga paralela,

reset asincrónico

y habilitación de

cuenta

Page 85: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

85

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_SIGNED.ALL;

entity modulo1 is

Port ( a : in STD_LOGIC_VECTOR (3 downto 0);

clk : in STD_LOGIC;

r : in STD_LOGIC;

v: out STD_LOGIC;

s : out STD_LOGIC_VECTOR (4 downto 0));

end modulo1;

Circuito ejemplo: Interfaz

El subproceso “View schematic RTL”

muestra la interfaz del módulo y los

componentes que el sintetizador infiere

a partir de la descripción VHDL Módulo1

Page 86: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

86

architecture Behavioral of modulo1 is

signal cuenta:STD_LOGIC_VECTOR (1 downto 0);

signal registro: STD_LOGIC_VECTOR (3 downto 0);;

begin

process (clk,r)

begin

if r = '1' then registro <= (others => '0');

elsif clk'event and clk = '1' then

registro <= a;

end if; end process;

process (clk,r)

begin

if r = '1' then cuenta <= (others => '0');

elsif clk'event and clk = '1' then

cuenta <= cuenta + 1;

end if; end process;

s <= a(3) & a + registro when cuenta = "11“ else (others => '0');

v <= '0' when cuenta = "11" else '1';

end Behavioral;

Circuito ejemplo: funcionamiento

Señales internas

Registro con

reset asincrónico

Contador con

reset asincrónico

Descripción

de las salidas

Page 87: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

87

Circuito ejemplo: RTL inferido en ISE

Page 88: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

88

Ejemplo: Simulación comportamental

Los estímulos cambian en el flanco descendente del reloj

Los estímulos cambian en el flanco ascendente del reloj

Page 89: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

VHDL

Resolución de señales. Descripción de líneas y buses

compartidos

Page 90: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

90

VHDL: Resolución de señales

Page 91: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

91

VHDL: Resolución de señales

No se puede asignar valor a una señal en dos

sentencias “concurrentes” diferentes

¿¿¿ Cómo se pueden describir estos circuitos ???

Page 92: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

92

VHDL: Resolución de señales

Descripción VHDL

Implementación HW

Tipos de datos resueltos

Buffers de tres estados

Page 93: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

93

‘0’ -- 0 fuerte

‘1’ -- 1 fuerte

‘Z’ -- alta impedancia - tres estados

‘U’ -- no inicializado

‘X’ -- valor desconocido fuerte (conflicto entre val. fuertes)

‘W’ --valor desconocido débil (conflicto entre val. débiles)

‘L’ --0 débil

‘H’ --1 débil

‘-’ --sin importancia (don’t care)

Tipos std_ulogic y std_logic

Ambos tipos de datos pueden tomar 9 valores diferentes

Page 94: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

94

Tipos std_ulogic y std_logic

¿¿¿ En qué se diferencian ???

Ambos tipos de datos pueden asumir

los mismos valores

Std_logic agrega a Std_ulogic una

FUNCIÓN DE RESOLUCIÓN

que plasma un modelo capaz de

resolver conflictos entre señales

Page 95: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

95

Basado en fuerzas y valores lógicos.

Niveles lógicos básicos: 0; 1; L y H.

Las fuerzas pueden ser S, R y Z .

Modelo de resolución de señales

El estado de una línea en un

momento dado es la combinación

de una fuerza y un nivel lógico.

Page 96: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

96

Se evalúa el valor de la fuerza (S>R>Z). La línea toma la fuerza y valor lógico de la señal ganadora.

Si las fuerzas son iguales, se evalúa el valor lógico, si son iguales, la línea toma el valor de cualquiera de ellos.

Si son valores lógicos distintos , la línea resulta X ó W según corresponda

Modelo de resolución de señales

En una contención (dos señales compiten por tomar control

sobre una línea)

Page 97: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

97

0 1 H L Z

0 0 X 0 0 0

1 X 1 1 1 1

H 0 1 H W H

L 0 1 W L L

Z 0 1 H L Z

Función de resolución en std_logic

Page 98: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

98

HAB. Hab Y

0 Z

1 ent

ent

Y

Buffer de tres estados

Es un componente HW que al estar deshabilitado,

entrega un nivel de alta impedancia como salida

Permite que varios módulos compartan líneas o buses tomando

control sobre los mismos según un esquema de acceso

Page 99: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

07/09/2015 99

VHDL: Buffer de 3 estados

BufT

BufT

Page 100: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

100

VHDL: Buffer de 3 estados

Page 101: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

101

VHDL: Buffer de 3 estados

HAB.

HAB.

O

aux2

hab_2

hab_1

aux1

Page 102: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

102

VHDL: Buffer de 3 estados

En síntesis XST detecta la descripción de un buffer T o de dos buffers T

Buffers T sólo disponibles en los bloques IO

En las descripciones del ejemplo hay un solo pad de salida

Al mapear se utiliza un solo buffer conectado al puerto

Se completa con lógica

Spartan3

Page 103: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

103

Buffer de 3 estados: Ejemplo

Reset asincrónico prioritario

Carga paralela sincrónica

Reset asincrónico prioritario

Carga paralela sincrónica

Si no resetea ni carga, cuenta up

Si ER = 1 toma control el Registro

Si EC = 1 toma control el Contador

Registro

Contador

Bus DaIO

Page 104: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

104

Buffer de 3 estados: Ejemplo

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity Sistema1 is

Port ( lr,lc : in std_logic; -- señales de carga paralela

r,clk : in std_logic;

er,ec : in std_logic; -- Habilitaciones bloques

daio : inout std_logic_vector(3 downto 0)); -- bus I/O

end ;

RTL TOP

Definición de la interfaz

Page 105: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

07/09/2015 105

Buffer de 3 estados: Ejemplo

architecture Behavioral of Sistema1 is

signal regA, cuenta:std_logic_vector(3 downto 0); -- Registro y contador

begin

process (clk,r) -- Descripción registro

begin

if r = '1' then regA<= (others => '0');

elsif clk = '1' and clk'event then if lr = '1' then

regA <= daio;

end if; end if;

end process;

process (clk,r) -- Descripción Contador

begin

if r = '1' then cuenta <= (others => '0');

elsif clk'event and clk = '1' then if lc = '1' then

cuenta <= daio; else cuenta <= cuenta +1;

end if; end if;

end process;

Page 106: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

106

Buffer de 3 estados: Ejemplo

-- ======= Inicio bus io de 3 estados ======

-- Con 1 buffer T (4 lineas), quitar comentario a:

-- daio <= regA when er ='1' else cuenta when ec

= '1'else (others => 'Z');

-- Con 2 buffer T (4 lineas c/u), quitar comentario:

daio <= regA when er ='1' else (others =>'Z');

daio <= cuenta when ec = '1' else (others =>'Z');

-- ======== Fin bus io de 3 estados =======

end Behavioral;

Los Buffers T trabajan con lógica negativa

Page 107: Digital II - ECA - dsi.fceia.unr.edu.ar · PDF fileEl bloque Process ... hardware en el circuito integrado. 6 Esquema general de la arquitectura ... 1 2 3 Arquitectura 25 . 26

¿Preguntas?