modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de...

28
1 Diseño Automático de Sistemas Diseño Automático de Sistemas tema 2. Especificación de nivel lógico de sistemas tema 2. Especificación de nivel lógico de sistemas HW HW José Manuel José Manuel Mendías Mendías Cuadros Cuadros Dpto. Arquitectura de Computadores y Automática Dpto. Arquitectura de Computadores y Automática Universidad Complutense de Madrid Universidad Complutense de Madrid 2 diseño automático de sistemas diseño automático de sistemas © J.M. Mendías, 2001 modelo de diseño modelo de diseño Modelo de sistema de nivel lógico: Está formado por una red de subsistemas puramente combinacionales de cualquier complejidad o secuenciales síncronos elementales (biestables), con un número pequeño de entradas, salidas y estados. No tiene realimentaciones combinacionales No existen caminos cerrados que únicamente atraviese elementos combinacionales. La funcionalidad de cada subsistema combinacional queda descrita mediante funciones o expresiones de conmutación. La funcionalidad del sistema queda descrita mediante tablas o diagramas de estado. Nos centraremos en sistemas de nivel lógico implementados en un único dominio de reloj, con temporización síncrona por flanco. Existe un único reloj de periodo fijo común a todos los biestables en cuyas transiciones cambia el estado el sistema. El sistema alcanza su estado inicial mediante un reset global. El sistema se implementa con una única tecnología y estilo de diseño, que determinan: Características del interfaz: sistema lógico, sistema eléctrico, márgenes de ruido, etc... Características de las componentes elementales: funcionalidad, rendimiento, factor de carga de entrada, conectividad de salida. Rango de variación de parámetros. Supondremos entornos de funcionamiento síncronos, o asíncronos “suficientemente lentos”. Se diseñará usando técnicas de optimización combinacional y de minimización y codificación de estados.

Transcript of modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de...

Page 1: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

1

Diseño Automático de SistemasDiseño Automático de Sistemas

tema 2. Especificación de nivel lógico de sistemas tema 2. Especificación de nivel lógico de sistemas HWHW

José Manuel José Manuel MendíasMendías CuadrosCuadrosDpto. Arquitectura de Computadores y AutomáticaDpto. Arquitectura de Computadores y Automática

Universidad Complutense de MadridUniversidad Complutense de Madrid

2

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

modelo de diseñomodelo de diseño⌦ Modelo de sistema de nivel lógico:

� Está formado por una red de subsistemas puramente combinacionales de cualquier complejidad o secuenciales síncronos elementales (biestables), con un número pequeño de entradas, salidas y estados.

� No tiene realimentaciones combinacionales� No existen caminos cerrados que únicamente atraviese elementos combinacionales.

� La funcionalidad de cada subsistema combinacional queda descrita mediante funciones o expresiones de conmutación.

� La funcionalidad del sistema queda descrita mediante tablas o diagramas de estado.� Nos centraremos en sistemas de nivel lógico implementados en un único dominio de reloj,

con temporización síncrona por flanco.� Existe un único reloj de periodo fijo común a todos los biestables en cuyas transiciones

cambia el estado el sistema.� El sistema alcanza su estado inicial mediante un reset global.� El sistema se implementa con una única tecnología y estilo de diseño, que determinan:

� Características del interfaz: sistema lógico, sistema eléctrico, márgenes de ruido, etc...� Características de las componentes elementales: funcionalidad, rendimiento, factor de

carga de entrada, conectividad de salida.� Rango de variación de parámetros.

� Supondremos entornos de funcionamiento síncronos, o asíncronos “suficientemente lentos”.� Se diseñará usando técnicas de optimización combinacional y de minimización y codificación

de estados.

Page 2: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

3

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

caracterización temporal (i)caracterización temporal (i)

⌦ El tiempo de transición de una señal se mide desde que la señal ha completado el 10% de la transición hasta que ha completado el 90%� tiempo de subida (tr) y tiempo de bajada (tf).

⌦ El tiempo de retardo entre dos transiciones se mide desde que se ha efectuado el 50% de la primera transición hasta el 50% de la segunda� tiempo de retardo (td), anchura de pulso alta (twh) , anchura de pulso en baja (twl)

tiempos de transición y retardo

trA

90%50%

10%A

50%

tfA

tdAB

twA

B

4

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

caracterización temporal (ii)caracterización temporal (ii)

⌦ El tiempo de ciclo o periodo de una señal periódica (de grado 1) es el retardo entre dos transiciones consecutivas del mismo tipo.� La fracción de tiempo de ciclo en que una señal está en alta se llama factor de trabajo.

⌦ En una señal periódica aparecen desviaciones aleatorias entre un periodo particular y el periodo medio, el retardo entre una transición esperada y una efectuada se denomina jitter

⌦ Dos señales con el mismo periodo se dicen que están sincronizadas, el retardo medio entre dos señales sincronizadas se denomina skew o desfase.

tjitter

A

tcyA

twhAtwhA

tcyA

B

tiempo de ciclo, skew y jitter

tskew

Page 3: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

5

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

caracterización temporal (iii)caracterización temporal (iii)

⌦ Lógica combinacional es aquella tal que la función que calcula depende solamente de los valores actuales de sus entradas.� una vez alcanzado su estado estacionario, no conserva memoria de los valores previos de

las entradas.⌦ Caracterización temporal de un sistema combinacional debe tener en cuenta:

� Las salidas hacen transiciones en respuesta a transiciones de las entradas.� Podemos considerar que nunca dos entradas hacen una transición simultánea.� La transición de una única entrada puede provocar múltiples transiciones en una o varias

salidas.� El retardo y tipo de las transiciones de salida depende del valor de todas las entradas y no

sólo de la entrada que hace la transición. � El retardo de una transición de salida depende de su polaridad

⌦ En todo sistema combinacional se distinguen dos regímenes de funcionamiento tras el cambio de valor de una entrada.� Transitorio, durante el cual las salidas pueden cambiar de valor. Durante este periodo

(también llamado periodo de incertidumbre) las salidas pueden no tener un valor funcionalmente correcto y efectuar varias transiciones llamadas glitches.

