4. diseño algorítmico.pdf

101
toc

Upload: recortahilos

Post on 31-Jan-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 4. Diseño algorítmico.pdf

toc

Page 2: 4. Diseño algorítmico.pdf

toc

1. Introducción 2. Principios de diseño:

– Top-down/bottom-up, divide y vencerás, iterativo 3. Diseño algorítmico:

– Diagrama ASM, unidad de control y ruta de datos 4. Diseño algorítmico en VHDL 5. Diseño RTL 6. Elementos de memoria 7. Temporización de sistemas secuenciales 8. Segmentación

Page 3: 4. Diseño algorítmico.pdf

toc

Algebra de Boole

Puertas lógicas y biestables

Técnicas de diseño lógico combinacional

Máquinas de estados finitos

Componentes secuenciales

Técnicas de diseño lógico secuencial

Componentes combinacionales

Máquinas de estados finitos generalizadas Diseño de transferencia

entre registros

Diseño lógico ≡ FC

Diseño algorítmico

Fundamento teórico

Biblioteca de componentes

Componentes del procesador

1. In

trod

ucci

ón

Page 4: 4. Diseño algorítmico.pdf

toc

Mealy: Un cambio en la entrada en cualquier instante influye inmediatamente en la salida.

Z(t) = H ( X(t), S(t) ) S(t+1) = G (X(t), S(t) )

Moore: Sólo el cambio del estado influye en la salida. Z(t) = H (S(t) ) S(t+1) = G (X(t), S(t) )

Estado1 Estado2

a / b

S1 / Z1 S2 / Z2

X1

1. In

trod

ucci

ón

Page 5: 4. Diseño algorítmico.pdf

toc

Circ

uito

co

mbi

naci

onal

Regi

stro

de

esta

do

Reloj

X(t)

Z(t)

Inicializar

Estado actual (Q)

Estado siguiente (D)

Circ

uito

co

mbi

naci

onal

Mealy

1. In

trod

ucci

ón

Page 6: 4. Diseño algorítmico.pdf

toc

Circ

uito

co

mbi

naci

onal

Regi

stro

de

esta

do

Reloj

X(t)

Z(t)

Inicializar

Estado actual (Q)

Estado siguiente (D)

Moore

Circ

uito

co

mbi

naci

onal

1. In

trod

ucci

ón

Page 7: 4. Diseño algorítmico.pdf

toc

La hipótesis de funcionamiento síncrono de los sistemas secuenciales supone que: – El estado sólo cambia una vez por ciclo de reloj y

el cambio es simultáneo en todos los bits del registro de estado.

– Tras un cambio de estado las entradas de los bits del registro de estado tienen tiempo para alcanzar un valor estable antes del siguiente cambio de estado.

1. In

trod

ucci

ón

Page 8: 4. Diseño algorítmico.pdf

toc

Generar diagrama de estados

Generar las tablas de transición de estados y salida

Codificar estados y salida

Obtener ecuaciones de excitación y salida

Obtener ecuaciones de estado siguiente

1. In

trod

ucci

ón

Page 9: 4. Diseño algorítmico.pdf

toc

Elegir elementos hardware

Implementar y optimizar

Obtener esquema lógico y análisis estático de tiempos (STA)

Simular

Verificar

1. In

trod

ucci

ón

Page 10: 4. Diseño algorítmico.pdf

toc

Diseño up-down y bottom-up ¿Cómo nos acercamos al problema?

– Diseñamos primero los componentes más sencillos y los unimos para crear componentes más complicados (bottom-up)

– Diseñamos el comportamiento del circuito a alto nivel y cada vez vamos acercándonos más al diseño hardware (up-down)

• Diseño algorítmico.

2. P

rinci

pios

de

dise

ño

Page 11: 4. Diseño algorítmico.pdf

toc

Divide y vencerás En teoría de la programación el término divide y

vencerás hace referencia a uno de los paradigmas de programación más importante. – Éste implica la resolución recursiva de un problema

dividiéndolo en dos o más sub-problemas de igual tipo o similar. El proceso continúa hasta que éstos llegan a ser lo suficientemente sencillos como para que se resuelvan directamente.

Podemos aplicar la misma metodología en hardware – Simplificando el problema original al dividirlo. – Es mucho más fácil y eficiente solucionar problemas

pequeños.

2. P

rinci

pios

de

dise

ño

Page 12: 4. Diseño algorítmico.pdf

toc

Iterativo: trata de resolver un problema mediante aproximaciones sucesivas a la solución, empezando desde una estimación inicial – Deseamos obtener un circuito con un determinado tiempo

de ciclo. – Deseamos obtener un circuito con una determinado

consumo de potencia. Partiremos de una solución inicial obtenida según la

sección anterior (diseño algorítmico) e iremos modificando los componentes y/o unidad de control para conseguir los objetivos de rendimiento.

2. P

rinci

pios

de

dise

ño

Page 13: 4. Diseño algorítmico.pdf

toc

Modo de especificación e implementación de sistemas digitales, que permite sistematizar y automatizar en gran medida su construcción. Parte siempre de una especificación en la que

el comportamiento del sistema se describe en forma de un algoritmo: – Cómo calcular la salida en función de la entrada.

Implementación: – Unidad de Control y Ruta de Datos.

