8
SISTEMAS DIGITAIS 2013-2014, MEEC 1 | Página TRABALHO DE LABORATÓRIO III CIRCUITOS SEQUENCIAIS 1. INTRODUÇÃO Pretende-se com este trabalho que os alunos se familiarizem com os elementos básicos de memória (flip-flops) e ainda com projecto e simulação de circuitos digitais em VHDL. Este trabalho é considerado para avaliação de conhecimentos. No início da aula cada grupo deverá impreterivelmente mostrar ao docente a resposta a todas as questões referidas na secção 2 e 3. Poderá realizar as secções 3 e 4 durante a aula de laboratório. No entanto, dado o pouco tempo de laboratório, recomenda-se que realize todo o trabalho em casa, usando a aula de laboratório apenas para testar o circuito na placa de prototipagem (subsecções 4.7 e 4.8). O trabalho deverá ser submetido no Fénix até às 23h59m de Sexta-Feira, dia 15 de Novembro em formato ZIP e deverá incluir o relatório (em formato PDF) e os ficheiros VHDL e SCH usados na elaboração do trabalho de laboratório. Na secção 5 é explicada a estrutura que o relatório deverá seguir. Como preparação prévia, deve ser feita uma leitura cuidada aos slides de introdução a VHDL (“Aula Temática: VHDL”) e 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 Projecto da Xilinx” e “Guia de Implementação de Circuitos na Placa de Desenvolvimento” os quais deverá utilizar como manuais de utilização. 2. ANÁLISE TEÓRICA DE UM CIRCUITO SEQUENCIAL BÁSICO O esquema da Figura 1 implementa um circuito sequencial constituído por 3 Flip-Flops (FF’s) tipo D (com entradas de Set e Reset assíncronas) e por lógica combinatória adicional. 1D C1 Q CLK S R 1D C1 Q Q2 CLK S R 1D C1 Q Q1 CLK S R Q0 S2 R2 S1 R1 S0 R0 D0 D1 D2 0 1 SEL MUX2:1 (M2_1) FFD FFD FFD INI B2 B1 B0 nQ0 Figura 1 - Circuito sequencial básico.

MEEC T SEL 1 CIRCUITOS SEQUENCIAIS - Autenticação · disp7.vhd Bloco de controlo do display de 7 segmentos - especificação. disp7.sym Bloco de controlo do display de 7 segmentos

Embed Size (px)

Citation preview

Page 1: MEEC T SEL 1 CIRCUITOS SEQUENCIAIS - Autenticação · disp7.vhd Bloco de controlo do display de 7 segmentos - especificação. disp7.sym Bloco de controlo do display de 7 segmentos

SISTEMAS DIGITAIS 2013-2014, MEEC

1 | P á g i n a

TRABALHO DE LABORATÓRIO III

CIRCUITOS SEQUENCIAIS

1. INTRODUÇÃO

Pretende-se com este trabalho que os alunos se familiarizem com os elementos básicos de

memória (flip-flops) e ainda com projecto e simulação de circuitos digitais em VHDL. Este trabalho

é considerado para avaliação de conhecimentos. No início da aula cada grupo deverá

impreterivelmente mostrar ao docente a resposta a todas as questões referidas na secção 2 e 3.

Poderá realizar as secções 3 e 4 durante a aula de laboratório. No entanto, dado o pouco tempo de

laboratório, recomenda-se que realize todo o trabalho em casa, usando a aula de laboratório

apenas para testar o circuito na placa de prototipagem (subsecções 4.7 e 4.8). O trabalho

deverá ser submetido no Fénix até às 23h59m de Sexta-Feira, dia 15 de Novembro em formato ZIP

e deverá incluir o relatório (em formato PDF) e os ficheiros VHDL e SCH usados na elaboração do

trabalho de laboratório. Na secção 5 é explicada a estrutura que o relatório deverá seguir.

Como preparação prévia, deve ser feita uma leitura cuidada aos slides de introdução a VHDL

