Buscar

17-Sistemas Digitais II - Poli - Exemplo de projeto de um multiplicador (slides)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 56 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 56 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 56 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

11/10/2017
1
Projeto de Sistemas Digitais
Edson Midorikawa
PCS3225
PCS3225 - 2016 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 9
Gajski, Principles of digital design - Capítulo 8
W.V. Ruggiero & C.B. Margi, Capítulo 1: Metodologia de Projeto 
Estruturado para Sistemas Digitais. Apostila de PCS2022
PCS3225 - 2016 2
11/10/2017
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, registradores, 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 - 2016 3
Desenvolvimento de Circuitos Digitais
• Um método sistemático deve apresentar as 
seguintes características:
– Estratégia top-down (abstrato → detalhes);
– Separação entre módulo controlador (unidade de 
controle) e módulo controlado (fluxo de dados);
– Desenvolver uma arquitetura do sistema global 
em blocos antes de proceder no desenvolvimento 
dos detalhes do hardware.
PCS3225 - 2016 4
11/10/2017
3
Metodologia de Projeto Estruturado
• O termo metodologia de projeto se refere a 
um processo sistemático a ser seguido pela 
equipe de desenvolvimento para o projeto, 
verificação e preparo para produção de um 
produto.
• Atende a requisitos de projeto:
– Funcionais (funções);
– Não-funcionais (custo, tempo de projeto, 
tamanho, consumo de energia, desempenho, etc).
PCS3225 - 2016 5
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 - 2016 6
11/10/2017
4
Projeto de Sistemas Digitais
• SISTEMA DIGITAL = 
Fluxo de Dados + Unidade de Controle
PCS3225 - 2016 7
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 - 2016 8
11/10/2017
5
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 - 2016 9
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.
10PCS3225 - 2016
11/10/2017
6
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 ASM 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. Elaborar o diagrama ASM da unidade de controle;
7. Verificar conexão do fluxo de dados e da unidade de 
controle (microarquitetura).
PCS3225 - 2016 11
Projeto Exemplo
PCS3225 - 2016 12
11/10/2017
7
Metodologia de Projeto
1. Descrição verbal do circuito
PCS3225 - 2016 13
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 - 2016 14
11/10/2017
8
Metodologia de Projeto
2. Pseudocódigo do funcionamento do circuito
PCS3225 - 2016 15
2. entrada inicial
de dados
3. Processamento
dos comandos
(obs.: precedência condizente
com a especificação)
1. Valores iniciais
dos registradores
Metodologia de Projeto
3. Diagrama 
ASM de 
alto nível
PCS3225 - 2016 16
11/10/2017
9
Metodologia de Projeto
4. Elementos do fluxo de dados
PCS3225 - 2016 17
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 - 2016 18
11/10/2017
10
Metodologia de Projeto
5. Sinais de status e de controle do fluxo de dados
PCS3225 - 2016 19
Sinais de controle
Metodologia de Projeto
6. Detalhar ASM da
unidade de controle
PCS3225 - 2016 20
ASM de
alto 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
11/10/2017
11
Metodologia de Projeto
7. Conexão do fluxo de dados e da unidade de 
controle
PCS3225 - 2016 21
Sinais de 
controle
Sinais de 
controle
Sinais de 
entrada
Sinais de 
entrada
Sinais de 
saída
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 - 2016 22
FPGA
11/10/2017
12
Metodologia de Projeto
• Trecho da descrição VHDL do componente principal.
PCS3225 - 2016 23
componentes FD e UC
Entidade do 
sistema digital
Metodologia de Projeto
• Trecho da descrição VHDL do fluxo de dados
PCS3225 - 2016 24
11/10/2017
13
Metodologia de Projeto
• Trecho da descrição VHDL da unidade de controle
PCS3225 - 2016 25
Multiplicador – v1
Projeto #1
PCS3225 - 2016 26
11/10/2017
14
Projeto-Exemplo: Multiplicador
• Especificação: multiplicador
PCS3225 - 2016 27
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 - 2016 28
11/10/2017
15
Projeto-Exemplo: Multiplicador
2. Escolha do algoritmo de
multiplicação
PCS3225 - 2016 29
• 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
Projeto-Exemplo: Multiplicador
2. Escolha do algoritmo de multiplicação
PCS3225 - 2016 30
Definimos que o multiplicador utilizará o algoritmo
de multiplicação por somas sucessivas.
Exemplo:
5x3 = 3 + 3 + 3 + 3 + 3
11/10/2017
16
Projeto-Exemplo: Multiplicador
2. Pseudocódigo do algoritmo de multiplicação
PCS3225 - 2016 31
• 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
3. Diagrama ASM
de alto nível
PCS3225 - 2016 32
• Após Start: carregar VA e VB, e inicilizar 
resultado em zero
• Somar o valor do multiplicando aoresultado
• Subtrair 1 do multiplicador
• Verificar se multiplicador = 0 
• Se sim, pára; se não, continua loop de 
soma do multiplicando ao resultado
11/10/2017
17
4. Elementos do fluxo de dados (FD)
PCS3225 - 2016 33
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 - 2016 34
1. Registradores 
(Ra, Rb: 4 bits ; result: 8 bits)
5b. interconexões: result <= somador
somador <= (Ra, result)
2. Somador
3. Subtrator de 1
4. Detector de 0000
5c. interconexões: Rb <= subtrator
subtrator <= (Rb, 1)
5a. interconexões: Ra <= Va
Rb <= Vb
Mux em Rb
result: sinal 
de reset
11/10/2017
18
Multiplicador
• 4. Fluxo de 
Dados
PCS3225 - 2016 35
Multiplicador
5. FD: sinais 
de status e 
controle
PCS3225 - 2016 36
rst: reset
ce: chip enable
11/10/2017
19
Multiplicador
6. Detalhar ASM da
unidade de controle
PCS3225 - 2016 37
zrb
0
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ção
com todos
os sinais
explícitos
Multiplicador
7. Conexão de FD e UC
PCS3225 - 2016 38
rstR
11/10/2017
20
Multiplicador v1 –
Implementação em VHDL
PCS3225 - 2016 39
Projeto de Sistemas Digitais
• Implementação em VHDL (fluxo de dados)
PCS3225 - 2016 40
11/10/2017
21
Projeto de Sistemas Digitais
• Implementação em VHDL (fluxo de dados)
PCS3225 - 2016 41
Projeto de Sistemas Digitais
• Implementação em VHDL (fluxo de dados)
PCS3225 - 2016 42
11/10/2017
22
PCS3225 - 2016
Projeto de Sistemas Digitais
• Implementação em VHDL (fluxo de dados)
43
Projeto de Sistemas Digitais
• Implementação 
em VHDL 
(fluxo de dados)
PCS3225 - 2016 44
11/10/2017
23
Projeto de Sistemas Digitais
• Implementação em VHDL (unidade de 
controle)
PCS3225 - 2016 45
Projeto de Sistemas Digitais
• Implementação em VHDL 
(unidade de controle)
PCS3225 - 2016 46
11/10/2017
24
Projeto de Sistemas Digitais
• Implementação em VHDL (unidade de controle)
PCS3225 - 2016 47
Projeto de Sistemas Digitais
• Implementação em VHDL 
(unidade de controle)
PCS3225 - 2016 48
11/10/2017
25
Multiplicador – v2
Projeto #2
PCS3225 - 2016 49
Projeto-Exemplo: Multiplicador-v2
• Especificação: multiplicador
PCS3225 - 2016 50
RESET
READY
11/10/2017
26
Projeto-Exemplo: Multiplicador-v2
1. Especificação: multiplicador
(descrição textual ou verbal)
PCS3225 - 2016 51
� 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 - 2016 52
11/10/2017
27
2. Escolha do algoritmo: soma e deslocamento
I. 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 - 2016 53
Projeto-Exemplo: Multiplicador-v2
2. Pseudocódigo: soma e deslocamento
int4 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 - 2016 54
Projeto-Exemplo: Multiplicador-v2
Cabe uma otimização 
aqui: RB = RPL
11/10/2017
28
2. Pseudocódigo: soma e deslocamento
int4 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 - 2016 55
Projeto-Exemplo: Multiplicador-v2
Otimização : RB = RPL
Projeto-Exemplo: Multiplicador-v2
3. Diagrama ASM de 
alto nível
PCS3225 - 2016 56
� 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
11/10/2017
29
Projeto-Exemplo: Multiplicador-v2
3. Diagrama ASM de 
alto nível
PCS3225 - 2016 57
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 <= 0
cont <= 4
Mul0
LSB(RB)
cont = 0
RPH <= RPH + RA
C <= Cout
C || RPH || RB >> 1
cont --
0
1
0
Idle
(...)
Mul1
Mul2
1
Ready <= 1
RA e RB fornecidos
C <= 0
4. Elementos do fluxo de dados (FD)
PCS3225 - 2016 58
Projeto-Exemplo: Multiplicador-v2
Mult_UC
INICIAR
Mult_FD
IN
OUT
ENTRA_MULTIPLICANDO
ENTRA_MULTIPLICADOR
Ready
Sinais de controle
Sinais de condição
11/10/2017
30
• 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
59
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-Deslocadores
RB , RPH: : 4 bits
6. Somador
RPH, C: sinal de reset
cont: inicialização em 45b. interconexões: RPH <= C (serial)
RB <= LSB(RPH) (serial)
Multiplicador
4. Fluxo de
Dados
PCS3225 - 2016 60
RPH
cont
RA
RB (=RPL)C
OUT
IN
ldCtr
zeroc
lsb
clrA
ldA
clkA
clrC
ldC
clkC
D
shiftP
ldP
clkP
shiftB
ldB
clkB
4 bits4 bits
4 bits 4 bits
4 bits 4 bits1 bit
11/10/2017
31
Multiplicador
5. FD: sinais 
de status e 
controle
PCS3225 - 2016 61
RPH
cont
RA
RB (=RPL)C
OUT
IN
zeroCtr
lsb
clrA
ldA
clkA
clrC
ldC
clkC
D
shiftP
clrP
ldP
clkP
shiftB
clrB
ldB
clkB
4 bits4 bits
4 bits 4 bits
4 bits 4 bits
1 bit
ldCtr
enCtr
6. Detalhar ASM da
unidade de controle
Multiplicador
PCS3225 - 2016 62
RPH <= 0
cont <= 4
Mul0
LSB(RB)
cont = 0
RPH <= RPH + RA
C <= Cout
C || RPH || RB >> 1
cont --
0
1
0
Idle
(...)
Mul1
Mul2
1
Ready <= 1
RA e RB fornecidos
C <= 0
clrP
ldCtr
Mul0
lsb
zeroCtr
ldP
ldC
shiftP, shiftB
enCtr
0
1
0
Idle
(...)
Mul1
Mul2
1
Ready
RA e RB fornecidos
clrC
Notação: 
apenas
sinais em 1
11/10/2017
32
Multiplicador
7. Conexão de FD e UC
PCS3225 - 2016 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 - 2016 64
11/10/2017
33
1 - Máximo Divisor Comum
• Circuito que calcula o máximo divisor comum 
de dois números inteiros a e b.
PCS3225 - 2016 65
Máximo
divisor
comum
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 - 2016 66
Ex.: mdc (15,10)
11/10/2017
34
2 - Raiz Inteira
• Projetar circuito de cálculo da raiz quadrada, 
baseado no algoritmo abaixo.
PCS3225 - 2016 67
DICA: veja vídeo em https://www.youtube.com/watch?v=38md9YNPee0
2 - Raiz Inteira
• Exemplo
PCS3225 - 2016 68
sqrt(51)= ?
11/10/2017
35
APÊNDICE: POTENCIAIS RESPOSTAS
DOS EXERCÍCIOS
PCS3225 - 2016 69
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 - 2016 70
11/10/2017
36
PCS3225 - 2016 71
PCS3225 - 2016 72
11/10/2017
37
PCS3225 - 2016 73
PCS3225 - 2016 74
11/10/2017
38
PCS3225 - 2016 75
PCS3225 - 2016 76
11/10/2017
39
Máximo Divisor Comum
• Fluxo de dados
PCS3225 - 2016 77
sinais de status
s1
h1
s2
h2
x1
sinais de 
comando
saída
entradas
Máximo Divisor Comum
• Fluxo de dados e
Unidade de controle
PCS3225 - 2016 78
diferente maior
unidade de controle
11/10/2017
40
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 - 2016 79
PCS3225 - 2016 80
11/10/2017
41
PCS3225 - 2016 81
Fluxograma
Diagrama de Transição
de Estados
82PCS3225 - 2016
Diagrama ASM de alto nível
11/10/2017
42
83PCS3225 - 2016
Diagrama ASM de alto nível → ASM
0 0
1 1
fluxo de dados
84PCS3225 - 2016
Diagrama ASM de alto nível → ASM
está implícito
fim=0, s1=0 e s2=0
11/10/2017
43
PCS3225 - 2016 85
Diagrama ASM da Unidade de controle
PCS3225 - 2016 86
Máximo Divisor Comum
Projeto Completo
11/10/2017
44
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 - 2016 87
PCS3225 - 2016 88
11/10/2017
45
PCS3225 - 2016 89
PCS3225 - 2016 90
11/10/2017
46
PCS3225 - 2016 91
PCS3225 - 2016 92
11/10/2017
47
PCS3225 - 2016 93
Máximo Divisor Comum
• Código VHDL final
PCS3225 - 2017 94
11/10/2017
48
PCS3225 - 2016 95
PCS3225 - 2016 96
11/10/2017
49
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 - 2016 97
sqrt
go
a
resultado
Raiz inteira
• ASM de alto nível
PCS3225 - 2016 98
11/10/2017
50
Raiz Inteira
• Fluxo de dados
– Quais os elementos do fluxo de dados?
PCS3225 - 2016 99
Raiz Inteira
• Fluxo de Dados
PCS3225 - 2016 100
11/10/2017
51
Raiz inteira
• Fluxo de dados
PCS3225 - 2016 101
Raiz inteira
• Fluxo de dados
PCS3225 - 2016 102
11/10/2017
52
Raiz inteira
• Fluxo de dados
– Como inicializar, com valores adequados, as 
variáveis square e delta?
– Como proporcionar valores iniciais, para 
square e delta? 
PCS3225 - 2016 103
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 - 2016 104
sqrt
go
a
resultado
11/10/2017
53
Raiz inteira
• Unidade de
controle
PCS3225 - 2016 105
diagrama de transição
de estados
resultado=
delta/2-1
Raiz inteira
• ASM
PCS3225 - 2016 106
11/10/2017
54
Raiz inteira
• Conexão FD e UC
PCS3225 - 2016 107
Raiz inteira
• VHDL
(componente principal)
PCS3225 - 2016 108
11/10/2017
55
Raiz inteira
• VHDL
(componente principal)
PCS3225 - 2017 109
Raiz inteira
• VHDL
(componente principal)
PCS3225 - 2016 110
11/10/2017
56
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 - 2016 111

Outros materiais

Outros materiais