Sei sulla pagina 1di 11

Fundamentos de Arquitectura de Computadores

2013/2014 1 Semestre

Relatrio do Trabalho T1
Circuito Digital Contador de Pessoas

Trabalho realizado por: - Nicolas Rocca N 65779 - Miguel Botelho N 61076 - Francisco Perreira N 65922

I. Introduo

O objectivo do trabalho em causa projectar um sistema composto por um circuito sequencial e um contador binrio com os conhecimentos adquiridos nas aulas desta UC, procedendo assim, a sua simulao e montagem no laboratrio. O circuito em questo consiste em fazer uma contagem de pessoas que se encontram numa determinada sala, ou seja, existira duas entradas na sala, uma onde entram as pessoas e outra de sada. Quando entrar uma pessoa o circuito devera acrescentar uma pessoa a contagem e quando sair uma pessoa o circuito devera retirar uma pessoa da contagem. A contagem ser feita do nmero 1 ao nmero 15, pois a quantidade suportada pelo circuito a ser implementado (ser implementado com um contador de 4 bits). O circuito ter 3 entradas, o RESET pa ra reiniciar a contagem a zero, a entrada A para a contagem crescente e a entrada B para a contagem decrescente. Os nmeros do 1 ao 15 sero representados em binrio atravs de 4 sadas ligadas, cada uma ligada a um LED. O circuito vai ser composto por uma unidade de controlo com as entradas A e B e com as sadas CE e U`/D que sero ligadas as entradas CE e U`/D do contador respectivamente, como o circuito tem 4 estados, a unidade de controlo ser constituda por 2 flip-flops D. A entrada RESET ser utilizada para reiniciar os estados dos flip-flops e do contador em simultneo. Para resumir o circuito podemos observar o seguinte esquema:

RESET A B
Unidade de Controlo
U`/D PL Contador

CTR4
U`/D CE Q0 Q1 Q2 Q3

(Circuito sequencial)

CE

CLK

Este relatrio ser constitudo pelas seguintes partes: a preparao do circuito, a simulao do circuito, a montagem do circuito e finalmente a concluso relativa ao circuito e os seus procedimentos.

ISCTE-IUL

Fundamentos de Arquitectura de Computadores

Grupo 13

II. Preparao A preparao ser realizada de acordo as instrues do enunciado do trabalho de laboratrio T1: 1. O circuito composto pelas entradas A, B e RESET, vamos comear pela construo da unidade de controlo, em que sero utilizadas a entradas A e B para a definio dos diferentes estados, pois o RESET s ser utilizado para reiniciar o contador a zero e tambm poder ser aproveitado para reiniciar os flip-flops D. As sadas da unidade de controlo corresponderam as entrada CE e U`/D do contador, sendo assim vamos definir duas sadas na unidade de controlo, a sada CE e U`/D. No contador utilizado neste circuito, o CE ser activo com 0 e desactivado com 1 e o U`/D activa a contagem crescente com 0 e activa a contagem decrescente com 1, sendo assim podemos considerar, no seguinte quadro, os estados com as respectivas sadas e codificaes: Sadas CE U`/D 1 X 0 0 1 0 1 X Estados E0 Parado (O CE desactivado, o U/D pode estar em qualquer estado) E1 Aumentar (O CE activado, o U/D esta no modo crescente) E2 Diminuir (O CE activado, o U/D esta no modo decrescente) E3 Parar a contagem (O CE desactivado, o U/D pode estar em qualquer estado este estado servira para evitar a contagem continua) Codificao 00 01 10 11

Como obtemos 4 estados sero utilizados dois flip-flop D para a unidade de controlo (pois ). Com a tabela elaborada, podemos produzir o diagrama de estados seguindo o modelo de Moore:

10/01

01 00 10 00 01 10

01

00

00/1X

01/00

10

11/1X

10,01

00

ISCTE-IUL

Fundamentos de Arquitectura de Computadores

