Você está na página 1de 18

12/1/10

Implementao com ROMs

Mrio Serafim Nunes Guilherme Silva Arroz

Sistemas Digitais - Taguspark

Consideraes iniciais Implementao com a estrutura bsica Implementao com endereamento explcito Implementao com endereamento implcito

Mrio Serafim Nunes Guilherme Silva Arroz

2010/2011

12/1/10

Sistemas Digitais - Taguspark

Como se viu, a implementao de um circuito que concretiza uma mquina de estados pode ser feita usando portas e flip-flops a partir de diagramas de estado. No entanto, viu-se, tambm que a especificao de uma mquina de estados pode ser feita por fluxogramas em vez de diagramas de estados. Igualmente, a implementao pode ser feita por flip-flops ou registos e ROMs em vez de lgica discreta.
Mrio Serafim Nunes Guilherme Silva Arroz
2010/2011 3

Sistemas Digitais - Taguspark

A utilizao de fluxogramas particularmente interessante quando o nmero de entradas e/ ou sadas da mquina elevado. A utilizao de ROMs justificada a partir de uma dada complexidade de circuitos. As duas consideraes anteriores justificam que a especificao com fluxogramas esteja muitas vezes associada implementao com ROMs. Isso no , porm, obrigatrio.
Mrio Serafim Nunes Guilherme Silva Arroz
2010/2011 4

12/1/10

Sistemas Digitais - Taguspark

Uma das vantagens da implementao com ROMs a de no ser necessrio simplificar as expresses das funes, uma vez que a sua tabela que implementada. No entanto, pode chegar-se a ROMs de grande dimenso, pelo que se utilizam tcnicas mistas que permitem, com um pequeno overhead diminuir significativamente a dimenso das ROMs utilizadas.

Mrio Serafim Nunes Guilherme Silva Arroz

2010/2011

Sistemas Digitais - Taguspark

Vai usar-se nesta aula uma mquina especificada por um fluxograma para ilustrar os vrios tipos de implementao com ROMs. Tem 3 entradas, X1, X2 e X3 e 3 sadas Z1, Z2 e Z3.
Mrio Serafim Nunes Guilherme Silva Arroz
2010/2011 6

12/1/10

Sistemas Digitais - Taguspark

O modelo mais bvio, denominado Estrutura bsica , como se viu atrs, o seguinte:

Mrio Serafim Nunes Guilherme Silva Arroz

2010/2011

Sistemas Digitais - Taguspark

No exemplo que se escolheu h seis estados que necessitam, portanto, de trs flip-flops.

Marcando as atribuies de variveis de estado no fluxograma, resulta o fluxograma que se v no prximo slide.
Mrio Serafim Nunes Guilherme Silva Arroz
2010/2011 8

12/1/10

Sistemas Digitais - Taguspark

Adaptando o modelo ao exemplo, ficar como se v no prximo slide.

Mrio Serafim Nunes Guilherme Silva Arroz

2010/2011

Sistemas Digitais - Taguspark

Mrio Serafim Nunes Guilherme Silva Arroz

2010/2011

10

12/1/10

Sistemas Digitais - Taguspark

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 Sadas actuais corresponde s linhas D2 a D0 que correspondem s sadas Z3 a Z1.
Mrio Serafim Nunes Guilherme Silva Arroz
2010/2011 11

Sistemas Digitais - Taguspark

O contedo da ROM ficar ento dado por uma tabela com 64 linhas (26):
EP Enderec os Estado Entradas Q2 Q1 Q0 X 3 X 2 X 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 0 1 1 0 0 ES E4 E0 E4 E1 E4 E0 E4 E1 E4 E4 E4 E4 E2 Dados Estado N Q2 N Q1 N Q0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 Z3 0 0 0 1 0 0 0 1 0 0 0 0 0 Sa das Z2 0 0 0 0 0 0 0 0 0 0 0 0 0 Z1 0 0 0 0 0 0 0 0 1 1 1 1 1

E0

Primeiras 13 linhas

E1

Mrio Serafim Nunes Guilherme Silva Arroz

2010/2011

12

12/1/10

Sistemas Digitais - Taguspark

