Você está na página 1de 4

UFU - Eletrônica Digital – 2017-1 1/4

Trabalho Prof. Ernane Coelho


_______________________________________________________________________________________

Pesquisa de uma string numa memória EPROM


1. Proposta:
 O Trabalho consiste na implementação de uma máquina de estados finitos (FSM) Moore capaz de
pesquisar quantas vezes uma string de 3 letras está presente num conjunto de dados alfanuméricos
(códigos ASCII) gravados numa memória EPROM de 64kB.
 A documentação do trabalho consiste do diagrama de estados da FSM; da tabela de transição de
estados e excitação dos flip-flops a serem utilizados; do esquema do circuito digital correspondente
à FSM; a qual completa o circuito da planta apresentada na figura 1; e ainda do número de strings
encontradas, resultado da varredura da memória EPROM.
 O sistema deverá ser simulado no Proteus visando a verificação operacional do circuito projetado e
a determinação do número de strings encontradas na memória. A string de 3 letras em questão é
‘UFU’ e o número de vezes que esta se repete não será revelado nesta proposta, sendo este o
desafio do trabalho
 O trabalho pode ser desenvolvido individualmente ou em grupos de até 4 alunos (sem exceção). Os
grupos não devem trocar informações, sendo que qualquer identificação de cópia resultará em nota
zero para os envolvidos.
 A documentação do trabalho deverá ser entregue no dia e horário da realização da prova 3.

2. Descrição da planta:
Para a verificação da presença da string ‘UFU’ é necessário um circuito para prover a leitura
sequencial das posições de memória e comparação de conteúdos com os caracteres da string. O circuito capaz
de realizar tal tarefa é apresentado na figura 1.
O circuito da figura 1 é composto por uma memória EPROM de 64kB (27C512), cujo conteúdo deve
ser definido antes da simulação utilizando o arquivo EPROM_content.hex, fornecido em conjunto com a
presente proposta. Para gerar a varredura das posições de memória é utilizado um contador de 16-bits
(2x74LS590) com clock de 2kHz. O contador 74LS590 é ativado na borda da subida do sinal de clock (CCLK),
mas possui um registrador de saída o qual é carregado na borda de descida do clock (RCLK), assim, a cada
borda de descida do sinal de clock, a memória EPROM recebe novo endereçamento. O controle “tri-state” do
barramento de saída da memória EPROM está sempre ativo, assim, um novo conteúdo de memória é
disponibilizado para comparação a cada borda de descida do sinal de clock.
O comparador de palavras de 8 bits (74HC688) está sempre ativo durante o ciclo de varredura da
memória. Toda vez que existir a igualdade entre a palavra de 8 bits fornecida pela EPROM (entrada P) e a
palavra apresentada na entrada Q, controlada pelo sinal CHAR, o sinal E será igual a 0 (zero), do contrário E=1.
Quando ocorre o estouro da contagem do contador de endereçamento (varredura da memória foi finalizada),
tanto este (CCLKEN) quanto comparador (Ḡ)são desabilitados e o sinal E permanece ativo alto (E=1).
A FSM a ser projetada contempla 4 estados, os quais são descritos na seção 3. Assim dois Flip-flops
(FF1 e FF0) serão necessários, os quais devem ser disparados pela borda de subida do sinal de clock, assim,
durante a transição dos FF’s, o sinal de comparação E (entrada para a FSM) será estável, pois sua transição
ocorre na borda de descida do sinal de clock. O tipo de FF não foi determinado na figura 1, sendo a
determinação deste de livre escolha para o projeto, desde que exista o modelo correspondente no software
de simulação.
A FSM apresenta duas saídas, CHAR e INC. O sinal CHAR controla qual dos dois caracteres da string
‘UFU’ deve ser pesquisado no estado corrente da FSM: CHAR=0 para pesquisar o caractere ‘U’ e CHAR=1 para
pesquisar o caractere ‘F’. O sinal de saída INC determina quando a FSM encontrou a string ‘UFU’ e este será
UFU - Eletrônica Digital – 2017-1 2/4
Trabalho Prof. Ernane Coelho
_______________________________________________________________________________________
usado para habilitar o incremento do contador de repetições: INC=0 implica string encontrada e INC=1 implica
que a string não foi encontrada, mesmo que partes desta tenham sido localizadas.
O contador de repetições (contador BCD de 2 dígitos – 2x74HC190) determina o status do número
de repetições encontradas, o qual é apresentado no display de 7-segmentos. Tal contador implica que um
máximo de 99 repetições pode ser contabilizado. O sinal INC, o qual sofre transições na borda de subida do
sinal de clock da FSM, habilita o incremento do contador de repetições, sendo que o incremento ocorre na
borda de descida do sinal de clock, momento que que o sinal INC é estabilizado pela FSM, produzindo um
perfeito sincronismo entre as informações.
A planta contempla ainda um botão de reset, o qual zera os contadores de varredura e repetições
e reinicia o processo de pesquisa da string.

Figura 1. Planta do pesquisador de String

3. Estados da FSM

A FSM do pesquisador de string apresenta 4 estados, a saber:


