110
Projeto de Sistemas Digitais Edson Midorikawa (2016) Adaptado por Glauber (2018) PCS3225 PCS3225 - 2018 1

Projeto de Sistemas Digitais - edisciplinas.usp.br

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Projeto de Sistemas Digitais

Edson Midorikawa (2016)Adaptado por Glauber (2018)

PCS3225

PCS3225 - 2018 1

Tópicos

• Projeto de Sistemas Digitais– Metodologia de projeto

– Projeto Exemplo

– Projeto #1: Multiplicador

– Projeto #2: Máximo Divisor Comum

– Exercícios

• Referências: Haskell & Hanna, Digital Design using Digilent FPGA Boards – capítulo 9Gajski, Principles of digital design - Capítulo 8W.V. Ruggiero & C.B. Margi, Capítulo 1: Metodologia de Projeto Estruturado para Sistemas Digitais. Apostila de PCS2022

PCS3225 - 2018 2

Desenvolvimento de Circuitos Digitais

• Circuitos combinatórios e sequenciais

– Pequenos circuitos: portas lógicas, mapas de Karnaugh, tabelas verdade, somadores, etc;

– Circuitos maiores: componentes MSI (mux, decodificadores, etc), ULA,circuitos sequenciais, diagrama de transição de estados.

• Contudo, sistemas mais complexos precisam de técnicas de projeto mais abstratas e sistemáticas.

PCS3225 - 2018 3

Metodologia de Projeto Estruturado

• Uma metodologia apresenta uma sequência de atividades que levam a um desenvolvimento organizado de um sistema digital;

• Conceitos importantes:

– Divisão do sistema digital em fluxo de dados e unidade de controle;

– Concepção e organização hierárquica de módulos de projeto;

– Projeto voltado para a síntese do circuito.

PCS3225 - 2018 4

Projeto de Sistemas Digitais

• SISTEMA DIGITAL = Fluxo de Dados + Unidade de Controle

PCS3225 - 2018 5

Projeto de Sistemas Digitais

• Fluxo de Dados

– responsável pelo armazenamento, roteamento, combinação e processamento em geral dos DADOS.

– composto principalmente por:• registradores, contadores,

deslocadores;

• memórias;

• unidades funcionais gerais (somadores, ULAs, comparadores, etc).

– recebe COMANDOS da unidade de controle.

PCS3225 - 2018 6

Projeto de Sistemas Digitais

• Unidade de Controle

– Entradas:

• COMANDOS externos para o sistema digital, e

• Sinais de STATUS ou CONDIÇÃO vindos do fluxo de dados.

– Saídas:

• Sinais de CONTROLE para o fluxo de dados;

• Pode gerar SAÍDAS DE CONTROLE externas(e.g., fim ou pronto).

PCS3225 - 2018 7

Projeto de Sistemas Digitais

• Unidade de Controle

– responsável pelo sequenciamento das operações realizadas pelo sistema digital.

– Ações principais:

• Iniciar e terminar operações;

• Testar condições;

• Decidir ações futuras;

– modelo baseado em uma máquina de estados.

8PCS3225 - 2018

Metodologia de Projeto

• Passos do método

1. Obter uma descrição verbal do circuito;

2. Desenvolver um pseudocódigo do algoritmo;

3. Elaborar um diagrama de alto nível;

4. Selecionar elementos do fluxo de dados para as operações;

5. Identificar sinais de status e de controle dos elementos fluxo de dados;

6. Especificar a FSM da unidade de controle;

7. Verificar conexão do fluxo de dados e da unidade de controle (microarquitetura).

PCS3225 - 2018 9

Projeto Exemplo

PCS3225 - 2018 10

Metodologia de Projeto

1. Descrição verbal do circuito

PCS3225 - 2018 11

Obs.: ignora comandos M1 e M2 até que N1 e/ou N2 sejam acionados ao menos uma vez

Metodologia de Projeto