EP

Enderec os Estado Entradas Q2 Q1 Q0 X 3 X 2 X 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

ES E4 E4 E4 E4 E5 E5 E5 E5 E3 E3 E3 E3 E3 E3 E3 E3

Dados Estado Sa das N Q2 N Q1 N Q0 Z 3 Z 2 Z 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

E4

ltimas 16 linhas

E5

Mrio Serafim Nunes Guilherme Silva Arroz

2010/2011

13

Sistemas Digitais - Taguspark

Para implementar esta mquina por este mtodo preciso um conjunto de trs flip-flops eventualmente organizados em registo e uma ROM de 64 palavras de 6 bits (384 bits). , portanto, uma soluo elegante e econmica. Uma anlise da tabela mostra que h muitas linhas repetidas. Observando mais cuidadosamente, verifica-se que essas repeties ocorrem em linhas em cujos endereos apenas 1 diferem os bits correspondentes s entradas.
Mrio Serafim Nunes Guilherme Silva Arroz
2010/2011 14

12/1/10

Sistemas Digitais - Taguspark

H, portanto, um estmulo a encontrar outras estruturas usando ROMs. Seria interessante obter uma estrutura em que a ROM no tivesse as entradas da mquina ligadas ao seu barramento de endereos. Isso tem duas consequncias: Em primeira anlise, deixa de ser possvel usar mquinas de Mealy. Em segundo lugar, h que garantir que as entradas continuam a ser tidas em conta na determinao do estado seguinte.
Mrio Serafim Nunes Guilherme Silva Arroz
2010/2011 15

Sistemas Digitais - Taguspark

Isso conduz a uma outra estrutura:

A alterao fundamental

Mrio Serafim Nunes Guilherme Silva Arroz

2010/2011

16

12/1/10

Sistemas Digitais - Taguspark

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 funo 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).
Mrio Serafim Nunes Guilherme Silva Arroz
2010/2011

17

Sistemas Digitais - Taguspark

Claro que o fluxograma que se tem vindo a usar no exequvel agora.

Um estado no pode consultar duas variveis de entrada.

A mquina tem de ser de Moore

Mrio Serafim Nunes Guilherme Silva Arroz

2010/2011

18

12/1/10

Sistemas Digitais - Taguspark

, portanto, necessrio alterar o fluxograma. Ou, mais exactamente, necessrio repensar o problema. E cumprir, desde o princpio as regras impostas. No caso vertente vai-se optar por fazer uma transformao muito directa que altera o comportamento do circuito mas simples de fazer.

Inclui-se novo estado onde est a sada condicional. Inclui-se novo estado entre os dois losangos a seguir ao estado E0.
Mrio Serafim Nunes Guilherme Silva Arroz
2010/2011 19

Sistemas Digitais - Taguspark

Novo fluxograma j com atribuio de variveis de estado No prximo slide ilustra-se o modelo adaptado a este circuito

Mrio Serafim Nunes Guilherme Silva Arroz

2010/2011

20

10

12/1/10

Sistemas Digitais - Taguspark

Mrio Serafim Nunes Guilherme Silva Arroz

2010/2011

21

Sistemas Digitais - Taguspark

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 Sadas actuais corresponde s linhas D2 a D0 que correspondem s sadas Z3 a Z1.
Mrio Serafim Nunes Guilherme Silva Arroz
2010/2011 22

11

12/1/10

Sistemas Digitais - Taguspark

O contedo da ROM ficar agora dado por uma tabela com 8 linhas (23):

Mrio Serafim Nunes Guilherme Silva Arroz

2010/2011

23

Sistemas Digitais - Taguspark

Para implementar esta mquina 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 necessrio usar trs flip-flops (poderiam ser 4 se houvesse necessidade) Passaram a ser tambm necessrios 2 multiplexadores. Repare-se que se est a mudar de um tipo de raciocnio ligado ao projecto de hardware puro e duro, para um conjunto de metodologias prximas da programao...
Mrio Serafim Nunes Guilherme Silva Arroz
2010/2011 24

12

12/1/10

Sistemas Digitais - Taguspark