� Permanente, durante el cual las salidas tiene un valor estable funcionalmente correcto.� Dado que la duración de ambos regímenes depende del valor de las entradas y de las

condiciones del entorno, a nivel lógico sólo nos interesa la duración máxima del transitorio.

lógica combinacional

6

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

caracterización temporal (iv)caracterización temporal (iv)⌦ El retardo de propagación mide el tiempo que tarda una salida j en hacer la última transición

en respuesta a una transición de la entrada i.� tdij(s) - retardo de propagación desde una entrada a una salida para el patrón de entradas s.� tdij - retardo de propagación máximo desde una entrada a una salida

� máximo para cualquier patrón de entrada.� máximo de todos los caminos de propagación, luego provoca la última transición.� máximo sobre variaciones de temperatura, voltaje y proceso.

� tdhij - retardo de propagación máximo desde una entrada a una salida provocando una transición positiva.� tdlij - retardo de propagación máximo desde una entrada a una salida provocando una transición negativa.� td – retardo de propagación del sistema (retardo de propagación máximo desde cualquier entrada a

cualquier salida).⌦ El retardo de contaminación mide el tiempo que tarda una salida j en hacer la primera

transición en respuesta a una transición de la entrada i.� tcij(s) - retardo de contaminación desde una entrada a una salida para el patrón de entradas s.� tcij - retardo de contaminación mínimo desde una entrada a una salida

� mínimo para cualquier patrón de entrada.� mínimo de todos los caminos de propagación, luego provoca la primera transición.� mínimo sobre variaciones de temperatura, voltaje y proceso.

� tchij - retardo de contaminación mínimo desde una entrada a una salida provocando una transición positiva.� tclij - retardo de contaminación mínimo desde una entrada a una salida provocando una transición negativa.� tc – retardo de contaminación del sistema (retardo de contaminación mínimo desde cualquier entrada a

cualquier salida)

Page 4: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

7

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

caracterización temporal (v)caracterización temporal (v)⌦ Dado que caracterización temporal de un sistema combinacinonal puede ser:

� Estática: solamente tiene en cuenta la topología del sistema y los retardos máximos y mínimos de las componentes.� Requiere análisis de caminos y cálculos aritméticos.� ej: el retardo estático de contaminación/propagación del sistema compuesto es la suma

de los correspondientes retardos de contaminación/propagación de los componentes� Dinámica: tiene en cuenta la topología del sistema, los valores que toman las señales, la

funcionalidad de las componentes, los retardos de subida/bajada de las salidas.� Requiere simulación para detectar patrones imposibles, caminos falsos, etc.

tcAB

tdAB

tdBCtcBC

tcAC

tdAC

A

B

C

LC LCA B C

la composición serie de sistemas combinacionalesaumenta la incertidumbre

periodo de incertidumbre, dependiendo de los valores concretos de la entrada, la estabilización de la salida puede hacerse efectiva en este rango

8

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

caracterización temporal (v)caracterización temporal (v)

tlA = 0.287 nstlB = 0.286 nsthA = 0.328 nsthB = 0.335 ns

AB Z ( tdh, tdl ) = ( 0.335 ns, 0.287 ns )

( tch, tcl ) = ( 0.328 ns, 0.286 ns )td = 0.335tc = 0.286

( tdh, tdl ) = ( 0.991 ns, 0.861 ns )( tch, tcl ) = ( 0.335 ns, 0.286 ns )

td = 0.991tc = 0.286

0.286 ns

0.991 nsAB

ZCD

thA = 3 • 0.328 ns = 0.984 nstlA = 3 • 0.287 ns = 0.861 nsthB = 0.335 + 2 • 0.328 ns = 0.991 nstlB = 0.286 + 2 • 0.287 ns = 0.86 nsthC = 0.335 + 0.328 ns = 0.663 nstlC = 0.286 + 0.287 ns = 0.573 nsthD = 0.335 ns = 0.335 nstlD = 0.286 ns = 0.286 ns

Obsérvese cómo td = 0.991 ≠ 3 • td(AND) = 1.005 esto se debe a que hemos hecho una caracterización dinámica

Page 5: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

9

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

caracterización temporal (vi)caracterización temporal (vi)

⌦ Los tiempos de propagación de las señales a través de elementos combinacionales:� No son nulos.� No tienen valores completamente precisos debido a variaciones del proceso de fabricación, envejecimiento

de dispositivos, temperatura, etc.⌦ Consecuencias funcionales:

� En respuesta a una transición de entrada, una salida puede hacer varias transiciones funcionalmente imprevistas (glitches) en cualquier momento de su intervalo de incertidumbre.

� Nunca se puede asegurar la simultaneidad en las transiciones de un conjunto de salidas, aunque sean provocadas por una misma transición de entrada (es decir, las líneas de una salida vectorial no conmutan simultáneamente).

⌦ Si las salidas sólo se muestrean cuando han alcanzado el régimen permanente (diseño síncrono), el efecto de los glitches casi siempre puede ignorarse, no obstante:� Si son muy frecuentes aumenta considerablemente el consumo del circuito.� Deben tenerse en cuenta cuando se comunica con sistemas asíncronos (lógicas de reset, memorias, etc.)

⌦ Los glitches aparecen cuando un circuito tiene riesgos.⌦ Se dice que un diseño tiene riesgos cuando las diferencias de retardo entre los caminos que una

señal puede seguir conducen a una inconsistencia en la interpretación de su valor.� Riesgos estáticos provocan glitches en una señal que debiera ser constante.

� típicamente se originan porque dos señales complementarias se hacen iguales durante un intervalo de tiempo corto.

� Riesgos dinámicos provocan glitches en una señal que debiera hacer una única transición.� típicamente se originan porque dos señales que debieran ser equivalentes se hacen diferentes

durante un intervalo de tiempo corto.

glitches

10

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

caracterización temporal (vii)caracterización temporal (vii)

⌦ Los glitches pueden eliminarse:� Mediante la inserción de retardos en lugares específicos (ecualización).� Mediante la inserción de lógica redundante.� Mediante la intercalación de biestables.

