11
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
VHDL
Edna BarrosGrupo de Engenharia da Computação
Centro de Informática -UFPE
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Especificação
Diagrama de
Gajski
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Introdução a VHDL
Descrição VHDL especifica:• visão externa (entity)
– nome– interface
entity COMPARE isport (A,B: in bit;
C: out bit);end COMPARE
A
BC
bitbit
bit• visão interna (architecture)
– estrutura– comportamento
• dataflow• algoritmo
22
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Introdução a VHDL
Tipos de Dados:• bit• bit_vector• integer ...
B
CA
/8/8/8
+
entity SOMADOR isport (B,C: in bit_vector(7 downto 0);
A: out bit_vector(7 downto 0));end SOMADOR
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
VHDL - Estrutural
Sinais:• interconexão entre
componentes
Componentes:• devem ter sido
especificados (entity)• Podem ser usados
mais de uma vez
A
B C
bitbit
bit
I
architecture STRUCT of COMPARE issignal I: bit;component XR2
port(x,y: in bit; z:out bit);end component;component INV
port(x:in bit; z:out bit);end component;
beginU0: XR2 port map(A,B,I);U1: INV port map(I,C);
end STRUCT;
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
VHDL - Comportamento
Data flow (eq. booleanas):• concorrência
Sinais:• escalar
– signal S: bit := ´1´;
• array– signal S_BUS: bit_vector(0 to 7)
• ports• globais
– entity
• locais– architecture
entity XR2 isport(X,Y: in bit; Z: out bit);
end XR2,
architecture DFLOW of XR2 isbegin
Z <= X xor Y;end DFLOW;
A
B C
bitbit
bit
IXR2 INV
33
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
VHDL: Comportamento
Algoritmo (Processo)• sequencial
Lista de sensibilidade• sinais de entrada
Concorrência entre processos• comunicação via sinais
architecture ALG of COMPARE isbegin
process (A,B)begin
if (A = B) thenC <= ´1´ after 1ns;
elseC <= ´0´ after 2ns;
end if;end process;
end ALG;
A
BC
bitbit
bit
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Escolhendo uma arquitetura...
Configurações• permite a seleção de
diversas arquiteturas Compare
ALU
CPU
configuration fast_one of ALU isfor firstfor U0: COMPARE use entity WORK.COMPARE(dataflow);
entity ALU isport( opcode:...
end ALU;
architecture first of ALU iscomponent COMPAREport (a,b:in bit; c:out : bit);end component;...
beginU0: COMPARE port map (s,d,q);....
end first
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Bibliotecas
Componentes de Projeto• entities• architectures• packages• configurations
entityarchitectureconfigurationpackage
entityarchitectureconfigurationpackage
VHDLCompiler
package my_defs isconstant unit_delay: time := 1 ns;
end my_defs;
entity COMPARE isport (a,b : in bit; c: out bit);
end COMPARE;
architecture flow of COMPARE isbegin
c <= NOT (a XOR b) after work.my_defs.unity_delay;end flow;
44
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Package
Declaração de constantesDeclaração desubprgramasDeclarações de tipos
Package my_defs isConstant unit_delay: time := 1ns;end my_defs;
Definição
... after work.my_defs.unity_delay;
Uso
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Resumindo...
Packages: declaraçãode tipos, constantes esubprogramas compar-tilhados
architectures: defineimplentações das entidades
configurations: se-leciona implementaçõesde componentes
entities: definemodulos de projeto e suas interfaces
Arquivos VHDL
Projeto VHDL
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Descrevendo a natureza concorrente do hardware
No corpo do constructor architecture a concorrência pode ser especificada em diversos níveis:• processos• procedimentos• atribuição de sinal • atribuição de sinal condicional/selecionada• blocos
55
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Atribuição de sinal concorrente
usada em descrições estruturais e dataflow(circuitos combinacionais)não possuem ordem fixa de execução
A <= B + C;
D < = E + F
+
+
B
C
E
F
A
D
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Atribuição de sinal condicional
Sintaxe:• target <= {expression when condition else} expression
Só uma expressão será atribuída
Z <= A when (x > 3) elseB when (x < 3) elseC
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Atribuição de sinal selecionada
Sintaxe:with expression select
target <= {expression when choices ,};
with MYSIG selectZ <= A when 15,
B when 22,C when others;
■ Equivale ao CASE
66
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Processos
atribuições sequenciais: • comportamento passo-a-passo• construtores de linguagens de programação• variáveis temporárias
entity low-high isport(a,b,c: in integer;
low, high: out integer);end low-high;
low-high
a
b
c
low
high
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
architecture beh of low-high isbeginL: process(a,b,c)variable v_low: integer := 0;begin
if a < b then v_low := a; else v_low:= b; end if;if c < v_low then v_low := c; end if;low <= v_low;
end process;
H: processvariable v_high integer := 0;begin
wait on a,b,c;if a > b then v_high := a; else v_high:= b; end if;if c > v_high then v_high := c; end if;high <= v_high;
end process;
process_statement[label:]
process[(sensitivity-list)][subprogram][type][constant][variable][other declarations]
beginvariable_assignment;signal_assignment;if_statement case_statementloop_statementnext_statementexit_statementwait_statement
end process [label];
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Processos: Variáveis vs. Sinais
Variáveis:• target := expression;• declaradas no processo• valores temporários • são locais ao processo• valor alterado
imediatamente
Sinais:• target <= [expression] [after delay];• declarados.
– entities– architectures– packages
• passagem de valores entre processos• passagem de valores entre entidades• valores alterados ao final da execução do
processo
77
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Processos: Variável vs. Signal
AB
Cck
Q1
Q2
AB
Cck
Q1
Q2
tmp1
tmp2
Circuito 1 Circuito 2
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Processos: Variável vs. Signal
AB
Cck
Q1
Q2
Circuito 1 Architecture v1 of circuito1 issignal Q1,Q2: bit;
beginprocess (ck)begin
if ck=1 and ck´event thenQ1 <= A and B;Q2 <= Q1 and C;
end if;end process;
end v1;
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Processos: Variável vs. Signal
AB
Cck
Q1
Q2
tmp1
tmp2
Circuito 2 Architecture v1 of circuito2 issignal Q1,Q2: bit;
beginprocess (ck)variable tmp1, tmp2: bit;begin
if ck=1 and ck´event thentmp1 := A and B;tmp2 := tmp1 and C;
end if;Q1 <= tmp1;Q2 <= tmp2;
end process;end v1;
88
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Processos: Captando mudança de sinal...
entity ffd isport(d,ck: in bit; q: out bit);
end ffd;
architecture arq1 of ffd is
process (ck)beginif ck’event and ck = ‘1’thenq <= d ;end if;end process;
d
ck
q
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Processos: Construtores sequenciais
if-then-else
case
if condition then sequential_statements[elsif condition then sequential_statements][else condition then sequential_statements]end if;
case expression iswhen choice1 => sequential_statements...when choice n => sequential_statements[when others => sequential_statements]
end case;
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Processos: Construtores sequenciais
loop
next
exit
[label:] [while condition / for loop_specif] loopsequential_statements
end loop;
next [label] [when condition];
exit [label] [when condition];
99
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Exercícios
Descreva em VHDL um circuito que implementa um registrador de 8 bits com as seguintes características:• clear assíncrono• load síncrono com clock (“ trigado na subida”)
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
The FPGA Design Process
Design entry Test Development
Synthesis
Devicemapping
Functional simulation
Timing simulation
Device
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
O ambiente Max+PlusII
Editor de texto
Editor dewaveform
Editor gráfico
Editor de símbolos
Compilador
Timeextractor
Assembler
Partitioner Fitter
Logicsynthesizer
Databasebuilder
Designdoctor
Netlistwriter
Editor defloorplan
Simulador Editorwaveform
Timiniganalyzer
Deviceprogram.
Messageprocessor
&Hierarchy
display
Design entry Processing
Verification Programming
1010
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
VHDL para síntese
Tipos de circuitos• combinacionais• sequenciais
Estilos em VHDL• dataflow• processo (algoritmo)
❋ Qual o melhor estilo para descrever um circuito digital?
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
VHDL para síntese
Combinacionais• dataflow
– atribuição – atribuição condicional / selecionada
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
VHDL para síntese
Sequenciais• processo ( uma das restrições)
– lista de sensibilidade não inclui todos os sinais de entrada
– possui if-then-else ou case incompletamente especificado
– variável é lida sem ter valor atribuído previamente
1111
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Projetando um sistema digital
Estrutura: controle + processamento
4
2
4
4
Z
NALU
L1
L3
L2
A B
C
F
L1
L2
entity sistema isport(...)end sistema;
architecture estrut of istema issignal ...component processamentoport(...)component controleport(...)beginU0: controle portmap(...);U1: processamento portmap(...);end estrut;
L3
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Projeto: ArquiteturaI n s t r u ç ã o D e s c r i ç ã o
n o p N o o p e r a t i o nl w r e g ,e n d ( r e g _ b a s e )
r e g . = m e m ( r e g _ b a s e + e n d )
s w r e g ,e n d ( r e g _ b a s e )
M e m ( r e g _ b a s e + e n d ) = r e g
l i r e g , c o n s t a n t e r e g = c o n s t a n t ea d d r e g i , r e g j , r e g k R e g i . < - R e g j . + R e g ka d d i r e g i , r e g j , c t e R e g i = r e g j + c t es u b r e g i , r e g j , r e g k R e g i . < - R e g j . – R e g ka n d r e g i , r e g j , r e g k R e g i . < - R e g j . a n d R e g ka n d i r e g i , r e g j , c t e R e g i = r e g j a n d c t es h f r l r e g d , r e g s , n D e s l o c a r e g s p a r a d i r e i t a n v e z e s ( L ó g i c o ) e
a r m a z e n a v a l o r d e s l o c a d o e m r e g d .s h f r a r e g d , r e g s , n D e s l o c a r e g s p a r a d i r . n v e z e s ( a r i t m é t i c o ) ,
a r m a z e n a v a l o r d e s l o c a d o e m r e g d .s h f l r e g d , r e g s , n D e s l o c a r e g s p a r a e s q u e r d a n v e z e s , a r m a z e n a
v a l o r d e s l o c a d o e m r e g d .r o t r r e g d , r e g s , n R o t a c i o n a r e g s p a r a d i r e i t a n v e z e s , a r m a z e n a
v a l o r d e s l o c a d o e m r e g d .r o t l r e g d , r e g s , n R o t a c i o n a r e g s p a r a e s q u e r d a n v e z e s ,
a r m a z e n a v a l o r d e s l o c a d o e m r e g d .b e q r e g i , r e g j , e n d D e s v i a p a r a e n d . s e r e g i = r e g jb n e r e g i , r e g j , e n d D e s v i a p a r a e n d s e r e g i < > r e g js l t r e g i , r e g j , r e g k R e g i = 1 s e r e g j < r e g k s e n ã o r e g i = 0s l t i r e g i , r e g j , c t e R e g i = 1 s e r e g j < c t e s e n ã o r e g i = 0j e n d D e s v i o p a r a e n dj r e g i P C = ( r e g i )j a l e n d R 3 1 = P C ; P C = e n db r e a k P a r a a e x e c u ç ã o d o p r o g r a m a
4
Opcode
5
rs1 Rs2 rd
4
F1 count
7
deslocamentoOpcode rb
45
F2 rd
4
34
8
endereçoOpcode n.u
5
F37
n.u
n.u
n.u
4
4
4
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Implementação Multi-ciclo
Shift
le ft 2
Mem toReg
IorD M emR ead Mem Write
PC
M em ory
M emD ata
W rite
data
M
u
x
0
1
RegistersW rite
r eg ister
W rite
da ta
R ead
data 1
Read
data 2
R ead
r egister 1
R ead
r egister 2
Instruction
[15– 11]
M
u
x
0
1
M
u
x
0
1
4
ALUOpALUSrcB
R egD st RegWrite
Instruction
[15– 0]
Instruction [5– 0]
S ign
extend
3216
Instruction
[25– 21]
Instruction
[20– 16]
Instruction
[15– 0]
Instruction
regis ter
1 M
u
x
0
3
2
ALU
contro l
M
u
x
0
1
ALU
result
ALU
ALUSrcA
ZeroA
B
ALUOut
IRW rite
Address
Memory
data
regis ter
1212
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
ALU Unidade Lógico-Aritmética
f operação descrição flags afetados000 S = A Z,N001 S = A+B Soma Z,N,O010 S = A-B Subtração Z,N,O011 S = A and B And lógico Z100 S = A xor B Ou exclusivo Z101 S = not A Complemento a 1Z110 S = inc A Incremento Z, N, O111 S = A comp B Comparação EQ,GT,LT
A B
S
ZN
OEQ
LTGT
ALU
8 8
8
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Unidade de Execução
Desl. Esquerda n vezes
ALU
Reg. desl
f
ck shift3
nreset
eq, gt, lt
Saída_execução
Entrada A Entrada B
2
Rotação esquerda n vezes110
Load (no shift)001
Rotação direita n vezes 101
Desl. Direita aritmético n vezes100
Desl. Direita Lógico n vezes011
010
descriçãoshift
nada000
Desl. Esquerda n vezes
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Projetando a Unidade de Processamento
Permitir que a saída da ALU seja deslocada• Registrador de deslocamento
– Load e shift síncronos (descida)– Clear assíncrono– Deslocamentos (n vezes):
• Esquerda– Entrada: 0
• Direita (lógico e aritmético)– Entrada: 0 ou MSB (Bit mais significativo)
• Rotação (direita ou esquerda):– Entrada: LSB, MSB– Saída: MSB, LSB (Bit Menos Significativo)
1313
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Projetando a Unidade de Controle
Máquinas de estados finitosFSM
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Máquinas de estado - FSMComputador = Processamento + Controle
RegistradoresUnidades FuncionaisCombinacionais ( ALU)Barramento
FSM gera sequenciasde sinais de controle
Instrui ao processamentoo que fazer
Status
Controle
Controle
Processamento
Estado
Sinais de controle(saída)
Statuse entradas
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Executando um programa
Busca instrução
Executa instrução
Busca operando
Decodifica instrução
Armazena resultado
Incrementa PC
1414
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Conceito de máquina de estado
Exemplo: Odd Parity Checker
Even [0]
Odd [1]
Reset
0
0
1 1
Saída 1 se o número de 1´s da entrada é ímpar
Diagrama de
estados
Present State Even Even Odd Odd
Input 0 1 0 1
Next State Even Odd Odd Even
Output 0 0 1 1
Tabela de transição de estados simbólicos
Output 0 0 1 1
Next State 0 1 1 0
Input 0 1 0 1
Present State 0 0 1 1
Tabela de transição de estados codificados
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Exemplo: Odd Parity Checker
Funções Próximo Estado e Saída
NS = PS xor PI; OUT = PS
D
R
Q
Q
Input
CLK PS/Output
\Reset
NS
Implementação DFF
T
R
Q
Q
Input
CLK
Output
\ResetImplementação TFF
Comportamento temporal: Entrada 1 0 0 1 1 0 1 0 1 1 1 0
Clk
Output
Input 1 0 0 1 1 0 1 0 1 1 1 0
1 1 0 1 0 0 1 1 0 1 1 1
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Metodologia de projeto
Seis passos
1. Entender especificação informal do problema
2. Obter especificação abstrata da FSM
3. Minimização de estados
4. Codificação de estados
5. Escolher tipos de FF para implementação do reg. de estados
6. Implementar a FSM
1515
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Exemplo: Máquina de vendas autom.
Comportamento:entrega pacote de bombom a cada 15 centavos depositado
slot para moedas
não dá troco
Diagrama de Blocos
Passo 1: Entendendo o problema:
Vending Machine
FSM
N
D
Reset
Clk
OpenCoin
SensorGum
Release Mechanism
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Moedas típicas:3 moedas de R$0.101 moeda de R$0.05 e uma moeda de R$0.101 moeda de R$0.10 e uma moeda de R$0.052 moedas de R$0.102 moedas de R$0.05 e uma de R$0.10
Diagrama de estados:
Entradas: N, D, reset
Saída: open
Passo 2. Especificação abstrata
Reset
N
N
N
D
D
N D
[open]
[open] [open] [open]
S0
S1 S2
S3 S4 S5 S6
S8
[open]
S7
D
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Passo3: Minimização de Estados
Reset
N
N
N, D
[open]
15¢
0¢
5¢
10¢
D
D
reutilizar estadossempre que possível Tabela de estados simbólicos
Present State
0¢
5¢
10¢
15¢
D
0 0 1 1 0 0 1 1 0 0 1 1 X
N
0 1 0 1 0 1 0 1 0 1 0 1 X
Inputs Next State
0¢ 5¢ 10¢ X 5¢ 10¢ 15¢ X
10¢ 15¢ 15¢ X
15¢
Output Open
0 0 0 X 0 0 0 X 0 0 0 X 1
1616
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Passo 4: Codificação de estados
Next State D 1 D 0
0 0 0 1 1 0 X X 0 1 1 0 1 1 X X 1 0 1 1 1 1 X X 1 1 1 1 1 1 X X
Present State Q 1 Q 0
0 0
0 1
1 0
1 1
D
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
N
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Inputs Output Open
0 0 0 X 0 0 0 X 0 0 0 X 1 1 1 X
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Passo 5. Escolha do FF para implementação
D FF
D1 = Q1 + D + Q0 N
D0 = N Q0 + Q0 N + Q1 N + Q1 D
OPEN = Q1 Q0
8 GatesCLK
OPEN
CLK
Q 0
D
R
Q
Q
D
R
Q
Q
\ Q 1
\reset
\reset
\ Q 0
\ Q 0
Q 0
Q 0
Q 1
Q 1
Q 1
Q 1
D
D
N
N
N
\ N
D 1
D 0
K-map for OpenK-map for D0 K-map for D1
Q1 Q0D N
Q1
Q0
D
N
Q1 Q0D N
Q1
Q0
D
N
Q1 Q0D N
Q1
Q0
D
N
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Passo 5. Escolha de FF para implementaçãoJ-K FF
Next State D 1 D 0
0 0 0 1 1 0 X X 0 1 1 0 1 1 X X 1 0 1 1 1 1 X X 1 1 1 1 1 1 X X
Present State Q 1 Q 0
0 0
0 1
1 0
1 1
D
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
N
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Inputs K 1
X X X X X X X X 0 0 0 X 0 0 0 X
K 0
X X X X 0 1 0 X X X X X 0 0 0 X
J 1
0 0 1 X 0 1 1 X X X X X X X X X
J 0
0 1 0 X X X X X 0 1 1 X X X X X
1717
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Passo 6: Implementação:
K-map for K1K-map for J1
Q1 Q0D N
Q1
Q0
D
N
Q1 Q0D N
Q1
Q0
D
N
K-map for K0K-map for J0
Q1 Q0D N
Q1
Q0
D
N
Q1 Q0D N
Q1
Q0
D
N
J1 = D + Q0 N
K1 = 0
J0 = Q0 N + Q1 D
K0 = Q1 N
7 Gates
OPEN Q 1
\ Q 0
N
Q 0 J
K R
Q
Q
J
K R
Q
Q
Q 0
\ Q 1
\ Q 1
\ Q 0
Q 1
\reset
D
D
N
N
CLK
CLK
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Representação alternativa
Notação algorítmicaLinguagens de Descrição de Hardware:• VHDL• ABEL
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
VHDL
ENTITY parity_checker ISPORT (ck, reset, x: IN BIT;
z: OUT BIT);END parity_checker;
ARCHITECTURE behavioral OF parity_checker IStype STATE_TYPE is (S0, S1);
signal: CURRENT_STATE, NEXT_STATE: STATE_TYPE;beginprocess (CURRENT_STATE, x, reset)begin
if (reset) then NEXT_STATE <= S0; elsecase CURRENT_STATE iswhen S0 =>
if (x = ´1´) then NEXT_STATE <= S1 else NEXT_STATE <= S0; end if;z <= ´0´ ;
when S1 => if (x = ´1´) then NEXT_STATE <= S0; else NEXT_STATE <= S1 end if;z <= ´1´ ;
end case;end if;
end process;process(ck)
beginif (ck = ´1´ and ck’event) then
CURRENT_STATE <= NEXT_STATE;end if;
end process
end behavioral;
1818
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
VHDL
ENTITY parity_checker ISPORT (ck, reset, x: IN BIT;
z: OUT BIT);END parity_checker;
ARCHITECTURE behavioral OF parity_checker IStype STATE_TYPE is (S0, S1);
signal: CURRENT_STATE, NEXT_STATE: STATE_TYPE;beginprocess (ck, reset)begin
if (reset) then NEXT_STATE <= S0; elseif (ck =‘1’ and ck’event ) then
case CURRENT_STATE iswhen S0 =>
if (x = ´1´) then NEXT_STATE <= S1 else NEXT_STATE <= S0; end if;z <= ´0´ ;
when S1 => if (x = ´1´) then NEXT_STATE <= S0; else NEXT_STATE <= S1 end if;z <= ´1´ ;
end case;end if;CURRENT_STATE <= NEXT_STATE;
end process;
end behavioral;
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Máquinas Moore e Mealy
Máquinas Moore
Saídas como funçãosomente do estado
corrente
Saídas são alteradas sincronamente commudança de estados
Máquinas Mealy
Saídas dependem dos estados e entradas
Mudanças na entrada causa mudanças
imediatas nas saídas
Sinais assincronos
State Register Clock
State Feedback
Combinational Logic for
Outputs and Next State
X Inputs
i Z Outputs
k
Clock
state feedback
Combinational Logic for
Next State (Flip-flop Inputs)
State Register
Comb. Logic for Outputs
Z Outputs
k
X Inputs
i
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Diagramas de Estados
Saídas associadas com estados
Saídas associadas com transições
Reset/0
N/0
N/0
N+D/1
15¢
0¢
5¢
10¢
D/0
D/1
(N D + Reset)/0
Reset/0
Reset/1
N D/0
N D/0
MooreMachine
Reset
N
N
N+D
[1]
15¢
0¢
5¢
10¢
D
[0]
[0]
[0]
D
N D + Reset
Reset
Reset
N D
N D
MealyMachine
1919
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Projeto: ArquiteturaI n s t r u ç ã o D e s c r i ç ã o
n o p N o o p e r a t i o nl w r e g ,e n d ( r e g _ b a s e )
r e g . = m e m ( r e g _ b a s e + e n d )
s w r e g ,e n d ( r e g _ b a s e )
M e m ( r e g _ b a s e + e n d ) = r e g
l i r e g , c o n s t a n t e r e g = c o n s t a n t ea d d r e g i , r e g j , r e g k R e g i . < - R e g j . + R e g ka d d i r e g i , r e g j , c t e R e g i = r e g j + c t es u b r e g i , r e g j , r e g k R e g i . < - R e g j . – R e g ka n d r e g i , r e g j , r e g k R e g i . < - R e g j . a n d R e g ka n d i r e g i , r e g j , c t e R e g i = r e g j a n d c t es h f r l r e g d , r e g s , n D e s l o c a r e g s p a r a d i r e i t a n v e z e s ( L ó g i c o ) e
a r m a z e n a v a l o r d e s l o c a d o e m r e g d .s h f r a r e g d , r e g s , n D e s l o c a r e g s p a r a d i r . n v e z e s ( a r i t m é t i c o ) ,
a r m a z e n a v a l o r d e s l o c a d o e m r e g d .s h f l r e g d , r e g s , n D e s l o c a r e g s p a r a e s q u e r d a n v e z e s , a r m a z e n a
v a l o r d e s l o c a d o e m r e g d .r o t r r e g d , r e g s , n R o t a c i o n a r e g s p a r a d i r e i t a n v e z e s , a r m a z e n a
v a l o r d e s l o c a d o e m r e g d .r o t l r e g d , r e g s , n R o t a c i o n a r e g s p a r a e s q u e r d a n v e z e s ,
a r m a z e n a v a l o r d e s l o c a d o e m r e g d .b e q r e g i , r e g j , e n d D e s v i a p a r a e n d . s e r e g i = r e g jb n e r e g i , r e g j , e n d D e s v i a p a r a e n d s e r e g i < > r e g js l t r e g i , r e g j , r e g k R e g i = 1 s e r e g j < r e g k s e n ã o r e g i = 0s l t i r e g i , r e g j , c t e R e g i = 1 s e r e g j < c t e s e n ã o r e g i = 0j e n d D e s v i o p a r a e n dj r e g i P C = ( r e g i )j a l e n d R 3 1 = P C ; P C = e n db r e a k P a r a a e x e c u ç ã o d o p r o g r a m a
4
Opcode
5
rs1 Rs2 rd
4
F1 count
7
deslocamentoOpcode rb
45
F2 rd
4
34
8
endereçoOpcode n.u
5
F37
n.u
n.u
n.u
4
4
4
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Projeto: Implementação Multi-ciclo
Shiftleft 2
PCMux
0
1
RegistersW riteregister
W ritedata
Readdata 1
Readdata 2
Readregister 1
Readregister 2
Instruction[15– 11]
Mux
0
1
Mux
0
1
4
Instruction[15– 0]
S ignextend
3216
Instruction[25– 21]
Instruction[20– 16]
Instruction[15– 0]
Instructionregister
ALUcontrol
ALUresult
ALUZero
Memorydata
register
A
B
IorD
MemRead
MemWrite
MemtoReg
PCWriteCond
PCWrite
IRWrite
ALUOp
ALUSrcB
ALUSrcA
RegDst
PCSource
RegWrite
Control
Outputs
Op[5– 0]
Instruction[31-26]
Instruction [5– 0]
Mux
0
2
Jumpaddress [31-0]Instruction [25– 0] 26 28
Shiftleft 2
PC [31-28]
1
1 Mux
0
3
2
Mux
0
1ALUOut
Memory
MemData
Writedata
Address
Cin - CENTRODE INFORMÁTICA
UFPE
GRECO
Diagrama de estados
s0
s2s1 s3 s4 s5
s6
...
busca instrução
Executainstrução
próxima instrução
This document was created with Win2PDF available at http://www.daneprairie.com.The unregistered version of Win2PDF is for evaluation or non-commercial use only.