Professional Documents
Culture Documents
Neste tutorial mostraremos como colocar sua FPGA 101 para funcionar de uma maneira bem rpida, abordando
tambm alguns conceitos importantes sobre FPGAs, suas linguagens de programao, e o software necessrio para
sua programao.
FPGA (Field Programmable Gate Array) um dispositivo que processa informaes/implementaes digitais, como
clock, entradas, sadas, circuitos lgicos, etc, sendo o primeiro lanado em 1985 pela Xilinx Inc. A ideia a de um
dispositivo que pode ser programado atendendo as necessidades nas aplicaes do usurio. constitudo
basicamente de trs partes:
Blocos Lgicos (CLBs): circuitos com arranjos de flip-flops e lgica combinacional. Com esses blocos, pode-se
construir os elementos lgicos funcionais;
Blocos de I/O (I/OBs): circuitos de interfaceamento com os CLBs e o mundo externo. So programados como
unidirecionais ou bidirecionais;
Chaves de Conexo (Switch Matrix): trilhas que conectam os blocos lgicos aos de I/O. Normalmente feitas pela
programao do FPGA. So escolhidas por um processo chamado de roteamento.
No caso deste tutorial, o FPGA utilizado o da Altera, famlia Cyclone IV E, que est presente na FPGA 101. Esta
pode ser programada, a princpio, nas linguagens de programao VHDL, Verilog HDL ou at via
Esquemtico (Hardware Design).Aqui, veremos duas aplicaes simples utilizando a Verilog HDL, que foi escolhida
por ser uma das mais populares utilizadas para este fim, e que tem alguns princpios baseados na linguagem C (o
que facilita a compreenso).
Na pgina de download da Altera (vide link acima), selecione seu sistema operacional, sua verso, se ou no sp1
(service pack 1) e os itens abaixo para download. Ento, clique em Download Selected Files. Os arquivos so
extensos, portanto pode levar algum tempo.
Clique em Next e prossiga com a instalao. Aguarde at que o programa seja instalado, e ento clique em Finish.
Abra o programa Quartus II, e clique em Create a New Project.
Selecione Next, escolha o diretrio do projeto e d um nome a ele. Observe que automaticamente o programa
preenche no campo de baixo o mesmo nome que digitado acima. Isso para evitar problemas de identificao de
arquivo na hora de compilar o programa. Veja abaixo um exemplo:
Clique em Arquivos para incio de projeto, para baixar os dois arquivos. Extraia-os, faa uma cpia de cada e cole na
pasta do seu projeto. Veja o exemplo:
Altere o nome do arquivo se quiser, mantendo suas extenses (.v) e (.qsf). Ento, voltando para a criao do projeto
no Quartus II, selecione o diretrio de onde voc carregar o arquivo com extenso (.v). Veja abaixo:
Selecione o arquivo com extenso (.v) que foi copiado para a pasta do projeto e abra-o. Ento, no Quartus II, clique
em Add. Veja abaixo que o arquivo foi adicionado ao projeto:
Ento, clique em Next. Nessa prxima etapa, ser selecionada a famlia e as configuraes do FPGA. Configure
como mostrado na figura abaixo:
Clique em Next. Agora nesta prxima etapa, selecione na parte Simulation, as opes ModelSim - Altera (em Tool
name) e Verilog HDL (em Format). Isso mostrado abaixo:
Clique em Next e depois Finish. Clique na aba "Files" para verificar os arquivos que foram carregados. Observe que o
arquivo que foi adicionado no incio da criao do projeto, est carregado. Veja abaixo:
Agora, clique em Assignments > Import Assignment. Ento, carregue aquele segundo arquivo que foi baixado, o de
extenso (.qsf). Veja abaixo:
Para terminar a configurao, clique na aba Hierarchy (ao lado da aba Files). Clique com o boto direito em
em Cyvlone IV E > Settings:
Na parte General, coloque o nome do seu projeto no campo top-level entity. Veja a figura abaixo:
Ento, clique em OK. Agora, seu programa est configurado para a FPGA 101. s criar seu programa. Para isso, v
na aba files e clique no arquivo que voc adicionou. Veja abaixo:
// Inicializaao do Mdulo
input A, B;
output L0, L1, L2, L3;
always @*
begin
// Loop Infinito
// Incio do Loop
end
// Fim do Loop
endmodule
// Fechamento do mdulo
Na aba Node Name, encontre os nomes led[0], ... led[3], sw[0] e sw[1]. Esses so 4 dos 8 LEDs do usurio da placa
e os dois push-buttons (S1 e S2). Renomeie os LEDs para as quatro sadas do MUX (L0, L1, L2 e L3) e os pushbuttons para os dois canais (A, B). Veja no exemplo abaixo:
Ento, ainda no Pin Planner, v at a aba Weak Pull-up Resistor, e configure para "On" os resistores de pull-up das
entradas A e B. Isto necessrio apesar de j existir esses resistores no Hardware. Veja abaixo:
Feche a janela do Pin Planner e clique em Processing > Start Compilation ou Ctrl+L para compilar seu projeto. O
resultado esperado um similar ao da figura mostrada abaixo:
Clique em OK e feche a aba Compilation Report. Agora vamos gravar o programa na FPGA 101. Conecte a sua
FPGA 101 no seu computador pela porta USB mais prxima do cristal oscilador,
coloque somente o jumper mais prximo desta porta USB e v em Tools > Programmer. Na opo "Mode", selecione
"JTAG" e ento clique na opo "Hardware Setup". Selecione "USB Blaster" e clique em "Add Hardware". Veja
abaixo:
Feche a janela "Hardware Setup". O Quartus II cria algumas pastas dentro da pasta do seu projeto com alguns
arquivos que dizem respeito s suas informaes. Uma dessas pastas chamada "Output Files", que gerada aps
a compilao do seu projeto. Clique em Add Files. V at "Pasta do Seu Projeto" > output_files e carregue um
arquivo (.sof) gerado nesta pasta. Esse o que ser gravado na FPGA 101. Veja abaixo:
Selecione a opo "Program/Configure", e a opo "Start" ser habilitada. Clique ento em "Start" e se tudo ocorreu
como esperado, aparecer "Progress 100% Successful", e sua placa estar rodando o programa. Veja abaixo:
Observaes: o programa gravado na FPGA 101 (o arquivo .sof) est armazenado em uma memria RAM, portanto
se a alimentao da porta USB for interrompida ou placa resetada, o programa ter de ser regravado. Entretanto, h
uma maneira de grav-lo em uma memria no voltil, mas este tutorial somente uma introduo FPGA 101.
Alm disso, na hora de fazer o download, poderia somente ter baixado o suporte para Cyclone II, III e IV, mas com o
pacote completo possvel programar tambm outras famlias de FPGA da Altera.
Para mais informaes sobre a linguagem Verilog HDL e o Sofware Quartus II, consulte os links de referncia deste
tutorial.
E a sua placa FPGA 101 est pronta para uso! Esperamos que tenha gostado, qualquer dvida ou sugesto, poste
no blog.
At a prxima!