digital ii - departamento de sistemas e informática · ªdescripción de circuitos combinacionales...

75
VHDL VHDL V V ery ery H H igh igh speed speed integrated integrated circuit circuit H H ardware ardware D D escription escription L L anguage anguage Digital II – Ingeniería Electrónica Rosa Corti Rosa Corti

Upload: hoangnhan

Post on 19-Sep-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDLVHDL

VVeryery HHighigh speedspeed integratedintegrated circuitcircuitHHardware ardware DDescriptionescription LLanguageanguage

Digital II – Ingeniería Electrónica

Rosa CortiRosa Corti

Page 2: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

Contenido

Dispositivos FPGALenguaje VHDL: Evolución y característicasUnidades de diseño básicas: Entidad y ArquitecturaSeñales en VHDLTipos de datos – Bibliotecas usualesDescripción de circuitos combinacionales

Sentencias de asignación concurrente Ejemplos

Descripción de circuitos secuencialesEl bloque ProcessRepresentación de la señal de relojSentencias algorítmicasEjemplos

Page 3: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

3

La Ley de MOORE

“ El número de transistores en un circuito integrado se podrá duplicar cada dos años”

Page 4: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 4

Dispositivos de lógica programable.

Mayor flexibilidad

El usuario configura un dispositivo standard.

Personalización independiente de la fábrica

Entradas

Salidas

DESVENTAJA

Se desperdician recursos de pastilla

Page 5: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 5

FPGA: ¿ Cuál es la innovación introducida ??

Arquitectura extremadamente flexible de tecnología SRAM

Reprogramación simple y rápida en circuito Bloques lógicos programables

(CLB, LE)

Bloques I/O programables

Interconexión programable

Page 6: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 6

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

PLD convencionales

LUT´s

FPGA

Page 7: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 7

Elementos básicos de la FPGA

Celdas o bloques lógicosLUT (Look Up Table) MultiplexorRegistro

Page 8: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

8

Configuración de una FPGA:

BITSTREAM Los bits permanecen en el dispositivo que se configura

Un bit de configuración controla un switch de conexión o un bit de lógica

Page 9: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

Programación de un dispositivo

µP FPGA

Se cambian las conexiones y las funciones lógicas

Se cambian las instrucciones

Cambia el Software Cambia el Hardware

15/09/2009 9

Page 10: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 10

Evolución de las Arquitecturas

Virtex II y Virtex II Pro Spartan 2 y Virtex

Fuente: Publicaciones de la empresa Xilinx.

Page 11: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 11

FPGAs basadas en SRAM

1. Dispositivo de lógica programable estándar muy flexible

2. Personalizable por el usuario con ambientes EDA

programación en campo3. Arquitectura basada en SRAM

Pierden su configuración al cesar la energía4. Volátiles

Otras característicasOtras tecnologías de fabricación

Page 12: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

12

Datos generales sobre FPGA´s

Algunas aplicaciones

Guitarras Gibson – sonido digitalVehículos de exploración de Marte (NASA)Módulo de control de Williams F1Misiles Tomahawk

XilinxAlteraAtmel

LatticeCypressActelQuicklogic

AlgunosFabricantes

Costo de los dispositivos

Desde menos de 10 dólares a varios cientos, dependiendo de las características, aún en la misma familia de dispositivos.

Page 13: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

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 entender15/09/2009 13

Page 14: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

Diseño digital

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 permitenintegrar distintos estilos de diseño

15/09/2009 14

Page 15: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Antecedentes históricos

Necesidad de estandarizar los diseños

DoD +IEEE Patrocinan el desarrollo en los 80´s

VHDL-87Es estándar de IEEE en 1987

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

VHDL-01Modificaciones menores en 2001

Existen otros HDL populares como ABEL y VERILOG15/09/2009 15

Page 16: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Evolución

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

DocumentaciónLigado a actividades de

Simulación

Luego se incorporan herramientas de síntesis capaces de manejar este tipo de descripciones

Ambientes integrados de diseño15/09/2009 16

Page 17: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Síntesis en FPGA

FPGA Ambientes CAD

SíntesisAtraviesa todos los niveles de abstracción de la descripción desde el más alto al más bajo

VHDL

Es un lenguaje para el modelado, simulación lógica dirigida por eventos y síntesis de sistemas de Hardware

15/09/2009 17

Page 18: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

Flujo de diseño VHDL orientado a FPGA

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