(“Aula Temática: VHDL”) e 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 Projecto da Xilinx” e “Guia de Implementação de Circuitos

na Placa de Desenvolvimento” os quais deverá utilizar como manuais de utilização.

2. ANÁLISE TEÓRICA DE UM CIRCUITO SEQUENCIAL BÁSICO

O esquema da Figura 1 implementa um circuito sequencial constituído por 3 Flip-Flops (FF’s)

tipo D (com entradas de Set e Reset assíncronas) e por lógica combinatória adicional.

1D

C1

Q

CLK

S

R

1D

C1

QQ2

CLK

S

R

1D

C1

QQ1

CLK

S

R

Q0

S2

R2

S1

R1

S0

R0

D0D1D2

0

1

SEL

MUX2:1(M2_1)

FFDFFDFFD

INI

B2 B1 B0

nQ0

Figura 1 - Circuito sequencial básico.

Page 2: MEEC T SEL 1 CIRCUITOS SEQUENCIAIS - Autenticação · disp7.vhd Bloco de controlo do display de 7 segmentos - especificação. disp7.sym Bloco de controlo do display de 7 segmentos

SISTEMAS DIGITAIS 2013-2014, MEEC

2 | P á g i n a

Considere que a entrada B=< b2,b1,b0> corresponde ao dígito menos significativo do número de

aluno com menor valor, quando este número está representado em base 8. Por exemplo, para um

grupo formado pelos elementos 76143=224447(8) e 77188=226604(8), a constante B é 7.

2.1. De acordo com as suas previsões teóricas, e considerando INI=0, construa a tabela de

verdade do circuito indicando, para cada um dos estados (i.e., para cada valor possível à

saída dos FF’s), o valor do estado seguinte (i.e., o valor à saida dos flip-flops após o próximo

flanco de relógio). Justifique.

2.2. Indique qual a função da entrada INI e qual o estado dos flip-flops (FF’s) quando INI=1.

Justifique.

2.3. Para o circuito descrito complete o diagrama temporal da Figura 2, de acordo com as

previsões teóricas do funcionamento deste circuito obtidas em 2.1 (considere que os

tempos de propagação dos FF’s e das portas lógicas são desprezáveis face ao período de

relógio). Justifique todas as transições observadas em cada um dos sinais.

CLK

INI

Q2

Q1

Q0

SEL

D2

D1

D0

Figura 2 - Diagrama temporal a completar.

Page 3: MEEC T SEL 1 CIRCUITOS SEQUENCIAIS - Autenticação · disp7.vhd Bloco de controlo do display de 7 segmentos - especificação. disp7.sym Bloco de controlo do display de 7 segmentos

SISTEMAS DIGITAIS 2013-2014, MEEC

3 | P á g i n a

3. SIMULAÇÃO DE UM CIRCUITO SEQUENCIAL BÁSICO

3.1. Usando a ferramenta Xilinx ISE, descreva o circuito da figura 1 em VHDL. Para tal:

a) Crie um novo projecto no Xilinx ISE e importe através de Project Add Copy Of Source

todos os ficheiros VHDL indicados na Tabela 1.

b) Crie um novo módulo VHDL circuito através de Project New Source, com entradas

CLK (tipo std_logic), INI (tipo std_logic) e B (tipo std_logic_vector(2 downto

0)), e saída Q (tipo std_logic_vector(2 downto 0)).

c) Utilizando apenas a biblioteca de portas lógicas disponibilizada, descreva o circuito em

VHDL. Para utilizar a biblioteca de portas lógicas descreva todos os componentes da

figura 1 através da instanciação de um dos ficheiros disponibilizados. Por exemplo,

para descrever o multiplexer deverá fazer:

<nome_instancia>: bloco_mux2 port map(D0=>Q(0), D1=>nQ0, SEL=>SEL, Y=>D(0));

Nota: anexe ao relatório o código VHDL do circuito.

Tabela 1 - Biblioteca de portas lógicas (permitida apenas para simulação).

