20
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

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

Embed Size (px)

Citation preview

Page 1: 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

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

Page 2: 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

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

Page 3: 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

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;

Page 4: 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

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

Page 5: 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

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

Page 6: 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

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

Page 7: 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

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;

Page 8: 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

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];

Page 9: 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

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

Page 10: 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

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

Page 11: 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

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

Page 12: 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

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)

Page 13: 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

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

Page 14: 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

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

Page 15: 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

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¢

10¢

D

D

reutilizar estadossempre que possível Tabela de estados simbólicos

Present State

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

Page 16: 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

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

Page 17: 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

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;

Page 18: 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

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¢

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¢

10¢

D

[0]

[0]

[0]

D

N D + Reset

Reset

Reset

N D

N D

MealyMachine

Page 19: 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

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

Page 20: 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 was created with Win2PDF available at http://www.daneprairie.com.The unregistered version of Win2PDF is for evaluation or non-commercial use only.