Vous êtes sur la page 1sur 8

EM604

2ª Avaliação
Implementação de um divisor digital

O sistema divisor manuseia dados de 5 bits (Figuras 1, partes a e b) e deve ser modelado no ambiente
Quartus II da Altera. Considere o circuito divisor de números naturais binários descrito na proposta,
composto por um bloco de dados (Figura 1 b), denominado aqui de “Divisor”, um bloco registrador
(composto por 2 registradores paralelos de 5 bits com função de exteriorizar o resultado somente ao fim
do processamento dos dados pelo circuito, um contador para verificar a fase de operação na qual o
circuito se encontra, e uma máquina de estados de controle (Figura 2). Todos os blocos recebem o
mesmo sinal “rst” e “clk”. Para desenvolvimento e acompanhamento da correta operação pode ser
necessário exteriorizar mais sinais do circuito, visando o acompanhamento da operação do circuito no
simulador. Será avaliada apenas a implementação em Verilog e validação por simulação.

Pode ser necessário a inclusão de mais sinais de controle.


Figura 1 - Divisor – Símbolo inserido no sistema a ser criado composto adicionalmente por dois registradores de
saída, ou um bloco registrador, um contador e uma máquina de estados.

Com o intuito de auxilio no desenvolvimento, foi implementada uma solução, e são apresentados neste texto
algumas telas do software Quartus que ilustram resultados parciais obtidos durante o desenvolvimento da
solução. Utilize esses resultados para auxilio do entendimento da operação do circuito.
IMPORTANTE: Não inicie o desenvolvimento sem entender o algoritmo. Para tal, fazendo análise manual do
fluxo de dados no circuito, preencha a Tabela da Figura 8.
São fornecidos os códigos dos registradores P e A e da máquina de controle utilizada na solução implementada.

Será avaliado:
- Explicação da operação e código de cada bloco do circuito, inclusive os fornecidos (5 pontos);
- Apresentação da simulação do circuito e justificativas em cada instante do porque os sinais demonstram a
operação correta da arquitetura (5 pontos);
Circuito funcional do divisor

Principais sinais de controle do divisor


Figura 2 – Circuito do Divisor

Figura 3 – Diagrama de Estados do circuito de controle interno do divisor


O circuito divide dois números de “nbits” (5 bits), gerando um quociente e um resto de “nbits” bits.
Operação do circuito:
 O sinal “rst” deve fazer que a saída de todos os registradores assumam valor “0”.
 Cada registrador deve prever um sinal de habilitação de seu funcionamento (enable) após verificado
a presença da borda de interesse do sinal de sincronização (clk).
 Os dados A (dividendo) e B (divisor) devem ser carregados em momentos diferentes e com
habilitação pelos sinais loadA e loadB.
 No estado inicio: O sinal “Ini_div” assume valor 1 e ocorre o carregamento dos registradores A
(dividendo) e B (divisor), bem como o registrador P continua com sua saída em “0”, neste estado
também é realizado a inicialização do contador de passos (denominar esse contador de “Cont”).
 Para verificar a implementação dos registradores, sugere-se exteriorizar todos os bits de cada vetor.
Já no momento da utilização na arquitetura, utilizar somente os sinais necessários.
 No estado desloca: desloca a concatenação de RegP com regA para a esquerda 1 bit (uso do sinal
Desloc);
 No estado subtrai: subtrai regB de regP e armazena o resultado em regP (uso do sinal ctrlS);
 No estado escquoc: se a subtração do passo anterior resulta um número negativo, armazena 0 no bit
menos significativo de regA, senão armazena 1 no mesmo bit (verificar se a implementação da
realimentação do MSB do registrador P com o uso de um inversor está correta, caso contrário,
corrigir o circuito (justificar);
 No estado restaura: se a subtração resultou em um valor negativo em regP, restaura o valor anterior
de regP, somando regB com regP (uso do sinal ctrlS);
 No estado fim: o sinal fim_div recebe ‘1’.
Obs:
 A implementação final deverá conter a chamada dos blocos descritos em arquivos separados e
descrição do somador utilizando um comando corrente no código. Os blocos devem ser validados
individualmente, inclusive o somador. Assim a descrição do divisor será composta pela interligação
dos registradores A e P (formando um registrador de deslocamento em destaque na Figura 3), um
registrador B, uma linha descrevendo o somador programável, uma memória e a máquina de estado.
 A máquina de controle deve gerar apenas os sinais de habilitação para que cada ação seja executada.
Outras soluções serão consideradas incorretas. Por exemplo, no caso dos registradores P e A, devem
ser implementados como dois registradores separados e a função de deslocamento deve ser
implementada por sua interligação (região destacada por linha tracejada na Figura 3). O
deslocamento deve ser habilitado por um sinal “Desloc”.
 Os sinais de saída (Quociente e resto) devem assumir valor “0” durante o processamento e assumir
o valor da divisão junto com a sinalização do sinal “fim_div”.

O sinal ini_div indica início da divisão (reset). O sinal fim_div é uma saída que indica quando as saídas
quociente e resto contêm o resultado final da operação do divisor.
No exemplo a seguir divide-se o número Dendo = 11011 (27) pela entrada M2 = 00101 (5), e o resultado
final após o processamento é quociente = 00101 (5), resto = 00010 (2) e fim_div = 1 ao final do
processamento.
Figura 4
OBS: São fornecidos os códigos dos registradores RegA e RegP, os quais devem ser utilizados na
implementação.

Figura 5 - Registrador A

Figura 6 - Registrador P
Figura 7 – Código da Máquina de controle FSM
Figura 8 - Tabela Auxiliar para análise manual do algoritmo e auxílio no entendimento das
etapas de operação do divisor

A seguir é apresentado um diagrama gerado na ferramenta Quartus II (RTL Viewer) que ilustra os sinais
exteriorizados em simulação para auxílio na verificação da operação. O diagrama deve ser considerado
como uma opção de implementação, e não considerada como a única solução.
Figura 9 – Visão RTL da solução implementada

Figura 10 – Visão RTL da implementação do Divisor


Figura 11 – Simulação do circuito implementado visando esclarecimentos sobre o trabalho

Vous aimerez peut-être aussi