1 1 Cin - CENTRO DE INFORMÁTICA UFPE GRECO VHDL Edna Barros Grupo de Engenharia da Computação Centro de Informática -UFPE Cin - CENTRO DE INFORMÁTICA UFPE GRECO Especificação Diagrama de Gajski Cin - CENTRO DE INFORMÁTICA UFPE GRECO Introdução a VHDL Descrição VHDL especifica: • visão externa (entity) – nome – interface entity COMPARE is port (A,B: in bit; C: out bit); end COMPARE A B C bit bit bit • visão interna (architecture) – estrutura – comportamento • dataflow • algoritmo
20
Embed
VHDL - cin.ufpe.brif115/slides/infra-hw-vhdl-fsm-f3.pdf · 1 1 Cin-CENTRO DE INFORMÁTICA UFPE GRECO VHDL Edna Barros Grupo de Engenharia da Computação Centro de Informática -UFPE
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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;
• 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?
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
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);
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.