1. Descrição verbal do circuito

– Sinais da Interface de Entrada e Saída

PCS3225 - 2018 12

Metodologia de Projeto

2. Pseudocódigo do funcionamento do circuito

PCS3225 - 2018 13

2. entrada inicialde dados

3. Processamentodos comandos(obs.: precedência condizentecom a especificação)

1. Valores iniciaisdos registradores

Metodologia de Projeto

3. Diagrama ASM de alto nível

PCS3225 - 2018 14

Metodologia de Projeto

4. Elementos do fluxo de dados

PCS3225 - 2018 15

1. registradores

2. interconexão:R1, R2 IN(obs: mesmo fio)

3. interconexão:R3 R1, R2(obs.: mux)

Metodologia de Projeto

4. Elementos do fluxo de dados

PCS3225 - 2018 16

Metodologia de Projeto

5. Sinais de status e de controle do fluxo de dados

PCS3225 - 2018 17

Sinais de controle

Metodologia de Projeto

6. Detalhar ASM daunidade de controle

PCS3225 - 2018 18

ASM dealto nível

comandos e testes no ASM variáveis de controle e de estado do FD

Obs. (estado extra): trata temporização de mux/R3

Metodologia de Projeto

7. Conexão do fluxo de dados e da unidade de controle

PCS3225 - 2018 19

Sinais de controle

Sinais de entrada

Sinais de saída

Metodologia de Projeto

• Após a aplicação da metodologia, o projetista deve prosseguir o desenvolvimento do circuito digital com a sua implementação, usando por exemplo uma HDL.

• Em seguida, pode-se fazer a síntese do circuito em uma placa de desenvolvimento com FPGA (ex. Altera DE2).

PCS3225 - 2018 20

FPGA

Metodologia de Projeto• Trecho da descrição VHDL do componente principal.

PCS3225 - 2018 21

componentes FD e UC

Entidade do sistema digital

Metodologia de Projeto

• Trecho da descrição VHDL do fluxo de dados

PCS3225 - 2018 22

Metodologia de Projeto

• Trecho da descrição VHDL da unidade de controle

PCS3225 - 2018 23

Multiplicador – v1Projeto #1

PCS3225 - 2018 24

Projeto-Exemplo: Multiplicador

• Especificação: multiplicador

PCS3225 - 2018 25

Fonte: W.V. Ruggiero & C.B. Margi . Capítulo 1: Metodologia de Projeto Estruturado para Sistemas Digitais. Apostila de PCS2022.

Projeto-Exemplo: Multiplicador

1. Especificação: multiplicador(descrição textual ou verbal)

PCS3225 - 2018 26

Projeto-Exemplo: Multiplicador

2. Escolha do algoritmo demultiplicação

PCS3225 - 2018 27

• Após Start: carregar VA e VB, e inicializar resultado em zero

• Somar o valor do multiplicando ao resultado

• Subtrair 1 do multiplicador

• Verificar se multiplicador = 0

• Se sim, para; se não, continua loop de soma do multiplicando ao resultado

Projeto-Exemplo: Multiplicador

2. Escolha do algoritmo de multiplicação

PCS3225 - 2018 28

Definimos que o multiplicador utilizará o algoritmo

de multiplicação por somas sucessivas.

Exemplo:

5x3 = 3 + 3 + 3 + 3 + 3

Projeto-Exemplo: Multiplicador

2. Pseudocódigo do algoritmo de multiplicação

PCS3225 - 2018 29

• Após Start: carregar VA e VB, e inicializar resultado em zero

• Somar o valor do multiplicando ao resultado

• Subtrair 1 do multiplicador

• Verificar se multiplicador = 0

• Se sim, pára; se não, continua loop de soma do multiplicando

ao resultado

Multiplicador

3. Diagrama ASMde alto nível

PCS3225 - 2018 30

• Após Start: carregar VA e VB, e inicializar resultado em zero

• Somar o valor do multiplicando ao resultado