glitch debido a un riesgo estático glitch debido a un riesgo dinámico

x

y

z

w

0 0

1 1

yz0100

x0

1

1 0

1 0

1011

zyyxy ⋅+⋅=

Page 6: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

11

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

caracterización temporal (viii)caracterización temporal (viii)

x

y

z

w

0 0

1 1

yz0100

x0

1

1 0

1 0

1011

zxzyyxy ⋅+⋅+⋅=

12

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

caracterización temporal (ix)caracterización temporal (ix)

⌦ Lógica secuencial es aquella tal que la función que calcula depende de los valores tanto actuales como pasados de sus entradas.

⌦ Para simplificar su tratamiento, se considerará descompuesta en un conjunto de bloques de lógica combinacional y una colección de biestables.� Aunque existen varios tipos de biestables, en diseño VLSI se suelen usar tipo D.� El valor de todos los biestables en un momento dado se denomina estado del sistema.

⌦ Biestable tipo D disparado por flanco (flip-flop)� puertos: entrada de datos D, salida de datos Q, entrada de reloj CLK, y set/reset

asíncrono.� comportamiento: la salida realiza transiciones en función del valor de la entrada, pero en

respuesta a transiciones (positivas o negativas) del reloj.� Aunque la salida puede tener diferentes retardos de transición, no genera gitches.

⌦ Biestable tipo D disparado por nivel (latch)� puertos: entrada de datos D, salida de datos Q, entrada de habilitación G, y set/reset

asíncrono.� comportamiento: la salida realiza transiciones en función de transiciones de la entrada

siempre y cuando la señal de habilitación tenga un cierto valor (alto o bajo).� La salida puede tener diferentes retardos de transición, y puede propagar los gitches

presentes a su entrada si el biestable está habilitado.

lógica secuencial

Page 7: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

13

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

caracterización temporal (x)caracterización temporal (x)

D Q

clk

⌦ Las transiciones de salida vienen caracterizadas por 2 tiempos� tcCQ - retardo de contaminación - tiempo mínimo que tarda la salida en hacer una

transición en respuesta a una transición del reloj.� tdCQ - retardo de propagación - tiempo máximo que tarda la salida en hacer una transición

en respuesta a una transición del reloj.⌦ Para que un flip-flop tenga un comportamiento predecible, la transición del reloj debe producirse

durante su periodo de apertura:� ts - tiempo de setup - tiempo mínimo que debe permanecer la entrada estable antes del

flanco de reloj (puede ser diferente en función del valor de la entrada).� th - tiempo de hold - tiempo mínimo que debe permanecer la entrada estable después del

flanco de reloj (puede ser diferente en función del valor de la entrada).� ta - tiempo de apertura - tiempo mínimo que debe permanecer la entrada estable cuando

se dispara el biestable (hold + setup).

ts th

ta

D

Q

clk

x

x

tdCQ

tcCQ

Biestable tipo D disparado por flanco

14

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

⌦ Las transiciones de salida vienen caracterizadas por 2 tiempos� tcDQ, tcGQ - retardos de contaminación - tiempo mínimo que tarda la salida en hacer una

transición en respuesta a una transición de la entrada o de la habilitación respectivamente.� tdDQ, tdGQ - retardos de propagación - tiempo máximo que tarda la salida en hacer una

transición en respuesta a una transición de la entrada o de la habilitación respectivamente. ⌦ Para que un latch tenga un comportamiento predecible, los datos deben estar estables cuando

se deshabilite:� ts - tiempo de setup - tiempo mínimo que debe permanecer la entrada estable antes de la

desabilitación del dispositivo.� th - tiempo de hold - tiempo mínimo que debe permanecer la entrada estable después de

la desabilitación del dispositivo.

caracterización temporal (xi)caracterización temporal (xi)Biestable tipo D disparado por nivel

D QG

ts th

D

Q

G

x

y

zy

tcGQ tcDQ

x z

tdGQ tdDQ

Page 8: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

15

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

caracterización temporal (xii)caracterización temporal (xii)

⌦ Cuando se viola el tiempo de hold o el de setup, el biestable entra en un estado de metaestabilidad caracterizado por:� el retardo de propagación no está acotado.� el valor de salida del biestable es impredecible.

⌦ Cuando existe una transición en la entrada D muy cercana al flanco del reloj:� Durante el intervalo entre transiciones, la salida hace un cambio de voltaje proporcional a la

la anchura de dicho intervalo.� Al finalizar ambas transiciones, el voltaje inicial alcanzado se amplifica exponencialmente

Metaestabilidad

tdCQ

D

Q

clk

ta

∆t

16

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

modelo de modelo de temporizacióntemporización (i)(i)⌦ Los modelos de temporización definen cuando hay valores válidos en las señales

de un sistema.� ¿con cuantos 1 se corresponde un pulso en alta?, ¿cuándo comienza un 1 y termina otro?

⌦ El método más común para marcan los límites de los valores válidos es mediante transiciones:� Codificadas en la propia señal (codificaciones aperiódicas, ej. lógicas ternarias).� Relativas a una señal de reloj común (codificación periódica).

⌦ En un sistema digital no es el valor absoluto de los retardos lo que limita la velocidad de funcionamiento, sino la incertidumbre en la ubicación de los límites entre valores válidos.

⌦ Existen diferentes modelos de temporización:� Síncrona por flanco (edge-triggered timing)� Síncrona por nivel (level-sensitive timing)� Síncrona por nivel monofase (level-sensitive single-phase clocking)� Sincrona por nivel bifase (level-sensitive two-phase clocking)� Síncrona segmentada (pipeline clocking, wave-pipelining clocking)� Asíncrona con señalización de cuatro fases (four-phase asynchronous signaling)� Asíncrona con señalización de dos fases (dos-phase asynchronous signaling)

Page 9: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

17

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

modelo de modelo de temporizacióntemporización (ii)(ii)

⌦ Características:� Como elemento secuencial primitivo solo se permite el uso de biestables disparados por flanco de la