Grupo 13

2. A partir do diagrama de estados da alnea anterior vamos construir a tabela de transio de estados da unidade de controlo e a tabela de verdade para as variveis de sada da parte da unidade de controlo e obter as respectivas expresses das tabelas (consideramos que nunca vo estar duas pessoas a entrar simultaneamente, logo, quando o valor das entrada A e B sejam 1 o estado seguinte vai ser indiferente): Tabela de transio de estados Q1 Q0 A B Q1` Q0` 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 X X 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 1 X X 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 X X 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 1 X X Mapa de Karnaugh para Q0`

A B Q1 Q0 00 01 11 10

00 0 0 0 0

01 0 0 1 1

11 X X X X

10 1 1 1 1

Atravs do mapa de Q0` podemos obter a seguinte expresso : Q0` = A + Q1.B

Mapa de Karnaugh para Q1` A B 00 01 11 10 Q1 Q0 00 0 1 X 0 01 11 10 0 0 0 1 1 1 X X X 1 1 0 Atravs do mapa de Q1` podemos obter a seguinte expresso: Q1` = B + Q0.A Para completar as duas expresses falta inserir a funcionalidade de RESET aos dois flip-flops D (o equipamento do laboratrio no contm a funcionalidade de RESET) adicionado uma porta AND as expresses: Q0` = (A + Q1.B).RESET Q1` = (B + Q0.A).RESET

Tabela das variveis de saida Q1 Q2 CE U`/D 0 0 1 X 0 1 0 0 1 0 0 1 1 1 1 X

Atravs dos termos mnimos podemos obter as seguintes expresses para as variveis de sada da unidade de controlo:

CE = Q1` . Q0` + Q1 . Q2

U`/D = Q1

ISCTE-IUL

Fundamentos de Arquitectura de Computadores

Grupo 13

III. Simulao A partir das expresses obtidas na parte II, vamos utilizar o programa Logisim para reproduzir o circuito e para fazer a simulao do seu funcionamento. A construo do circuito no programa comeou-se adicionando-se os dois flip-flops D e o contador e com as expresses fez-se a ligao das entradas, sadas e portas logicas existentes. Na simulao verificou-se que quando a entra A tomava o valor de 1 o contador contava uma nica vez o que teoricamente corresponde a uma pessoa a entrar numa determinada sala. Retornando a entrada A ao valor 0, agora pondo a entrada no valor 1 verificou-se correctamente a contagem decrescente uma nica vez que teoricamente corresponde a uma pessoa a sair da sala. Os valores quando tomam o valor 1 simultaneamente nada acontece no estado do circuito, pois de acordo ao enunciado no ser considera a entrada de duas pessoas ao mesmo tempo. Tambm foi testada a entrada RESET, que tomando o valor 0, reiniciava os estados dos flipflops e do contador simultaneamente. Para que haja contagem o RESET deve estar no valor 1. Em baixo podemos observar o circuito implementado no simulador Logisim:

No decorrer da simulao no foram encontrados erros de acordo ao enunciado do trabalho em questo e satisfaz os objectivos pretendidos no enunciado deste trabalho laboratorial.

ISCTE-IUL

Fundamentos de Arquitectura de Computadores

Grupo 13

IV. Montagem

ISCTE-IUL

Fundamentos de Arquitectura de Computadores

Grupo 13