• Subtrair 1 do multiplicador

• Verificar se multiplicador = 0

• Se sim, pára; se não, continua loop de soma do multiplicando ao resultado

4. Elementos do fluxo de dados (FD)

PCS3225 - 2018 31

Multiplicador

• Após Start: carregar VA e VB, e inicilizar resultado em zero

• Somar o valor do multiplicando ao resultado

• Subtrair 1 do multiplicador

• Verificar se multiplicador = 0

• Se sim, pára; se não, continua loop de soma do multiplicando ao resultado

Multiplicador

• 4. Elementos do fluxo de dados (FD)

PCS3225 - 2018 32

1. Registradores (Ra, Rb: 4 bits ; result: 8 bits)

5b. interconexões: result <= somadorsomador <= (Ra, result)

2. Somador

3. Subtrator de 1

4. Detector de 0000

5c. interconexões: Rb <= subtratorsubtrator <= (Rb, 1)

5a. interconexões: Ra <= VaRb <= Vb

Mux em Rbresult: sinal de reset

Multiplicador

• 4. Fluxo de Dados

PCS3225 - 2018 33

Multiplicador

5. FD: sinais de status e controle

PCS3225 - 2018 34

rst: resetce: chip enable

Multiplicador

6. Detalhar ASM daunidade de controle

PCS3225 - 2018 35

zrb0

1

ceA <= ‘0’ ; ceB <= ‘0’ceR <= ‘0’ ; dcB <= ‘0’rstR <= ‘0’ ; ready <= ‘0’

ceA <= ‘1’ ; ceB <= ‘1’ceR <= ‘1’ ; dcB <= ‘0’rstR <= ‘1’ ; ready <= ‘0’

ceA <= ‘0’ ; ceB <= ‘0’ceR <= ‘0’ ; dcB <= ‘0’rstR <= ‘0’ ; ready <= ‘0’

ceA <= ‘0’ ; ceB <= ‘1’ceR <= ‘1’ ; dcB <= ‘1’rstR <= ‘0’ ; ready <= ‘0’

ceA <= ‘0’ ; ceB <= ‘0’ceR <= ‘0’ ; dcB <= ‘0’rstR <= ‘0’ ; ready <= ‘1’

Notaçãocom todosos sinaisexplícitos

Multiplicador

7. Conexão de FD e UC

PCS3225 - 2018 36

rstR

Multiplicador v1 –Implementação em VHDL

PCS3225 - 2018 37

Projeto de Sistemas Digitais

• Implementação em VHDL (fluxo de dados)

PCS3225 - 2018 38

Projeto de Sistemas Digitais

• Implementação em VHDL (fluxo de dados)

PCS3225 - 2018 39

Projeto de Sistemas Digitais

• Implementação em VHDL (fluxo de dados)

PCS3225 - 2018 40

PCS3225 - 2018

Projeto de Sistemas Digitais

• Implementação em VHDL (fluxo de dados)

41

Projeto de Sistemas Digitais

• Implementação em VHDL (fluxo de dados)

PCS3225 - 2018 42

Projeto de Sistemas Digitais

• Implementação em VHDL (unidade de controle)

PCS3225 - 2018 43

Projeto de Sistemas Digitais

• Implementação em VHDL (unidade de controle)

PCS3225 - 2018 44

Projeto de Sistemas Digitais

• Implementação em VHDL (unidade de controle)

PCS3225 - 2018 45

Projeto de Sistemas Digitais

• Implementação em VHDL (unidade de controle)

PCS3225 - 2018 46

Multiplicador – v2Projeto #2

PCS3225 - 2018 47

Projeto-Exemplo: Multiplicador-v2

• Especificação: multiplicador

PCS3225 - 2018 48

RESET

READY

Projeto-Exemplo: Multiplicador-v21. Especificação: multiplicador

(descrição textual ou verbal)

PCS3225 - 2018 49