Ficheiro VHDL Componente Função lógica Caracterização temporal

porta_not.vhd porta_not NOT TP = 3 ns

porta_and2.vhd porta_and2 AND2 TP = 6 ns

porta_or2.vhd porta_or2 OR2 TP = 6 ns

porta_xor2.vhd porta_xor2 XOR2 TP = 9 ns

porta_xnor2.vhd porta_xnor2 XNOR2 TP = 9 ns

bloco_mux2.vhd bloco_mux2 MUX 2:1 TP = 12 ns

mem_ffdrs.vhd mem_ffdrs Flip-Flop tipo D com reset e set assíncronos

TSU = 1 ns ; TP = 4 ns

3.2. De forma a comprovar que a sequência de estados determinada na secção 2 está correcta,

faça uma simulação do circuito VHDL da alínea anterior e observe a sequência de valores

do sinal Q. Para tal faça Project New Source VHDL Test Bench e considere que:

a) O sinal B tem o valor determinado no início da secção 2.

b) O sinal INI está activo (valor lógico ‘1’) durante os primeiros 45 ns, passando depois

para o valor lógico ‘0’.

c) O período de relógio do sinal CLK é de 40ns.

Nota: apresente a simulação no relatório e apresente em anexo o código VHDL usado na

simulação do circuito.

3.3. Reduza o período de relógio do sinal CLK primeiro para 20ns e depois para 10ns. Para cada

caso determine a sequência de estados (sinal Q) observada. Apresente no relatório as

simulações e justifique as diferenças obervadas da sequência de estados face ao esperado.

Sugestão: observe na simulação os sinais internos: D=<D(2),D(1),D(0)> e compare com o

diagrama da alínea 2.3.

3.4. Considerando que os tempos de propagação e de setup apresentados na Tabela 2, indique a

expressão da frequência máxima de relógio do circuito.

Page 4: MEEC T SEL 1 CIRCUITOS SEQUENCIAIS - Autenticação · disp7.vhd Bloco de controlo do display de 7 segmentos - especificação. disp7.sym Bloco de controlo do display de 7 segmentos

SISTEMAS DIGITAIS 2013-2014, MEEC

4 | P á g i n a

Tabela 2 - Caracterização temporal genérica para os elementos da Figura 1.

Função lógica Tempo de propagação Tempo de setup

NOT ( ) -

AND2 ( ) -

XOR2 ( ) -

MUX 2:1 ( ) -

Flip-Flop tipo D ( ) ( )

4. IMPLEMENTAÇÃO DO CIRCUITO

4.1. Considere a implementação do circuito da figura 1 descrita no ficheiro sequential.sch

disponível na página da disciplina (ver figura 3).

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

disponível na página da disciplina.

b) Altere o esquema de forma a contar o número de vezes que o sinal Q passa pelo valor

'0'. Para tal, adicione ao esquema os componentes indicado na figura 4.

Figura 3 - Esquema eléctrico do circuito no Xilinx ISE, o qual é funcionalmente equivalente ao diagrama lógico apresentado na figura 1. Note que no editor de esquemas do Xilinx ISE, para fazer a ligação entre dois fios, basta dar o mesmo nome aos dois. Assim, a entrada de Set e de Reset de cada um dos flip-flops é indicada pela saída das portas lógicas AND2 e AND2B1 apresentadas no topo do esquema. Note ainda que as entradas e saídas do circuito são dadas pelo símbolo .

Page 5: MEEC T SEL 1 CIRCUITOS SEQUENCIAIS - Autenticação · disp7.vhd Bloco de controlo do display de 7 segmentos - especificação. disp7.sym Bloco de controlo do display de 7 segmentos

SISTEMAS DIGITAIS 2013-2014, MEEC

5 | P á g i n a

Figura 4 – Esquema do circuito de contagem.

4.2. Para a implementação do circuito foram disponibilizados um conjunto de ficheiros

(disponíveis na página da cadeira e na pasta /opt/Basys da máquina virtual), os quais se

apresentam na Tabela 3.

