tema2impre_2
DESCRIPTION
tema 2TRANSCRIPT
-
3. Diagramas de mquinas de estados algortmicas (ASM)
Diagrama ASM: Forma grfica para representar un FSMD.
Totalmente equivalente a tabla estado-accin.
Constituido por bloques ASM.
Bloque ASM fila en tabla estado-accin.
Diseo a nivel de transferencia de registros
2002 - A.D. Urrestarazu16
-
Asignacin incondicionalde variables y salidas
Cdigo del estado
Nombre del estado
Condicin01
Asignacin condicional de variables y salidas
Caja de estado
Caja de decisin
Caja de condicin (accin condicional)
S
mbolos
01
01
Bloque ASM
3. Diagramas ASM Diseo a nivel de transferencia de registros
2002 - A.D. Urrestarazu17
-
Diagrama ASM
Uno o ms bloques ASM conectados de forma que:
cada salida de un bloque est conectada a
una, y slo una, caja de estado.
Un diagrama ASM describe a un FSMD si:
1.- (estado actual y conjunto de condiciones) hay un solo estado siguiente.
2.- Todo camino definido por la red de cajas de
decisin conduce a otro estado.
3. Diagramas ASM Diseo a nivel de transferencia de registros
2002 - A.D. Urrestarazu18
-
Diagramas ASM que no describen un FSMD
0 1 0 1Cond1 Cond2
s1
s2 s3
s1
0 1Cond1
0 1Cond2
s2 s3
3. Diagramas ASM Diseo a nivel de transferencia de registros
2002 - A.D. Urrestarazu19
-
3. Diagramas ASM Diagrama ASM para el contador de unos
Contador := Contador + Temp
s5
Dato:=Entrada
s1
Contador = 0
s2
Mscara := 1
s3
Temp := Dato AND Mscara
s4
Dato := Dato >>1
s6
Final := 1Salida := Contador
s7
Dato0
Inicio
s0
10
0 1
Diseo a nivel de transferencia de registros
2002 - A.D. Urrestarazu20
-
5. Optimizacin en tiempo
mayor retardo registro-registro
Corresponde a la unidad funcional ms lenta
Las dems slo estarn ocupadas parte del ciclo
Ciclo reloj
En caminos de datos tpicos:
Diseo a nivel de transferencia de registros
2002 - A.D. Urrestarazu21
-
5. Optimizacin en tiempo Encadenamiento
La nueva unidad funcional calcula asignaciones
que implican dos o ms operadores
En ocasiones,
conectar en serie dos o ms unidades funcionales
Siempre que: retardo total ciclo reloj
Encadenar
Diseo a nivel de transferencia de registros
2002 - A.D. Urrestarazu22
-
5. Optimizacin en tiempo Multiciclo
Si una unidad funcional es bastante lenta,
en vez de ajustar el ciclo de reloj a esta unidad
MulticicloEmplear ms de un ciclo para que genere su resultado
Diseo a nivel de transferencia de registros
2002 - A.D. Urrestarazu23
-
5. Optimizacin en tiempo Ejemplo. Calculador de hipotenusa
a2 + b2 max ((0.875 a + 0.5 b), a)
Sabiendo que X >> n = X 2-n:
(0.875 a + 0.5 b) = (1 - 0.125) a + 0.5 b = a (a>>3) + (b>>1)
Repetir Si Inicio entonces a := In1 b:= In2 t1 := a t2 := b x := max(t1, t2) y := min(t1, t2) t3 := x >>3 t4 := y >>1 t5 := x - t3 t6 := t4 + t5 t7 := max(t6 , x) Final := 1 Sal := t7 Finsihasta siempre
Y para reducir el efecto de la prdida de precisin, el desplazamiento de tres posiciones se hace sobre el mayor de los nmeros, a y b, en valor absoluto .
Algoritmo:
Diseo a nivel de transferencia de registros
2002 - A.D. Urrestarazu24
-
5. Optimizacin en tiempo Ejemplo. Calculador de hipotenusa
[abs/min/+/][abs/max] [>>1] [>>3]
Banco deregistros16 mRegistro a
Registro b
Bus ABus B
Bus Res1Bus Res2
In1 In2
Sal
Repetir Si Inicio entonces a := In1 b:= In2 t1 := a t2 := b x := max(t1, t2) y := min(t1, t2) t3 := x >>3 t4 := y >>1 t5 := x - t3 t6 := t4 + t5 t7 := max(t6 , x) Final := 1 Sal := t7 Finsihasta siempre
Diseo a nivel de transferencia de registros
2002 - A.D. Urrestarazu25
-
5. Optimizacin en tiempo Ejemplo. Calculador de hipotenusa
Inicio
t1 := at2 := b
s1
t3 := x >>3t4 := y >>1
s3
t5 := x - t3
s4
t6 := t4 + t5
s5
s6
t7 := max(t6 , x)
s7
Final := 1Sal := t7
x := max(t1, t2)y := min(t1, t2)
s2
a := in1b := in2
s0
1 0
[abs/min/+/][abs/max] [>>1] [>>3]
Banco deregistros16 mRegistro a
Registro b
Bus ABus B
Bus Res1Bus Res2
In1 In2
Sal
Diseo a nivel de transferencia de registros
2002 - A.D. Urrestarazu26
-
5. Optimizacin en tiempo Ejemplo. Calculador de hipotenusacon unidades encadenadas
Inicio
t1 := at2 := b
s1
t5 := x - t3
s3
t6 := t4 + t5
s4
s5
t7 := max(t6 , x)
s6
Final := 1Sal := t7
x := max(t1, t2)t3 := max(t1, t2) >>3t4 := min(t1, t2) >>1
s2
a := in1b := in2
s0
1 0
[abs/min/+/][abs/max]
[>>1][>>3]
Banco deregistros16 mRegistro a
Registro b
Bus ABus B
Bus Res1
Bus Res2
In1 In2
Sal
MUX
Diseo a nivel de transferencia de registros
2002 - A.D. Urrestarazu27
-
5. Optimizacin en tiempo Ejemplo. Calculador de hipotenusacon unidades multiciclo
Inicio
t1 := at2 := b
s1
t5 := x - t3
s4
t6 := t4 + t5
s5
s6
t7 := max(t6 , x)
s7
Final := 1Sal:= t7
x := max(t1, t2)t3 := max(t1, t2) >>3[t4] := min(t1, t2) >>1
s2
a := in1b := in2
s0
1 0
t4 := [min(t1, t2) >>1]
s3
[abs/+/][abs/max]
[>>3]
Banco deregistros16 mRegistro a
Registro b
Bus ABus B
Bus Res1
Bus Res2
In1 In2
Sal
[min >> 1]
Diseo a nivel de transferencia de registros
2002 - A.D. Urrestarazu28