3. D

iseño

alg

orítm

ico

Page 14: 4. Diseño algorítmico.pdf

toc

Sistemas secuenciales síncronos. Comportamiento definido IMPLÍCITAMENTE

– No se especifica el valor de Z sino el modo de calcularlo: el algoritmo.

Modelo: Unidad de control

Ruta de datos

Entradas de control

Entradas de datos

Salidas de control

Salidas de datos

Señales de control

Señales de estado

E N T R A D A S

S A L I D A S

3. D

iseño

alg

orítm

ico

Page 15: 4. Diseño algorítmico.pdf

toc

Definición del sistema • Especificar: entradas y salidas, función, bloques disponibles.

Diseño del algoritmo • Obtener conjunto ordenado y finito de operaciones. • Modelo de máquina de estados generalizada.

Definición de la arquitectura del sistema • Determinar entradas, salidas y señales internas.

Diseño de la ruta de datos (unidad de proceso) Diseño de la unidad de control Ensamblado (de U.P y U.C.) y verificación

3. D

iseño

alg

orítm

ico

Page 16: 4. Diseño algorítmico.pdf

toc

1. Estudio de la especificación: – Esquema de pasos secuenciales a seguir (algoritmo) – Posible HW a utilizar (módulos específicos complejos)

2. Creación de un diagrama ASM: partiendo de las conclusiones del apartado 1, crear un diagrama que cumpla las especificaciones.

3. Diseño de la unidad de control: – Codificar cada uno de los estados del ASM – Codificar el cambio de estado

• Mediante señales internas de control • Mediante señales externas de control

– Codificar las señales de control hacia la ruta de datos: cada estado tendrá asociado unos valores de TODAS las señales que controlan los módulos complejos (por ejemplo: señal load de los registros).

4. Diseño de la ruta de datos: – Interconectar las señales de datos externas e internas a los módulos. – Interconectar las señales de control (obtenidas en el apartado 3) a los

módulos de la ruta de datos.

3. D

iseño

alg

orítm

ico

Page 17: 4. Diseño algorítmico.pdf

toc

Estudio de la especificación: ¿Entiendo completamente el enunciado del problema?

– Esquema de pasos secuenciales a seguir (algoritmo)

¿Cumple las especificaciones? ¿Puede simplificarse?

– Posible HW a utilizar (módulos específicos complejos)

¿Añadir este HW me obliga a replantear el punto anterior?

3. D

iseño

alg

orítm

ico

Page 18: 4. Diseño algorítmico.pdf

toc

Creación de un diagrama ASM: partiendo de las conclusiones del apartado anterior – Número de estados – Necesito más o menos estados – Cuando se hacen efectivas las señales control

• Cuándo se carga un dato en un registro • Cuándo deja de contar un contador • Cuándo es correcta una comparación • …

– Estoy realizando un diseño Moore, Mealy o una mezcla

3. D

iseño

alg

orítm

ico

Page 19: 4. Diseño algorítmico.pdf

toc

Forma gráfica de representar el algoritmo. Elementos:

• Caja de estado: asignaciones y operaciones simultáneas.

• Caja de decisión: bifurcación condicional con 2 posibles salidas.

• Caja de salida condicional: asignaciones que se realizan cuando se cumple una condición (Mealy).

• Bloque ASM: una caja de estado con red de cajas de decisión y de salida condicional.

Cond Sí No 3.

Dise

ño a

lgor

ítmic

o

Page 20: 4. Diseño algorítmico.pdf

toc

S0 y<=‘1’

S1

S0

S1 y<=‘1’

a=‘0’

a=‘1’

S0

S2 y<=‘1’

a=‘0’

a=‘1’ y b=‘0’

S1

a=‘1’ y b=‘1’ 3. D

iseño

alg

orítm

ico

Page 21: 4. Diseño algorítmico.pdf

toc

y <=‘1’

y <= ‘1’

a = ‘1’?

y <= ‘1’

a = ‘1’?

b = ‘0’?

si si

si

no no

no

3. D

iseño

alg

orítm

ico

Page 22: 4. Diseño algorítmico.pdf

toc

y <=‘1’

y <= ‘1’

a = ‘1’?

y <= ‘1’

a = ‘1’?

b = ‘0’?

si si

si

no no

no

3. D

iseño

alg

orítm

ico

Page 23: 4. Diseño algorítmico.pdf

toc

Implementación canónica: – Fundamentos de Computadores (1er cuatrimestre)

• Registro de estado + red combinacional. • Ejemplo con n entradas, k variables de estado y m salidas. Para

implementar F y G se necesita un módulo de n+k variables y m+k salidas.

F Registro de estado

G

n X(t)

k k

CLK

m

Z(t) S(t)

Existen otras implementaciones: memoria

ROM, utilización de contadores …

Existen otras implementaciones: memoria

ROM, RTL …

3. D

iseño

alg

orítm

ico

Page 24: 4. Diseño algorítmico.pdf

toc

Registro de estado y red combinacional – Implementación canónica. – Uso de ROMs y PLAs en redes secuenciales en las que:

• Estado siguiente y salida dependen de subconjuntos diferentes de las variables.

– Si ocurre esto, ambas funciones son independientes y se pueden codificar por separado de manera MUCHO más simple.

