Projeto Ciruito sequenial.pdf

  • Published on
    25-Nov-2015

  • View
    50

  • Download
    40

Transcript

  • I. Introdução O objectivo do trabalho em causa é projectar um sistema composto por um circuito sequencial e um contador binário com os conhecimentos adquiridos nas aulas desta UC, procedendo assim, a sua simulação e montagem no laboratório. O circuito em questão 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 saída. 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 número 1 ao número 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 números do 1 ao 15 serão representados em binário através de 4 saídas 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 saídas CE e U`/D que serão ligadas as entradas CE e U`/D do contador respectivamente, como o circuito tem 4 estados, a unidade de controlo será constituída por 2 flip-flops D. A entrada RESET será utilizada para reiniciar os estados dos flip-flops e do contador em simultâneo. Para resumir o circuito podemos observar o seguinte esquema: Este relatório será constituído pelas seguintes partes: a preparação do circuito, a simulação do circuito, a montagem do circuito e finalmente a conclusão relativa ao circuito e os seus procedimentos. II. Preparação 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 preparação será realizada de acordo as instruções do enunciado do trabalho de laboratório T1: 1. O circuito é composto pelas entradas A, B e RESET, vamos começar pela construção da unidade de controlo, em que serão utilizadas a entradas A e B para a definição dos diferentes estados, pois o RESET só será utilizado para reiniciar o contador a zero e também poderá ser aproveitado para reiniciar os flip-flops D. As saídas da unidade de controlo corresponderam as entrada CE e U`/D do contador, sendo assim vamos definir duas saídas na unidade de controlo, a saída 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 saídas e codificações: Saídas Estados Codificação 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 serão 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 alínea anterior vamos construir a tabela de transição de estados da unidade de controlo e a tabela de verdade para as variáveis 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 saída da parte da unidade de controlo e obter as respectivas expressões das tabelas (consideramos que nunca vão 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. Simulação 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 transição de estados Mapa de Karnaugh para Q0` Mapa de Karnaugh para Q1` Através do mapa de Q0` podemos obter a seguinte expressão : Q0` = A + Q1.B Através do mapa de Q1` podemos obter a seguinte expressão: Q1` = B + Q0.A Para completar as duas expressões falta inserir a funcionalidade de RESET aos dois flip-flops D (o equipamento do laboratório não contêm a funcionalidade de RESET) adicionado uma porta AND as expressões: Q0` = (A + Q1.B).RESET Q1` = (B + Q0.A).RESET Através dos termos mínimos podemos obter as seguintes expressões para as variáveis de saída da unidade de controlo: CE = Q1` . Q0` + Q1 . Q2 U`/D = Q1 Tabela das variáveis de saida
  • 3 ISCTE-IUL Fundamentos de Arquitectura de Computadores Grupo 13 A partir das expressões obtidas na parte II, vamos utilizar o programa Logisim para reproduzir o circuito e para fazer a simulação do seu funcionamento. A construção do circuito no programa começou-se adicionando-se os dois flip-flops D e o contador e com as expressões fez-se a ligação das entradas, saídas e portas logicas existentes. Na simulação 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 não será considera a entrada de duas pessoas ao mesmo tempo. Também 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 simulação não foram encontrados erros de acordo ao enunciado do trabalho em questão 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. Conclusão A projecção do circuito em questão deste trabalho foi realizado a partir de um diagrama de estados seguindo o modelo de Moore elaborando a tabela de transcrição de estados e a tabela de variáveis de saídas, obtendo assim as seguinte expressões com os mapas de Karnaugh: Q0` = (A + Q1.B).RESET Q1` = (B + Q0.A).RESET A parte do RESET não foi obtida pelo mapa de Karnaugh, pois foram adicionadas para permitir a reiniciação dos estados dos flip-flops D. Nas saídas obtemos as seguintes expressões: CE = Q1` . Q0` + Q1 . Q2 U`/D = Q1 Estas expressões pertencem a unidade de controlo que vai ligada ao contador formando assim o circuito pretendido. Podemos verificar que a resolução 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 implementação deste circuito verificamos que o seu funcionamento não é o mais eficaz, pois, na contagem ao chegar ao valor máximo quando é feita novamente a contagem, esta inicia a contagem outra vez com o valor mínimo. A solução para este problema foi encontrada implementado 3 portas logicas AND no circuito, estas três com funcionalidades diferentes. Teoricamente, este projecto poderia ser implementado fisicamente, uma das maneiras possíveis seria colocar receptores de infravermelhos na entrada e saída 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 vulnerável
  • 6 ISCTE-IUL Fundamentos de Arquitectura de Computadores Grupo 13 A unidade de controlo correspondera ao PLD GAL16V8 utilizado na montagem cuja programação das entradas e saídas vai ser definida da seguinte maneira: O contador vai corresponder ao contador binário de 4 saídas 74LS191 disponível no laboratório. 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 saídas U´/D e CE apenas dependerão do estado do circuito para realizar transições de estado no contador, ou seja, o valor das saídas mudaram quando se detectar transições de estados. Por exemplo a função de contar CE no contador ira depender do valor da saída CE da unidade de controlo, logo o valor da saída CE dependera do estado do circuito. O estado das funções do CE e U`\D do contador que correspondem apenas a saídas CE e U`\D da unidade de controlo tais valores serão alterados sincronamente se existir transições de estados na unidade de controlo. A implicação 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 saídas iriam depender das entradas da unidade de controlo e do seu estado O número do grupo realizador deste trabalho é o número 13, logo = 13 Fazendo a divisão entre 13 e 8 (13:8) obtemos o resto de 5, substituindo na equação obtemos: = 5 + 8 = 13 Considerando as saídas dos LEDS: L0, L1, L2, L3 em linha, o número representado em binário corresponderá aos LEDS L0,L1 e L3 activados. Será acrescentado as saídas do circuito um LED L5 para sinalizar a lotação da sala, ou seja, quando estiver com o valor 1 quer dizer que a lotação da sala foi atingida sendo o contrário para o valor 0. Fazendo uma tabela de verdade para as saídas L0, L1, L2, L3 e L4 vamos obter a expressão correspondente ao estado
  • 8 ISCTE-IUL Fundamentos de Arquitectura de Computadores Grupo 13 correspondente ao número 13 (ou seja quando o L0,L1 e L3 tenham o valor 1 a saída L4 terá o valor 1): A partir da tabela de verdade podemos chegar a seguinte expressão: L4 = L0.L1.L2`.L3. esta expressão poderá ser implementada a saída do circuito da seguinte maneira: A solução 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 saída, ou seja, quando o valor da porta âZâ é 1 quer dizer que o número 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 três 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 solução: Na contagem crescente quando chegar ao valor máximo (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 saída da porta âXâ será zero, fazendo com que não haja alteração no circuito. Estando no valor máximo será possível 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 saída da porta âXâ com o valor 1 e outra entrada da porta âYâ negada que estará ligada a saída da porta âZâ com o valor 1, sendo assim o valor da saída da porta Y será 1x1x1 = 1 permitindo que haja alteração no contador em sentido decrescente. Na contagem decrescente quando este chegar ao valor máximo (neste caso é o numero 0), o valor da saída 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 saída 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 saída da porta âYâ será igual a 0x1x1 = 0, fazendo com que não haja nenhuma alteração no circuito. Estando o valor da saída do circuito a zero será possível a contagem crescente, pois como a saída do TC será â0â a porta âXâ terá resultado de 1 a saída 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 solução foi encontrada pelo método de tentativa-erro e utilizando a funções logicas, esta foi simulada no Logisim e testada com sucesso. Z X Y