misma polaridad (o positiva o negativa)� No puede existir un lazo que atraviese únicamente elementos combinacionales.� Todos los biestables del sistema se conectan a un único reloj global, periódico y monofase.

⌦ Modelo de cálculo:� Los cálculos que realiza un sistema se realizan ciclo a ciclo� Las fronteras del ciclo están marcadas por las transiciones de igual polaridad en el reloj común.� Al comienzo del ciclo, el sistema hace un cambio de estado mediante la actualización simultánea de todos

los biestables.� El nuevo estado provoca transiciones en las entradas de los módulos combinacionales que a su vez

provocarán transiciones en sus salidas.� El ciclo finaliza cuando todos los sistemas combinacionales han alcanzado su régimen permanente.� Los valores permanentes a la salida de los módulos combinacionales serán utilizados para actualizar los

biestables en el ciclo siguiente.

⌦ Intuitivamente, un sistema tendrá un comportamiento correcto si:� El tiempo de ciclo del reloj es lo suficientemente largo para que todos los sistemas combinacionales

alcancen su régimen permanente. De este modo, los biestables almacenan siempre valores funcionalmente correctos.

� Las entradas de todos los biestables permanecen estables durante su periodo de apertura. De este modo se evitan problemas de metaestabilidad.

Temporización síncrona por flanco

18

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

modelo de modelo de temporizacióntemporización (iii)(iii)

⌦ Formalmente, todo camino del sistema deberá satisfacer 2 reglas de diseño:� Ligaduras de retardo máximo: determina la máxima frecuencia de reloj a la que el sistema puede

funcionar correctamente (determina el grado de calidad del diseño).� Ligaduras de retardo mínimo: determina una condición adicional necesaria para que el sistema funcione

corectamente (asegura la fiabilidad del diseño).

⌦ Estudiaremos ambas ligaduras en 3 escenarios� Sistema sin skew en el reloj (sin retardos relativos de llegada del reloj)� Sistema con skew positivo: el reloj y los datos se propagan y retrasan el mismo sentido.� Sistema con skew negativo: el reloj y los datos se propagan y retrasan en sentido contrario.

Temporización síncrona por flanco

LCLC LC

LC

de registro a puertode puerto a registro de registro a registro

de puerto a puerto

tipos de caminos enun sistema de nivel-lógico

Page 10: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

19

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

modelo de modelo de temporizacióntemporización (iv)(iv)

lcc

ffcCQ tt +1

lcd

ffdCQ tt +1

2ffst 2ff

ht

��

1ffclk

2ffclk

x