• Estado siguiente sólo depende de una variable de entrada en cada estado actual.

– La ROM o PLA resultante no es tan grande.

Contador y red combinacional – Si en muchos casos S(t+1) = S(t)+1

Registro de desplazamiento y red combinacional – Permite optimizar ciertas operaciones (e.g., acceso selectivo a los bits

de una palabra a través de una máscara). • Registro de desplazamiento realimentado. • Registro de desplazamiento no realimentado.

3. D

iseño

alg

orítm

ico

Page 25: 4. Diseño algorítmico.pdf

toc

Utilizando los conceptos de diseño algorítmico diseñar un sistema que sea capaz de reconocer una clave. El sistema tendrá dos modos de funcionamiento:

– Cambiar clave: En este modo se puede introducir la nueva clave (4 bits) en un ciclo de reloj.

– Introducir clave: en este modo se introduce la clave, un bit por cada ciclo y se compara con la clave guardada:

• En caso de acierto se pone la señal acierto a 1 y se vuelve al estado inicial (decidir si se introduce o se cambia la clave).

• En caso de fallo se pone la señal acierto a 0 y el sistema volvería a pedir de nuevo que se introduzca la clave (bit a bit).

3. D

iseño

alg

orítm

ico

Page 26: 4. Diseño algorítmico.pdf

toc

Estudio de la especificación: – Esquema de pasos secuenciales a seguir (algoritmo)

i. Estado inicial ii. Si cambio es 1

– Carga paralelo de la clave – Vuelta al estado inicial

iii. Si cambio es 0 – Realizar 4 desplazamientos a la derecha (4 ciclos) – Si la clave es correcta: acierto = 1 y volver al punto i. – Si la clave es incorrecta: acierto = 0 y volver al punto iii.

Posible HW a utilizar (módulos específicos complejos) – 2 registros, uno en modo carga paralelo y otro en modo carga serie. – Un comparador

3. D

iseño

alg

orítm

ico

Page 27: 4. Diseño algorítmico.pdf

toc

Estado Inicial

Carga Paralelo Desplaza Derecha

Desplaza Derecha

Desplaza Derecha

Desplaza Derecha

Compara

Acierto = 1 Acierto = 0

cambio

iguales

reset

1 0

1 0

Cómo se transforma en un diagrama ASM

3. D

iseño

alg

orítm

ico

Page 28: 4. Diseño algorítmico.pdf

toc

Estado Inicial

Carga Paralelo Desplaza Derecha

Desplaza Derecha

Desplaza Derecha

Desplaza Derecha

Compara

Acierto = 1 Acierto = 0

cambio

iguales

reset

1 0

1 0

Cómo se transforma en un diagrama ASM

Siempre necesario

Señal externa

Señal interna

¿Podemos desplazar y

comparar a la vez?

Diseño como máquina de Moore

3. D

iseño

alg

orítm

ico

Page 29: 4. Diseño algorítmico.pdf

toc

Unidad de Control

reset

cambio

Registro Paralelo Registro Serie

Comparador iguales

P B 4

4 4

acierto

señales de control

Ruta de Datos +

Unidad de Control

3. D

iseño

alg

orítm

ico

Page 30: 4. Diseño algorítmico.pdf

toc

ASM multiplicador : sumar n veces

a = a_in; n = b_in; r = 0; while (n!=0) { r = r + a; n = n - 1; }

end <= ‘1’;

n ← b_in a ← a_in r ← ‘0’

init = ‘1’?

idle

n = 0?

no

no

S0

S1

S2

S3

r ← r + a n ← n - 1

4. D

iseño

alg

orítm

ico

en V

HDL

Page 31: 4. Diseño algorítmico.pdf

toc

entity ASM is port(reset, clk, init: in std_logic; a_in, b_in: in std_logic_vector (7 downto 0); end: out std_logic; r: out std_logic_vector (7 downto 0)); end ASM;

controller

Data_path

clk reset init

end

a_in b_in

r

control zero

4. D

iseño

alg

orítm

ico

en V

HDL

Page 32: 4. Diseño algorítmico.pdf

toc

architecture estructural of ASM is component controller port(clk, reset, init: in std_logic; zero: in std_logic; control: out std_logic_vector(4 downto 0); end: out std_logic); end component controller;

component data_path port(clk, reset: in std_logic; a_in, b_in: in std_logic_vector(7 downto 0); control: in std_logic_vector(4 downto 0); zero: out std_logic; r: out std_logic_vector(7 downto 0)); end component data_path;

signal zero: std_logic; signal control: std_logic_vector(4 downto 0);

4. D

iseño

alg

orítm

ico

en V

HDL

Page 33: 4. Diseño algorítmico.pdf

toc

a_in b_in “000…0”

-

1

+

0 0

aux_n

reg_n reg_a reg_r

aux_r

= 0?

zero

load_a load_r

mux_n mux_r

4. D

iseño

alg

orítm

ico

en V

HDL

load_n

Page 34: 4. Diseño algorítmico.pdf

toc

La máquina de control tiene 4 estados – La señal zero indica internamente cuando se ha

terminado la multiplicación

architecture behavioral of controller is type T_STATE is (S0, S1, S2, S3); signal STATE, NEXT_STATE: T_STATE;

