Escolar Documentos
Profissional Documentos
Cultura Documentos
Desenvolvimento de um
Circuito Complexo
Versão 2017
RESUMO
Nesta experiência será estudado como organizar o projeto de um sistema digital complexo ou não trivial.
Para isto será estudada uma metodologia de projeto de circuitos digitais. A parte experimental consiste do
projeto de alto nível do jogo do tempo de reação. Alguns componentes adicionais ao projeto do jogo do
tempo de reação também devem ser desenvolvidos.
OBJETIVOS
Após a conclusão desta experiência, os seguintes tópicos devem ser conhecidos pelos alunos:
Metodologia de projeto de circuitos digitais;
Pseudocódigo e diagrama ASM de alto nível;
Projeto de alto nível.
1. PARTE TEÓRICA
Apresentamos aqui uma breve apresentação de conceitos relativos à metodologia de projeto de circuitos
digitais complexos. Mais informações podem ser obtidas na referência [Midorikawa, 2017].
1
Sinal de status ou sinal de condição é a tradução do termo em inglês “status signal”. Este tipo de sinal se refere à
condição dos elementos do fluxo de dados como o valor atual e não deve ser confundido com o estado de uma máquina
de estados. Não confundir com o termo “estado” de um diagrama de transição de estados de um circuito sequencial.
Os sinais de status do fluxo de dados e os sinais de entrada de controle são os responsáveis pela execução
da unidade de controle. Um sinal de entrada de controle é um sinal que aciona a execução de um comando
pelo SD (p.ex. uma entrada INICIAR usado para acionar a execução de um sistema). Normalmente a
unidade de controle é modelada usando um circuito sequencial através de uma máquina de estados finita.
A saída da unidade de controle são sinais de controle para os componentes do fluxo de dados, como por
exemplo, a seleção de função de uma ULA, a habilitação de um contador ou a habilitação de um circuito
de memória RAM. Opcionalmente, a unidade de controle também pode gerar alguns sinais de saída. Por
exemplo, é conveniente gerar como saída uma identificação do estado atual da máquina de estados finitos
para ser usada para a depuração do circuito. Outro exemplo de sinal de saída de controle é indicar o término
da execução de uma operação (sinal FIM), que normalmente é usado para sincronizar a execução de
circuitos independentes.
7. Verificar conexão do fluxo de dados e da unidade de controle para formar o sistema digital.
O desenvolvimento do projeto inicia com a escrita da especificação do sistema digital, através de uma
descrição verbal do sistema. Esta descrição em linguagem natural deve apresentar as funcionalidades a
serem implementadas e possíveis restrições. Uma narrativa do funcionamento do circuito a ser projetado
é um bom exemplo de descrição a ser desenvolvida.
A leitura e interpretação da descrição verbal do sistema são usadas para a geração de uma forma
algorítmica do funcionamento do sistema. Assim, na segunda etapa, gera-se um pseudocódigo com o
algoritmo do sistema digital. Este pseudocódigo usa os comandos básicos usados na descrição de
algoritmos de software [Cormen et al. 2009], como comandos em sequência, comandos de decisão,
comparações e estruturas em laço. Deve-se evitar o uso de estruturas complexas, como o uso de recursão.
Em seguida, a partir do pseudocódigo obtido, a metodologia gera um diagrama abstrato que modela o
comportamento descrito. Este diagrama, chamado diagrama ASM de alto nível, contém os elementos
de um diagrama ASM convencional, mas inclui comandos e testes em linguagem natural. Esta etapa visa
gerar uma primeira descrição mais formal ou abstrata do sistema em desenvolvimento.
De posse do pseudocódigo e do diagrama ASM de alto nível, é possível identificar os principais elementos
do fluxo de dados. As variáveis identificadas no algoritmo podem ser implementadas usando
registradores. As operações sobre estas variáveis podem ser projetadas com unidades funcionais
combinatórias, como somadores, ULAs, codificadores ou outro circuito combinatório específico. As trocas
de informações entre variáveis formam o sistema de transferência de dados. Este sistema pode ser
realizado como uma via de dados tri-state ou por um sistema de transferência de dados com uma rede de
multiplexadores.
A quinta etapa pode ser executada pela definição dos sinais de controle que acionam os elementos do
fluxo de dados. Por exemplo, a saída de um multiplexador depende do valor de sua entrada de seleção e
uma ULA depende das entradas de seleção de função. O uso de um registrador de deslocamento pode
gerar vários sinais de controle para zerar seu conteúdo, deslocar os bits para a direita e carregar outro
valor pelas entradas paralelas. Os sinais de status são identificados pelos blocos de decisão do diagrama
ASM. Assim, bits de um registrador podem ser usados para verificar o conteúdo de um dado ou a saída de
um comparador de magnitude pode identificar uma condição para o término de execução de uma operação.
De posse dos sinais de controle e de status dos elementos do fluxo de dados, o diagrama ASM de alto nível
pode ser detalhado para gerar o diagrama ASM da unidade de controle com estes sinais para acionar
o fluxo de dados e testar as condições de estado. Cabe lembrar aqui que um diagrama ASM adota, como
padrão, sinais ativos em ALTO e os blocos de estado e de saída condicional indicam apenas aqueles sinais
de saída que devem ser ativados.
Finalmente, com a definição dos elementos do fluxo de dados e do comportamento da unidade de controle,
pode-se prosseguir para uma primeira versão da microarquitetura do sistema digital com a obtenção da
estrutura interna que contém a conexão do fluxo de dados e da unidade de controle. Esta estrutura
é uma primeira aproximação do projeto final. Devem ser incluídos os elementos do fluxo de dados, o bloco
da unidade de controle e os sinais de controle e de estados interligando ambos os blocos.
Se o circuito final obtido não for considerado adequado ou eficiente o suficiente, pode-se reexecutar as
etapas definidas com o refinamento dos resultados.
Um exemplo de arquitetura interna de um circuito digital é ilustrado na figura 2. Podemos identificar alguns
componentes: padroes_fd, padroes_uc, hex7seg e clock_div. Os dois últimos componentes tem como
função interfacear o circuito com displays de 7 segmentos e com o circuito de clock de uma placa de
desenvolvimento com FPGA.
2. PARTE EXPERIMENTAL
2.1. Atividade 1 – Projeto de Alto Nível do Jogo do Tempo de Reação
Esta atividade envolve a aplicação de uma metodologia de projeto de circuitos digitais para o
desenvolvimento do Jogo do tempo de reação. A partir da descrição verbal do funcionamento básico do
jogo, deve-se desenvolver o pseudocódigo que modela o comportamento do circuito e, em seguida, o
diagrama ASM de alto nível. É importante a leitura e estudo do texto [Midorikawa, 2017].
a) O Jogo do tempo de reação envolve a medida do tempo de reação das pessoas a partir de um sinal
de estímulo ou excitação até o acionamento de uma resposta. A realização do estímulo pode ser
efetivada com a ativação de um sinal luminoso (como um led ou uma lâmpada) ou de um sinal sonoro
(como um buzzer). A resposta ao estímulo pode ser executada com o acionamento de um botão. A
figura 3 apresenta um esquema básico do princípio de funcionamento da medida do tempo de reação.
Descrição verbal
Cada jogador deve iniciar o jogo acionando um botão denominado START. Depois de um intervalo de
tempo, um led de estímulo é ativado. O jogador deve assim pressionar um botão de RESPOSTA o mais
rápido possível. O circuito deve medir o intervalo de tempo entre a ativação do led e o acionamento do
botão de resposta, definido como o tempo de reação. A precisão da medida deve ser de 1 milissegundo.
Este tempo deve ser apresentado em 4 displays de 7 segmentos. A medida deve ser realizada por
4 jogadas consecutivas. A pontuação é dada pela soma dos tempos de reação das jogadas. Caso o
jogador tentar burlar o jogo e acionar o botão de resposta antes da ativação do led, o circuito deve
reconhecer a jogada inválida e sinalizar um erro. Opcionalmente, uma penalidade na pontuação pode
ser aplicada em caso da jogada inválida.
Algumas decisões de projeto podem ser tomadas para cada circuito. Por exemplo, em caso de
reconhecimento de jogada inválida, o circuito pode imediatamente interromper a jogada e o jogador
deve reiniciar a jogada com o botão START. Uma alternativa a esta decisão seria o circuito sinalizar um
erro e continuar a jogada normalmente (ignorando a jogada inválida).
Cada funcionalidade adicional pode melhorar a avaliação final do projeto. Por exemplo, a pontuação
final pode ser dada pela média das jogadas ao invés da soma dos tempos de reação. Outro exemplo
de funcionalidade adicional seria armazenar a melhor pontuação do jogo até aquele momento.
f) Apresente o diagrama ASM de alto nível desenvolvido a partir do pseudocódigo do item 2.1.1.b.
g) Explique o conjunto de estados e transições relacionados com as seguintes funcionalidades:
1. Espera do início da jogada;
2. Medida do tempo de reação;
3. Deteção de jogada inválida;
4. Armazenamento da pontuação.
h) Com base no que foi apresentado neste item, mostre que elementos do fluxo de dados faltam ser
desenvolvidos para completar o projeto do circuito final.
i) Projete um contador decimal com funções de clear e load síncronos. Nomeie o componente como
V74x162. A interface do componente deve seguir a especificação abaixo.
l) Modificar o projeto do circuito hierárquico para alterar a saída para medidas com 4 dígitos decimais. A
interface de sinais deve seguir a especificação abaixo.
m) Simule o projeto do circuito hierárquico modificado no Altera Quartus. Analise os resultados obtidos.
Anexe as formas de onda no Planejamento.
n) Defina um plano de testes do circuito modificado.
DICA: considere o uso dos 4 dígitos da saída.
3. BIBLIOGRAFIA
ALTERA. DE0-CV User Manual. 2015.
ALMEIDA, F.V. de; SATO, L.M.; MIDORIKAWA, E.T. Tutorial para criação de circuitos digitais
utilizando diagrama esquemático no Quartus Prime 16.1. Apostila de Laboratório Digital.
Departamento de Engenharia de Computação e Sistemas Digitais, Escola Politécnica da USP. 2017.
MENEZES, M.P.; SATO, L.M.; MIDORIKAWA, E.T. Projeto de Circuitos com Quartus II 9.1.
Apostila de Laboratório Digital. Departamento de Engenharia de Computação e Sistemas Digitais,
Escola Politécnica da USP. Edição de 2011.
TOCCI, R.J. & WIDMER, N.S. Sistemas Digitais: princípios e aplicações. 11a ed., Prentice-Hall,
2011.
WAKERLY, John F. Digital Design Principles & Practices. 4th edition, Prentice Hall, 2006.
4. EQUIPAMENTOS NECESSÁRIOS
1 computador pessoal com o software Altera Quartus Prime.
Histórico de Revisões
E.T.M. / 2017 (versão inicial)