Mapeo, rutasy ubicación

Simulación post PAR

Bitstream

15/09/2009 18

Page 19: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

Programación de un dispositivo

µP FPGA

Se cambian las conexiones y las funciones lógicas

Se cambian las instrucciones

Cambia el Software Cambia el Hardware

15/09/2009 19

Page 20: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL VHDL

Construcciones bConstrucciones báásicassicas

Page 21: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Unidades de diseño básicas

15/09/2009 21

Componentes

DispositivoVHDLEntidad Arquitectura

Descripción comportamental

Declaración de I/O

Caja negra Caja blanca

Page 22: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Unidades de diseño básicas

15/09/2009 22

Diseño VHDL Entidad

Arquitectura

Archivo de texto

library IEEE;use IEEE.std_logic_1164.all;entity PuertaAnd is

port ( A, B:in std_logic;C: out std_logic );

end PuertaAnd;architecture arch_flu of PuertaAnd isbeginC <= A and B;end arch_flu;

AND

Page 23: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

Estructura de un diseño VHDL: Entidad

library IEEE;use IEEE.std_logic_1164.all;

entity PuertaAnd isport (A, B:in std_logic;

C: out std_logic );end PuertaAnd;

Declaración de bibliotecasVisibilidad de paquetes

Declaración de puertos

INTERFAZ

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

15/09/2009 23

Page 24: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 24

Bibliotecas y unidades de diseño

Modelo VHDL

Bibliotecas VHDL

Colecciones de unidades de diseño

Compuesto por unidades de diseño

Secciones mínimas de código compilables en forma independiente

Organizan el códigoPromueven el reuso

Page 25: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

Puertos de la entidad

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

Modo Define cómo se lo utiliza

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

Define los valores y operaciones legalesTipo

15/09/2009 25

Page 26: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

Objetos VHDL: señales

a

b

c

d

s

nd

xnc

Modelan hilos de un circuito

SEÑALES

15/09/2009 26

Page 27: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

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 predefinidos Biblioteca Standard (STD)

BITBOOLEANINTEGERREAL

Orientados a síntesis

15/09/2009 27

Page 28: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Tipos de datos

Para representar situaciones reales en los circuitos, la IEEE definiódos tipos de datos multivaluados orientados a síntesis

Modela líneas Std_logic

Std_logic_vector (n-1 downto 0) Modela buses

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

‘0’ valor bajo‘1’ valor alto‘Z’ alta impedancia

Biblioteca: IEEEPaquete: std_logic_1164

15/09/2009 28

Page 29: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Descripción de un circuito

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 issignal nc, nd, x: std_logic;beginnc <= not c;nc <= not c;x <= a and nc and nd ;s <= c or a;end arch_flu;

b

c s

nd

xnc

a

d

15/09/2009 29

Page 30: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

Estructura de un diseño VHDL: Arquitectura

Se ligan arquitectura y entidad

architecture arch_flu of Circuito issignal nc, nd, x: std_logic;beginnc <= not c;nc <= not c;x <= a and nc and nd ;s <= c or a;end arch_flu;

Descripción de la funcionalidad del módulo

15/09/2009 30

Declaración objetos utilizados

b

c s

nd

xnc

a

d

Page 31: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL VHDL

DescripciDescripcióón de circuitos n de circuitos combinacionalescombinacionales

Page 32: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 32

Sentencias de asignación concurrente

Verificar el tipo de las señalesSi son vectores, verificar tamañoAsignaciones simples

Asignaciones condicionales

x <= a and nc and nd ;

s <= a when c = “00” else d when c = “01” else e ;

Asignaciones con selección with (c or f) selects <= a when “100” ,

d when “010” ,e when others;

Page 33: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 33

Descripción de multiplexores

library IEEE;use IEEE.STD_LOGIC_1164.ALL;entity Multiplexor isport ( a , b : in std_logic_vector(1 downto 0);

sel : in std_logic;s : out std_logic_vector(1 downto 0));

end Multiplexor;architecture Behavioral of Multiplexor isbegin

s <= a when sel ='1' else b;end Behavioral;

Page 34: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 34