I. Início:
a. Este é o estado inicial de pesquisa da string, no qual nenhum caractere pertencente a string
foi ainda encontrado.
b. Neste estado o sinal CHAR=0, indicando que o caractere ‘U’ está sendo pesquisado.
c. O sinal INC=1, indicando que o contador de repetições deve ficar desabilitado, pois a string
completa ‘UFU” ainda não foi encontrada.
UFU - Eletrônica Digital – 2017-1 3/4
Trabalho Prof. Ernane Coelho
_______________________________________________________________________________________
d. Se durante este estado o sinal E de entrada da FSM for alto, E=1, a FSM permanecerá neste
estado, caso contrário, E=0, a FSM deverá migrar para o estado Caractere U.
II. Caractere U:
a. Neste estado o primeiro caractere da string foi encontrado, ou seja, o byte referente ao código
ASCII da letra ‘U’ foi encontrado na última posição de memória endereçada pelo contador de
varredura.
b. Como o carácter ‘U’ foi encontrado, o sinal CHAR é comutado para nível alto (CHAR=1),
indicando que o caractere ‘F’ deve ser selecionado para pesquisa.
c. O sinal INC continua em nível alto, INC=1, pois apenas a primeira letra da string foi encontrada
e não a string ‘UFU’ completa.
d. Se durante este estado o sinal E de entrada da FSM for alto, E=1, a FSM deverá retornar ao
Início, pois houve falha na busca do caractere ‘F’, portanto a busca da string deve recomeçar
na primeira letra. Se E=0, a letra ‘F’ foi encontrada e a FSM deve migrar para o estado
Caractere F.
III. Caractere F:
a. A presença da FSM neste estado implica que os caracteres ‘UF’ foram encontrados, ou seja, o
código ASCII da letra U e o código ASCII da letra ‘F’ foram encontrados na penúltima e última
posições de memória pesquisadas, respectivamente.
b. Como o carácteres ‘UF’ foram encontrados, o sinal CHAR é comutado para nível baixo
(CHAR=0), retornando a pesquisa para o caractere ‘U’.
c. O sinal INC continua em nível alto, INC=1, pois string ‘UFU’ ainda não foi encontrada.
d. Se durante este estado o sinal E de entrada da FSM for alto, E=1, a FSM deverá retornar ao
Início, pois houve falha na busca do segundo caractere ‘U’, portanto a busca da string deve
recomeçar na primeira letra. Se E=0, a segunda letra ‘U’ foi encontrada e portando a FSM deve
migrar para o estado String UFU.
IV. String UFU:
a. A migração da FSM para este estado implica que a string ‘UFU’ foi completamente encontrada,
ou seja, a última, penúltima e antepenúltima posições de memória pesquisadas apresentam
os códigos ASCII das letras ‘U’, ‘F’ e ‘U’, respectivamente.
b. Como os caracteres ‘UFU’ foram encontrados, o sinal CHAR deve permanecer em nível baixo
(CHAR=0) para prover a pesquisa de um novo início de string (letra ‘U’)
c. O sinal INC é comutado para nível baixo, INC=0, de modo a habilitar o contador de repetições,
contabilizando a string ‘UFU’ encontrada.
d. Se durante este estado o sinal E de entrada da FSM for alto, E=1, a FSM deverá retornar ao
Início, pois houve falha na busca do primeiro caractere ‘U’ de uma nova string, portanto a
busca da string deve continuar na primeira letra. Se E=0, a letra ‘U’ foi encontrada novamente
e portanto, a FSM deve migrar para o estado Caractere U, sendo que neste caso existe a
possibilidade de duas strings ‘UFU” em cascata, pois foi encontrado até então ‘UFUU’.

4. Elaboração do Projeto da FSM


Conforme a descrição da planta e estados da FSM apresentados nas seções anteriores, a FSM possui:
 4 estados (dois FF’s);
 um sinal de entrada E:
o E=0 – palavra do conteúdo de memória igual ao caractere pesquisado;
o E=1 – palavra do conteúdo de memória é diferente do caractere pesquisado;
 dois sinais de saída, CHAR e INC
UFU - Eletrônica Digital – 2017-1 4/4
Trabalho Prof. Ernane Coelho
_______________________________________________________________________________________
o CHAR=0 – pesquisa caractere ‘U’;
o CHAR=1 – pesquisa caractere ‘F’;
o INC=0 – habilita incremento do contador de repetições
o INC=1 – desabilita incremento do contador de repetições.

Para a elaboração do projeto:


 Desenhe o diagrama de estados para a FSM conforme apresentado na seção 3;
 Faça a escolha dos flip-flops que serão utilizados;
 Escreva a tabela de transição de estados e excitação dos Flip-flops;
 Determine a expressão lógica simplificada para cada função de excitação e de saída da FSM;
 Implemente os circuitos combinacionais de excitação e de saída da FSM;
 Complete o circuito da figura 1 incluindo a FSM projetada;
 Faça a simulação do sistema no Proteus para a verificação operacional do circuito. Antes de executar
a simulação carregue os conteúdos na EPROM utilizando o arquivo anexo: EPROM_content.hex.
 Faça a documentação:
o Diagrama de estados da FSM;
o Tabela transição de estados e excitação dos FF’s;
o Circuito completo do sistema (Figura 1 + FSM projetada);
o Resposta da pesquisa: número de repetições da string encontrado.

Você também pode gostar