ligadura de retardo máximo:

)()()( 2121 ffs

ffdCQ

lcdCLK

ffs

lcd

ffdCQCLK tttttttt +≥−⇒++≥

ligadura de retardo mínimo:)()( 1221 ff

cCQffh

lcc

ffh

lcc

ffcCQ tttttt −≥⇒≥+ ajustables por diseño

tiempo de ciclo mínimofijado por la tecnología

(ts y tdCQ suelen ser inversas)

retardo mínimofijado por la tecnología

(si tcCQ > th no hay problema)

escenario I (sin skew)

LC

ff1 ff2lc

x

20

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

modelo de modelo de temporizacióntemporización (v)(v)

LCLC LC LCLC

lógica externa queestimula las entradas

lógica externa quees estimulada por las salidas

Aff1 ff2 ff3 ff4B C D E

)()(

)()(

)(

)()(

65

43

32

21

ffs

Hd

Gd

Fd

ffdCQCLK

ffs

Ed

Dd

ffdCQCLK

ffs

Cd

ffdCQCLK

ffs

Bd

Ad

ffdCQCLK

ttttttttttt

ttttttttt

++++≥

+++≥

++≥

+++≥

65

43

32

21

ffh

Gc

Hc

Fc

ffcCQ

ffh

Ec

Dc

ffcCQ

ffh

Cc

ffcCQ

ffh

Bc

Ac

ffcCQ

ttttttttt

ttttttt

≥+++

≥++

≥+

≥++

)()()(

)()(

)(

)()(ligaduras de retardo máximo: ligaduras de retardo mínimo:

LCLCFff5

LCff6G H

Page 11: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

21

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

modelo de modelo de temporizacióntemporización (vi)(vi)

tclk

tinput tiempo disponible

toutput

LCLCAff1 ff2B

tclk

tinput tiempo disponible

LC LCff3 ff4D E

tclk

toutputtiempo disponible

LCff2 ff3C

tclk

tiempo disponible

Aff1 ff2B C

LCLC LC

22

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

modelo de modelo de temporizacióntemporización (vii)(vii)

escenario II (con skew positivo)

LC

ff1 ff3lc2

tskew

x

ligadura de retardo máximo:

ligadura de retardo mínimo:

)()()( skewffs

ffdCQ

lcdCLKskew

ffs

lcd

ffdCQCLK tttttttttt −+≥−⇒−++≥ 2121

)()( skewffcCQ

ffh

lccskew

ffh

lcc

ffcCQ tttttttt +−≥⇒+≥+ 1221

disminuye el tiempode ciclo mínimo

)( 21 ffs

lcd

ffdCQskew tttt ++>aparecen problemas, además

si el sistema se desincroniza

� �

2ffstskewt

lcc

ffcCQ tt +1

lcd

ffdCQ tt +1

2ffht

1ffclk

2ffclk

x

Page 12: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

23

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

modelo de modelo de temporizacióntemporización (viii)(viii)

escenario III (con skew negativo)

LC

ff1 ff2lc

tskew

2ffstskewt

lcc

ffcCQ tt +1

lcd

ffdCQ tt +1

2ffht

��

1ffclk

2ffclk

x

ligadura de retardo máximo:

ligadura de retardo mínimo:

)()()( skewffs

ffdCQ

lcdCLKskew

ffs

lcd

ffdCQCLK tttttttttt ++≥−⇒+++≥ 2121

aumenta el tiempode ciclo mínimo

)()( skewffcCQ

ffh

lccskew

ffh

lcc

ffcCQ tttttttt −−≥⇒−≥+ 1221

no aparecen problemas, sin embargo si el skew esmuy grande, el sistema también se desincroniza

24

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

⌦ Cuando el skew es positivo:� puede aprovecharse para aumentar la frecuencia de funcionamiento.� el circuito puede funcionar mal independientemente a la frecuencia de funcionamiento, y en

función de las condiciones del entorno (temperatura).⌦ Cuando el skew es negativo:

� el circuito podrá funcionar correctamente pero a una frecuencia de reloj menor.⌦ En un circuito general conviven zonas con skew negativo y zonas con skew positivo,

por lo que se debe diseñar según las reglas más restrictivas de cada caso.⌦ Soluciones del skew:

� Utilizarlo en propio provecho (sólo aplicable durante la síntesis física).� Diseñar redes especiales de distribución con skew acotado (árbol en H, árbol jerárquico)� Usar circuitos no lineales de compensación (temporización de lazo cerrado)

modelo de modelo de temporizacióntemporización (ix)(ix)

LCtskew

LC

skew positivo

skew negativo

árbol en H árbol jerárquico

Page 13: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

25

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

modelo de modelo de temporizacióntemporización (x)(x)⌦ Existen algunas prácticas muy comunes cuando se diseña con chips MSI

funcionando a bajas frecuencias de reloj, que no son compatibles con el modelo de temporización presentado.

⌦ La inhibición de reloj es una técnica de simplificación funcional de circuitos secuenciales basada en la mezcla de la señal de reloj con señales de datos.� Se hace que la señal de reloj atraviese un circuito combinacional cuya salida se conecta a

las entradas de reloj algunos biestables.� El objeto del sistema combinacional es que filtrar selectivamente las transisciones del reloj� Problemas:

� La red combinacional introduce un skew adicional.� Las red combinacional puede producir gitches que provoquen cambios de estado no

previstos.� La incertidumbre de la red combinacional reduce el factor de trabajo del reloj

� Un caso extremo de lo anterior que puede conducir a la desincronización del sistema, es el remplazamiento de la señal de reloj por una señal de datos (ej. Contadores de arrastre).

1 0cargar

clk

correcto

cargarclk

incorrecto

26

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

modelo de modelo de temporizacióntemporización (xi)(xi)

φ1

φ2

LCG G

φ1 φ2

LC

LCG G LCclk

LCG G LCclk

tlc

clk

tlc

temporización síncrona por nivel

temporización síncrona por nivel monofase

temporización síncrona por nivel bifase

temporización síncrona segmentada

clk

clk

clk

Page 14: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

27

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (i)interacción con el entorno (i)⌦ Los modelos de temporización resuelven el problema de comunicación interna.⌦ Sin embargo todo sistema debe poder comunicar datos con su entorno apareciendo:

� Problemas de sincronización: el receptor debe muestrear los datos transmitidos cuando estén estables, si no es así puede entrar en estado metaestable.� Se resuelven mediante metodologías de diseño y/o insertando sincronizadores.

� Problemas de tasa de transferencia: cuando el emisor y el receptor tienen tasas de transferencia distintas:� Overrun: pérdidas de datos debidas a que el emisor es mas rápido que receptor.� Underrun: duplicaciones de datos debidas a que el emisor es mas lento que el

receptor.� Ambos casos se resuelven mediante la implantación de un protocolo.

⌦ Tipos de comunicación: según la relación temporal entre las transiciones producidas por el emisor en las señales de datos y las transiciones del reloj del receptor (que determinan cuando se muestrean dichas señales):� Síncrona: no existe desfase entre las señales de datos y el reloj (reloj y datos nunca hacen

transiciones simultáneamente).� Mesosíncrona: existe un desfase constante entre las señales de datos y reloj (reloj y datos

pueden hacer transiciones simultáneamente).� Plesiosíncrona: existe un desfase ligeramente cambiante entre las señales de datos y reloj.� Periódica: las señales de datos hacen transiciones periódicas no relacionadas con el reloj.� Asíncrona: las transiciones en las señales de datos pueden ocurrir en cualquier momento.

28

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (ii)interacción con el entorno (ii)

⌦ No existe desfase entre las señales de datos y la del reloj� Reloj y datos nunca hacen transiciones simultáneamente:

� el reloj siempre hace transiciones cuando los datos están estables.� los datos siempre cambian cuando el reloj está estable.

⌦ Escenario: emisor y receptor pertenecen al mismo dominio de reloj y el skew entre ellos es despreciable.

⌦ Debe tenerse cuidado con la incertidumbre (siempre inferior al tiempo de ciclo) en la recepción/emisión de datos provocada por las etapas de entrada/salida.� Puede provocar metaestabilidad e inconsistencia.

⌦ Soluciones:� si la incertidumbre es conocida, se puede tener en cuenta durante la fase de diseño.� si es desconocida se registran los puertos (a costa de retrasar el tiempo de respuesta).

⌦ Modo de comunicación: el receptor muestrea directamente los datos.

Comunicación síncrona

LCff1A

LCff2B

InPort

escenariode posible inconsistencia

Page 15: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

29

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (iii)interacción con el entorno (iii)

InPort

1

LC LC

syncasync

sync’async’ clk

inPortasync

sync

async’

sync’

incertidumbre en lallegada de datos

tiempo de cálculo

tiempo de cálculo

tiempo de apertura de los biestables LC

sync async

OutPortOutPort

1

clk

sync

async

tiempo de cálculo

reducción dela incertidumbre

30

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (iv)interacción con el entorno (iv)

⌦ Existe un desfase constante entre las señales de datos y el reloj.� Permanentemente, reloj y datos pueden hacer transiciones simultáneamente.

⌦ Escenario: emisor y receptor pertenecen al mismo dominio de reloj y el skew entre ellos no es despreciable.

⌦ Soluciones:� Si el desfase es conocido, se puede compensar durante la fase de diseño.� Si el desfase es desconocido (el receptor se diseña antes que el emisor, o el entorno es

variable), el receptor debe disponer de un circuito de compensación.� esta compensación se realiza una única vez porque el skew es fijo y se realiza

durante el reset del sistema.⌦ Modo de comunicación: el receptor muestrea los datos retrasados un tiempo fijo o

los muestrea directamente retrasando el reloj un tiempo fijo.

Comunicación mesosíncrona

Page 16: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

31

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (v)interacción con el entorno (v)

⌦ Existe un desfase ligeramente cambiante entre las señales de datos y el reloj.� Ocasionalmente, reloj y datos pueden hacer transiciones simultáneamente.

⌦ Escenario: emisor y receptor pertenecen a dominios de reloj diferentes con iguales frecuencias nominales de funcionamiento (que difieren levemente).

⌦ Soluciones:� Como el desfase es desconocido y variable no se puede compensar por diseño y el

receptor debe disponer de un circuito de compensación.� El método de compensación es similar al de la comunicación mesosíncrona, con la

diferencia que debe realizarse periódicamente.� Como emisor y receptor tienen diferentes tasas de transferencia, durante la sincronización

puede aparecer over/underun, por lo que deben diseñarse “conscientes” de estos periodos de sincronización para que intercalen datos nulos.

⌦ Modo de comunicación: el receptor muestrea los datos retrasados un tiempo variable o los muestrea directamente retrasando el reloj un tiempo variable.

Comunicación plesiosíncrona

32

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (vi)interacción con el entorno (vi)

⌦ Las señales de datos hacen transiciones periódicas no relacionadas con el reloj.⌦ Escenario: emisor y receptor pertenecen a dominios de reloj diferentes con

frecuencias de funcionamiento diferentes y no relacionadas.⌦ Solución

� El emisor dispone de un circuito que en base a la regularidad en la producción de datos puede predecir cuando transmisión no es segura.

� No obstante estos sistemas con complejos y bajo ciertas consideraciones es preferible tratarla como una comunicación asíncrona.

⌦ Modo de comunicación: el receptor muestrea los datos siempre y cuando la transmisión sea segura.

⌦ Observaciones:� La comunicación entre sistemas pertenecientes a diferentes dominios de reloj con

frecuencias relacionadas o derivadas de un reloj común se tratan como casos particulares de comunicación síncrona, mesosíncronas o plesiosíncrona.

Comunicación periódica

Page 17: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

33

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (vii)interacción con el entorno (vii)

⌦ Las transiciones en las señales de datos pueden ocurrir en cualquier momento.⌦ Escenario: emisor y receptor pertenecen a dominios de reloj diferentes y el emisor

no produce datos con un periodo constante, o el emisor es asíncrono.⌦ Solución

� El receptor dispone de un sincronizador que retrasa algunos ciclos de reloj las señales de datos y convierte en síncronas las transiciones asíncronas.

� Nunca existe probabilidad nula de que dicho sincronizador falle y entre en estado metaestable.

� Dicho sincronizador puede utilizarse como solución general (aunque costosa) a todos los anteriores problemas de comunicación.

⌦ Modo de comunicación: el receptor muestrea directamente los datos a la salida del sincronizador.

Comunicación asíncrona

34

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (viii)interacción con el entorno (viii)

⌦ Un sincronizador puede construirse encadenando un número suficiente de flip-flops. � El número necesario depende de las condiciones de funcionamiento del sistema.

⌦ Analicemos el caso de 2 biestables encadenados:� ff1 entra en estado metaestable si su entrada (señal x) cambia durante su tiempo de apertura� ff2 igualmente entrará en estado metaestable si su entrada (salida de ff1) cambia durante su

tiempo de apertura� pero esto solo ocurre si ff1 continúa estando estado metaestable tras un ciclo de reloj.

� Si hay más biestables en serie, este mismo argumento se repite

Sincronizador básico

clk

x

x’

xSync

x D Q QxSync

D

rst

clk

x’

fallo de sincronizaciónacierto de sincronizaciónsincronizador de 2 etapas

ff1 ff2

Page 18: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

35

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (ix)interacción con el entorno (ix)

⌦ Un estudio analítico del problema permite determinar las siguientes ecuaciones:� La probabilidad de que exista una transición en la entrada del sincronizador durante el

tiempo de apertura del primer biestable es:

� La probabilidad que una transición en la entrada del sincronizador ocurrida durante el tiempo de apertura del primer biestable mantenga a este en estado metaestable durante un cierto tiempo de espera es:

� Dado que en toda transición de la entrada puede producirse un fallo, la frecuencia de fallos del sincronizador (probabilidad de que el segundo biestable entre en estado metaestable debido a que el primer biestable no ha salido de él) es:

Análisis del sincronizador básico

CLKaCLK

aa ft

ttp ⋅==

ta : tiempo de apertura del biestabletCLK : periodo del reloj de muestreofCLK : frecuencia del reloj de muestreo

s

wt

CLKafallo eftp τ−

⋅⋅=τs : tiempo de regeneracióntw : tiempo de espera

s

wt

CLKaxfallo eftff τ−

⋅⋅⋅= fx : frecuencia de conmutación de la entrada

fCLK = 100 MHz = 108 s-1⇒ tw (un ciclo) = 10-8 s

fx = 1 MHz = 106 s-1

ta = 0.2 ns = 2·10-10 sτs = 0.2 ns = 2·10-10 s

pfallo= 3.85·10-24 ffallo = 3.85·10-18 Hztiempo medio entre fallos = 8,212,836,124 añosedad del homínidos = 10,000,000 años edad de la tierra = 4,500,000,000 años

36

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (x)interacción con el entorno (x)

⌦ Los modelos de temporización establecen implícitamente canales de comunicación continuos y no selectivos entre las componentes de un sistema.� En todos los ciclos, todos los subsistemas se comunican con todos sus vecinos

transmitiendo nuevos valores a través de todas las señales.⌦ Los modos de comunicación establecen mecanismos para que existan canales

análogos entre diferentes sistemas.� En todos los ciclos, el emisor transmite nuevos valores a todos los receptores conectados.

⌦ Los protocolos deben definirse cuando los modelos de temporización y los modos de comunicación no son suficientes, es decir, cuando:� Se desea implantar un canal de comunicación no continuo.� Se desea implantar un canal de comunicación bidireccional.� Se desea implantar un canal de comunicación selectivo.� Se desea implantar un canal de comunicación multiplexado.� Se desea comunicar sistemas con las tasas de transferencia diferentes.

⌦ Los protocolos resuelven:� Problemas de direccionamiento (identificación).� Problemas de arbitraje.� Problemas de sincronización de transferencias.

Protocolos

Page 19: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

37

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (xi)interacción con el entorno (xi)

⌦ Elementos implicados en una transferencia:� Emisor (envía los datos) y receptor (recibe los datos).� Master (inicia la transferencia) y slave (obedece al master).

⌦ Tipos básicos de transferencia:� Escritura: � Lectura:

⌦ Métodos de sincronización de transferencia:� Con señalización por flanco (tipo síncrono): las transiciones de una señal de control (no

necesariamente periódica) indican la validez de los datos.� Polaridad de la transición.� Tiempos de establecimiento, de mantenimiento y de acceso de datos.� Variaciones: con o sin reloj explícito.

� Con señalización por nivel (tipo strobe): una señal de control indica por nivel la validez de los datos.� Polaridad y anchura del pulso de control.� Tiempos de establecimiento, de mantenimiento y de acceso de datos.� Variaciones: con o sin espera, simple o ráfaga.

� Tipo handshake: emisor y receptor acuerdan mediante transiciones en dos señales de control el inicio y el final de la transferencia.� Variaciones: simple o doble, con o sin timeout

SlaveMaster DATOSlave MasterDATO

Protocolos

38

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (xii)interacción con el entorno (xii)

emisor -m

aster

receptor –slave

rdy

data rdy

clk

data

rdy*

procesadata

esperardyld

slave

escriberdy, dump

generadata

master

receptormuestrea data

pin

pin

lddump

data

Protocolo de escritura tipo strobe

Page 20: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

39

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (xiii)interacción con el entorno (xiii)

tc

escriberdy, dump, ce

generadata

tc*

rdy

clk

data

clk

emisor -m

aster

receptor –slave

rdy

data

rdy*

generadata

esperasubida

esperabajada

rdyld

rdy*

rdy

slavemaster

Protocolo de escritura tipo strobe

40

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (xiv)interacción con el entorno (xiv)

dclk

clk

data

clk

emisor -m

aster

receptor –slave

(con sincronizador)

dclk

data

tc*

solicitadump, ce

escribedump, ce

procesadata

pulsodump, dclk

tc*

tc

tc

dclk*

procesadata

esperadclkld

slavemaster

Protocolo de escritura tipo síncrono

Page 21: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

41

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (xv)interacción con el entorno (xv)

receptor -master

emisor -slave

rqt

data rqt

clk

data

receptormuestrea data

leerqt, ld

procesadata

rqt*

generadata

esperarqt

dump

Protocolo de lectura tipo strobe

slave (tipo Mealy)master

42

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (xvi)interacción con el entorno (xvi)

solicitarqt

esperarqt, ce

procesadata

tc*

tcld

rdy*

generadata

esperasubida

esperabajadadump

rdy*

rdy

rqt

clk

data

clk

receptor -master

emisor –

slave(con sincronizador)

rqt

data

Protocolo de lectura tipo strobe

rdyslavemaster

Page 22: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

43

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (xvii)interacción con el entorno (xvii)

receptor -master

emisor -slave

rqt

data rqt

clk

data

solicitarqt

leerqt, ld

procesadata

rqt*

generadata

espera

escribedump

slave (tipo Moore)master

Protocolo de lectura tipo strobe

44

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (xviii)interacción con el entorno (xviii)

emisor -m

aster

receptor -slave

rdy

data

wait

rdy

clk

wait

data

escriberdy, dump

generadata

master

wait

wait*

rdy*

procesadata

esperardy · disp

ld

slave

rdy · disp*wait

Protocolo de escritura tipo strobe con espera

Page 23: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

45

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (xix)interacción con el entorno (xix)

receptor -master

emisor -slave

rqt

data

wait

rqt

clk

wait

data

leerqt

procesadata

wait

wait*ld

rqt*

generadata

espera

rqt · disp*wait

rqt · dispdump

Protocolo de lectura tipo strobe con espera

master slave

46

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (xx)interacción con el entorno (xx)

emisor -m

aster

receptor -slave

rqt

data

ack

rqt

clk

ack

data

procesadata

esperasubida

esperabajada

ack

rqt*

rqt

rqtld

rqt*

slave

Protocolo de escritura tipo handshake doble

esperabajada

escriberqt, dump

generadata

master

ack*ack

ack

ack*

Page 24: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

47

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (xxi)interacción con el entorno (xxi)Protocolo de lectura tipo handshake doble

receptor -master

emisor -slave

rqt

ack

data

rqt

clk

ack

data

generadata

esperasubida

esperabajada

ack, dump

rqt*

rqt

rqt

esperabajada

solicitarqt

procesadata

master

ack*

ack

ack*

ackld

rqt*

slave

48

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

interacción con el entorno (xxii)interacción con el entorno (xxii)

pin

LC

pin

LC

D

pin

LC

LC

pin

LC

D

LC

pin

LC

LC

LC

pin

LC

LC

pin

LC

pin

LC

D

pin

LC

LC

de salida

de entrada

de entrada/salida

Puertos

Page 25: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

49

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

máquinas de estado (i)máquinas de estado (i)

⌦ Según el modelo de Huffman, cualquier sistema secuencial puede modelarse como una máquina de estados formada por 2 únicos elementos:� Un único registro de estado (que agrupa todos los elementos de memoria primitivos).� Una red combinacional que realiza los cálculos de las salidas y del siguiente estado.

⌦ Existen diferentes variaciones de dicho modelo que permiten simplificar la tarea de especificación de sistemas secuenciales. Estas variaciones se clasifican:� Según la dependencia de las salidas respecto de las entradas:

� Modelo de Moore: las salidas del sistema son función únicamente del estado.� Modelo de Mealy: las salidas del sistema son función del estado y de las entradas.� Modelo Mixto: algunas salidas son función únicamente del estado (salidas tipo Moore),

y otras lo son del estado y de las entradas (salidas tipo Mealy).� Según el método de almacenamiento del estado:

� Modelo de estado único: el estado del sistema se almacena en un único registro.� Modelo de estado y flags: el estado “principal” del sistema se almacena en el registro

de estado, pero existe un registro de flags (activados o desactivados según el estado principal) que “matizan” el comportamiento del sistema.

� Según el tratamiento de los puertos:� Modelo de puertos directos: los puertos están conectados directamente a la lógica del

sistema.� Modelo con puertos registrados: los puertos están aislados de la lógica del sistema a

través de biestables.

50

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

máquinas de estado (ii)máquinas de estado (ii)

⌦ Las salidas del sistema son función únicamente del estado.� Las salidas nunca cambian en el mismo ciclo que las entradas, sino en el siguiente.� Dependencia síncrona de las salidas respecto de las entradas.

⌦ Estructuralmente está formado por los siguientes elementos:� Un único registro de estado formado por una serie de biestables en paralelo.� Dos redes combinacionales para:

� calcular el estado siguiente en función del estado actual y de las entradas.� calcular las salidas en función del estado actual.

Modelo de Moore

⌦ Las salidas del sistema son función del estado y de las entradas� Las salidas pueden cambiar en el mismo ciclo que las entradas (siempre y cuando el

retardo sea corto).� Dependencia asíncrona de las salidas respecto de las entradas.

⌦ Estructuralmente está formado por los siguientes elementos:� Un único registro de estado formado por una serie de biestables en paralelo.� Dos redes combinacionales para:

� calcular el estado siguiente en función del estado actual y de las entradas.� calcular las salidas en función del estado actual y de las entradas.

Modelo de Mealy

Page 26: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

51

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

máquinas de estado (iii)máquinas de estado (iii)

⌦ Algunas salidas son función únicamente del estado (salidas tipo Moore), y otras lo son del estado y de las entradas (salidas tipo Mealy).

⌦ Estructuralmente está formado por los siguientes elementos:� Un único registro de estado formado por una serie de biestables en paralelo.� Tres redes combinacinales:

� para calcular el estado siguiente en función del estado actual y de las entradas.� para calcular las salidas tipo Moore en función del estado actual.� para calcular las salidas tipo Mealy en función del estado actual y de las entradas.

Modelo mixto

LCLC

LClógica de generacióndel estado siguiente

lógica de generacióndel salidas tipo Moore

lógica de generacióndel salidas tipo Mealy

registro de estado

52

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

máquinas de estado (iv)máquinas de estado (iv)

⌦ El estado “principal” del sistema se almacena en el registro de estado, pero existe un registro de flags (activados o desactivados según el estado principal) que “matiza” el comportamiento del sistema.� Los flags guardan información de estado del sistema que de otra manera sería necesaria

guardar explicitamente mediante diferentes ramas del diagrama de estados.� Reducen el número de estados principales� Facilitan la tarea del diseñador

� Desde el punto de vista de la máquina principal los flags se tratan como entradas y salidas.

Modelo de estado y flags

LC

LCLCLC

Page 27: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

53

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

máquinas de estado (v)máquinas de estado (v)

⌦ Los puertos están aislados de la lógica del sistema a través de biestables.� Dependiendo de que se registren solamente entradas, solamente salidas o ambas,

retrasarán 1 ó 2 ciclos la respuesta del sistema. ⌦ Cuando se registran puertos de entrada:

� Permiten que la lógica de entrada aproveche el ciclo completo.� Evita inconsistencias en la lectura de entradas con alta incertidumbre.

⌦ Cuando se registran puertos de entrada:� Permiten que la lógica de salida aproveche el ciclo completo.� Genera salidas simultáneas, de baja incertidumbre y libres de gitches.

Modelo con puertos registrados

LCLC

LC

54

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

⌦ Para especificar un sistema secuencial complejo puede ser útil descomponerlo en varias máquinas de estado.

⌦ Cuando se componen varias máquinas de estado:� Asegurar que en todo lazo existe al menos una máquina de Moore.� Para comunicarse deben utilizar un protocolo.� Pueden sincronizarse:

� mediante inicialización� mediante handshake

máquinas de estado (vi)máquinas de estado (vi)Composición de máquinas de estado

FSM

-1

FSM

-2

rdy1

rdy2

procesa

esperardy2

rdy1*

sync

procesa

esperardy1

rdy2*

sync

Page 28: modelo de diseño - Fdi Ucm · 2015. 3. 9. · bloques de lógica combinacional y una colección de biestables. Aunque existen varios tipos de biestables, en diseño VLSI se suelen

55

diseño automático de sistemasdiseño automático de sistemas

©J.

M. M

endí

as, 2

001

inicialización de sistemas secuencialesinicialización de sistemas secuenciales⌦ El estado inicial de un sistema secuencial es desconocido.

� el estado inicial de los biestables es desconocido.� es necesario inicializar simultáneamente todos los biestables para poder llevar al sistema a

un estado a partir del cual pueda tener un comportamiento predecible.⌦ Existen dos tipos de inicializaciones:

� Síncrona: el estado inicial se alcanza como se alcanza a cualquier otro estado:� se usa un mecanismo síncrono que se hace explícito en la especificación.� la señal de inicialización se considera como una señal de control de carga.� el valor inicial se propaga como se propagan los datos, por lo que una vez elegido debe

diseñarse el canal de distribución.� puede ser usada para inicializaciones parciales.� no resuelve el problema de inicialización de sistemas secuenciales.

� Asíncrona: el estado inicial se alcanza usando un mecanismo específico.� el mecanismo es ajeno al modelo de temporización y transparente a la especificación.� el valor inicial está “prefabicado” en los propios elementos secuenciales, por lo que una

vez elegido se seleccionan los biestables adecuados.� la señal de inicialización es una señal especial (como lo es la de reloj).� debe ser usada para inicialización global� resuelve el problema de inicialización de sistemas secuenciales.

⌦ Errores comunes:� Confundir ambos tipos de inicializaciones.� Mezclar señal de inicialización asíncrona con señales de datos.