Colocar multiplicando na via de dados de entrada ( IN );

Ativar o sinal ENTRA_MULTIPLICANDO;

Colocar multiplicador na via de dados de entrada;

Ativar o sinal ENTRA_MULTIPLICADOR;

Acionar o botão INICIAR para a execução da multiplicação binária;

Resultado é colocado na via de dados de saída (OUT) e READY é colocado em 1

Usar comando RESET para reinicializar sistema

RESET

READY

Projeto-Exemplo: Multiplicador-v2

2. Escolha do algoritmo: soma e deslocamento

x 1

x 0

x 1

x 1

PCS3225 - 2018 50

2. Escolha do algoritmo: soma e deslocamentoI. Produto parcial inicialmente em 0 (zero)

II. Um bit do multiplicador processado por vez, começando pelo bit

menos significativo

a) Se bit for 1: multiplicando somado a produto parcial; em

seguida deslocamento para a direita do produto parcial

b) Se bit for 0: deslocamento para a direita do produto parcial

c) O bit de vai-um (carry) do somador: armazenado e usado

como entrada do registrador-deslocador com o produto parcial;

d) Soma realizada apenas nos n bits mais significativos de

produto parcial.

e) Repetir até os 4 bits do multiplicador serem processados

PCS3225 - 2018 51

Projeto-Exemplo: Multiplicador-v2

2. Pseudocódigo: soma e deslocamentoint4 RA, RB; //RA: multiplicando, RB: multiplicador (assumindo já fornecidos)

int4 RPH, RPL = 0000; //RP: produto parcial (High e Low)

bit C = 0; //carry

for (cont = 4 ; cont > 0 ; cont--) {

//verifica bit menos significativo (lsb) de RB

if ( lsb(RB) == 1) { RPH += RA; C = Cout; }

else { C = 0; }

//deslocamento p/ direita, com entrada C

RPH || RPL = shiftRight (RPH || RPL, C);

//deslocamento p/ direita, com entrada qualquer

RB = shiftRight (RB, *);

}

// Neste ponto, temos Ready = 1

PCS3225 - 2018 52

Projeto-Exemplo: Multiplicador-v2

Cabe uma otimização aqui: RB = RPL

2. Pseudocódigo: soma e deslocamentoint4 RA, RB; //RA: multiplicando, RB: multiplicador (assumindo já fornecidos)

int4 RPH = 0000; //RPH: produto parcial (High); RPL = RB

bit C = 0; //carry

for (cont = 4 ; cont > 0 ; cont--) {

if ( lsb(RB) == 1) { RPH += RA; C = Cout; }

else { C = 0; }

RPH || RB = shiftRight (RPH || RB, C);

}

// Neste ponto, temos Ready = 1

PCS3225 - 2018 53

Projeto-Exemplo: Multiplicador-v2

Otimização : RB = RPL

Projeto-Exemplo: Multiplicador-v2

3. Diagrama ASM de alto nível

PCS3225 - 2018 54

ENTRA_MULTIPLICANDO (EM1):

carrega IN em registrador A

ENTRA_MULTIPLICANDOR (EM2):

carrega IN em registrador B

Acionar o botão INICIAR (INIT)

para a execução da multiplicação

binária

O resultado é colocado na via de

dados de saída (OUT).

Usar comando RESET (RST) para

reinicializar sistema

Idle

EM1

EM2

RST

INIT

RA <= IN

RB <= IN

RA , RB <= 0

Multiplica

Projeto-Exemplo: Multiplicador-v2

3. Diagrama ASM de alto nível

PCS3225 - 2018 55

int4 RA, RB; // (já fornecidos)

int4 RPH = 0000; //RP: produto parcial

bit C = 0; //carry

for (cont = 4 ; cont > 0 ; cont--) {

if ( lsb(RB) == 1) { RPH += RA; C = Cout; }

else{C = 0 ;}

RPH || RB = shiftRight (RPH || RB, C);

}

