titulaciones de grado · paso 2: proponer una unidad de datos capaz de ejecutar todas las...
TRANSCRIPT
![Page 1: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/1.jpg)
Tema 2
Sistemas Digitales
Rev 20.1
![Page 2: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/2.jpg)
2
Contenidos del tema
El nivel RT
Diseño de la unidad de datos
Interconexión mediante buses
Ejemplo: diseño de una calculadora simple
Diseño de la unidad de control:
Descripción mediante cartas ASM
Descripción mediante Verilog
Otros ejemplos
![Page 3: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/3.jpg)
3
Nivel RT: circuitos versus sistemas
x
CircuitoCombinacional
z1
zk
x1
xn
y1
yr
CLK
B1
Br
Unidad de Control
Unidad deProcesado
XIN
X Z
ZOUT
DIN DOUT
X : cualificadores o entradas de controlZ : comandos o salidas de controlD: datos
reloj
CIRCUITOS SISTEMAS
0,1 Información Palabras de datos
De conmutación Nivel/Lenguaje RT (Register Transfer)
Máquina de estados finitos
Funcionalidad Instrucciones: Operaciones
Puertas y biestables ComponentesMUX, ALU, …, registros,…
Líneas (cables) Conexión Buses
Combinacional y almacenamiento
(memoria)Organización
Procesado de datos y control
Los sistemas que trataremos serán síncronos y sus biestables serán todos disparados por el mismo flanco de la misma señal de reloj.
Con frecuencia omitiremos la representación de la señal de reloj.
![Page 4: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/4.jpg)
4
Nivel RT: Descripción de componentesRegistro: unidad básica de almacenamiento de datos
Representación estructural
Representación funcional
ControlS1 S2 ….Sm
Operación aNivel RT
0 0 … 00 0 … 1
…1 1 … 1
A ← DIN
A ← 0…
otras
ß
ß
s1 DIN
n
A[n]RelojDOUT
nsm
![Page 5: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/5.jpg)
5
Nivel RT: Ejemplos de operación
De escritura (secuencial)
Operación Notación RT
Carga en paraleloDespl. a izquierdaR
Despl. a derecha R
IncrementoDecrementoPuesta a 0Puesta a 1
NOP/Inhibición
A ← DIN
A ← SHL(A,DL)A ← SHR(A,DR)
A ← A + 1A ← A - 1
A ← 0A ← 1…1A ← A
De lectura (combinacional)
Operación Notación RT
Lect. incondicional
Dout = [A]
Lect. condicional R: Dout = [A]
Función del dato Z=1 si [A]=0
![Page 6: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/6.jpg)
6
Nivel RT: Ejemplos de descripción Registro universal de n bits
Representación estructural
Representación funcional
ControlS1 S0
EscrituraA ←
LecturaDOUT
0 00 11 01 1
A ← AA ← DIN
A ← SHR(A,DR)A ← SHL(A,DL)
DOUT=[A]
S1S0CK
ß
ß
n
A[n]DOUT
n
DIN
DL
DR
![Page 7: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/7.jpg)
7
Nivel RT: Ejemplos de descripción Memoria RAM comercial: RAM 2114
Representación estructural
Representación funcional
ControlCS R/W
EscrituraRAM ←
LecturaD3-0=
1 -0 10 0
RAM ← RAMRAM ← RAM
RAM(A) ← D3-0
HI[RAM(A)]
D3-0
CS
R/W
A 9:0
RAM 1Kx4 2114
D3:010
4
![Page 8: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/8.jpg)
8
Nivel RT: Operaciones entre varios registros
Ejemplos:
B
AX1
B C
A
=1
X1: A ← B X2: A ← B ⊕ C
X2
WW
![Page 9: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/9.jpg)
9
Nivel RT: Estructura general del sistema digital
Generalización: f(x): A ← G(B, C, …)
Unidad de datos(o unidad de procesado)
Unidad de control ● evalúa f(x)
● genera la secuencia de señales de control
BR
Ccirc. comb.G(…)
AW
RB
WA
Clk
^
^
^
![Page 10: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/10.jpg)
10
Nivel RT: Macro y micro -operaciones
Macrooperación (o instrucción):
Es cada tarea que especifica el usuario y que el sistema realiza automáticamente
En general, el sistema emplea varios ciclos en su ejecución.
La unidad de control “dirige/supervisa” la tarea realizada
Microoperación (mop):
Es cada tarea que el sistema realiza en un único ciclo de reloj
En general, consiste en una o varias transferencias entre registros
![Page 11: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/11.jpg)
11
Nivel RT: Ejecución de una mop
Ciclo Kf(x): A ← G(B, C, …)
Ciclo K
Unidad de datos/procesadoUnidad de control ● evalúa f(x)
● genera la secuencia de señales de control
BR
Ccirc. comb.G(…)
AW
RB
WA
Clk
^
^
^
Clk:
RB:
Sal B:
Sal G:
A: G(B0, C0, ...)
HI HI
???
A0
???
WA :
f(x):
B0
G(B0, C0, ...)
![Page 12: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/12.jpg)
12
Diseño de un sistema digitalMetodología
Paso 1: Comprender claramente las especificaciones del sistema a diseñar y definir el conjunto de instrucciones/operaciones. Los registros que aparecen en la descripción de las macrooperaciones son los registros visibles.
Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles.
Paso 3: Describir todos los componentes a nivel RT estructural y funcional.
Paso 4: Descomponer las macrooperaciones en microoperaciones para la arquitectura propuesta.
Paso 5: Desarrollar la unidad de control
![Page 13: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/13.jpg)
13
Componentes de la Unidad de Datos
registros unidades funcionales
Bloquede
interconexión
entradas
salidas
![Page 14: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/14.jpg)
14
Bloque de interconexión: buses
Bus: en un sistema digital, un bus es un conjunto de n líneas ordenadas que discurren en paralelo y transportan información (palabras)
B0B1
Bn-1
n
n
B[n] = B0:n-1{BUS
B[n] = B0:n-1
Bn-1:0
Bn-1:0
![Page 15: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/15.jpg)
15
Bloque de interconexión: buses
Estándar (0,1)
Triestado (0,1, HI)
∇
Tipos de salida: Tipos de interconexión:
Fuente
Destino
Unidireccional
Fu/De
De/Fu
Bidireccional
Dedicados
Compartidos
![Page 16: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/16.jpg)
16
Bloque de interconexión: ejemplo
Se dispone de 4 registros A3,A2,A1,A0 con carga en paralelo.
Hay que realizar la conexión para la transferencia AF AD, con F, D {0, 1, 2, 3}
Selección de fuente: F1F0 Selección de destino: D1D0
A3 A2 A1 A0
![Page 17: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/17.jpg)
17
w
Bloque de interconexión: ejemplo
Caso 1: registros con salida y entrada separadas
Caso 2: registros con salida y entrada separadas, salida triestado
Caso 3: registros con un único bus bidireccional de salida y entrada
WR
WR ▽
▽
![Page 18: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/18.jpg)
18
Bloque de interconexión: ejemplo
Caso 1: registros con salida y entrada separadas
Soluciónmultiplexada
![Page 19: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/19.jpg)
19
Bloque de interconexión: ejemplo
Caso 2: registros con salida y entrada separadas, salida triestado
![Page 20: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/20.jpg)
20
Bloque de interconexión: ejemploCaso 3: registros con un único bus bidireccional de
salida y entrada
![Page 21: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/21.jpg)
21
Arquitecturas genéricas basadas en ALU
Realización de la macrooperación Rk ← R1 + R2
Caso 1: bus simple
Caso 2: doble bus
Caso 3: triple bus
![Page 22: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/22.jpg)
22
Arquitecturas genéricas basadas en ALUCaso 1: bus simple
Sumar R1 con R2 en Rk requiere varias mops:1 RT R1
2 ACC RT + R2
3 Rk ACC
![Page 23: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/23.jpg)
23
Arquitecturas genéricas basadas en ALUCaso 2: doble bus
![Page 24: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/24.jpg)
24
Arquitecturas genéricas basadas en ALUCaso 3: triple bus
![Page 25: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/25.jpg)
25
Diseño de una calculadora simplePaso 1- Especificaciones del sistema a diseñar:
Se dispone de 2 registros, A y B y se desea poder realizar cualquiera de las siguientes operaciones:
Se han asignado los códigos de modo que el registro destino se identifica con I0 y la operación con I1.
I1 I0 operación
0 0 A ← A + B
0 1 B ← A + B
1 0 A ← A - B
1 1 B ← A - B
A
B
I1
I0
![Page 26: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/26.jpg)
26
Diseño de la unidad de datos de una calculadora
Paso 2 - Proponemos una arquitectura genérica de un bus capaz de ejecutar las operaciones especificadas.
A
B
Ra
WaRb
Wb
▽ DAT
WRT
ACWAC
RAC
RT
P1
P0
IA IB
▽ OUT
C1
C0
WOUT
IN
INWR
RW
RW
▽ DAT
OUT
![Page 27: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/27.jpg)
27
Diseño de la unidad de datos de una calculadora
Paso 3 – Describimos los componentes a nivel RT
X▽DAT
IA IB
W RT← OUT=
01
RTIN
[RT][RT]
RW X ← DAT=
0 00 11 01 1
XDAT
XProh
HIDAT[X]
proh
AC
W R AC← OUT=
0 0 0 1 1 0 1 1
ACACININ
HI[AC]HI
[AC]
C1 C0 OUT=
0 00 11 01 1
IA + IBIA
IA –IBIB
OUT
▽OUT
C1
C0
RT INOUT W W
R
IN
RW
![Page 28: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/28.jpg)
28
Descomposición en microoperaciones
Paso 4 –Descomponemos las macrooperaciones en microoperaciones.
Durante la ejecución de una macrooperación solo pueden modificarse los registros ocultos y los registros visibles que aparezcan como destino en la descripción de la macrooperación.
A ← A + B B ← A + B A ← A - B B ← A - B
mop 1 RT ← B
mop 2 AC ← A + RT AC ← A - RT
mop 3 A ← AC B ← AC A ← AC B ← AC
![Page 29: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/29.jpg)
29
Descripción mediante cartas ASM
Definiciones
acciones
camino deentrada
camino desalida
S
símbolo de estado
CAJA DE ESTADO
caminode
salida
CAJA DE DECISIÓN
camino de entrada
vector decondiciones
CAJA DE ACCIÓNCONDICIONAL
camino deentrada
camino desalida
accionesvalor1
caminode
salida
caminode
salida
valor2
valorn
![Page 30: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/30.jpg)
30
Descripción mediante cartas ASM
Definiciones
acciones
condición
BLOQUE ASM
accionescondición
CARTA ASM
grafo orientado y cerrado queinterconecta bloques ASM
una y solo una caja de estados
número variable de caminos de salida
![Page 31: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/31.jpg)
31
Errores comunes en cartas ASM
![Page 32: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/32.jpg)
32
Descripción mediante cartas ASMInicio y fin de operación
Xs
estado inicial (NOP)
cuerpo de la carta ASM
FIN estado de fin
0
1
S0
SF
Xs: entrada con la que se inicia la operación (Xstart)
FIN: salida que indica que la operación ha terminado
![Page 33: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/33.jpg)
33
Consideraciones temporalesEl orden de las cajas en un bloque ASM no implica orden temporal.
Todas las tareas de un bloque ASM se hacen en un ciclo de reloj
Igual significado lógico
![Page 34: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/34.jpg)
34
Organización del sistema digital:
Diseño de la calculadora simple
U. de datos
A
B
WAC, RAC
WRT
Ra,RbWa,Wb
P1
U. de control
I1I0 XS
El usuario especifica la operación proporcionando el valor de I1, I0 y genera la orden de comienzo con XS
FIN
P0
![Page 35: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/35.jpg)
35
A ← A + BI1I0=00
B ← A + BI1I0=01
A ← A – BI1I0=10
B ← A - B I1I0=11
1 RT ← B
2 AC ← A + RT AC ← A - RT
3 A ← AC B ← AC A ← AC B ← AC
U. de datos
A
B
WAC, RAC
WRT
Ra,RbWa,Wb
P1
U. de control
I1I0 XS
Carta ASM de la calculadora
unidad de
datos
unidad de
datos
FIN
P0
![Page 36: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/36.jpg)
36
Carta ASM de la calculadora
unidad de
datos
unidad de
datos
unidad de
control
unidad de
control
![Page 37: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/37.jpg)
37
Descripción Verilog de la u. de control de la calculadora
La descripción canónica de máquinas de estado en HDL Verilog es un proceso sistemático
Se utilizará una estructura general del código en la que hay 2 procesos
Uno de asignación de siguientes estados
Otro de calculo de siguiente estado y salidas
![Page 38: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/38.jpg)
38
Descripción Verilog de la u. de control de la calculadora, estructura general.module mi_carta_asm( input LISTA_DE_ENTRADAS, output reg LISTA_DE_SALIDAS);
// DEFINICIóN Y ASIGNACIÓN DE ESTADOS parameter LISTA_DE_ESTADOS
// VARIABLES PARA ALMACENAR EL ESTADO PRESENTE Y SIGUIENTE reg [N:0] current_state, next_state;
// PROCESO DE CAMBIO DE ESTADOalways @(posedge clk or posedge reset)
.......// PROCESO SIGUIENTE ESTADO Y SALIDAalways @(current_state, LISTA_DE_ENTRADAS) .......endmodule
![Page 39: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/39.jpg)
39
Descripción Verilog de la u. de control de la calculadora, procedimiento.
En la estructura general hay que completar 4 partes de código:
1. Definición y asignación de estados, según el número de estados utilizaremos más o menos bits.
2. Definición de registros para almacenar el estado actual y el siguiente. Deben ser del mismo tamaño en bits que el utilizado en el punto anterior.
3. Proceso de cambio de estado: siempre es el mismo código
4. Proceso de cálculo de siguiente estado y salida: Hay que rellenar el código correspondiente a la carta ASM
![Page 40: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/40.jpg)
40
Descripción Verilog de la u. de control de la calculadora
module carta_asm1( input clk, XS, I0, I1, reset, output reg RAC, Rb, Ra, WRT, WAC, Wa, Wb, P1, FIN );parameter S0 = 3'b000, S1 = 3'b001, S2 = 3'b010, S3 = 3'b011, SF = 3'b100;
reg [2:0] current_state,next_state;
always @(posedge clk or posedge reset) begin if(reset) current_state <= S0; else current_state <= next_state; end
SIGUE ->
module carta_asm1( input clk, XS, I0, I1, reset, output reg RAC, Rb, Ra, WRT, WAC, Wa, Wb, P1, FIN );parameter S0 = 3'b000, S1 = 3'b001, S2 = 3'b010, S3 = 3'b011, SF = 3'b100;
reg [2:0] current_state,next_state;
always @(posedge clk or posedge reset) begin if(reset) current_state <= S0; else current_state <= next_state; end
SIGUE ->
Asignaciónde estados
Procesosiguiente estado
![Page 41: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/41.jpg)
41
Descripción Verilog de la u. de control de la calculadora
El proceso de cálculo del siguiente estado y salida se realiza con una única sentencia “CASE”
La sentencia “CASE” debe contemplar todos los estados de la carta ASM
Antes de la sentencia “CASE” se recomienda establecer por defecto a cero todas las salidas.
![Page 42: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/42.jpg)
42
Descripción Verilog de la u. de control de la calculadora
always @(current_state,I0,I1) begin RAC = 0; RA = 0; Rb = 0; P1 = 0; WRT = 0; Wa = 0; Wb = 0; FIN = 0; case(current_state) S0: begin if(XS) next_state = S1; else next_state = S0; end S1: begin WRT = 1; Rb = 1; next_state = S2; end
always @(current_state,I0,I1) begin RAC = 0; RA = 0; Rb = 0; P1 = 0; WRT = 0; Wa = 0; Wb = 0; FIN = 0; case(current_state) S0: begin if(XS) next_state = S1; else next_state = S0; end S1: begin WRT = 1; Rb = 1; next_state = S2; end
Estado S0
Estado S1
Valor por defecto de las salidasestablecido a cero
![Page 43: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/43.jpg)
43
Descripción Verilog de la u. de control de la calculadora
S2: begin WAC = 1; Ra = 1; if(I1) P1 = 1; next_state = S3; end S3: begin RAC = 1; if(I0) Wa = 1; else Wb = 1; next_state = SF; end SF: begin FIN = 1; next_state = S0; end endcase endendmodule
S2: begin WAC = 1; Ra = 1; if(I1) P1 = 1; next_state = S3; end S3: begin RAC = 1; if(I0) Wa = 1; else Wb = 1; next_state = SF; end SF: begin FIN = 1; next_state = S0; end endcase endendmodule
Estado S2
Estado S3
Estado SF
![Page 44: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/44.jpg)
44
Diseño de la unidad de datos de una calculadora: solución con 3 buses
Para las mismas especificaciones del ejemplo anterior proponemos una unidad de datos diferente.
Con esta arquitectura se necesitan menos registros.
XW X← OUT=
01
XIN
[X][X]
Arquitectura específica.
WIN
OUT
A
B
Wa
Wb
P1
P0
IA IBC1
C0
WIN
OUT
WIN
OUT
OUT
![Page 45: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/45.jpg)
45
Descripción Verilog de la u. datos de la calculadora : solución con 3 buses
A
B
Wa
Wb
P1
P0
IA IBC1
C0
WIN
OUT
WIN
OUT
OUT
// Declaración del tipo módulo correspondiente a RA y RB
module type1 #(parameter width=8, initial_value=0) ( input wire W, ck, input wire [width-1:0] IN, output reg [width-1:0] OUT=initial_value);
always@(posedge ck) if(W) OUT<=IN; endmodule
// declaración del tipo módulo correspondiente a la ALUmodule ALU_type #(parameter width=8) ( input wire C1, C0, input wire [width-1:0] IA,IB, output reg [width-1:0] OUT);
always@(*) case({C1,C0}) 2'b00: OUT=IA+IB; 2'b01: OUT=IA; 2'b10: OUT=IA-IB; 2'b11: OUT=IB; endcaseendmodule
![Page 46: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/46.jpg)
46
Descripción Verilog de la u. datos de la calculadora : solución con 3 buses
A
B
Wa
Wb
P1
P0
IA IBC1
C0
WIN
OUT
WIN
OUT
OUT
ALU_out
OUT_BOUT_A
ALU_TYPE
type1
// Declaración de la unidad de procesado de datos
module unidad_datos2 #(parameter width=8, initial_A=0, initial_B=1)(input wire ck,Wa,Wb,P0,P1);
wire [width-1:0] ALU_out, OUT_A, OUT_B;
type1 #(width,initial_A) A(Wa,ck,ALU_out,OUT_A);type1 #(width,initial_B) B(Wb,ck,ALU_out,OUT_B);ALU_type #(width) ALU(P1,P0,OUT_A,OUT_B,ALU_out);
endmodule
![Page 47: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/47.jpg)
47
Carta ASM: solución con 3 buses
Las macrooperaciones se realizan en un único ciclo de reloj.
I1 I0 operación
0 0 A ← A + B
0 1 B ← A + B
1 0 A ← A - B
1 1 B ← A - B
A
B
Wa
Wb
P1
P0
IA IBC1
C0
WIN
OUT
WIN
OUT
OUT
![Page 48: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/48.jpg)
48
Carta ASM: solución con 3 buses
![Page 49: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/49.jpg)
49
Descripción Verilog de la u. de control de la calculadora: solución con 3 buses
module carta_asm2( input clk, XS, I0, I1, reset, output reg Wa, Wb, P1, FIN );
parameter S0 = 2'b00, S1 = 2'b01, SF = 2'b10;
reg [1:0] current_state,next_state;
always @(posedge clk or posedge reset) begin if(reset) current_state <= S0; else current_state <= next_state; end
SIGUE ->
module carta_asm2( input clk, XS, I0, I1, reset, output reg Wa, Wb, P1, FIN );
parameter S0 = 2'b00, S1 = 2'b01, SF = 2'b10;
reg [1:0] current_state,next_state;
always @(posedge clk or posedge reset) begin if(reset) current_state <= S0; else current_state <= next_state; end
SIGUE ->
![Page 50: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/50.jpg)
50
Descripción Verilog de la u. de control de la calculadora: solución con 3 buses
always @(current_state,I0,I1) begin P1 = 0; Wa = 0; Wb = 0; FIN = 0; case(current_state) S0: begin if (XS) next_state = S1; else next_state = S0; end
SIGUE ->
always @(current_state,I0,I1) begin P1 = 0; Wa = 0; Wb = 0; FIN = 0; case(current_state) S0: begin if (XS) next_state = S1; else next_state = S0; end
SIGUE ->
![Page 51: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/51.jpg)
51
Descripción Verilog de la u. de control de la calculadora: solución con 3 buses
S1: begin if(I1==0 && I0==0) Wa = 1; else if(I1==0 && I0==1) Wb = 1; else if(I1==1 && I0==0) begin P1 = 1; Wa = 1; end else begin P1 = 1; Wb = 1; end next_state = SF; end SF: begin FIN = 1; next_state = S0; end endcase end
S1: begin if(I1==0 && I0==0) Wa = 1; else if(I1==0 && I0==1) Wb = 1; else if(I1==1 && I0==0) begin P1 = 1; Wa = 1; end else begin P1 = 1; Wb = 1; end next_state = SF; end SF: begin FIN = 1; next_state = S0; end endcase end
![Page 52: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/52.jpg)
52
Descripción Verilog (compacta) de la u. de control de la calculadora: solución
con 3 busesmodule unidad_control_2( input clk, XS, I0, I1, reset, output reg P0,P1,Wa,Wb,FIN );parameter S0 = 2'b00, S1 = 2'b01, SF = 2'b10;
reg [1:0] current_state,next_state;
always @(posedge clk or posedge reset) begin if(reset) current_state <= S0; else current_state <= next_state; end
SIGUE ->
module unidad_control_2( input clk, XS, I0, I1, reset, output reg P0,P1,Wa,Wb,FIN );parameter S0 = 2'b00, S1 = 2'b01, SF = 2'b10;
reg [1:0] current_state,next_state;
always @(posedge clk or posedge reset) begin if(reset) current_state <= S0; else current_state <= next_state; end
SIGUE ->
![Page 53: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/53.jpg)
53
always @(current_state,I0,I1) begin P0 = 0; P1 = 0; FIN = 0; Wa = 0; Wb = 0; case(current_state) S0: begin if(XS) next_state = S1; else next_state = S0; end S1: begin if(I0) Wb = 1; else Wa = 1; if(i1) P1 = 1; next_state = SF; end SF: begin FIN = 1; next_state = S0; end endcase endendmodule
always @(current_state,I0,I1) begin P0 = 0; P1 = 0; FIN = 0; Wa = 0; Wb = 0; case(current_state) S0: begin if(XS) next_state = S1; else next_state = S0; end S1: begin if(I0) Wb = 1; else Wa = 1; if(i1) P1 = 1; next_state = SF; end SF: begin FIN = 1; next_state = S0; end endcase endendmodule
Descripción Verilog (compacta) …
![Page 54: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/54.jpg)
54
Diseño de una calculadora con 8 registros
Especificaciones del sistema a diseñar:
Se dispone de 8 registros (R0, R1, …, R7) y se desea poder realizar cualquiera de las siguientes operaciones:
D,F {0,1,2,…,6,7}
D y F vienen determinados por (D2D1D0) y (F2F1F0)
I1I0 operación
0 0 RD ← RD + RF
1 0 RD ← RD - RF
0 1 RD ← RF
![Page 55: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/55.jpg)
55
Arquitectura de la unidad de datos:
R1
R0
R2
22R3
R4
R5
R6
R7
W0
W1
W2
W3
W4
W5
W6
W7
P1
P0
IA IBC1
C0
OUT
0....7
0....7
D2-0
F2-0
Diseño de una calculadora con 8 registros
DEC 3:8
210
76543210
W0
W1
W2
W3
W4
W5
W6
W7
EN
W
D2
D1
D0
.
.
.
W
W
W
W
W
W
W
W
![Page 56: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/56.jpg)
56
Diseño de una calculadora con 8 registrosDescripción Verilog de la unidad de procesado
// Declaración del tipo módulo correspondiente a la ALU
module ALU_type #(parameter width=8) ( input wire C1, C0, input wire [width-1:0] IA,IB, output reg [width-1:0] OUT); always@(*) case({C1,C0}) 2'b00: OUT=IA+IB; 2'b01: OUT=IA; 2'b10: OUT=IA-IB; 2'b11: OUT=IB; endcaseendmodule
// Declaración de la unidad de procesado de datos
module unidad_datos3 #(parameter width=8, initial_value_R0=1) ( input wire ck,W,P0,P1, input wire [2:0] F,D); wire [width-1:0] ALU_out; reg [width-1:0] R [7:0]; ALU_type #(width) ALU(P1,P0,R[D],R[F],ALU_out); always@(posedge ck) if(W) R[D]<=ALU_out; initial R[0]<=initial_value_R0; //para los testbenchendmodule
![Page 57: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/57.jpg)
57
Organización del sistema digital:
Diseño de una calculadora con 8 registros
U. de datosU. de control
R1
R7
I1I0 XS
W,P1,P0 ...
D2-0 F2-0
FIN
El usuario especifica la operación proporcionando el valor de I1, I0, D2-0, F2-0, y genera la orden de comienzo con XS
![Page 58: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/58.jpg)
58
Xs
FIN
0
S0
SF
S1
1
I00I1
1
1I0
P1
0
P0,P1
W
Carta ASM
Diseño de una calculadora con 8 registros
Xs
FIN
0
S0
SF
S1
1
I00I1
1
1
RD ← RD-RF
0 I0
RD ← RF
RD ← RD+RF
unidad de
datos
unidad de
datos
unidad de
control
unidad de
control
I1I0 operación
0 0 RD ← RD + RF
1 0 RD ← RD - RF
0 1 RD ← RF
![Page 59: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/59.jpg)
59
Carta ASM y descripción Verilog del controlador
Diseño de una calculadora con 8 registros
module unidad_control_3( input clk, XS, I0, I1, reset, output reg P0,P1,W,FIN );parameter S0 = 2'b00, S1 = 2'b01, SF = 2'b10;
reg [1:0] current_state,next_state;
always @(posedge clk or posedge reset) begin if(reset) current_state <= S0; else current_state <= next_state; end
SIGUE ->
module unidad_control_3( input clk, XS, I0, I1, reset, output reg P0,P1,W,FIN );parameter S0 = 2'b00, S1 = 2'b01, SF = 2'b10;
reg [1:0] current_state,next_state;
always @(posedge clk or posedge reset) begin if(reset) current_state <= S0; else current_state <= next_state; end
SIGUE ->
Xs
FIN
0
S0
SF
S1
1
I00I1
1
1I0
P1
0
P0,P1
W
![Page 60: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/60.jpg)
60
always @(current_state,I0,I1) begin P0 = 0; P1 = 0; FIN = 0; W = 0; case(current_state) S0: begin if(xs) next_state = S1; else next_state = S0; end S1: begin W = 1; if(I0) begin P0 = 1; P1 = 0; end else if (I1) P1 = 1; next_state = SF; end SF: begin FIN = 1; next_state = S0; end endcase endendmodule
always @(current_state,I0,I1) begin P0 = 0; P1 = 0; FIN = 0; W = 0; case(current_state) S0: begin if(xs) next_state = S1; else next_state = S0; end S1: begin W = 1; if(I0) begin P0 = 1; P1 = 0; end else if (I1) P1 = 1; next_state = SF; end SF: begin FIN = 1; next_state = S0; end endcase endendmodule
Carta ASM y descripción Verilog del controlador
Xs
FIN
0
S0
SF
S1
1
I00I1
1
1I0
P1
0
P0,P1
W
![Page 61: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/61.jpg)
61
Técnicas de realización de u. de control
Verilog
Herramienta de
síntesis
Netlist deldiseño
Estrategias:Cableada (como circuito secuencial síncrono)
Un biestable por estado
Microprogramado
![Page 62: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/62.jpg)
62
Ejemplo de uso de la calculadora
Realización de la operación R0←3R1-R2
Se trata de una operación más compleja no incluida en la tabla de operación del sistema.
Se puede realizar mediante una secuencia de instrucciones (nivel ISP)
Instrucción 1: R0←R1-R2
Instrucción 2: R0←R0+R1
Instrucción 3: R0←R0+R1
![Page 63: Titulaciones de Grado · Paso 2: Proponer una unidad de datos capaz de ejecutar todas las operaciones especificadas. Debe incluir los registros visibles. Paso 3: Describir todos los](https://reader033.vdocuments.net/reader033/viewer/2022053014/5f11d7f32425a142cf725f77/html5/thumbnails/63.jpg)
63
Calculadora frente a computador
SimilitudesPodemos resolver problemas complejos a partir de las instrucciones del sistema mediante programación (software).
El usuario no necesita ser especialista en la electrónica del sistema (hardware).
DeficienciasNo hay automatización en la ejecución del programa: cada vez que se ejecuta una instrucción el usuario debe activar Xs, esperar la señal de FIN y suministrar la siguiente.
No hay programa almacenado: para ejecutar cada instrucción el usuario debe proporcionar los valores D2:0 y F2:0 para cada una de las tres instrucciones.