implementação com roms - técnico lisboa 18... · fluxograma para ilustrar os vários tipos de...
TRANSCRIPT
12/1/10
1
Mário Serafim Nunes Guilherme Silva Arroz
Implementação com ROMs
Mário Serafim Nunes Guilherme Silva Arroz
Considerações iniciais Implementação com a estrutura básica Implementação com endereçamento explícito Implementação com endereçamento implícito
2010/2011
Sistemas Digitais - Taguspark
2
12/1/10
2
Mário Serafim Nunes Guilherme Silva Arroz
Como se viu, a implementação de um circuito que concretiza uma máquina de estados pode ser feita usando portas e flip-flops a partir de diagramas de estado.
No entanto, viu-se, também que a especificação de uma máquina de estados pode ser feita por fluxogramas em vez de diagramas de estados.
Igualmente, a implementação pode ser feita por flip-flops ou registos e ROMs em vez de lógica discreta.
2010/2011
Sistemas Digitais - Taguspark
3
Mário Serafim Nunes Guilherme Silva Arroz
A utilização de fluxogramas é particularmente interessante quando o número de entradas e/ou saídas da máquina é elevado.
A utilização de ROMs é justificada a partir de uma dada complexidade de circuitos.
As duas considerações anteriores justificam que a especificação com fluxogramas esteja muitas vezes associada à implementação com ROMs.
Isso não é, porém, obrigatório.
2010/2011
Sistemas Digitais - Taguspark
4
12/1/10
3
Mário Serafim Nunes Guilherme Silva Arroz
Uma das vantagens da implementação com ROMs é a de não ser necessário simplificar as expressões das funções, uma vez que é a sua tabela que é implementada.
No entanto, pode chegar-se a ROMs de grande dimensão, pelo que se utilizam técnicas mistas que permitem, com um pequeno overhead diminuir significativamente a dimensão das ROMs utilizadas.
2010/2011
Sistemas Digitais - Taguspark
5
Mário Serafim Nunes Guilherme Silva Arroz
Vai usar-se nesta aula uma máquina especificada por um fluxograma para ilustrar os vários tipos de implementação com ROMs.
Tem 3 entradas, X1, X2 e X3 e 3 saídas Z1, Z2 e Z3.
2010/2011
Sistemas Digitais - Taguspark
6
12/1/10
4
Mário Serafim Nunes Guilherme Silva Arroz
O modelo mais óbvio, denominado Estrutura básica é, como se viu atrás, o seguinte:
2010/2011
Sistemas Digitais - Taguspark
7
Mário Serafim Nunes Guilherme Silva Arroz
No exemplo que se escolheu há seis estados que necessitam, portanto, de três flip-flops.
Marcando as atribuições de variáveis de estado no fluxograma, resulta o fluxograma que se vê no próximo slide.
2010/2011
Sistemas Digitais - Taguspark
8
12/1/10
5
Mário Serafim Nunes Guilherme Silva Arroz
Adaptando o modelo ao exemplo, ficará como se vê no próximo slide.
2010/2011
Sistemas Digitais - Taguspark
9
Mário Serafim Nunes Guilherme Silva Arroz 2010/2011
Sistemas Digitais - Taguspark
10
12/1/10
6
Mário Serafim Nunes Guilherme Silva Arroz
Campos da ROM: Do ponto de vista do significado das linhas de dados da ROM, há claramente dois campos.
O campo Estado seguinte corresponde às linhas D5 a D3 da ROM que correspondem aos estados seguintes dos flip-flops, NQ0 a NQ2
O campo Saídas actuais corresponde às linhas D2 a D0 que correspondem às saídas Z3 a Z1.
2010/2011
Sistemas Digitais - Taguspark
11
Mário Serafim Nunes Guilherme Silva Arroz
O conteúdo da ROM ficará então dado por uma tabela com 64 linhas (26):
2010/2011
Sistemas Digitais - Taguspark
12
Primeiras 13 linhas
Enderecos Dados
Estado Entradas Estado SaıdasEP
Q2 Q1 Q0 X3 X2 X1ES
NQ2 NQ1 NQ0 Z3 Z2 Z1
0 0 0 0 0 0 E4 1 0 0 0 0 00 0 0 0 0 1 E0 0 0 0 0 0 00 0 0 0 1 0 E4 1 0 0 0 0 00 0 0 0 1 1 E1 0 0 1 1 0 0
E00 0 0 1 0 0 E4 1 0 0 0 0 00 0 0 1 0 1 E0 0 0 0 0 0 00 0 0 1 1 0 E4 1 0 0 0 0 00 0 0 1 1 1 E1 0 0 1 1 0 0
0 0 1 0 0 0 E4 1 0 0 0 0 10 0 1 0 0 1 E4 1 0 0 0 0 10 0 1 0 1 0 E4 1 0 0 0 0 10 0 1 0 1 1 E4 1 0 0 0 0 1
E10 0 1 1 0 0 E2 0 1 0 0 0 1
· · ·
1
12/1/10
7
Mário Serafim Nunes Guilherme Silva Arroz 2010/2011
Sistemas Digitais - Taguspark
13
Últimas 16 linhas
Enderecos Dados
Estado Entradas Estado SaıdasEP
Q2 Q1 Q0 X3 X2 X1ES
NQ2 NQ1 NQ0 Z3 Z2 Z1
· · ·
1 0 0 0 0 0 E4 1 0 0 0 1 01 0 0 0 0 1 E4 1 0 0 0 1 01 0 0 0 1 0 E4 1 0 0 0 1 01 0 0 0 1 1 E4 1 0 0 0 1 0
E41 0 0 1 0 0 E5 1 0 1 0 1 01 0 0 1 0 1 E5 1 0 1 0 1 01 0 0 1 1 0 E5 1 0 1 0 1 01 0 0 1 1 1 E5 1 0 1 0 1 0
1 0 1 0 0 0 E3 0 1 1 0 0 11 0 1 0 0 1 E3 0 1 1 0 0 11 0 1 0 1 0 E3 0 1 1 0 0 11 0 1 0 1 1 E3 0 1 1 0 0 1
E51 0 1 1 0 0 E3 0 1 1 0 0 11 0 1 1 0 1 E3 0 1 1 0 0 11 0 1 1 1 0 E3 0 1 1 0 0 11 0 1 1 1 1 E3 0 1 1 0 0 1
1
Mário Serafim Nunes Guilherme Silva Arroz
Para implementar esta máquina por este método é preciso um conjunto de três flip-flops eventualmente organizados em registo e uma ROM de 64 palavras de 6 bits (384 bits).
É, portanto, uma solução elegante e económica. Uma análise da tabela mostra que há muitas
linhas repetidas. Observando mais cuidadosamente, verifica-se que essas repetições ocorrem em linhas em cujos endereços apenas diferem os bits correspondentes às entradas.
2010/2011
Sistemas Digitais - Taguspark
14
12/1/10
8
Mário Serafim Nunes Guilherme Silva Arroz
Há, portanto, um estímulo a encontrar outras estruturas usando ROMs. Seria interessante obter uma estrutura em que a ROM não tivesse as entradas da máquina ligadas ao seu barramento de endereços.
Isso tem duas consequências: Em primeira análise, deixa de ser possível usar máquinas de Mealy.
Em segundo lugar, há que garantir que as entradas continuam a ser tidas em conta na determinação do estado seguinte.
2010/2011
Sistemas Digitais - Taguspark
15
Mário Serafim Nunes Guilherme Silva Arroz
Isso conduz a uma outra estrutura:
2010/2011
Sistemas Digitais - Taguspark
16
A alteração fundamental
12/1/10
9
Mário Serafim Nunes Guilherme Silva Arroz
Como se pode observar cada linha da ROM corresponde agora a um estado presente.
Para cada estado presente o circuito consulta uma e uma só entrada.
Em função do valor dessa entrada, evolui para um de dois estados.
Com esta abordagem, ter-se-á uma ROM mais larga (com mais bits por palavra) mas muito menos profunda (com menos palavras).
2010/2011
Sistemas Digitais - Taguspark
17
Mário Serafim Nunes Guilherme Silva Arroz
Claro que o fluxograma que se tem vindo a usar não é exequível agora.
2010/2011
Sistemas Digitais - Taguspark
18
A máquina tem de ser de Moore
Um estado não pode “consultar” duas variáveis de entrada.
12/1/10
10
Mário Serafim Nunes Guilherme Silva Arroz
É, portanto, necessário alterar o fluxograma. Ou, mais exactamente, é necessário repensar o
problema. E cumprir, desde o princípio as regras impostas.
No caso vertente vai-se optar por fazer uma transformação muito directa — que altera o comportamento do circuito — mas é simples de fazer. Inclui-se novo estado onde está a saída condicional. Inclui-se novo estado entre os dois losangos a seguir
ao estado E0.
2010/2011
Sistemas Digitais - Taguspark
19
Mário Serafim Nunes Guilherme Silva Arroz
Novo fluxograma já com atribuição de variáveis de estado
No próximo slide ilustra-se o modelo adaptado a este circuito
2010/2011
Sistemas Digitais - Taguspark
20
12/1/10
11
Mário Serafim Nunes Guilherme Silva Arroz 2010/2011
Sistemas Digitais - Taguspark
21
Mário Serafim Nunes Guilherme Silva Arroz
Campos da ROM: Há agora 4 campos.
O campo Teste corresponde às linhas D10 e D9 e selecciona a linha de entrada a testar
O campo ES1 (linhas D8 a D6) que indica qual o estado seguinte se a entrada seleccionada for 1
O campo ES0 (linhas D5 a D3) que indica qual o estado seguinte se a entrada seleccionada for 0
O campo Saídas actuais corresponde às linhas D2 a D0 que correspondem às saídas Z3 a Z1.
2010/2011
Sistemas Digitais - Taguspark
22
12/1/10
12
Mário Serafim Nunes Guilherme Silva Arroz
O conteúdo da ROM ficará agora dado por uma tabela com 8 linhas (23):
2010/2011
Sistemas Digitais - Taguspark
23
Mário Serafim Nunes Guilherme Silva Arroz
Para implementar esta máquina é agora preciso uma ROM de 8 palavras (em vez de 64) de 11 bits (em vez de 6) (88 bits em vez de 384).
Continua a ser necessário usar três flip-flops (poderiam ser 4 se houvesse necessidade)
Passaram a ser também necessários 2 multiplexadores.
Repare-se que se está a mudar de um tipo de raciocínio ligado ao projecto de hardware puro e duro, para um conjunto de metodologias próximas da programação...
2010/2011
Sistemas Digitais - Taguspark
24
12/1/10
13
Mário Serafim Nunes Guilherme Silva Arroz
Avançou-se muito na diminuição das dimensões da ROM quando se passou da estrutura básica para uma arquitectura baseada no endereçamento explícito.
Vai-se dar um passo suplementar que permitirá “encolher” um pouco a palavra da ROM e até retirar um dos multiplexadores.
2010/2011
Sistemas Digitais - Taguspark
25
Mário Serafim Nunes Guilherme Silva Arroz
Os flip-flops que se usaram até agora, estavam estruturados como um registo. Ora acontece que, substituindo o registo por um contador se pode conseguir que este possa evoluir numa sequência de estados autonomamente.
Se se numerarem os estados segundo uma sequência de contagem e se usar o carregamento paralelo do contador para saltar quando a sequência de contagem não pode ser respeitada, podemos suprimir um dos campos estado seguinte da ROM.
2010/2011
Sistemas Digitais - Taguspark
26
12/1/10
14
Mário Serafim Nunes Guilherme Silva Arroz 2010/2011
Sistemas Digitais - Taguspark
27
Mário Serafim Nunes Guilherme Silva Arroz
Como deixou de haver necessidade de escolher entre dois endereços, o multiplexador a isso dedicado, desapareceu.
Na estrutura, testam-se as entradas e o XNOR na saída do multiplexador permite testar as entradas seleccionadas para os seus dois níveis possíveis.
Isso pode ser evitado colocando todas as entradas e as suas negações à entrada do multiplexador. Mas o resultado é o mesmo em termos de número de bits da palavra da ROM.
2010/2011
Sistemas Digitais - Taguspark
28
12/1/10
15
Mário Serafim Nunes Guilherme Silva Arroz
É claro que agora há que refazer a atribuição de variáveis de estado para conseguir ter sequências binárias de comprimento razoável.
Paralelamente a isso, pode-se ou não mudar os nomes dos estados.
Opta-se por o fazer para manter clareza nas metodologias.
O fluxograma com a alteração no nome dos estados e na atribuição de variáveis está no slide seguinte.
2010/2011
Sistemas Digitais - Taguspark
29
Mário Serafim Nunes Guilherme Silva Arroz 2010/2011
Sistemas Digitais - Taguspark
30
Repare-se que estão indicados os percursos de contagem e os locais onde há saltos.
Naturalmente podiam ser feitas opções diferentes das realizadas.
12/1/10
16
Mário Serafim Nunes Guilherme Silva Arroz
O modelo apresentado tem agora que ser adaptado ao circuito que temos vindo a estudar.
2010/2011
Sistemas Digitais - Taguspark
31
Mário Serafim Nunes Guilherme Silva Arroz
Campos da ROM: Há agora 4 campos.
O campo Teste corresponde às linhas D5 e D4 e selecciona a linha de entrada a testar
O campo Nível (linha D3) indica qual o nível a que a variável de entrada é testada (0 ou 1).
O campo Estado seguinte (linhas D8 a D6) indica qual o estado seguinte se existir salto
O campo Saídas actuais corresponde às linhas D2 a D0 que correspondem às saídas Z3 a Z1.
2010/2011
Sistemas Digitais - Taguspark
32
12/1/10
17
Mário Serafim Nunes Guilherme Silva Arroz
O conteúdo da ROM continuará dado por uma tabela com 8 linhas (23):
2010/2011
Sistemas Digitais - Taguspark
33
Nunca salta (testa se 1 = 0)
Salta sempre (testa se 1 = 1)
Mário Serafim Nunes Guilherme Silva Arroz
Continua-se com uma ROM de 8 palavras mas passa-se para palavras de 9 bits (desceu-se dos 88 bits para 72).
Passou a usar-se um contador em vez de um registo.
Só é necessário um multiplexador. Está-se cada vez mais próximo de um conjunto
de metodologias próximas da programação.
2010/2011
Sistemas Digitais - Taguspark
34
12/1/10
18
Mário Serafim Nunes Guilherme Silva Arroz
O caminho que se trilhou nesta aula é o caminho que, partindo da concepção de circuitos nos está a levar para um circuito que pode ser programado para executar tarefas e que, portanto, nos vai levar ao computador.
É interessante observar como as evoluções tecnológicas se podem associar com necessidades dos utilizadores para criar novos produtos, novos processos, novos paradigmas.
2010/2011
Sistemas Digitais - Taguspark
35
Mário Serafim Nunes Guilherme Silva Arroz
Livro recomendado, Capítulo 7 Alguns aspectos estão melhor tratados em
http://sd.tagus.ist.utl.pt/files/Folhas_v11.pdf, página 366 e seguintes.
Existem muitos livros com capítulos sobre o assunto.
A Internet é, como de costume, uma fonte que, explorada com espírito crítico, tem muito para dar.
2010/2011
Sistemas Digitais - Taguspark
36