Baixe o app para aproveitar ainda mais
Prévia do material em texto
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Laboratório de Sistemas Digitais Guia de Aulas Elaborado por: Prof. Dr. Dilmar Malheiros Meira Domingo, 04/08/2013 – 15h56min Página 1 Aulas 4 e 5 Dispositivos Lógicos Programáveis (PLD) Princípio de Funcionamento de um PLD PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Laboratório de Sistemas Digitais Guia de Aulas Elaborado por: Prof. Dr. Dilmar Malheiros Meira Domingo, 04/08/2013 – 15h56min Página 2 Fluxo de Projeto de um sistema digital com PLD Projeto no nível de blocos, projeto no nível de sistema e desenvolvimento de software. Entrada do Projeto Síntese “Place and Route” Análise de tempo Simulação Programação e configuração PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Laboratório de Sistemas Digitais Guia de Aulas Elaborado por: Prof. Dr. Dilmar Malheiros Meira Domingo, 04/08/2013 – 15h56min Página 3 Principais alternativas para a entrada do projeto a) Diagrama esquemático b) Descrição do circuito através de uma linguagem de descrição de hardware (HDL). Principais Linguagens de Descrição de Hardware (Hardware Description Languages – HDL) a) VHDL VHSIC(*) HDL b) Verilog c) AHDL Altera HDL (*) Very High Speed Integrated Circuit Configuração (“Programação”) de um PLD PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Laboratório de Sistemas Digitais Guia de Aulas Elaborado por: Prof. Dr. Dilmar Malheiros Meira Domingo, 04/08/2013 – 15h56min Página 4 ATENÇÃO: Os componentes do kit Altera DE2 são muito sensíveis a descargas eletrostáticas. Por isso, tenha o máximo cuidado para NÃO TOCAR nas partes metálicas da placa, pois isso poderia provocar a destruição dos circuitos. O kit Altera DE2 PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Laboratório de Sistemas Digitais Guia de Aulas Elaborado por: Prof. Dr. Dilmar Malheiros Meira Domingo, 04/08/2013 – 15h56min Página 5 Diagrama esquemático do kit DE2 U11 U30 EPCS 16 EP2C35F672C6 PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Laboratório de Sistemas Digitais Guia de Aulas Elaborado por: Prof. Dr. Dilmar Malheiros Meira Domingo, 04/08/2013 – 15h56min Página 6 Experimento de laboratório Controlador de semáforos No cruzamento das ruas A, B e C existem três semáforos, respectivamente: SA, SB e SC. Os três semáforos se fecham quando um guarda aciona um botão D, permitindo que os alunos de uma escola localizada nesse cruzamento atravessem as ruas com segurança. Em cada rua existe um sensor que acusa a presença de carros. Quando D não está acionado, esses sensores fazem o semáforo abrir para uma das três ruas, segundo as regras abaixo: 1. Se vierem carros em todas as ruas, o semáforo SA é o que abre. 2. O semáforo SA também se abrirá se em nenhuma das ruas vierem carros. 3. Vindo carros apenas pelas ruas A e B, os carros que vêm pela rua A têm prioridade. 4. Vindo carros apenas pelas ruas B e C, os carros que vêm pela rua B têm prioridade. 5. Vindo carros apenas pelas ruas A e C, os carros que vêm pela rua C têm prioridade. 1ª Parte Projete o circuito mais simples possível para o comando de cada semáforo, utilizando as seguintes convenções: Semáforo aberto: “0”; Semáforo fechado: “1”; Sensor ativo (presença de carros): “1” Botão D acionado (comanda fechamento dos semáforos): “1” Entradas Saídas D A B C SA SB SC 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Laboratório de Sistemas Digitais Guia de Aulas Elaborado por: Prof. Dr. Dilmar Malheiros Meira Domingo, 04/08/2013 – 15h56min Página 7 Equações dos circuitos: ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ Diagrama dos circuitos: B A D C SA SB SC PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Laboratório de Sistemas Digitais Guia de Aulas Elaborado por: Prof. Dr. Dilmar Malheiros Meira Domingo, 04/08/2013 – 15h56min Página 8 2ª Parte Usando o software Quartus II, crie um projeto (“project”) denominado semaforo_PLD no diretório desktop\semaforo. Em seguida crie um novo arquivo para entrada de um projeto (“design”) em VHDL. Entrada e compilação do projeto Entre com a seguinte descrição de hardware. Exceto nos comentários, procure usar apenas letras, números e o caracter “_”. Nunca use acentos ou cedilhas, pois eles não são corretamente reconhecidos pelo compilador. O compilador não faz distinção entre letras maiúsculas e minúsculas. Para efeito de clareza, entretanto, é praxe usar letras maiúsculas apenas em palavras reservadas da linguagem. entity semaforo_PLD is port ( -- Pinos de entrada (“Input Ports”) D, A, B, C : in bit; -- Pinos de Saída (“Output Ports”) Sa, Sb, Sc : out bit ); end semaforo_PLD; architecture equacoes of semaforo_PLD is begin Sa <= D or (not A and B) or (not B and C); Sb <= D or A or not B; Sc <= D or B or not C; end equacoes; Usando o Quartus II (1) Ao executar o software Quartus II, antes de começar a projetar (“design”), a primeira coisa a fazer é abrir um projeto (“Project”) existente ou criar um novo projeto. Para criar um novo projeto: File New Project Wizard Em seguida, entrar com dados do novo projeto (Project name and directory; name of top-level design entry, etc.) Para abrir um projeto existente: File Open Project... Em seguida, escolher o projeto no qual se deseja trabalhar (arquivo com extensão “qpf” – Quartus Project File). Para criar um novo arquivo de entrada de projeto (“design”) em VHDL: File New... Design Files - VHDL File PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Laboratório de Sistemas Digitais Guia de Aulas Elaborado por: Prof. Dr. Dilmar Malheiros Meira Domingo, 04/08/2013 – 15h56min Página 9 Experimento de Laboratório – Arquitetura alternativa O estilo da arquitetura a seguir é denominado comportamental, porque a tabela-verdade descreve o comportamento do sistema. No caso da arquitetura anterior, onde osistema é descrito através de suas expressões booleanas, a ênfase é na estrutura do sistema e não no seu comportamento. Por isso, naquele caso diz-se que o estilo da arquitetura é estrutural. Em qualquer caso, cabe ao compilador interpretar adequadamente a descrição e gerar o circuito correspondente. entity semaforo_PLD is port ( -- Input ports D, A, B, C : in bit; -- Output ports Sa, Sb, Sc : out bit ); end semaforo_PLD; architecture tabela of semaforo_PLD is signal entradas : bit_vector(3 downto 0); begin entradas <= D&A&B&C; with entradas select Sa <= '0' when "0000", '1' when "0001", '1' when "0010", '1' when "0011", '0' when "0100", '1' when "0101", '0' when "0110", '0' when "0111", '1' when others; with entradas select Sb <= '1' when "0000", '1' when "0001", '0' when "0010", '0' when "0011", '1' when "0100", '1' when "0101", '1' when "0110", '1' when "0111", '1' when others; with entradas select Sc <= '1' when "0000", '0' when "0001", '1' when "0010", '1' when "0011", '1' when "0100", '0' when "0101", '1' when "0110", '1' when "0111", '1' when others; end tabela; PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Laboratório de Sistemas Digitais Guia de Aulas Elaborado por: Prof. Dr. Dilmar Malheiros Meira Domingo, 04/08/2013 – 15h56min Página 10 Salve o arquivo no diretório do projeto (“Project”), com o nome semaforo_PLD. O arquivo do projeto (“design”) salvo deve ter a extensão “vhd” e precisa ter o mesmo nome da entidade (“entity”) do código VHDL. Antes de efetuar a compilação, certifique-se de que o “design” corresponde à entidade de mais alto nível do projeto seu “Project”. Também é necessário, antes de efetuar a compilação, definir a família e o nome do dispositivo PLD a ser utilizado, ou seja, Cyclone II e EP2C35F672C6, respectivamente. Concluída a compilação, deve-se verificar a existência de erros, os quais devem ser corrigidos. Também devem ser observadas as mensagens de aviso (“warning”), pois alguns desses avisos podem ser de grande importância para o projeto. Por exemplo, o seguinte aviso é de extrema importância: Warning: The Reserve All Unused Pins setting has not been specified, and will default to 'As output driving ground'. Quando esse aviso ocorrer, a configuração a seguir SEMPRE deverá ser feita: Assignments Device... Device and Pin Options Unused Pins Reserve all unused pins: As input tri-stated. OK A especificação de o que deve ser feito com os pinos do FPGA não utilizados no nosso projeto é de extrema importância para a proteção do kit DE2, já que a maioria dos pinos do FPGA já se encontram conectados aos recursos da placa. Sempre que qualquer detalhe do projeto for modificado, é obrigatório que ele seja compilado novamente. Usando o Quartus II (2) Para definir o dispositivo PLD a ser utilizado na implementação: Em geral ,essa definição é feita durante a criação do projeto (“Project”). Caso a isso não tenha ocorrido, ou se for desejável alterar o nome do dispositivo, deve-se utilizar a seguinte sequência de ações: Assignments Device... Family: Cyclone II Device: EP2C35F672C6 Para compilar o projeto: Processing Start Compilation Para visualizar o circuito gerado pelo Quartus II: Tools Netlist viewers RTL viewer PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Laboratório de Sistemas Digitais Guia de Aulas Elaborado por: Prof. Dr. Dilmar Malheiros Meira Domingo, 04/08/2013 – 15h56min Página 11 D B C Sa Sb Sc Sc~1 A Sa~0 Sb~1 Sa~3 Sa~2 Visualização do circuito gerado pelo Quartus II: Vinculação dos pinos de entrada e saída do projeto aos pinos físicos do FPGA Antes de configurar o FPGA de acordo com o nosso projeto é necessário vincular cada pino de entrada ou de saída do projeto a um pino físico do FPGA. Isso é feito através de uma ferramenta que faz parte do software Quartus II. A placa DE2 já tem os seus recursos de entrada e/ou de saída interligados a pinos bem definidos do FPGA, conforme consta no Capítulo 4 do documento DE2 User Manual , da Altera. A seguir é apresentada, como exemplo, a tabela que informa qual o pino do FPGA que está interligado a cada uma das chaves SW[0] a SW[17] do kit DE2. PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Laboratório de Sistemas Digitais Guia de Aulas Elaborado por: Prof. Dr. Dilmar Malheiros Meira Domingo, 04/08/2013 – 15h56min Página 12 Para o presente projeto, utilizaremos os seguintes recursos da placa DE2: Entrada D: chave SW[17] PIN_V2 Para cima: nível lógico alto ("1") Entrada A: chave SW[16] PIN_V1 Para cima: nível lógico alto ("1") Entrada B: chave SW[15] PIN_U4 Para cima: nível lógico alto ("1") Entrada C: chave SW[14] PIN_U3 Para cima: nível lógico alto ("1") Saída Sa: LED LEDR[16] PIN_AE12 Nível lógico alto ("1"): aceso Saída Sb: LED LEDR[15] PIN_AE13 Nível lógico alto ("1"): aceso Saída Sc: LED LEDR[14] PIN_AF13 Nível lógico alto ("1"): aceso PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Laboratório de Sistemas Digitais Guia de Aulas Elaborado por: Prof. Dr. Dilmar Malheiros Meira Domingo, 04/08/2013 – 15h56min Página 13 ATENÇÃO: A especificação de o que deve ser feito com os pinos do FPGA não utilizados no nosso projeto é de extrema importância para a proteção do kit DE2, já que a maioria dos pinos do FPGA já se encontram conectados aos recursos da placa. Portanto, a configuração a seguir SEMPRE deverá ser feita: Assignments Device... Device and Pin Options Unused Pins Reserve all unused pins: As input tri-stated. Não usar pinos dos tipos “GND”, “VCC”, “VREF”, etc. Também não se devem usar pinos do tipo “Dedicated Programming”, que se destinam à comunicação com o computador por ocasião da configuração do dispositivo. Após a atribuição de pinos deve-se compilar novamente o projeto. PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Laboratório de Sistemas Digitais Guia de Aulas Elaborado por: Prof. Dr. Dilmar Malheiros Meira Domingo, 04/08/2013 – 15h56min Página 14 Configuração do FPGA Na placa DE2, a configuração (“programação”) do FPGA Cyclone II EP2C35F672C6 pode ser feita de duas maneiras diferentes: a) Modo JTAG b) Modo AS Qualquer que seja o modo de configuração (JTAG ou AS), a placa DE2 precisará ser conectada, via cabo USB, ao computador onde estiver sendo executado o software Quartus II. O uso dessa conexão permitirá que o Quartus II identifique a placa DE2 como um dispositivo “Altera USB Blaster”. No Laboratório, SEMPRE deve ser utilizado o modo JTAG. Configuração no modo JTAG: No modo JTAG, o FPGA retém as informações de configuração apenas enquanto a placa estiver alimentada. Quando a alimentação é desligada,a configuração é perdida e o FPGA precisará ser novamente configurado via Quartus II e cabo USB. Para carregar as informações de configuração no FPGA, siga os seguintes passos: a) Ligue a alimentação da placa DE2. b) Conecte o cabo USB no conector USB Blaster da placa DE2. c) Através da chave RUN/PROG, situada do lado esquerdo da placa, configure o circuito de programação da placa DE2. No modo JTAG, a chave RUN/PROG deverá ser colocada na posição RUN. d) O FPGA pode agora ser configurado, utilizando o módulo de programação do Quartus II (Tools Programmer) e selecionando um arquivo de configuração com a extensão “sof” (SRAM Object File). PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Laboratório de Sistemas Digitais Guia de Aulas Elaborado por: Prof. Dr. Dilmar Malheiros Meira Domingo, 04/08/2013 – 15h56min Página 15 Configuração no modo AS (Active Serial): NÃO É UTILIZADO NESTE LABORATÓRIO. No modo AS, os dados de configuração, armazenados no circuito integrado EPCS16, são automaticamente carregados no FPGA toda vez que a alimentação da placa DE2 é ligada. Para carregar as informações de configuração no dispositivo de memória EEPROM EPCS16, siga os seguintes passos: a) Ligue a alimentação da placa DE2. b) Conecte o cabo USB no conector USB Blaster da placa DE2. c) Através da chave RUN/PROG, situada do lado esquerdo da placa, configure o circuito de programação da placa DE2. No modo AS, a chave RUN/PROG deverá ser colocada na posição PROG. d) O FPGA pode agora ser configurado, utilizando o módulo de programação do Quartus II (Tools Programmer) e selecionando um arquivo de configuração com a extensão “pof” (Programmer Object File). e) Assim que a operação de configuração for concluída, retorne a chave RUN/PROG para a posição RUN e reinicialize a placa DE2 (desligue e ligue novamente sua alimentação). Essa ação permitirá que os novos dados de configuração, armazenados no dispositivo de memória EPCS16, sejam automaticamente carregados no chip FPGA. Exercício individual para casa Projete o circuito de um conversor de código que possui 4 bits de entrada, codificados em BCD, e sete bits de saída, codificados no código “7 segmentos”. O código “7 segmentos” é utilizado para acender sete segmentos de um display, segundo o caractere cuja representação é desejada. Veja abaixo a apresentação dos números de 0 a 9 em um display de 7 segmentos e a identificação de cada segmento. Inicie seu trabalho pela construção da tabela verdade.
Compartilhar