// Neste ponto, temos Ready = 1

RPH <= 0cont <= 4

Mul0

LSB(RB)

cont = 0

RPH <= RPH + RA

C <= Cout

C || RPH || RB >> 1cont --

0

1

0

Idle

(...)

Mul1

Mul2

1Ready <= 1

RA e RB fornecidos

C <= 0

Problema!

Projeto-Exemplo: Multiplicador-v2

3. Diagrama ASM de alto nível

PCS3225 - 2018 56

int4 RA, RB; // (já fornecidos)

int4 RPH = 0000; //RP: produto parcial

bit C = 0; //carry

for (cont = 4 ; cont > 0 ; cont--) {

if ( lsb(RB) == 1) { RPH += RA; C = Cout; }

else{C = 0 ;}

RPH || RB = shiftRight (RPH || RB, C);

}

// Neste ponto, temos Ready = 1

RPH <= 0cont <= 3

Mul0

LSB(RB)

cont = 0

RPH <= RPH + RA

C <= Cout

C || RPH || RB >> 1cont --

0

1

0

Idle

(...)

Mul1

Mul2

1Ready <= 1

RA e RB fornecidos

C <= 0

4. Elementos do fluxo de dados (FD)

PCS3225 - 2018 57

Projeto-Exemplo: Multiplicador-v2

Mult_UC

INICIAR

Mult_FD

IN

OUT

ENTRA_MULTIPLICANDO

ENTRA_MULTIPLICADOR

Ready

Sinais de controle

Sinais de condição

• 4. Elementos do fluxo de dados (FD)– Simplificação, assumindo RA e RB fornecidos – Solução completa incluiria MUXes adicionais (e.g., RB)

int4 RA, RB; // (já fornecidos)

int4 RPH = 0000; //RP: produto parcial

bit C = 0; //carry

for (cont = 4 ; cont > 0 ; cont--) {

if ( lsb(RB) == 1) { RPH += RA; C = Cout; }

else{C = 0 ;}

RPH || RB = shiftRight (RPH || RB, C);

} // Neste ponto, temos Ready = 1

Multiplicador

58

1. Registrador RA: 4 bits

3. Flip Flop

4. Contador decrescente

5. Detector de 0

5a. interconexões: somador <= (RPH, RA)RPH <= somador (paralela)C <= Cout (somador)

2. Registradores-DeslocadoresRB , RPH: : 4 bits

6. Somador

RPH, C: sinal de resetcont: inicialização em 45b. interconexões: RPH <= C (serial)

RB <= LSB(RPH) (serial)PCS3225 - 2018

Multiplicador

4. Fluxo deDados

PCS3225 - 2018 59

RPH

cont

RA

RB (=RPL)C

OUT

IN

ldCtr

zeroc

lsb

clrAldAclkA

clrCldCclkC

D

shiftPldPclkP

shiftBldBclkB

4 bits4 bits

4 bits 4 bits

4 bits 4 bits

1 bit

Multiplicador

5. FD: sinais de status e controle

PCS3225 - 2018 60

RPH

cont

RA

RB (=RPL)C

OUT

IN

zeroCtr

lsb

clrAldAclkA

clrCldCclkC

D

shiftPclrPldPclkP

shiftBclrBldBclkB

4 bits4 bits

4 bits 4 bits

4 bits 4 bits

1 bit

ldCtrenCtr

6. Detalhar ASM daunidade de controle

Multiplicador

PCS3225 - 2018 61

RPH <= 0cont <= 4

Mul0

LSB(RB)

cont = 0

RPH <= RPH + RA

C <= Cout

C || RPH || RB >> 1cont --

0

1

0

Idle

(...)

Mul1

Mul2

1Ready <= 1

RA e RB fornecidos

C <= 0

clrPldCtr

Mul0

lsb

zeroCtr

ldPldC

shiftP, shiftBenCtr

0

1

0

Idle

(...)

Mul1

Mul2

