Upload
cleudiney-theodoro-brandao
View
169
Download
42
Embed Size (px)
Citation preview
SISTEMAS DIGITAIS
CIRCUITOS LOGICOS
SISTEMAS DIGITAIS
ARQUITETURA DE COMPUTADORES
MICROCOMPUTADORES
MICROELETRONICA
+ =
MOTIVAÇÃO
MOTIVAÇÃO
SISTEMAS DIGITAIS
CIRCUITOS LOGICOS
SISTEMAS DIGITAIS
ARQUITETURA DE COMPUTADORES
MICROCOMPUTADORES
MICROELETRONICA
SISTEMAS OPERACIONAIS
+ =
MOTIVAÇÃO
SISTEMAS DIGITAIS
CIRCUITOS LOGICOS
SISTEMAS DIGITAIS
ARQUITETURA DE COMPUTADORES
MICROCOMPUTADORES
MICROELETRONICA
SISTEMAS OPERACIONAIS
REDES
+ =
SISTEMAS DIGITAIS
CIRCUITOS LOGICOS
FLIP-FLOPS
PORTAS
LOGICAS
+ =
PROJETO DE SISTEMAS COMBINACIONAIS E SEQUENCIAIS
SIMPLES
SISTEMAS DIGITAIS
SISTEMAS DIGITAIS
PROJETO DE CIRCUITOS COMPLEXOS ?
EMENTA
SISTEMAS DIGITAIS
MODULOS COMBINACIONAIS FIXOS
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
REPRESENTAÇÃO NUMERICA BINARIA EM PONTO FIXO E EM PONTO FLUTUANTE
ARITMETICA BINARIA EM PONTO FIXO E FLUTUANTE
MODULOS SEQUENCIAIS FIXOS
MODULOS COMBINACIONAIS PROGRAMAVEIS
MODULOS SEQUENCIAIS PROGRAMAVEIS
PROJETOS DE SISTEMAS DIGITAIS
ABORDAGEM RTL
SUBSISTEMAS DE DADOS
SUBSISTEMA DE CONTROLE
CONTROLE MICROPROGRAMADO
CPU
INSTRUÇÕES
PROGRAMAS
ESPECIFICAÇÃO E PROJETO DE UM MICROCOMPUTADOR
PIPELINE
BIBLIOGRAFIA
SISTEMAS DIGITAIS
INTRODUÇÃO AOS SISTEMAS DIGITAISMILOS ERCEGOVAC, TOMAS LANG, JAIME MORENO
BOOKMAN
PRINCIPLES OF DIGITAL DESIGNDANIEL D. GAJSKI
PRENTICE HALL
SISTEMAS DIGITAIS FUNDAMENTOS E APLICAÇÕES
T. L. FLOYD
BOOKMAN
EXERCICIO 1 (CIRC. LOGICOS)
SISTEMAS DIGITAIS
EXPRESSÕES DE CHAVEAMENTO E CIRCUITO
OBS: ESTA ESPECIFICAÇÃO TAMBEM PODERIA SER ATENDIDA POR UM PROJETO BASEADO EM MODULOS FIXOS, MODULOS PROGRAMAVEIS E EM MICROCOMPUTADOR
EM UM PROGRAMA DE PERGUNTAS E RESPOSTAS, O APRESENTADOR FAZ UMA PERGUNTA PARA 3 PARTICIPANTES. AQUELE QUE SOUBER A RESPOSTA, PRESSIONA UM BOTÃO COLOCADO A SUA FRENTE, QUE, POR SUA VEZ, FAZ COM QUE UM LED ASSOCIADO AO BOTÃO SEJA ACESO, CASO NENHUM OUTRO CANDIDATO TENHA, PREVIAMENTE, PRESSIONADO O SEU CORRESPONDENTE BOTÃO. O LED DEVE FICAR ACESO ATÉ QUE O APRESENTADOR PRESSIONE UM BOTÃO DE RESET.
CASO HAJA BOTÕES PRESSIONADOS SIMULTANEAMENTE A PRIORIDADE DEVE SER : BOTÃO 1 , DEPOIS, BOTÃO 2 E, FINALMENTE BOTÃO 3.
PROJETE UM CIRCUITO QUE ATENDA AS ESPECIFICAÇÕES ACIMA, USANDO PORTAS LOGICAS E FLIP-FLOP´s TIPO D COM PRESET E CLEAR, SABENDO QUE : OS LED´s DEVEM SER ACESOS EM NIVEL 0; O CIRCUITO DEVE SER SINCRONO; APENAS O BOTÃO DO APRESENTADOR É ASSINCRONO; DEVE EXISTIR UM FLIP-FLOP POR CANDIDATO E O CLOCK NÃO PODE SER DESABILITADO.
SISTEMAS DIGITAIS
FLIP-FLOPS
PORTAS
LOGICAS
PROJETO DE SISTEMAS COMBINACIONAIS E SEQUENCIAIS
SIMPLES
CIRCUITOS INTEGRADOS DISPONIVEIS
MODULOS
PROGRAMAVEIS
MODULOS
FIXOS
PROJETO DE SISTEMAS COMBINACIONAIS E SEQUENCIAIS
COMPLEXOS
SISTEMAS DIGITAIS
MODULOS COMBINACIONAIS FIXOS
DECODIFICADORES
CODIFICADORES
CODIFICADORES DE PRIORIDADE
MULTIPLEXADORES
DEMULTIPLEXADORES
DESLOCADORES
MODULOS
FIXOS
SISTEMAS DIGITAIS
DECODIFICADORES
XO Y0
X1 Y1
X2 Y2
. .
. .
X N-1 Y N-1
.
.
E Y 2N
-1
ESPECIFICAÇÃO
ENTRADAS: X : X = (XN-1,......,X0) XJ {0,1}
E : E {0,1}
SAIDAS : Y : Y = (Y2N
-1,......,Y0) YJ {0,1}
FUNÇÃO : YI = 1 SE (X=I) E (E=1)
YI = 0 CASO CONTRARIIO
N-1
EM QUE: X = XJ 2J E I = 0,1...,2N –1
J= 0
REDES DECODIFICADORAS
SISTEMAS DIGITAIS
DECODIFICAÇÃO COINCIDENTE
REDES DECODIFICADORAS
SISTEMAS DIGITAIS
E
E
DECODIFICAÇÃO EM ARVORE
VANTAGEM ?
DESVANTAGEM ?
EXERCICIO 2
SISTEMAS DIGITAIS
GND
01
2
31
CHAVE ROTATIVA
VCC
32
0 1 2 31
.....
EXERCICIO 2 – CONTINUAÇÃO
SISTEMAS DIGITAIS
GND
01
2
31
CHAVE ROTATIVA
VCC
BLOCO
CODIFICADOR
BLOCO
DECODIFICADOR
5
?
PROJETE O BLOCO DECOFICADOR ACIMA, USANDO
CI´s 74LS138 E USE DECODIFICAÇÃO EM ARVORE
IO #O0
I1 #O1
I2 #O2
#E .
#E .
E #O7
74LS138
.....
CODIFICADOR
SISTEMAS DIGITAIS
X0 Y0
X1 Y1
X2 Y2
. .
. .
X N-1 Y N-1
X 2N
-1
E A
ESPECIFICAÇÃO
ENTRADAS: X : X = (X2N
-1,......,X0) XJ {0,1}
E : E {0,1}
SAIDAS : Y : Y = (YN-1,......,Y0) YJ {0,1}
A : A {0,1}
FUNÇÃO : Y = I SE (XI=1) E (E=1)
Y = 0 CASO CONTRARIO
A = 1 SE (ALGUM XI = 1) E (E =1)
A = 0 CASO CONTRARIO
N-1
EM QUE: Y = YJ 2J E I = 0,1...,2N –1
J= 0
EXERCICIO 3
SISTEMAS DIGITAIS
GND
01
2
31
CHAVE ROTATIVA
VCC
BLOCO
CODIFICADOR
BLOCO
DECODIFICADOR
5
?
PROJETE O BLOCO COFICADOR ACIMA, USANDO
CI´s DO TIPO DESENHADO AO LADO
IO O0
I1 O1
I2 O2
I3 .
I4 .
I5
I6
I7
E A
CODIFICADOR
.....
EXERCICIO 4
SISTEMAS DIGITAIS
PROJETE UM SISTEMA COMBINACIONAL QUE TENHA UMA ENTRADA X DE 3 BITS, REPRESENTANDO OS DIGITOS DE 0 A 7 E UMA SAIDA Y DE 3 BITS REPRESENTANDO O MESMO CONJUNTO DE NUMEROS, SABENDO QUE A FUNÇÃO DO SISTEMA É Y = (3X) MOD 8.
OBS: USO OBRIGATORIO DE DECOD. E CODIFIC.
CODIFICADOR DE PRIORIDADE
SISTEMAS DIGITAIS
X0 Y0
X1 Y1
X2 Y2
. .
. .
X N-1 Y N-1
X 2N
-1
E A
ESPECIFICAÇÃO
ENTRADAS: X : X = (X2N
-1,......,X0) XJ {0,1}
E : E {0,1}
SAIDAS : Y : Y = (YN-1,......,Y0) YJ {0,1}
A : A {0,1}
FUNÇÃO : Y = I SE (XI=1) E (XK= 0 , K < I) E (E=1)
Y = 0 CASO CONTRARIO
A = 1 SE (ALGUM XI = 1) E (E =1)
A = 0 CASO CONTRARIO
N-1
EM QUE: Y = YJ 2J E I = 0,1...,2N –1
J= 0
EXERCICIO 5
SISTEMAS DIGITAIS
PROJETE UM SISTEMA COMBINACIONAL QUE INDIQUE QUANTOS DESLOCAMENTOS PARA ESQUERDA DEVEMOS EFETUAR EM UM VETOR DE 8 BITS DE MODO QUE O BIT MAIS A ESQUERDA SEJA 1(NORMALIZAÇÃO PARA ESQUERDA).
OBS: USE O CI ABAIXO.IO O0
I1 O1
I2 O2
I3 .
I4 .
I5
I6
I7
E A
CODIFICADOR DE PRIORIDADE
MULTIPLEXADOR
SISTEMAS DIGITAIS
X0
X1
X2
.
.
X N-1 Z
X 2N
-1
E SN-1 .....S1S0
ESPECIFICAÇÃO
ENTRADAS: X : X = (X2N
-1,......,X0) XJ {0,1}
S : S = (SN-1,......,S0) SJ {0,1}
E : E {0,1}
SAIDAS : Z : Z {0,1}
FUNÇÃO : Z = XS SE (E=1)
Z = 0 CASO CONTRARIO
N-1
EM QUE: S = SJ 2J E I,J = 0,1...,2N –1
J= 0
EXERCICIO 6
SISTEMAS DIGITAIS
PROJETE UM SISTEMA COMBINACIONAL PERMITA A ESPIONAR ,POR MEIO DE UM PAINEL DE CHAVES, 4 LINHAS DE COMUNICAÇÃO
?
L0
L1
L2
L3
EXERCICIO 7
SISTEMAS DIGITAIS
PROJETE UM SISTEMA DIGITAL PARA IMPLEMENTAR A FUNÇÃO (ABCD)= CONJUNTO-UM (1,3,4,9,14,15)
DEMULTIPLEXADOR
SISTEMAS DIGITAIS
YO
Y1
Y2
.
.
X YN-1
Y2N-1
E
SN-1 .....S1S0
ESPECIFICAÇÃO
ENTRADAS: X : X {0,1}
E : E {0,1}
S : S = (SN-1,......,S0) SJ {0,1}
SAIDAS : Y : Y = (Y2N
-1,......,Y0) YJ {0,1}
FUNÇÃO : YI = X SE (I = S) E (E = 1)
YI =0 CASO CONTRARIIO
N-1
EM QUE: S = SJ 2J E I,J = 0,1...,2N –1
J= 0
DESLOCADOR – P
SISTEMAS DIGITAIS
X-P
X-P+1
.
XO YO
X1 Y1
X2 Y2
. .
. .
XN-1 YN-1
XN
XN+1 .
.
XN+P-1
E
D
S
USO:MULT/DIV POTENCIA DE 2 – ALINHAMENTO DE VETORES
ESPECIFICAÇÃO
ENTRADAS: X : X = (XN+p -1,..,XN....,X0...X-P) XJ {0,1}
E : E {0,1}
S : S { P,...,0 }
D : D {0,1} D=0: ESQUERDA D=1: DIREITA
SAIDAS : Y : Y = (YN-1,......,Y0) YJ {0,1}
FUNÇÃO : YI = X I-S SE (D=0) E (E = 1)
YI = X I+S SE (D=1) E (E = 1)
YI = 0 SE (E = 0)
USO:-MULTIPLICAÇÃO/DIVISÃO POTENCIA DE 2
-ALINHAMENTO DE VETORES
EXERCICIO 8
SISTEMAS DIGITAIS
PROJETE UM SISTEMA DIGITAL QUE NORMALIZE O VETOR DO EXERCICIO 5
EXERCICIO 9
SISTEMAS DIGITAIS
DOIS SD USAM CODIGOS NÃO CONVENCIONAIS PARA REPRESENTAR NUMEROS INTEIROS ENTRE 0 E 15 DA SEGUINTE MANEIRA:
O SIST. A REPRESENTA UM NUMERO INTEIRO N COMO P = 3N MOD 16.
O SIST. B REPRESENTA UM NUMERO INTEIRO N COMO Q = 7N MOD 16.
PROJETE UM CIRCUITO QUE REALIZE A CONVERSÃO DE CODIGO DO SISTEMA A PARA O SISTEMA B USANDO 2 MUX´s DE 8 ENTRADAS E UM XOR DE 2 ENTRADAS
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
NUMERO BINARIO
NUMERO HEXADECIMAL
NUMERO DECIMAL
10011101 9D 157
NUMERO DECIMAL
NUMERO HEXADECIMAL
NUMERO BINARIO
183 B7 10110111
1 x 27 + 1 x 24 + 1 x 23 + 1 x 22 + 1 x 20 = 128 + 16 + 8 + 4 + 1 = 157
9 x 161 + 13 x 160 = 157
183/16 7 11/16 B 0
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
SOMADOR
+
NYX
Z
CINCOUT
X = Σ XI.2I
I=0
N-1
NUMERO INTEIRO DE O A 2N-1
RELACIONAMENTO ENTRADA E SAIDA
X + Y+ CIN = 2NCOUT + Z
IDEM PARA Y E Z
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
SOMADORESPECIFICAÇÃO
ENTRADAS: X : X = (X2N
-1,......,X0) XJ {0,1}
Y : Y = (YN-1,......,Y0) YJ {0,1}
CIN : CIN {0,1}
SAIDAS : Z : Z = (ZN-1,......,Z0) ZJ {0,1}
COUT : COUT {0,1}
FUNÇÕES : Z = (X + Y + CIN) MOD 2N
COUT = 1 SE (X + Y + CIN) ≥ 2N
COUT = 0 CASO CONTRARIO
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
SOMADOR DE 1 BIT
+
1XI
CICI+1
YI
ZIFUNÇÕES
ZI = XI YI CI
CI+1 = XI . YI + (XI YI) .CI
GI PI
ZI = PI CI
CI+1 = GI + PI .CI
1
1
11
G: GERA CARRYP: PROPAGA CARRY
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
IMPLEMENTAÇÃO DO SOMADOR DE 1 BIT
XI YI CI
GI
ZICI+1
SOMADOR
COMPLETO
FUNÇÕES
GI = XI . YI
PI = (XI YI)
ZI = PI CI
CI+1 = GI + PI .CI
SOMADOR QUANDO NÃOSE TEM CARRY DE ENTRADA
PIMEIO SOMADOR
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
MODULO SOMADOR DE N BIT´s COM CARRY PROPAGADO
+
XN-1
CN
YN-1
ZN-1
+
X0
CN-1 C0C1
Z0
SOMADDORDE 1 BIT
Y0
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
RETARDO DO MODULO SOMADORCI+1 = GI+ PI .CI E Δ RETARDO DE QQ GATE
1O MODULO: C1= G0 +P0.C0 RETARDO: 3 Δ
2O MODULO: C2= G1 +P1.C1 RETARDO: 3 Δ + 2 Δ = 5 Δ
3O MODULO: C3= G2 +P2.C2 RETARDO: 5 Δ + 2 Δ = 7 Δ
4O MODULO: C4= G3+P3.C3 RETARDO: 7 Δ + 2 Δ = 9 Δ
..............................................................................................
NO MODULO: CN= GN-1 +PN-1.C1 RETARDO:
(2N+1) Δ
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
PROJETO DE UM NOVO MODULO SOMADOR COM
RETARDO MENOR
CI+1 = GI+ PI .CI E Δ RETARDO DE QQ GATE
1O MODULO: C1= G0 +P0.C0 RETARDO: 3 Δ
2O MODULO: C2= G1 +P1.C1 = G1+ P1(G0 +P0C0) = G1 +P1G0 +P1P0C0 RETARDO: 3 Δ
3O MODULO: C3= G2 + G1G2 + G0P1P2 + P0P1P2C0 RETARDO: 3 Δ
4O MODULO: C4= G3 + G2P3 + G1P2 P3 + POP1P2P3C0 RETARDO: 3 Δ
..............................................................................................
NO MODULO: ..............
RETARDO: 3 Δ
G P
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
MODULO SOMADOR DE TRANSPORTE DE CARRY ANTECIPADO (EXEMPLO COM 4 BITS)
X0 Y0 C0
G0 P0 S0
X1 Y1 C1
G1 P1 S1
X2 Y2 C2
G2 P2 S2
X3 Y3 C3
G3 P3 S3
C4 G3 P3 C3 G2 P2 C2 G1 P1 C1 G0P0
G P GERADOR DE CARRY ANTECIPADO C0
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
NUMEROS NO FORMATO BCD
BINARIO BCD
0000 0000
0001 0001
0010 0010
0011 0011
0100 0100
0101 0101
0110 0110
0111 0111
BINARIO BCD
1000 1000
1001 1001
1010 10000
1011 10001
1100 10010
1101 10011
1110 10100
1111 10101
+ 6
51
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
SOMADOR BCD
X3 X2 X1 X0 Y3 Y2 Y1 Y0
COUT
Z3 Z2 Z1 Z0 CIN
+
X Y
Z
ESPECIFICAÇÃO
ENTRADAS E SAIDA
X ≤ 9 Y ≤ 9 Z ≤ 9
FUNÇÕES
1 SE X + Y + CIN > 9
COUT =
0 CASO CONTRARIO
X + Y + CIN SE (X + Y + CIN ≤ 9) E COUT=0
Z = X + Y + CIN + 6 SE (X + Y + CIN > 9) E COUT=0 COUT=1
X + Y + CIN + 6 SE (X + Y + CIN ≤ 9) E COUT=1
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
EXEMPLO DE SOMA BCD
0100 4
+
0011 3
0 0111 7
0101 5
+
0111 7
0 1100 C
+ 0110
1 0010 12
1001 9
+
1000 8
1 0001 1
+ 0110
1 0111 17
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
SUBTRATOR
-
NYX
Z
BINBOUT
X = Σ XI.2I
I=0
N-1
NUMERO INTEIRO DE O A 2N-1
RELACIONAMENTO ENTRADA E SAIDA
X - Y- BIN = Z - 2NBOUT
IDEM PARA Y E Z
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
EXEMPLO DE SUBTRAÇÃO
1111 15
-
0111 7
0 1000 8
0101 5
-
0111 7
-2
------------------- 10101 21
-
0111 7
1 1110 14
14 – 16 = - 2
NÃO SE PODE REPRESENTAR UM NUMERO NEGATIVO,QUANDO SE TRABALHA COM NUMEROS POSITIVOS SEM SINAL
EMPRESTIMO
(BORROW)
16
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
SUBTRATORESPECIFICAÇÃO
ENTRADAS: X : X = (Xn-1,......,X0) XJ {0,1}
Y : Y = (YN-1,......,Y0) YJ {0,1}
BIN : BIN {0,1}
SAIDAS : Z : Z = (ZN-1,......,Z0) ZJ {0,1}
BOUT : BOUT {0,1}
FUNÇÕES : Z = (X - Y - BIN) SE (X - Y - BIN) ≥ 0
Z = (X - Y - BIN) + 2N SE (X - Y - BIN) < 0
BOUT = 1 SE (X - Y - BIN) < 0
BOUT = 0 CASO CONTRARIO
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
SUBTRATOR DE 1 BIT
-
1XI
BIBI+1
YI
ZIFUNÇÕES
ZI = XI + YI + BI
BI+1 = XI. YI + (XI + YI) .BI
GI PI
ZI = PI + BI
BI+1 = GI+ PI .BI
REPRESENTAÇÃO E OPERAÇÕES COM NUMERO
INTEIROS COM SINAL
SISTEMAS DIGITAIS
SISTEMA : SINAL/MAGNITUDE
NUMERO INTEIRO X REPRESENTADO COMO (XS,XM)
XS XM
SINAL
(1 BIT)
0 +
1 -
MAGNITUDE
(JBITS)
BIT + SIGNIFICATIVODO VETOR
REPRESENTAÇÃO E OPERAÇÕES COM NUMERO
INTEIROS COM SINAL
SISTEMAS DIGITAIS
REPRESENTAÇÃO DE NUMEROS DE N BITS
( 1 BIT DE SINAL E N-1 BITS DE MAGNITUDE )
- (2N-1 – 1) ≤ X ≤ (2N-1 – 1)
N = 8 - (27 – 1) ≤ X ≤ 27 –1
- 127 ≤ X ≤ 127
ADIÇÃO COM NUMEROS EM SINAL E MAGNITUDE
SISTEMAS DIGITAIS
+ > - < + < - > - -
SOM SUB
+ +
+
SOM SUB
+
SOM SUB
-
SOM
-
SUB
A SUBTRAÇÃO É ANALOGA
COMPLEMENTO A 2
SISTEMAS DIGITAIS
PARA AGILIZAR AS OPERAÇÕES
FOI CRIADO O SISTEMA COMPLEMENTO A 2
NUMERO INTEIRO X REPRESENTADO POR:
X SE X 0 X
XR=
2N - |X| SE X < 0 C2(X)
NUMERO DE BITS DO VETOR
EXEMPLO DE NUMERO EM COMPLEMENTO A 2
SISTEMAS DIGITAIS
N=8
X= 7
X= -7 C2(7) = 28 –7 = 249
X=7 0 0 0 0 0 1 1 1
X= -7 1 1 1 1 1 0 0 1
REPRESENTAÇÃO DOS NUMEROS COM 8 BITS, EM COMPLEMENTO A 2
SISTEMAS DIGITAIS
127 0 1 1 1 1 1 1 1
128 0 1 1 1 1 1 1 0
129 0 1 1 1 1 1 0 1
130 0 1 1 1 1 1 0 0
.
2 0 0 0 0 0 0 1 0
3 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0
-1 1 1 1 1 1 1 1 1
-2 1 1 1 1 1 1 1 0
.
-126 1 0 0 0 0 0 1 0
-127 1 0 0 0 0 0 0 1
-128 1 0 0 0 0 0 0 0
-
+ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 01
X
C2(X)
+
BITS
2N
8 BITS
0
ADIÇÃO EM COMPLEMENTO A 2
SISTEMAS DIGITAIS
X Y
SOM
X + Y
X C2(Y)
SOM
X -Y
2N - Y
12N
C2(X) (Y)
SOM
Y - X
2N - X
12N
C2(X) C2(Y)
SOM
-(X + Y)
2N - X
10
2N+1
2N - Y
COUT
SUBTRAÇÃO EM COMPLEMENTO A 2
SISTEMAS DIGITAIS
X Y
SOM
X - Y
X C2(Y)
SOM
X +Y
Y
C2(X) (Y)
SOM
-X - Y
2N - X
102N+1
C2(X) C2(Y)
SOM
-X + Y
2N - X
1
2N
YC22N - Y
12N
DC2 C22N - Y
DC2
NÃO SE USA MAIS O SUBTRATOR
2N - Y
C2 DC2
COMPLEMENTA DESCOMPLEMENTA
=
EXERCICIO: BLOCO PARA COMPLEMENTAR E BLOCO PARA DESCOMPLEMENTAR
MOSTRE QUE PARA COMPLEMENTAR A 2, OU DESCOMPLEMENTAR, UM VETOR DE 8 BITS, BASTA INVERTER OS BITS DO VETOR E SOMAR 1
SOLUÇÃO DO EXERCICIO
X + C2(X) = 2N
X + #X = 2N - 1
C2(X) = #X + 1
X + C2(X) = 2N
C2(X) + #C2(X) = 2N - 1
X = #C2(X) + 1
SOMADOR/SUBTRATOR P/ COMPLEMENTO A 2
SISTEMAS DIGITAIS
X Y
C2
1 0MUX
+
0 SOMA
1 SUBTR.
COMPLEMENTADOR
SISTEMAS DIGITAIS
X + C2(X) = 2N
X + #X = 2N –1 C2(X) = #X + 1
X Y
1 0MUX
+
0 SOMA
1 SUBTR.
CIN
ESTOURO EM COMPLEMENTO A 2 (OVERFLOW)
SISTEMAS DIGITAIS
ADIÇÃO:
OS 2 OPERANDOS SÃO POSITIVOS OU NEGATIVOS
0
0+
BIT N-2
CARRY =1 P/ ESTOURARCOUT=0
1 COUT-1= 1
1
1
BIT N-2
+
CARRY =0 P/ ESTOURARCOUT-1= 00
COUT=1
P/ OCORRER OVERFLOW1. NUMEROS COM MESMO SINAL
2. APÓS A OPERAÇÃO, O BIT DE SINAL FICA INVERTIDO OU
COUT XOR COUT-1 =1
SUBTRAÇÃO:
RACIOCINIO ANALOGO
ESTOURO EM COMPLEMENTO A 2 (OVERFLOW)
SISTEMAS DIGITAIS
EXEMPLOS(+ 126) + (+126) VAI GERAR OVERFLOW
01111110
01111110___________ COUT-1 = 1(- 126) + (-126) VAI GERAR OVERFLOW
10000010
10000010___________ COUT-1 = 0
+
SUBTRAÇÃO DE NUMEROS SEM SINAL EM SOMADOR/SUBTRATOR C2
SISTEMAS DIGITAISSISTEMAS DIGITAIS
X + C2(X) = 2N
X + #X = 2N –1 C2(X) = #X + 1
X Y
1 0MUX
+
1 SUBTR.
CIN
0 0
#Y
X + #Y +1 = X + 2N- Y
COUT
1
X-Y
COUT
2N
(2N +X) -Y
COUT0
X <Y -> EMPRESTIMO DE 2N ( BORROW)
OK
BORROW = # COUT
INTERPRETAÇÃO DO RESULTADO
SOMADOR/SUBTRATOR C2
SISTEMAS DIGITAISSISTEMAS DIGITAIS
1 0
MUX+ CINCOUT
0 SOMA
1 SUBTR.
1
0COUT
OV
COUT-1
YX
Z
FLAGS DE STATUS
SISTEMAS DIGITAIS
1 0
MUX+ CINCOUT1
0COUT
OV
COUT-1
YX
Q D
CLK
Q D
CLKFC
OV
FLAGS
Z
EXEMPLO
SISTEMAS DIGITAIS
NUMEROS S/SINAL
AL: 00001010 (10)
BL: 10001111 (143)
AL – BL - > AL + #BL +1 =
01111011 (123) BO -> CY=1
123 – 256 = -133
-133
NUMEROS C/SINAL
AL: 00001010 (10)
BL: 10001111 (-113)
AL – BL - > AL + #BL +1 =
:01111011 (123) OV=0
+123
EXERCICIO 10
SISTEMAS DIGITAIS
1. COMPLETE A SEGUINTE TABELA
NUMERO INTEIRO COM SINAL
NUMERO INTEIRO SEM SINAL
VETOR DE BITS
COMPLEMENTO A 2, VETOR COM 7 BITS -37
COMPLEMENTO A 2, VETOR COM 8 BITS 205
COMPLEMENTO A 2, VETOR COM 5BITS 11011
COMPLEMENTO A 2, VETOR COM 8 BITS 9
SINAL-MAGNITUDE , VETOR COM 5BITS 11011
EXERCICIO 10
SISTEMAS DIGITAIS
2. A representação de numeros inteiros pode ser generalizada para a representação de numeros de ponto fixo. Ou seja , o ponto binario , o qual se presume que para os numeros inteiros esteja a direita do digito menos significativo , pode ser colocado entre 2 digitos quaisquer. Para o vetor de bits x = (X6, X5,..., Xo) e um ponto binario entre os bits X4 e X3, determine o numero xmaximo mais positivo e o numero xminimo mais negativo e mostre a sua representacao em vetor de bits correspondente.a. no sistema sinal e magnitudeb. no sistema complemento de 2
EXERCICIO 10
SISTEMAS DIGITAIS
3. Para os pares seguintes de vetores x e y de 8 bits representando numerosinteiros no sistema COMPLEMENTO A 2 ,obtenha os vetores de bits z e d querepresentam z = x + y e d=x-y ,respectivamente. Verifique se obteve o resultado correto.
X: 01011011 y: 00100111X: 10101010 y: 10100000
4. Para os pares seguintes de vetores x e y de 8 bits representando numerosinteiros no sistema SEM SINAL ,obtenha os vetores de bits z e d querepresentam z = x + y e d=x-y ,respectivamente. Verifique se obteve o resultado correto.
X: 01011011 y: 00100111X: 10101010 y: 10100000
EXERCICIO 10
SISTEMAS DIGITAIS
5. PROJETAR UM SUBTRATOR BCD USANDO O MODULO SOMADOR/SUBTRATOR
6. A EXTENSÃO DE FAIXA É EXECUTADA QUANDO É NECESSARIO REPRESENTAR O VALOR X POR UM VETOR DE M BITS , DADA SUA REPRESENTAÇÃO POR UM VETOR DE BITS DE N<M BITS. OU SEJA, Z=X E Z=(Zm-l,Zm-2,...ZO) , X=(Xn-l,Xn-2,...XO)
NO SISTEMA DE COMPLEMENTO A 2 , A EXTENSAO DE FAIXA É IMPLEMENTADA POR :
Xn-1 para i = m-l,...n
Zi =
Xi para i= n-l,..0
PROVE QUE ESTA IMPLEMENTAÇÃO É CORRETA
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
SOMADOR
SUBTRATOR
UNIDADE ARITMETICA
UNIDADE ARITMETICA LOGICA
COMPARADOR
MULTIPLICADOR
DIVISOR
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
UNIDADE ARITMETICA
AU
X Y
Z
F
CIN COUTOV
ZEROSINAL
N
3
COUT : CARRY OU BORROW
OV : OVERFLOW
ZERO : SE Z = 0
SINAL : SINAL DE Z
EXEMPLO DE FUNÇÕES :
SOMA
SOMA C/CIN
SUBRATAÇÃO
INCREMENTO DE X
TROCA DE SINAL DE X
STATUS DA AU
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
UNIDADE ARITMETICA
AU
X Y
Z
F
CIN
COUT
OVZERO
SINAL
N
3
ESPECIFICAÇÃO
ENTRADAS:
X =(X N-1,...X0) XI {0,1}
Y =(X N-1,...X0) XI {0,1}
CIN {0,1}
F = (F2,F1,F0) FI {0,1}
SAIDAS:
Z =(Z N-1,...Z0) ZI {0,1}
COUT,SGN,ZERO,OV {0,1}
FUNÇÕES
F OPERAÇÃO
001 ADD Z = X + Y
011 SUB Z = X - Y
101 ADDC Z = X + Y + CIN
110 CS Z = - X
010 INC Z = X + 1
SGN =1 SE Z< 0, 0 CASO CONTRARIO
ZERO =1 SE Z=0, 0 CASO CONTRARIO
OV =1 SE Z ESTOURAR, 0 CASO CONTRARIO (NO C / SINAL)
COUT =1 SE Z ESTOURAR, 0 CASO CONTRARIO (NO S / SINAL)
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
PROJETO DA UNIDADE ARITMETICAMODULOS BASICOS PARA O PROJETO
K
MUX0 1
+ CINCOUT
C0UT-1
COMPL
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
UNIDADE ARITMETICA
PROJETO
COMPL X COMPL YKx
MUX0 1
000.....00
Kmx
+COUT
C0UT-1C0
SGNZERO
MUX1 0
OV
COUT
X Y
Z
F1= Ky
F2.F1= Kx
F0= Kmx
F1+ F2F0CIN =
C0
F1.F0 =
K2mx
F2 F1 F0CIN
XS
YS
FUNÇÕES
F2 F1 F0 OPERAÇÃO
0 0 1 ADD Z =X + Y
0 1 1 SUB Z = X - Y
1 0 1 ADDC Z = X + Y + CIN
1 1 0 CS Z = - X
0 1 0 INC Z = X + 1
1
0
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
UNIDADE ARITMETICA LOGICA
ALU
X Y
Z
COUTOV
ZEROSINAL
N
3
FUNÇÕES
F OPERAÇÃO
001 ADD Z = X + Y
011 SUB Z = X - Y
101 ADDC Z = X + Y + CIN
110 CS Z = - X
010 INC Z = X + 1
000 AND Z = X.Y
100 OR Z = X + Y
111 XOR Z = X Y
CIN
F
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
OVCOUT
X
Y
F1= Ky
F2.F1= Kx
F0= Kmx
F1+ F2F0CIN = C0
F1.F0 = K2mx
K3mx1
K3mx
F2 F1 F0CIN
UNIDADE ARITMETICA LOGICA (PROJETO)
AU
MUX0 1 2 3
ZSGN
AU
ZERO
ALU
S1
S0
FLAGS DE STATUS ADICIONAIS
SISTEMAS DIGITAIS
Q D
CLK
Q D
CLK
Q D
CLK
ZERO
SGN
PARIDADEZ C/ NO PAR DE 1´s -> FP = 1 (PARIDADE PAR)
Z C/ NO IMPAR DE 1´s -> FP = 0 (PARIDADE IMPAR)
EXEMPLO
SISTEMAS DIGITAIS
SINAL EM NIVEL O -> +
RESULTADO ZERO
PARIDADE PAR
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
COMPARADORES (NUMEROS SEM SINAL)
GOUT GIN
EOUT EIN
SOUT SIN
X Y
EXERCICIO 11
SISTEMAS DIGITAIS
COMPARE 2 VETORES DE 8 BITS USANDO COMPARADORES DE 4 BITS
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
MULTIPLICADOR PARA NUMEROS S/SINAL
X Y
x
Z
NM
N + M
ESPECIFICAÇÃO
ENTRADAS:
X : X = (Xn-1,......,X0) XJ {0,1}
Y : Y = (YM-1,......,Y0) YJ {0,1}
SAIDAS :
Z : Z = (ZN+M-1,......,Z0) ZJ {0,1}
FUNÇÃO :
Z = X.Y
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
MULTIPLICADOR PARA NUMEROS S/SINAL
IMPLEMENTAÇÃO
Z = X . Y
M-1 M-1
Z = X . ( Σ YI2I) = ( Σ XYI 2I )
I=0 I=0
XYI = 0 SE YI = 0
XYI = X SE YI = 1
IMPLEMENTADO POR
AND´s
DESLOCAMENTO DE I POSIÇÕES PARA A ESQUERDA
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
MULTIPLICADOR PARA NUMEROS S/SINAL
X Y
43
X3Y0 X2Y0 X1Y0 X0Y0
X3Y1 X2Y1 X1Y1 X0Y1
X3Y2 X2Y2 X1Y2 X0Y2
+
Z
7
SISTEMAS DIGITAIS
MULTIPLICADOR PARA NUMEROS S/SINAL (IMPLEMENTAÇÃO)
Z
Y
7
3 +
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
X3Y0 X2Y0 X1Y0 X0Y0
X3Y1 X2Y1 X1Y1 X0Y1
X3Y2 X2Y2 X1Y2 X0Y2
BLOCO AND/SOMADOR COM 3 ENTRADAS E 2 SAIDAS
X
4
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
SISTEMAS DIGITAIS
DIVISOR PARA NUMEROS S/SINAL
EX
N
N/2 N/2
X
Y
ZR
ESPECIFICAÇÃO
ENTRADAS:
X =(X N-1,...X0) XI {0,1}
Y =(X N/2-1,...X0) XI {0,1}
SAIDAS:
Z =(Z N/2-1,...Z0) ZI {0,1}
R =(R N/2-1,...R0) RI {0,1}
EX {0,1}
FUNÇÕES:
Z = X/Y
R = X MOD Y
EX =1 (se ZN-1+ ZN-2 + ZN-3+... + ZN/2=1)
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
OU
DIVISOR
N/2
MODULOS COMBINACIONAIS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
IMPLEMENTAÇÃO
X7 X6 X5 X4 X3 X2 X1 X0 Y3 Y2 Y1Y0
X7Y3Y2Y1Y0
- B
X61 0
Z7
Y3Y2Y1Y0
- B X5
Z6
1 0
- B
1 0
Z5Y3Y2Y1Y0
X4
Y3Y2YY0
- B Z5
1 0 X3
MODULOS ARITMETICOS FIXOS
X4 X3
X6 X5
SISTEMAS DIGITAIS
Y3Y2Y1Y0
- B X2
1 0
Z3
Y3Y2Y1Y0
- B X1
Z2
1 0
- B
1 0
Z1Y3Y2Y1Y0
X0
Y3Y2Y1Y0
- B Z0
1 0
R3 R2 R1R0Z7Z6Z5Z4
Z3Z2Z1Z0
EX
MODULOS ARITMETICOS FIXOS
X2 X1
X0
SISTEMAS DIGITAIS
EXEMPLO
10001010 0111X Y
Z_ _ _ _R
10001010 0111
0_ _ _
X Y
Z_ _ _ _R
<
_ _ _ _ _ _ _ _
_ _ _ _
10001010 0111
00 _ _
X Y
Z_ _ _ _R
<
_ _ _ _
MODULOS ARITMETICOS FIXOS
SISTEMAS DIGITAIS
10001010 0111X Y
Z_ _ _ _R
10001010 0111
0001
X Y
Z0001R
>
000_ _ _ _ _
_ _ _ _
MODULOS ARITMETICOS FIXOS
<
0111-
10001010 0111
0001
X Y
Z0001R
<
0 _ _ _ 0111
- 1
SISTEMAS DIGITAIS
MODULOS ARITMETICOS FIXOS
10001010 0111
0001
X Y
Z0001
<
00 _ _ 0111
-R 10
10001010 0111
0001
X Y
Z0001
>
001 _ 0111
R 101
0 111
0 110
-
10001010 0111
0001
X Y
Z0001
>
00110111
101
0 111
0 1100
SISTEMAS DIGITAIS
MODULOS ARITMETICOS FIXOS
--
0111-0101R 5
19 VERIFICAÇÃO
19 x 7 +5 = 138
138 7
# 0 -> EXCEÇÃO
SISTEMAS DIGITAIS
MODULOS ARITMETICOS FIXOS
0700H = 1792
1792/02 = 896 > 255 -> ESTOURO
SISTEMAS DIGITAIS
MODULOS ARITMETICOS FIXOS
25
RESTO QUOCIENTE
0700H -> 1792
30H -> 48
25H -> 37
10H -> 16
1792 / 48 = 37 R 16
10
SISTEMAS DIGITAIS
EXERCICIO 11APREENCHA A TABELA ABAIXO:
SOMA FC FO FS FZ FP
SOMA
SUB
SUB
MUL
MUL
DIV
DIV
SEM SINALCOM SINALSEM SINALCOM SINALSEM SINALCOM SINAL
SEM SINALCOM SINAL
10101010 01010101
BINARIO DECIMAL
SISTEMAS DIGITAIS
EXERCICIO 11B
PREENCHA A TABELA ABAIXO
FC FO FS FZ FP
AND
OR
XOR
10101010 01010101
SISTEMAS DIGITAIS
ARITMETICA EM PONTO FLUTUANTE
REPRESENTAÇÃO BINARIA EM PONTO FLUTUANTE
_ . _ _ _ _ _ _ _ ...... _ _ _ 2
_ _ _ _ _ _ _ _ ...... _ _ _
SINAL DO NUMERO
PONTO BINARIO
MANTISSASINAL DO EXPOENTE
EXPOENTE
SISTEMAS DIGITAIS
ARITMETICA EM PONTO FLUTUANTE
COMO REPRESENTAR + 5 EM PONTO FLUTUANTE ?
MANTISSA : 9 BITS ( INCLUINDO O BIT DE SINAL)
EXPOENTE : 6 BITS ( INCLUINDO O BIT DE SINAL)
0.00000101 2 001000+ +
0.00001010 2 000111+ +
0.00010100 2 000110+ +
0.10100000 2 000011+ +.........................................
OU
OU
OU
QUAL É A MELHOR REPRESENTAÇÃO ?
NÃO TEM COMPL A 2 EM PT.
FLUTUANTE
SISTEMAS DIGITAIS
ARITMETICA EM PONTO FLUTUANTE
COMO REPRESENTAR +0,25 EM PONTO FLUTUANTE ?MANTISSA : 9 BITS ( INCLUINDO O BIT DE SINAL)
EXPOENTE : 6 BITS ( INCLUINDO O BIT DE SINAL)
0.01000000 2 000000
0.10000000 2 100001
OU QUAL É A MELHOR REPRESENTAÇÃO ?
0,25 = 1 / 4 = 1 / 22
+ +
+ -
SISTEMAS DIGITAIS
ARITMETICA EM PONTO FLUTUANTE
MULTIPLICAÇÃO: (+ 5 X + 5) EM PONTO FLUTUANTE ?
0.00000101 2 001000
0.00000101 2 001000X
0.00000000 00011001 2 010000OU
0.00000001 11001000 2 001100
OU
0.11001000 00000000 2 000101MELHOR REPRESENTAÇÃO
SISTEMAS DIGITAIS
ARITMETICA EM PONTO FLUTUANTE
FORMATO NORMALIZADO
_ . 1 _ _ _ _ _ _ ..... _ _ 2
_ _ _ _ _ _ _ ...... _ _ _
SINAL DO NUMERO
MANTISSA
SINAL DO EXPOENTE
EXPOENTE
FORMATO NORMALIZADO REAL
_ 1. _ _ _ _ _ _ ..... _ _ 2
_ _ _ _ _ _ _ _ ...... _ _ _
SEMPRE EXISTEM, NÃO NECESSITAM SER ARMAZENADOS NA MEMORIA
ARMAZENAMENTO NA MEMORIASINAL DO NO| EXPOENTE C/SINAL| MANTISSA
SISTEMAS DIGITAIS
ARITMETICA EM PONTO FLUTUANTE
COMO REPRESENTAR + 5 EM PONTO FLUTUANTE NO FORMATO NORMALIZADO ?
01.01000000 2 000010+ +
ARMAZENAMENTO NA MEMORIA
0| 000010| 01000000
SINAL
EXPOENTE MANTISSA
SISTEMAS DIGITAIS
ARITMETICA EM PONTO FLUTUANTE
COMPARAÇÃO ENTRE 2 NUMEROS EM PONTO FLUTUANTESINAL NO| SINAL EXP| EXPOENTE|MANTISSA
SINAL NO| SINAL EXP| EXPOENTE|MANTISSA
1 2 3 4
SISTEMAS DIGITAIS
ARITMETICA EM PONTO FLUTUANTE
MODIFICAÇÃO NO EXPOENTE PARA FACILITAR A COMPARAÇÃO ENTRE 2 NUMEROS EM PONTO FLUTUANTE
+31
+0-0
- 30
62
31
1
0
63
-31
+31
+31
+ PESO
APÓS A MODIFICAÇÃO, OS EXPOENTES SÃO POSITIVOS
USADOS MAIS
ADIANTE
PESO =31
SISTEMAS DIGITAIS
ARITMETICA EM PONTO FLUTUANTE
COMPARAÇÃO ENTRE 2 NUMEROS EM PONTO FLUTUANTE, EXPOENTES COM PESO
SINALNO| EXPOENTE|MANTISSA
SINALNO| EXPOENTE|MANTISSA
1 2
SISTEMAS DIGITAIS
ARITMETICA EM PONTO FLUTUANTE
REPRESENTAÇÃO DE + 5 EM PONTO FLUTUANTE NO FORMATO NORMALIZADO SEM PESO
01.01000000 2 000010+ +
ARMAZENAMENTO NA MEMORIA
0| 100001| 01000000
REPRESENTAÇÃO DE + 5 EM PONTO FLUTUANTE NO FORMATO NORMALIZADO COM PESO
01.01000000 2 100001+
+ 31
SISTEMAS DIGITAIS
ARITMETICA EM PONTO FLUTUANTE
INTERVALOS DE REPRESENTAÇÃO DOS NUMEROS
0 +- MAIOR
VALOR
(MODULO)
MAIOR
VALOR
(MODULO)
MENOR
VALOR
(MODULO)
MENOR
VALOR
(MODULO)
OVERFLOWOVERFLOWUNDERFLOW
01.11111111211111001.000000002000001
C/ PESOC/ PESO
SISTEMAS DIGITAIS
ARITMETICA EM PONTO FLUTUANTE
01.00000000210001001.000000002000001- 100010 + 011111
EXEMPLO DE GERAÇÃO DE UNDERFLOW
01.000000002000001
= 1 - 34 + 31 = - 2
UNDERFLOW
PARA OS CASOS DE UNDERFLOW SÃO PERMITIDOS NUMEROS NÃO NORMALIZADOS COM EXPOENTE ZERO
00.010000002000000
/2 +2
REPRESENTAÇÃO DO ZERO :
00.000000002000000
0
/2
SISTEMAS DIGITAIS
ARITMETICA EM PONTO FLUTUANTE
01.00000000211111
0
01.000000002111110 +111110 - 011111
EXEMPLO DE GERAÇÃO DE OVERFLOW
01.000000002111110
= 62 + 62 - 31 = + 93
OVERFLOWX
REPRESENTAÇÃO DO OVERFLOW ( INFINITO): 00.000000002111111
63
SISTEMAS DIGITAIS
ARITMETICA EM PONTO FLUTUANTE
PADRÃO IEEE 754PRECISÃO SIMPLES
(-1)S X ( 1 + M) X 2E
IMPLICITO(NÃO PRECISA
SER ARMAZENADO)
S|EXPONTE|MANTISSA
1 | 8 BITS | 23 BITS 32 BITS
PESO: 127
PRECISÃO DUPLA
(-1)S X ( 1 + M) X 2E
IMPLICITO(NÃO PRECISA
SER ARMAZENADO)
S|EXPONTE|MANTISSA
1 | 11 BITS | 52 BITS 64 BITS
PESO: 1023
SISTEMAS DIGITAIS
ARITMETICA EM PONTO FLUTUANTE
REPRESENTAÇÃO DE -0,75 NO PADRÃO IEEE 754, PRECISÃO SIMPLES
- 0,75 = - 3 / 4 -> - 0.1120 -> - 1.1 X 2-1
1|01111110|1000000000000000000000031 30................ 23 22 0
+ 127
QUAL O NUMERO QUE O VETOR BINARIO ESTÁ REPRESENTANDO EM PRECISÃO SIMPLES ?
1|10000001|01000000000000000000000
- 129 – 127 = 2
1 1/4
- 1,25 X 22 = -5
SISTEMAS DIGITAIS
ADIÇÃO EM PONTO FLUTUANTE
S M E
S M
E+
S M
S M
E
+
00..0
E
E
MS
NORMALIZAÇÃO
OVERFLOW ?
UNDERFLOW ?
EXCEÇÃO
OBS: ARREDONDAR A MANTISSA PODE DESNORMALIZAR
SISTEMAS DIGITAIS
EXEMPLO ADIÇÃO EM PONTO FLUTUANTE
1.001
1.001+
10.010
NORMALIZAR
1.001
0.010-
0.111
NORMALIZAR
DEPOIS DE IGUALADOS OS EXPOENTES...
SISTEMAS DIGITAIS
ADIÇÃO EM PONTO FLUTUANTE
HARDWARE PARA SOMA EM PONTOFLUTUANTES| EXP|MANTISSA S| EXP|MANTISSA
UA EX -MUX
C
MUX MUX
DESL. DIR.
UA MANT
+MUX
MUX
DIR/ESQINC/DEC
COMPARAÇÃO DE EXPOENTES
DESLOCAMENTO À DIREITA DO MENOR NUMERO
SOMA
NORMALIZAÇÃO
SISTEMAS DIGITAIS
ADIÇÃO EM PONTO FLUTUANTE
HARDWARE PARA SOMA EM PONTOFLUTUANTE (CONTINUAÇÃO)
UAMANT +
DIR/ESQINC/DEC
NORMALIZAÇÃO
MUXMUX
C
HARD. DE ARREDONDAMENTO
S| EXPOENTE| MANTISSA
ARREDONDAMENTO
REPETIDO DO SLIDE ANTERIOR
SISTEMAS DIGITAIS
MULTIPLICAÇÃO EM PONTO FLUTUANTE
S M
X
E
M
NORMALIZAÇÃO
OVERFLOW ?
UNDERFLOW ?
EXCEÇÃO
OBS: ARREDONDAR A MANTISSA PODE DESNORMALIZAR
E
E
S M
P+ -
S
SISTEMAS DIGITAIS
EX. DE MULTIPLICAÇÃO DE MANTISSAS EM PONTO FLUTUANTE
1.001
1.001X
1001
00000000
1001
1.010001
NORMALIZADO
1.100
1.100X
1100
00001100
0000
10.010000
DESNORMALIZADO
NORMALIZAR
SISTEMAS DIGITAIS
TIPOS NUMERICOS NO PADRÃO IEEE
NUMERO |SINAL |EXPOENTE | MANTISSA
NORMALIZADO|+/- |0 < ... 11..111 | QUALQUER 0
NÃO NORMAL |+/- | 0 | QUALQUER 0ZERO |+/- | 0 | 0
INFINITO |+/- | 111............11 | 0
NaN |+/- |111 ...........11 | QUALQUER 0
GERAÇÃO DE NaN : / , - , 0/0
SISTEMAS DIGITAIS
EXERCICIO 12
1. CONVERTA OS SEGUINTES NUMEROS PARA O FORMATO IEEE 754 ,USANDO A PRECISAO SIMPLES. FORNEÇA O VETOR RESULTADO COMPACTADO COM 8 DIGITOS HEXADECIMAIS
A. 9 B. 5/32 C.-5/32 D. 6,125
2. CONVERTA OS SEGUINTES NUMEROS, EXPRESSOS NO FORMATOIEEE754 , PRECISAO SIMPLES , COMPACTADOS EM HEXADECIMAL, PARADECIMAL
A. 42E48000 B. 3F880000 C. C7F00000
3. SOME OS NUMEROS 3EE00000H E 3D800000H EXPRESSOS NOFORMATO IEEE 754 , PRECISAO SIMPLES. O RESULTADONORMALIZADO DEVE SER FORNECIDO COMPACTADO EM HEXADECIMAL.
4. MULTIPLIQUE OS NUMEROS ACIMA
5. DIVIDA OS NUMEROS ACIMA
SISTEMAS DIGITAIS
EXERCICIO 12
6, UM PROGRAMA CALCULA REQ PELA EXPRESSAO REQ =1/ ( 1/R1 +I/ R2 + 1/R3
) SABENDO QUE R1=R2 = R3 = 0, E QUE OS NUMEROS ESTAO NO FORMATO IEEE 754 , PRECISAO SIMPLES , QUAIS SAO OS NUMEROS( NO FORMATO
ACIMA) UTILIZADOS E GERADOS PARA CALCULAR REQ?
7. MOSTRE QUE A CONVERSÃO DE UM NUMERO FRACIONARIO DECIMAL EM BINARIO ENVOLVE REPETIDAS MULTIPLICAÇÕES POR 2. A CADA PASSO, A PARTE FRACIONARIA DO NUMERO DECIMAL É MULTIPLICADA POR 2. O DIGITO A ESQUERDA DA VIRGULA DECIMAL SERÁ 0 OU 1 E CONTRIBUIRÁ PARA A CORRESPONDENTE PARTE BINARIA, COMEÇANDO PELO BIT MAIS SIGNIFICATIVO. A PARTE FRACIONARIA DO PRODUTO É USADA COMO MULTIPLICANDO NO PROXIMO PASSO.
CONVERTA 0,5125 PARA O FORMATO IEEE 754, PRECISÃO SIMPLES.
SISTEMAS DIGITAIS
MODULOS SEQUENCIAIS FIXOS
REGISTRADOR
REGISTRADOR DE DESLOCAMENTO
CONTADOR
SISTEMAS DIGITAIS
REGISTRADORES
USO: ARMAZENAMENTO DE ESTADOS EM MAQUINAS SEQUENCIAIS
LD
CLK
CLR
REG
X
Z
N
ENTRADAS:
X =(X N-1,...X0) XI {0,1}
LD, CLK, CLR {0,1}
ESTADO:
S=(SN-1,...S0) SI {0,1}
SAIDAS:
Z =(Z N-1,...Z0) ZI {0,1}
FUNÇÕES
ESTAD0
S(T +1) = X(T) SE LD(T) =1 E CLR (T) =0
= S(T) SE LD(T) =0 E CLR (T) =0
= 0 SE CLR(T) = 1
SAIDA
Z(T) = S(T)
ESPECIFICAÇÃO
SINCRONO
ASSINCRON
O
SISTEMAS DIGITAIS
IMPLEMENTAÇÃO DO BIT I DO REGISTRADOR
D Q
CLK
CLR
LD01
X I
Z I
CLK
CLR
REGISTRADORES
SISTEMAS DIGITAIS
EXERCICIO 13
PROJETE UM SISTEMA COM A ESPECIFICAÇÃO ABAIXO, USANDO:
1. FLIP-FLOP´s TIPO D
2. REGISTRADORES
0
A =0
1A =1
A =0
3A =1
A =0
2A =1
A =0
A=1
SISTEMAS DIGITAIS
EXERCICIO 13 – SOLUÇÃO
S1S0 S1+
A=0 A=1
0 0 0 0
0 1 0 1
1 1 1 1
1 0 1 0
S1S0 S0+
A=0 A=1
0 0 0 1
0 1 1 1
1 1 1 0
1 0 0 0
S1+ = S1. #A + S0.A S0+ = S0. #A + #S1.A
SISTEMAS DIGITAIS
EXERCICIO 13 – SOLUÇÃO
S1+ = S1. #A + S0.AS0+ = S0. #A + #S1.A
IMPLEMENTAÇÃO COM FLIP-FLOP´s
D Q
CLK
#Q
D Q
CLK
#Q
S1+
S0+
S1
S0
A
O
R
O
R
SISTEMAS DIGITAIS
EXERCICIO 13 – SOLUÇÃO
S1+ = S1. #A + S0.AS0+ = S0. #A + #S1.A
IMPLEMENTAÇÃO COM REGISTRADOR
LD X1 X0
CLK
CLR Z1 Z0
ACLK
CLR
REG
SISTEMAS DIGITAIS
REGISTRADORES DE DESLOCAMENTO
USO: TRANSFERENCIA SERIAL DE BITS
XR XL
CLK
CTRL
REG
X
Z
N
ENTRADAS:
X =(X N-1,...X0) XI {0,1}
XR, XL ,CLK {0,1}
CTRL {CARGA,ESQUERDA, DIR,NADA}
ESTADO:
S=(SN-1,...S0) SI {0,1}
SAIDAS:
Z =(Z N-1,...Z0) ZI {0,1}
FUNÇÕES
ESTAD0
S(T +1) =S(T) SE CTRL = NADA
= X(T) SE CTRL = CARGA
= (SN-2,...S0,,XL) SE CTRL = ESQ.
= (XR,SN-1, ...S1) SE CTLR = DIR
SAIDA
Z(T) = S(T)
ESPECIFICAÇÃO
2
SISTEMAS DIGITAIS
D Q
CLK
X I
Z I
REGISTRADORES DE DESLOCAMENTO(IMPLEMENTAÇÃO BIT I)
D Q
CLK
IMPLEMENTAÇÃO
D Q
CLK
3 2 1 0 S1
S0
CTRL1
CTRL0
CTRL1 CTRLO
0 0 NADA
0 1 ESQ
1 0 DIR
1 1 CARGA
SISTEMAS DIGITAIS
EXERCICIO 14
1. PROJETE UM SISTEMA COM A SEGUINTE ESPECIFICAÇÃO:
ENTRADA: X(T) ,SAIDA: Y(T) FUNÇÃO: X(T).X(T-8) =1
2. PROJETE UM SISTEMA COM A SEGUINTE ESPECIFICAÇÃO:
ENTRADA: X(T) ,SAIDA: Y(T)
FUNÇÃO: X(T-8,T)) = 011101101
SISTEMAS DIGITAIS
INTERCONEXÃO ENTRE REGISTRADORES VIA BARRAMENTO DE DADOS
#LD X
#OE REG
CLK Z
CONTROLE DE ALTA IMPEDANCIA
DBO
DB7
DB: DATA BUS
8
SISTEMAS DIGITAIS
CONTROLE DE ALTA IMPEDANCIA
VCC
GND#OE
CIVCC
GND#OE
CIVCC
GND#OE
CI
VCC
GND#OE
CI
GND
NIVEL
1
GND
NIVEL
0
VCC
NIVEL
Z
3O
ESTADO
ALTA
IMPEDANCIA
ESTAGIO DE SAIDA
SISTEMAS DIGITAIS
INTERCONEXÃO ENTRE REGISTRADORES VIA BARRAMENTO DE DADOS
#LD X
#OE REGA
CLK
Z
#LD X
#OE REGB
CLK
Z
#LD X
#OE REGC
CLK
Z
N BITS
REPRESENTAÇÃO SIMPLIFICADA
SISTEMAS DIGITAIS
INTERCONEXÃO ENTRE REGISTRADORES VIA BARRAMENTO DE DADOS
#LD X
#OE REGA
CLK
Z
#LD X
#OE REGB
CLK
Z
#LD X
#OE REGC
CLK
Z
N BITS
REPRESENTAÇÃO SIMPLIFICADA (METODO REUNIÃO DE LINHAS)
SISTEMAS DIGITAIS
INTERCONEXÃO ENTRE REGISTRADORES VIA BARRAMENTO DE DADOS
ESTADO DOS SINAIS PARA TRANSFERIR O CONTEUDO DO REG A PARA O REG C # LDA| # LDB| #LDC| #OEA| #OEB|# OEC
1 1 0 0 1 1
A TRANSFERENCIA OCORRE NA TRANSIÇÃO DO CLOCK
DIAGR DE TEMPO DOS SINAIS NA TRANSFERENCIA DO DADO 1011 DO REG A PARA O REG C
CLK#LDC#OEADB3DB2DB1DB0
... ...
... ...
... ...
... ...
01
11
CLK#LDC
DB3
#OEA
... ...1011DB0
SISTEMAS DIGITAIS
INTERCONEXÃO ENTRE REGISTRADORES VIA BARRAMENTO DE DADOS
#LD
#OE REG
CLK X/Z
CONTROLE DE ALTA IMPEDANCIA
REGISTRADOR BIDIRECIONAL
SISTEMAS DIGITAIS
INTERCONEXÃO ENTRE REGISTRADORES VIA BARRAMENTO DE DADOS
#LD
#OE REG
CLK X/Z
CONTROLE DE ALTA IMPEDANCIA
REGISTRADOR BIDIRECIONAL
REPRESENTAÇÃO SIMPLIFICADA
SISTEMAS DIGITAIS
INTERCONEXÃO ENTRE REGISTRADORES VIA BARRAMENTO DE DADOS
#LD
#OE REG
CLK X/Z
CONTROLE DE ALTA IMPEDANCIA
REGISTRADOR BIDIRECIONAL
REPRESENTAÇÃO SIMPLIFICADA
METODO REUNIAO DAS LINHAS
SISTEMAS DIGITAIS
EXERCICIO 15
1. OS REG`s A, B, C ESTÃO INICIALMENTE CARREGADOS COM 1011,1000,0111.
OS SINAIS DA FIG. SÃO ENTÃO APLICADOS AOS REGISTRADORES.
A. DETERMINE O CONTEUDO DE CADA REG NOS INSTANTES T1,T2,T3,T4
B. DESCREVA O QUE ACONTECERIA SE #LDA =0 QUANDO O TERCEIRO PULSO DE CLOCK OCORESSE.
A B C
T3T1 T2 T4
CLK
#0EA
#0EB#0EC#LDA#LDB#LDC
C. DESENHE O SINAL EM DB3
SISTEMAS DIGITAIS
EXERCICIO 15 CONTINUAÇÃO
2.A FIG. MOSTRA 2 DISPOSITIVOS EXTRAS QUE FORAM CONECTADOS AO BUS DE DADOS. UM DELES UM CONJUNTO DE CHAVES COM BUFFERS, QUE PODEM SER USADAS PARA ENTRADA DE DADOS MANUAL EM QQ DOS REG´s DO BUS. O OUTRO É UM REG DE SAIDA QUE É UTILIZADO PARA ARMAZENAR QQ DADO QUE ESTEJA NO BUS DURANTE UMA TRANSFERENCIA DE DADOS E APRESENTÁ-LO A UM CONJUNTO DE LEDS.
A. SUPONHA QUE TODOS OS REG´s
CONTENHAM 0000.FAÇA UM RESUMO
DA SEQUENCIA DE OPERAÇÕES
NECESSARIAS PARA CARREGAR OS REG`S
COM OS SEGUINTES DADOS, PELAS CHAVES:
A: 1011 B: 0001 C: 1110
B. QUAL SERÁ O ESTADO DOS LEDS NO
FINAL DESTA SEQUENCIA ?
A B C
CLK
D Q
D Q
D Q
D Q
VCC
#ESWGND
VCC
CH0
CH3
CH1
CH2
CLK
L3
L2
L1
L0
SISTEMAS DIGITAIS
EXERCICIO 15 CONTINUAÇÃO
A B C
CLK
D Q
D Q
D Q
D Q
VCC
#ESWGND
VCC
CH0
CH3
CH1
CH2
CLK
L3
L2
L1
L0
A1 #O3
A0 #O2
#E #O1
#O0
A1 #O3
A0 #O2
#E #O1
#O0
DEC. DUAL
GND
GND
OS1
OS0
IS1
IS0
#ESW
#OEC
#OEB
#OEA
#LDC
#LDB
#LDA
T0 T1 T2 T3
OS1
OS0
IS1
IS0CLK
3. SUPONDO QUE TODOS OS REG`s ESTÃO COM 0000 NO INSTANTE TO E AS CHAVES ESTÃO NA POSIÇÃO MOSTRADA NA FIGURA
A. QUAL O CONTEUDO DE CADA REG. EM T1, T2 E T3 ?
B. PODE OCORRER CONTENÇÃO DE BARRAMENTO NESTE CIRCUITO ? EXPLIQUE
Lj: LED
SISTEMAS DIGITAIS
EXERCICIO 16
UMA MEMORIA CONTEM VARIOS REGISTRADORES, UMA VIA CODIFICADA PARA SELECIONAR UM REGISTRADOR, UMA VIA BIDIRECIONAL PARA LEITURA OU ESCRITA DE DADOS, UM SINAL DE COMANDO DE LEITURA , UM SINAL DE COMANDO DE ESCRITA E UM SINAL DE SELEÇÃO DE MEMORIA, CONFORME É MOSTRADO NA FIG. ABAIXO:
REG1
....
REGN-1
REG0J
B. END
2J = N
B. DADOS B. DADOS
#RD
#CS#WR
SISTEMAS DIGITAIS
EXERCICIO 16 - CONTINUAÇÃO
1. PROJETE UMA MEMORIA 8 x 8 ( OITO REGISTRADORES – OITO ENDEREÇOS – OITO POSIÇÕES CADA UMA COM OITO BITS), USANDO OS COMPONENTES ABAIXO:
I0 00
I1 01
I2 O2
I3 O3
I4 04
I5 05
I6 O6
I7 O7
STB
#OE
LATCH
STB #OE Q O
0 0 Q Q
0 1 Q Z
1 0 I I
1 1 I Z
I OQ3S
I0 #00
I1 #01
I2 #O2
#O3
#04
#05
#O6
#O7
#E
DECOD.
I
MEMORIA
SISTEMAS DIGITAIS
EXERCICIO 16 - CONTINUAÇÃO
2. PROJETE UM MODULO DE MEMORIA 16 x 8, USANDO MEMORIAS 8 x 8 :
3. PROJETE UM MODULO DE MEMORIA 8 x 16, USANDO MEMORIAS 8 x 8 :
MEMORIA
MEMORIA
USO MAIS COMUM: CONTAR EVENTOS
REG
SISTEMAS DIGITAIS
CONTADOR MODULO P
CNT
CLK
CLR TC
REG
Z
ENTRADAS:
CNT, CLR,CLK {0,1}
ESTADO:
S: = S {0,1,2 ...P-1}
SAIDAS:
Z: = Z {0,1,2 ...P-1}
TC {0,1}
FUNÇÕES
ESTAD0
S(T +1) =(S(T)+ CNT) MOD P SE CLR =0
S(T +1) = 0 SE CLR =1
SAIDA
Z(T) = S(T)
TC(T) = 1 SE S(T) = P-1 , CNT=1 E CLR =0
= 0 CASO CONTRARIO
ESPECIFICAÇÃO
CONTAGEM TERMINAL
ASSINCRONO
SISTEMAS DIGITAIS
CONTADOR MODULO P
TIPOS DE CONTADORES
COM RELAÇÃO A CONTAGEM
UP : CONTAR P/ CIMA
DOWN : CONTAR P/ BAIXO
UP / DOWN : CONTAR P/ CIMA E P / BAIXO
( NECESSITA DE SINAL DE CONTROLE ADICIONAL)
COM RELAÇÃO AO CODIGO
BINARIO
BCD
ANEL
SISTEMAS DIGITAIS
CONTADOR MODULO P
ESTADO |BINARIO | BCD | ANEL
0 |0000 |0000 |00000001
1 |0001 |0001 |00000010
2 |0010 |0010 |00000100
3 |0011 |0011 |00001000
4 |0100 |0100 |00010000
5 |0101 |0101 |00100000
6 |0110 |0110 |01000000
7 |0111 |0111 |10000000
8 |1000 |1000 |
9 |1001 |1001 |
10 |1010
11 |1011
12 |1100
13 |1101
14 |1110
15 |1111
REG
SISTEMAS DIGITAIS
CONTADOR BINARIO COM ENTRADA PARALELA, MODULO 16
CNT I3 I2 I1 I0
CLK
CLR TC
LD O3 O2 O1 O0
REG
Z
ENTRADAS:
I : I = (I3,I2,I1,I0) IJ ε{0,1} I {0,1 ...15}
LD, CNT, CLR,CLK {0,1}
ESTADO:
S : S = (S3,S2,S1,S0) SJ ε{ 0,1} S {0,1...15}
SAIDAS:
Z : Z = (Z3,Z2,Z1,Z0) ZJ ε{0,1} Z {0,1...15}
TC {0,1}
FUNÇÕES
ESTAD0
S(T +1) =(S(T )+ CNT) MOD16 SE LD = 0
S(T +1) = I SE LD = 1
S(T +1) = 0 SE CLR = 1
S(T +1) = S(T) CASO CONTRARIO
ESPECIFICAÇÃOI
SAIDA
Z(T) = S(T)
TC(T) = 1 SE S(T) = 15 E CNT = 1,CLR=0
= 0 CASO CONTRARIO
LD E CNT, SE ATIVADOS AO MESMO TEMPO,
PREVALECE O LD
SISTEMAS DIGITAIS
CONTADOR MODULO K (2 k 16)
CNT I3 I2 I1 I0
CLK
CLR TC
LD O3 O2 O1 O0
EX: CONTADOR MODULO 12 USANDO CONTADOR MODULO 16
0 0 0 0
TC
NÃO USADA
SISTEMAS DIGITAIS
DIVISOR DE FREQUENCIA MODULO K (2 k 16)
CNT I3 I2 I1 I0
CLK
CLR TC
LD O3 O2 O1 O0
EX: DIVISOR DE FREQUENCIA MODULO 9 USANDO CONTADOR MODULO 16
0 1 1 1 (16- 9)
X Z
XZ
7 8 9 10 11 12 13 14 15
7 8 9 10 11 12 13 14 15
FreqZ = FreqX / 9
1
0
SISTEMAS DIGITAIS
CONTADOR – USO COMUM
CONTADOR DE EVENTOS
DOWN CLR
CLK CONTADOR
UP
COMPARADOR
Eout Sout
NUMERO MAXIMO
DE ESPAÇOS
LOTADO VAGAS
SISTEMAS DIGITAIS
CONTADOR - USO COMUM
CONTROLAR UMA SEQUENCIA FIXA DE AÇÕES EM UM SISTEMA DIGITAL
DECODIFIC.
0
1
2
3
4
5
CONTADOR MODULO 6
CLK
SEQUENCIA DE AÇÕES
0 ZERAR REGISTRADORES
1 ENTRADA A
2 ENTRADA B
3 COMPUTAR
4 COMPUTAR
5 SAIDA C OR
ZERAR
ENTR. A
ENTR. B
COMPUTAR
SAIDA C
SISTEMAS DIGITAIS
CONTADOR - USO COMUM
GERAR SINAIS DE TEMPO DECOD.
0
1
2
3
4
5
6
7
CONTADOR MODULO 6
CLK
S Q
CLK
R #Q
TS0
S Q
CLK
R #Q
TS1
S Q
CLK
R #Q
TS2
ESTADO
TS0
TS1
TS2
7 0 21 3 4 5 6 7 0
MESMA FREQUENCIA
FASES DIFERENTES
FF SR SINCRONO
SISTEMAS DIGITAIS
CONTADOR USO COMUM
GERAR SINAIS DE TEMPO
CONTADOR S0 MODULO 4
CLK S1
CLK0
CLK
CLK0
CLK2
CLK4
AND
AND
CLK2
CLK4
FREQUENCIAS DIFERENTES 0 1 2 3
SISTEMAS DIGITAIS
CONTADOR - USO NÃO CONVENCIONAL
CONTADOR USADO COMO REGISTRADOR DE ESTADO NA IMPLEMENTAÇÃO DE UMA MAQUINA SEQUENCIAL
2 3 4
CNT = 1 LD = 0
CNT = 0 LD = 0
CNT = 0 LD = 1
CNT CONTADOR
LD
CLK
2 3 4
SISTEMAS DIGITAIS
EXERCICIO 17
PROJETAR A MAQUINA SEQUENCIAL ESPECIFICADA ABAIXO, USANDO CONTADOR MODULO 16 , QUATRO MUX`s 8 x 1 E INVERSORES
S0
S1
S2
S3 S4
S5
S6
#a/0
a/0
_ /0
_ /0
#b/1b/0
c/0 #c/0
_ /0#b/0
b/0
SISTEMAS DIGITAIS
EXERCICIO 17 – SOLUÇÃO
S0
S1
S3
S4
S2
S5
S6
CNT I3 I2 I1 I0
CLK CONTADOR
LD O3 O2 O1 O0
#O2#O1#O0
#O2#O1O0
#O2O1#O0
#O2O1O0
O2#O1#O0
O2#O1O0
O2O1#O0
CNT = #O2#O1#O0a + #O2#O1O0 + #O2O1#O0 + #O2O1O0b + O2#O1#O0#c + O2#O1O0
LD = O2#O1#O0c + O2O1#O0
I2 I1 I0 SAIDA
O2O1#O0b 0 0 0 #O2O1O0#b 1
O2#O1#O0c 0 0 1
O2O1#O0#b 0 0 1
SISTEMAS DIGITAIS
EXERCICIO 17 - SOLUÇÃO
S2S1S0
O2O1
O0
0 1 2 3 4 5 6 7
a 1 1 b #c 1 0 0 0 0 0 0 c 0 1 0
CNT LD
0 1 2 3 4 5 6 7
0 0 0 0 c 0#b 0
0 1 2 3 4 5 6 7
0 0 0#b 0 0 0 0
0 1 2 3 4 5 6 7
I0 SAIDA
O1
O0
O2
O0
O0O1
O2
O1
O2
BIT MAIS SIGNIFICATIVO
SISTEMAS DIGITAIS
EXERCICIO 18
1. A FIG. MOSTRA COMO UM MUX PODE SER UTILIZADO PARA GERAR FORMAS DE ONDA LOGICA COM QQ PADRÃO DESEJADO. O PADRÃO É PROGRAMADO USANDO CHAVES ON-OFF E UM CONTADOR.
DESENHE A FORMA DE ONDA Z PARA A POSIÇÃO DAS CHAVES DA FIGURA.
SUBSTITUA O CONTADOR MODULO 8 POR UM CONTADOR MODULO 16 E
CONECTE O BIT MSB DO CONTADOR NA ENTRADA #E DO MUX. DESENHE A FORMA DE ONDA EM Z
CONTADOR
MODULO 8
CLKCLK
Z
I7 I6 I5 I4 I3 I2 I1 I0
#E
VCC
GND
SISTEMAS DIGITAIS
EXERCICIO 18 – CONTINUAÇÃO
2. MOSTRE COMO CONECTAR 2 CI´S, DO TIPO ABAIXO, PARA FORMAR UM CONTADOR DE 8 BITS QUE DIVIDE A FREQUENCIA DO CLOCK POR 100. UTILIZE A SAIDA #TCD DE UM ESTAGIO COMO CLOCK DO SEGUNDO ESTAGIO. ( ESPECIFICAÇÃO: O CONTADOR DEVE SER DOWN E DEVE SER CARREGADO QUANDO AMBOS OS ESTAGIOS ESTIVEREM SIMULTANEAMENTE EM SUAS CONTAGENS FINAIS)
#PL P0 P1 P2 P3
CPU #TCU
CPD #TCD
MR Q0 Q1 Q2 Q3
PL :carga paralelaCPU : clock para contagem UPCPD:clock para cont agem DOWNMR : master reset
MONOESTAVEL
Q
MONO ESTAVEL
CLK #Q
VCCRC
T ~ RC
CLR
D #Q
CLK QGND
VCC Vref
VCC
A
BS
COMPARADOR ANALOGICO
A=B -> S =1
A B -> S =0
SISTEMAS DIGITAIS
SISTEMAS DIGITAIS
EXERCICIO 18 – CONTINUAÇÃO
3. A FIG. MOSTRA COMO UM CONTADOR DECRESCENTE COM CARGA PODE SER USADO EM UM CIRCUITO TEMPORIZADOR PROGRAMAVEL. A FREQ. DO CLOCK DE ENTRADA É DE 1HZ. AS CHAVES S1 ATÉ S4 SÃO USADA PARA AJUSTAR O CONTADOR PARA UMA CONTAGEM INICIAL, QUANDO UM PULSO É APLICADO A #PL. A OPERAÇÃO DO TEMPORIZADOR É INICIADA PRESSIONANDO-SE O BOTÃO DE INICIO. O FFZ É USADO PARA ELIMINAR OS EFEITOS DA TREPIDAÇÃO (“BOUNCE”) DO CONTATO DO BOTÃO INICIO. O MONO É USADO PARA FORNECER UM PULSO BEM ESTREITO PARA #PL. A SAIDA DO FFX TERÁ UMA FORMA DE ONDA QUE VAI PARA NIVEL 1 POR UM NUMERO DE SEGUNDOS IGUAL AO NUMERO PRESENTE NAS CHAVES.
VCC
GND
MR P3 P2 P1 P0 CPU
CONTADOR DOWN CPD
#PL #TCD
1HZ
J
K
X
CLK
#CLR J
Z CLK
#SET K
VCC
GND
GND
VCC BOTÃO
INICIO#Y MONO CLK
Tp = 100 NS
ASSINCRONO
SISTEMAS DIGITAIS
EXERCICIO 18 – CONTINUAÇÃO
A. ADMITA QUE TODOS OS FF`S E CONTADOR ESTÃO NO ESTADO 0. ANALISE E EXPLIQUE A OPERAÇÃO DO CIRCUITO, MOSTRANDO AS FORMAS DE ONDA, PARA O CASO DAS CHAVES PROGRAMADAS COM O NUMERO 4. NÃO DEIXE DE EXPLICAR A FUNÇÃO DO FFX.
B. POR QUE A SAIDA DO TEMPORIZADOR NÃO PODE SER TOMADA DA SAIDA DE #TCD?
C. POR QUE A CHAVE DE INICIO NÃO PODE SER USADA PARA DISPARAR O MONO DIRETAMENTE?
D. O QUE ACONTECERIA SE CHAVE INICIO FOSSE MANTIDA ACIONADA POR UM LONGO PERIODO? INCLUA A LOGICA NECESSARIA PARA GARANTIR QUE A MANUTENÇÃO DO ACIONAMENTO DA CHAVE INICIO NÃO VÁ AFETAR A OPERAÇÃO DO TEMPORIZADOR.
SISTEMAS DIGITAIS
CONTADOR JOHNSON
CONTADOR EM ANEL COM 3 BITS
D Q D Q D Q
CONTAGEM
100
010
001
100
010
001
CONTADOR EM JOHNSON COM 3 BITS
D Q D Q D # Q
Q
CONTAGEM
100
110
111
011
001
000
CLK
Q
CLK
Q
SISTEMAS DIGITAIS
EXERCICIO 19
1. DETERMINE A FREQUENCIA DOS PULSOS NOS PONTOS W,X,Y,Z NO CIRCUITO ABAIXO:
CONTADOR EM ANEL DE 16BITS160KHZ
W CONTADOR PARALELO DE 4 BITS
X CONTADOR DE PULSAÇÃO MODULO 25
Y CONTADOR JOHNSON DE 4 BITS
Z
2. MODIFIQUE O CIRCUITO DA FIGURA ABAIXO PARA GERAR UMA FORMA DE CONTROLE QUE VAI PARA NIVEL 0 DESDE T20 ATÉ T24. A MODIFICAÇÃO NÃO REQUER LOGICA ADICIONAL.
CONTADOR UP CLK
Q2 Q1 Q0
CONTADOR UP CLK
Q2 Q1 Q0
A2 A1 A0 DECOD. E2 #E1 #E0
#O7 #O6 #O5 #O4 # O3 #O2 #O1 #O0 SAIDA
T0 T1 T2 ....
CONTADORES ZERADOS
SISTEMAS DIGITAIS
FREQUENCIMETRO
267
CLEAR
1S
0,1S
0,01S
INT. AMOSTR.
FX
CLR
CONTADOR CLK
DECODIFICADOR
CONTROLE DO DISPLAY
FREQUENCIA DESCONHECIDA FXPULSO DE AMOSTRAGEM PXFXPX
CLEAR
Z
Z
PAINEL
PLACA
SISTEMAS DIGITAIS
FREQUENCIMETRO
PARA A FREQUENCIA, DESCONHECIDA PELO FREQUENCIMETRO, DE 3792 PULSOS POR SEGUNDO, DETERMINE A SAIDA DO CONTADOR APÓS O INTERVALO DE AMOSTRAGEM DE:
A. 1s B. 0,1s C. 0,01s
___________________________________________________________________________________________
OBS:
FX = 2,4HZ
1 2
1 2 3
1s
CONTAGEM
CONTAGEM0,4
s
SISTEMAS DIGITAIS
FREQUENCIMETRO
INTERVALO DE AMOSTRAGEMCLK100KHZ DIV10 DIV10 DIV10 DIV10 DIV10
10KHZ
1KHZ 100HZ 1HZ10HZ
1
23
45
61s
0,1s
10ms1ms100us
10us
Q J
CLK
#Q K
PXCHAVE DE SELEÇÃO PARA INTERVALO DE AMOSTRAGEM
VCC
VCCCLK
TEMPO DE AMOSTRAGEM
SISTEMAS DIGITAIS
EXERCICIO 19-A:FREQUENCIMETRO
INTERVALO DE AMOSTRAGEMADMITA QUE O CONTADOR É CONSTRUIDO COM 3 CONTADORES BCD EM CASCATA, COM OS RESPECTIVOS DISPLAYS. SE A FREQUENCIA DESCONHECIDA ESTIVER ENTRE 1KHZ E 10KHZ, QUAL É A MELHOR ESCOLHA PARA A POSIÇÃO DA CHAVE.
DISPLAY
1s 0,1s 10mS
1ms
100us
10us
MENOR FREQ.
MAIOR FREQ.
1KHZ -> 1ms10KHZ -> 100us
SISTEMAS DIGITAIS
FREQUENCIMETRO (CLEAR AUTOMATICO)
267
CLEAR
1S
0,1S
0,01S
INT. AMOSTR.
CLR CLK
CONTADOR
DECODIFICADOR
CONTR. DISPLAY
Q J
CLK
#Q K
VCC
VCC
Q J
CLK
#Q K
VCC
VCCMONO
Q CLK
SISTEMAS DIGITAIS
FREQUENCIMETRO (CLEAR AUTOMATICO)
FORMAS DE ONDA
Q
CLK
Q
CLK
Q
CLK
CONTADOR
CLEAR
CLK
CONTADOR
ZERADO
CONTADOR
CONTANDO
CONTADOR PARADO
DISPLAY EXIBINDO A FREQUENCIA
SISTEMAS DIGITAIS
FREQUENCIMETRO (CLEAR AUTOMATICO)
COMO O DISPLAY ESTÁ CONECTADO DIRETAMENTE NAS SAIDAS DO CONTADOR, O DISPLAY MOSTRARÁ A OPERAÇÃO DE RESET E A CONTAGEM. ISTO TORNA MUITO DIFICIL A LEITURA DO DISPLAY PARA DETERMINAR A FREQUENCIA DESCONHECIDA, EXCETO PARA INTERVALOS DE AMOSTRAGEM “ LENTOS”.
ESTE PROBLEMA PODE SER RESOLVIDODA SEGUINTE MANEIRA:
CLR CLK
CONTADOR
DECODIFICADOR
DISPLAY
Q J
CLK
#Q K
VCC
VCC
Q J
CLK
#Q K
VCC
VCCMONO
Q CLK
REG CLK
SISTEMAS DIGITAIS
FREQUENCIMETRO (CLEAR AUTOMATICO)
FORMAS DE ONDA
Q
CLK
Q
CLK
Q
CLK
CONTADOR
CLEAR
CLK
CONTADOR
ZERADO
CONTADOR
CONTANDO
DISPLAY EXIBINDO SOMENTE A FREQUENCIA
CLK REG
SISTEMAS DIGITAIS
DISPOSITIVOS DO TIPO PADRÃO
COMBINACIONAIS
DECODIFICADORCODIFICADORMULTIPLEXADORDEMULTIPLEXADORDESLOCADOR-PSOMADORSUBTRATORUNID. ARITMETICA E LOGICACOMPARADOR
SEQUENCIAIS
REGISTRADORREGISTRADOR DE DESLOCAMENTOCONTADOR
PLD
SISTEMAS DIGITAIS
DISPOSITIVOS LOGICOS PROGRAMAVEIS
FF
G G
FF
FF
FF G
FF
G
SE AS CONEXÕES PUDEREM SER ABERTAS ESTE DISPOSITIVO É PROGRAMAVEL
FF: FLIP-FLOP
G: GATE
PLD
SISTEMAS DIGITAIS
DISPOSITIVOS LOGICOS PROGRAMAVEIS
CONEXÃO
FUSIVEL ELETRONICO
CHAVE ELETRONICA
PROGRAMAVEL UMA ÚNICA VEZ
PROGRAMAVEL DIVERSAS VEZES
CORRENTE
FLIP- FLOP
SISTEMAS DIGITAIS
DISPOSITIVOS LOGICOS PROGRAMAVEIS
PROGRAMAÇÃO DO PLD
PELO FABRICANTE
PELO PROJETISTA
SISTEMAS DIGITAIS
DISPOSITIVOS LOGICOS PROGRAMAVEIS
IDEIA BASICA DE PROGRAMAÇÃO DE PLD COMBINACIONAL COM 3 ENTRADAS E UMA SAIDA
ABC
F
#A#B#C
#A#B C
#A B #C
#A B C
A#B#C
A#B C
A B #C
A B C
+SELECIONAR QUAIS TERMOS VÃO FAZER PARTE DO OU, PARA QUE QQ FUNÇÃO POSSA SER IMPLEMENTADA
SISTEMAS DIGITAIS
DISPOSITIVOS LOGICOS PROGRAMAVEIS
TIPOS DE PLD´s
PLA
PAL
ROM
PSA
PROGRAMABLE ARRAY LOGIC
PROGRAMABLE LOGIC ARRAY
READ ONLY MEMORY
PROGRAMABLE SEQUENCIAL ARRAY
FIELD PROGRAMABLE GATE ARRAY
SPLD
CPLD
SPLD´s AGRUPADAS
FPGA
PLA(MATRIZ LOGICA PROGRAMAVEL)
SISTEMAS DIGITAIS
PLA
MATRIZ DE AND
MATRIZ DE OR
ESCOLHA DOS TERMOS DA FUNÇÃO
ESCOLHA DAS COMBINAÇÕES DE TERMOS PARA GERAR AS FUNÇÕES DE SAIDAE
NTR
AD
AS
SAIDAS
PLA (MATRIZ LOGICA PROGRAMAVEL)
SISTEMAS DIGITAIS
12
K 1
XN-1
X1
X0
YK-1
Y1
Y0
1
2
R
MATRIZ
AND
MATRIZ
OR
...
...
.
.
CONEXÃO PROGRAMAVEL:
PODE SER DESFEITA
1.2.
K
PLA – CIRCUITOS BASICOS
SISTEMAS DIGITAIS
VCC
GND
A
VCC
GND
S
A B S0 0 10 1 01 0 01 1 0
S = #(A + B)
INVERSORVCC
GND
VCC
GND
BUFFER NÃO INVERSOR
NOR
BGND
S = (#A . #B)
PLA (MATRIZ LOGICA PROGRAMAVEL)
SISTEMAS DIGITAIS
XI
CIRCUITO CIRCUITO
XI
CIRCUITO
XI
XI
CIRCUITO
< ATRASO
MELHOR CONFIGURAÇÃO
PLA (MATRIZ LOGICA PROGRAMAVEL)
SISTEMAS DIGITAIS
ESPECIFICAÇÃO
ENTRADA
X = (XN-1,...,X0) XI {0,1}
SAIDA
Z = (ZK-1,...,Z0) ZI {0,1}
FUNÇÃO
IMPLEMENTAÇÃO DE K (NO DE OR´s) FUNÇÕES DE CHAVEAMENTO COM NO MAXIMO R (NO DE AND`S) TERMOS, SENDO QUE R < 2N.
XN-1
1
PLA (MATRIZ LOGICA PROGRAMAVEL)
SISTEMAS DIGITAIS
XN-1
GND
GND
XN-2
GND
GND
VCC
1
2 3
4
1
XN-2
1 2 3 4
PLA (MATRIZ LOGICA PROGRAMAVEL)
SISTEMAS DIGITAIS
GND
GND GND
GND
VCC
1
2 3
4
1
XN-2
XN-1
XN-1 XN-2 S
0 0 0
0 1 0
1 0 0
1 1 1
S = XN-1.XN-2 2 E 4 ABERTOS
SISTEMAS DIGITAIS
XN-1
GND
GND GND
GND
1
2 3
4
1
XN-2
XN-1
XN-1 XN-2 S
0 0 0
0 1 0
1 0 1
1 1 0
S = XN-1.#XN-2
PLA
2 E 3 ABERTOS
VCC
SISTEMAS DIGITAIS
XN-1
GND
GND GND
GND
1
2 3
4
1
XN-2
XN-1
XN-1 XN-2 S
0 0 0
0 1 1
1 0 0
1 1 0
S = #XN-1.XN-2
PLA
1 E 4 ABERTOS
VCC
SISTEMAS DIGITAIS
XN-1
GND
GND GND
GND
1
2 3
4
1
XN-2
XN-1
XN-1 XN-2 S
0 0 1
0 1 0
1 0 0
1 1 0
S = #XN-1.#XN-2
PLA
1 E 3 ABERTOS
VCC
1
PLA (MATRIZ LOGICA PROGRAMAVEL)
SISTEMAS DIGITAIS
GND
GND GND
VCC1
2 R
PARA AND1 OR AND2 , 3 ABERTO
PARA AND1 OR ANDR , 2 ABERTO
1
2
R
1 R2
GND
VCC
YK-1
YK-1
.....
.
YK2
PLA (MATRIZ LOGICA PROGRAMAVEL)
SISTEMAS DIGITAIS
12
2
1
A
B
C
F2
F1
F0
1
2
3
MATRIZ
AND
MATRIZ
OR
.
.
CONEXÃO
1.2.
K
EXEMPLO: F2 = A#BC + AB#C
F0 = A#B
SEM CONEXÃO
EXERCICIO 20
SISTEMAS DIGITAIS
12
1
D3
D1
D0
G3
1
2
4
MATRIZ
AND
MATRIZ
OR
.
.
1
IMPLEMENTAR UM CONVERSOR DE CODIGO BCD-GRAY D2
3
D
0123456789
G
01326754CD
G2
G1
G0
4
56
EXERCICIO 20 - SOLUÇÃO
SISTEMAS DIGITAIS
D
0123456789
G
01326754CD
3210
0000000100100011010001010110011110001001
3210
0000000100110010011001110101010011001101
G3 = D3
G2 = D3 + D2
G1 = D2#D1 + #D2D1
G0 = D1#D0 + #D1D0
EXERCICIO 20 – SOLUÇÃO
SISTEMAS DIGITAIS
12
1
D3
D1
D0
G3
1
2
4
MATRIZ
AND
MATRIZ
OR
.
.
D2
3
SOLUÇÃO PICTORICA: MOSTRAR OS TERMOS E OS AND´S ENVOLVIDOS PARA A GERAÇÃO DAS FUNÇÕES
G3 =D3
G2 = D3 + D2
G1 = #D2D1 + D2#D1
G0 = #D1D0 + D1#D0
5
6
G2
G1
G0
PAL (MATRIZ LOGICA PROGRAMAVEL)
SISTEMAS DIGITAIS
1
1
2
4
MATRIZ
AND
.
.
1
I
Z0
R
XN-1
X1
X0 XN-2
..
ZK-1
.
.
1
2
K
.
.
PROGRAMAVEL
GND
ZJ
OJ
FUSIVEL DE POLARIDADE
OPCIONALMENTE NAS SAIDAS, PARA INVERTÊ-LAS OU NÃO Z1
2
I
I+1
ESPECIFICAÇÃO
ENTRADA
X = (XN-1,...,X0) XI {0,1}
SAIDA
Z = (ZK-1,...,Z0) ZI {0,1}
FUNÇÃO
IMPLEMENTAÇÃO DE K (NO DE OR´s) FUNÇÕES DE CHAVEAMENTO COM J DENTRE R AND`S PERMANENTEMENTE CONECTADOS A CADA OR, SENDO QUE: R < 2N.
PAL(MATRIZ LOGICA PROGRAMAVEL)
SISTEMAS DIGITAIS
PAL(MATRIZ LOGICA PROGRAMAVEL)
SISTEMAS DIGITAIS
OBSERVAÇÃO:
EM UMA PAL, UM AND (TERMO) NÃO ESTÁ DISPONIVEL PARA TODAS AS FUNÇÕES.
A PAL EM GERAL É MAIS RAPIDA QUE A PLA , TEM MAIS SAIDAS OU TEM MAIS AND´S.
EXERCICIO 21
SISTEMAS DIGITAIS
USANDO A PAL DO BOTÃO, IMPLEMENTE UM SISTEMA QUE TENHA COMO ENTRADA UM DIGITO DECIMAL REPRESENTADO EM BCD E COMO SAIDA A ENTRADA MULTIPLICADA POR 3, COM REPRESENTAÇÃO, TAMBEM, EM BCD.
EXERCICIO 21 SOLUÇÃO (EXPRESSÃO DE CHAVEAMENTO)
SISTEMAS DIGITAIS
X3 X2 X1 X0 Y5 Y4 Y3 Y2 Y1 Y0
0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 1 1
0 0 1 0 0 0 0 1 1 0
0 0 1 1 0 0 1 0 0 1
0 1 0 0 0 1 0 0 1 0
0 1 0 1 0 1 0 1 0 1
0 1 1 0 0 1 1 0 0 0
0 1 1 1 1 0 0 0 0 1
1 0 0 0 1 0 0 1 0 0
1 0 0 1 1 0 0 1 1 1Y5 = #X3X2X1X0 + X3#X2#X1#X0 + X3#X2#X1X0
EXERCICIO 21 SOLUÇÃO
SISTEMAS DIGITAIS
X3
X2
X1
X0
ENABLE
Y5
Y4
Y3
Y2
Y1
Y0
Y5 = #X3X2X1X0 + X3#X2#X1#X0 + X3#X2#X1X0
ROM ( MEMORIA DE APENAS LEITURA)
SISTEMAS DIGITAIS
12
K
2
XN-1
X1
X0
YK-1
Y1
Y0
1
2
2N
MATRIZ
OR
...
...
.
.
CONEXÃO PROGRAMAVEL:
PODE SER DESFEITA
1.2.
K
PROGRAMAVEL
TEM TODOS OS TERMOS
ROM ( MEMORIA DE APENAS LEITURA)
SISTEMAS DIGITAIS
ESPECIFICAÇÃO
ENTRADA
X = (XN-1,...,X0) XI {0,1}
SAIDA
Z = (ZK-1,...,Z0) ZI {0,1}
FUNÇÃO:
IMPLEMENTAÇÃO DE K (NO DE OR´s) FUNÇÕES DE CHAVEAMENTO COM NO MAXIMO 2N (NO DE AND`S) TERMOS.
CADA AND FICA PERMANENTEMENTE CONECTADO A UM TERMO DIFERENTE, OU SEJA QQ FUNÇÃO PODE SER IMPLEMENTADA.
ROM ( ANALOGIA COM MEMORIA)
SISTEMAS DIGITAIS
1
K
2
XN-1
X1
X0
YK-1
Y1
Y0
1
2
2N
MATRIZ
OR
...
...
.
.
1.2.
K
TEM TODOS OS TERMOS
XN-1
X1
X0 ... ...
BARRAMENTODE ENDEREÇO
REGISTRADOR
REGISTRADOR
REGISTRADOR
BARRAMENTODE DADOS
MEM SÓ DE LEITURA
EXERCICIO 22 EXERCICIO 22
SISTEMAS DIGITAIS
PROJETAR UMA MEMORIA (4 X 4) DE APENAS LEITURA, COM OS
ENDEREÇOS E RESPECTIVOS CONTEUDOS ABAIXO LISTADOS:
END. CONT.
00 1101
01 1001
10 1110
11 0110
EXERCICIO 22 – SOLUÇÃO
SISTEMAS DIGITAIS
2
2
X1
X0
D3
D2
D0
0
2
0.2.
32
D1
1
MEMORIA ROM
END. CONTEUDO
00 1101
01 1001
10 1110
11 0110123
CONEXÃO
SEM CONEXÃO
ESPECIFICAÇÃO
ENTRADA:
X = (XN-1,...,X0) XI {0,1}
ESTADO:
S = (SP-1,...,S0) SI {0,1}
SAIDA:
Z = (ZK-1,...,Z0) ZI {0,1}
FUNÇÃO:
IMPLEMENTAÇÃO DE SISTEMA SEQUENCIAL NOT- AND- OR DE K + P (NO DE OR´s) FUNÇÕES DE CHAVEAMENTO COM NO MAXIMO R (NO DE AND`S) TERMOS.
PSA (MATRIZ SEQUENCIAL PROGRAMAVEL)
SISTEMAS DIGITAIS
PLA
REG
N K
P P
CLKPSA
2P
ESTADOS
SISTEMAS DIGITAIS
EXERCICIO 23
PROJETAR A MAQUINA SEQUENCIAL ESPECIFICADA ABAIXO, USANDO PSA
S0
S1
S2
S3 S4
S5
S6
#a/0
a/0
_ /0
_ /0
#b/1b/0
c/0 #c/0
_ /0#b/0
b/0
SISTEMAS DIGITAIS
EXERCICIO 23 – MODELO P/SOLUÇÃOa b c
CLKSAIDAD0Q0
D2Q2
SISTEMAS DIGITAIS
EXERCICIO 23 –SOLUÇÃOa b c
CLKSAIDAD0Q0
D2Q2
SAIDA= #Q2Q1Q0#b
D0 = #Q2#Q1#Q0a
+ #Q2Q1#Q0
+ Q2#Q1#Q0#c
+ #Q2Q1Q0#b
+ Q2#Q1#Q0c
+ Q2Q1#Q0#b
D1 = #Q2#Q1Q0
+ #Q2Q1#Q0
+ #Q2Q1Q0#b
+ Q2#Q1Q0
D2= .........
SISTEMAS DIGITAIS
FPGA(MATRIZ DE PORTAS PROGRAMAVEIS NO CAMPO)
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
.....
.
.....
.....
.
.....
.
CLB: BLOCO LOGICO CONFIGURAVEL
OS CLB`s IMPLEMENTAM SUB- FUNÇÕES DO SISTEMA
SISTEMAS DIGITAIS
FPGA(MATRIZ DE PORTAS PROGRAMAVEIS NO CAMPO)
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
.....
.
.....
.....
.
.....
.BLO
CO
S D
E E
NTR
. E S
AID
A
BLOCOS DE ENTRADA E SAIDA
BLO
CO
S D
E E
NTR
. E S
AID
A
BLOCOS DE ENTRADA E SAIDA
SISTEMAS DIGITAIS
FPGA(MATRIZ DE PORTAS PROGRAMAVEIS NO CAMPO)
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
.....
.
.....
.....
.
.....
.BLO
CO
S D
E E
NTR
. E S
AID
A
BLOCOS DE ENTRADA E SAIDA
BLO
CO
S D
E E
NTR
. E S
AID
A
BLOCOS DE ENTRADA E SAIDA
CONEXÕES VERTICAIS
SISTEMAS DIGITAIS
FPGA(MATRIZ DE PORTAS PROGRAMAVEIS NO CAMPO)
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
.....
.
.....
.....
.
.....
.BLO
CO
S D
E E
NTR
. E S
AID
A
BLOCOS DE ENTRADA E SAIDA
BLO
CO
S D
E E
NTR
. E S
AID
A
BLOCOS DE ENTRADA E SAIDA
CONEXÕES HORIZONTAIS
SISTEMAS DIGITAIS
FPGA(MATRIZ DE PORTAS PROGRAMAVEIS NO CAMPO)
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
.....
.
.....
.....
.
.....
.BLO
CO
S D
E E
NTR
. E S
AID
A
BLOCOS DE ENTRADA E SAIDA
BLO
CO
S D
E E
NTR
. E S
AID
A
BLOCOS DE ENTRADA E SAIDA
CHAVESMATRIZ DE CHAVEAMENTO
SISTEMAS DIGITAIS
FPGA(MATRIZ DE PORTAS PROGRAMAVEIS NO CAMPO)
TECNOLOGIAS DE FPGA COM RESPEITO A IMPLEMENTAÇÃO DE CONEXÕES E FUNÇÕES.
TRANSISTORES DE PASSAGEM
FUSIVEIS (NÃO RECONFIGURAVEL)( NÃO VOLATIL)
SISTEMAS DIGITAIS
FPGA(MATRIZ DE PORTAS PROGRAMAVEIS NO CAMPO)
TECNOLOGIAS DE FPGA COM RESPEITO A IMPLEMENTAÇÃO DE CONEXÕES E FUNÇÕES.
SRAM ( STATIC RANDOM ACCESS MEMORY)
MEMORIA ESTATICA (RECONFIGURAVEL)(VOLATIL)
FF
MEMORIA
SISTEMAS DIGITAIS
FPGA(MATRIZ DE PORTAS PROGRAMAVEIS NO CAMPO)
TECNOLOGIAS DE FPGA COM RESPEITO A IMPLEMENTAÇÃO DE CONEXÕES E FUNÇÕES.
EPROM (ERASABLE PROGRAMABLE READ ONLY MEMORY)
MEMORIA (RECONFIGURAVEL)(NÃO VOLATIL)
VLIMIAR
>RECONFIGURAÇÃO POR ULTRA VIOLETA
SISTEMAS DIGITAIS
FPGA(MATRIZ DE PORTAS PROGRAMAVEIS NO CAMPO)
TECNOLOGIAS DE FPGA COM RESPEITO A IMPLEMENTAÇÃO DE CONEXÕES E FUNÇÕES.
EEPROM (ERASABLE ELETRICALLY PROGRAMABLE READ ONLY MEMORY)
MEMORIA (RECONFIGURAVEL)(NÃO VOLATIL)
VLIMIAR
>RECONFIGURAÇÃO ELETRICA
SISTEMAS DIGITAIS
FPGA – SRAM
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
.....
.
.....
.....
.
.....
.BLO
CO
S D
E E
NTR
. E S
AID
A
BLOCOS DE ENTRADA E SAIDA
BLO
CO
S D
E E
NTR
. E S
AID
A
BLOCOS DE ENTRADA E SAIDA
SISTEMAS DIGITAIS
FPGA – SRAM
CLB
A
B
C X
K Y
D
LUT
S
D Q
K
R
8 7 6 5 4 3 2 10
ABCD
D/Q
X
Y
0
1
2
3
4
5
01
01
01
012
012
012
REGISTRADOR DE CONFIGURAÇÃO
K
G
F
SISTEMAS DIGITAIS
FPGA – SRAM
LUT LOOK UP TABLE ( IMPLEMENTA A MAIOR PARTE DAS SUB-FUNÇÕES DO SISTEMA)
I0
I1
I2
I3
0
1
2
3
4
.
.
15
A
B
C
D/Q
FF F0 Q
F
FF F15 Q
FF G0 Q
G
FF G15 Q
SISTEMAS DIGITAIS
FPGA – SRAM – POSSIBILIDADES DE INTERCONEXÃO
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
......
.....
......
......
BLO
CO
S D
E E
NTR
. E S
AID
A
BLOCOS DE ENTRADA E SAIDA
BLO
CO
S D
E E
NTR
. E S
AID
A
BLOCOS DE ENTRADA E SAIDA
CLB
CLB
CLB
CLB
1. INTERCONEXÃO DIRETA ENTRE CLB´s HORIZONTALMENTE E VERTICALMENTE ADJACENTES ( CAMINHO DE SINAL RAPIDO)
SISTEMAS DIGITAIS
FPGA – SRAM – POSSIBILIDADES DE INTERCONEXÃO
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
......
.....
......
......
BLO
CO
S D
E E
NTR
. E S
AID
A
BLOCOS DE ENTRADA E SAIDA
BLO
CO
S D
E E
NTR
. E S
AID
A
BLOCOS DE ENTRADA E SAIDA
CLB
CLB
CLB
CLB
2. CONEXÃO VERTICAL OU HORIZONTAL CURTAS E LENTAS (PASSAM PELA MATRIZ DE CHAVEAMENTO)
SISTEMAS DIGITAIS
FPGA – SRAM – POSSIBILIDADES DE INTERCONEXÃO
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
......
.....
......
......
BLO
CO
S D
E E
NTR
. E S
AID
A
BLOCOS DE ENTRADA E SAIDA
BLO
CO
S D
E E
NTR
. E S
AID
A
BLOCOS DE ENTRADA E SAIDA
CLB
CLB
CLB
CLB
3. CONEXÃO VERTICAL OU HORIZONTAL LONGAS E RAPIDAS
SISTEMAS DIGITAIS
FPGA – SRAM – POSSIBILIDADES DE CONEXÃO
CLB
CLB
CLB
CLB
BLO
CO
S D
E E
NTR
. E S
AID
A
BLOCOS DE ENTR. E SAIDA
CLB
CLB
CLB
CLB
4. MATRIZ DE CHAVES
BLOCOS DE ENTR. E SAIDA
TRANSISTOR
CONTR = 1
#CONTR = 0
0
1
SISTEMAS DIGITAIS
EXERCICIO 24
PROJETE UM SOMADOR BCD DE 1 DIGITO, CUJA ESPECIFICAÇÃO ESTÁ DESCRITA ABAIXO, USANDO FPGA – SRAM.
ESPECIFICAÇÃO
ENTRADAS:
X = (X3,X2,X1,X0) XJ{0,1} X {0,1,2...9}
Y = (Y3,Y2,Y1,Y0) YJ{0,1} Y {0,1,2...9}
CIN{0,1}
SAIDAS:
S = (S3,S2,S1,S0) SJ{0,1} S {0,1,2...9}
COUT{0,1}
FUNÇÃO:
X + Y + CIN = 10 COUT + S
SISTEMAS DIGITAIS
EXERCICIO 24 –SOLUÇÃO
COMO O SISTEMA TEM 9 ENTRADAS E 5 SAIDAS, A FUNÇÃO DEVE SER DECOMPOSTA EM SUB-FUNÇÕES DE MODO QUE CADA UMA DELAS POSSA SER IMPLEMENTADA POR UM CLB QUE TEM 4 ENTRADAS E 2 SAIDAS
SISTEMAS DIGITAIS
EXERCICIO 24 –SOLUÇÃO
PROJETO IGNORANDO O CI QUE IRÁ IMPLEMENTA-LO
+X
Y
4
4
CIN
1O SOMADOR
V
U
TT
+
0
0
S
COUT
2O SOMADOR
T =1 SE U =1 OU V>
9
S = V SE T = 0 S = V + 6 SE T = 1
SISTEMAS DIGITAIS
EXERCICIO 24 –SOLUÇÃO
ADAPTANDO O PROJETO AO CI ALVO : FPGA – SRAM
10 SOMADOR:DESMEMBRADO EM 4 SOMADORES BINARIOS, CADA SOMADOR COM 3 ENTRADAS(XI,YI E CINI) E 2 SAIDAS (VI E COI), SOMADORES ESTES QUE PODEM SER INDIVIDUALMENTE IMPLEMENTADOS POR UM CLB.
BLOCO T: 4 ENTRADAS ( U,V3, V2, V1) E 1 SAIDA (T)
T = U + V3V2 + V3V1
( C,D,E,F) (A,B)
20 SOMADOR:DESMEMBRADO EM 4 SOMADORES BINARIOS, CADA SOMADOR COM 3 ENTRADAS(VI,TI OU 0 E CINI) E 2 SAIDAS (SI E COUI), SOMADORES ESTES QUE PODEM SER INDIVIDUALMENTE IMPLEMENTADOS POR UM CLB.
SISTEMAS DIGITAIS
EXERCICIO 24 –SOLUÇÃO
+ A
B
C X
K Y
D
X0 Y0
CIN
CO0
V0
CIN
Y0
X0
CO0
+
X1 Y1
C00
CO1
V1
0
Y1
X1
CO1
V1
+
X2 Y2
C01
CO2
V20
Y2
X2
CO2
V2
+
X3 Y3
CO2
U
V3
0
Y3
X3
U
V3
A
B
C X
K Y
D
A
B
C X
K Y
D
A
B
C X
K Y
D
CLB0
CLB1
CLB2
CLB3
0
CO0
C01
C02
V0
SISTEMAS DIGITAIS
EXERCICIO 24 –SOLUÇÃO
A
B
C X
K Y
D
V3CLB4
U
V2
T
V1
SISTEMAS DIGITAIS
EXERCICIO 24 –SOLUÇÃO
+ A
B
C X
K Y
D
V0 0
S0
+
V1 T
COU1
S1
V1
T
COU1
S1
+
V2 T
C0U1
COU2
S2
C0U1
T
V2
COU2
S2
+
V3
COU2
S3
V3
S3
A
B
C X
K Y
D
A
B
C X
K Y
D
A
B
C X
K Y
D
CLB
CLB5
CLB6
CLB7
C0U2
0
0
0
0
0
SISTEMAS DIGITAIS
EXERCICIO 24 – SOLUÇÃO
CLB0
A
B
C X
K Y
D
LUT
S
D Q
K
R
0 X XX X 01 10
ABCD
D/Q
X
Y
0
1
2
3
4
5
01
01
01
012
012
012
REGISTRADOR
X0
Y0
CIN
CO0
X0Y0
CIN
CO0
GF
0
V00
V0
SISTEMAS DIGITAIS
EXERCICIO 24 – SOLUÇÃO
LUT (CLB0)
I0
I1
I2
I3
0
1
2
3
8
9
A
B
A
B
C
D/Q
X0
Y0
0
CIN
1
0 0
0
0
1 0
1
0
1 0
1
1
0 1
1
F: V0 G: CO0
1
2
3
5
6
7
4
X0
Y0
00
CIN
VO =S0
X1
Y1
0
X3
Y3
0
0X2Y2
S1
S2
S3
T
V1
V2
V3
U
T
SISTEMAS DIGITAIS
EXERCICIO 24 – SOLUÇÃO
SISTEMAS DIGITAIS
EXERCICIO: CONTROLADOR SERIAL
COMPUTADOR
EQUIPAMENTO REMOTO
COMUNICAÇÃO SERIAL
(1 BIT ENVIADO POR VEZ)
PERMITE A COMUNICAÇÃO BIT A BIT ENTRE 2 DISPOSITIVOS
SISTEMAS DIGITAIS
EXERCICIO: CONTROLADOR SERIAL
COMPUTADOR
TRATA OS DADOS DE FORMA PARALELA:
BYTE , WORD, D-WORD ...
COMPUTADOR
CONTROLADOR SERIAL
EQUIPAMENTO REMOTO
TRANSMITE E RECEBE DADOS BYTE A BYTE
TRANSMITE E RECEBE DADOS BIT A BIT
SISTEMAS DIGITAIS
EXERCICIO: CONTROLADOR SERIAL
COMPUTADOR
EQUIPAMENTO REMOTO
PROTOCOLOS DE COMUNICAÇÃO:ASSINCRONO E
SINCRONO
SISTEMAS DIGITAIS
EXERCICIO: CONTROLADOR SERIAL
PROTOCOLO ASSINCRONO
COMPUTADOR
EQUIP. REMOTO
LINHA EM REPOUSO
NIVEL 0
NIVEL 1
CONTROLADOR SERIAL
CLK
DE TRANSMISSÃO
SISTEMAS DIGITAIS
EXERCICIO: CONTROLADOR DE INTERFACE SERIAL
PROTOCOLO ASSINCRONO
COMPUTADOR
EQUIP. REMOTO
DADO ENVIADO
NIVEL 0
NIVEL 1
CONTROLADOR SERIAL
CLK DE TRANSMISSÃO
D0
D1
D2
D3
D4
D5
D6
D7
P
STARTSTOP
OPÇÕES:
BITS: 5, 6, 7 OU 8 BITS DE STOP : 1 OU 2
PARIDADE: COM OU SEM TIPO DE PARIDADE : PAR OU IMPAR
SISTEMAS DIGITAIS
EXERCICIO: CONTROLADOR DE INTERFACE SERIAL
MODULOS BASICOS
COMPUTADOR
CONTROLADOR
CPU
INTERFACE TRANSMISSOR
RECEPTOR
TX
RX
TCLK RCLK
GERADOR DE SINAIS DE BASE DE TEMPO
SISTEMAS DIGITAIS
EXERCICIO: CONTROLADOR DE INTERFACE SERIAL
INTERFACE
8RD WR SEL
REG TRANSMISSÃO
REG RECEPÇÃO
REG CONFIGURAÇÃO
FF TX READY SEL
00 REG TRANS
00 REG RECEP
01 REG CONFIG
10 REG STATUS
FF RX READY
REG STATUS
2
SISTEMAS DIGITAIS
EXERCICIO: CONTROLADOR DE INTERFACE SERIAL
REGISTRADOR DE CONFIGURAÇÃO
D7 D6 D5 D4 D3 D2 D1 D0 1: 1 STOP 101: 5 BITS 1: PAR 1: C/ PARIDADE
0: 2 STOPS 110: 6 BITS 0: IMPAR 0: S/ PARIDADE
111: 7 BITS
000: 8 BITS
FF TX READY
FF RX READY
1 , ESCRITA NO REG TRANS PELA CPU 0
1 , LEITURA NO REG RECEP PELA CPU 0
SISTEMAS DIGITAIS
EXERCICIO: CONTROLADOR DE INTERFACE SERIAL
PROJETE A INTERFACE USANDO OBRIGATORIAMENTE REGISTRADORES DE 8 BITS COM LD E OE; FF`s TIPO D COM PRESET E CLEAR; DECODIFICADOR 3 x 8 COM ENABLE; E GATES.
SISTEMAS DIGITAIS
EXERCICIO: CONTROLADOR DE INTERFACE SERIAL
TRANSMISSOR
REG. DE DESLOCAMENTO
CONTADOR DOWN
GERADOR DE PARIDADE
FF TXREADY 1, REG DE DESLOCAMENTO CARREGADO
SISTEMAS DIGITAIS
EXERCICIO: CONTROLADOR DE INTERFACE SERIAL
PROJETE O TRANSMISSOR USANDO REG DE DESLOCAMENTO; SOMADOR; CONTADOR DOWN; 4 MUX´S 16X1; PLA (PARA GERAR O BIT DE PARIDADE).
SISTEMAS DIGITAIS
EXERCICIO: CONTROLADOR DE INTERFACE SERIAL
RECEPTOR
REG. DE DESLOCAMENTO
CONTADOR DOWN
DETETOR DE PARIDADE
FF RXREADY 1, CONTADOR COM CONTAGEM ZERO
DETETOR DE INICIO DE RECEPÇÃO
ALINHADOR
SISTEMAS DIGITAIS
EXERCICIO: CONTROLADOR DE INTERFACE SERIAL
PROJETE O RECEPTOR USANDO REG DE DESLOCAMENTO; SOMADOR; CONTADOR DOWN; DESLOCADOR – P; PLA; FF TIPO D COM PRESET E CLEAR.
SISTEMAS DIGITAIS
CONTROLADOR DE INTERFACE SERIAL – PROTOCOLO SINCRONO
A TRANSMISSÃO SERIAL SINCRONA REQUER FLUXO CONTINUO DE CARACTERES. MESMO QUE NÃO HAJA NENHUM CARACTER A SER TRANSMITIDO PELA CPU. UM CARACTER DE SINCRONISMO, DIFERENTE DE QUALQUER OUTRO CARACTER, DEVEM SER TRANSMITIDOS EM SEQUENCIA, PELO CONTROLADOR.
OBS:NÃO HÁ BITS DE START E STOP.
EX: N A H J 1 W T T Y D F G H J K L N M V C 3 4 5 6 A 2 D
A RECEPÇÃO SERIAL SINCRONA NECESSITA , ANTES DA RECEPÇÃO DOS CARACTERES, QUE O CONTROLADOR FIQUE EM UM ESTADO DE BUSCA DE SINCRONISMO, DURANTE O QUAL O CONTROLADOR AMOSTRA CONTINUAMENTE A ENTRADA SERIAL (BIT A BIT), PROCURANDO CASAR O FLUXO DE BITS RECEBIDOS COM O CARACTER DE SINCRONISMO. A PARTIR DAI, O RECEPTOR ESTÁ APTO A RECEBER CARACTERES.
CARACTER DE SINCRONISMO
SISTEMAS DIGITAIS
CONTROLADOR DE INTERFACE SERIAL – PROTOCOLO SINCRONO
1. O MODULO DE INTERFACE POSSUI 1 REGISTRADOR ADICIONAL, EM QUE DEVE SER ARMAZENADO O CARACTER DE SINCRONISMO. REPROJETE O MODULO, SABENDO QUE O REGISTRADOR É SELECIONADO QUANDO SEL = 10.
2. REPROJETE O MODULO DE TRANSMISSÃO, SABENDO QUE O BIT D7 DO REGISTRADOR DE CONFIGURAÇÃO, QUANDO EM 0 INDICA PROTOCOLO ASSINCRONO E QUANDO EM 1 PROTOCOLO SINCRONO.
3. PROJETE O CIRCUITO DE DETEÇÃO DE SINCRONISMO NO RECEPTOR SABENDO QUE O BIT D6 DO REGISTRADOR DE CONFIGURAÇÃO, QUANDO EM 1, INDICA QUE O RECETOR DEVE BUSCAR O SINCRONISMO. TODA VEZ QUE O SINCRONISMO FOR DETETADO, O BIT 0 DO REGISTRADOR DE STATUS DEVE SER SETADO. QUANDO O REGISTRADOR DE STATUS FOR LIDO PELA CPU, O BIT DEVE SER RESETADO.
4. PROJETE O GERADOR DE SINAIS DE BASE TEMPO QUE FORNECE OS SINAIS TCLK E RCLK, SABENDO QUE ELE DEVE SER PROGRAMAVEL, DE TAL MODO QUE SE POSSA TER 255 PERIODOS DIFERENTES,MULTIPLOS DE UM PERIODO DE CLOCK BASICO, EM TCLK E RCLK. PROJETE O BIT MENOS SIGNIFICATIVO DO DIVISOR DE FREQUENCIA USANDO UM CLB DE UMA FPGA., MOSTRANDO O CONTEUDO DA LUT E O ROTEAMENTO INTERNO DO CLB.
OBS: O MODULO DE INTERFACE DEVE SER REPROJETADO
SISTEMAS DIGITAIS
SISTEMAS RTL
SISTEMAS RTL:
SISTEMAS PROJETADOS USANDO A ABORDAGEM DE TRANSFERENCIA DE DADOS A NIVEL DE REGISTRADORES
(RTL)
USO:
PROJETO DE SISTEMAS DIGITAIS COMPLEXOS
REGISTRADOR
TRANSFORMAÇÃO DO DADO
REGISTRADOR
SISTEMA RTL
SISTEMAS DIGITAIS
SISTEMAS RTL
SUBSISTEMA
DE
CONTROLE
SUBSISTEMA
DE
DADOS
SISTEMAS DIGITAIS
SISTEMAS RTL
SUBSISTEMA DE DADOS
REGISTRADOR REGISTRADOR
MODULO DE TRANSFORMAÇÃO
REGISTRADOR
REGISTRADOR
MODULO DE TRANSFORMAÇÃO
REGISTRADOR
TRANSFERENCIA ENTRE REGISTRADORES:
TRANSFORMAÇÃO DE UM DADO (VIA MODULO DE TRANSFORMAÇÃO) QUANDO ELE É TRANSFERIDO DE UM REGISTRADOR PARA OUTRO.
SISTEMAS DIGITAIS
SISTEMAS RTL
SUBSISTEMA DE DADOS
FUNÇÃO DO SISTEMA
IMPLEMENTADA POR UMA SEQUENCIA DE TRANSFERENCIAS ENTRE REGISTRADORES QUE PODE SER REPRESENTADA POR UM GRAFO CHAMADO DE GRAFO DE EXECUÇÃO.
SISTEMAS DIGITAIS
SISTEMAS RTL
SUBSISTEMA DE CONTROLE
CONTROLA A SEQUENCIA DE TRANSFERENCIAS ENTRE REGISTRADORES, PODENDO SER UM CONTROLADOR CONVENCIONAL OU UM CONTROLADOR MICROPROGRAMADO.
SISTEMAS DIGITAIS
SISTEMAS RTL
TIPOS DE GRAFOS DE EXECUÇÃO PARA IMPLEMENTAR A
FUNÇÃO P = PIXI (I: 0 A 7), USANDO O MODULO DE
TRANSFORMAÇÃO ABAIXO:
MODULO DE TRANSFORMAÇÃO
A x B + C
A B C
P = P7X7+ P6X6+ P5X5+ P4X4+ P3X3+ P2X2+ P1X1+ P0X0
UM PRODUTO E UMA SOMA
SISTEMAS DIGITAIS
SISTEMAS RTL
GRAFO DE EXECUÇÃO SEQUENCIAL
P = P7X7+ P6X6+ P5X5+ P4X4+ P3X3+ P2X2+ P1X1+ P0X0P = (((((((P7X+ P6)X+ P5)X+ P4)X+ P3)X+ P2)X+ P1)X+ P0)V6 = P7X+ P6
V5 = V6X+ P5
V4 = V5X+ P4
V3 = P4X+ P3
V2 = V3X+ P2
V1 = V2X+ P2
V0 = V1X+ P0
ENTRE CADA ( ) , UMA MULTIPLICAÇÃO E UMA SOMA
SISTEMAS DIGITAIS
SISTEMAS RTL
GRAFO DE EXECUÇÃO SEQUENCIAL : IMPLEMENTAÇÃO
REG
P7
REG
P6
REG
P5
REG
P4
REG
P3
REG
P2
REG
P1
REG
P0
REG
X
MT
MT
REG
REG .................
V6
V5
SISTEMAS DIGITAIS
SISTEMAS RTL
GRAFO ITERATIVO DE EXECUÇÃO SEQUENCIAL
P = P7X7+ P6X6+ P5X5+ P4X4+ P3X3+ P2X2+ P1X1+ P0X0P = (((((((P7X+ P6)X+ P5)X+ P4)X+ P3)X+ P2)X+ P1)X+ P0 )I = 6 V = P7
V = VX+ PI
I = I - 1
I 0
SISTEMAS DIGITAIS
SISTEMAS RTL
GRAFO DE EXECUÇÃO ITERATIVO SEQUENCIAL : IMPLEMENTAÇÃO
REG
REG
P6
REG
P5
REG
P4
REG
P3
REG
P2
REG
P1
REG
P0
REG
X
MT
P7
SISTEMAS DIGITAIS
SISTEMAS RTL
GRAFO DE EXECUÇÃO CONCORRENTE
P = P7X7+ P6X6+ P5X5+ P4X4+ P3X3+ P2X2+ P1X1+ P0X0
P = (((P7X+ P6)X2+ (P5X+ P4))X2)X2 +(P3X+ P2)X2+(P1X+ P0)
V7= P7X+ P6
V9 = V3VX+ V1V8= V7VX+ V5
V3 = P3X+ P2
V10 = V8 V2X + V9
V5 = P5X+ P4
V1 = P1X+ P0 VX = X.X
V2X = VX.VX
SISTEMAS DIGITAIS
SISTEMAS RTL
GRAFO DE EXECUÇÃO CONCORRENTE: IMPLEMENTAÇÃO
REG
P7
REG
P6
REG
P5
REG
P4
REG
P3
REG
P2
REG
P1
REG
P0
REG
X
MT MT MT MT
REG REG REG REG
MT
REG
MT
REG
MT
REG
MT
REG.................
SISTEMAS DIGITAIS
SISTEMAS RTL
GRAFO DE EXECUÇÃO GRUPO SEQUENCIAL
P = P7X7+ P6X6+ P5X5+ P4X4+ P3X3+ P2X2+ P1X1+ P0X0
P = (((P7X+ P6)X2+ (P5X+ P4))X2)X2 +(P3X+ P2)X2+(P1X+ P0)
V7= P7X+ P6
V9 = V3VX+ V1V8= V7VX+ V5
V3 = P3X+ P2
V10 = V8 V2X + V9
V5 = P5X+ P4
V1 = P1X+ P0 VX = X.X
V2X = VX.VX
SISTEMAS DIGITAIS
SISTEMAS RTL
GRAFO DE EXECUÇÃO GRUPO SEQUENCIAL: IMPLEMENTAÇÃO
REG
P7
REG
P6
REG
P5
REG
P4
REG
P3
REG
P2
REG
P1
REG
P0
REG
X
MT MT MT MT
REG REG REG REG
MT
REG
MT
REG
MT
REG
MT
REG.................
SISTEMAS DIGITAIS
SISTEMAS RTL
ORGANIZAÇÃO DO SUBSISTEMA DE DADOS
SEM COMPARTILHAMENTO
COM COMPARTILHAMENTO
UNIMODULO
SISTEMAS DIGITAIS
SISTEMAS RTL
SEM COMPARTILHAMENTO
SISTEMAS DIGITAIS
SISTEMAS RTL
IMPLEMENTAÇÃO DO GRAFO DE EXECUÇÃO SEQUENCIAL
REG
P7
REG
P6
REG
P5
REG
P4
REG
P3
REG
P2
REG
P1
REG
P0
REG
X
MT
MT
REG
REG
MODULOS DE TRANSFORMAÇÃO E REGISTRADORES NÃO SÃO COMPARTILHADOS
SISTEMAS DIGITAIS
SISTEMAS RTL
COM COMPARTILHAMENTO
REG
P7
REG
P6
REG
P5
REG
P4
REG
P3
REG
P2
REG
P1
REG
P0
REG
X
MT MT MT MT
REG REG REG REG
MT
REG
MT
REG
MT
REG
MT
REG
IMPLEMENTAÇÃO DO GRAFO DE EXECUÇÃO GRUPO SEQUENCIAL
MODULOS DE TRANSFORMAÇÃO E/OU REGISTRADORES SÃO COMPARTILHADOS. NO EX. ABAIXO OS MODULOS COM A MESMA COR PODEM SER “COMPARTILHADOS”
SISTEMAS DIGITAIS
SISTEMAS RTL
IMPLEMENTAÇÃO DO GRAFO ITERATIVO DE EXECUÇÃO SEQUENCIAL
REG
REG
P6
REG
P5
REG
P4
REG
P3
REG
P2
REG
P1
REG
P0
REG
X
MT
P7
IMPLEMENTAÇÃO DO GRAFO ITERATIVO DE EXECUÇÃO SEQUENCIAL
UNIMODULO
O MODULO DE TRANSFORMAÇÃO É UNICO
SISTEMAS DIGITAIS
SISTEMAS RTL
ORGANIZAÇÃO DO SUBSISTEMA DE CONTROLE
CENTRALIZADO
DESCENTRALIZADO
SEMI - CENTRALIZADO
SISTEMAS DIGITAIS
SISTEMAS RTL
CENTRALIZADO
SISTEMA RTL
SUBSISTEMA
DE
CONTROLE
SUBSISTEMA
DE
DADOS
SUBSISTEMA
DE
DADOS
SUBSISTEMA
DE
DADOS
SISTEMAS DIGITAIS
SISTEMAS RTL
DESCENTRALIZADO
SISTEMA RTL
SUBSISTEMA
DE
CONTROLE
SUBSISTEMA
DE
DADOS
SUBSISTEMA
DE
DADOS
SUBSISTEMA
DE
DADOS
SUBSISTEMA
DE
CONTROLE
SUBSISTEMA
DE
CONTROLE
SISTEMAS DIGITAIS
SISTEMAS RTL
SEMI - CENTRALIZADO SISTEMA RTL
SUBSISTEMA
DE
CONTROLE
SUBSISTEMA
DE
DADOS
SUBSISTEMA
DE
DADOS
SUBSISTEMA
DE
DADOSSUBSISTEMA
DE
CONTROLE
SUBSISTEMA
DE
CONTROLE
SUBSISTEMA
DE
CONTROLE
SISTEMAS DIGITAIS
EXERCICIO 25
1. IMPLEMENTAR A FUNÇÃO P COM GRAFO DE EXECUÇÃO CONCORRENTE, SEM COMPARTILHAMENTO E DESCENTRALIZADO, UTILIZANDO O SEGUINTE MODULO DE TRANSFORMAÇÃO, QUE JÁ ESTÁ ACOPLADO A UM REGISTRADOR E JÁ POSSUI UM CONTROLE INTERNO
MT
CONTROLE
CONTRIN
X
+
REG
CONTROUT
A B C
S
SISTEMAS DIGITAIS
EXERCICIO 25 – CONTINUAÇÃO
2A. IMPLEMENTAR A FUNÇÃO P COM GRAFO DE EXECUÇÃO GRUPO SEQUENCIAL, SEM COMPARTILHAMENTO E CENTRALIZADO, UTILIZANDO O SEGUINTE MODULO DE TRANSFORMAÇÃO, QUE JÁ ESTÁ ACOPLADO A DOIS REGISTRADORES E JÁ POSSUI UM CONTROLE INTERNO
MT
CONTROLE
CONTRIN
X
+
REG
CONTROUT
A1 B1 C1
S1
X
+
REG
A2 B2 C2
S22B. REPETIR PARA CONCORRENTE, SEM COMPARTILHAMENTO E CENTRALIZADO.
SISTEMAS DIGITAIS
SIST. RTL – MULTIPLICADORALGORITMOS DE MULTIPLICAÇÃO DE 2 VETORES COM 4 BITS
ALGORITMO_1
ALGORITMO_2
Z= XY
Z= XYI2I = X(Y020 + Y121 +Y222 +Y323 )
Z= XY020 + XY121 +XY222 +XY323
Z= ((((0 + XY020 )+ XY121 )+XY222 )+XY323 ) --------------------ALGORITMO_1
Z= ((((0 + XY024 /24)+ XY124 /23)+XY224 /22)+XY324 /21)
Z= (((1/2(0 + XY024 /23)+ XY124 /23)+XY224 /22)+XY324 /21)
Z= ((1/2(1/2(0 + XY024 /22)+ XY124 /22)+XY224 /22)+XY324 /21)
Z= (1/2(1/2(1/2(0 + XY024 /21)+ XY124 /21)+XY224 /21)+XY324)
Z= 1/2(1/2(1/2(1/2(0 + XY024)+ XY124)+XY224)+XY324) ---ALGORITMO_2
24
SISTEMAS DIGITAIS
SIST. RTL – MULTIPLICADORALGORITMOS DE MULTIPLICAÇÃO DE 2 VETORES COM 4 BITS
x0 1 0 1 5
1 0 1 1 B
0 1 0 1
0 1 0 1
0 0 0 0
0 1 0 1
0 0 1 1 0 1 1 1 37
+
COUT 0 0 0 0 0 0 0 0
0 1 0 1 < < < <
> 0 0 1 0 1
+0 0 1 0 1 0 0 0 0
0 1 0 1 < < < <
> 0 0 1 1 1 1 0 0 0
+0 0 1 1 1 1 0 0 0
0 0 0 0 < < < <
> 0 0 0 1 1 1 1 0 0
+0 0 0 1 1 1 1 0 0
0 1 0 1 < < < <
> 0 0 1 1 0 1 1 1 0
0 0 1 1 0 1 1 1 0
0 0 1 1 0 1 1 1 37
ALGORITMO_1 ALGORITMO_2 ( A SER USADO)
SISTEMAS DIGITAIS
SISTEMA RTL – MULTIPLICADOR
MULTIPLIERM1
M2P
START CLK
DONE
MULDATA
MULCTRL
SUBSIST. DADOS
SUBSIST. CONTROLE
SISTEMAS DIGITAIS
SISTEMA RTL – MULTIPLICADOR
GRAFO DE EXECUÇÃO PARA O ALGORITMO ESCOLHIDO
START0
1
ENTRADA X E Y Z =0 I =0
Z = (Z + (X*2N)YI)/2 I = I +1
I?
N=
N
ESTADO DE ESPERA (WAITING)
ESTADO DE ESTABELECIMENTO (SETUP)
ESTADO
ATIVO (ACTIVE)
MULTIPLIER
SISTEMAS DIGITAIS
MULTIPLICADOR ESPECIFICAÇÃO
ESPECIFICAÇÃO: DESCRIÇÃO EM VHDL(COMPORTAMENTAL)
MULTIPLIERM1
M2
START
CLK
DONE
BIBLIOTECA e PACOTES
ENTIDADE
ARQUITETURA
PROCESSO
PuVHDL(descriçãocomportamental)
SISTEMAS DIGITAIS
MULTIPLICADOR ESPECIFICAÇÃO
-- BIBLIOTECA
-- ---------------------
01 LIBRARY ieee; -- BIBLIOTECA DECLARADA PORQUE OS PACOTES ABAIXO SÃO NECESSARIOS
02 USE ieee.std_logic_1644.all; -- MULTI-NIVEIS LOGICOS USADOS
03 USE ieee.std_logic_arith.all; -- TIPO VETOR S/SINAL USADO EM OPERAÇÕES ARITMETICAS
SISTEMAS DIGITAIS
MULTIPLICADOR ESPECIFICAÇÃO
-- ENTIDADE
-- --------------------- -- MODO -- TIPO -- COMENTARIO
04 ENTITY multiplier IS
05 GENERIC (n:NATURAL :=16);
06 PORT (strt, clk : IN BIT;
07 x_in, y_in : IN UNSIGNED(n-1 DOWNTO 0); -- VETOR STD
08 zout : BUFFER UNSIGNED(2*n-1 DOWNTO 0); --BUFFER UTILIZADO PORQUE A SAIDA zout SERÁ UTILIZADA INTERNAMENTE
09 done : OUT BIT);
10 END multiplier;
SISTEMAS DIGITAIS
MULTIPLICADOR ESPECIFICAÇÃO-- ARCHITECTURE
-- ---------------------11 ARCHITECTURE behavioral of multiplier IS
12 TYPE stateT IS (idle,setup,active); -- TIPO ENUMERADO, DEFININDO ESTADOS DO MULTIPLICADOR
13 SIGNAL state : stateT := idle; -- ESTADO E ESTADO INICIAL
14 SIGNAL x,y : UNSIGNED(n-1 DOWNTO 0); -- USADOS PARA ARMAZENAR ENTRADAS
15 SIGNAL count : NATURAL RANGE 0 TO n-1; --USADO PARA ARMAZENAR CONTAGEM
16 BEGIN
PROCESSO -- PROCESSO ESTÁ NO PROX. SLIDE E DEVE SER INSERIDO AQUI
41 END behavioral;
SISTEMAS DIGITAIS
MULTIPLICADOR ESPECIFICAÇÃO-- PROCESSO
17 PROCESS (clk)
18 VARIABLE zero_2n : UNSIGNED(2*n-1 DOWNTO 0); -- USADA PARA ZERAR SAIDA
19 VARIABLE scale : UNSIGNED(n-1 DOWNTO 0); -- USADA PARA FAZER 2n
20 VARIABLE add_out : UNSIGNED(2*n DOWNTO 0); -- USADA PARA A SOMA
21 BEGIN
22 zero_2n := (OTHERS =>´0´);
23 scale := (OTHERS =>´0´);
24 IF (clk´EVENT AND clk =´1´) THEN
25 CASE state IS
26 WHEN idle => done <= ´1´;
IF (strt = ´1`) THEN state <= setup;
ELSE state <= idle;
END IF;
27
28
29
VARIAVEIS SÃO UTILIZADASPARA QUE A ATUALIZAÇÃOSEJA IMEDIATA E ESTEJA DISPONIVEL PARA A PROXIMA LINHA DE CODIGO
SISTEMAS DIGITAIS
MULTIPLICADOR ESPECIFICAÇÃO-- PROCESSO
-- ---------------------
30 WHEN setup => x <= x_in; y <= y_in ; count <= 0;
zout<=zero_2n; done <= ´0`;state <= active;31
32 WHEN active => IF (y(count) = ´0`) THEN add_out := ´0´& zout; -- & : CONCATENAÇÃO
33 ELSE add_out := (´0´& zout) + (´0´ & x & scale); -- & : CONCATENAÇÃO
34 END IF;
35 zout<= add_out(2*n downto 1);
36 IF (count) /=(n-1) THEN state <= active; count <= count + 1;
37 ELSE state <= idle; done <= ´1`;
38 END IF;
27 END CASE;
39 END IF;
40 END PROCESS;
SISTEMAS DIGITAIS
SIST. RTL :MULTIPLICADOR SUB. SISTEMA DE DADOS
MULTIPLIERM1
M2P
START CLK
DONE
MULCTRL
MULDATA
SISTEMAS DIGITAIS
SISTEMA RTL MULTIPLICADORSUBSIST. DE DADOS uVHDLCOMPORTAMENTAL
-- BIBLIOTECA
-- ---------------------01 LIBRARY ieee; -- BIBLIOTECA DECLARADA PORQUE OS PACOTES ABAIXO
SÃO NECESSARIOS
02 USE ieee.std_logic_1644.all; -- MULTI-NIVEIS LOGICOS USADOS
03 USE ieee.std_logic_arith.all; -- TIPO VETOR S/SINAL USADO EM OPERAÇÕES ARITMETICAS
SISTEMAS DIGITAIS
SISTEMA RTL – MULTIPLICADORSUBSIST. DE DADOS uVHDL COMPORTAMENTAL
-- ENTIDADE
-- --------------------- -- MODO -- TIPO
04 ENTITY muldata IS
05 GENERIC (n:NATURAL :=16);
06 PORT (ldX, ldY , ldZ,clk,shY,clrZ
: IN BIT; -- ld ,sh,clr SÃO SAIDAS DO SUBSIST. DE CONTROLE
07 x_in, y_in : IN UNSIGNED(n-1 DOWNTO 0);
08 zout : BUFFER UNSIGNED(2*n-1 DOWNTO 0));
09 END muldata;
SISTEMAS DIGITAIS
SISTEMA RTL – MULTIPLICADOR SUBSIST. DE DADOS uVHDL COMPORTAMENTAL
-- ARCHITECTURE
-- ---------------------11 ARCHITECTURE behavioral of muldata IS
12 SIGNAL x,y : UNSIGNED(n-1 DOWNTO 0); -- USADOS PARA ARMAZENAR ENTRADAS
13 BEGIN
PROCESSO -- PROCESSO ESTÁ NO PROX. SLIDE E DEVE SER INSERIDO AQUI
31 END behavioral;
SISTEMAS DIGITAIS
SIST. RTL- MULTIPLICSUBSIST. DADOS – COMPORTAM.
-- PROCESSO
14 PROCESS (clk)
15 VARIABLE zero_2n : UNSIGNED(2*n-1 DOWNTO 0);
16 VARIABLE scale : UNSIGNED(n-1 DOWNTO 0);
17 VARIABLE add_out : UNSIGNED(2*n DOWNTO 0);
18 BEGIN
19 zero_2n := (OTHERS =>´0´);
20 scale := (OTHERS =>´0´);
21 IF (clk´EVENT AND clk =´1´) THEN
22 IF (ldX = ´1`) THEN x < = xin; END IF;
23 IF (ldY = ´1`) THEN y < = yin; END IF;
24 IF (y(0) = ´0`) THEN add-out := ´0´& z;
25 ELSE add_out := (´0´& zout) + (´0´ & x & scale); END IF;
26 IF (ldZ = ´1`) THEN zout<= add_out(2*n downto 1); END IF;
27 IF (clrZ= ´1`) THEN zout < = zero_2n ; END IF;
28 IF (shY) = ´1`) THEN y <= ´0´ & y(n-1 DOWNTO 1); END IF;
29 END IF;
30 END PROCESS;
SISTEMAS DIGITAIS
SISTEMA RTL – MULTIPLICADORSUBSIST. DADOS - PROJETO
PROJETO DO SUBSISTEMA DE DADOS
REG X
REG Y
REG ZOUT
clk
VAND
+COUT zout
add_out
xreg_out
and_out
c_out
y_0
zreg_inldX
ldY
shY ldZ
clrZ
x_in y_in
SUDSIST.DE CONTROLE
SISTEMAS DIGITAIS
SISTEMA RTL – MULTIPLICADORSUBSIST. DADOS – PROJETO
VAND
REG X
REG Y
VAND
REG X
REG Y
SISTEMAS DIGITAIS
SIST. RTL :MULTIPLICADOR SUB. SISTEMA DE CONTROLE
MULTIPLIERM1
M2P
START CLK
DONE
MULCTRL
MULDATA
SISTEMAS DIGITAIS
SISTEMA RTL MULTIPLICADOR SUBSIST. DE CONTR uVHDL COMPORTAMENTAL
-- BIBLIOTECA
-- ---------------------
01 LIBRARY ieee; -- BIBLIOTECA DECLARADA PORQUE OS PACOTES ABAIXO SÃO NECESSARIOS
02 USE ieee.std_logic_1644.all; -- MULTI-NIVEIS LOGICOS USADOS
03 USE ieee.std_logic_arith.all; -- TIPO VETOR S/SINAL USADO EM OPERAÇÕES ARITMETICAS
SISTEMAS DIGITAIS
SISTEMA RTL – MULTIPLICADOR SUBSIST. DE CONTR uVHDL COMPORTAMENTAL
-- ENTIDADE
-- ---------------------
04 ENTITY multctrl IS
05 GENERIC (n:NATURAL :=16);
06 PORT (ldX, ldY , ldZ,done,shY,clrZ : OUT BIT;
07 strt, clk : IN BIT);
09 END multctrl;
SISTEMAS DIGITAIS
SISTEMA RTL – MULTIPLICADOR SUBSIST. DE CONTR uVHDL COMPORTAMENTAL
-- ARCHITECTURE
-- ---------------------10 ARCHITECTURE behavioral of multctrl IS
11 TYPE stateT IS (idle,setup,active); -- TIPO DEFININDO ESTADOS DO MULTIPLICADOR
12 SIGNAL state : stateT := idle; -- ESTADO E ESTADO INICIAL
13 SIGNAL count : NATURAL RANGE 0 TO n-1; --USADO PARA ARMAZENAR CONTAGEM
14 BEGIN
PROCESSO_FUNÇÃO_DE_TRANSIÇÂO -- PROCESSO ESTÁ NO PROX. SLIDE E DEVE SER INSERIDO AQUI
PROCESSO_FUNÇÃO_ DE_SAIDA -- PROCESSO ESTÁ NO PROX. SLIDE E DEVE SER INSERIDO AQUI
41 END behavioral;
SISTEMAS DIGITAIS
SISTEMA RTL – MULTIPLICADORSUB.SIST. CONTROLE – COMPORTAM.
-- PROCESSO_FUNÇÃO_DE_TRANSIÇÃO
15 PROCESS (clk)
16 BEGIN
17 IF (clk´EVENT AND clk =´1´) THEN
18 CASE state IS
19 WHEN idle => done <= ´1´;
IF (strt = ´1`) THEN state <= setup;
ELSE state <= idle;
END IF;
20
21
22
23 WHEN setup => count <= 0; done <= ´0`;state <= active;
24 WHEN active => IF (count = n-1 THEN count <=0; state <= idle;
25 ELSE count <= count + 1; state <= active );
26 END IF;
27 END CASE;
28 END IF;
29 END PROCESS;
SISTEMAS DIGITAIS
SISTEMA RTL – MULTIPLICADOR SUBSIST. DE CONTR UVHDL COMPORTAMENTAL
-- PROCESSO_FUNÇÃO_DE _SAIDA30 PROCESS (state)
31 VARIABLE controls : BIT_VECTOR(5 DOWNTO 0); --codigo = (done,ldX,ldY,ldZ,shY,clrZ)
32 BEGIN
33 CASE state IS
34 WHEN idle => controls := “100000”;
35 WHEN setup => controls := “011001”;
36 WHEN active => controls := “000110”;
37 END CASE;
38 done <= controls(5); ldX <= controls(4); ldY <= controls(3);
39 ldZ <= controls(2); shy(1) <= controls(1);clrZ <= controls(0);
40 END PROCESS;
SISTEMAS DIGITAIS
SISTEMA RTL – MULTIPLICADORSUBSIST. CONTROLE - PROJETO
PROJETO DO SUBSISTEMA DE CONTROLE (ONEHOT)
D Q
CLK D Q
CLK D Q
CLK
CLR
CNT
CONTADOR UP
MODULO N
TC
CLK
strt
clk
1
0
1
0
idlesetup
active
done
ldX
ldY
clrZ
shY
ldZ
idle0active1
didle
idle1
qsetup active0
qactivedactive
tc
count_out
SISTEMAS DIGITAIS
SISTEMA RTL – MULTIPLICADORSUBSIST. DADOS - ESTRUTURAL
COMPONENTES BASICOS
ld vin
clk vout
COMPONENTE: REG
PORT(vin,ld,vout,clk)
COMPONENTE: SHYREG
PORT(vin,ld,shY,vout_0,clk)
ld vin
shY
clk vout_0
COMPONENTE: REGCLR
PORT(vin,ld,clr,vout,clk)
ld vin
clr
clk vout vin
bitand vout
COMPONENTE: VECTORAND
PORT(vin,bitand,vout)
COMPONENTE: ADDERPOS
PORT(vin1,vin2,cin,vout,cout)
vin1 vin2
cin cout
vout
SISTEMAS DIGITAIS
SISTEMA RTL – MULTIPLICADORSUBSIST. DADOS – uVHDL ESTRUTURAL
-- ENTIDADE
-- ---------------------
04 ENTITY muldata_str IS
05 GENERIC (n:NATURAL :=16);
06 PORT (ldX, ldY , ldZ,clk,shY,clrZ : IN BIT;
07 x_in, y_in : IN UNSIGNED(n-1 DOWNTO 0);
08 zout) : BUFFER UNSIGNED(2*n-1 DOWNTO 0));
09 END muldata_str;
-- BIBLIOTECA
-- ---------------------01 LIBRARY ieee; -- BIBLIOTECA DECLARADA PORQUE OS PACOTES ABAIXO
SÃO NECESSARIOS
02 USE ieee.std_logic_1644.all; -- MULTI-NIVEIS LOGICOS USADOS
03 USE ieee.std_logic_arith.all; -- TIPO VETOR S/SINAL USADO EM OPERAÇÕES ARITMETICAS
SISTEMAS DIGITAIS
SISTEMA RTL – MULTIPLICADOR SUBSIST. DE DADOS UVHDL ESTRUTURAL-- ARCHITECTURE
-- ---------------------
11 ARCHITECTURE stuctural of muldata_str IS
12 SIGNAL add_out,xreg_out,and_out : BITVECTOR(n-1 DOWNTO 0);
13 SIGNAL c_out,y_0 : BIT;
14 SIGNAL zreg_in : BITVECTOR(2*n-1 DOWNTO 0);
15 BEGIN
16 zreg_in <= c_out & add_out & zout(n-1 DOWNTO 1);
17 X : ENTITY reg PORT MAP(x_in,ldX,xreg_out,clk);
18 Y : ENTITY shireg PORT MAP(y_in,ldX,shY,y_0,clk);
19 Z : ENTITY regclr PORT MAP(zreg_in,ldZ,clrZ,zout,clk);
20 VAND: ENTITY vectorand PORT MAP(xreg_out,y_0,and_out);
21 ADD : ENTITY adder_pos PORT MAP(zout(2*n –1 DOWNTO n) , and_out, ´0`, add_out,c_out);
22 END structural;
SISTEMAS DIGITAIS
SISTEMA RTL – MULTIPLICADORSUBSIST. CONTROLE - ESTRUTURAL
COMPONENTES BASICOSCOMPONENTE: FFD
PORT(d,clk,q,p,c)
p d
c
clk q
COMPONENTE: CONT
PORT(cnt,clk,tc,clr)
cnt
clr
clk tc
COMPONENTE: DEMUX
PORT(din,sel,dout0,dout1)
din
sel
dout0 dout1
COMPONENTE: OR
PORT(or1,or2,orout)
or1 or2
orout
SISTEMAS DIGITAIS
SISTEMA RTL – MULTIPLICADORSUBSIST. CONTROLE – ESTRUTURAL
-- ENTIDADE
-- ---------------------
04 ENTITY multctrl_str IS
05 GENERIC (n:NATURAL :=16);
06 PORT (ldX, ldY , ldZ,done,shY,clrZ : OUT BIT;
07 strt, clk : IN BIT;
inic : IN BIT) ;
09 END multctrl_str;
-- BIBLIOTECA
-- ---------------------01 LIBRARY ieee; -- BIBLIOTECA DECLARADA PORQUE OS PACOTES ABAIXO
SÃO NECESSARIOS
02 USE ieee.std_logic_1644.all; -- MULTI-NIVEIS LOGICOS USADOS
03 USE ieee.std_logic_arith.all; -- TIPO VETOR S/SINAL USADO EM OPERAÇÕES ARITMETICAS
SISTEMA RTL – MULTIPLICADOR uVHdL ESTRUTURAL
SISTEMAS DIGITAIS
DESCRIÇÃO ESTRUTURAL µVHDL DO SUBSISTEMA DE CONTROLE
-- ARCHITECTURE
-- ---------------------11 ARCHITECTURE stuctural of multctrl _str IS
12 SIGNAL active1,idle0,idle1,didle,qsetup,active0,qactive,dactive,tc : BIT;
15 BEGIN
16 OU1 : ENTITY OR PORT MAP(idle0,active1,didle);
17 REGIDLE : ENTITY FFD PORT MAP(didle,clk,done,inic,´0´);
18 DEMUX1 : ENTITY DEMUX PORT MAP(done,strt,didle0,didle1);
19 REGSETUP : ENTITY FFD PORT MAP(idle1,clk,qsetup,´0´,inic);
20 OU2 : ENTITY OR PORT MAP(qsetup,active0,dactive);
REGACTIVE : ENTITY FFD PORT MAP(dactive,clk,qactive,´0,inic);
21 DEMUX2 : ENTITY DEMUX PORT MAP(qactive,tc,active0,active1);
CONTADOR : ENTITY CONT PORT MAP(qactive,clk,tc,qsetup) ;
ldX <= qsetup;ldY <=qsetup;clrZ<=qsetup;shy<=qactive;ldZ<=qactive;
22 END structural;
-- ARCHITECTURE
-- ---------------------11 ARCHITECTURE stuctural of multctrl _str IS
12 SIGNAL active1,idle0,idle1,didle,qsetup,active0,qactive,dactive,tc : BIT;
15 BEGIN
16 OU1 : ENTITY OR PORT MAP(idle0,active1,didle);
17 REGIDLE : ENTITY FFD PORT MAP(didle,clk,done,inic,´0´);
18 DEMUX1 : ENTITY DEMUX PORT MAP(done,strt,didle0,didle1);
19 REGSETUP : ENTITY FFD PORT MAP(idle1,clk,qsetup,´0´,inic);
20 OU2 : ENTITY OR PORT MAP(qsetup,active0,dactive);
REGACTIVE : ENTITY FFD PORT MAP(dactive,clk,qactive,´0,inic);
21 DEMUX2 : ENTITY DEMUX PORT MAP(qactive,tc,active0,active1);
CONTADOR : ENTITY CONT PORT MAP(qactive,clk,tc,qsetup) ;
ldX <= qsetup;ldY <=qsetup;clrZ<=qsetup;shy<=qactive;ldZ<=qactive;
22 END structural;
-- ARCHITECTURE
-- ---------------------11 ARCHITECTURE stuctural of multctrl _str IS
12 SIGNAL active1,idle0,idle1,didle,qsetup,active0,qactive,dactive,tc : BIT;
15 BEGIN
16 OU1 : ENTITY OR PORT MAP(idle0,active1,didle);
17 REGIDLE : ENTITY FFD PORT MAP(didle,clk,done,inic,´0´);
18 DEMUX1 : ENTITY DEMUX PORT MAP(done,strt,didle0,didle1);
19 REGSETUP : ENTITY FFD PORT MAP(idle1,clk,qsetup,´0´,inic);
20 OU2 : ENTITY OR PORT MAP(qsetup,active0,dactive);
REGACTIVE : ENTITY FFD PORT MAP(dactive,clk,qactive,´0,inic);
21 DEMUX2 : ENTITY DEMUX PORT MAP(qactive,tc,active0,active1);
CONTADOR : ENTITY CONT PORT MAP(qactive,clk,tc,qsetup) ;
ldX <= qsetup;ldY <=qsetup;clrZ<=qsetup;shy<=qactive;ldZ<=qactive;
22 END structural;
SISTEMAS DIGITAIS
SISTEMA RTL – MULTIPLICADORESTRUTURAL
DESCRIÇÃO ESTRUTURAL µVHDL DO MULTIPLICADOR
MULCTRL_STR MULDATA_ STR
ldX
ldY
ldZ
clrZ
shY
strt
x_in y_in
zout
done
clkclk
inicCOMPONENTECOMPONENTE
PORT (ldX, ldY , ldZ,done,shY,clrZ, strt, clk,inic) PORT (ldX, ldY,ldZ,clk,shY,clrZ,x_in,y_in, zout)
SISTEMAS DIGITAIS
-- ENTIDADE05 ENTITY multiplier IS
06 GENERIC (n:NATURAL :=16);
07 PORT (done : OUT BIT;
08 strt, clk,inic : IN BIT;
09 x_in,x_out : IN UNSIGNED(n-1 DOWNTO 0);
10 zout :BUFFER UNSIGNED(2*n-1 DOWNTO 0));
11 END multiplier;
-- BIBLIOTECA
01 LIBRARY ieee; -- BIBLIOTECA DECLARADA PORQUE OS PACOTES ABAIXO SÃO NECESSARIOS
02 USE ieee.std_logic_1644.all; -- MULTI-NIVEIS LOGICOS USADOS
03 USE ieee.std_logic_arith.all; -- TIPO VETOR S/SINAL USADO EM OPERAÇÕES ARITMETICAS
04 USE WORK.ALL
SISTEMA RTL – MULTIPLICADOR UVHDL ESTRUTURAL
-- ENTIDADE05 ENTITY multiplier IS
06 GENERIC (n:NATURAL :=16);
07 PORT (done : OUT BIT;
08 strt, clk,inic : IN BIT;
09 x_in,x_out : IN UNSIGNED(n-1 DOWNTO 0);
10 zout :BUFFER UNSIGNED(2*n-1 DOWNTO 0));
11 END multiplier;
-- ARCHITECTURE
-- ---------------------12 ARCHITECTURE stuctural of muliplier IS
13 SIGNAL ldX,ldY,ldZ,shY,clrZ : BIT;
14 BEGIN
15 U1: ENTITY muldata_str PORT MAP (ldX, ldY,ldZ,clk,shY,clrZ,x_in,y_in, zout) ;
16 U2: ENTITY multctrl_str PORT MAP(ldX, ldY , ldZ,done,shY,clrZ, strt,clk,inic) ;
27 END structural;
SISTEMA RTL – MULTIPLICADOR uVHDL ESTRUTURAL
SISTEMAS DIGITAIS
SISTEMAS DIGITAIS
SISTEMA RTL
SUB. SIST. CONTROLE
SUB. SIST. DADOS
ENTRADA DE DADOS
SAIDA DE DADOS
ENTRADA DE CONTROLE
(EX. INICIO)
SAIDA DE CONTROLE
(EX. FIM)
COMANDOS
CONDIÇÕES
SISTEMA RTL - GENERICO
SISTEMAS DIGITAIS
GRAFO DE EXECUÇÃO
A < WNÃO
ENTRADA X E Y
A = X W = |Y|
A = A +1 W = W -1
Z = 4A
SAIDA Z
SIM
SISTEMA RTL – INC/DEC
SISTEMAS DIGITAIS
SISTEMA RTL – INC/DECPROJETO DO SUBSISTEMA DE DADOS
PROJETO DO SUBSISTEMA DE DADOS
REG_XCLK
X_IN
REG_YCLK
Y_IN
A < WNÃO
A = X W = |Y|
A = A +1 W = W -1
Z = 4A
SAIDA Z
SIM
ENTRADA X E Y
SUBSIST CONTROLE
LDX LDY
SISTEMAS DIGITAIS
SISTEMA RTL – INC/DEC PROJETO DO SUBSISTEMA DE DADOS
PROJETO DO SUBSISTEMA DE DADOS
REG_X ACLK
LDX
X_IN
REG_Y WCLK
LDY
Y_IN
| |
0 1SELY
A < WNÃO
A = X W = |Y|
A = A +1 W = W -1
Z = 4A
SAIDA Z
SIM
ENTRADA X E Y
A < W -> K= 1
SISTEMAS DIGITAIS
SISTEMA RTL – INC/DEC PROJETO DO SUBSISTEMA DE DADOS
PROJETO DO SUBSISTEMA DE DADOS
REG_X ACLK
LDX
X_IN
REG_Y WCLK
LDY
Y_IN
| |
0 1SELY
E1 E2 COMP E1<E2
K
A < WNÃO
A = X W = |Y|
A = A +1 W = W -1
Z = 4A
SAIDA Z
SIM
ENTRADA X E Y
SUBSISTCONTR.
SISTEMAS DIGITAIS
SISTEMA RTL – INC/DEC PROJETO DO SUBSISTEMA DE DADOS
PROJETO DO SUBSISTEMA DE DADOS
REG_X ACLKLDX REG_Y WCLK
LDY
Y_IN
| |
0 2 1SELY0 SELY1
E1 E2 COMP E1<E2
K
DEC
INC
1 0SELX
X_IN
A < WNÃO
A = X W = |Y|
A = A +1 W = W -1
Z = 4A
SAIDA Z
SIM
ENTRADA X E Y
SISTEMAS DIGITAIS
PROJETO DO SUBSISTEMA DE DADOS
REG_X ACLKLDX REG_Y WCLK
LDY
Y_IN
| |
0 2 1SELY0 SELY1
E1 E2 COMP E1<E2
K
DEC
INC
1 0SELX
X_IN
LEFT2
Z
SISTEMA RTL – INC/DEC PROJETO DO SUBSISTEMA DE DADOS
MUX1_0UT
XREG_0UT
INC_0UTLFT_0UT
MUX2_0UT
YREG_0UT
ABS_0UTDEC_0UT
A < WNÃO
A = X W = |Y|
A = A +1 W = W -1
Z = 4A
SAIDA Z
SIM
ENTRADA X E Y
SISTEMAS DIGITAIS
SISTEMA RTL
SUB. SIST. CONTROLE
SUB. SIST. DADOS
X_IN
Z
ENTRADA DE CONTROLE
(EX. strt)
SAIDA DE CONTROLE
(EX. done)
COMANDOS
CONDIÇÕES
Y_IN
LDXLDYSELXSELY0SELY1
K
SISTEMA RTL – INC/DEC
SISTEMAS DIGITAIS
GRAFO DE EXECUÇÃO PARA CONTROLE
A < WNÃO
ENTRADA X E Y
A = X W = |Y|
A = A +1 W = W -1
Z = 4A
SAIDA Z
SIM
WAITING
START =1START =0
SETUP
ABS
CHK_INTK=0
K=1
ITERATIVE
MULTIPLY
SISTEMA RTL - INC/DEC
SISTEMAS DIGITAIS
SISTEMA RTL – INC/DEC PROJETO DO SUBSISTEMA DE CONTROLE
D Q
CLK D Q
CLK D Q
CLK
strt
clk
1
0
0
1
waiting setu
p
chk_iter
waiting0
dwaiting
waiting1
qsetup
qchk_iter
dchk_iter
k
qwaiting
D Q
CLK
absqabs
D Q
CLK
iterate
D Q
CLK
multiply
qiteratechk_iter1
qmultiply
qiterateqsetup
qabsLDX
LDY
SELXSELY1SELY0
dmultiply
sou
DONE
SELX =1: ITERATELDX =1: ITERATE OU SETUPLDY =1: ITERATE OU SETUP OU ABSSELY0 =1: ABSSELY1 =1: ITERATE
PROJETO DO SUBSISTEMA DE CONTROLE (usando 1FF por estado)
SISTEMAS DIGITAIS
SISTEMA RTL – INC/DECDESCRIÇÃO COMPORTAMENTAL DO SUBSIST.DE CONTROLE
-- ENTIDADE
-- ---------------------
04 ENTITY incdec-ctrl IS
05 PORT (ldX, ldY , selX,done : OUT BIT;
06 selY : OUT OUT BIT_VECTOR(1 DOWNTO 0);
07 strt, k, clk : IN BIT);
09 END incdec_ctrl;
SISTEMAS DIGITAIS
SISTEMA RTL – INC/DEC DESCRIÇÃO COMPORTAMENTAL DO SUBSIST.DE CONTROLE
-- ARCHITECTURE
-- ---------------------
10 ARCHITECTURE behavioral of incdec_ctrl IS
11 TYPE stateT IS (waiting,setup,abs,chk_iter, iterate,multiply);
-- TIPO DEFININDO ESTADOS DO MULTIPLICADOR
12 SIGNAL state : stateT := waiting; -- ESTADO E ESTADO INICIAL
13 BEGIN
PROCESSO_FUNÇÃO_DE_TRANSIÇÂO -- PROCESSO ESTÁ NO PROX. SLIDE E DEVE SER INSERIDO AQUI
PROCESSO_FUNÇÃO_ DE_SAIDA -- PROCESSO ESTÁ NO PROX. SLIDE E DEVE SER INSERIDO AQUI
45 END behavioral;
SISTEMAS DIGITAIS
SISTEMA RTL – INC/DEC DESCRIÇÃO COMPORTAMENTAL DO SUBSIST.DE CONTROLE
-- PROCESSO_FUNÇÃO_DE_TRANSIÇÃO
14 PROCESS (clk)
15 BEGIN
16 IF (clk´EVENT AND clk =´1´) THEN
17 CASE state IS
18 WHEN waiting => IF (strt = ´1`) THEN state <= setup;
19 ELSE state <= waiting;
20 END IF;
21 WHEN setup => state <= abs;
22 WHEN abs => state <= chk_iter;
23 WHEN chk_iter => IF (k = `1`) THEN state <= iterate;
24 ELSE state <= multiply );
25 END IF;
26 WHEN iterate => state <= chk_iter;
27 WHEN multiply => state <= waiting;
28 END CASE;
29 END IF;
30 END PROCESS;
SISTEMAS DIGITAIS
SISTEMA RTL – INC/DEC DESCRIÇÃO COMPORTAMENTAL DO SUBSIST.DE CONTROLE-- PROCESSO_FUNÇÃO_DE _SAIDA
31 PROCESS (state)
32 VARIABLE controls : BIT_VECTOR(4 DOWNTO 0); --codigo = (ldX,ldY,selXselY(1),selY(0))
33 BEGIN
34 CASE state IS
35 WHEN waiting => controls := “00000”;
36 WHEN setup => controls := “11000”;
37 WHEN abs => controls := “01001”;
38 WHEN chk_iter => controls := “00000”;
39 WHEN iterate => controls := “11110”;
40 WHEN multiply => controls := “00000”;
41 END CASE;
42 ldX <= controls(4); ldY <= controls(3);
43 selX <= controls(2); selY <= controls(1 DOWNTO 0);
44 END PROCESS;
SISTEMAS DIGITAIS
-- ENTIDADE
-- --------------------- -- MODO -- TIPO
04 ENTITY incdec_data IS
05 GENERIC( n: NATURAL :=16);
06 PORT (ldX, ldY , selX, clk : IN BIT;
07 x_in, y_in : IN UNSIGNED(n-1 DOWNTO 0);
08 zout : OUT UNSIGNED(n-1 DOWNTO 0);
09 k : OUT BIT;
10 selY : IN BIT_VECTOR(1 DOWNTO ));
11 END incdec_data;
SISTEMA RTL – INC/DEC
SISTEMAS DIGITAIS
SISTEMA RTL – INC/DEC DESCRIÇÃO COMPORTAMENTAL DO SUBSIST.DE DADOS
-- ARCHITECTURE
12 ARCHITECTURE behavioral of incdec_data IS
13 SIGNAL x,y : BIT_VECTOR(n-1 DOWNTO 0);
14 BEGIN
15 PROCESS(clk)
16 BEGIN
17 IF (clk =´1´) THEN
18 IF (ldX = ´1`) AND (selX = ´0`) THEN x <= x_in; END IF;
19 IF (ldX = ´1`) AND (selX = ´1`) THEN x <= inc(x); END IF; -- inc() : FUNÇÃO DE PACOTE
20 IF (ldY = ´1`) AND (selY = ´00`) THEN y <= y_in; END IF;
21 IF (ldY = ´1`) AND (selY = ´01`) THEN y <= dec(y); END IF;
22 IF (ldY = ´1`) AND (selY = ´10`) THEN y <= ABS(y); END IF;
23 IF (x < y) THEN k <= `1`; ELSE k <= `0`; END IF;
24 zout <= shift_left(x,2);
25 END IF;
26 END PROCESS;
27 END behavioral;
SISTEMAS DIGITAIS
SISTEMA RTL – INC/DEC DESCRIÇÃO ESTRUTURAL DO SUBSIST.DE DADOS
COMPONENTES BASICOS
COMPONENTES BASICOS PORT
ENTIDADE: REG PORT(vin,ld,vout,clk)
ENTIDADE: INCREMENTER PORT(vin,vout)
ENTIDADE: DECREMENTER PORT(vin,vout)
ENTIDADE: ABSOLUTE PORT(vin,vout)
ENTIDADE: MUX2 PORT(vin0,vin1,sel,vout)
ENTIDADE: MUX4 PORT(vin0,vin1,vin2,vin3,sel2,vout)
ENTIDADE :LEFT_SHIFT2 PORT (vin,vout)
ENTIDADE : LESS_THAN PORT (vin0,vin1,comp_out)
SISTEMAS DIGITAIS
SISTEMA RTL – INC/DEC DESCRIÇÃO ESTRUTURAL DO SUBSIST.DE DADOS
-- ARCHITECTURE11 ARCHITECTURE stuctural of incdec_data IS
12 SIGNAL inc_out, dec_out : BIT_VECTOR(n-1 DOWNTO 0);
13 SIGNAL abs_out,lft_out : BIT_VECTOR(n-1 DOWNTO 0);
14 SIGNAL mux1_out,mux2_out : BIT_VECTOR(n-1 DOWNTO 0);
15 SIGNAL xreg_out,yreg_out : BIT_VECTOR(n-1 DOWNTO 0);
16 SIGNAL zero_32 : BIT_VECTOR(n-1 DOWNTO 0)
17 BEGIN
18 x : ENTITY reg PORT MAP(mux1_out,ldX,xreg_out,clk);
19 y : ENTITY reg PORT MAP(mux2_out,ldyX,yreg_out,clk);
20 inc : ENTITY incrementer PORT MAP(xreg_out,inc_out);
21 dec : ENTITY decrementer PORT MAP(yreg_out,dec_out);
22 abs : ENTITY absolute PORT MAP(yreg_out,abs_out);
23 mux1: ENTITY mux2 PORT MAP(x_in,inc_out,selX,mux1_out);
24 mux2 : ENTITY mux4 PORT MAP(y_in,dec_out,abs_out,zero_32,selY,mux2_out);
25 lft2 : ENTITY lft_shift2 PORT MAP(xreg_out,lft_out);
26 comp : ENTITY less_than PORT MAP(xreg_out,yreg_out,k);
26 END structural;
INICICIALIZAÇÃODESNECESSARIA PQ NÃO SERÁ USADA ESTA ENTRADA NO MUX
SISTEMAS DIGITAIS
SISTEMA RTL – INC/DEC DESCRIÇÃO ESTRUTURAL DO SUBSIST.DE CONTROLE
COMPONENTES BASICOS PORT
ENTIDADE: FFD PORT(d,clk,q,p,c)
ENTIDADE: DEMUX PORT(din,sel,dout0,dout1)
ENTIDADE: OR PORT(or1,or2,orout)
SISTEMAS DIGITAIS
SISTEMA RTL – INC/DEC DESCRIÇÃO ESTRUTURAL DO SUBSIST.DE CONTROLE
ARCHITECTURE11 ARCHITECTURE stuctural of incdec _str IS
12 SIGNAL dwaiting;qwaiting;waiting1;waiting0;qsetup;qabs;dchk_iter;qchk_iter;chk_iter1
: BIT;
13 SIGNAL diterate,qiterate,dmultiply,sou,qmultiply : BIT;
14 BEGIN
15 OU1 : ENTITY OR PORT MAP(qmultiply,waiting0,dwaiting);
16 REGWAIT : ENTITY FFD PORT MAP(dwaiting,clk,qwaiting,´0´,´0´);
17 DEMUX1 : ENTITY DEMUX PORT MAP(qwaiting,strt,waiting0,waiting1);
18 REGSETUP : ENTITY FFD PORT MAP(waiting1,clk,qsetup,´0´,´0´);
19 REGABS : ENTITY FFD PORT MAP(qsetup,clk,qabs,´0´,´0´);
20 OU2 : ENTITY OR PORT MAP(qabs,qiterate,dchk_iter);
21 REGCHK : ENTITY FFD PORT MAP(dchk_iter,clk,qchk_iter,´0,´0`);
22 DEMUX2 : ENTITY DEMUX PORT MAP(qchk_iter,k,dmultiply,chk_iter1);
23 REGITER : ENTITY FFD PORT MAP(chk_iter1,clk,qiterate,´0´,´0´);
24 REGMUL : ENTITY FFD PORT MAP(dmultiply,clk,qmultiply,´0´,´0´);
25 OU3 : ENTITY OR PORT MAP(qiterate,qsetup,sou);
26 OU4 : ENTITY OR PORT MAP(qabs,sou,ldY)
27 ldX <= sou;selY(0) <=qabs;selY(1)<=qiterate;selX<=qiterate;done<=qwaiting;
28 END structural;
SISTEMAS DIGITAIS
SISTEMA RTL – INC/DEC DESCRIÇÃO ESTRUTURAL -- BIBLIOTECA
01 LIBRARY ieee; -- BIBLIOTECA DECLARADA PORQUE OS PACOTES ABAIXO SÃO NECESSARIOS
02 USE ieee.std_logic_1644.all; -- MULTI-NIVEIS LOGICOS USADOS
03 USE ieee.std_logic_arith.all; -- TIPO VETOR S/SINAL USADO EM OPERAÇÕES ARITMETICAS
04 USE WORK.ALL
-- ENTIDADE
05 ENTITY incdec IS
06 GENERIC (n:NATURAL :=16);
07 PORT (strt : IN BIT;
08 x_in, y_in : IN UNSIGNED(n-1 DOWNTO 0);
09 zout : OUT UNSIGNED(n-1 DOWNTO 0);
10 done : OUT BIT;
11 clk : IN BIT);
12 END incdec;
SISTEMAS DIGITAIS
SISTEMA RTL INC/DEC DESCRIÇÃO ESTRUTURAL
-- ARCHITECTURE
-- ---------------------12 ARCHITECTURE structural of incdec IS
13 SIGNAL selY :BIT_VECTOR (1 DOWNTO 0);
14 SIGNAL ldX,ldY,selX,k :BIT;
15 BEGIN
16 datasub: ENTITY incdec_data PORT MAP(ldX,ldY,selX,x_in,y_in,zout,k,clk,selY);
17 ctrlsub : ENTITY incdec_ctr PORT MAP(ldX,ldYselX,done,selY,strt,k,clk);
18 END structural;
SISTEMAS DIGITAIS
EXERCICIO 26
1. CONSIDERE A DESCRIÇÃO DO SISTEMA DA FIG. AO LADO
A. SE OS VALORES INICIAIS DE X E Y FOREM 00101110 E 11100010, DETERMINE O VALOR DE A, B, C, APÓS A EXECUÇÃO.
B. PROJETE O SUBSISTEMA DE DADOS QUE SEJA ADEQUADO PARA EXECUTAR A SEQUENCIA RTL.
C. FORNEÇA UM DIAGRAMA DE ESTADOS DO SUBSISTEMA DE CONTROLE E IMPLEMENTE-O USANDO MUX, CONTADOR , DECODIFICADOR E INVERSOR.
D. REPITA O PROJETO DO SUBSISTEMA DE CONTROLE USANDO A ABORDAGEM DE UM FF POR ESTADO.
ENTITY EXERCISE IS PORT (X,Y : IN BIT_VECTOR (7 DOWNTO 0); S : IN BIT C : OUT BIT_VECTOR ( 7 DOWNTO 0));END EXERCISE;
ARCHITECTURE SIMPLE OF EXERCISE IS SIGNAL STATE : NATURAL RANGE 0 TO 6 := 0; SIGNAL A, B : BIT_VECTOR (7 DOWNTO 0); BEGIN PROCESS (CLK) BEGIN IF (CLK´EVENT AND CLK=´1´) THEN CASE STATE IS WHEN 0 => IF (S = ´1´) THEN STATE<= 1;END IF; WHEN 1 => B <= X; A <=Y ; STATE <= 2; WHEN 2 => A <= A + B;
IF (A(7)= ´1´) THEN STATE<= 5; ELSE STATE <= 3;
END IF; WHEN 3 => A <= NOT (A); STATE <= 4; WHEN 4 => A <= A +1; STATE <= 6; WHEN 5 => B <= B +1; STATE <= 6; WHEN 6 => C <= A +B; STATE <= 0; END CASE; END IF; END PROCESS; END SIMPLE;
SISTEMAS DIGITAIS
EXERCICIO 26 – CONTINUAÇÃO
2. O QUE FAZ O SISTEMA DA FIGURA AO LADO?
3. MOSTRE A IMPLEMENTAÇÃO DA SEGUINTE INSTRUÇÃO EM µVHDL
IF (A >B) THEN A <= B ; B <= A;
ELSE A <= C;
END IF;
REG_ACLK
LDA
SOMADORCIN =0
COUT
REG_BCLK
LDBCLRB
REG_CCLK
LDCOR
COUT
S2
A7
S1
LDC
CLRB
LDK
E
8
CONTADOR MOD 4
00
E
LDK CLK
DECODIFICOR
LDA S1 S2 LDB
0 1 2 3
SISTEMAS DIGITAIS
COMPARTILHAMENTO EM SISTEMA RTL
PROJETAR UM SISTEMA RTL PARA COMPUTAR:
(A2 +B2)USANDO A APROXIMAÇÃO... MAX((0,875X + 0,5Y),X)
EM QUE: X = MAX(|A|,|B|)
Y = MIN(|A|,|B|)
OBS:
0,875X = X – 0,125X = X – X/8 = X – (X>>3)
0,5Y = Y/2 = Y>>1
SISTEMAS DIGITAIS
COMPARTILHAMENTO EM SISTEMA RTL
GRAFO DE EXECUÇÃO
X = MAX(T1,T2) Y = MIN(T1,T2)
A = IN1 B= IN2
T1 =|A| T2 = |B|
T5 = X – T3
T6 = T4 + T5
T7 = MAX(T6,X)
MAX((0,875X + 0,5Y),X)
EM QUE :X = MAX(|A|,|B|)
Y = MIN(|A|,|B|)
LISTA DE VARIAVEIS
A ,B
T1,T2
X,Y
T3,T4
T5
T6
T7
S0
S1
S2
S3
S4
S5
S6
OUT =T7
T3 = X >>3 T4 =Y >> 1
S7
T6
T5 T4
SISTEMAS DIGITAIS
COMPARTILHAMENTO EM SISTEMA RTL
AGRUPAMENTO DE VARIAVEIS EM REGISTRADORES
A TAB. ABAIXO DEVE MOSTRAR O ESTADO EM QUE A VARIAVEL ESTÁ DISPONIVEL , O TEMPO DE VIDA DA VARIAVEL , E O AGRUPAMENTO DE VARIAVEIS EM REGISTRADORES
VAR S0 S1 S2 S3 S4 S5 S6 S7
A
B
T1
T2
X
Y
T3
T4
T5
T6
T7
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7
S1
T5 = X – T3
OUT = T7
SISTEMAS DIGITAIS
VAR S0 S1 S2 S3 S4 S5 S6 S7
A R1
B R2
T1 R1
T2 R2
X R1 R1 .... R1
Y R2
T3 R2
T4 R3 R3
T5 R2
T6 R2
T7 R1
COMPARTILHAMENTO EM SISTEMA RTL
3 REGISTRADORES
AGRUPAMENTO DE VARIAVEIS EM REGISTRADORES
A TAB. ABAIXOMOSTRA O ESTADO EM QUE A VARIAVEL ESTÁ DISPONIVEL , O TEMPO DE VIDA DA VARIAVEL , E O AGRUPAMENTO DE VARIAVEIS EM REGISTRADORES
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7
S1
T5 = X – T3
OUT = T7
SISTEMAS DIGITAIS
COMPARTILHAMENTO EM SISTEMA RTL
PROJETO DO SUBSISTEMA DE DADOS
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
S1X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
T5 = X – T3 S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7OUT = T7
R1 A R2 B
IN1 IN2
SISTEMAS DIGITAIS
COMPARTILHAMENTO EM SISTEMA RTL
PROJETO DO SUBSISTEMA DE DADOS
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
S1X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
T5 = X – T3 S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7OUT = T7
R2 B,T2
IN1 IN2
R1 A,T1
| | | |
SISTEMAS DIGITAIS
COMPARTILHAMENTO EM SISTEMA RTL
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
S1X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
T5 = X – T3 S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7OUT = T7
R2 B,T2,Y
IN1 IN2
R1 A,T1,X
| | | |
MINMAX
SISTEMAS DIGITAIS
COMPARTILHAMENTO EM SISTEMA RTL
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
S1X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
T5 = X – T3 S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7OUT = T7
R2 B,T2,Y,T3
IN1 IN2
R1 A,T1,X
| | | |
MINMAX
>>3>>1
R3 T4
SISTEMAS DIGITAIS
COMPARTILHAMENTO EM SISTEMA RTL
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
S1X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
T5 = X – T3 S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7OUT = T7
R2 B,T2,Y,T3,T5
IN1 IN2
R1 A,T1,X
| | | |
MINMAX
>>3>>1
R3 T4
-
SISTEMAS DIGITAIS
COMPARTILHAMENTO EM SISTEMA RTL
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
S1X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
T5 = X – T3 S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7OUT = T7
R2 B,T2,Y,T3,T5,T6
IN1 IN2
R1 A,T1,X
| | | |
MINMAX
>>3>>1
R3 T4
- +
SISTEMAS DIGITAIS
COMPARTILHAMENTO EM SISTEMA RTL
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
S1X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
T5 = X – T3 S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7OUT = T7
R2 B,T2,Y,T3,T5,T6
IN1 IN2
R1 A,T1,X,T7
| | | |
MINMAX
>>3>>1
R3 T4
- +
SISTEMAS DIGITAIS
COMPARTILHAMENTO EM SISTEMA RTL
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
S1X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
T5 = X – T3 S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7OUT = T7
R2 B,T2,Y,T3,T5,T6
IN1 IN2
R1 A,T1,X,T7
| | | |
MINMAX
>>3>>1
R3 T4
- +
SISTEMAS DIGITAIS
OPER S0 S1 S2 S3 S4 S5 S6 S7
| |
| |
MAX
MIN
-
+
COMPARTILHAMENTO EM SISTEMA RTL
A TAB. ABAIXO DEVE MOSTRAR O ESTADO EM QUE A OPERADOR ESTÁ SENDO USADO.
AGRUPAMENTO DE OPERADORES
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
S1X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
T5 = X – T3 S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7OUT = T7
COMPARTILHAMENTO EM SISTEMA RTL
>>3 E >>1NÃO FORAM COLOCADOSPOR QUE NÃO NECESSITAMDE OPERADORES
SISTEMAS DIGITAIS
OPER S0 S1 S2 S3 S4 S5 S6 S7
| | OP1
| | OP2
MAX OP1
MIN OP2
- OP2
+ OP2
AGRUPAMENTO DE OPERADORES
A TAB. ABAIXO MOSTRA O ESTADO EM QUE A OPERADOR ESTÁ SENDO USADO.
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
S1X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
T5 = X – T3 S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7OUT = T7 OP1: | | , MAX ,
OP2: | | , MIN , - , +
OP: | | , MAX, MIN , - , +
O1 O2
OR
SEL_OP
SISTEMAS DIGITAIS
COMPARTILHAMENTO EM SISTEMA RTL
PROJETO DO OPERADOR0 O1
S_O1/0 0 1
O2
S_O2/#
+ CIN
O1
S_O1/+0 1
O2
0 1OR
CFIM
XOR
CINV
BIT DE SINAL
S_O1/011011
S_O2/#01111
CFIM00111
S_O1/+00011
CINVXX001
+-| |MAXMIN
0 1
SISTEMAS DIGITAIS
COMPARTILHAMENTO EM SISTEMA RTL
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
S1X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
T5 = X – T3 S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7OUT = T7
R2 B,T2,Y,T3,T5,T6
IN1 IN2
R1 A,T1,X,T7
OP1 OP2
>>1
R3 T4
SUBSIST. DE DADOS COM AGRUPAMENTO DE OPERADORES
>>3
SISTEMAS DIGITAIS
COMPARTILHAMENTO EM SISTEMA RTL
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
S1X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
T5 = X – T3 S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7OUT = T7
R2 B,T2,Y,T3,T5,T6
IN1 IN2
R1 A,T1,X,T7
OP1 OP2
>>1
R3 T4
SUBSIST. DE DADOS COM AGRUPAMENTO DE CONEXÕES
>>3
A
C
B
D
EF
GHI
CONEXÕESNOMEADAS
SISTEMAS DIGITAIS
CONEXÃO S0 S1 S2 S3 S4 S5 S6 S7
A
B
C
D
E
F
G
H
I
COMPARTILHAMENTO EM SISTEMA RTL
TABELA DE INCOMPATIBILIDADE DE CONEXÕES
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
S1X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
T5 = X – T3 S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7OUT = T7
SISTEMAS DIGITAIS
CONEXÃO S0 S1 S2 S3 S4 S5 S6 S7
A
B
C
D
E
F
G
H
I
COMPARTILHAMENTO EM SISTEMA RT
TABELA DE INCOMPATIBILIDADE DE CONEXÕES
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
S1X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
T5 = X – T3 S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7OUT = T7
SISTEMAS DIGITAIS
BUS S0 S1 S2 S3 S4 S5 S6 S7
BUS1
BUS2
BUS3
BUS4
COMPARTILHAMENTO EM SISTEMA RTL
AGRUPAMENTO CONEXÕES
CRITERIO DE AGRUPAMENTO
AS CONEXÕES QUE PODEM SER AGRUPADAS SÃO AQUELAS QUE TENHAM DESTINO COMUM E NÃO SEJAM INCOMPATIVEIS
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
S1X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
T5 = X – T3 S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7OUT = T7
SISTEMAS DIGITAIS
BUS S0 S1 S2 S3 S4 S5 S6 S7
BUS1 E A D
BUS2 F B C
BUS3 G I
BUS4 H
COMPARTILHAMENTO EM SISTEMA RTL
AGRUPAMENTO CONEXÕES
CRITERIO DE AGRUPAMENTO
AS CONEXÕES AGRUPADAS SÃO AS DE DESTINO COMUM E COMPATIVEIS
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
S1X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
T5 = X – T3 S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7OUT = T7
BUS LIVRE
MESMODESTINO
SISTEMAS DIGITAIS
COMPARTILHAMENTO EM SISTEMA RTL
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
S1X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
T5 = X – T3 S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7OUT = T7
R2 B,T2,Y,T3,T5,T6
IN1 IN2
R1 A,T1,X,T7
OP1 OP2
R3 T4
SUBSIST. DE DADOS COM AGRUPAMENTO DE CONEXÕES
C D
E F
G
>>3
>>1A
IH
B
BUS2
BUS1
BUS3
BUS4
SISTEMAS DIGITAIS
REG S0 S1 S2 S3 S4 S5 S6 S7
R1
R2
R3
COMPARTILHAMENTO EM SISTEMA RTL
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
S1X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
T5 = X – T3 S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7OUT = T7
R2 B,T2,Y,T3,T5,T6R1 A,T1,X,T7 R3 T4
CRITERIO DE AGRUPAMENTO
OS REGISTRADORES QUE NÃO PODEM SER AGRUPADOS SÃO AQUELES ACESSADOS PARA LEITURA AO MESMO TEMPO OU PARA ESCRITA AO MESMO TEMPO.
CRITERIO DE AGRUPAMENTO
OS REGISTRADORES QUE NÃO PODEM SER AGRUPADOS SÃO AQUELES ACESSADOS PARA LEITURA AO MESMO TEMPO OU PARA ESCRITA AO MESMO TEMPO.
SUBSIST. DE DADOS COM AGRUPAMENTO DE REGISTRADORES
SISTEMAS DIGITAIS
REG S0 S1 S2 S3 S4 S5 S6 S7
R1 E LE LE L L LE
R2 E LE LE LE LE LE L
R3 E L
COMPARTILHAMENTO EM SISTEMA RTL
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
S1X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
T5 = X – T3 S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7OUT = T7
R2 B,T2,Y,T3,T5,T6R1 A,T1,X,T7 R3 T4
CRITERIO DE AGRUPAMENTO
OS REGISTRADORES QUE NÃO PODEM SER AGRUPADOS SÃO AQUELES ACESSADOS PARA LEITURA AO MESMO TEMPO OU PARA ESCRITA AO MESMO TEMPO.
SUBSIST. DE DADOS COM AGRUPAMENTO DE REGISTRADORES
R1 E R3 PODEM SER AGRUPADOS
EL LEITURA ESCRITA
SISTEMAS DIGITAIS
COMPARTILHAMENTO EM SISTEMA RTL
T1 =|A| T2 = |B|
S0A = IN1 B= IN2
S1X = MAX(T1,T2)
Y = MIN(T1,T2)
S2
T3 = X >>3
T4 =Y >> 1S3
T5 = X – T3 S4
T6 = T4 + T5 S5
T7 = MAX(T6,X)
S6
S7OUT = T7
R2 B,T2,Y,T3,T5,T6
IN1 IN2
R1 A,T1,X,T7
OP1 OP2
SUBSIST. DE DADOS COM AGRUPAMENTO DE REGISTRADORES
>>3
>>1
BUS2
BUS1
BUS3
BUS4R3 T4
ARQUIVO DE REGISTRADORES
SISTEMAS DIGITAIS
COMPONENTES DE UM SISTEMA RTL
SUBSIST. DE DADOSMODULOS DE ARMAZENAMENTOMODULOS FUNCIONAISCAMINHO DE DADOSPONTOS DE CONTROLEPONTOS DE CONDIÇÃO
MATRIZ DE REG´s R
WRITE
WRITE_ADDR
READ_ADDR-L
READ_ADDR-R
MUX_L MUX_RCMUX_L
000...00
CMUX_R
CMPL_LCMPL_L
CMPL_RCMP_R
ALUOP_CODE
CINSINAL
Z
COUT
DESLOCADORSH_LEFTSH_RIGHT
R_DATA
DATA_IN
LD_DATA
CLK
R_ADDR
LD_ADDRCLK
S
C
Z
CLKLD_COND
REGCONDIÇÃO
SISTEMAS DIGITAIS
COMPONENTES DE UM SISTEMA RTL
MODULOS DE ARMAZENAMENTOMODULO BASICO: REGISTRADORES
ORGANIZAÇÃO:REGISTRADORES INDIVIDUAISMATRIZES DE REGISTRADORESCOMBINAÇÃO
CONEXÕES E CONTROLES SEPARADOS
ARMAZENAMENTO DE DADOS E CONDIÇÕES
CONEXÕES E CONTROLES COMPARTILHADOS
SISTEMAS DIGITAIS
COMPONENTES DE UM SISTEMA RTL
MATRIZES DE REGISTRADORESTIPOS MAIS COMUNS:
ARQUIVO DE REGISTRADORESMEMORIA DE ACESSO ALEATORIO (RAM)
ARQUIVO DE REGISTRADORES (REGISTER FILE -RF)
ARQUIVO DE REGISTRADORES
XN
WARAL
CLK
WRRAR
ZL ZR
K
K
K
N N
RANDOM ACCESS MEMORY
SISTEMAS DIGITAIS
COMPONENTES DE UM SISTEMA RTL DESCRIÇÃO µVHDL DO ARQUIVO DE REGISTRADORES
-- BIBLIOTECA01 LIBRARY ieee;
02 USE ieee.std_logic_1644.all;
03 USE ieee.std_logic_arith.all;
-- ENTIDADE04 ENTITY regfile IS
05 GENERIC (n:NATURAL :=16; -- TAMANHO DA PALAVRA
06 p: NATURAL := 8; -- TAMANHO DO ARQ. DE REG`s
07 k: NATURAL :=3 ; -- N0 DE BITS DO VETOR DE END.
08 Td: TIME : =5nS);
09 PORT( X : IN UNSIGNED(n-1 DOWNTO 0);
10 WA,Ral,RAr : IN UNSIGNED(K-1 DOWNTO 0);
11 Zl,Zr : OUT UNSIGNED(n-1 DOWNTO 0);
12 Wr,clk : IN BIT);
13 END regfile;
SISTEMAS DIGITAIS
COMPONENTES DE UM SISTEMA RTL
-- ARCHITECTURE14 ARCHITECTURE behavioral of regfile IS
15 SUBTYPE WordT IS UNSIGNED(n-1 DOWNTO 0);
16 TYPE StoragetT IS ARRAY (0 TO p-1) OF WordT;
17 SIGNAL RF : StorageT ; : StorageT ; -- CONTEUDO DO ARQ. DE REG`s
18 BEGIN
19 PROCESS (clk) – função de transição de estado
20 BEGIN
21 IF (clk´EVENT AND clk =´1´) AND (Wr = ´1´) THEN RF(CONV_INTEGER(WA)) <= X;
22 END IF;
23 END PROCESS;
24 PROCESS (Ral,Rar,RF) – função de saida
25 BEGIN
26 Zl <= RF(CONV_INTEGER(RAl)) AFTER Td;
27 Zr <= RF(CONV_INTEGER(RAr)) AFTER Td;
28 END PROCESS;
29 END behavioral;
SISTEMAS DIGITAIS
EXERCICIO 27
PROJETAR UM ARQUIVO DE REGISTRADORES (8 x 8) USANDO:
LD
OE REGCLK
8
8
E DECOD
OE 3-STATE
8
8
8
3
SISTEMAS DIGITAIS
COMPONENTES DE UM SISTEMA RTL
MEMORIA RAM
RAM
XN
A
CLK
Z
K
N
RD
WR
SISTEMAS DIGITAIS
COMPONENTES DE UM SISTEMA RTL DESCRIÇÃO µVHDL DA MEMORIA RAM
-- BIBLIOTECA01 LIBRARY ieee;
02 USE ieee.std_logic_1644.all;
03 USE ieee.std_logic_arith.all;
-- ENTIDADE04 ENTITY ram IS
05 GENERIC (n:NATURAL :=16; -- TAMANHO DA PALAVRA
06 p: NATURAL := 256; -- TAMANHO DA RAM
07 k: NATURAL :=8 ; -- N0 DE BITS DO VETOR DE END.
08 Td: TIME := 40nS);
09 PORT( X : IN UNSIGNED(n-1 DOWNTO 0);
10 A : IN UNSIGNED(K-1 DOWNTO 0);
11 Z : OUT UNSIGNED(n-1 DOWNTO 0);
12 Rd,Wr,clk : IN BIT);
13 END ram;
SISTEMAS DIGITAIS
COMPONENTES DE UM SISTEMA RTL
-- ARCHITECTURE14 ARCHITECTURE behavioral of ram IS
15 SUBTYPE WordT IS UNSIGNED(n-1 DOWNTO 0);
16 TYPE StoragetT IS ARRAY (0 TO p-1) OF WordT;
17 SIGNAL Memory : StorageT ; -- CONTEUDO DA RAM
18 BEGIN
19 PROCESS (clk) – função de transição de estado
20 BEGIN
21 IF (clk´EVENT AND clk =´1´) AND (Wr = ´1´) THEN RF(CONV_INTEGER(WA)) <= X;
22 END IF;
23 END PROCESS;
24 PROCESS (Rd,Memory) – função de saida
25 BEGIN
26 IF (RD = ´1`) THEN Z <= Memory(CONV_INTEGER(A)) AFTER Td;
27 END IF;
28 END PROCESS;
29 END behavioral;
SISTEMAS DIGITAIS
EXERCICIO 28
PROJETAR UMA RAM (8 x 8) USANDO :
LD
OE REGCLK
8
8
E DECOD
8
3
SISTEMAS DIGITAIS
COMPONENTES DE UM SISTEMA RTL
OUTROS MODULOS DE ARMAZENAMENTOMODULOS DE ARMAZENAMENTO SEQUENCIAL
FIFO LIFO
FIFO:
FIFO
XN
Z
N
RDWRCLK
EMPTYFULL
DATA_OUT
DATA_IN
SISTEMAS DIGITAIS
COMPONENTES DE UM SISTEMA RTL DESCRIÇÃO µVHDL DA MEMORIA FIFO
-- BIBLIOTECA01 LIBRARY ieee;
02 USE ieee.std_logic_1644.all;
03 USE ieee.std_logic_arith.all;
-- ENTIDADE04 ENTITY fifo IS
05 GENERIC (n:NATURAL :=16; -- TAMANHO DA FIFO
06 PORT( X : IN BIT_VECTOR(15 DOWNTO 0);
07 Z : OUT BIT_VECTOR(15 DOWNTO 0);
08 Rd,Wr : IN BIT;
09 Empty,Full : OUT BIT;
10 clk : IN BIT;
13 END fifo;
-- ENTIDADE04 ENTITY fifo IS
05 GENERIC (n:NATURAL :=16; -- TAMANHO DA FIFO
06 PORT( X : IN BIT_VECTOR(15 DOWNTO 0);
07 Z : OUT BIT_VECTOR(15 DOWNTO 0);
08 Rd,Wr : IN BIT;
09 Empty,Full : OUT BIT;
10 clk : IN BIT;
13 END fifo;
SISTEMAS DIGITAIS
COMPONENTES DE UM SISTEMA RTL
-- ARCHITECTURE
14 ARCHITECTURE behavioral of fifo IS
15 TYPE StoragetT IS ARRAY (0 TO n-1) OF BIT_VECTOR (15 DOWNTO 0);
16 SIGNAL Fifo : StorageT ; -- CONTEUDO DA FIFO
17 SIGNAL last : INTEGER RANGE -1 TO n-1;
18 BEGIN
19 PROCESS (clk) – função de trans. de estado
20 BEGIN
21 IF (clk´EVENT AND clk =´1´) AND (Wr = ´1´) THEN
22 IF (last = n-1) THEN NULL; ELSE
23 IF (last = n-2) THEN FULL = `1` ; END IF;
24 IF (last = -1) THEN EMPTY= `0` ; END IF;
25 Fifo (last + 1) <= X;
26 last <= last + 1
27 END IF;
28 ELSE IF (clk´EVENT AND clk =´1´) AND (RD = ´1´) THEN;
29 IF (last = -1) THEN NULL; ELSE
30 Z = Fifo (0) ;
31 FOR i IN 0 TO last -1 LOOP
32 Fifo(i) <= Fifo(i + 1);
33 END LOOP;
34 IF (last = 0) THEN EMPTY= `1` ; ENDIF;
35 last <= last – 1; Full <= ´0`;
36 END IF; 38 END PROCESS;
37 END IF; 39 END behavioral;
SISTEMAS DIGITAIS
EXERCICIO 29
BASEADO NA ESPECIFICAÇÃO µVHDL DA FIFO , PROJETAR UMA FIFO (7 x 8) (SUBSISTEMAS DE DADO E CONTROLE) USANDO:
REGISTRADOR :
LARGURA DE 8 BITS
CONTROLE DE CARGA ( LD )
CONTROLE DE SAIDA (OE)
DECODIFICADOR (3 x 8)
MUX (2 x 1)
CONTADOR UP/DOWN.
PORTAS LOGICAS
SISTEMAS DIGITAIS
COMPONENTES DE UM SISTEMA RTL
MODULOS FUNCIONAIS (OPERADORES)REALIZAM TRANSFORMAÇÕES EM VETORES DE BIT
DESCRIÇÃO µVHDL COMPORTAMENTAL DO MODULO FUNCIONAL
CASE OP_SEL ISWHEN F1 => Z_OUT <= X_IN OP1 Y_IN AFTER DELAYWHEN F2 => Z_OUT <= X_IN OP2 Y_IN AFTER DELAY
................ END CASE;
OPERADOR F
X_IN
Z_OUT
OP_SEL
Y_IN
SISTEMAS DIGITAIS
COMPONENTES DE UM SISTEMA RTL
CAMINHO DE DADOS:FORNECEM AS CONEXÕES ENTRE COMPONENTES
CONSISTE EM: CONEXÕES DIRETAS (FIOS, LINHAS, LINKS)
CHAVES (PARA ATIVAR AS CONEXÕES)
CLASSIFICAÇÃO:LARGURA: NO DE BITS TRANSMITIDOS SIMULTANEAMENTE
(PODE SER EM PARALELO OU SERIALMENTE)SENTIDO: UNIDIRECIONAL x BIDIRECIONAL
COMPARTILHAMENTO: DEDICADO COMPARTILHADO (BUS) CHAVES: QUE PERMITEM O COMPARTILHAMENTO
PORTAS 3-STATES MULTIPXEXADORESDESTINO: DIRETO X INDIRETO
SISTEMAS DIGITAIS
COMPONENTES DE UM SISTEMA RTL
EXEMPLOS DE CAMINHO DE DADOS:MODULO A
MODULO B
DEDICADO UNIDIRECIONAL
MODULO A
MODULO B
DEDICADO BIDIDIRECIONAL
MODULO B MODULO CMODULO A
CHAVE CHAVE CHAVE
COMPARTILHADO
SISTEMAS DIGITAIS
COMPONENTES DE UM SISTEMA RTL
ESTRUTURAS DE CAMINHO DE DADOS EXTREMASINTERCONEXÃO COMPLETA – CROSSBARINTERCONEXÃO DE BARRAMENTO SIMPLES
MODULO B MODULO CMODULO A
CHAVE CHAVE CHAVEBARRAMENTO SIMPLES
MODULO B MODULO CMODULO A
CHAVE A
CHAVE B
CHAVE C
COMPLETA
SEL_ASEL_B SEL_C
QUALQUER ALTERAÇÃO IMPLICA EMMUDANÇA DO HARDWARE
CARACTERISTICAS DA ESTRUTURA DE UM CONTROLADOR CONVENCIONAL
NÃO MODULARIRREGULARFIXA
ALTERNATIVA:
CONTROLADOR MICROPROGRAMADO
SISTEMAS DIGITAIS
SIST. RTL : CONTROLE MICROPROGRAMADO
SISTEMAS DIGITAIS
SIST. RTL : CONTROLE MICROPROGRAMADO
IMPLEMENTAÇÃO DO CONTROLADOR MICROPROGRAMADO
ESTADOS
FUNÇAO DE TRANSIÇÃO DE ESTADO
FUNÇÃO DE SAIDA
MEMORIA
ESTADO J
ESTADO J + 1
ESTADO J - 1
MEMORIA
ESTADO J
ESTADO J + 1
ESTADO J - 1ENDEREÇO
MEMORIA
ESTADO J
ESTADO J + 1
ESTADO J - 1
DADO
SIST. RTL: CONTROLE MICROPROGRAMADO
SISTEMAS DIGITAIS
ESTRUTURA DE UM CONTROLADOR MICROPROGRAMADO
MEMORIA DE CONTROLE
ESTADO J
ESTADO J + 1
ESTADO J - 1ENDEREÇO
DADO
COMANDOS PARA O SUBSISTEMA DE DADOS
SELECIONA UM ESTADO
SIST. RTL
SISTEMAS DIGITAIS
ESTRUTURA DE UM CONTROLADOR MICROPROGRAMADO
MEMORIA DE CONTROLE
ESTADO J
ESTADO J + 1
ESTADO J - 1ENDEREÇO
DADO
REGEND
CLK
COMANDOS PARA O SUBSISTEMA DE DADOS
SIST. RTL
SISTEMAS DIGITAIS
ESTRUTURA DE UM CONTROLADOR MICROPROGRAMADO
MEMORIA DE CONTROLE
ESTADO J
ESTADO J + 1
ESTADO J - 1ENDEREÇO
DADO
REGEND.
CLK
COMANDOS P/ O SUBSISTEMA DE DADOS
GERADOR DEENDEREÇO
SIST. RTL CONTROLE MICROPROGRAMADO
SISTEMAS DIGITAIS
ESTRUTURA DE UM CONTROLADOR MICROPROGRAMADO
MEMORIA DE CONTROLE
ESTADO J
ESTADO J + 1
ESTADO J - 1ENDEREÇO
REGEND
CLK
COMANDOS P/ O SUBSISTEMA DE DADOS
GERADOR DEENDEREÇO
CONDIÇÕES GERADAS PELO SUBSISTEMA DE DADOS
DADO
SIST. RTL: CONTROLE MICROPROGRAMADO
SISTEMAS DIGITAIS
CARACTERISTICA DA ESTRUTURA DE UM CONTROLADOR MICROPROGRAMADO
MODULARREGULAR
PROGRAMAVEL
VANTAGENS DA ESTRUTURA MICROPROGRAMADA COM RELAÇÃO A ESTRUTURA CONVENCIONAL
PROGRAMAVELMAIS SIMPLES DE VERIFICAR E SIMULAR
DESVANTAGENS DA ESTRUTURA MICROPROGRAMADA COM RELAÇÃO A ESTRUTURA CONVENCIONAL
IMPLEMENTAÇÃO MAIS LENTA: POR CAUSA DA ESTRUTURA REGULAR ( NÃO OTIMIZADA) E POR USAR MEMORIA
INDEPENDE DE UMA COMPUTAÇÃO PARTICULAR
MEMORIA DE CONTROLE
SISTEMAS DIGITAIS
MICROPROGRAMA E MICROINSTRUÇÃO
ESTADO J
ESTADO J + 1
ESTADO J - 1
SIST. RTL:
MICROINSTRUÇÃO
MICROPROGRAMA(FORMADO POR UMA SEQUENCIA DE MICROINSTRUÇÕES) , CUJO OBJETIVO É IMPLEMENTAR AS FUNÇÕES DE TRANSIÇÃO DE ESTADO E DE SAIDA)
SIST. RTL CONTROLE MICROPROGRAMADO
SISTEMAS DIGITAIS
FORMATO DA MICROINSTRUÇÃO (CAMPO DE SEQUENCIAMENTO – CAMPO DE CONTROLE)
MEMORIA DE CONTROLE
ESTADO J
ESTADO J + 1
ESTADO J - 1ENDEREÇO
REGEND
CLK
COMANDOS P/ O SUBSISTEMA DE DADOS
GERADOR DEENDEREÇO
CONDIÇÕES GERADAS PELO SUBSISTEMA DE DADOS
DADO
CAMPO DE CONTROLE
CAMPO DE SEQUENCIAMENTO
SIST. RTL CONTROLE MICROPROGRAMADO
SISTEMAS DIGITAIS
FORMATO DA MICROINSTRUÇÃOCAMPO DE CONTROLE CAMPO DE SEQUENCIAMENTO
HORIZONTAL VERTICAL
MEM. CONTROLE
SIN
AL A
SIN
AL B
SIN
ALC
SIN
AL D
SIN
AL E
SIN
AL F
SIN
AL G
SIN
AL H
S.SIST DE DADOS
MEM. CONTROLE
DECODIFICADORS
INA
L A
SIN
AL B
SIN
ALC
SIN
AL D
SIN
AL E
SIN
AL F
SIN
AL G
SIN
AL H
S.SIST DE DADOS
MAIS DE UM SINAL ATIVADOSIMULTANEAMENTE
SOMENTE UM SINAL ATIVADO POR VEZ
FORMATO DO CAMPO DE CONTROLE
SISTEMAS DIGITAIS
FORMATO DA MICROINSTRUÇÃO VERTICAL
MEM. CONTROLE
DEC.
S.SIST DE DADOS
DEC. DEC.....
SUBCAMPO DE CONEXÃO
1 SINAL ATIVO POR VEZ
OBS: PARA MELHOR APROVEITAMENTO DO SUBCAMPO VERTICAL, DEVEMOS AGRUPAR EM SUBCAMPOS, SINAIS QUE NÃO SÃO NECESSARIOS AO MESMO TEMPO, OU SINAIS EM QUE O SUBSISTEMA DE DADOS NÃO PERMITA O USO SIMULTANEO DELES.
SIST. RTL CONTROLE MICROPROGRAMADO
SIST. RTL CONTROLE MICROPROGRAMADO
SISTEMAS DIGITAIS
FORMATO DA MICROINSTRUÇÃOSEQUENCIAMENTO EXPLICITO
CAMPO DE CONTROLE CAMPO DE SEQUENCIAMENTO
SEQUENCIAMENTO IMPLICITO
CAMPO DE CONTROLE
CAMPO DE SEQUENCIAMENTO
BITSEL
O: CONTROLE1: SEQUENCIAMENTO
EXERCICIO 30
SISTEMAS DIGITAIS
PARA O SUBSISTEMA DE DADOS ABAIXO, DÊ O FORMATO DA MICROINSTRUÇÃO COM O CAMPO DE CONEXÃO HORIZONTAL E COM O CAMPO DE CONEXÃO VERTICAL.FORNEÇA A MICROINSTRUÇÃO, NOS DOIS FORMATOS, PARA CONTROLAR A SEGUINTE TRANSFERENCIA ENTRE REGISTRADORES: R1 <- R2 XOR R6 OPXOR : 110
LD
CLK R1LD
CLK R2LD
CLK R7 ALU
C_2C_1
C_3
C_5C_4 C_20C_19
C_6 C_21
3
OP
CLK
SIST. RTL CONTROLE MICROPROGRAMADO
SISTEMAS DIGITAIS
TEMPO DE BUSCA E EXECUÇÃO DE MICROINSTRUÇÃO
CICLO DE BUSCA E EXECUÇÃO DE MICROINSTRUÇÃO CONSISTE EM:CARREGAR O PROXIMO END. BUSCAR A MICROINSTR.NA MEM.DECODIFICAR OS CAMPOSEXECUTAR AS OPER. NO S.SIST.DADOSCALCULAR O PROXIMO END.
t
CLK
PERIODO DO CLK
EXERCICIO 31
SISTEMAS DIGITAIS
PEDE-SE O MICROPROGRAMA PARA REALIZAR AS SEGUINTES TRANSFERENCIAS EM SEQUENCIA:
R1 <- R2 XOR R6R2 <- R4 + R5R1 <- R1 AND R3
SABENDO QUE: O SEQUENCIAMENTO É EXPLICITO E VERTICAL OPSOMA: 101 OPAND: 011
OPXOR: 110
EXERCICIO 32
SISTEMAS DIGITAIS
UM SISTEMA DIGITAL TEM O SUBSISTEMA DE DADOS MOSTRADO NA FIGURA ABAIXO.A. OBTENHA O GRAFO DE EXECUÇÃO SEQUENCIAL PARA CARREGAR EM R0 O MAIOR
VALOR ARMAZENADO NOS REGISTRADORES R0,R1, R2 E R3, SABENDO QUE ESTES VALORES SÃO POSITIVOS E QUE OS VALORES EM R1,R2 E R3 DEVEM SER PRESERVADOS.
B. PROJETE O SUBSISTEMA DE CONTROLE E ESCREVA O MICROPROGRAMA, SABENDO QUE A MICROINSTRUÇÃO TEM FORMATO IMPLICITO E HORIZONTAL.OBS: PULO CONDICIONAL
CONDIÇÃO FALSA: NOVO END. <- END. ATUAL + 1 CONDIÇÃO VERDADEIRA: NOVO END. FORNECIDO PELA
MICROINSTRUÇÃO
L0 R0 E0 CLK
L1 R1 E1 CLK
L2 R2 E2 CLK
L3 R3 E3 CLK
L4 R4 CLK
0 SEL
MUX 1
QS DCLK
QZ DCLK
CLK
CLK
I
ES
EZ
OPERAÇÕES (OPC)ADD :000SUB :001INCUP :010XOR :011AND :100
OPC
UP
SINAL OPERAÇÃO
ZERO
DOWN
EXERCICIO 32- APARA O ALGORITMO BUBLESORT,ABAIXO ESPECIFICADO, QUE CLASSIFICA 256 NUMEROS INTEIROS SEM SINAL ARMAZENADOS NOS ENDEREÇOS O A 255 DE UMA RAM.
ESPECIFICAÇÃO DO ALGORITMO:
BEGIN
PROCESS (START)
VARIABLE I, J : INTEGER;
BEGIN
J: = N-1;
WHILE (J>0) LOOP
I: = 0;
WHILE (I < J) LOOP
IF (M (I) > M (I + 1)) THEN EXCHANGE (M(I),M(I+1));
END IF;
I: = I +1;
END LOOP;
J: = J – 1;
END LOOP;
END PROCESS;
- OS NUMEROS JÁ ESTÃO ARMAZENADOS NA RAM.
- USE REGISTRADORES COM LD E OE, TRI-STATES,UM UNICO OPERADOR COM VARIAS FUNÇÕES, QUE DEVEM SER EXPLICITADAS E PORTAS LOGICAS.
- A UTILIZAÇÃO DE MUX´s ESTÁ PROIBIDA.
EXERCICIO 32-A
PEDE-SE:
1. O GRAFO DE EXECUÇÃO E O PROJETO DO SUBSISTENA DE DADOS.
2. O GRAFO DE EXECUÇÃO E O PROJETO DO SUBSISTEMA DE CONTROLE, COM FORMATO HORIZONTAL E SEQUENCIAMENTO EXPLICITO.
3. O FORMATO DA MICROINSTRUÇÃO.
4. O MICROPROGRAMA BUBLESORT.
CPU – UNIDADE CENTRAL DE PROCESSAMENTO
SISTEMAS DIGITAIS
GRAFO DE EXECUÇÃO
SISTEMA RTL
GRAFO DE EXECUÇÃO
SISTEMA RTL
GRAFO DE EXECUÇÃO
SISTEMA RTL
SISTEMA RTL CPU
GRAFO DE EXECUÇÃO
GRAFO DE EXECUÇÃO
GRAFO DE EXECUÇÃO
COM
ANDO
COMANDOCOMANDO
NUMERO BINARIO
CPU – UNIDADE CENTRAL DE PROCESSAMENTO
SISTEMAS DIGITAIS
COMANDO
COMANDO
COMANDO
UM COMANDO PARA DISPARAR A EXECUÇÃO DE UM GRAFO DE EXECUÇÃO É CHAMADO DE
INSTRUÇÃO
COMANDO
COMANDO
COMANDO
UMA SEQUENCIA DE INSTRUÇÕES FORMA UM
PROGRAMA
COMANDO
COMANDO
COMANDO
PROGR1 PROGR2
CPU
MEMORIA
E/S
SISTEMAS DIGITAIS
COMPUTADOR
PROGR1PROGR2
PROGRNINSTR.E DADOS
CPU
MEMORIA
E/S
SISTEMAS DIGITAIS
COMPUTADOR
PROGR1PROGR2
PROGRN
INSTR.E DADOS
SIST. RTL
REGISTRADOR DE INSTRUÇÃO (IR)
APONTADOR DE INSTRUÇÃO (IP)(PC)
IP : ENDEREÇA INSTRUÇÃO
IR : ARMAZENA INSTRUÇÃO
SISTEMAS DIGITAIS
CPU
CPU
SUBSIST. CONTROLE SUBSIST. DADOS
IP IR ARQUIVO DE REG´S
FLAG´s
OPERADORES ARITMETICOS
BUSCA DE INSTR. NA MEM.
EXECUÇÃO DA INSTRUÇÃO
BUSCA DE DADOS NA MEM.
CICLO DE INSTRUÇÃO
MEMORIA DE PROGRAMA ( ARMAZENAMENTO DE INSTRUÇÕES E DADOS)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
INSTRUÇÃO 1
INSTRUÇÃO 2
INSTRUÇÃO 3
INSTRUÇÃO 1
INSTRUÇÃO 9
DADO 1
DADO 22
MEMORIA
PROGRAMA
ENDEREÇO DE MEMORIA
SISTEMAS DIGITAIS
TIPOS DE INSTRUÇÕES
SISTEMAS DIGITAIS
INSTRUÇÕES QUE DISPARAM UM GRAFO DE EXECUÇÃO
PROXIMO ENDEREÇO: END. ATUAL + 1
INSTRUÇÕES DE CONTROLE DE SEQUENCIAMENTO
PROXIMO ENDEREÇO: FORNECIDO PELA INSTRUÇÃO
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
INSTRUÇÃO 1
INSTRUÇÃO 2
INSTRUÇÃO 3
INSTRUÇÃO 1
INSTRUÇÃO 9
MEMORIA
INSTRUÇÃO 3
INSTRUÇÃO 8
INSTRUÇÃO 11
INSTRUÇÃO 4
INSTRUÇÃO 7
INSTRUÇÃO
INSTRUÇÃO
INSTRUÇÃO 14
INSTRUÇÃO 17
CONDICIONAL
INCONDICIONAL
INSTRUÇÕES DE CONTROLE DE SEQUENCIAMENTO(DESVIO) (PULO) ( JUMP) (BRANCH)
SISTEMAS DIGITAIS
TIPOS : CONDICIONAL: ENDEREÇO DE DESVIO DEPENDE DE FLAG CONDIÇÃO NÃO SATISFEITA : NOVO END. = END. ATUAL + 1 CONDIÇÃO SATISFEITA : NOVO END. = END. FORNECIDO PELA INSTRUÇÃO
INCONDICIONAL: :NOVO END. FORNECIDO PELA INSTRUÇÃO
DESVIO CONDICIONAL PERMITE 2 TIPOS DE ESTRUTURAS DE SEQUENCIAMENTO : SEQUENCIA DEPENDENTE DOS DADOS LAÇOS (UMA PARTE DO PROGRAMA É EXECUTADO REPETIDAMENTE)
PROJETO DE UMA CPU – ESPECIFICAÇÃO
SISTEMAS DIGITAIS
REGISTRADORES
PC 24 BITS
IR
4 BITSFLAGS
32 BITS
Z|N|C|V
ARQ. REG.
REG0
REG1
REG31
32 REGISTRADORES, CADA UM COM32 BITS
PROJETO DE UMA CPU – ESPECIFICAÇÃO
SISTEMAS DIGITAIS
TIPOS BASICOS DE INSTRUÇÕES
MOVIMENTAÇÃO DE DADOS:
ARITMETICAS - LOGICAS
DESVIO
REG REG REG MEM REG E/S
REG
REG
OPERADOR REG
FLAGS
PROJETO DE UMA CPU – ESPECIFICAÇÃO
SISTEMAS DIGITAIS
FORMATO DAS INSTRUÇÕES
31....26
25....21
20....16
15....11
10....0
RT:=OP(RA)
OPCODE RT RA
BINARIORB RT:=RA OP RB OPCODE RT RA
SIRT:=RA OP SI OPCODE RT RA
UIRT:=RA OP UI OPCODE RT RA
UNARIO
MEMDRT:= M[RA + D]
OPCODE RT RA
DM[RA + D]:=RS OPCODE RS RA
PROJETO DE UMA CPU – ESPECIFICAÇÃO
SISTEMAS DIGITAIS
FORMATO DAS INSTRUÇÕES
E/SRT:= IO[PN] OPCODE RTIO[PN]:= RS OPCODE RS
31....26
25....21
20....16
15....11
10....0
PN
PN
DESVIODPC:= PC + 4 + D
OPCODE
PC:= RA OPCODE RA
DESVIOINDIRETO
PROJETO DE UMA CPU – ESPECIFICAÇÃO
SISTEMAS DIGITAIS
INSTRUÇÕES
NO-OP
OPCODE000000
FUNÇÃO CR LING. ASSEMBLYNOMENO-OPERATION
NOP
NOT 000010 RT:=NOT(RA) Y NOT RT,RA
LEFT SHIFT 000100 RT:=LSHIFT(RA) Y LSH RT,RA
RIGHT SHIFT 000110 RT:=RSHIFT(RA) Y RSH RT,RA
LEFT ROTATE 001000 RT:=LROT(RA) Y LRT RT,RA
RIGHT ROTATE 001010 RT:=RROT(RA) Y RRT RT,RA
ADD 010000 RT:=RA + RB Y ADD RT,RA,RB
ADD IMEDIATO 010001 RT:=RA + SI Y ADI RT,RA,SI
SUBCTRACT 010010 RT:=RA - RB Y SUB RT,RA,RB
SUB IMEDIATO 010011 RT:=RA - SI Y SBI RT,RA,SI
AND 010100 RT:=RA - RB Y AND RT,RA,RB
AND IMEDIATO 010101 RT:=RA - UI Y ANI RT,RA,UI
PROJETO DE UMA CPU – ESPECIFICAÇÃO
SISTEMAS DIGITAIS
INSTRUÇÕES
OPCODE FUNÇÃO CR LING. ASSB
NOMEOR 010110 RT:=RA OR RB Y OR RT,RA,RB
OR IMEDIATO 010111 RT:=RA OR UI Y ORI RT,RA,UI
XOR 011000 RT:=RA XOR RB Y XOR RT,RA,RB
XOR IMEDIATO 011001 RT:=RA XOR UI Y XORI RT,RA,UI
LOAD BYTE 100000 RT(7 TO 0):=MEM(RA +D,1)
LDB RT,D(RA)
LOAD WORD 100001 RT(31 TO 0):=MEM(RA +D,4)
LDW RT,D(RA)STORE BYTE 100010 MEM(RA +D,1):= RS(7 TO
0) 0):=)STB RS,D(RA)
STORE WORD 100011 MEM(RA +D,4):= RS(31 TO 0)
STW RS,D(RA)IORD BYTE 100100 RT(7 TO 0):=IO(PN,1) IRB RT,PN
IORD WORD 100101 RT(31 TO 0):=IO(PN,4) IRW RT,PN
IOWR BYTE 100110 IO(PN,1):= RS(7 TO 0) IWB RS,PN
IOWR WORD 100111 IO(PN,4):= RS(31 TO 0) IWW RS,D(RA)
PROJETO DE UMA CPU – ESPECIFICAÇÃO
SISTEMAS DIGITAIS
INSTRUÇÕES
OPCODE FUNÇÃO CR LING. ASSB
NOMEBRANCH 111000 PC:=PC + 4 + D BR D
BRANCH INDIR.
111001 PC:=RA BRI RA
BRANCH IF N=0
SE N= 0 ENTÃO PC:=PC+4+D
BRP D
BRANCH IF N=1
110001 SE N= 1 ENTÃO PC:=PC+4+D
BRN D
110000
BRANCH IF Z=0
SE Z= 0 ENTÃO PC:=PC+4+D
BNZ D
BRANCH IF Z=1
110011 SE Z= 1 ENTÃO PC:=PC+4+D
BRZ D
110010
BRANCH IF C=0
SE C= 0 ENTÃO PC:=PC+4+D
BNC D
BRANCH IF C=1
110101 SE C= 1 ENTÃO PC:=PC+4+D
BRC D
110100
BRANCH IF V=0
SE V= 0 ENTÃO PC:=PC+4+D
BNV D
BRANCH IF V=1
111001 SE V= 1 ENTÃO PC:=PC+4+D
BRV D
111000
SISTEMAS DIGITAIS
NOT RA
INVESOR BIT A BIT
RT
INSTRUÇÃO NOT
SISTEMAS DIGITAIS
LEFT SHIFT RA
RT
0.....
INSTRUÇÃO LEFT SHIFT
SISTEMAS DIGITAIS
LEFT ROTATE RA
RT
.....
INSTRUÇÃO LEFT ROTATE
SISTEMAS DIGITAIS
ADD RA
SOMADOR
RT
RB
INSTRUÇÃO ADD
SISTEMAS DIGITAIS
ADI RA
SOMADOR
RT
NUMERO (COMPL2)
INSTRUÇÃO ADI
MEMORIA
SISTEMAS DIGITAIS
LOAD BYTE
RT 31..24 23..16 15....8
7......0
31..24 23..16 15....8
7......0
RA
D
SOMADOR
SOMENTE O BYTEENDEREÇADOINSTRUÇÃO LOAD BYTE
MEMORIA
SISTEMAS DIGITAIS
LOAD WORD
RT 31..24 23..16 15....8
7......0
31..24 23..16 15....8
7......0
RA
D
SOMADOR
INSTRUÇÃO LOAD WORD
MEMORIA
SISTEMAS DIGITAIS
STORE BYTE
RS 31..24 23..16 15....8
7......0
31..24 23..16 15....8
7......0
RA
D
SOMADOR
SOMENTE O BYTEENDEREÇADOINSTRUÇÃO STORE BYTE
MEMORIA
SISTEMAS DIGITAIS
STORE WORD
RS 31..24 23..16 15....8
7......0
31..24 23..16 15....8
7......0
RA
D
SOMADOR
INSTRUÇÃO STORE WORD
IO N
SISTEMAS DIGITAIS
IORD BYTE
RT 31..24 23..16 15....8
7......0
31..24 23..16 15....8
7......0
N
SOMENTE O BYTEENDEREÇADOINSTRUÇÃO IORD BYTE
IO N
SISTEMAS DIGITAIS
IORD WORD
RT 31..24 23..16 15....8
7......0
31..24 23..16 15....8
7......0
N
INSTRUÇÃO IORD WORD
IO N
SISTEMAS DIGITAIS
IOWR BYTE
RS 31..24 23..16 15....8
7......0
31..24 23..16 15....8
7......0
N
SOMENTE O BYTEENDEREÇADOINSTRUÇÃO IOWR BYTE
IO N
SISTEMAS DIGITAIS
IOWR WORD
RS 31..24 23..16 15....8
7......0
31..24 23..16 15....8
7......0
N
INSTRUÇÃO IORW WORD
SISTEMAS DIGITAIS
BRP D
INSTRUÇÃO BRP
FN FO FC FZ
+ ?SIM
NÃO
PC + 4 + D
PC + 4
EXERCICIO 33
SISTEMAS DIGITAIS
1. FAÇA UM PROGRAMA QUE ARMAZENE O NUMERO 5H NA POSIÇÃO DE MEMORIA CUJO ENDEREÇO É 0300H.
2. FAÇA UM PROGRAMA QUE REALIZE UMA OPERAÇÃO DE AND COM OS NUMEROS ARMAZENADOS NOS ENDEREÇOS 0400H E 0401H E ARMAZENE O RESULTADO EM 0402H.
3. FAÇA UM PROGRAMA QUE GRAVE 00H EM 32 ENDEREÇOS CONSECUTIVOS A PARTIR DE 0500H.
OBS: ENDEREÇO INICIAL DO PROGRAMA É : 000000H
4. FAÇA UM PROGRAMA QUE CONTE O NUMERO DE BITS EM NIVEL 1, NO REGISTRADOR R1. O RESULTADO DEVE SER GUARDADO EM R5.
LING. ASSEMBLY X LING. MAQUINA
LING. ASSEMBLY LINGUAGEM DE MAQUINA
BIT - > 31 - 28
27 - 24
23 - 20 19 - 16
15 - 12
11 - 08
07 - 04 03 - 00
00 SUB R0,R0,R0
01 ADI R1,R0,5H
02 ADI R2,R0,300H
03 STB R1, 0(R2)
SISTEMAS DIGITAIS
PROJETO DE UM COMPUTADOR
CPU
E/S
MEMORIA
ARMAZENAINSTRUÇÕESEDADOS
PERMITE A ENTRADA E SAIDA DEDADOS
EXECUTA UMA SEQUENCIADE INSTRUÇÕES
REPETE CICLOS DE INSTRUÇÃO: BUSCA DE INSTRUÇÃO NA MEM. EXECUTA INSTRUÇÃO: OPERAÇÕES OPERAÇÃO COM OS DADOS JÁ ARMAZENADOS NA CPU LEITURA DE DADOS DA MEM. ARMAZENAMENTO DE DADOS NA MEM. LEITURA DE DADOS DA E/S ARMAZENAMENTO DE DADOS NA E/S
END. DA PROX. INSTR.
SISTEMAS DIGITAIS
PROJETO DE UMA CPU – ESPECIFICAÇÃO INTERNA
CPU
ALU
PC
RF
IR
FLAG`s
NOP
NOT RT,RA
LSH RT,RA
RSH RT,RA
LRT RT,RA
RRT RT,RA
ADD RT,RA,RBADI RT,RA,SISUB RT,RA,RBSBI RT,RA,SIAND RT,RA,RBANI RT,RA,UI
OR RT,RA,RB
ORI RT,RA,UI
XOR RT,RA,RB
XORI RT,RA,UI
LDB RT,D(RA)
LDW RT,D(RA)STB RS,D(RA)
STW RS,D(RA)IRB RT,PN
IRW RT,PN
IWB RS,PN
IWW RS,D(RA)
BR D
BRI RA
BRP D
BRN D
BNZ D
BRZ D
BNC D
BRC D
BNV D
BRV D
IOAddr MEMAddr
IOData MEMData
IORd MEMRd
IOWr MEMWr
IOEnable MEMEnable
IOReady MEMReady
IOLength MEMLength
CLK
RESET STATUS
EM GERAL BUS DE DADOS E ENDEREÇOS SÃO UNICOS
SISTEMAS DIGITAIS
CONEXÁO COM A MEMORIA E COM E/S
E/S
IOAddr
IOData
IORd
IOWr
IOEnable
IOReady
IOLength
CPU
MEMAddr
MEMData
MEMRd
MEMWr
MEMEnable
MEMReady
MEMLength
MEM
PROJETO DE UMA CPU – ESPECIFICAÇÃO DE BARRAMENTO(ENDEREÇO, DADOS, CONTROLE)
2411
3232 32
LENGTH1 ACESSO A WORD0: ACESSO A BYTE
SINCRONIZAÇÃO COM A CPU. MREADY EM NIVEL 0 DURANTE O ACESSO. NO FINAL DO ACESSO, READY É COLOCADO EM NIVEL 1.
SELEÇÃO DE DISPOSITIVO DE ENTRADA E SAIDA
SISTEMAS DIGITAIS
PROJETO DE UMA CPU – ESPECIFICAÇÃO DE BARRAMENTO - TEMPORIZAÇÃO
DIAGRAMA DE TEMPO
LEITURA ESCRITAAddr
Enable
Rd
Wr
Data
Ready
Tsu SETUP
Td
Tmem ACESSO A MEM
Tdv dado valido
SISTEMAS DIGITAIS
PROJETO DE UMA CPU – ESPECIFICAÇÃO
-- BIBLIOTECA
01 LIBRARY ieee;
02 USE ieee.std_logic_1644.all;
-- ENTIDADE
03 ENTITYComputer IS
04 PORT (Reset , Clk : IN STD_LOGIC);
05 END Computer;
SISTEMAS DIGITAIS
PROJETO DE UMA CPU – ESPECIFICAÇÃO-- ARCHITECTURE06 ARCHITECTURE structural OF Computer IS
07 SUBTYPE WordT IS STD_LOGIC_VECTOR(31 DOWNTO 0);
08 SUBTYPE MAddrT IS STD_LOGIC_VECTOR(23 DOWNTO 0);
09 SUBTYPE IOAddrT IS STD_LOGIC_VECTOR(10 DOWNTO 0);
10 SUBTYPE ByteT IS STD_LOGIC_VECTOR(7 DOWNTO 0);
TYPE StatusT IS (undef, p-reset, fetch, execute, memop, ioop);
SIGNAL MemAddr : MaddrT;
SIGNAL MemLength, MemRd, : STD_LOGIC;
SIGNAL MemEnable , MemWr, MemReady
: STD_LOGIC;
SIGNAL MemData : WordT;
SIGNAL IOAddr : IOAddrT;
18 SIGNAL lOLength , IORd, IOEnable , IOWr
: STD_LOGIC;
19 SIGNAL IOReady : STD_LOGIC;
20 SIGNAL IOData : WordT;
21 SIGNAL Status : StatusT;
SISTEMAS DIGITAIS
PROJETO DE UMA CPU – ESPECIFICAÇÃO
-- ARCHITECTURE22 BEGIN
23 Ul: ENTITY Memory
24 PORTMAP (MemAddr , MemLength , MemRd , MemWr, MemEnable ,MemRdy , MemData);
25 U2: ENTITY IO
26 PORT MAP (IOAddr , IOLength , IORd , IOWr, IOEnable ,IORdy , IOData);
27 U3: ENTITY Processor
28 PORT MAP (MemAddr , MemLength , MemRd , MemWr, MemEnable ,MemRdy , MemData , IOAddr , IOLength , IORd , IOWr, IOEnable , IORdy , IOData , Status , Reset , Clk);
29 END structural;
SISTEMAS DIGITAIS
PROJETO DE UMA MEMORIA – ESPECIFICAÇÃO
Addr Data
Length Ready
Rd
Wr
Enable
24 32
BYTE3
WORD
BYTE2 BYTE1 BYTE0
A23 A22 A21...A3 A2 A1 A0
Length
- - - - - 0 0
1
- - - - - 0 0
0
- - - - - 0 1
0 BYTE3 BYTE2 BYTE1 BYTE0
- - - - - 1 0
0 BYTE3 BYTE2 BYTE1 BYTE0
- - - - - 1 1
0 BYTE3 BYTE2 BYTE1 BYTE0
D7...D0
D31...D0
ACESSO A MEMORIA
SISTEMAS DIGITAIS
PROJETO DE UMA MEMORIA – ESPECIFICAÇÃO DE BARRAMENTO
DIAGRAMA DE TEMPO
LEITURA ESCRITAAddr
Enable
Rd
Wr
Data
Ready
Tsu SETUP
Td
Tmem ACESSO A MEM
Tdv dado valido
SISTEMAS DIGITAIS
PROJETO DE UMA MEMORIA – ESPECIFICAÇÃO
-- BIBLIOTECA01 LIBRARY ieee;
02 USE ieee.std_logic_unsigned.ALL;
-- ENTIDADE
03 ENTITY Memory IS
04 PORT (Addr : IN MemAddrT
Length : IN STD_LOGIC
Rd, Wr : IN STD_LOGIC
Enable : IN STD_LOGIC
Rdy : IN STD_LOGIC
Data : INOUT WordT);
05 END Memory;
DESCRIÇÃO COMPORTAMENTAL
SISTEMAS DIGITAIS
PROJETO DE UMA MEMORIA – ESPECIFICAÇÃO
-- ARCHITECTURE
06 ARCHITECTURE behavioral of Memory IS
07 CONSTANT Tmem : TIME := 8 ns;
08 CONSTANT Td : TIME := 200 ps;
09 CONSTANT Tsu : TIME := 200 ps;
10 BEGIN
11 PROCESS(Rd , Wr , Enable)
12 CONSTANT byte_l : STD_LOGIC:= '0';
13 CONSTANT word_l : STD_LOGIC:= ‘1';
14 CONSTANT MaxMem : NATURAL:= 16#FFFFFF#;
15 TYPE MemArrayT IS ARRAY(0 TO MaxMem-1) OF byteT;
16 VARIABLE Mem : MemArrayT;
17 VARIABLE tAddr : Natural;
18 VARIABLE tData : WordT;
19 VARIABLE tCtrls : STD_LOGIC_VECTOR(2 DOWNTO 0);
20 BEGIN
21 tCtrls: = Rd & Wr & Enable;
22 CASE tCtrls IS
23 WHEN “000" => Data <= (OTHERS => 'Z') AFTER Td;
24 WHEN “011" => Rdy <= '0' AFTER Td , '1‘ AFTER Tmem;
25 IF (Length = byte_l) THEN tAddr:= CONV_INTEGER(Addr);
26 ELSE tAddr:= CONV_INTEGER(Addr(23 DOWNTO 2) & "00");
27 END IF;
SISTEMAS DIGITAIS
PROJETO DE UMA MEMORIA – ESPECIFICAÇÃO
-- ARCHITECTURE
28 CASE Length IS
29 WHEN byte_l => Mem(tAddr) := Data ( 7 DOWNTO 0 );
30 WHEN word_l => Mem(tAddr) := Data ( 7 DOWNTO 0 );
Mem(tAddr +1) := Data ( 15DOWNTO 8 );
Mem(tAddr + 2) := Data ( 23 DOWNTO 16 ); Mem(tAddr +3 ) := Data ( 31 DOWNTO 24 );
31 WHEN OTHERS => NULL;
32 END CASE;
33 WHEN "101" => Rdy <= '0' AFTER Td , '1‘ AFTER Tmem;;
34 IF (Length = byte_l) THEN tAddr: = CONV_INTEGER(Addr);
35 ELSE taddr:= CONV_INTEGER(Addr(23 DOWNTO 2) & “00");
36 END IF;
37 CASE Length IS
38 WHEN byte_l => tData ( 7 DOWNTO 0 ) := Mem(tAddr);
39 WHEN word_l => tData ( 7 DOWNTO 0 ) := Mem(tAddr);
tData ( 15 DOWNTO 8 ) := :Mem(tAddr+l);
tData ( 23 DOWNTO 16 ) := Mem(tAddr + 2);
tData ( 31 DOWNTO 24 ) := Mem(tAddr + 3);
40 WHEN OTHERS => NULL;
41 END CASE;
42 Data <= tData AFTER Tmem;
43 WHEN OTHERS => NULL;
44 END CASE;
45 END PROCESS; 46 END behavioral;
SISTEMAS DIGITAIS
EXERCICIO 34 :PROJETO DA MEMORIA
PROJETE A MEMORIA, USANDO O MODULO DE MEMORIA ABAIXO, FF`s TIPO D COM PRESET E CLEAR, MONOESTAVEL, DECODIFICADOR, TRI-STATE BIDIRECIONAL E PORTAS LOGICAS.
RD
WR
A21...A0
D7...D0
CE
DURANTE TODO O ACESSO DE LEITURA A ESTE MODULO: CE=1 E RD = 1
DURANTE TODO O ACESSO DE ESCRITA A ESTE MODULO: CE=1 E WR = 1
MEMORIA
D
E
3-S BIDI
SISTEMAS DIGITAIS
PROJETO DO SUB.SISTEMA DE DADOS DA CPU
1. BUSCA DE INSTRUÇÃO: GERAÇÃO DE ENDEREÇO
PC_in WrPC
PC Reset
PC_out Clk
MemAddr24
PROJETO DO SUB.SISTEMA DE DADOS DA CPU
SISTEMAS DIGITAIS
1. BUSCA DE INSTRUÇÃO: ARMAZENAMENTO DA INSTRUÇÃO
PC_in WrPC
PC Reset
PC_out Clk
MemAddr
WrIr
IR Clk
MemData32
24
PROJETO DO SUB.SISTEMA DE DADOS DA CPU
SISTEMAS DIGITAIS
2. LEITURA E ESCRITA DE DADOS NO ARQ. DE REGISTRADORES
PC_in WrPC
PC Reset
PC_out Clk
MemAddr
WrIr
IR Clk
MemData32
24
WrC Reset
DataB DataC AddrB AddrC RF DataA Clk AddrA
32
5
5
32
5 32
PROJETO DO SUB.SISTEMA DE DADOS DA CPU
SISTEMAS DIGITAIS
3. LEITURA E ESCRITA DE DADOS NA MEM: GERAÇÃO DE ENDEREÇO
PC_in WrPC
PC Reset
PC_out Clk
MemAddr
WrIr
IR Clk
MemData32
24
WrC Reset
DataB DataC AddrB AddrC RF DataA Clk AddrA
32
5
5
16
EXTSE_ZE
Ain ALU Bin
ALUop ALUdata
DC_in WrDC
DC_out DC Clk
ALU_PC0
1
4
32
PROJETO DO SUB.SISTEMA DE DADOS DA CPU
SISTEMAS DIGITAIS
3. LEITURA E ESCRITA DE DADOS NA MEM: LEITURA DE DADOS
PC_in WrPC
PC Reset
PC_out Clk
MemAddr
WrIr
IR Clk
MemData32
24
WrC Reset
DataB DataC AddrB AddrC RF DataA Clk AddrA
32
5
5
16
EXTSE_ZE
Ain ALU Bin ALUop ALUdata
DC_in WrDC
DC_out DC Clk
ALU_PC0
1
32
PROJETO DO SUB.SISTEMA DE DADOS DA CPU
SISTEMAS DIGITAIS
3. LEITURA E ESCRITA DE DADOS NA MEM: ESCRITA DE DADOS
PC_in WrPC
PC Reset
PC_out Clk
MemAddr
WrIr
IR Clk
MemData32
24
WrC Reset
DataB DataC AddrB AddrC RF DataA Clk AddrA
32
5
5
16
EXTSE_ZE
Ain ALU Bin ALUop ALUdata
DC_in WrDC
DC_out DC Clk
ALU_PC0
1
Sin_Sout
32
PROJETO DO SUB.SISTEMA DE DADOS DA CPU
SISTEMAS DIGITAIS
4. EXECUÇÃO DA INSTRUÇÕES: ARITM/LOGICAS/MOV. DE DADOS
PC_in WrPC
PC Reset
PC_out Clk
MemAddr
WrIr
IR Clk
MemData32
24
WrC Reset
DataB DataC AddrB AddrC RF DataA Clk AddrA
32
5
16
EXTSE_ZE
Ain ALU Bin ALUop ALUdata
DC_in WrDC
DC_out DC Clk
ALU_PC0
1
Sin_Sout0
1
Mem_ALU
STATUS WrCr Clk
Z,N,C,V
1 0
IR_RB
5
32
PROJETO DO SUB.SISTEMA DE DADOS DA CPU
SISTEMAS DIGITAIS
4. EXECUÇÃO DA INSTRUÇÕES: DESVIO
PC_in WrPC
PC Reset
PC_out Clk
MemAddr
WrIr
IR Clk
MemData32
24
WrC Reset
DataB DataC AddrB AddrC RF DataA Clk AddrA
32
16
EXTSE_ZE
Ain ALU Bin ALUop ALUdata
DC_in WrDC
DC_out DC Clk
ALU_PC0
1
Sin_Sout0
1
Mem_ALU
STATUS WrCr Clk
Z,N,C,V
1 0
IR_RB1 0PC_RA
PROJETO DO SUB.SISTEMA DE DADOS DA CPU
SISTEMAS DIGITAIS
PC_in WrPC
PC Reset
PC_out Clk
MemAddr
WrIr
IR Clk
MemData32
24
WrC Reset
DataB DataC AddrB AddrC RF DataA Clk AddrA
32
16
EXTSE_ZE
Ain ALU Bin
ALUop ALUdata
DC_in WrDC
DC_out DC Clk
ALU_PC0
1
Sin_Sout0
1
Mem_ALU
STATUS WrCr Clk
Z,N,C,V
1 0
IR_RB1 0PC_RA
32
PROJETO DO SUB.SISTEMA DE DADOS DA CPU
SISTEMAS DIGITAIS
OPERAÇÕES DA ALU EXTENSOR
ALU_OP OPERAÇÃO
0000 ZERO_32
0001 A + B
0010 A - B
0011 - B
0100 A AND B
0101 A OR B
0110 A XOR B
0111 NOT B
ALU_OP OPERAÇÃO
1000 NOT A
1001 B
1010 SHIFTL A
1011 SHIFTR A
1100 ROTL A
1101 ROTR A
1110 A + 4
1111 A
UI: EXTENDIDO C/ ZEROS
SI: EXTENDIDO C/ SINAL
D : EXTENDIDO C/ SINAL
PROJETO DO SUB.SISTEMA DE CONTROLE DA CPU
SISTEMAS DIGITAIS
CICLO DE INSTRUÇÃO
BUSCA
EXECUÇÃOACESSO DE LEITURA/ESCRITA DE MEM/IO
SE A INSTRUÇÃO FOR DE ACESSO A MEM. OU I/O, NO ESTADO DE EXECUÇÃO O ENDEREÇO É CALCULADO E NO ESTADO DE ACESSO O DADO É LIDO OU ESCRITO.
NOP NOT LSH RSH LRT RRT ADD ADI SUB
SBI AND ANI OR ORI XOR XRI LDB LDW
STB STW IRB IRW IWB IWW BRP BRN BNZ
BRZ BNC BNV BRV BR BRI
RWM
WWM
RWIO
WWIO
RBM
WBM
RBIOWBIO
SEQUENCIADOR
PROJETO DO SUB.SISTEMA DE CONTROLE DA CPU
SISTEMAS DIGITAIS
MEMORIA DECONTROLE
REG
GERADORDE ENDEREÇO
END.(H)
INSTR.
00 NOP
02 NOT
04 LSH
06 RSH
08 LRT
0A RRT
10 ADD
11 ADI
PROJETO DO SUB.SISTEMA DE CONTROLE DA CPU
SISTEMAS DIGITAIS
MEMORIA DE CONTROLEEND.(H)
INSTR.
12 SUB
13 SBI
14 AND
15 ANI
16 OR
17 ORI
18 XOR
19 XRI
END.(H)
INSTR.
20 LDB
21 LDW
22 STB
23 STW
24 IRB
25 IRW
26 IWB
27 IWW
END.(H)
INSTR.
30 BRP
31 BRN
32 BNZ
33 BRZ
34 BNC
35 BRC
36 BNV
37 BRV
END.(H)
INSTR.
38 BR
39 BRI
3A RBM
3B WBM
3C RBIO
3D WBIO
3E
3F BUSCA
END.(H)
INSTR.
2A RWM
2B WWM
2C RWIO
2D WWIO
24
25
26
27
WORD BYTE
COD. DE OPERAÇÃO DA INSTR. (BIT`s 31-26)
PROJETO DO SUB.SISTEMA DE CONTROLE DA CPU
SISTEMAS DIGITAIS
SEQUENCIADOR DA UNIDADE DE CONTROLE
IRCLK 31...26
3A
3B
3C
3D
3F
0
1
2
4
3
5
PRESET
RENDUC
CLK
PRESET MX3 MX2 MX1 MX0
MEMORIA DE CONTR.
CARREGA RENDUC
CARREGA REG´s SUB.SIST.DADOS
2A
2B
2C
2D
6
7
9
8
PRESETRENDUC= 3F(BUSCA)
PROJETO DO SUB.SISTEMA DE CONTROLE DA CPU
SISTEMAS DIGITAIS
FORMATO DA MICROINSTRUÇÃO
CONTROLE HORIZONTAL, COM SEQUENCIAMENTO EXPLICITO
CONTROLE SEQUENCIAMENTO
MX3|MX2|MX1| MX0
PROJETO DO SUB.SISTEMA DE CONTROLE DA CPU
SISTEMAS DIGITAIS
FORMATO DA MICROINSTRUÇÃO: CONTROLE HORIZONTAL
CONTROLE
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB MX3|MX2|MX1|MX0
WR_PC
CIRC. P/ PERMITIR INSTRUÇÕES DE DESVIO
FZ
FN
FV
FC
01
2
3
FL1 FL0
#XOR
NIVEL( 0/1)
AND
HAB
OR
WRPC
PROJETO DO SUB.SISTEMA DE CONTROLE DA CPU
SISTEMAS DIGITAIS
MICROINSTRUÇÃO DE BUSCA DE INSTRUÇÃO
OBS:DURANTE A BUSCA DE INSTRUÇÃO O PC DEVE SER SOMADO COM 4, PARA APONTAR PARA PROXIMA INSTRUÇÃO
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLN |IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
0 0 |0 | 0
MX3|MX2 |MX1| MX0
0 |1 |1 |0 |0 |0 |0 |0 |0 |0 |0
1110 | 1 |1 |0 |0 | 0 |0 |1 |0 |0 | 0 |1 |1
END. MEM. CONTROLE: 3F
PROJETO DO SUB.SISTEMA DE CONTROLE DA CPU
SISTEMAS DIGITAIS
MICROINSTRUÇÃO DA INSTRUÇÃO NOP
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
0 |1 |0 | 1
MX3|MX2 |MX1| MX0
0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0
0000 | 0 |0 |0 |0 | 0 |0 |0 |0 |0 | 0 |0 |0
END. MEM. CONTROLE: 00
PROJETO DO SUB.SISTEMA DE CONTROLE DA CPU
SISTEMAS DIGITAIS
MICROINSTRUÇÃO DA INSTRUÇÃO ADD
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLN |IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
0 |1 |0 | 1
MX3|MX2 |MX1| MX0
0 |0 |0 |0 |1 |1 |0 |0 |0 |0 |0
0001 | 0 |0 |0 |0 | 0 |0 |0 |0 |1 | 1 |0 |0
END. MEM. CONTROLE: 10
PROJETO DO SUB.SISTEMA DE CONTROLE DA CPU
SISTEMAS DIGITAIS
MICROINSTRUÇÃO DA INSTRUÇÃO ADI
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
0 |1 |0 | 1
MX3|MX2 |MX1| MX0
0 |0 |0 |1 |0 |1 |0 |0 |0 |0 |0
0001 | 0 |0 |0 |0 | 0 |0 |0 |0 |1 | 1 |0 |0
END. MEM. CONTROLE: 11
EXTENSÃO DE SINALSEZE = 1
PROJETO DO SUB.SISTEMA DE CONTROLE DA CPU
SISTEMAS DIGITAIS
MICROINSTRUÇÃO DA INSTRUÇÃO LDB
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
0 |0 |0 | 1
MX3|MX2 |MX1| MX0
0 |0 |0 |1 |0 |0 |1 |0 |0 |0 |0
0001 | 0 |0 |0 |0 | 0 |0 |0 |0 |0 | 0 |0 |0
END. MEM. CONTROLE: 20
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
0 |1 |0 | 1
MX3|MX2 |MX1| MX0
0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0
0000 | 1 |1 |0 |0 | 0 |0 |0 |0 |0 | 1 |0 |0
END. MEM. CONTROLE: 3A
PROJETO DO SUB.SISTEMA DE CONTROLE DA CPU
SISTEMAS DIGITAIS
MICROINSTRUÇÃO DA INSTRUÇÃO BRZ
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
0 |1 |0 | 1
MX3|MX2 |MX1| MX0
0 |0 |0 |1 |0 |0 |0 |0 |0 |1 |1
0001 | 0 |0 |0 |0 | 0 |0 |0 |0 |0 | 0 |0 |0
END. MEM. CONTROLE: 33
WR_PC
FZ
FN
FV
FC
1
FL10
FL00
#XOR
NIVEL( 0/1)
1
HAB1
OR
WRPC0
0
2
3
AND
PROJETO DO SUB.SISTEMA DE CONTROLE DA CPU
SISTEMAS DIGITAIS
MICROINSTRUÇÃO DA INSTRUÇÃO:________
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
| | |
MX3|MX2 |MX1| MX0
| | | | | | | | | |
| | | | | | | | | | | |
END. MEM. CONTROLE: _________
MICROINSTRUÇÃO DA INSTRUÇÃO:________
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
| | |
MX3|MX2 |MX1| MX0
| | | | | | | | | |
| | | | | | | | | | | |
END. MEM. CONTROLE: _________
MICROINSTRUÇÃO DA INSTRUÇÃO:________
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
| | |
MX3|MX2 |MX1| MX0
| | | | | | | | | |
| | | | | | | | | | | |
END. MEM. CONTROLE: _________
PROJETO DO SUB.SISTEMA DE CONTROLE DA CPU
SISTEMAS DIGITAIS
MICROINSTRUÇÃO DA INSTRUÇÃO:________
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
| | |
MX3|MX2 |MX1| MX0
| | | | | | | | | |
| | | | | | | | | | | |
END. MEM. CONTROLE: _________
MICROINSTRUÇÃO DA INSTRUÇÃO:________
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
| | |
MX3|MX2 |MX1| MX0
| | | | | | | | | |
| | | | | | | | | | | |
END. MEM. CONTROLE: _________
MICROINSTRUÇÃO DA INSTRUÇÃO:________
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
| | |
MX3|MX2 |MX1| MX0
| | | | | | | | | |
| | | | | | | | | | | |
END. MEM. CONTROLE: _________
PROJETO DO SUB.SISTEMA DE CONTROLE DA CPU
SISTEMAS DIGITAIS
MICROINSTRUÇÃO DA INSTRUÇÃO:________
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
| | |
MX3|MX2 |MX1| MX0
| | | | | | | | | |
| | | | | | | | | | | |
END. MEM. CONTROLE: _________
MICROINSTRUÇÃO DA INSTRUÇÃO:________
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
| | |
MX3|MX2 |MX1| MX0
| | | | | | | | | |
| | | | | | | | | | | |
END. MEM. CONTROLE: _________
MICROINSTRUÇÃO DA INSTRUÇÃO:________
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
| | |
MX3|MX2 |MX1| MX0
| | | | | | | | | |
| | | | | | | | | | | |
END. MEM. CONTROLE: _________
PROJETO DO SUB.SISTEMA DE CONTROLE DA CPU
SISTEMAS DIGITAIS
MICROINSTRUÇÃO DA INSTRUÇÃO:________
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
| | |
MX3|MX2 |MX1| MX0
| | | | | | | | | |
| | | | | | | | | | | |
END. MEM. CONTROLE: _________
MICROINSTRUÇÃO DA INSTRUÇÃO:________
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
| | |
MX3|MX2 |MX1| MX0
| | | | | | | | | |
| | | | | | | | | | | |
END. MEM. CONTROLE: _________
MICROINSTRUÇÃO DA INSTRUÇÃO:________
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
| | |
MX3|MX2 |MX1| MX0
| | | | | | | | | |
| | | | | | | | | | | |
END. MEM. CONTROLE: _________
PROJETO DO SUB.SISTEMA DE CONTROLE DA CPU
SISTEMAS DIGITAIS
MICROINSTRUÇÃO DA INSTRUÇÃO:________
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
| | |
MX3|MX2 |MX1| MX0
| | | | | | | | | |
| | | | | | | | | | | |
END. MEM. CONTROLE: _________
MICROINSTRUÇÃO DA INSTRUÇÃO:________
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
| | |
MX3|MX2 |MX1| MX0
| | | | | | | | | |
| | | | | | | | | | | |
END. MEM. CONTROLE: _________
MICROINSTRUÇÃO DA INSTRUÇÃO:________
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
| | |
MX3|MX2 |MX1| MX0
| | | | | | | | | |
| | | | | | | | | | | |
END. MEM. CONTROLE: _________
PROJETO DO SUB.SISTEMA DE CONTROLE DA CPU
SISTEMAS DIGITAIS
MICROINSTRUÇÃO DA INSTRUÇÃO:________
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
| | |
MX3|MX2 |MX1| MX0
| | | | | | | | | |
| | | | | | | | | | | |
END. MEM. CONTROLE: _________
MICROINSTRUÇÃO DA INSTRUÇÃO:________
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
| | |
MX3|MX2 |MX1| MX0
| | | | | | | | | |
| | | | | | | | | | | |
END. MEM. CONTROLE: _________
MICROINSTRUÇÃO DA INSTRUÇÃO:________
ALUOP|MEMRD|MEMENA|IORD|IOENA|MEMWR|IOWR|MEMLEN|IOLEN|WRCR|WRC|ALUPC|WRPC
SINSOUT|WRIR|PCRA|SEZE|IRRB|MEMALU|WRDC|FL1|FL0|NIVEL|HAB
| | |
MX3|MX2 |MX1| MX0
| | | | | | | | | |
| | | | | | | | | | | |
END. MEM. CONTROLE: _________
EXERCICIO 35
SISTEMAS DIGITAIS
CONTEUDO DOS REGISTRADORES, MEMORIA E BARRAMENTOS, A CADA PERIODO DE CLK, DURANTE A EXECUÇÃO DO PROGRAMA ABAIXO.OBS: APÓS O RESET, PC =000000H E RENDUC = 3FH
IR3A3B3C3D3F
RENDUC
MEM UNIDCONTR00 NOP02 NOT11 ADI12 SUB22 STB3C DADO3F BUSCACLK
RESETPC DC
IR ALU
CZNV
R0 R1
R2 R3
R4 R5
R30 R31
CLKRESET
SUB. SIST. CONTROLESUB. SIST. DADOS
000000 48 00 00 00 SUB R0,R0,R0
000004 44 20 00 05 ADI R1,R0,5
000008 44 40 03 00 ADI R2,R0,30000000C 88 22 00 00 STB R1,0(R2)
000300 XX XX XX XX
MEMORIA DE PROGRAMA E DADOS
RD:WR:LEN:EN:
DADOS :END.:
EXERCICICIO 36 O MULTIPLICADOR DA FIG. ABAIXO DEVE SER ACRESCENTADO AO SUBSISTEMA DE DADOS DA CPU DE MODO QUE SEJA POSSIVEL MULTIPLICAR OS CONTEUDOS DE 2 REGISTRADORES DO ARQUIVO DE REGISTRADORES E O RESULTADO ARMAZENAR EM 2 REGISTRADORES. UM DELES ESPECIFICADO NA INSTRUÇÃO DE MULTIPLICAÇÃO (O QUE VAI ARMAZENAR A PARTE MENOS SIGNIFICATIVA DO PRODUTO) E O OUTRO É O CONSECUTIVO (QUE VAI ARMAZENAR A PARTE MAIS SIGNIFICATIVA DO PRODUTO).
PEDE-SE:
A. O FORMATO DA INSTRUÇÃO DE MULTIPLICAÇÃO E O OP-CODE DA INSTRUÇÃO.
B. A CONEXÃO DO MULTIPLICADOR NO SUBSISTEMA DE DADOS, SABENDO QUE A PARTE MENOS SIGNIFICATIVA DO PRODUTO VAI SER ARMAZENADA DURANTE O CICLO DE EXECUÇÃO E A PARTE MAIS SIGNIFICATIVA DURANTE O CICLO DE BUSCA DA PROXIMA INSTRUÇÃO.
C. O ENDEREÇO DA MICROINSTRUÇÃO DE MULTIPLICAÇÃO E O NOVO FORMATO DAS
MICROINSTRUÇÕES, DESTACANDO OS SINAIS ACRESCENTADOS E A MICROINSTRUÇÃO DE MULTIPLICAÇÃO
D. A NOVA MICROINSTRUÇÃO DE BUSCA
QUANTOS PERIODOS DE CLOCK SERÃO NECESSARIOS PARA QUE O PROGRAMA ABAIXO POSSA SER EXECUTADO?
QUAIS OS CONTEUDOS DOS REGISTRADORES UTILIZADOS PELO PROGRAMA E OS CONTEUDOS DOS FLAGS APOS A SUA EXECUÇÃO?
SISTEMAS DIGITAIS
PROGRAMA:SUB R1,R1,R1ADI R3,R1,14HADI R4,R1,0AHSTW R3,400H(R1)MUL R7,R3,R4ADD R6,R3,R4
MULTIPLICADOR:
3232
64
PIPELINE
SISTEMAS DIGITAIS
OTIMIZAÇÕES EM SISTEMAS RTL
REDUÇÃO DE CUSTO
MELHORIA DE PERFORMANCE
COMPARTILHAMENTO DE REGISTRADORESCOMPARTILHAMENTO DE OPERADORESCOMPARTILHAMENTO DE BARRAMENTOSCOMPARTILHAMENTO DE ACESSO A REG´s (AGRUPAMENTO DE REGISTRADORES)
TECNICA DE PIPELINE
PIPELINE
SISTEMAS DIGITAIS
PIPELINE EM OPERADORES (MODULOS FUNCIONAIS)
X0 YO
Z1
X1 Y1
Z0
t
IMPLEMENTAÇÃO SEM PIPELINE
TEMPO:2
ENTRADA
SAIDA
PIPELINE
SISTEMAS DIGITAIS
PIPELINE EM OPERADORES (MODULOS FUNCIONAIS)
X0 YO
Z1
X1 Y1
Z0
t
IMPLEMENTAÇÃO COM PARALELISMO
TEMPO:
MELHORIA DE PERFORMANCE (50%) , COM ALTO CUSTO(ACRESCIMO DE OUTROOPERADOR)
ENTRADA
SAIDA
TECNICA DE PIPELINE:ACRESCIMO DE REGISTRADORES,PARA QUE O MODULO FUNCIONAL TENHA PARTES INDEPENDENTES
PIPELINE
SISTEMAS DIGITAIS
PIPELINE EM OPERADORES (MODULOS FUNCIONAIS)
X0 YO
Z1
X1 Y1
Z0
t
TEMPO:1,5
REGISTRADOR
/2
/2
/2 /2
MELHORIA DE PERFORMANCE (25%) , COM BAIXO CUSTO(ACRESCIMO DE REGISTRADORES)
IMPLEMENTAÇÃO COM PIPELINE
/2
ENTRADA
SAIDA
REG
PIPELINE
SISTEMAS DIGITAIS
EXEMPLO DE PIPELINE EM OPERADOR
PIPELINE
SISTEMAS DIGITAIS
COMPARAÇÃO DE PERFORMANCE ENTRE 2 SUB. SIST. DE DADOS, UM COM OPERADOR SEM PIPELINE E OUTRO COM PIPELINE.
T1 =|A|
S0 A = IN1 B= IN2
S1
S2
T5 = X – T3
T6 = T4 + T5
S5
T7 = MAX(T6,X)
S6
OUT = T7
R2 B,T2,,T3,T5,T6
IN1 IN2
R1 A,T1,X,T7
ALU
BUS4
BUS3
BUS2
BUS1
T2 =|B|
T4= MIN(T1,T2)>>1
S3X = MAX(T1,T2)
T3=MAX(T1,T2)>>3
S4
S7
S8
R3 T4
>>3
>>1
OUT
PIPELINE
SISTEMAS DIGITAIS
COMPARAÇÃO DE PERFORMANCE ENTRE 2 SUB. SIST. DE DADOS, UM COM OPERADOR SEM PIPELINE E OUTRO COM PIPELINE.
T1 =|A|
S0
A = IN1 B= IN2
T5 = X – T3
T6 = T4 + T5
T7 = MAX(T6,X) OUT = T7
R2 B,T2,,T3,T5,T6
R1 A,T1,X,T7
T2 =|B|
T4= MIN(T1,T2)>>1X = MAX(T1,T2)
T3=MAX(T1,T2)>>3
R3 T4
CLK 1 2 3 4 5 6 7 8 9
S0 S1 S2 S3 S4 S5 S6 S7 S8
LR1 A T1 T1 X X T7
LR2 B T2 T2 T3 T5 T6
LR3 T4
ALU |A| |B| MIN MAX - + MAX
>> 1 3
ER1 A T1 X T7
ER2 B T2 T3 T5 T6
ER3 T4
OUT T7
S1S2S3S4S5S6S7S8
TEMPO DE EXECUÇÃO SEM PIPELINE: 9 TCLK
LR1: LEITURA DE R1ER1: ESCRITA DE R1
PIPELINE
SISTEMAS DIGITAIS
COMPARAÇÃO DE PERFORMANCE ENTRE 2 SUB. SIST. DE DADOS, UM COM OPERADOR SEM PIPELINE E OUTRO COM PIPELINE.
T1 =|A|
S0 A = IN1 B= IN2
S1
S2
T5 = X – T3
T6 = T4 + T5
S5
T7 = MAX(T6,X)
S6
OUT = T7
R2 B,T2,,T3,T5,T6
IN1 IN2
R1 A,T1,X,T7
ALU
BUS4
BUS3
BUS2
BUS1
T2 =|B|
T4= MIN(T1,T2)>>1
S3X = MAX(T1,T2)
T3=MAX(T1,T2)>>3
S4
S7
S8
R3 T4
>>3
>>1
OUT
ALU1
ALU2REGISTRADOR
PIPELINE
PIPELINE
SISTEMAS DIGITAIS
COMPARAÇÃO DE PERFORMANCE ENTRE 2 SUB. SIST. DE DADOS, UM COM OPERADOR SEM PIPELINE E OUTRO COM PIPELINE.
T1 =|A|
S0
A = IN1 B= IN2
T5 = X – T3
T6 = T4 + T5
T7 = MAX(T6,X) OUT = T7
R2 B,T2,,T3,T5,T6
R1 A,T1,X,T7
T2 =|B|
T4= MIN(T1,T2)>>1X = MAX(T1,T2)
T3=MAX(T1,T2)>>3
R3 T4
CLK 1 2 3 4 5 6 7 8 9 10 11 12 13
S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12
LR1 A T1 T1 X X X T7
LR2 B T2 T2 T3 T6 T5 T6
LR3 T4
ALU1 |A| |B| MAX MIN - MAX + MAX
ALU2 |A| |B| MAX MIN - + MAX
>> 3 1
ER1 A T1 X
ER2 B T2 T3 T5 T6 T7
ER3 T4
OUT T7
S1S2S3S4S5S6S7S8
TEMPO DE EXECUÇÃOCOM PIPELINE: 13 TCLK/2
NOP
PIPELINE
SISTEMAS DIGITAIS
PIPELINE NO SUB.SIST. DE CONTROLE
RENDUC
MEM DE CONTROLE
GERADOR DE END
CLK
SUB SIST. CONTROLE SUB SIST. DADOS
REG1 REG2
ALU
REG4
M
A
M E A SÃO OS RETARDOS MAIS RELEVANTES
TCLK = M + A
REG3
PIPELINE
SISTEMAS DIGITAIS
PIPELINE NO SUB.SIST. DE CONTROLE
SEM PIPELINE TCLK = M + A
CLK
BUSCAiNSTR
EXEC.iNSTR
BUSCAiNSTR
EXEC.iNSTR
PIPELINE
SISTEMAS DIGITAIS
PIPELINE NO SUB.SIST. DE CONTROLE
RENDUC
MEM DE CONTROLE
GERADOR DE END
CLK*
SUB SIST. CONTROLE SUB SIST. DADOS
REGISTRADOR
REG1 REG2
ALU
REG4
TCLK* = MAX(M, A)
REG3M
A
PIPELINE
SISTEMAS DIGITAIS
PIPELINE NO SUB.SIST. DE CONTROLE
COM PIPELINE TCLK* = MAX(M + A)
CLK*
BUSCAiNSTR
EXEC.iNSTR
BUSCAiNSTR
EXEC.iNSTR
PIPELINE
SISTEMAS DIGITAIS
PIPELINE NO SUB.SIST. DE CONTROLE E NO DE DADOS
RENDUC
MEM DE CONTROLE
GERADOR DE END
CLK**
SUB SIST. CONTROLE SUB SIST. DADOS
REGISTRADOR
REG1 REG2
ALU
REG4
A/2
TCLK* = MAX(M, A/2)
REGISTRADOR
A/2
REG3M
PIPELINE
SISTEMAS DIGITAIS
PIPELINE NO SUB.SIST. DE CONTROLE E NO DE DADOS
RENDUC
MEM DE CONTROLE
GERADOR DE END
CLK**
SUB SIST. CONTROLE SUB SIST. DADOS
REG. CONTROLE
REG1 REG2
ALU
REG4
TCLK* = MAX(M, A/2)
REG DADO
PIPELINE COM 3 ESTAGIOS
REG3
A/2
A/2
M
PERFORMANCE MELHOROU EM 30%
PIPELINE
PIPELINE NO SUB.SIST. DE CONTROLE E NO DE DADOS
SISTEMAS DIGITAIS
INSTR(A>B)
INSTR(Y=X-1)
INSTR(X=C x D)
SIM
NÃO
SEM NENHUM PIPELINE O TEMPO GASTO PARA BUSCAR E EXECUTAR AS INSTR,
PARA O PIOR CASO, SERIA DE 3 TCLK
COM 3 ESTAGIOS DE PIPELINE E SUPONDO QUE O TCLK ** ~ TCLK/3, O TEMPO GASTO PARA BUSCAR E EXECUTAR AS INSTR.´s, PARA O PIOR CASO, PODE SER VISTO NA TABELA ABAIXO
RENDUC A>B X=CxD Y=X-1
REGCONTR A>B X=CxD Y=X-1
REGDADOS A>B X=CxD Y=X-1
6 TCLK** = 6 TCLK/3 = 2 TCLK