Você está na página 1de 7

EPUSP — PCS 3335/3635 — Laboratório Digital

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.1. Conceitos de Projeto de Circuitos Digitais


O projeto de um circuito digital simples pode ser realizado de forma direta com o desenvolvimento de seus
componentes internos e interligação dos mesmos. Um circuito controlador simples, baseado em uma
máquina de estados, pode ser desenvolvido para controlar estes componentes de forma a garantir a
execução da sequência correta de comandos internos. Por outro lado, um circuito complexo não trivial
exige o uso de técnicas de projeto mais elaboradas. E o desenvolvimento desses circuitos envolve uma
série de atividades que devem seguir uma metodologia de projeto, que contém uma sequência de
atividades de forma a tratar esta complexidade de forma sistemática.
Para gerenciar a complexidade do projeto de um sistema digital não trivial, convém adotar uma estratégia
do tipo “dividir para conquistar” (divide and conquer), onde um sistema (ou circuito) é organizado como
um conjunto de subsistemas menores interligados entre si.
O projeto de um sistema digital em geral pode ser organizado, em um primeiro nível, particionando o SD
em duas partes com funções distintas: o Fluxo de dados (FD) e a Unidade de controle (UC). O fluxo de
dados compreende a parte do circuito responsável pela manipulação, processamento, armazenamento e
geração de dados. A unidade de controle é responsável pelo sequenciamento das operações executadas
no fluxo de dados, de forma a garantir o correto funcionamento do circuito. A figura 1 mostra um diagrama
com a estruturação interna detalhada do SD, onde são apresentadas as duas partes principais e os sinais
internos para interconexão entre elas.
Os sinais de entrada de dados são ligados ao fluxo de dados, que também gera os sinais de saída (de
dados). Os sinais de status1 indicam a condição (ou estado) atual do fluxo de dados e incluem sinais como
o valor atual de um determinado registrador, a saída de um comparador e a detecção de uma condição em
particular.

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.

Circuito Hierárquico (2017) 1


EPUSP — PCS 3335/3635 — Laboratório Digital

Figura 1 - Estruturação interna de um sistema digital.

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.

1.2. Resumo da Metodologia de Projeto


A metodologia de projeto de sistemas digitais não triviais possui sete etapas [Midorikawa, 2017]:

1. Escrever uma descrição verbal do sistema;

2. Desenvolver um pseudocódigo do funcionamento;

3. Elaborar um diagrama ASM de alto nível;

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

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

6. Elaborar um diagrama ASM da unidade de controle a partir do fluxo de dados;

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.

Circuito Hierárquico (2017) 2


EPUSP — PCS 3335/3635 — Laboratório Digital

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.

Figura 2 – Arquitetura interna de um circuito digital.

Um detalhamento do circuito interno do fluxo de dados do projeto é apresentado em [Midorikawa, 2017].

Circuito Hierárquico (2017) 3


EPUSP — PCS 3335/3635 — Laboratório Digital

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

2.1.1. Desenvolvimento do Pseudocódigo

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.

Figura 3 – Estímulo e resposta no Jogo 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.

b) Com base na descrição verbal apresentada, desenvolva o pseudocódigo do projeto.


c) Explique as decisões de projeto tomadas, evidenciando as funcionalidades definidas no pseudocódigo.
DICA: uma decisão de projeto pode estar relacionada a uma funcionalidade não apresentada no texto
da descrição verbal acima.
d) Descreva os principais sinais de entrada e de saída do circuito.
e) Mostre como a saída nos displays de 7 segmentos pode ser multiplexada entre a medida atual, a
pontuação final e a melhor pontuação obtida.

Circuito Hierárquico (2017) 4


EPUSP — PCS 3335/3635 — Laboratório Digital

2.1.2. Elaboração do Diagrama ASM de Alto Nível


Outra etapa da metodologia de projeto envolve o desenvolvimento do diagrama ASM de alto nível para
modelar o funcionamento do circuito do jogo do tempo de reação.

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.

2.2. Atividade 2 – Medidor com saída de 4 dígitos decimais


