• Nenhum resultado encontrado

CIRCUITOS SEQUENCIAIS

N/A
N/A
Protected

Academic year: 2021

Share "CIRCUITOS SEQUENCIAIS"

Copied!
6
0
0

Texto

(1)

1 | P á g i n a

T

RABALHO DE LABORATÓRIO

III

C

IRCUITOS SEQUENCIAIS

1. I

NTRODUÇÃO

Pretende-se com este trabalho que os alunos se familiarizem com os elementos básicos de memória (flip-flops). Este trabalho é considerado para avaliação de conhecimentos.

Notas preliminares importantes:

• Este enunciado deverá ser preparado atempadamente por cada aluno

separadamente (incluindo as simulações em ambiente ISE - Xilinx).

• Uns dias antes da aula de laboratório, os alunos de cada grupo devem reunir-se,

conferir as suas respostas, comparar as simulações pedidas e verificar que os resultados são os esperados.

• As respostas às perguntas e as simulações devem ser incluídas na folha de

respostas disponível na página da cadeira que será impressa e entregue no início da aula de laboratório ao docente (uma única folha por grupo). Caso surjam dúvidas, devem recorrer aos horários de dúvidas.

• No início da sessão de laboratório, será distribuída a cada grupo uma nova folha

de perguntas/respostas, com menos perguntas, e ligeiramente diferentes, das preparadas em casa, relativas a uma modificação a fazer ao projeto desenvolvido em casa.

• Os alunos devem trazer assim uma pen com o projeto que desenvolveram, sendo

também fortemente aconselhável que tragam um portátil onde o projeto inicial esteja a correr convenientemente.

• A preparação da modificação ao projeto deve ser executada nos minutos iniciais

da aula. É fundamental que ambos os alunos venham devidamente preparados para executar esta preparação com rapidez.

• O restante tempo da aula será dedicado à modificação do projeto em ambiente

ISE – Xilinx (incluindo simulação) e ao teste do sistema modificado na placa FPGA Basys2. Para a modificação do projeto e simulação, os alunos tanto podem usar os computadores disponíveis nos laboratórios como o seu portátil pessoal (recomendado).

• Os últimos 5 minutos são reservados à escrita das conclusões, sendo a folha de

perguntas/respostas entregue no final da aula.

Como preparação prévia, deve ser feita uma leitura cuidada ao documento “Introdução ao

Ambiente de Projecto da Xilinx” disponível na página da cadeira. Deve ter consigo nesta e nas aulas

de laboratório seguintes cópias dos documentos “Introdução ao Ambiente de Projeto da Xilinx” e “Guia de Implementação de Circuitos na Placa de Desenvolvimento” os quais deverá utilizar como manuais de utilização.

(2)

2 | P á g i n a

2. A

NÁLISE DE UM CIRCUITO SEQUENCIAL BÁSICO

O esquema da Figura 1 implementa uma máquina de estados constituída por 3 Flip-Flops (FF’s) tipo JK, D e T (ambos com entradas de Set e Reset síncronas com o flanco ascendente de relógio) e lógica combinatória adicional. Este circuito está descrito no ficheiro sequential.sch disponível na

página da disciplina.

(3)

3 | P á g i n a

Note que no circuito da Figura 1, as ligações entre dois elementos podem (e devem, em geral, para evitar problemas na ferramenta Xilinx) ser feitas dando o mesmo nome à entrada ou saída de cada elemento, apenas colocando um troço de fio na respetiva entrada ou saída (sem fazer a ligação entre os dois elementos). Para que seja mais fácil a leitura em simulação, as variáveis de estado Q(2), Q(1) e Q(0) foram agrupadas num único bus Q(2:0), As entradas e saídas são atribuídas com o símbolo . As perguntas que se seguem devem ser respondidas na folha de respostas disponível na página da cadeira.

2.1. Considere que a entrada B=<B2,B1,B0> toma os valores <1,1,0>. De acordo com as suas previsões teóricas, construa a tabela de verdade do circuito indicando, para cada um dos estados (i.e., para cada valor possível à saída dos FFs), qual o estado seguinte (i.e., o valor à saída dos flip-flops após o próximo flanco de relógio), em função das entradas M e INI. Justifique.

2.2. Apresente a sequência de valores do circuito para os casos M=0 e M=1, indicando o valor inicial após a entrada INI estar ativa durante 1 ciclo de relógio. Explique a função da entrada M.

