You are on page 1of 17

Ol Garagistas!

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).

Para isto, sero necessrios os seguintes componentes:


1x FPGA 101;
1x Cabo Usb-Mini;
Software Quartus II 13.0 (Web Edition).

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.

Aps o download, execute o aplicativo QuartusSetupWeb-13.0.1.232. Aceite os termos de licena e escolha o


diretrio da instalao.

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 novamente em Next, para a seguinte etapa:

Agora, necessrio fazer o download de dois arquivos: o fpga_101_top_template.v e o fpga_101.qsf. Ambos


podem ser baixados clicando AQUI como na figura abaixo:

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:

Clique em Advanced e selecione as duas caixas de texto como mostrado abaixo:

Clique em OK, e OK novamente. Verifique a confirmao de importao:

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:

Apague o cdigo (.v) do arquivo e digite este abaixo:

module teste (A, B, L0, L1, L2, L3);

// Inicializaao do Mdulo

input A, B;
output L0, L1, L2, L3;

// Declarao das entradas


// Declaraao das Sadas

reg L0, L1, L2, L3;


reg TEMP0, TEMP1, TEMP2, TEMP3;

// Variveis usadas para


// exibir um valor na sada.

always @*
begin

// Loop Infinito
// Incio do Loop

TEMP0 <= (~A) & (~B);


L0 <= ~TEMP0;

// Primeira condiao do MUX


// Ascende o primeiro LED

TEMP1 <= (~A) & B;


L1 <= ~TEMP1;

// Segunda condiao do MUX


// Ascende o segundo LED

TEMP2 <= (A) & (~B);


L2 <= ~TEMP2;

// Terceira condiao do MUX


// Ascende o terceiro LED

TEMP3 <= A & B;


L3 <= ~TEMP3;

// Quarta condiao do MUX


// Ascende o quarto LED

end

// Fim do Loop

endmodule

// Fechamento do mdulo

Salve o arquivo (de preferncia com o nome do projeto) de extenso (.v).


Agora, necessrio informar ao Quartus II, quais os pinos que correspondem s entradas e s sadas do mdulo.
Para tal, clique em Assignments > Pin Planner. Assim, aparecer uma janela com os pinos j declarados (a a funo
do arquivo de extenso (.qsf)). Veja abaixo:

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:

Veja abaixo o Pin Planner aps a alterao:

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!

You might also like