UNIFEI Universidade Federal de Itajubá IESTI - Instituto de Engenharia de Sistemas e Tecnologia da Informação ELT029/ELT041/ELT512 Laboratórios de Eletrônica Digital I e Eletrônica Digital II Desenvolvimento com a placa Altera DE1 Prof. Rodrigo de Paula Rodrigues 24 de Fevereiro de 2014 A placa DE1 A placa DE1 da Altera é um kit de desenvolvimento para apreciação da família de arranjos de portas programáveis em campo (FPGA) Cyclone II. Essa placa emprega um dispositivo de lógica programável da série EP2C20F484C7 que, agregado ao conjunto de periféricos do kit, permitem com que sejam desenvolvidas aplicações simples de lógica combinacional até complexas aplicações de lógica sequencial envolvendo processamento de sinais de áudio, vídeo e afins. ELT029/ELT041/ELT512 Prof. Rodrigo de Paula Rodrigues 1/12
Periféricos da placa DE1 Alguns dos periféricos presentes no kit DE1 são citados na sequência. 1 - Chaves de seleção de estado As chaves de seleção de estados são os periféricos de SW[0] a SW[9]. Seu estado lógico alto ocorre quando a chave estiver em sua posição para cima. Chave Liga/Desliga Periférico FPGA SW0 PIN_L22 SW1 PIN_L21 SW2 PIN_M22 SW3 PIN_V12 SW4 PIN_W12 SW5 PIN_U12 SW6 PIN_U11 SW7 PIN_M2 SW8 PIN_M1 SW9 PIN_L2 2 - Botões de pressionamento Os botões de pressionamento presentes no kit são os periféricos de nome KEY[0] a KEY[3]. Estas chaves são do tipo normalmente fechadas e, desta forma, geram um pulos negativo ao serem pressionadas. Sem pressionamento, essas chaves geram nível lógico alto. Botões Periférico FPGA KEY0 PIN_R22 KEY1 PIN_R21 KEY2 PIN_T22 KEY3 PIN_T21 3 - LEDs de sinalização O kit DE1 possui dois grupos de LEDs associados a pinos de seu dispositivo de lógica programável. Os periféricos de nome LEDR[0] a LEDR[9] emitem luz na cor vermelha, periféricos de nome LEDG[0] a LEDG[7] emitem luz na cor verde. ELT029/ELT041/ELT512 Prof. Rodrigo de Paula Rodrigues 2/12
LED vermelho Periférico FPGA LEDR0 PIN_R20 LEDR1 PIN_R19 LEDR2 PIN_U19 LEDR3 PIN_Y19 LEDR4 PIN_T18 LEDR5 PIN_V19 LEDR6 PIN_Y18 LEDR7 PIN_U18 LEDR8 PIN_R18 LEDR9 PIN_R17 Periférico LEDG0 LEDG1 LEDG2 LEDG3 LEDG4 LEDG5 LEDG6 LEDG7 LED verdes FPGA PIN_U22 PIN_U21 PIN_V22 PIN_V21 PIN_W22 PIN_W21 PIN_Y22 PIN_Y21 4 Displays de 7 segmentos Estão presentes quatro displays de 7 segmentos na placa. Tais periféricos recebem a designação de HEX[0] a HEX[3] e são do tipo anodo comum, ou seja, cada um de seus segmentos é ativo com nível lógico baixo. O pino de acionamento do segmento de ponto decimal de cada um desses periféricos não foi conectado a um pino do FPGA e, desta forma, não pode ser manipulado. 3.3V a b c d e f g Para se trabalhar com esse tipo de display, se deve especificar o sinal de estado de acionamento para cada um dos 7 segmentos que compõem um dígito. A forma mais comum de aplicar este tipo de periférico é utilizá-lo como display numérico de 0 a 9, muito embora seja possível também se trabalhar com os dígitos hexadecimais de a a f. As duas próximas tabelas possuem a relação entre os dígitos hexadecimais e os respectivos estados lógicos necessários para reproduzi-los por meio dos displays de 7 presentes na placa de desenvolvimento. Dígito a b c d e f g 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 2 0 0 1 0 0 1 0 Dígito a b c d e f g 8 0 0 0 0 0 0 0 9 0 0 0 0 1 0 0 A 0 0 0 1 0 0 0 ELT029/ELT041/ELT512 Prof. Rodrigo de Paula Rodrigues 3/12
3 0 0 0 0 1 1 0 4 1 0 0 1 1 0 0 5 0 1 0 0 1 0 0 6 0 1 0 0 0 0 0 7 0 0 0 1 1 1 1 b 1 1 0 0 0 0 0 c 1 1 1 0 0 1 0 d 1 0 0 0 0 1 0 E 0 1 1 0 0 0 0 F 0 1 1 1 0 0 0 As quatro tabelas seguintes possuem o mapa de associação dos segmentos dos displays presentes na placa de desenvolvimento. HEX0 HEX1 HEX2 HEX3 Periférico FPGA Periférico FPGA Periférico FPGA Periférico FPGA a PIN_J2 a PIN_E1 a PIN_G5 a PIN_F4 b PIN_J1 b PIN_H6 b PIN_G6 b PIN_D5 c PIN_H2 c PIN_H5 c PIN_C2 c PIN_D6 d PIN_H1 d PIN_H4 d PIN_C1 d PIN_J4 e PIN_F2 e PIN_G3 e PIN_E3 e PIN_L8 f PIN_F1 f PIN_D2 f PIN_E4 f PIN_F3 g PIN_E2 g PIN_D1 g PIN_D3 g PIN_D4 ELT029/ELT041/ELT512 Prof. Rodrigo de Paula Rodrigues 4/12
Gravação do dispositivo FPGA Os passos para se gravar uma descrição em HDL ou um circuito esquemático no dispositivo de lógica programável presente na placa DE1 são os seguintes: i. Especificar, junto ao projeto, o FPGA com o qual trabalhar; ii. Associar as portas de entrada e de saída do circuito a pinos do FPGA; iii. Especificar o tratamento aos pinos não utilizados; iv. Configurar o processo de gravação; v. Efetuar a gravação. 1 - Especificação do FPGA com o qual trabalhar Para que o projeto em desenvolvimento por meio do Quartus II possa ser programado no FPGA do kit DE1, o dispositivo FPGA presente na placa deve ser especificado como o dispositivo de destino para o projeto. Para criar tal relacionamento, se deve executar os seguintes passos: 1 Na interface do assistente de criação de novo projeto ou na interface acessível por meio da opção de menu Associações Dispositivo e, então, opção Dispositivo, escolher a família Cyclone II; 2 Escolher o modelo correspondente na lista de dispositivos disponíveis. Na sequência, é exemplificada a especificação do dispositivo EP2C20F484C7. Interface acessada durante o assistente de criação de novo projeto Interface acessada através do item de menu Associações Dispositivo ELT029/ELT041/ELT512 Prof. Rodrigo de Paula Rodrigues 5/12
2 - Associação das portas do circuito aos pinos do FPGA Para que os periféricos presentes na placa DE1 possam ser acessados por um circuito esquemático ou uma descrição em HDL, os pinos relacionados aos periféricos da placa com os quais o projeto interagirá devem ser associados com as portas de entrada e saída do projeto em desenvolvimento. Para se realizar o mapeamento em questão, deve-se abrir a interface de planejamento de pinos por meio do botão de planejamento de pinos presente na interface principal do Quartus II. Uma vez na interface de planejamento de pinos, basta associar cada uma das portas de entrada/saída do projeto com um respectivo pino do FPGA. Este relacionamento pode ser feito ou se escolhendo cada um dos pinos presentes na representação gráfica do FPGA ou se utilizando a tabela de relacionamento presente na divisão inferior da interface. Para realizar tal associação por meio da tabela, basta prosseguir à linha relacionada à porta a ser associada e, na respectiva coluna localização, fornecer o nome do pino ao qual a porta será associada. Este processo deve ser repetido para cada uma das portas do circuito em desenvolvimento. ELT029/ELT041/ELT512 Prof. Rodrigo de Paula Rodrigues 6/12
Uma segunda forma de realizar a associação de pinos é importar uma associação já existente. Neste caso, as portas presentes no circuito em desenvolvimento devem coincidir com as portas de entrada e de saída presentes na associação a ser importada. O modelo do dispositivo lógico programável em uso pelo circuito e o presente no arquivo de importação também devem coincidir. Para efetuar a importação de uma associação já existente, entre na interface de planejamento de pinos, acessível via botão de planejamento de pinos presente na interface principal do Quartus II ou por meio da opção de menu Associações Pinos. Com tal interface aberta, seleciona a opção de menu Associações Importar associações. Na interface que se abrirá, selecione o arquivo com as informações de associação de pinos e então confirme a importação. 3 - Tratamento aos pinos não utilizados Uma vez que a placa DE1 contém um conjunto de periféricos fisicamente conectados aos pinos de seu FPGA, projetos que não se utilizem de todos os pinos do dispositivo devem colocar em estado de inatividade (alta impedância) todos os pinos que não tenham aplicação no projeto. Cada um dos pinos de entrada/saída de um FPGA da família Cyclone II possui um estado de altaimpedância que pode ser ativado por meio de configuração no Quartus II. Esta configuração pode ser acessada por meio do botão Opções do Dispositivo e de Pinos, o qual é acessível por meio do item de menu Associações Dispositivo e então a opção Dispositivo. ELT029/ELT041/ELT512 Prof. Rodrigo de Paula Rodrigues 7/12
Já na interface que se abre ao se pressionar o botão citado, deve-se acessar a aba Pinos não utilizados e, então, escolher a opção Como entradas em estado de alta-impedância (As input tri-stated) na caixa de seleção Reserve pinos não utilizados como:. Importante: Uma vez efetuada a associação de pinos e a especificação do tratamento de pinos não utilizados, deve-se recompilar o projeto. 4 Configuração do processo de gravação Para que ocorra com êxito, o processo de gravação deve ser corretamente configurado. Com a placa DE1 corretamente conectada ao circuito de alimentação, ligada e então conectada ao computador por meio de seu cabo de conexão USB, acesse o botão programador presente na interface principal do aplicativo. Uma vez na interface de programação do dispositivo, acesse o botão Configuração de Hardware. ELT029/ELT041/ELT512 Prof. Rodrigo de Paula Rodrigues 8/12
Na interface que se abre, escolha o equipamento USB-Blaster na caixa de seleção do equipamento correntemente selecionado e então feche a interface por meio do botão fechar. Ainda na interface de gravação, garanta que o equipamento selecionado é o USB-Blaster e que o modo, JTAG. Na chave de seleção presente na placa, selecione a posição RUN. 5 Efetuando a gravação Uma vez configurado o processo de gravação, a efetiva programação do FPGA é requisitada por meio do botão de Início presente na interface de gravação. Se a gravação for efetuada com sucesso, a barra lateral de progresso sinalizará 100% e o projeto poderá, então, ser testado por meio da placa DE1 e seus periféricos. Tratamento aos pinos não utilizados: ELT029/ELT041/ELT512 Prof. Rodrigo de Paula Rodrigues 9/12
Uma vez que a placa DE1 contém contem um conjunto de periféricos fisicamente conectados aos pinos de seu FPGA, projetos que não se utilizem de todos os pinos do dispositivo devem colocar em estado de inatividade todos os pinos que não tenham aplicação no projeto. Cada um dos pinos de entrada/saída de um FPGA da família Cyclone II possui um estado de altaimpedância que pode ser ativado por meio de configuração no Quartus II. Esta configuração pode ser acessada por meio do botão Opções do Dispositivo e de Pinos, o qual é acessível por meio do item de menu Associações Dispositivo e então a opção Dispositivo. Já na interface que se abre ao se pressionar o botão citado, deve-se acessar a aba Pinos não utilizados e, então, escolher a opção Como entradas em estado de alta-impedância (As input tri-stated) na caixa de seleção Reserve pinos não utilizados como:. ELT029/ELT041/ELT512 Prof. Rodrigo de Paula Rodrigues 10/12
Importante: Uma vez efetuada a associação de pinos e a especificação do tratamento de pinos não utilizados, deve-se recompilar o projeto. Configurar o processo de gravação: Para que ocorra com êxito, o processo de gravação deve ser corretamente configurado. Com a placa DE1 corretamente ao circuito de alimentação, ligada e então conectada ao computador por meio de seu cabo de conexão USB, acesse o botão programador presente na interface principal do aplicativo. Uma vez na interface de programação do dispositivo, acesse o botão Configuração de Hardware. Na interface que se abre, escolha o equipamento USB-Blaster na caixa de seleção do equipamento correntemente selecionado e então feche a interface por meio do botão fechar. Ainda na interface de gravação, garanta que o equipamento selecionado é o USB-Blaster e que o modo, JTAG. Efetuar a gravação: Uma vez configurado o processo de gravação, a efetiva programação do FPGA é requisitada por meio do botão de Início presente na interface de gravação. ELT029/ELT041/ELT512 Prof. Rodrigo de Paula Rodrigues 11/12
Se a gravação for efetuada com sucesso, a barra lateral de progresso sinalizará 100% e o projeto poderá, então, ser testado através da placa DE1. ELT029/ELT041/ELT512 Prof. Rodrigo de Paula Rodrigues 12/12