Projeto Ciruito sequenial.pdf

  • Published on
    25-Nov-2015

  • View
    57

  • Download
    40

Transcript

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 para 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: 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. II. Preparao A B RESET CLK Unidade de Controlo (Circuito sequencial) Contador CTR4 PL Q0 Q1 Q2 Q3 U`/D CE CE U`/D 1 ISCTE-IUL Fundamentos de Arquitectura de Computadores Grupo 13 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 Estados Codificao CE U`/D 1 X E0 Parado (O CE desactivado, o U/D pode estar em qualquer estado) 00 0 0 E1 Aumentar (O CE activado, o U/D esta no modo crescente) 01 0 1 E2 Diminuir (O CE activado, o U/D esta no modo decrescente) 10 1 X E3 Parar a contagem (O CE desactivado, o U/D pode estar em qualquer estado este estado servira para evitar a contagem continua) 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: 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 00/1X 01/00 10/01 11/1X 00 00 00 00 10 10 10 10,01 01 01 01 2 ISCTE-IUL Fundamentos de Arquitectura de Computadores Grupo 13 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): 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 Q1 Q2 CE U`/D 0 0 1 X 0 1 0 0 1 0 0 1 1 1 1 X III. Simulao A B 00 01 11 10 Q1 Q0 00 0 0 X 1 01 0 0 X 1 11 0 1 X 1 10 0 1 X 1 A B 00 01 11 10 Q1 Q0 00 0 1 X 0 01 0 1 X 1 11 0 1 X 1 10 0 1 X 0 Tabela de transio de estados Mapa de Karnaugh para Q0` Mapa de Karnaugh para Q1` Atravs do mapa de Q0` podemos obter a seguinte expresso : Q0` = A + Q1.B 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 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 Tabela das variveis de saida 3 ISCTE-IUL Fundamentos de Arquitectura de Computadores Grupo 13 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 flip-flops 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. 4 ISCTE-IUL Fundamentos de Arquitectura de Computadores Grupo 13 IV. Montagem 5 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 6 ISCTE-IUL Fundamentos de Arquitectura de Computadores Grupo 13 A unidade de controlo correspondera ao PLD GAL16V8 utilizado na montagem cuja programao das entradas e sadas vai ser definida da seguinte maneira: 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): 65779 61076 65922 Nicolas Rocca Miguel Botelho Francisco Perreira 13 A B RESET CLK Unidade de Controlo Contador CTR4 PL Q3 Q2 Q1 Q0 U`/D CE CE U`/D OE` P3 P2 P1 P0 RC` TC 13 12 3 2 6 7 L0 L1 L2 L3 11 5 4 9 10 1 15 13 12 11 14 1 1 3 4 /* ***************** 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 */ 7 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 8 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): 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: 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 Em decimal L0 L1 L2 L3 L4 () () 13 1 1 0 1 1 () () A B RESET CLK Unidade de Controlo Contador CTR4 PL Q3 Q2 Q1 Q0 U`/D CE CE U`/D OE` P3 P2 P1 P0 RC` TC L0 L1 L2 L3 L4 9 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. Z X Y