signal control_aux: std_logic_vector(4 downto 0); alias load_a : std_logic is control_aux(0); alias load_n : std_logic is control_aux(1); alias load_r : std_logic is control_aux(2); alias mux_n : std_logic is control_aux(3); -- mux_n = ‘1’ for external input alias mux_r : std_logic is control_aux(4); -- mux_r = ‘1’ for external input

4. D

iseño

alg

orítm

ico

en V

HDL

Page 35: 4. Diseño algorítmico.pdf

toc

begin control <= control_aux; SYNC_STATE: process(clk,reset) begin if reset ='1' then STATE<=S0; elsif clk'event and clk='1' then STATE<= NEXT_STATE; end if; end process SYNC_STATE; 4.

Dise

ño a

lgor

ítmic

o en

VHD

L

end <= ‘1’;

n ← b_in a ← a_in r ← ‘0’

init = ‘1’?

idle

n = 0?

no

no

S0

S1

S2

S3

r ← r + a n ← n - 1

Page 36: 4. Diseño algorítmico.pdf

toc

4. D

iseño

alg

orítm

ico

en V

HDL

COMB: process(STATE, init, zero) begin load_a <= ‘0’; load_n <= ‘0’; load_r <= ‘0’; mux_n <= ‘0’; mux_r <= ‘0’; fin <= ‘0’; case STATE is when S0 => fin <=’1’; if (init='1') then NEXT_STATE<=S1; else NEXT_STATE<=S0; end if;

when S1 => load_a <= ‘1’; load_n <= ‘1’; load_r <= ‘1’; mux_n <= ‘1’; mux_r <= ‘1’; NEXT_STATE<=S2; when S2 => if (zero ='1') then NEXT_STATE<=S0; else NEXT_STATE<=S3; end if; …

Page 37: 4. Diseño algorítmico.pdf

toc

Declaración de componentes de la ruta de datos: architecture estructural of ruta_datos is -- 8 bit register component register_8 port (clk, reset, load: in std_logic; A: in std_logic _vector(7 downto 0); B: out std_logic _vector(7 downto 0)); end component register_8; signal control_aux: std_logic_vector(4 downto 0); alias load_a : std_logic is control_aux(0); … alias mux_r : std_logic is control_aux(4); signal reg_a, reg_n, reg_r: std_logic_vector(7 downto 0); signal aux_a, aux_n, aux_r: std_logic_vector(7 downto 0);

4. D

iseño

alg

orítm

ico

en V

HDL

Page 38: 4. Diseño algorítmico.pdf

toc

4. D

iseño

alg

orítm

ico

en V

HDL

a_in b_in “000…0”

-

1

+

0

aux_n

reg_n reg_a reg_r

aux_r

zero

load_n load_a load_r

mux_n mux_r

= 0?

Page 39: 4. Diseño algorítmico.pdf

toc

begin control_aux <= control; register_a: register_8 port map (clk, reset, load_a, aux_a, reg_a); aux_a <= a_in; register_n: register_8 port map (clk, reset, load_n, aux_n, reg_n); register_r: register_8 port map (clk, reset, load_r, aux_r, reg_r); r <= reg_r; -- la salida es el valor almacenado en reg_r

with mux_n select aux_n <= (reg_n - 1) when ‘0’, b_in when others; with mux_r select aux_r <= (reg_r + reg_a) when ‘0’, (others => ’0’) when others; zero <= ‘1’ when reg_n = 0 else ‘0’;

4. D

iseño

alg

orítm

ico

en V

HDL

Page 40: 4. Diseño algorítmico.pdf

toc

¿Podemos simplificar esta codificación obteniendo el mismo resultado HW tras el proceso de síntesis? – Sí, pero hay que ser muy cuidadosos

4. D

iseño

alg

orítm

ico

en V

HDL

Page 41: 4. Diseño algorítmico.pdf

toc

Nuevas señales para los registros antes de la definición de la arquitectura: architecture behavioral of ASM is -- Sin componentes type T_STATE is (S0, S1, S2, S3); signal T_STATE, NEXT_STATE: T_STATE; signal reg_a, reg_n, reg_r: std_logic_vector(N-1 downto 0); signal aux_a, aux_n, aux_r: std_logic_vector(N-1 downto 0); El proceso SYNC_STATE tiene la misma descripción. El antiguo process “COMB”, que codificaba la función de salida y la función de

transición de estados puede ser modificado en otros 2 process que evitan tener que instanciar componentes y su control correspondiente.

case STATE when S0 => if init =‘1’ then NEXT_STATE <= S0; else NEXT_STATE <= S1; when s1 => …

4. D

iseño

alg

orítm

ico

en V

HDL

Page 42: 4. Diseño algorítmico.pdf

toc

end <= ‘1’;

n ← b_in a ← a_in r ← ‘0’

init = ‘1’?

idle

n = 0?

no

no

S0

S1

S2

S3

r ← r + a n ← n - 1

4. D

iseño

alg

orítm

ico

en V

HDL

Este proceso codifica la actualización de los registros (componentes con comportamiento síncrono):

SYNC_REG: process(clk, reset, STATE) begin if reset = '1' then reg_a <= (others => ‘0’); reg_n <= (others => ‘0’); reg_r <= (others => ‘0’); elsif clk'event and clk = '1' then if STATE = S1 then reg_a <= aux_a; reg_n <= aux_b; reg_r <= aux_r; -- This is equivalent to set load=1 in S1 elsif STATE = S3 then reg_n <= aux_n; reg_r <= aux_r; …