2.3. Usando o ambiente de projecto da Xilinx, faça uma simulação que permita verificar o funcionamento teórico previsto para o circuito em causa. Utilize o documento “Introdução

ao Ambiente de Projecto da Xilinx” (IAPX), acessível a partir da página web da disciplina,

como manual de utilização das ferramentas. Sugere-se que efetue os seguintes passos: a) Siga o manual de forma a criar um projecto no ambiente Xilinx ISE e a simular o

circuito exemplo indicado na página 6 do manual. Deve escolher o Package CP132 pois será utilizada a placa Basys2 neste laboratório.

Nota: não tem de apresentar a simulação deste circuito no relatório.

b) Importe, através de Project Add Copy Of Source, o ficheiro sequential.sch

disponível na pasta zipada distribution.zip na página da disciplina. A Figura 1

ilustra o circuito importado.

c) Recorrendo ao capítulo 7 do documento IAPX, crie um ficheiro de simulação em VHDL que permita testar o circuito, tendo como entrada B = <1,1,0> (constante) e um pulso no sinal INI (mínimo 120 ns) no início da simulação (durante pelo menos um período de clock). A simulação deve ilustrar o andamento das saídas (o estado) Q(2:0) para os casos em que M=0 e M=1. Defina o valor de CLK baseando-se nos sinais IN3, IN2 ou IN1 no exemplo do capítulo 7 do IAPX. Simule o circuito. Para que seja mais fácil conferir os resultados, no diagrama temporal da simulação clique na variável Q(2:0) com o botão direito do rato, escolha “radix” no menu e em seguida “Hexadecimal”.

3. P

ROJETO DE UM CIRCUITO DE CONTROLO BÁSICO

3.1. Faça uma cópia do ficheiro sequential.sch (a que deverá chamar sequential2.sch) e, no Xilinx, inclua este ficheiro no projeto fazendo Project Add Copy Of Source, e

modifique-o de forma a que as entradas B2, B1 e B0 deixem de ser entradas externas, mas passem a ser forçadas aos valores <1,1,0> (o que pode ser feito recorrendo aos sinais VCC e GND). Faça o mesmo para o sinal M que deve forçar a zero. Em seguida, crie um símbolo para o circuito modificado (colocando “View em modo Implementation”, escolhendo o ficheiro sequential2.sch na janela superior e na janela inferior clicar em “Design Utilities” e em “Create Schematic Symbol”), que terá apenas como entradas externas os

(4)

4 | P á g i n a

3.2. Com base no circuito obtido no ponto 3.1 e o mínimo de componentes combinatórios adicionais, dimensione um contador de 4 bits (saídas S(3:0) e o estado Q(2:0)) que repita a sequência de 8 números 0->1->2->3->A->B->C->D->0->etc. O contador deverá ter como entrada um sinal de inicialização INI. Tenha em atenção que o valor inicial da contagem (i.e., o valor “0”) deverá surgir na saída quando o estado do circuito sequencial corresponder ao valor B = <1,1,0>.

3.3. Implemente o circuito dimensionado no ponto anterior no Xilinx – ISE. Para isto, em Project crie uma New Source tipo Schematic à qual deverá chamar sequential3 e adicione o

símbolo criado no ponto 3.1 (escolhendo o tab Symbols e colocando em Symbol name filter o nome sequential2), bem como todos os componentes adicionais necessários ao projeto