Tabela 3 - Ficheiros disponibilizados para a implementação do circuito nas placas Basys (LE3) e Basys2 (LSD1).

Nome do ficheiro Descrição

sd.sch Esquema principal.

Basys.ucf

ou Basys2.ucf

Ficheiro de configuração das portas – use o ficheiro correspondente à placa que tem na bancada, Basys (laboratório LE3) ou Basys2 (Laboratório LSD1).

clk_div.vhd Divisor de Frequência - especificação.

clk_div.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.3. Adicione ao projecto os ficheiros sd.sch, Basys.ucf ou Basys2.ucf, clk_div.vhd e

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

importados automaticamente).

4.4. 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.

Page 6: MEEC T SEL 1 CIRCUITOS SEQUENCIAIS - Autenticação · disp7.vhd Bloco de controlo do display de 7 segmentos - especificação. disp7.sym Bloco de controlo do display de 7 segmentos

SISTEMAS DIGITAIS 2013-2014, MEEC

6 | P á g i n a

Este projecto 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 respectivo) 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

para fixar sinais a '0', e o símbolo Vcc para fixar sinais a '1'.

Crie um símbolo para o esquema do circuito projectado na secção 3 e adicione-o ao

esquema do ficheiro sd.sch.

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

a) Ligue o sinal de relógio CLK 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 sw0.

d) Ligue os sinais Q2, Q1 e Q0 aos buffers dos LEDs Led2, Led1 e Led0, respectivamente.

e) Ligue os sinais Q2, Q1 e Q0 ao dígito 4 do display de 7 segmentos, i.e., aos portos

disp4_2, disp4_1 e disp4_0 da unidade lógica disp7, respectivamente. Ligue o porto

disp_4_3 à massa (ground) de forma a atribuir o valor lógico 0.

f) Ligue o valor de contagem C=<c3,c2,c1,c0> ao dígito 1 do display de 7 segmentos, i.e., aos

portos disp1_3, disp1_2, disp1_1 e disp1_0 da unidade lógica disp7,

respectivamente.

g) Active a escrita nos dígitos 4 e 1 do display de 7 segmentos, colocando as entradas

aceso4=1, aceso3=0, aceso2=0 e aceso1=1.

4.6. Gere o ficheiro sd.bit que deverá usar para implementar o circuito na placa de

desenvolvimento. Para tal, siga as instruções no guia “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.

4.7. Verifique o funcionamento correcto do circuito. Mostre-o ao docente. Comente.

4.8. Explique o que acontece nos LEDs e o porquê dos caracteres que visualiza nos displays.

Page 7: MEEC T SEL 1 CIRCUITOS SEQUENCIAIS - Autenticação · disp7.vhd Bloco de controlo do display de 7 segmentos - especificação. disp7.sym Bloco de controlo do display de 7 segmentos

SISTEMAS DIGITAIS 2013-2014, MEEC

7 | P á g i n a

5. AVALIAÇÃO DO TRABALHO DE LABORATÓRIO Na avaliação do trabalho de laboratório será tido em conta as seguintes componentes:

(30%) Preparação e resposta às questões da secção 2.

(30%) Resposta às alíneas da secção 3, incluindo ficheiros VHDL e simulações.

(20%) Apresentação do esquema completo da secção 4 e funcionamento do circuito na

aula de laboratório.

(20%) Estrutura, apresentação e qualidade do relatório.

O relatório deverá usar o seguinte conjunto de regras:

Páginas:

Máximo de 10 páginas A4 (excluindo anexos), incluindo uma página de capa com a indicação do turno de laboratório, do nome do docente responsável pelo turno, e do nome e número dos elementos do grupo.

Páginas numeradas, preferencialmente com cabeçalho, e margens não inferiores a 2cm.

Letra da família sans-serif (Arial, Verdana, Helvetica, Tahoma, Cambria, Calibri ou Trebuchet MS). Não deverão ser usadas fontes das famílias cursive ou fantasy, excepto para representar símbolos.