Page 43: 4. Diseño algorítmico.pdf

toc

4. D

iseño

alg

orítm

ico

en V

HDL

Este proceso codifica la función de salida y los multiplexores (elementos combinacionales) ASYNC_REG: process (STATE, inicio, reg_a, reg_n, reg_r) begin end <= ‘0’; r <= (others => ‘0’); aux_a <= (others =>’0’); aux_r <= (others =>’0’); aux_n <= (others =>’0’); case STATE is when S0 => end <= ‘1’; r <= reg_r; when S1 => aux_a <= a_in; aux_n <= b_in; aux_r <= (others => ‘0’);

when S2 =>

-- STATE idle

when S3 =>

aux_n <= reg_n - 1;

aux_r <= reg_r + reg_a;

end case;

Page 44: 4. Diseño algorítmico.pdf

toc

El diseño RTL es la solución natural a un problema algorítmico. Se describe el circuito final como un conjunto

de registros y unidades funcionales. Se indica en cada ciclo qué registros y qué unidades funcionales se están utilizando. – Podríamos decir que así funciona la CPU.

En los siguientes ejemplos vamos a crear código VHDL a partir de un diseño RTL.

5. D

iseño

RTL

Page 45: 4. Diseño algorítmico.pdf

toc

+ - +

*

+

A B C D E Ciclo 0

Ciclo 1

Ciclo 2

Ciclo 3

5. D

iseño

RTL

Page 46: 4. Diseño algorítmico.pdf

toc

Implementación rápida en VHDL process (clk) begin wait until clk’event and clk = ‘1’; S1 <= A + B; R <= C – D; S2 <= E + S3; M <= S1*R; S3 <= M + S2; end process;

5. D

iseño

RTL

Page 47: 4. Diseño algorítmico.pdf

toc

La solución anterior es rápida pero no permite: – Reutilizar hardware – Siempre está realizando cálculos => gran consumo

de potencia

5. D

iseño

RTL

Page 48: 4. Diseño algorítmico.pdf

toc

+ - +

*

+

Ciclo 0

Ciclo 1

Ciclo 2

Ciclo 3

RA RB RC RD RE

RS1 RR RS2

RM

RS3

5. D

iseño

RTL

Page 49: 4. Diseño algorítmico.pdf

toc

Implementación ESTRUCTURAL en VHDL process (cuenta) begin case cuenta is when ‘0’ => load_RA<=‘1’;

load_RB<=‘1’; load_RC<=‘1’; load_RD<=‘1’; load_RE<=‘1’; load_RS3<=‘1’; load_RS1<=‘0’; load_RS2<=‘0’; load_RR<=‘0’; load_RM<=‘0’; …

end process; -- + COMPONENTES SUMADORES, RESTADOR Y MULTIPLICADOR -- + CONTADOR MÓDULO 4

5. D

iseño

RTL

Page 50: 4. Diseño algorítmico.pdf

toc

Compartición de unidades funcionales – Minimizar número de U.F. en la ruta de datos.

Compartición de registros – Minimizar número de registros en la ruta de datos.

Compartición de conexiones – Minimizar el número de conexiones en la ruta de

datos.

5. D

iseño

RTL

Page 51: 4. Diseño algorítmico.pdf

toc

+ - +

*

+

Ciclo 0

Ciclo 1

Ciclo 2

Ciclo 3

RA RB RC RD RE

RS1 RR RS2

RM

RS3

5. D

iseño

RTL

Page 52: 4. Diseño algorítmico.pdf

toc

Algoritmo – Determinar tiempo de vida de la variable.

• Conjunto de estados en los que la variable está viva.

– Agrupar variables con tiempos de vida disjuntos y asignarles un mismo registro.

• Agrupación con distintos criterios: p.e. minimizar el número de registros, …

Algoritmo del vértice izquierdo (left-edge algorithm)

5. D

iseño

RTL

Page 53: 4. Diseño algorítmico.pdf

toc

S0 S1 S2

RA X

RB X

RC X

RD X

RE X

RS1 X

RR X

RS2 X X

RM X

RS3 X

NO hacen falta 10 registros!!!

5. D

iseño

RTL

Page 54: 4. Diseño algorítmico.pdf

toc

¿Compartir RA con RS1 o con RM …? ¿Compartir RB con RS2 o con RM …? …

5. D

iseño

RTL

Page 55: 4. Diseño algorítmico.pdf

toc

Dependiendo de la asignación cambia el número de MUX en la ruta de datos. ¿Asignación óptima?

– Algoritmo basado en grafo de compatibilidad Grafo de compatibilidad

– Vértices = variables. – Arista: compatibilidad entre variables

• Aristas de incompatibilidad • Aristas prioritarias (opcional). Incluye etiqueta s/d

UFs que usan ambos nodos UFs que generan ambos nodos

5. D

iseño

RTL

Page 56: 4. Diseño algorítmico.pdf

toc

RA

RB

RC

RD

RE

RS1

RR

RM

RS2

RS3

Nota: Para simplificar el esquema no están dibujadas todas las aristas

5. D