Esta atividade visa modificar o projeto do circuito hierárquico com um medidor de pulso para 4 dígitos
decimais, permitindo a contagem para até 9999 ciclos de relógio. Esta modificação deve ser feita primeiro
elaborando um contador decimal similar ao componente 74162 e, em seguida, atualizando o componente
medidor para incluir 4 contadores decimais interligados com cascateamento síncrono.
2.2.1. Contador decimal V74x162
Com base no componente V74x163, desenvolva a descrição de um componente similar correspondente ao
circuito integrado 74162 (contador decimal).

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.

j) Inserir comentários no código fonte explicando os comandos da descrição.


k) Apresente os resultados da simulação do componente, verificando as funcionalidades implementadas.

2.2.2. Expansão do medidor para 4 dígitos decimais


Aqui deve-se modificar o projeto do circuito hierárquico desenvolvido anteriormente para substituir o
contador hexadecimal V74x163 por 4 contadores decimais V74x162 cascateados de forma a obter uma
medida com 4 dígitos decimais.

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.

Circuito Hierárquico (2017) 5


EPUSP — PCS 3335/3635 — Laboratório Digital

o) Use a designação de pinos apresentada na Tabela I.


DICA: os sinais de depuração sinalizados com (*) devem também ser observados durante a
apresentação do circuito.

Tabela I – Informação para designação e ligação dos sinais do circuito hierárquico.

Designação Analog Discovery

sinal pino instrumento função sinal

clock GPIO_1_D0 Patterns clock DIO0

reset GPIO_1_D1 Static I/O button 0/1 DIO1

pulso GPIO_1_D2 Static I/O button 0/1 DIO2

iniciar chave SW0 - - -

zerar chave SW9 - - -

saida displays HEX0 a HEX3 - - -

s_medida* leds LEDR9 a LEDR0 - - -

fim GPIO_1_D29 Static I/O led DIO4

s_resetr* GPIO_1_D31 Static I/O led DIO5

s_enabler* GPIO_1_D33 Static I/O led DIO6

s_liga* GPIO_1_D35 Static I/O led DIO7

p) Compile novamente o projeto e crie o arquivo QAR do projeto.


q) Submeta o arquivo QAR no Tidia-Ae junto com o Planejamento. Traga o arquivo QAR para o Laboratório
Digital.

2.3. Atividade 3 – Análise de Funcionamento


O projeto do circuito hierárquico com saída com 4 dígitos decimais deve ser programado na placa DE0-CV
e seu funcionamento deve ser analisado cuidadosamente. Siga as recomendações do professor ao
manusear a placa FPGA.
r) Programe a placa DE0-CV com o circuito sintetizado da experiência usando o Altera Quartus Prime.
s) Conectar os sinais de entrada e de saída no Analog Discovery, conforme apresentado na Tabela I acima.
DICA: ligar primeiro o sinal GND do Analog Discovery no pino GND da GPIO da placa DE0-CV. Ajuste a
frequência do sinal clock para 1KHz.
t) Acione os sinais de entrada conforme Plano de testes elaborado no Planejamento. Verifique o
funcionamento do circuito, observar também os sinais de depuração.
u) Prepare uma demonstração para o professor.
v) Responda as perguntas:

1. O que acontece na saída se o valor da medida for superior a 9999?


2. O que é necessário fazer para que a saída do circuito não ultrapasse um valor limite (p.ex. 9999)?

Circuito Hierárquico (2017) 6


EPUSP — PCS 3335/3635 — Laboratório Digital

3. BIBLIOGRAFIA
 ALTERA. DE0-CV User Manual. 2015.

 ALTERA. Quartus Prime Introduction Using VHDL Designs. 2016.

 ALTERA. Quartus Prime Introduction to Simulation of VHDL Designs. 2016.

 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.

 D’AMORE, R. VHDL - descrição e síntese de circuitos digitais. 2a edição, LTC, 2012

 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.

 MIDORIKAWA, E.T. Desenvolvimento Sistemático de Projetos de Circuitos Digitais.


Apostila de Laboratório Digital. PCS-EPUSP, 2017.

 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.

 1 placa de desenvolvimento FPGA DE0-CV da Altera com o dispositivo Cyclone V 5CEBA4F23C7N.

 1 dispositivo Analog Discovery da Digilent.

Histórico de Revisões
E.T.M. / 2017 (versão inicial)

Circuito Hierárquico (2017) 7

Você também pode gostar