Anda di halaman 1dari 5

Laboratrio EEA-21 1 Semestre de 2017 8 Experincia

Instituto Tecnolgico de Aeronutica - ITA


Diviso de Engenharia Eletrnica
Departamento de Eletrnica Aplicada
Laboratrio de EEA-21

Professor: Osamu Saotome


Sala: 179, ramal 5818
Email: osaotome@gmail.com

Lab8
8 Experincia
Sntese de Circuito Digital com descrio em VHDL e programao de PLD

11. Objetivos

1a. Descrio de circuitos digitais em VHDL.


2b. Familiarizao com a implementao de circuitos digitais em PLDs. (FPGAs)

22. Instrues gerais

1 Neste laboratrio ser solicitado o projeto de um circuito digital, que atenda a uma srie de
requisitos.
Este circuito, resultante do projeto, dever ser descrito utilizando linguagem VHDL, e testado
atravs de simulaes, antes da implementao na placa PLD (Programmable Logic Device), tipo FPGA (
Field Programmable Gate Array).
A implementao prtica do circuito se dar por meio da programao do dispositivo PLD
existente no laboratrio, presente na placa Xilinx Basys3. Para tal implementao, necessrio que o
aluno siga os passos necessrios para preparar o projeto para a gravao, conforme descrito no
TUTORIAL VIVADO COM EXEMPLO1-MUX.
A etapa final ser o teste do circuito na placa Xilinx Basys3. O aluno dever demonstrar o circuito
obtido funcionando, e entregar relatrio contendo os passos realizados.
Os itens que se espera estarem presentes no relatrio so:
Descrio em VHDL (com comentrios sobre a estrutura do cdigo);
Resultados da simulao do circuito obtido pela sntese (mostrando correto funcionamento);
Passos de preparao do projeto para a gravao da PLD (considerando a correta exibio dos
resultados na placa Basys3.

3. Tarefa proposta

Projetar um receptor de bytes (RX), recebidos de forma serial por uma linha de dados com uma taxa
de bits fixa rb. Considere a Figura 1.

1
Prof. Osamu Saotome osaotome@gmail.com
Laboratrio EEA-21 1 Semestre de 2017 8 Experincia

Figura 1. Interface do circuito RX.


Os sinais de entrada so:
RESET: quando em nvel lgico 0 (L) mantm o circuito inativo e as sadas em um valor default*;
quando em nvel lgico 1 (H) permite a operao normal;
CLOCK: sinal de frequncia fixa para referncia de temporizao;
RB: linha de dados serial.
Start2 : indica se a leitura ser de 1 byte (Start2 = 0) ou de 2 bytes (Start2 = 1).

Os sinais de sada so:


BYTE1 e BYTE2: bytes recebidos, conforme descrito a seguir;
LED: indicador de que est ocorrendo a recepo de byte(s).

O sinal serial a ser recebido na entrada RB possui o seguinte comportamento, onde T b o perodo
de bit (Tb = 1/Rb): quando nenhum byte est sendo transmitido, seu valor permanece em nvel lgico 1
(H). Quando um byte transmitido, inicialmente enviado um Start Bit, de nvel lgico 0 (L), com
durao Tb. A seguir, so enviados 8 bits de dados (byte), cada um com durao Tb, sendo o primeiro (b7)
o mais significativo (MSB) e o ltimo (b 0) o menos significativo (LSB). Em seguida, enviado um Stop
Bit, de nvel lgico 1 (H), com durao Tb.
Adotar Tb = 0,125 s (que corresponde a rb = 8 bits/s ou 1 byte/s).
Considere as seguintes situaes:
(1) Apenas um byte enviado: neste caso, aps o recebimento do Stop Bit, o circuito deve apresentar a
soma dos bits 1s contidos no byte recebido na sada BYTE1, e um valor default*(Nota 1) na sada
BYTE2. Durante a recepo dos bits, a sada LED deve indicar essa situao (ficar aceso).
Observe a Figura 2. A apresentao deve ser feita no display de 7 segmentos esquerda da placa PLD.
(2) Dois bytes so enviados: esta situao deve ser reconhecida se o Start Bit do segundo byte vier
imediatamente aps o Stop Bit do primeiro byte. Aps o recebimento dos dois bytes, a sada BYTE1
deve apresentar a soma dos bits 1s do primeiro byte recebido, e a sada BYTE2 apresentar a soma
dos bits 1s do segundo byte recebido. Durante a recepo dos bits, a sada LED deve indicar essa
situao (ficar aceso). Observe a Figura 3. A apresentao deve ser feita no display de 7 segmentos
existente na placa PLD, sendo a soma de 1s do primeiro byte no dgito da esquerda e a soma de 1s
do segundo byte no dgito da direita.

Figura 2. Linha de dados para envio de um byte.

2
Prof. Osamu Saotome osaotome@gmail.com
Laboratrio EEA-21 1 Semestre de 2017 8 Experincia
Figura 3. Linha de dados para envio de dois bytes.

Como forma de gerar a sequncia de bits/bytes para o exerccio o aluno dever projetar um
transmissor de bytes (TX) que gera o stream de bits. Para entrar com um byte de dados ou dois bytes de
dados no Transmissor, utilize as 16 chaves disponveis na placa Basys3.
Formado este stream de dados, o receptor (RX) dever executar as funes descritas neste roteiro,
recebendo serialmente os bits, identificando-os, e somando os seus bits 1s antes de apresentar os
resultados finais.

4. Implementao na Placa de Desenvolvimento Basys3

A Figura 4 demonstra um exemplo de organizao dos componentes que formam o circuito


solicitado. Observe que a placa Basys3 disponibiliza um sinal de 100MHz para ser utilizado como clock.
Porm, espera-se um clock de 8Hz para o funcionamento do circuito (Tb = 0,125s), portanto deve-se
dividir o clock de 100MHz para obter 8Hz. Outra sada do divisor de clock dever entregar um sinal de
60Hz para o controle dos displays de 7 segmentos, como explicado a seguir.

Figura 4. Exemplo para organizao do circuito solicitado.

O dispositivo programvel a ser utilizado xc7a35tcpg236-1, da famlia Artix-7. Na placa Basys3, as


interfaces utilizadas para entrada e sada so as seguintes:

CLOCK = sinal de 100MHz fornecido pela placa. Dever ser a entrada de um bloco divisor.
RESET = boto para ressetar o circuito, normalmente em nvel baixo(L). Quando pressionado,
envia nvel lgico alto (H).
BYTE1IN = 8 bits que sero conectados aos 8 switches esquerda da Basys3.
BYTE2IN = 8 bits que sero conectados aos 8 switches direita da Basys3.
START2 = indicador de leitura de 1 byte ou de 2 bytes. Dever ser o pino JA10.
BYTEOUT = 8 bits que sero exibidos nos displays de 7 segmentos da Basys3.
LED = indicador de funcionamento do circuito. Ligado ao pino JA4.
AN1 = ativa o transistor AN1 para exibir um algarismo no display da esquerda.
AN2 = ativa o transistor AN2 para exibir um algarismo no display da direita.

3
Prof. Osamu Saotome osaotome@gmail.com
Laboratrio EEA-21 1 Semestre de 2017 8 Experincia

NOTA IMPORTANTE: Para a configurao das entradas e sadas (IOs), faa uso do TUTORIAL VIVADO BASYS3.

Na Figura 5 observa-se como o Led deve ser ligado ao pino JA4. O pino JA10 dever ter um fio ligando-o
ao sinal GND, no caso de START2 = 0 (leitura de 1 byte), ou ao sinal VCC, no caso de START2 = 1 (leitura de 2 bytes).
Os quatro displays de 7 segmentos disponveis na placa Basys3 possuem os mesmos pinos a, b, c, d, e, f, g, ponto.
Para exibir os algarismos em dois displays ao mesmo tempo, deve-se comutar entre os transistores AN0 e AN1 em
uma frequncia de, por exemplo, 60Hz (visvel ao olho humano). Dessa forma, teremos a impresso que mais de
um display est aceso ao mesmo tempo, quando na verdade, estaro piscando alternadamente.

Figura 5. Ligao do led na porta JA4 do conector JA.

Veja abaixo a relao dos sinais de sada na Basys3. Esta tabela servir de referncia para editar o arquivo
Basys3_Master.xdc.
Para facilitar a verificao, deixe as linhas no usadas com os comentrios originais (sem delet-los).

SINAL DIREO PINO NA BASYS3 DESCRIO

LED Output G2 Pino JA4 no anodo do led

AN0 Output U2 Ativa o ltimo display

AN1 Output U4 Ativa o penltimo display

BYTEOUT (7) Output W7 Segmento a do display

BYTEOUT (6) Output W6 Segmento b do display

BYTEOUT (5) Output U8 Segmento c do display

BYTEOUT (4) Output V8 Segmento d do display

BYTEOUT (3) Output U5 Segmento e do display

BYTEOUT (2) Output V5 Segmento f do display

BYTEOUT (1) Output U7 Segmento g do display

BYTEOUT (0) Output V7 Ponto do display

Veja abaixo a relao dos sinais de entrada na Basys3. Esta tabela servir de referncia para editar o
arquivo Basys3_Master.xdc.
Para facilitar a verificao, deixe as linhas no usadas com os comentrios originais (sem delet-los).

SINAL DIREO PINO NA BASYS3 DESCRIO

4
Prof. Osamu Saotome osaotome@gmail.com
Laboratrio EEA-21 1 Semestre de 2017 8 Experincia
CLOCK Input W5 Clock de 100 MHz
RESET Input U18 Boto central (BTNC)

START2 Input T17 Boto da direita (BTNR)


BYTE1IN (7) Input R2 Switch 15 (SW15)

BYTE1IN (6) Input T1 Switch 14 (SW14)


BYTE1IN (5) Input U1 Switch 13 (SW13)

BYTE1IN (4) Input W2 Switch 12 (SW12)


BYTE1IN (3) Input R3 Switch 11 (SW11)

BYTE1IN (2) Input T2 Switch 10 (SW10)


BYTE1IN (1) Input T3 Switch 9 (SW9)

BYTE1IN (0) Input V2 Switch 8 (SW8)


BYTE2IN (7) Input W13 Switch 7 (SW7)

BYTE2IN (6) Input W14 Switch 6 (SW6)


BYTE2IN (5) Input V15 Switch 5 (SW5)

BYTE2IN (4) Input W15 Switch 4 (SW4)


BYTE2IN (3) Input W17 Switch 3 (SW3)

BYTE2IN (2) Input W16 Switch 2 (SW2)


BYTE2IN (1) Input V16 Switch 1 (SW1)

BYTE2IN (0) Input V17 Switch 0 (SW0)

Importante:
(Nota 1) O valor default* a ser apresentado nas sadas led, BYTE1 e BYTE2 quando RESET =
0 (L) deve ser tal que o LED e todos os segmentos do display permaneam apagados;
(Nota 2) O valor default* a ser apresentado na sada BYTE2 na situao em que h recepo de apenas
um byte deve ser tal que os segmentos do dgito 2 do display fiquem todos apagados.
(Nota 3) O contedo mostrado nos displays poder mudar apenas quando uma dada recepo (que pode
ser de 1 ou de 2 bytes) estiver finalizada. Durante a recepo (quando o LED deve ficar aceso), o
contedo do display no deve sofrer alteraes. Se apenas 1 byte for recebido, ao final da recepo o
dgito 1 dever mostrar o byte recebido, e o dgito 2 deve permanecer apagado. Se 2 bytes forem
recebidos, ao final da recepo o dgito 1 dever mostrar o primeiro byte e o dgito 2 o segundo byte.

5
Prof. Osamu Saotome osaotome@gmail.com

Anda mungkin juga menyukai