do novo contador. Estabeleça as ligações necessárias entre os diversos componentes evitando usar fios entre os vários elementos, mas colocando um troço “wire” em cada entrada e saída e dando o nome respetivo através de “net name”. Agrupe a saída do novo contador num bus de 4 bits S(3:0) (para tal, desenhe um troço isolado de “wire” - ver ajuda em help ->help Topics -> Index -> net -> Adding - e em seguida transforme esse troço em bus – ver ajuda em help ->help Topics -> Index -> bus -> creating – na realidade basta ligar uma saída ao troço isolado, clicar na saída com o botão direito do rato e fazer o “Rename Port“ do nome para S(3:0). Poderá atribuir nomes às saídas isoladas (por exemplo S(3), S(2), S(1) e S(0)) onde for conveniente – ver ajuda em help ->help Topics -> Index -> name -> nets e em help ->help Topics -> Index -> name -> bus. Descreva desta forma o circuito completo, que deverá ter como entradas CLK e INI e saídas S(3:0) e Q(2:0), que deverão ser assinaladas com marcadores com o símbolo . Em seguida, verifique se o desenho tem erros, tal como indicado no manual IAPX e finalmente crie um ficheiro de simulação de forma a verificar o bom funcionamento do circuito. Quando tiver a certeza que este circuito está a funcionar corretamente, crie um novo símbolo para o circuito sequential3.sch.

3.4. Dimensione agora um novo contador cuja saída Y(3:0) gera uma sequência de 10 números, sendo os 8 primeiros iguais aos da saída S(3:0) de sequencial3.sch e os dois últimos

devem tomar os valores “E” e “F”. Utilize para tal, além da lógica combinatória mínima, um elemento de memória adicional do tipo flip-flop T com “reset” síncrono. A sequência Y(3:0) será assim: 0->1->2->3->A->B->C->D->E->F->0etc. Sugestão: descreva as

entradas T do FF e a variável que atua sobre o INI do circuito sequential3.sch (a

que chamará INI_SEQ), em função apenas de Q(2), Q(1), Q(0) e da saída do FF T (a que chamará I).

3.5. Implemente e simule este novo circuito seguindo os passos referidos anteriormente (criando uma nova New Source do tipo Schematic à qual chamará contador) baseado no

circuito sequential3.sch (cujo símbolo deve incluir neste projeto), no FF T e na lógica

combinatória adicional. Crie um novo ficheiro de simulação à semelhança do que foi feito nas alíneas anteriores e confirme que os resultados são os esperados. Este circuito deve ter como entradas CLK e INI e saídas Y(3:0), Q(2:0), S(3:0), a entrada e saída do FF T (T e I respetivamente) e ainda a variável que atua sobre o INI do circuito sequential3

(INI_SEQ).

3.6. Deve ser preparada em casa a secção 4 deste enunciado até ao ponto 4.4 inclusive!!!

Quando garantidamente os resultados forem os esperados, faça uma cópia do projeto

feito em casa (File -> Copy Project), dando o nome L3_aula ao novo projeto e garantindo

que a opção copy sources to the new location está ativada. Este é o projeto que irá modificar na aula, sem perigo de perder o projeto original. Os alunos devem levar numa pen os dois projetos para a aula (e se possível ambos os projetos num computador portátil onde o projeto esteja a funcionar corretamente).

(5)

5 | P á g i n a Nota importante: é fundamental que os alunos sigam os passos indicados na preparação em casa com muita atenção pois só assim poderão facilmente fazer a preparação na aula em tempo útil.

4. P

REPARAÇÃO PARA TESTE NA PLACA

B

ASYS

2

Assume-se que os alunos já simularam exaustivamente e com sucesso o circuito projetado na alínea 3. Os passos seguintes devem ser preparados em casa, até à criação do ficheiro .bit (ponto 4.4) para programação da placa Basys2.

Para o teste na placa do circuito projetado, foi disponibilizado um conjunto de ficheiros (disponíveis na página da cadeira):

Nome do ficheiro Descrição

sd.sch Esquema principal.

Basys2.ucf Ficheiro de configuração das placas para os alunos que têm

laboratório no LSD1.

clkdiv.vhd Divisor de Frequência - especificação. clkdiv.sym Divisor de Frequência - símbolo.

disp7.vhd Bloco de controlo do display de 7 segmentos - especificação. disp7.sym Bloco de controlo do display de 7 segmentos - símbolo.

Não modifique os nomes destes ficheiros.

4.1. Adicione ao projeto os ficheiros sd.sch, Basys2.ucf, clkdiv.vhd e disp7.vhd com

“Project  Add Copy of Source” (os ficheiros com extensão .sym serão importados

automaticamente).

4.2. Abra o esquema do módulo sd clicando duas vezes em cima do ficheiro sd.sch.

Nota: se ao abrir o esquema lhe aparecer uma janela com a mensagem: “Open Schematic File Errors – Out-of-date Symbols” clique em “Update Instances” e em OK.

Este projeto não é mais do que uma interface para o aluno: as entradas e saídas já estão configuradas de acordo com o modelo do dispositivo utilizado na placa de desenvolvimento. Funciona como uma placa de prototipagem virtual.

Nota: Não altere o conteúdo das caixas indicadas a vermelho nem os nomes dos marcadores de entrada/saída.

À esquerda do esquema estão as interfaces de entrada correspondentes aos vários interruptores disponíveis na placa. À direita tem as saídas correspondentes aos 4 displays de 7 segmentos (acendem o símbolo hexadecimal correspondente ao número binário de 4 bits respetivo) e aos leds simples.

No esquema pode deixar os sinais dos botões de entrada que não usa “no ar” (o programa elimina-as automaticamente). No entanto, para todas as interfaces de saída (caixa vermelha à direita), deve ligar todas as entradas que não usa a Gnd. Utilize o símbolo Gnd

(6)

6 | P á g i n a Crie um símbolo para o esquema do circuito projetado na secção 3 ( ) e adicione-o ao esquema do ficheiro sd.sch.

NOTA: Serão penalizados os trabalhos que insiram o esquema da secção 3 diretamente no ficheiro sd.sch.

4.3. Realize as seguintes ligações no editor de esquemas:

a) Ligue o sinal de relógio CLK do contador ao sinal clk_slow; este sinal tem uma

