Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistemas Digitales
Contenidos del tema
El nivel RT
Diseo de la unidad de datos
Interconexin mediante buses
Ejemplo: diseo de una calculadora simple
Diseo de la unidad de control:
Descripcin mediante cartas ASM
Descripcin mediante Verilog
Otros ejemplos
2
Nivel RT: circuitos versus sistemas
CIRCUITOS SISTEMAS
3
Nivel RT: Descripcin de componentes
Registro: unidad bsica de almacenamiento de datos
Representacin Representacin
estructural funcional
s1
n Control
S1 S2 .Sm
Operacin a
Nivel RT
D IN
A[n] 000 A DIN
sm D OUT Reloj
001 A0
n
111 otras
4
Nivel RT: Ejemplos de operacin
De escritura De lectura
(secuencial) (combinacional)
5
Nivel RT: Ejemplos de descripcin
Registro universal de n bits
Representacin Representacin
estructural funcional
S1
DIN
n Control
S1 S0
Escritura
A
Lectura
DOUT
S0 A[n] 00 AA
CK DOUT
01 A DIN
n 10
11
A SHR(A,DR)
A SHL(A,DL)
DOUT=[A]
6
Nivel RT: Ejemplos de descripcin
Memoria RAM comercial: RAM 2114
Representacin Representacin
estructural funcional
7
Nivel RT: Operaciones entre varios
registros
Ejemplos:
X2: A B C
X1: A B
B C
B
=1
X1 W A X2 W A
8
Nivel RT: Estructura general del
sistema digital
Generalizacin: f(x): A G(B, C, )
Ck
9
Nivel RT: Macro y micro -operaciones
Macrooperacin (o instruccin):
Es cada tarea que especifica el usuario y que el sistema realiza
automticamente
En general, el sistema emplea varios ciclos en su ejecucin.
La unidad de control dirige/supervisa la tarea realizada
op):
Microoperacin (
Es cada tarea que el sistema realiza en un nico ciclo de reloj
En general, consiste en una o varias transferencias entre
registros
10
Nivel RT: Ejecucin de una op
Unidad de control Unidad de datos/procesado
RB
- evala f(x) R^ B
circ.
Ciclo K - genera la C comb.
^
f(x): A G(B, C, ) secuencia de
seales de control
G()
WA
W^ A
Ck
Ciclo K
f(x):
Ck:
WA :
RB :
Sal B: HI B0 HI
Sal G: ??? G(B0, C0, ...) ???
A: A0 G(B0, C0, ...)
11
Componentes de la Unidad de Datos
entradas
Bloque
de
interconexin
salidas
12
Bloque de interconexin: buses
Bus:
en un sistema digital, un bus es un conjunto de
n lneas ordenadas que discurren en paralelo y
transportan informacin (palabras)
B0 n B[n] = B0:n-1
{
n-1:0
BUS B1
Bn-1 n B[n] = B
Bn-1:0
0:n-1
13
Bloque de interconexin: buses
Tipos de salida: Tipos de interconexin:
Destino
Fu/De
De/Fu
14
Bloque de interconexin: ejemplo
Se dispone de 4 registros A3,A2,A1,A0 con carga en
paralelo.
A3 A2 A1 A0
15
Bloque de interconexin: ejemplo
Caso 1: registros con salida y entrada separadas
W
R
w W
R
16
Bloque de interconexin: ejemplo
Caso 1: registros con salida y entrada separadas
DEC
Ejemplo, A3 A1
0 D1
2:4 3 AD = A 1
1 2
1 D0 0
1 AF = A3; F1F0 = 1 1
0
0 W 1 W 0 W 0 W
A0 A1 A2 A3
n n n n
[A3]
1 F1 1 0 1 2 3
1 F0 0
n x MUX 4 : 1 Solucin
multiplexada
17
Bloque de interconexin: ejemplo
Caso 2: registros con salida y entrada separadas,
salida triestado
DEC Ejemplo, A3 A1
2:4 3
0 D1 1 2
1
1 D0 0 0
0 W 1 W 0 W 0 W
A0 A1 A2 A
R R R R 3
n n n n
[A3]
DEC
2:4 0 0
1 F1 1 0
1
F0 2 0
1 0
3 1
18
Bloque de interconexin: ejemplo
Caso 3: registros con un nico bus bidireccional de
salida y entrada
DEC Ejemplo, A3 A1
2:4 3
0 D1 1 2
1
1 D0 0 0
0 W 1 W 0 W 0 W
A0 A1 A2 A
R R R R 3
0 0 0 1
DEC
2:4 0
1 F1 1 1
1 F0 2
0
3
19
Diseo de un sistema digital
Metodologa
Paso 1: Comprender claramente las especificaciones del sistema
a disear y definir el conjunto de instrucciones/operaciones.
Los registros que aparecen en la descripcin 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
20
Diseo de una calculadora simple
Paso 1- Especificaciones del sistema a disear:
Se dispone de 2 registros, A y B y se desea poder realizar
cualquiera de las siguientes operaciones:
I1 I0 operacin
I1
00 AA+B I0 A
01 BA+B
B
10 AA-B
11 BA-B
21
Diseo de la unidad de datos de una
calculadora
Paso 2 - Proponemos una arquitectura genrica de un bus
capaz de ejecutar las operaciones especificadas.
IN
RT W WRT
OUT
R Ra
IA IB DAT A W Wa
P1 C1 Rb
R
P0 C0 DAT B W Wb
OUT
WAC IN
W AC
RAC R OUT
22
Diseo de la unidad de datos de una
calculadora
Paso 3 Describimos los componentes a nivel RT
WR AC OUT=
W RT OUT=
IN W IN 00 AC HI
RT OUT W 0 RT [RT] R OUT
AC 01 AC [AC]
1 IN [RT] 10 IN HI
11 IN [AC]
R
DAT X W
C1 C0 OUT=
RW X DAT= IA IB
C1 00 IA + IB
00 X HI C0 01 IA
01 DAT DAT OUT 10 IA IB
10 X [X] 11 IB
11 Proh proh
23
Descripcin Verilog de la unidad de
datos de la calculadora
//declaracin del tipo mdulo correspondiente a RT
module type1 (input W, ck, input [7:0] IN, output reg [7:0] OUT);
always@(posedge ck)
if(W)
OUT<=IN;
endmodule W RT OUT=
IN
RT OUT W 0 RT [RT]
1 IN [RT]
//declaracin del tipo mdulo correspondiente a AC (instanciaremos a un mdulo type1 y
aadiremos lectura condicional)
module type2 (input W, R, ck, input [7:0] IN, output [7:0] OUT);
wire [7:0] internal_bus;
type1 internal_reg(W, ck, IN, internal_bus);
assign OUT = R ? internal_bus : 'bz;
endmodule
internal WR AC OUT=
REG IN
W 00 AC HI
OUT
W IN
R OUT
AC internal bus 01 AC [AC]
R 10 IN HI
11 IN [AC] 24
Descripcin Verilog de la unidad de
datos de la calculadora (con parmetros)
//declaracin del tipo mdulo correspondiente a RT
type1 IN
type3
RT W WRT
Se han utilizado instancias de los OUT
modulos definidos anteriormente:
type1, type2, type3 y alu_type RT_out
R Ra
IA IB DAT A W Wa
Se han nombrado los buses P1 C1 Rb
R
internos de la unidad: P0 C0 ALU_type DAT B W Wb
RT_out, ALU_out y common_bus
OUT
ALU_out
WAC
W
IN type2 common_bus
RAC AC
R OUT
27
Descomposicin en microoperaciones
Paso 4 Descomponemos las macrooperaciones en
microoperaciones.
28
Descripcin mediante cartas ASM
Definiciones
29
Descripcin mediante cartas ASM
Definiciones
una y solo una
BLOQUE ASM
caja de estados
CARTA ASM
acciones
grafo orientado
y cerrado que
interconecta
condicin
bloques ASM
condicin acciones
30
Errores comunes en cartas ASM
31
Consideraciones temporales
El orden de las cajas en un bloque ASM
no implica orden temporal.
32
Descripcin mediante cartas ASM
Inicio y fin de operacin
estado inicial (NOP)
S0
0
Xs Xs: entrada con la que se
inicia la operacin (Xstart)
1
33
Diseo de la calculadora simple
Organizacin del sistema digital:
I 1 I 0 XS
FIN
34
Carta ASM de la calculadora S0
0 Xs
AA+B BA+B AAB BA-B
I1I0=00 I1I0=01 I1I0=10 I1I0=11 1
1 RT B unidad S1 RT B
2 AC A + RT AC A - RT de
S2
datos
3 A AC B AC A AC B AC
0 1
I1
AC A+RT AC A-RT
I 1 I 0 XS
35
Carta ASM de la calculadora
S0 S0
0 Xs 0 Xs
1 1
S1 RT B S1 WRT,Rb
S2 S2 WAC ,Ra
unidad unidad
0 1 0 1
de I1 de I1
datos AC A+RT AC A-RT control P1
S3 S3 RAC
0 1 0 1
I0 I0
A AC B AC Wa Wb
SF FIN SF FIN
36
Descripcin Verilog de la u. de control de
la calculadora
La descripcin cannica de mquinas de estado en HDL
Verilog es un proceso sistemtico
37
Descripcin Verilog de la u. de control
de la calculadora, estructura general.
module mi_carta_asm(
input LISTA_DE_ENTRADAS,
output reg LISTA_DE_SALIDAS);
38
Descripcin Verilog de la u. de control de
la calculadora, procedimiento.
En la estructura general hay que completar 4 partes de cdigo:
39
Descripcin Verilog de la u. S0
de control de la calculadora 0 Xs
module unidad_control( 1
input ck, XS, I0, I1, reset,
output reg RAC, Rb, Ra, WRT, WAC, Wa, Wb, P1, P0, FIN S1 WRT,Rb
);
parameter S0 = 3'b000, S2
S1 = 3'b001, WAC ,Ra
Asignacin
S2 = 3'b010,
S3 = 3'b011, de estados 0 1
SF = 3'b100; I1
P1
reg [2:0] current_state,next_state;
SIGUE ->
SF FIN
40
Descripcin Verilog de la u. S0
de control de la calculadora 0 Xs
1
S1 WRT,Rb
El proceso de clculo del siguiente estado
y salida se realiza con una nica S2 WAC ,Ra
sentencia CASE
0 1
I1
La sentencia CASE debe contemplar P1
todos los estados de la carta ASM
S3 RAC
Antes de la sentencia CASE se
0 1
recomienda establecer por defecto a cero I0
todas las salidas y next state a S0 Wa Wb
SF FIN
41
Descripcin Verilog de la u.
S0
de control de la calculadora
0 Xs
always @(current_state,I0,I1,XS) 1
begin S1
RAC = 0; WRT,Rb
WAC = 0;
Ra = 0; S2 WAC ,Ra
Rb = 0;
P0 = 0;
Valor por defecto de las salidas
P1 = 0; establecido a cero 0
I1 1
WRT = 0;
Wa = 0; P1
Wb = 0;
FIN = 0;
next_state = S0;
case(current_state) S3 RAC
S0:
if(XS) next_state = S1; 0 1
S1: Estado S0 I0
begin
WRT = 1;
Wa Wb
Rb = 1;
next_state = S2; Estado S1 SF
end
FIN
42
Descripcin Verilog de la u.
S0
de control de la calculadora
S2:
0 Xs
begin
WAC = 1;
1
Ra = 1; Estado S2 S1 WRT,Rb
if(I1)
P1 = 1;
next_state = S3; S2 WAC ,Ra
end
S3: 0 1
begin I1
RAC = 1;
if(I0) P1
Wb = 1;
Estado S3
else
Wa = 1; S3 RAC
next_state = SF;
end
SF: 0 1
I0
FIN = 1; Estado SF
endcase Wa Wb
end
endmodule
SF FIN
43
Diseo de la calculadora simple
Conexin de unidades de datos y de control:
I 1 I 0 XS
WAC, RAC
P1 Unidad
Unidad P0
de de
WRT
control datos
Ra,RbWa,Wb
FIN
module calculadora #(parameter N=8) ( input ck, XS, I0, I1, reset, output FIN);
wire w1,w2,w3,w4,w5,w6,w7,w8,w9;
unidad_control uc_calc(.ck(ck),.reset(reset),.XS(XS),.FIN(FIN),.I0(I0),.I1(I1),
.WAC(w1),.RAC(w2),.WRT(w3),.Ra(w4),.Rb(w5),
.Wa(w6),.Wb(.w7),.P0(w8),.P1(w9));
endmodule
44
Diseo de la unidad de datos de una
calculadora: solucin con 3 buses
Para las mismas especificaciones del ejemplo anterior
proponemos una unidad de datos diferente.
Arquitectura especfica.
IN
B W Wb
OUT
Con esta arquitectura se
IN
A OUT
W Wa necesitan menos registros.
IA IB
P1 C1 W X OUT=
IN
P0 C0 X OUT W 0 X [X]
OUT 1 IN [X]
45
Descripcin Verilog de la u. datos de la
calculadora : solucin con 3 buses
//declaracin del tipo mdulo correspondiente a RA y RB
46
Descripcin Verilog de la u. datos de la
calculadora : solucin con 3 buses
type1
//declaracin de la unidad de procesado de datos
OUT
ALU_TYPE
ALU_out
47
Carta ASM: solucin con 3 buses
Las macrooperaciones se S0
realizan en un nico ciclo
0
de reloj. Xs
1
S1
IN
B OUT
W Wb
00 11
IN I1I0
A W Wa
OUT
I1 I0 operacin A A+B 01 10 B A-B
IA
00 AA+B B A+B A A-B
IB
P1 C1
P0
01 BA+B
C0
OUT
10 AA-B
SF FIN
11 BA-B
48
Carta ASM: solucin con 3 buses
unidad unidad
S0 S0
de de
0 datos 0 control
Xs Xs
1 1
S1 S1
00 11 00 11
I1I0 I1I0
SF FIN SF FIN
49
Descripcin Verilog de la u. de control
de la calculadora: solucin con 3 buses
module unidad_control2( S0
input ck, XS, I0, I1, reset,
output reg Wa, Wb, P1, P0, FIN
); 0 Xs
parameter S0 = 2'b00,
S1 = 2'b01, 1
SF = 2'b10; S1
reg [1:0] current_state,next_state;
00 11
always @(posedge ck or posedge reset)
I1I0
begin 01 10 P1,Wb
if(reset) Wa
current_state <= S0;
else Wb P1,Wa
current_state <= next_state;
end
SIGUE ->
SF FIN
50
Descripcin Verilog de la u. de control
de la calculadora: solucin con 3 buses
always @(current_state,I0,I1,XS)
begin S0
P1 = 0;
P0 = 0; 0
Wa = 0; Xs
Wb = 0; 1
FIN = 0;
next_state = S0; S1
case(current_state)
S0: 00 11
if (XS) next_state = S1; I1I0
SIGUE ->
Wa 01 10 P1,Wb
Wb P1,Wa
SF FIN
51
Descripcin Verilog de la u. de control
de la calculadora: solucin con 3 buses
S1:
begin
if(I1==0 && I0==0) S0
Wa = 1;
else if(I1==0 && I0==1)
Wb = 1;
0 Xs
else if(I1==1 && I0==0)
begin
1
P1 = 1; S1
Wa = 1;
end
00 11
else I1I0
begin
P1 = 1; Wa 01 10 P1,Wb
Wb = 1;
end Wb P1,Wa
next_state = SF;
end
SF:
FIN = 1;
endcase
end SF FIN
endmodule
52
Descripcin Verilog (compacta) de la u.
de control de la calculadora: solucin
con 3 buses S 0
module unidad_control2(
input ck, XS, I0, I1, reset,
0 Xs
output reg P0,P1,Wa,Wb,FIN
); 1
parameter S0 = 2'b00,
S1 = 2'b01, S1
SF = 2'b10;
53
Descripcin Verilog (compacta)
always @(current_state,I0,I1,XS)
begin
P0 = 0;
P1 = 0;
FIN = 0;
S0
Wa = 0;
Wb = 0; 0
next_state = S0;
Xs
case(current_state) 1
S0:
if(XS) next_state = S1;
S1
S1:
begin
if(I0) I0 I1
Wb = 1; 0 1 0 1
else
Wa = 1;
if(i1) Wa Wb P1
P1 = 1;
next_state = SF;
end
SF:
FIN = 1;
endcase SF FIN
end
endmodule
54
Diseo de la calculadora simple:
solucin con 3 buses
Conexin de unidades de datos y de control:
I 1 I 0 XS
P1
Unidad P0 Unidad
de Wa de
control 2 Wb datos 2
FIN
module calculadora #(parameter N=8) ( input ck, XS, I0, I1, reset, output FIN);
wire w1,w2,w3,w4;
unidad_control2 uc_calc(.ck(ck),.reset(reset),.XS(XS),.FIN(FIN),.I0(I0),.I1(I1),
.P1(w1),.P0(w2),.Wa(w3),.Wb(.w4));
endmodule
55
Diseo de una calculadora con 8 registros
56
Diseo de una calculadora con 8 registros
Arquitectura de la u. de datos:
0
W .
EN W0 .
0 .
W1 W W0
DEC 3:8 1 . R0
W2
D2 2 2 7
W3 R1 W W1
D1 1 3
4 W4 D2-0
D0 0 W5 R2 W W2
5 0
6 W6 22
W7
. . R 3
W W3
7 .
. . R4 W W4
IA IB
. . W W5
P1 C1
7 R5
P0 C0 W6
F2-0 R6 W
W W7
OUT
R7
57
Diseo de una calculadora con 8 registros
Descripcin Verilog de la unidad de procesado
always@(posedge ck)
if(W)
case({P1,P0})
2b00: R[D] <= R[D] + R[F];
2b01: R[D] <= R[D];
2b10: R[D] <= R[D] - R[F];
2b11: R[D] <= R[F];
endcase
endmodule
58
Diseo de una calculadora con 8 registros
Organizacin del sistema digital:
I 1 I 0 XS D2-0 F2-0
FIN
59
Diseo de una calculadora con 8 registros
Carta ASM unidad unidad
de S0 de
S0 datos control
0 Xs
0 Xs
1
1
S1 W
S1
0 1
0 1 I0
I0
1 0
1 0 RD RF
I10
I10
P1 P0,P1
RD RD-RF RD RD+RF
SIGUE ->
SF FIN
61
Carta ASM y descripcin Verilog del controlador
always @(current_state,I0,I1,XS)
begin
P0 = 0;
P1 = 0;
S0 FIN = 0;
W = 0;
next_state = S0;
0 Xs case(current_state)
S0:
1 if(XS) next_state = S1;
S1:
S1 W begin
W = 1;
0 1 if(I0)
I0 begin
P0 = 1;
P1 = 1;
1 0 end
I10 else if (I1)
P1 = 1;
P1 P0,P1
next_state = SF;
end
SF:
FIN = 1;
endcase
SF FIN end
endmodule
62
Diseo de una calculadora con 8 registros
Conexin de unidades de datos y de control:
I 1 I 0 XS D2:0 F2:0
W
Unidad Unidad
P1
de P0 de
control datos
FIN
module calculadora8reg #(parameter N=8) ( input ck, XS, I0, I1, reset, input [2:0] D, F,
output FIN);
wire w1,w2,w3;
unidad_control3 uc_calc(.ck(ck),.reset(reset),.XS(XS),.FIN(FIN),.I0(I0),.I1(I1),
.W(w1),.P0(w2),.P1(w3));
endmodule
63
Tcnicas de realizacin de u. de control
Netlist del
Verilog diseo
Herramienta
de
sntesis
Estrategias:
Cableada (como circuito secuencial sncrono)
Un biestable por estado
Microprogramado
64
Ejemplo de uso de la calculadora
Realizacin de la operacin R03R1-R2
Se trata de una operacin ms compleja no incluida en la
tabla de operacin del sistema.
Se puede realizar mediante una secuencia de instrucciones
(nivel ISP)
Instruccin 1: R0R1
Instruccin 2: R0R0 - R2
Instruccin 3: R0R0+R1
Instruccin 4: R0R0+R1
65
Calculadora frente a computador
Similitudes
Podemos resolver problemas complejos a partir de las
instrucciones del sistema mediante programacin (software).
El usuario no necesita ser especialista en la electrnica del
sistema (hardware).
Deficiencias
No hay automatizacin en la ejecucin del programa: cada
vez que se ejecuta una instruccin el usuario debe activar Xs,
esperar la seal de FIN y suministrar la siguiente.
No hay programa almacenado: para ejecutar cada
instruccin el usuario debe proporcionar los valores D2:0 y
F2:0 para cada una de las tres instrucciones.
66