1Ready

RA e RB fornecidos

clrC

Notação: apenas

sinais em 1

6. Detalhar ASM daunidade de controle

Multiplicador

PCS3225 - 2018 62

RPH <= 0cont <= 4

Mul0

LSB(RB)

cont = 0

RPH <= RPH + RA

C <= Cout

C || RPH || RB >> 1cont --

0

1

0

Idle

(...)

Mul1

Mul2

1Ready <= 1

RA e RB fornecidos

C <= 0

clrPldCtr

Mul0

lsb

zeroCtr

ldPldC

shiftP, shiftBenCtr

0

1

0

Idle

(...)

Mul1

Mul2

1Ready

RA e RB fornecidos

clrC

Notação: apenas

sinais em 1

Multiplicador

7. Conexão de FD e UC

PCS3225 - 2018 63

Mult_UC

INICIAR

Mult_FD

IN

OUT

ENTRA_MULTIPLICANDO

ENTRA_MULTIPLICADOR

Ready

Sinais de controle

Sinais de condição

(lsb, zeroCtr)

(clrP , clrC , ldCtr, ldP, ldC, shiftP, shiftB, enCtr)

EXERCÍCIOS

PCS3225 - 2018 64

1 - Máximo Divisor Comum

• Circuito que calcula o máximo divisor comum de dois números inteiros positivos a e b.

PCS3225 - 2018 65

Máximodivisorcomum

a_en

b_en

inicio

clk

mdc

fim

Referência: D’Amore, VHDL: descrição e síntese de circuitos digitais, 2ª edição, 2012 . Capítulo 16.

1 - Máximo Divisor Comum

• Algoritmo de Euclides:

int a, b; //entradas

while ( a != b) {

if ( a > b) {a = a – b ; }

else {b = b – a ;}

}

mdc = a;

PCS3225 - 2018 66

Ex.: mdc (15,10)

67PCS3225 - 2018

Diagrama ASM de alto nível

fim ¬ 0a ¬ a_enb ¬ b_en

iniciar=1? não

espera

tes_a_b

sim

a ¹ b?

fim ¬ 1mdc ¬ a

não

a ¬ a - b

sim

a_igl_b

a_maior_b

a > b? sim não

b ¬ b - a

a_menor_b

Máximo Divisor Comum

• Vamos analisar:

– as operações executadas;

– os recursos necessários para realizá-las;

– as etapas necessárias para realizá-las.

PCS3225 - 2018 68

PCS3225 - 2018 69

PCS3225 - 2018 70

PCS3225 - 2018 71

PCS3225 - 2018 72

PCS3225 - 2018 73

PCS3225 - 2018 74

Máximo Divisor Comum

• Fluxo de dados

PCS3225 - 2018 75

sinais de status

s1

h1

s2

h2

x1

sinais de comando

saída

entradas

Máximo Divisor Comum

• Fluxo de dados eUnidade de controle

PCS3225 - 2018 76

diferente maior

unidade de controle

Máximo Divisor Comum

• Depois de definidos os módulos do fluxo de dados:

– devemos estabelecer a sequência de operações do conjunto (como o processamento será executado);

– responsabilidade da unidade de controle.

• O projeto completo define as :

– operações executadas: fluxo de dados; e

– mudanças de estados da máquina: unidade de controle.

PCS3225 - 2018 77

78PCS3225 - 2018

Diagrama ASM de alto nível

fim ¬ 0a ¬ a_enb ¬ b_en

iniciar=1? não

espera

tes_a_b

sim

a ¹ b?

fim ¬ 1mdc ¬ a

não

a ¬ a - b

sim

a_igl_b

a_maior_b

a > b? sim não

b ¬ b - a

a_menor_b

79PCS3225 - 2018

Diagrama ASM de alto nível ASM

0 0

1 1

fluxo de dados

80PCS3225 - 2018

Diagrama ASM de alto nível ASM