frequência de 0,8Hz, o que permite visualizar as mudanças de estado.

b) Ligue o relógio do display de 7 segmentos (unidade disp7) à saída clk_disp da

unidade clkdiv.

c) Ligue a entrada INI ao buffer do botão de pressão 0, pressure0.

d) Ligue os sinais Q(2), Q(1) e Q(0) aos buffers dos LEDs Led2, Led1 e Led0,

respetivamente.

e) Ligue os sinais Y(3), Y(2), Y(1) e Y(0) ao primeiro dígito do display de 7 segmentos, i.e., aos portos disp1_3, disp1_2, disp1_1 e disp1_0 da unidade lógica disp7,

respetivamente.

f) Active a escrita no primeiro dígito do display de 7 segmentos, colocando a entrada

aceso1=1. Desligue ainda os restantes dígitos colocando aceso2=aceso3=aceso4=0.

4.4. Siga os passos descritos no ponto 4 do “Guia de Implementação de Circuitos na Placa de

Desenvolvimento” que permite gerar o ficheiro “.bit” (deve ser feito em casa mesmo sem

acesso à placa).

4.5. Na aula, implemente o circuito na placa de desenvolvimento. Para tal, siga as instruções dos pontos 3 e 5 do “Guia de Implementação de Circuitos na Placa de Desenvolvimento”. Note que o interruptor da placa deve estar na posição ON.

Nota: durante a síntese do circuito na placa de desenvolvimento, a ferramenta poderá indicar um conjunto de avisos (warnings) e erros. Os erros deverão ser todos corrigidos; os warnings podem em geral ser ignorados, sendo que alguns são originados pelo facto de ter entradas/saídas no ar.

5. T

RABALHO A DESENVOLVER NA AULA

Como foi referido, o trabalho referido nos pontos 2, 3 e 4 (incluindo a criação do ficheiro .bit) deve ser preparado em casa. Na aula, os alunos devem começar por preparar a modificação ao projeto, preencher a folha de respostas fornecida na aula, simular a modificação ao projeto e refazer o processo para gerar o novo ficheiro .bit modificado, que será testado na placa. Também será pedido aos alunos para testar o ficheiro .bit gerado em casa.

Referências

Documentos relacionados

Detectadas as baixas condições socioeconômicas e sanitárias do Município de Cuité, bem como a carência de informação por parte da população de como prevenir

(2013), cultivando moranga irrigada com esgoto doméstico tratado, no final do experimento detectou níveis de salinidade do solo (CE) dos tratamentos irrigados

Excluindo as operações de Santos, os demais terminais da Ultracargo apresentaram EBITDA de R$ 15 milhões, redução de 30% e 40% em relação ao 4T14 e ao 3T15,

Em resumo, as completivas podem ter as funções de sujeito, objeto direto, complemento oblíquo de verbo e complemento oblíquo de nome (se selecionadas); se se

Núbia Ivete Monteiro de Oliveira, constituída pela Portaria nº 290/2012, publicada no DOE de 20/06/2012,alterada pela Portaria SEGESP nº 023/2013, publicada no DOE de

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Durante a deglutição os valores da atividade elétrica foram superiores nos músculos temporal direito e masseteres quando houve oclusão normal dos lábios, sendo que o músculo

Após a colheita, normalmente é necessário aguar- dar alguns dias, cerca de 10 a 15 dias dependendo da cultivar e das condições meteorológicas, para que a pele dos tubérculos continue