Mudanças entre as edições de "Preparando para gravar o circuito lógico no FPGA"
Linha 46: | Linha 46: | ||
:'''OBS:''' Essa configuração necessita ser feita apenas uma única vez no computador que será usado. É necessário ter acesso de administrado/root para fazer a configuração | :'''OBS:''' Essa configuração necessita ser feita apenas uma única vez no computador que será usado. É necessário ter acesso de administrado/root para fazer a configuração | ||
− | ==Gravação do | + | ==Gravação do Projeto no FPGA== |
Após escolher o kit a ser usado no projeto, é necessário informar ao Quartus II a família e o dispositivo (device) que será utilizado | Após escolher o kit a ser usado no projeto, é necessário informar ao Quartus II a família e o dispositivo (device) que será utilizado | ||
− | *para DE0-Nano '''{Assignments > | + | *para DE0-Nano '''{Assignments > Device... > Device family (Family: [Cyclone IV E], Name filter: [EP4CE22F17C6] ) > [OK]}''' |
+ | *para DE2-115 '''{Assignments > Device... > Device family (Family: [Cyclone IV E], Name filter: [EP4CE115F29C7] ) > [OK]}''' | ||
+ | *para MERCÚRIO IV '''{Assignments > Device... > Device family (Family: [Cyclone IV E], Name filter: [EP4CE30F23C7] ) > [OK]}''' | ||
− | + | Para evitar que saídas de circuitos da placa sejam ligadas ao terra através do FPGA, defina como alta impedância o estado dos pinos não utilizados no projeto. | |
− | *'''{Assignments > | + | *'''{Assignments > Device... > Device and Pin Options... > Category: Unused Pins > Reserve all unused pins: [As input tri-stated] > [OK] > [OK]}''' |
− | |||
− | |||
− | * | + | Atribua os pinos conforme a necessidade do projeto. Existem diferentes maneira de fazer esta atribuição: |
− | * | + | :* Uso do Pin Planner '''{Assignments > Pin Planner}''' no modo tabela. Digite o número do pino na coluna {Location}. Apenas posições válidas são aceitas. |
− | * | + | :* Uso do Pin Planner '''{Assignments > Pin Planner}''' na interface gráfica. Araste o {Node name} para a posição desejada no leiaute do FPGA. |
− | * | + | :* Uso do Assignments Editor '''{Assignments > Assignment Editor}''' |
− | + | :* Uso do Import Assignments '''{Assignments > Assignment Editor}'''. Permite reutilizar pinagens definidas para o mesmo chip com os mesmos nomes em outro projeto. Será necessário ter acesso ao arquivo .qsf desse projeto. | |
− | + | :*Para ilustrar o processo, ao final da configuração dos pinos, o Pin Planner '''{Assignments > Pin Planner}''' deverá mostrar a correta pinagem conforme exemplificado na figura abaixo: | |
<center> | <center> | ||
− | [[Arquivo:RegDeslocamento2DE0-NanoPin.png]] | + | [[Arquivo:RegDeslocamento2DE0-NanoPin.png| Exemplo de pinagem de um projeto]] |
</center> | </center> | ||
− | |||
− | |||
− | * | + | Uma vez completada a pinagem, compile o projeto para que o Quartus faça o Fitter (Place & Route). Após a compilação a mensagem de warning '''"Critical Warning (XXXXX): No exact pin location assignment(s) for XX pins of XX total pins"''' não deverá mais ser mostrada. Caso seja mostrada verifique qual o pino que não foi configurado corretamente e corrija. |
+ | ==Programando o FPGA== | ||
+ | Depois de realizar as etapas anteriores: | ||
+ | * Escolhido corretamente o kit. | ||
+ | * Definidos e configurados os pinos do FPGA. | ||
+ | * Pinos não usados estão configurados como tri-state. | ||
+ | * O compilador não apresenta warning sobre "pin location assignment". | ||
+ | |||
+ | A programação do FPGA é feita seguindo o [Programando o FPGA através da USB-Blaster | procedimento de programação]. | ||
=Preparando para gravar o circuito lógico no FPGA= | =Preparando para gravar o circuito lógico no FPGA= |
Edição das 21h11min de 10 de março de 2015
Escolha do kit com o FPGA
Para realizar a implementação de um sistema digital em um FPGA, os fabricantes de chips disponibilizam kits de desenvolvimento/educacionais nos quais além do FPGA componentes periféricos diversos estão disponíveis para o desenvolvedor. Entre as características comuns desses kits está a presença de: Leds, Chaves, Displays, Conectores ligados diretamente a um conjunto de pinos do chip FPGA, Conversores A/D e D/A, entre outros. Para conhecer a característica de cada kit, recomenda-se que o desenvolvedor analise o manual do fabricante. Nos laboratórios de Telecomunicações do IFSC estão disponíveis para os professores/alunos alguns kits, cujo uso é destinado prioritariamente para as disciplinas dos Cursos Técnicos e de Engenharia de Telecomunicações. Após selecionar o kit, deverá ser feita a atribuição da pinagem do FPGA conforme as conexões previamente existentes no kit escolhido. A pinagem de cada kit pode ser encontrada nos respectivos manuais. Para facilitar a configuração da pinagem mais utilizada consulte a página correspondente a seguir:
Kit | Fabricante do Kit | Família FPGA | Device | Documentos disponíveis | Arquivo qsf | Pinagem do kit | Disponíveis no IFSC |
---|---|---|---|---|---|---|---|
DE0-Nano | TERASIC | Cyclone® IV - ALTERA | EP4CE22F17C6 | User Manual | qsf | Pinagem do kit DE0-Nano | 4 |
DE2-115 | TERASIC | Cyclone® IV - ALTERA | EP4CE115F29C7 | User Manual | qsf | Interfaces de entrada e saída da DE2-115 | 10 |
MERCÚRIO IV | MACNICA | Cyclone® IV - ALTERA | EP4CE30F23C7 | Manual do Usuário | qsf | Pinagem dos dispositivos de entrada e saída do kit MERCURIO IV | 20 |
Configuração da USB para programação do FPGA via JTAG
A configuração da interface USB do computador para a programação do FPGA via JTAG é realizada no computador na qual o kit FPGA será conectado. A maioria dos kits atuais já tem a interface USB-Blaster e o procedimento de configuração é o descrito no procedimento de configuração da USB para programação do FPGA via JTAG.
- OBS: Essa configuração necessita ser feita apenas uma única vez no computador que será usado. É necessário ter acesso de administrado/root para fazer a configuração
Gravação do Projeto no FPGA
Após escolher o kit a ser usado no projeto, é necessário informar ao Quartus II a família e o dispositivo (device) que será utilizado
- para DE0-Nano {Assignments > Device... > Device family (Family: [Cyclone IV E], Name filter: [EP4CE22F17C6] ) > [OK]}
- para DE2-115 {Assignments > Device... > Device family (Family: [Cyclone IV E], Name filter: [EP4CE115F29C7] ) > [OK]}
- para MERCÚRIO IV {Assignments > Device... > Device family (Family: [Cyclone IV E], Name filter: [EP4CE30F23C7] ) > [OK]}
Para evitar que saídas de circuitos da placa sejam ligadas ao terra através do FPGA, defina como alta impedância o estado dos pinos não utilizados no projeto.
- {Assignments > Device... > Device and Pin Options... > Category: Unused Pins > Reserve all unused pins: [As input tri-stated] > [OK] > [OK]}
Atribua os pinos conforme a necessidade do projeto. Existem diferentes maneira de fazer esta atribuição:
- Uso do Pin Planner {Assignments > Pin Planner} no modo tabela. Digite o número do pino na coluna {Location}. Apenas posições válidas são aceitas.
- Uso do Pin Planner {Assignments > Pin Planner} na interface gráfica. Araste o {Node name} para a posição desejada no leiaute do FPGA.
- Uso do Assignments Editor {Assignments > Assignment Editor}
- Uso do Import Assignments {Assignments > Assignment Editor}. Permite reutilizar pinagens definidas para o mesmo chip com os mesmos nomes em outro projeto. Será necessário ter acesso ao arquivo .qsf desse projeto.
- Para ilustrar o processo, ao final da configuração dos pinos, o Pin Planner {Assignments > Pin Planner} deverá mostrar a correta pinagem conforme exemplificado na figura abaixo:
Uma vez completada a pinagem, compile o projeto para que o Quartus faça o Fitter (Place & Route). Após a compilação a mensagem de warning "Critical Warning (XXXXX): No exact pin location assignment(s) for XX pins of XX total pins" não deverá mais ser mostrada. Caso seja mostrada verifique qual o pino que não foi configurado corretamente e corrija.
Programando o FPGA
Depois de realizar as etapas anteriores:
- Escolhido corretamente o kit.
- Definidos e configurados os pinos do FPGA.
- Pinos não usados estão configurados como tri-state.
- O compilador não apresenta warning sobre "pin location assignment".
A programação do FPGA é feita seguindo o [Programando o FPGA através da USB-Blaster | procedimento de programação].
Preparando para gravar o circuito lógico no FPGA
Para gravar o circuito lógico no FPGA, é necessário escolher um FPGA para a aplicação. Neste caso utilizaremos o kit MERCURIO IV.
- Mude a família e dispositivo a ser usado (Assignments > Devices), [Family = Cyclone IV E] e selecione EP4CE30F23C7.
- Utilize o display HEX0 do kit para mostrar a contagem:
- Utilize os leds de LED0 a LED3 (verdes) para mostrar a contagem em binário.
- Utilize a chave KEY0 para gerar o sinal de CLK.
- Atribua os pinos conforme a pinagem do kit MERCURIO IV.
- Ao final da configuração dos pinos, o Pin Planner deverá mostrar a seguinte pinagem:
- Defina como alta impedância o estado dos pinos não utilizados no projeto. (Assignments > Devices), [Device and Pin Options...], escolha a (Category=Unused Pins), e selecione Reserve all unused pins: As input tri-stated. [OK].
- Compile o projeto. Note que agora a numeração dos pinos também aparece no diagrama esquemático.