IV. Concluso A projeco do circuito em questo deste trabalho foi realizado a partir de um diagrama de estados seguindo o modelo de Moore elaborando a tabela de transcrio de estados e a tabela de variveis de sadas, obtendo assim as seguinte expresses com os mapas de Karnaugh: Q0` = (A + Q1.B).RESET Q1` = (B + Q0.A).RESET A parte do RESET no foi obtida pelo mapa de Karnaugh, pois foram adicionadas para permitir a reiniciao dos estados dos flip-flops D. Nas sadas obtemos as seguintes expresses: CE = Q1` . Q0` + Q1 . Q2 U`/D = Q1 Estas expresses pertencem a unidade de controlo que vai ligada ao contador formando assim o circuito pretendido. Podemos verificar que a resoluo do projecto deste circuito pode ser realizado de varias maneiras, variando nos seus estados definidos e evitando que a contagem seja feita mais do que uma vez ao activar umas das entradas do circuito. Com a implementao deste circuito verificamos que o seu funcionamento no o mais eficaz, pois, na contagem ao chegar ao valor mximo quando feita novamente a contagem, esta inicia a contagem outra vez com o valor mnimo. A soluo para este problema foi encontrada implementado 3 portas logicas AND no circuito, estas trs com funcionalidades diferentes. Teoricamente, este projecto poderia ser implementado fisicamente, uma das maneiras possveis seria colocar receptores de infravermelhos na entrada e sada de uma sala, em que estes corresponderiam respectivamente as entrada A e a B do circuito. O valor de quaisquer umas das entradas deveria ser 1 quando o feixe de infravermelhos fosse interrompido ao passar de uma pessoa. O ideal seria colocar o receptor de infravermelho ao meio da entrada da sala, ou ainda melhor colocar um conjunto de feixes de infravermelho estando menos vulnervel

ISCTE-IUL

Fundamentos de Arquitectura de Computadores

Grupo 13

13 65779 61076 65922 Nicolas Rocca Miguel Botelho Francisco Perreira

A unidade de controlo correspondera ao PLD GAL16V8 utilizado na montagem cuja programao das entradas e sadas vai ser definida da seguinte maneira: /* ***************** ENTRADAS ***********************/ PIN 1 = clk ; /* Clock sempre no pino 1 */ PIN 2 = a ; /* Entrada A */ PIN 3 = b ; /* Entrada B */ PIN 4 = r ; /* Entrada RESET */ PIN 11 = !oe ; /* Output enable sempre no 11 */ /* ***************** SAIDAS **********************/ PIN 12 = ce; /* Saida CE */ PIN 13 = ud; /* Saida U`/D */ O contador vai corresponder ao contador binrio de 4 sadas 74LS191 disponvel no laboratrio. O material utilizado PLD GAL16V8 e o contador 74LS191 com o pinout (pinout de acordo ao catalogo dos componentes):
Contador CTR4
7 6 2 3

RESET
4

11 5 4

PL CE P3 P2 P1 P0

U`/D Q3 Q2 Q1 Q0 RC` L0 L1 L2 L3
13 12

A B

1 3

Unidade de Controlo
U`/D CE
13

9 10 12 1 15

OE`
11 14

TC

CLK ISCTE-IUL

Fundamentos de Arquitectura de Computadores

Grupo 13

O modelo escolhido para este problema foi o modelo de Moore, pois as sadas U/D e CE apenas dependero do estado do circuito para realizar transies de estado no contador, ou seja, o valor das sadas mudaram quando se detectar transies de estados. Por exemplo a funo de contar CE no contador ira depender do valor da sada CE da unidade de controlo, logo o valor da sada CE dependera do estado do circuito. O estado das funes do CE e U`\D do contador que correspondem apenas a sadas CE e U`\D da unidade de controlo tais valores sero alterados sincronamente se existir transies de estados na unidade de controlo. A implicao principal que detectamos com modelo de Mealy aplicado neste problema foi na contagem decrescente, quando a contagem decrescente fosse activada este iria contar duas vezes de seguida, isto porque seguindo este modelo as sadas iriam depender das entradas da unidade de controlo e do seu estado

O nmero do grupo realizador deste trabalho o nmero 13, logo

= 13