Avanou-se muito na diminuio das dimenses da ROM quando se passou da estrutura bsica para uma arquitectura baseada no endereamento explcito. Vai-se dar um passo suplementar que permitir encolher um pouco a palavra da ROM e at retirar um dos multiplexadores.

Mrio Serafim Nunes Guilherme Silva Arroz

2010/2011

25

Sistemas Digitais - Taguspark

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 sequncia de estados autonomamente. Se se numerarem os estados segundo uma sequncia de contagem e se usar o carregamento paralelo do contador para saltar quando a sequncia de contagem no pode ser respeitada, podemos suprimir um dos campos estado seguinte da ROM.
Mrio Serafim Nunes Guilherme Silva Arroz
2010/2011 26

13

12/1/10

Sistemas Digitais - Taguspark

Mrio Serafim Nunes Guilherme Silva Arroz

2010/2011

27

Sistemas Digitais - Taguspark

Como deixou de haver necessidade de escolher entre dois endereos, o multiplexador a isso dedicado, desapareceu. Na estrutura, testam-se as entradas e o XNOR na sada do multiplexador permite testar as entradas seleccionadas para os seus dois nveis possveis. Isso pode ser evitado colocando todas as entradas e as suas negaes entrada do multiplexador. Mas o resultado o mesmo em termos de nmero de bits da palavra da ROM.
Mrio Serafim Nunes Guilherme Silva Arroz
2010/2011 28

14

12/1/10

Sistemas Digitais - Taguspark

claro que agora h que refazer a atribuio de variveis de estado para conseguir ter sequncias binrias de comprimento razovel. Paralelamente a isso, pode-se ou no mudar os nomes dos estados. Opta-se por o fazer para manter clareza nas metodologias. O fluxograma com a alterao no nome dos estados e na atribuio de variveis est no slide seguinte.
Mrio Serafim Nunes Guilherme Silva Arroz
2010/2011 29

Sistemas Digitais - Taguspark

Repare-se que esto indicados os percursos de contagem e os locais onde h saltos. Naturalmente podiam ser feitas opes diferentes das realizadas.

Mrio Serafim Nunes Guilherme Silva Arroz

2010/2011

30

15

12/1/10

Sistemas Digitais - Taguspark

O modelo apresentado tem agora que ser adaptado ao circuito que temos vindo a estudar.

Mrio Serafim Nunes Guilherme Silva Arroz

2010/2011

31

Sistemas Digitais - Taguspark

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 Nvel (linha D3) indica qual o nvel a que a varivel de entrada testada (0 ou 1). O campo Estado seguinte (linhas D8 a D6) indica qual o estado seguinte se existir salto O campo Sadas actuais corresponde s linhas D2 a D0 que correspondem s sadas Z3 a Z1.
Mrio Serafim Nunes Guilherme Silva Arroz
2010/2011

32

16

12/1/10

Sistemas Digitais - Taguspark

O contedo da ROM continuar dado por uma tabela com 8 linhas (23):

Nunca salta (testa se 1 = 0)

Salta sempre (testa se 1 = 1)


2010/2011 33

Mrio Serafim Nunes Guilherme Silva Arroz

Sistemas Digitais - Taguspark

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 necessrio um multiplexador. Est-se cada vez mais prximo de um conjunto de metodologias prximas da programao.

Mrio Serafim Nunes Guilherme Silva Arroz

2010/2011

34

17

12/1/10

Sistemas Digitais - Taguspark

O caminho que se trilhou nesta aula o caminho que, partindo da concepo 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 evolues tecnolgicas se podem associar com necessidades dos utilizadores para criar novos produtos, novos processos, novos paradigmas.
Mrio Serafim Nunes Guilherme Silva Arroz

2010/2011

35

Sistemas Digitais - Taguspark

Livro recomendado, Captulo 7 Alguns aspectos esto melhor tratados em http://sd.tagus.ist.utl.pt/files/Folhas_v11.pdf, pgina 366 e seguintes. Existem muitos livros com captulos sobre o assunto. A Internet , como de costume, uma fonte que, explorada com esprito crtico, tem muito para dar.
Mrio Serafim Nunes Guilherme Silva Arroz

2010/2011

36

18