iseño

RTL

Page 57: 4. Diseño algorítmico.pdf

toc

RA

RB

RC

RD

RE

RS1

RR

RM

RS2

RS3

5. D

iseño

RTL

Page 58: 4. Diseño algorítmico.pdf

toc

+ - +

*

+

RA/RS1 RB/RR RC RD/RM RE/RS2

RS3

5. D

iseño

RTL

Page 59: 4. Diseño algorítmico.pdf

toc

Igual que los registros (mismo algoritmo), UFs que se utilizan en ciclos diferentes se pueden reutilizar. Además:

– Agrupar UFs sencillas en UFs más complejas: UFs multifunción.

• ¿Cuándo? UF multifunción y el coste de conexión es menor que el coste de las UF sencillas.

• ¿Cómo? Algoritmo de particionamiento grafo de compatibilidad

5. D

iseño

RTL

Page 60: 4. Diseño algorítmico.pdf

toc

S0 S1 S2

Suma1 X

Suma2 X

Suma3 X

Resta1 X

Mult1 X

No hacen falta 3 sumadores

5. D

iseño

RTL

Page 61: 4. Diseño algorítmico.pdf

toc

¿Compartir Suma 3 con Suma1 o Suma 3 con Suma 2?

Suma3

Suma2

Suma1

5. D

iseño

RTL

Page 62: 4. Diseño algorítmico.pdf

toc

+ -

+ *

RA/RS1 RB/RR RC RD/RM RE/RS2

RS3

5. D

iseño

RTL

Page 63: 4. Diseño algorítmico.pdf

toc

Basado en grafo de compatibilidad: – Tabla de uso de conexiones. – Grafo de compatibilidad:

• Vértices son conexiones. • Arista:

– Incompatibles: no tienen la misma fuente pero son usadas en el mismo ciclo.

– Prioritarias: tienen una misma fuente o un mismo destino.

5. D

iseño

RTL

Page 64: 4. Diseño algorítmico.pdf

toc

Cuando estamos diseñando un sistema secuencial unos de los elementos HW más importantes son los elementos de almacenamiento: – Almacenan el estado actual del sistema (máquina de

control). – Almacenan valores intermedios (registros de datos).

El elemento de memoria más sencillo es el biestable. – Se denomina biestable porque presenta dos únicos

estados estables: • Salida 0 • Salida 1

– Sirve para almacenar un bit de información.

6. M

ódul

os d

e m

emor

ia

Page 65: 4. Diseño algorítmico.pdf

toc

Según su comportamiento lógico: – S-R – D – J-K – T

Según su comportamiento temporal:

– Latch – Latch síncrono (sensible a nivel) – Flip-flop disparado por flanco – Flip-flop maestro-esclavo

Ecuaciones Características R-S: D: J-K: T:

Q+ = S + R Q Q+ = D Q+ = J Q + K Q Q+ = T Q + T Q

S R Q+ 0 0 Q 0 1 0 1 0 1 1 1 proh.

J K Q+ 0 0 Q 0 1 0 1 0 1 1 1 Q

D Q+ 0 0 1 1

T Q+ 0 Q 1 Q

Deducidas a partir de diagramas de Karnaugh para Q(t+1) = Q+ = ƒ(Entradas, Q)

6. M

ódul

os d

e m

emor

ia

Page 66: 4. Diseño algorítmico.pdf

toc

La salida cambia cuando cambian las entradas. Ejemplo 1: S-R (con entradas activas a nivel

alto).

S R Q(t+) 0 0 Q(t) 0 1 0 1 0 1 1 1 proh.

R

S

Q

Q

6. M

ódul

os d

e m

emor

ia

Page 67: 4. Diseño algorítmico.pdf

toc

La salida cambia cuando está activa la señal de capacitación (reloj). Ejemplo: S-R con entrada de capacitación.

S

R

Q

Enable

Q

6. M

ódul

os d

e m

emor

ia

S R Q(t+) 0 0 proh. 0 1 1 1 0 0 1 1 Q(t)

Page 68: 4. Diseño algorítmico.pdf

toc

¿Cómo conseguimos que sea un biestable tipo D?

S

R

Q

Q

D

clk

clk D 0 0 0 1 1 0 1 1

6. M

ódul

os d

e m

emor

ia

Page 69: 4. Diseño algorítmico.pdf

toc

Si usamos latches debemos garantizar que: – El pulso de reloj es más corto que el retardo del latch. – La entradas se mantienen constantes durante el pulso

de reloj.

Una alternativa es usar FLIP-FLOPs: más fiables. • Disparados por flanco: la salida sólo varía durante la

transición del reloj (que es la entrada dinámica). • Maestro-esclavo.

6. M

ódul

os d

e m

emor

ia

Page 70: 4. Diseño algorítmico.pdf

toc

Se lee la entrada en un nivel y se modifica la salida en el contrario.

S

R

D

clk

S

R

Q

Q

6. M

ódul

os d

e m

emor

ia

Page 71: 4. Diseño algorítmico.pdf

toc

TIPO ¿Cuándo se muestrean las entradas? ¿Cuándo son válidas las salidas?

Latch sin reloj siempre retardo de propagación desde el cambio en la entrada

Latch sensible a nivel

reloj en alta (Tsetup y Thold a cada lado del eje de bajada)