Fazendo a diviso entre 13 e 8 (13:8) obtemos o resto de 5, substituindo na equao obtemos: = 5 + 8 = 13 Considerando as sadas dos LEDS: L0, L1, L2, L3 em linha, o nmero representado em binrio corresponder aos LEDS L0,L1 e L3 activados. Ser acrescentado as sadas do circuito um LED L5 para sinalizar a lotao da sala, ou seja, quando estiver com o valor 1 quer dizer que a lotao da sala foi atingida sendo o contrrio para o valor 0. Fazendo uma tabela de verdade para as sadas L0, L1, L2, L3 e L4 vamos obter a expresso correspondente ao estado

ISCTE-IUL

Fundamentos de Arquitectura de Computadores

Grupo 13

correspondente ao nmero 13 (ou seja quando o L0,L1 e L3 tenham o valor 1 a sada L4 ter o valor 1): Em decimal L0 L1 L2 L3 L4 () () 13 1 1 0 1 1 () () A partir da tabela de verdade podemos chegar a seguinte expresso: L4 = L0.L1.L2`.L3. esta expresso poder ser implementada a sada do circuito da seguinte maneira:

RESET A B
Unidade de Controlo
U`/D CE

Contador CTR4 PL
U`/D CE P3 P2 P1 P0 Q3 Q2 Q1 Q0 RC` TC L0 L1 L2 L3

L4

OE` CLK

A soluo implementada para resolver este problema foi a seguinte: Acrescentou-se ao circuito inicial uma porta logica AND Z com quatro entradas cada uma negada e ligada a cada led de sada, ou seja, quando o valor da porta Z 1 quer dizer que o nmero representado pelo contador zero. Antes da entrada A acrescentou-se uma porta logica AND X com duas entradas, uma negada e ligada ao TC do contador e a outra ligada a entrada A do circuito. Finalmente acrescentou-se outra porta logica AND Y com trs

ISCTE-IUL

Fundamentos de Arquitectura de Computadores

Grupo 13

entradas, uma negada e ligada a porta logica Z, uma negada e ligada a porta X e a ultima ligada a entrada B do circuito. A seguir podemos observar o circuito implementado com a soluo:

Na contagem crescente quando chegar ao valor mximo (ou seja o numero 15) o TC toma o valor 1, ou seja, na entrada da porta AND X este vai ser negado passando para 0, sendo assim quando o valor de A for igual a 1 (para contar uma pessoa) o resultado da sada da porta X ser zero, fazendo com que no haja alterao no circuito. Estando no valor mximo ser possvel a contagem decrescente, quando a entrada B estiver com o valor 1 (para descontar uma pessoa da contagem), este ser ligado a uma entrada da porta AND Y, esta vai ter ainda uma entrada da porta Y negada ligada a sada da porta X com o valor 1 e outra entrada da porta Y negada que estar ligada a sada da porta Z com o valor 1, sendo assim o valor da sada da porta Y ser 1x1x1 = 1 permitindo que haja alterao no contador em sentido decrescente. Na contagem decrescente quando este chegar ao valor mximo (neste caso o numero 0), o valor da sada da porta Z ser 1 e este vai estar ligado a uma entrada negada da porta Y tomando o valor de 0, outra entrada negada da porta Y estar ligada a sada da porta X com o valor 1. Quando a entrada B (ligada a entrada da porta Y) mudado para o valor 1 (para descontar uma pessoa a contagem) o valor da sada da porta Y ser igual a 0x1x1 = 0, fazendo com que no haja nenhuma alterao no circuito. Estando o valor da sada do circuito a zero ser possvel a contagem crescente, pois como a sada do TC ser 0 a porta X ter resultado de 1 a sada porque a entrada da porta X ligada ao TC negada e vai tomar o valor de 1 a multiplicar com o valor da porta A que vai ter o valor 1 na contagem de uma pessoa, ou seja 1x1 = 1. Esta soluo foi encontrada pelo mtodo de tentativa-erro e utilizando a funes logicas, esta foi simulada no Logisim e testada com sucesso.

10

ISCTE-IUL

Fundamentos de Arquitectura de Computadores

Grupo 13

Potrebbero piacerti anche