Pode, se desejar, usar uma fonte da família monospace (ex.: Courier) para indicar sinais físicos.

Tamanho da letra de fácil leitura e nunca inferior a 10pt.

Figuras e tabelas:

As figuras (p. ex.: esquemas) poderão ser feitos num programa de edição de imagens (p. ex.: MS Visio, Omnigraffle, Inkscape, ...) ou manuscritas, digitalizadas (com scan ou máquina fotográfica/telemóvel) e inseridas nos espaços correspondentes do relatório. No entanto as figuras deverão estar em estado apresentável (limpas, sem rabiscos ou rascunhos, facilmente perceptíveis e com tamanho de letra não inferior à do relatório).

As figuras deverão ser necessariamente enumeradas, acompanhadas de legenda (a legenda deverá explicar sucintamente o que se observa na figura) e ser referenciadas no texto.

Ficheiros VHDL e SCH:

Os ficheiros VHDL correspondentes à descrição dos circuitos e da simulação (Test Bench) deverão ser incluidos em anexo, usando uma fonte do tipo monospaced (ex.: Courier New). No entanto, deve haver uma referência no corpo do relatório para ficheiros VHDL anexos. Nota: as páginas referentes a anexos não são contabilizadas para o limite das 10 páginas.

A simulação dos Test Benches deve ser obrigatoriamente incluída no corpo do relatório (e não em anexo). Estas deverão ser numeradas usando uma legenda do tipo “Figura” e referenciadas no texto, explicando sucintamente o que se observa.

Todos os esquemas no Xilinx ISE realizados no contexto da secção 4 devem ser incluídos no relatório (e não em anexo) de forma legível. Para fazer um print screen podem ser usados quaisquer programas adicionais, tal como a ferramenta de recorte do Windows (Snipping Tool).

Submissão do ficheiro no Fénix:

O trabalho deverá ser submetido em formato ZIP, o qual deverá incluir: (a) corpo do relatório e anexos em formato PDF; (b) ficheiros VHDL e SCH (versão final) usados na elaboração do trabalho de laboratório.

Page 8: MEEC T SEL 1 CIRCUITOS SEQUENCIAIS - Autenticação · disp7.vhd Bloco de controlo do display de 7 segmentos - especificação. disp7.sym Bloco de controlo do display de 7 segmentos

SISTEMAS DIGITAIS 2013-2014, MEEC

8 | P á g i n a

Cabe aos alunos confirmar que o ficheiro foi correctamente submetido no sistema fénix, devendo para isso fazer download do ficheiro submetido e abrir com o Adobe Acrobat Reader.

A submissão deverá ser feita até às 23h59m de Sexta-Feira, dia 15 de Novembro de 2013, no link correspondente à entrega regular.

Caso pretendam, os alunos poderão entregar uma nova versão depois do prazo indicado, usando o link correspondente à entrega fora de prazo. Nesse caso sofrerão uma penalização de 2 valores por cada dia de atraso.

Caso sejam submetidos múltiplos ficheiros, apenas será tomado em consideração o último ficheiro submetido.

O não cumprimento das regras será penalizado na nota final do laboratório (ex: penalização

de 2 valores por página adicional).

O relatório deverá ainda ter a seguinte estrutura:

1. INTRODUÇÃO

Breve introdução aos objectivos do trabalho realizado.

2. FUNCIONAMENTO TEÓRICO

Respostas às perguntas da Secção 2.1 a 2.3.

3. SIMULAÇÃO DO CIRCUITO

Respostas às alíneas 3.1 a 3.4, incluindo apresentação das simulações efectuadas.

4. IMPLEMENTAÇÃO DO CIRCUITO

Respostas às perguntas da secção 4 do enunciado e comentários referentes à implementação

do circuito na placa de desenvolvimento Basys/Basys2.

5. CONCLUSÕES

Comentário acerca do trabalho realizado e dos resultados obtidos experimentalmente.

ANEXOS

Ficheiros VHDL referentes à secção 3.