retardo de propagación desde el cambio en la entrada

Flipflop flanco de subida

transición de reloj de baja a alta (Tsetup y Thold a cada lado del eje de subida)

retardo de propagación desde flanco de subida del reloj

Flipflop flanco de bajada

transición de reloj de alta a baja (Tsetup y Thold a cada lado del eje de bajada)

retardo de propagación desde flanco de bajada del reloj

Flipflop Maestro-esclavo

transición de reloj de alta a baja (Tsetup y Thold a cada lado del eje de bajada)

retardo de propagación desde flanco de bajada del reloj

6. M

ódul

os d

e m

emor

ia

Page 72: 4. Diseño algorítmico.pdf

toc

Biestable de n-bits

≡6. M

ódul

os d

e m

emor

ia

Page 73: 4. Diseño algorítmico.pdf

toc

Tipos: – Según temporización

• Disparado por nivel

• Disparado por flanco

– Según funcionalidad

• Carga paralelo/Salida paralela-PIPO • Carga serie/Salida paralela-SIPO • Carga paralelo/Salida serie-PISO • Carga serie/Salida serie-SISO

alto bajo

subida bajada

6. M

ódul

os d

e m

emor

ia

Page 74: 4. Diseño algorítmico.pdf

toc

Tipos: – PIPO. Visto con anterioridad – SIPO

6. M

ódul

os d

e m

emor

ia

Page 75: 4. Diseño algorítmico.pdf

toc

Tipos: – PISO

– SISO

6. M

ódul

os d

e m

emor

ia

Page 76: 4. Diseño algorítmico.pdf

toc

entity ff is port (clk: in std_logic; rst: in std_logic; d: in std_logic; q: out std_logic); end ff; architecture rtl of ff is begin p_ff: process(clk, rst) begin if rst=‘1’ then d<=‘0’; elsif (clk’event and clk=‘1’) then q<=d; end if; end process p_ff; end ff;

6. M

ódul

os d

e m

emor

ia

Page 77: 4. Diseño algorítmico.pdf

toc

entity registro is port (clk: in std_logic; rst: in std_logic; a: in std_logic_vector(7 downto 0); b: out std_logic_vector(7 downto 0)); end registro; architecture struct of registro is

component ff port(clk, reset, d: in std_logic; q: out std_logic); end component ff; begin gen_ff: for i in 0 to 7 generate u: ff port map(clk => clk, rst => rst, d => a(i), q => b(i)); end generate gen_ff; end estructural;

architecture rtl of registro is begin p_reg: process(rst, clk) begin if rst=‘1’ then b <= (others => ‘0’); elsif rising_edge(clk) then b <= a; end if; end process p_reg; end rtl;

6. M

ódul

os d

e m

emor

ia

Page 78: 4. Diseño algorítmico.pdf

toc

¿De qué tenemos que preocuparnos? – Una vez que hemos obtenido un posible circuito

(o al mismo tiempo), debemos comprobar que el circuito funciona correctamente y es eficiente:

• Cuánto tiempo tarda en obtener el resultado => X ciclos • Cuánto “tiempo” es un ciclo • ¿Todas las señales de control, de datos y el reloj llegan

correctamente en tiempo a su destino ?

7. Te

mpo

rizac

ión

sist.

secu

enci

ales

Page 79: 4. Diseño algorítmico.pdf

toc

El reloj determina cuándo se actualiza el estado de los elementos de memoria del sistema.

La hipótesis de funcionamiento síncrono obliga a que la diferencia en tiempo entre dos flancos consecutivos (positivos o negativos los dos) sea superior al tiempo necesario para que los valores de las entradas de los registros sean estables.

7. Te

mpo

rizac

ión

sist.

secu

enci

ales

Page 80: 4. Diseño algorítmico.pdf

toc

– Tiempo de set-up (establecimiento) • Tiempo mínimo que la entrada debe permanecer estable ANTES del

suceso del reloj

– Tiempo de hold (mantenimiento) • Tiempo mínimo que la entrada debe permanecer estable DESPUÉS del

suceso del reloj

– Tiempo propagación registro (clk-2-Q) • Tiempo que tarda en propagarse el dato desde la entradas hasta la

salida del registro cuando ocurre el flanco activo de clk.

– Tiempo de propagación combinacional • Tiempo desde que cambian las entradas del circuito combinacional

hasta que se produce un cambio en las salidas. Depende del camino. Se usa el valor del camino más lento, denominado camino crítico. 7.

Tem

poriz

ació

n sis

t. se

cuen

cial

es

Page 81: 4. Diseño algorítmico.pdf

toc

7. Te

mpo

rizac

ión

sist.

secu

enci

ales

Page 82: 4. Diseño algorítmico.pdf

toc

7. Te

mpo

rizac

ión

sist.

secu

enci

ales

Page 83: 4. Diseño algorítmico.pdf

toc

Tomando el clock skew y el clock jitter: Margen negativo

7. Te

mpo

rizac

ión

sist.

secu

enci

ales

Page 84: 4. Diseño algorítmico.pdf

toc

7. Te

mpo

rizac

ión

sist.

secu

enci

ales

Page 85: 4. Diseño algorítmico.pdf

toc

Indecisión prolongada en el comportamiento lógico del biestable al intentar almacenar uno de sus estados estables.