architecture Behavioral of Cod_7seg isbeginwith 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 isport ( HEX : in std_logic_vector( 3 downto 0);

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

Descripción de Codificadores

Page 35: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 35

Descripción de una memoria ROM

architecture behavioral of MROM istype mem is array ( 0 to 15) of std_logic_vector(7 downto 0); signal mi_Rom : mem; beginmi_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 isport ( 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 36: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 36

Modelado y simulación de la concurrencia

Se modela HARDWARE usando SOFTWARE

Concurrente Secuencial

Las puertas deben funcionar al mismo tiempo !!A

D

BC

S

L No se puede modelar y simular en un lenguaje convencional

Page 37: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 37

Caracterización de señales para simulación

Cada señal tiene asociado un “Driver”

Cola o tabla de transacciones que almacena la forma de onda

S

15 40 45 [ns]

Tiempo de simulación 0 El driver “proyecta” valores futuros de la señal en simulación

tiempo 0 15 40 45

valor 1 0 1 0Driver de S

Page 38: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 38

VHDL: Simulación de la concurrencia

Se utilizan sentencias “concurrentes” para describir el comportamiento del circuito

Estas sentencias son sensibles a señales

(A, B, C y S)S <= A or B;Q <= C and S;

Los cambios en las señales “fuente” (eventos), disparan la “ejecución” de las sentencias concurrentes.

En simulación hay un soporte explícito de la concurrencia.

Page 39: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Simulación de la concurrencia

Cada vez que se presenta un evento

library IEEE;use IEEE.STD_LOGIC_1164.ALL;entity SimCon isport ( a,b,c : in std_logic;

e,f : out std_logic);end ;architecture Behavioral of SimCon isbegine<= a and b;f<= b or c;end ;

Las señales se actualizan luego de que el simulador “procesa” una sentencia concurrente.

Page 40: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 40

VHDL: Operadores usados en Digital II

Existe una gran cantidad de operadores definidos para

distintos tipos de datos

Lógicos

Relacionales

AritméticosSólo un subconjunto está

orientado a síntesisConcatenación

Page 41: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Operadores usados en Digital II

and, or, nor, xor, notLógicos

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

Los operandos deben ser del mismo tipo y tener la misma cantidadde bits

Ejemplos

signal A, B, C, D: std_logic_vector (7 downto 0);A <= “11001010”;B <=“10011010”;C <= A or B;D <= A and B;

15/09/2009 41

Page 42: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Operadores usados en Digital II

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 distintacantidad 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 !!!15/09/2009 42

Page 43: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 43

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 44: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Operadores relacionales

Comparación de vectores

¿ 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?

15/09/2009 44

Page 45: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

Interpretación de std_logic_vector

La interpretación que se da a los datos std_logic_vectordepende de los paquetes que se incluyan en el diseño

STD_LOGIC_ARITH

STD_LOGIC_UNSIGNED

STD_LOGIC_SIGNED

Desarrollados por Synopsis. Se distribuyen como parte de

la biblioteca IEEE.

Los incorporan muchos los ambientes de diseño

Actualmente constituyen un estándar15/09/2009 45

Page 46: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 46

Interpretación de std_logic_vector

library IEEE; use IEEE.STD_LOGIC_1164.all;

use IEEE.STD_LOGIC_SIGNED.all;

use IEEE.STD_LOGIC_UNSIGNED.all;

STD_LOGIC_VECTOR se interpreta como entero en C2

STD_LOGIC_VECTOR se interpreta como entero sin signo

Page 47: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Operadores de comparación

Ejemplo de comparación de vectores

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

COMP será falso si se incluyó el paquete UNSIGNED

15/09/2009 47

Page 48: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Operadores usados en Digital II

+ (suma) - (resta) Aritméticos

Definidos para datos enteros (integer)

Se pueden utilizar con vectores std_logic_vector

Se debe incluir el paquete correspondiente (SIGNED o UNSIGNED)

15/09/2009 48

Page 49: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Operadores usados en Digital II

Concatenación (&)

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

15/09/2009

signal A :std_logic_vector (3 downto 0);signal B :std_logic_vector (3 downto 0);signal COMP: std_logic_vector (5 downto 0);A <= “0110”;B <=“1000”;C <= A(3 downto 1) & B(2 downto 0); C será “011000”

49

Page 50: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Comparador sin signo

library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity compara isport ( 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 isbeginmayor <= '1' when a > b else '0';end Behavioral;

15/09/2009 50

Page 51: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Comparador sin signo

Circuito RTL inferido por el ambiente

Simulación del modelo

15/09/2009 51

Page 52: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Comparador en C2

library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_SIGNED.ALL;

entity comparaSig isport ( 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 isbeginmayor <= '1' when a > b else '0';end Behavioral;

15/09/2009 52

Page 53: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Comparador en C2

Simulación del modelo

15/09/2009 53

Circuito RTL inferido por el ambiente

Page 54: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Sumador / Restador en C2

library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_SIGNED.ALL;

entity SuRes isport ( 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 isbegins <= (a(3) & a) + b when sub = '0' else (a(3) & a) - b;end;

Se incluye el paquete SIGNED

Se previene OF definiendo la salida

con un bit más

Se completa formato con bit de signo

15/09/2009 54

Page 55: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Sumador / Restador en C2

15/09/2009 55

Page 56: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL: Sumador / Restador en C2

Simulación del modelo

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

15/09/2009 56

Page 57: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

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

15/09/2009 57

Page 58: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 58

Circuitos combinacionales y memoria implícita

Las salidas sólo dependen de las entradas, no se permite que:

La señal que se está asignando intervenga en la asignación:

s <= a when sel = ‘1’ else b;s <= a when sel = ‘1’ else s;s <= a when s = ‘1’ else b;

COMBINACIONAL

SECUENCIAL

Existan lazos combinacionales

COMBINACIONAL SECUENCIAL

a <= b or c;e <= d and a;

a <= b or c;b <= d and a;

Page 59: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

VHDL VHDL

DescripciDescripcióón de circuitos n de circuitos secuenciales sincrsecuenciales sincróónicosnicos

Page 60: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 60

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 61: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 61

Descripción de un elemento de memoria

library IEEE;use IEEE.STD_LOGIC.1164.ALL;entity FF isport ( entrada: in std_logic;

clk:in std_logic;salida: out std_logic);

end;architecture Behavioral of FF isbeginprocess (clk)beginif clk'event and clk = '1' then salida <= entrada ; end if;end process ;end;

Page 62: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 62

Simulación de un FFD

El simulador adecúalas ondas, respetando

el sincronismo

Page 63: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 63

El bloque process

process (clk)beginif 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 PROCESSLista de sensibilidad

Descripción del flanco activo de reloj

SIMULADOR:

El bloque es una sentencia concurrente

Las sentencias internas se ejecutan secuencialmente

Page 64: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 64

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

CondicionalesSelecciónBucles

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

Page 65: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 65

El bloque process

Sentencia condicional IF...THEN...ELSE

Esta estructura puede anidarse.if condición thensentencias

elsif condición thensentencias

elsesentencias

end if ;

Modela una selección jerárquica.

elsif y else son optativas. Si no se contemplan todas las posibilidades, se infiere

almacenamiento.

Page 66: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 66

El bloque process

Sentencia condicional IF...THEN...ELSE

process ( a, b, c )beginif a > b thenp <= a;elsif a > c then p <= c;elsif (a = c and c = b) thenp <= a;else p <= ‘0’;end if ;end process ;

p < = b when a > b elsec when a > c elsea 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.

Page 67: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 67

El bloque process

case sel iswhen “10” = > s <= a;when “00” = > s <= b;when “01” => s <= c;when others = > s <= d;

end case ;

Sentencia de selección CASE

case expresión iswhen caso1 = >

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

Page 68: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 68

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 isport (

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 69: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 69

Registro de desplazamiento: Continuación

architecture register_arch of regis isbeginprocess (clk)variable bout : std_logic_vector (3 downto 0);begin

if ( clk'event and clk = '1') thenif 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;

Flanco ascendente del reloj.

Todas las señales de control son sincrónicas

Operador de concatenación

Local al proceso

Page 70: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

El bloque process y las variables

No tienen significado físico

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.

Deben tener un valor asignado antes de utilizarlas.

El orden de las sentencias es importante

a := b or c;d := e and a;

Page 71: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

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 72: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 72

Registro de desplazamiento: Continuación

Page 73: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 73

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 isport (

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 74: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

15/09/2009 74

Contador binario: Continuación

architecture contador_arch of contador issignal bout : std_logic_vector (7 downto 0);beginprocess (clk, r)beginif r = ‘1' then bout <= (others => '0');elsif ( clk'event and clk = '1') thenif 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;

El reset es asincrónico

En la misma arquitectura coexisten distintos estilos de descripción

Page 75: Digital II - Departamento de Sistemas e Informática · ªDescripción de circuitos combinacionales ªSentencias de asignación concurrente ... Una descripción con esquemas resulta

75

Contador binario: Continuación

Esquemático inferido por el ambiente