está implícitofim=0, s1=0 e s2=0

81PCS3225 - 2018

Diagrama ASM de alto nível

fim ¬ 0a ¬ a_enb ¬ b_en

iniciar=1? não

espera

tes_a_b

sim

a ¹ b?

fim ¬ 1mdc ¬ a

não

a ¬ a - b

sim

a_igl_b

a_maior_b

a > b? sim não

b ¬ b - a

a_menor_b

PCS3225 - 2018 82

h1h2

iniciar 0

espera

tes_a_b

1

diferente

fimx1

0

s1h1

1

a_igl_b

a_maior_b

maior 1 0

s2h2

a_menor_b

Diagrama ASM da Unidade de controle

PCS3225 - 2018 83

Máximo Divisor Comum

Projeto Completo

2 - Raiz Inteira

• Projetar circuito de cálculo da raiz quadrada, baseado no algoritmo abaixo.

PCS3225 - 2018 84

DICA: veja vídeo em https://www.youtube.com/watch?v=38md9YNPee0

2 - Raiz Inteira

• Exemplo

PCS3225 - 2018 85

sqrt(51)= ?

Raiz inteira

• Pseudocódigo e ASM de alto nível

– O projeto começa com a elaboração de um diagrama ASM de alto nível que modela o funcionamento do circuito;

– Considere um sinal de entrada go que inicia o cálculo da raiz quadrada;

– Como é este diagrama?

PCS3225 - 2018 86

sqrt

go

aresultado

Raiz inteira

• ASM de alto nível

PCS3225 - 2018 87

condições iniciaiscarrega entrada

go=1

square £ a

square += deltadelta += 2

resultado = delta/2 - 1

não

sim

nãosim

Raiz Inteira

• Fluxo de dados

– Quais os elementos do fluxo de dados?

PCS3225 - 2018 88

Raiz Inteira

• Fluxo de Dados

PCS3225 - 2018 89

Raiz inteira

• Fluxo de dados

PCS3225 - 2018 90

Raiz inteira

• Fluxo de dados

PCS3225 - 2018 91

Raiz inteira• Fluxo de dados

–Como inicializar, com valores adequados, as variáveis square e delta?

PCS3225 - 2018 92

Raiz inteira

• Unidade de controle

– A unidade de controle pode ser projetada a partir de um diagrama de transição de estados;

– Considere um sinal de entrada go que inicia o cálculo da raiz quadrada;

– Como é este diagrama?

PCS3225 - 2018 93

sqrt

go

aresultado

PCS3225 - 2018 94

condições iniciaiscarrega entrada

go=1

square £ a

square += deltadelta += 2

resultado = delta/2 - 1

não

sim

nãosim

Raiz inteira

• Conexão FD e UC

PCS3225 - 2018 95

APÊNDICE: VHDL DAS RESPOSTAS DOS EXERCÍCIOS

PCS3225 - 2018 96

Máximo Divisor Comum

• Codificação em VHDL

– Descrição comportamental.

– Observação: o autor da referência adota o estilo de codificação de máquina de estados usando apenas 1 processo.

PCS3225 - 2018 97

PCS3225 - 2018 98

PCS3225 - 2018 99

PCS3225 - 2018 100

PCS3225 - 2018 101

PCS3225 - 2018 102

PCS3225 - 2018 103

Máximo Divisor Comum

• Código VHDL final

PCS3225 - 2018 104

PCS3225 - 2018 105

PCS3225 - 2018 106

Raiz inteira

• VHDL(componente principal)

PCS3225 - 2018 107

Raiz inteira• VHDL

(componente principal)

PCS3225 - 2018 108

Raiz inteira

• VHDL(componente principal)

PCS3225 - 2018 109

Raiz inteira

• VHDL

–Completar a descrição VHDL do projeto, com a escrita da descrição:

• do fluxo de dados (SQRTpath) e

• da unidade de controle (SQRTctrl).

PCS3225 - 2018 110