Si existe violación del tiempo de setup o hold. Mientras biestable permanece en metaestabilidad sus señales de salida

(𝑞𝑞, 𝑞𝑞�) están indefinidas a nivel lógico. Duración indeterminada. Probabilidad de permanecer en estado

metaestable sigue una curva decaimiento exponencial controlada por una constante de tiempo, τ (coeficiente de resolución)

7. Te

mpo

rizac

ión

sist.

secu

enci

ales

Page 86: 4. Diseño algorítmico.pdf

toc

Da lugar a errores funcionales ya que las señales metaestables no están correctamente definidas.

7. Te

mpo

rizac

ión

sist.

secu

enci

ales

Page 87: 4. Diseño algorítmico.pdf

toc

Clock skew: sesgo del reloj Este es un fenómeno que ocurre en los circuitos

secuenciales cuando el reloj no llega al mismo tiempo a todos los componentes de memoria. – Puede deberse a la longitud del cable, variaciones de

temperatura, capacidades parásitas, imperfecciones del silicio,…

Cuando el tiempo de ciclo es pequeño este problema se convierte en uno de los más importantes a la hora de diseñar el circuito.

7. T

empo

rizac

ión

sist.

secu

enci

ales

Page 88: 4. Diseño algorítmico.pdf

toc

Hay dos tipos de clock skew: – Positive skew: el registro que trasmite recibe el

reloj antes que el registro que recibe. – Negative skew: el registro que trasmite recibe el

reloj después que el registro que recibe.

7. Te

mpo

rizac

ión

sist.

secu

enci

ales

Page 89: 4. Diseño algorítmico.pdf

toc

Tiempos – El reloj llega al registroA en 10ns. – El reloj llega al registroB en 15ns. – ¿Cuándo sería un problema?

reg

istro

A

reg

istro

B

Lógica combinacional

7. Te

mpo

rizac

ión

sist.

secu

enci

ales

Page 90: 4. Diseño algorítmico.pdf

toc

El flanco de subida ocurrió a los 405 ns Los primeros biestables empiezan a modificar su valor después de los 414 ns Retardo total: 11 ns Diferencia entre biestables: 2ns 7.

Tem

poriz

ació

n sis

t. se

cuen

cial

es

Page 91: 4. Diseño algorítmico.pdf

toc

Jitter: modificación no deseada en la periodicidad del reloj. En otras palabras, es la variación de los flancos de reloj respecto de su posición ideal en el tiempo.

7. Te

mpo

rizac

ión

sist.

secu

enci

ales

Page 92: 4. Diseño algorítmico.pdf

toc

Origen: muy variado. – Variaciones en la fabricación de los osciladores – Ruido en la alimentación de los PLLs. – …

Se especifica de tres formas: – Jitter absoluto: diferencia entre la posición real del flanco de

reloj y su posición ideal. – Jitter periódico: diferencia entre periodo real de reloj y el

periodo ideal (en realidad, el periodo medio). Es el más importante a efectos de STA.

– Jitter ciclo-a-ciclo: diferencia en la duración de dos periodos de reloj adyacentes.

7. Te

mpo

rizac

ión

sist.

secu

enci

ales

Page 93: 4. Diseño algorítmico.pdf

toc

Es necesario tenerlo en cuenta en el análisis temporal del circuito porque puede acortar la duración del ciclo de reloj. Especificado como rms o valor pico-a-pico

– Se mide la duración media del ciclo sobre una muestra y se obtiene su desviación estándar (rms).

7. Te

mpo

rizac

ión

sist.

secu

enci

ales

Page 94: 4. Diseño algorítmico.pdf

toc

¿Funcionaría a una frecuencia de reloj de 1 GHz? Clock skew: 110 ps Clock jitter: 20 ps Análisis en worst-case fast: -40 C, 1.32V, proceso rápido

7. Te

mpo

rizac

ión

sist.

secu

enci

ales

Page 95: 4. Diseño algorítmico.pdf

toc

7. Te

mpo

rizac

ión

sist.

secu

enci

ales

Page 96: 4. Diseño algorítmico.pdf

toc

7. Te

mpo

rizac

ión

sist.

secu

enci

ales

Page 97: 4. Diseño algorítmico.pdf

toc

Dividir un circuito en etapas usando FF. Las salidas de FFs de una etapa proporciona las entradas de la siguiente etapa.

Todas las etapas operan concurrentemente.

8. S

egm

enta

ción

Page 98: 4. Diseño algorítmico.pdf

toc

Tiempo de ciclo

jitterskewsetupcombqckciclo tttttt ++++> − 2

8. S

egm

enta

ción

Page 99: 4. Diseño algorítmico.pdf

toc

Latencia (Latency): tiempo para obtener un nuevo resultado Intervalo de inicialización (Throughput): tasa de nuevo datos

por unidad de tiempo.

ciclo

ciclo

tT

tnL1

=

⋅=

8. S

egm

enta

ción

Page 100: 4. Diseño algorítmico.pdf

toc

tsetup = 12 ps tck-q= 70 ps

8. S

egm

enta

ción

Page 101: 4. Diseño algorítmico.pdf

toc

¡Es necesario!

Ojo: posible violación hold

8. S

egm

enta

ción