Você está na página 1de 15

PPGSESAI09 Sistemas Embarcados

ROTEIRO 1 INTRODUO AO QUARTUS II


Prof. Dr. Amauri Amorin Assef

*Departamento Acadmico de Eletrotcnica/DAELT - UTFPR, Curitiba

amauriassef@utfpr.edu.br

1. Introduo
Cada circuito lgico projetado com o software Quartus chamado de projeto (project). O
software funciona com um projeto de cada vez e mantm todas as informaes para esse projeto em
um nico diretrio (pasta) no sistema de arquivos.
Para comear um novo projeto, o primeiro passo criar um diretrio para manter seus
arquivos. Para esta prtica vamos criar o diretrio aula1. O exemplo de execuo desta aplicao
um simples circuito para controle de luz.
Inicie o software Quartus II. Voc dever ver uma tela semelhante da Figura 1.

Figura 1 Tela principal do Quartus II.

2. Criando um novo projeto


Para comear a trabalhar em um novo projeto, primeiro temos que definir um novo projeto.
O software Quartus facilita a tarefa do designer fornecendo suporte na forma de um assistente. Crie
um novo projeto da seguinte maneira:

1
PPGSESAI09 Sistemas Embarcados

1. Selecione File > New Project Wizard e clique em Next para acessar a janela da Figura 2,
que pede o nome do diretrio do projeto.
2. Definir o diretrio de trabalho como aula1; naturalmente, voc pode usar algum outro
nome do diretrio de sua escolha se voc preferir. O projeto deve ter um nome, que normalmente
o mesmo que a entidade de design de nvel superior que ser includa no projeto. Escolha aula1
como nome para o projeto e para a entidade de nvel superior, conforme mostrado Na Figura 2
pressione Next. Caso ainda o diretrio aula1 no tenha sido criado, o software Quartus exibe a caixa
pop-up perguntando se deve criar o diretrio desejado. Clique em Sim, e depois Next at chegar na
tela da Figura 3.

Figura 2 Criando um novo projeto.

3. Na tela da Figura 3 temos que especificar o tipo de dispositivo no qual o circuito


projetado ser implementado. Escolha a famlia de dispositivos da srie Cyclone para a sua placa de
srie DE. Podemos permitir que o software Quartus Prime selecione um dispositivo especfico na
famlia, ou podemos escolher o dispositivo explicitamente. Tomaremos esta ltima abordagem. Na
lista de dispositivos disponveis, escolha o nome do dispositivo apropriado para a placa da srie DE.
Uma lista de nomes de dispositivos nas placas da srie DE pode ser encontrada na Tabela 1.
Pressione Next, que abre a janela na Figura 4.

2
PPGSESAI09 Sistemas Embarcados

Figura 3 Seleo da FPGA.

Tabela 1 Dispositivos FPGA da srie DE.


Nome da placa DE Dispositivo FPGA
DE0-CV Cyclone V 5CEBA4F23C7
DE0-Nano Cyclone IV E EP4CE22F17C6
DE0-Nano-SoC Cyclone V SoC 5CSEMA4U23C6
DE1-SoC Cyclone V SoC 5CSEMA5F31C6
DE10-Lite Max 10 10M50DAF484C7G
DE5a-NET Arria 10 10AX115N3F45E2SG

4. Na tela da Figura 4, o usurio pode especificar as ferramentas de terceiros que devem ser
usadas para validao do projeto. Um termo usado geralmente para o software do CAD para
circuitos eletrnicos ferramentas de EDA (Electronic Design Automation). Uma vez que
dependeremos exclusivamente das ferramentas Quartus, no iremos escolher outras ferramentas.
Pressione Next.

3
PPGSESAI09 Sistemas Embarcados

Figura 4 Seleo de ferramentas EDA.

5. Um resumo das configuraes escolhidas aparece na tela mostrada na Figura 5.


Pressione Finish, para retornar para a janela principal do Quartus, conforme indicado na Figura 6.

Figura 5 Resumo das configuraes do projeto.

4
PPGSESAI09 Sistemas Embarcados

Figura 6 Tela do Quartus aps a criao do projeto.

3. Entrada de projeto utilizando cdigo VHDL

Como um exemplo de projeto, usaremos o circuito controlador registrado de luz de duas


vias mostrado na Figura 7. O circuito pode ser usado para controlar uma nica luz de qualquer um
dos dois interruptores, x1 e x2, onde um interruptor fechado corresponde ao valor lgico 1. A tabela
verdade para o circuito tambm apresentada. Note que esta apenas a funo OR Exclusiva das
entradas x1 e x2, mas vamos especific-lo usando as portas lgicas mostradas.

Figura 7 Controlador de luz de duas vias.

O circuito necessrio descrito pelo cdigo VHDL na Figura 7. Observe que a entidade
VHDL chamada de aula1 para corresponder ao nome que foi especificado quando o projeto foi
criado. Esse cdigo pode ser digitado em um arquivo usando qualquer editor de texto ou usando as
facilidades de edio de texto no Quartus. Enquanto, pode ser dado qualquer nome para o arquivo,
sendo uma prtica comum usar o mesmo nome da entidade VHDL de nvel superior (top level). O

5
PPGSESAI09 Sistemas Embarcados

nome do arquivo deve incluir a extenso vhd, que indica um arquivo VHDL. Ento, vamos usar o
nome aula1.vhd.

LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
------------------------------------------
ENTITY aula1 IS
PORT ( x1, x2 : IN STD_LOGIC ;
f : OUT STD_LOGIC ) ;
END aula1;
------------------------------------------
ARCHITECTURE behavior OF aula1 IS
BEGIN
f <= (x1 AND NOT x2) OR (NOT x1 AND x2);
END behavior;

Figura 8 Cdigo VHDL para o controlador registrado de luz de duas vias.

3.1. Usando o editor do Quartus

Esta seo mostra como usar o editor de texto do Quartus para criar o arquivo de cdigo-
fonte VHDL, que nomearemos aula1.vhd.
Selecione File > New File, para obter a janela da Figura 9, escolha arquivo VHDL e clique
em OK. Isso abre a janela Editor de texto. A primeira etapa especificar um nome para o arquivo
que ser criado. Selecione File > Save as para abrir a caixa pop-up mostrada na Figura 10. Na caixa
com a opo do Tipo do arquivo, selecionar VHDL. Na caixa Nome, escrever aula1. Coloque uma
marca de seleo na caixa Add file to current Project (Adicionar arquivo ao projeto atual). Clique
em Salvar para colocar o arquivo no diretrio aulal e retornar janela do editor. Digite o cdigo
VHDL no editor de texto (Figura 11) e salve o arquivo (File > Salve as ou atalho Ctrl-s).
Dois recursos do editor de texto so especialmente convenientes para digitar o cdigo
VHDL. Em primeiro lugar, o editor pode exibir diferentes tipos de declaraes VHDL em cores
diferentes, o que a opo padro. Em segundo lugar, o editor pode automaticamente recuar o texto
em uma nova linha para que ele corresponda a linha anterior. Essas opes podem ser controladas
pelas configuraes em Tools > Options > Text Editor.

6
PPGSESAI09 Sistemas Embarcados

Figura 9 Escolha do arquivo em formato VHDL.

Figura 10 Tela para salvar o arquivo em formato VHDL.

3.1.1. Usando o editor do Quartus

A sintaxe do cdigo VHDL s vezes difcil para um designer lembrar. Para ajudar com
esse problema, o editor de texto fornece uma coleo de modelos VHDL (templates). Os modelos
fornecem exemplos de vrios tipos de instrues VHDL, como uma declarao ENTITY, uma
instruo CASE e instrues de atribuio. Vale a pena consultar os modelos selecionando Edit >
Insert Template > VHDL para se familiarizar com este recurso.

7
PPGSESAI09 Sistemas Embarcados

Figura 11 Tela do Quartus com arquivo VHDL para edio.

4. Compilando o projeto

O cdigo VHDL no arquivo aula1.vhd processado por vrias ferramentas do Quartus que
analisam o cdigo, sintetizam o circuito e geram uma implementao dele para o chip de destino.
Essas ferramentas so controladas pelo programa aplicativo chamado Compiler.
Execute o Compilador selecionando Processing > Start Compilation ou clicando no cone
da barra de ferramentas que se parece com um tringulo roxo. Seu projeto deve ser salvo antes
de compilar. medida que a compilao se move atravs de vrias fases, o seu progresso relatado
numa janela no lado esquerdo do Quartus. Na janela de mensagem, na parte inferior da figura,
vrias mensagens so exibidas durante todo o processo de compilao. Em caso de erros, haver
mensagens apropriadas.
Quando a compilao concluda, um relatrio de compilao produzido. Uma aba
mostrando este relatrio aberta automaticamente, como pode ser visto na Figura 12 A guia pode
ser fechada da maneira normal e pode ser aberta a qualquer momento selecionando Processing >
Compilation Report ou clicando no respectivo cone. O relatrio inclui um nmero de sees
listadas no lado esquerdo. A Figura 12 exibe a seo Compiler Flow Summary, que indica que
apenas um elemento lgico e trs pinos so necessrios para implementar esse minsculo circuito
no chip FPGA selecionado.

8
PPGSESAI09 Sistemas Embarcados

Figura 12 Tela com indicao de sucesso na compilao do projeto.

5. Declarao da pinagem (Pin Assignment)


Durante a compilao acima, o Quartus foi livre para escolher qualquer um dos pinos do
FPGA selecionado para servir como entradas e sadas. No entanto, a placa srie DE tem conexes
fsicas prontas entre os pinos FPGA e os outros componentes na placa. Usaremos duas chaves,
rotuladas SW0 e SW1, para fornecer as entradas externas, x1 e x2, ao nosso circuito de exemplo.
Estas chaves so conectadas aos pinos FPGA listados na Tabela 2. Vamos conectar a sada f a um
LED em sua placa de srie DE. Para o DE2-115 usaremos um LED verde: LEDG0. No DE0-CV e
DE1-SoC, vamos usar LEDR0. No DE0-Nano e DE0-Nano-SoC, usaremos LED0. A atribuio de
pinos FPGA para os LEDs tambm pode ser encontrada na Tabela 2.

Tabela 2 Atribuio da pinagem da srie DE.


DE0-Nano-
Componente DE0-CV DE0-Nano DE2-115 DE1-SoC
SoC
SW0 PIN_U13 PIN_M1 PIN_L10 PIN_AB28 PIN_AB12

SW1 PIN_V13 PIN_T8 PIN_L9 PIN_AC28 PIN_AC12


LEDG0,
LED0 ou PIN_AA2 PIN_A15 PIN_W15 PIN_E21 PIN_V16
LEDR0
A atribuio dos pinos pode ser realizada pelo Assignment Editor (Assignments >
Assignment Editor) ou Pin Planner (Assignments > Pin Planner). A Figura 13 mostra a tela para o
segundo caso. Basta digitar a posio dos pinos na coluna Location.

9
PPGSESAI09 Sistemas Embarcados

Figura 13 Tela do Pin Planner.

6. Simulando o projeto do circuito


Antes de implementar o circuito projetado no chip FPGA na placa de srie DE, prudente
simul-lo para verificar sua correo. A ferramenta Simulation Waveform Editor do Quartus pode
ser usada para simular o comportamento de um circuito projetado. Antes que o circuito possa ser
simulado, necessrio criar as formas de onda desejadas, chamadas vetores de teste, para
representar os sinais de entrada. Tambm necessrio especificar quais sadas, bem como possveis
pontos internos no circuito que o designer deseja observar. O simulador aplica os vetores de teste a
um modelo do circuito implementado e determina a resposta esperada. Usaremos o Simulation
Waveform Editor para desenhar os vetores de teste, da seguinte forma:
1. Na janela principal do Quartus, selecione File > New > Verification/Debugging Files >
University Program VWF para abrir o Editor de Forma de Onda de Simulao;
2. A janela do editor de formas de onda de simulao mostrada na Figura 14. Salve o
arquivo sob o nome aula1.vwf; Observe que isso altera o nome na janela exibida. Defina a
simulao desejada para executar de 0 a 200 ns selecionando Edit > Set End e inserindo
200 ns na caixa de dilogo que aparece. Selecionar View > Fit in Window para exibir toda a
faixa de simulao de 0 a 200 ns na janela, como mostrado na Figura 15.

10
PPGSESAI09 Sistemas Embarcados

Figura 14 Tela da ferramenta Simulation Waveform Editor.

Figura 15 - Tela da ferramenta Simulation Waveform Editor ajustada.

3. Em seguida, queremos incluir os ns de entrada e de sada do circuito a ser simulado.


Clique em Edit > Insert > Insert Node or Bus para abrir a janela na Figura 16. possvel
digitar o nome de um sinal (pino) na caixa Name, ou usar o Node Finder para procurar os
sinais no projeto. Clique no boto denominado Node Finder para abrir a janela na Figura 17.
O utilitrio Node Finder possui um filtro usado para indicar o tipo de ns a serem
encontrados. Uma vez que estamos interessados em pinos de entrada e sada, defina o filtro
para pinos: All. Clique no boto List para localizar os ns de entrada e sada, conforme
indicado no lado esquerdo da figura.

Figura 16 Caixa para insero de n ou bus.

11
PPGSESAI09 Sistemas Embarcados

Figura 17 Seleo de ns para o Editor de Forma de Onda.

4. Clique no sinal x1 na caixa Nodes Found na Figura 17 e, em seguida, clique no sinal >
para adicion-lo caixa Selected Nodes no lado direito da figura. Faa o mesmo para x2 e f.
Clique em OK para fechar a janela do Node Finder e, em seguida, clique em OK na janela
da Figura 17. Isso deixa uma janela do Editor de Forma de Onda totalmente exibida, como
mostrado na Figura 18.

Figura 18 Tela com os ns selecionados para simulao.

Podemos gerar as formas de onda de entrada desejadas da seguinte forma. Clique na forma
de onda para o n x1. Quando uma forma de onda selecionada, os comandos de edio no Wave
Editor podem ser usados para desenhar as formas de onda desejadas. Os comandos esto
disponveis para ajustar um sinal selecionado para 0, 1, desconhecido (X), alta impedncia (Z),
fraco baixo (L), fraco alto (H), um valor de contagem (C), um valor arbitrrio, um valor aleatrio
(R), inverter o seu valor existente (INV) ou definir uma forma de onda de relgio. Cada comando
pode ser ativado usando o comando Edit > Value, ou atravs da barra de ferramentas para o Wave
Editor. O menu Value tambm pode ser aberto clicando com o boto Forma de onda
Defina x1 para 0 no intervalo de tempo de 0 a 100 ns. Em seguida, defina x1 para 1 no
intervalo de tempo de 100 a 200 ns. Faa isso pressionando o mouse no incio do intervalo e
arrastando-o at o fim, que destaca o intervalo selecionado e escolhe o valor lgico 1 na barra de
ferramentas. Faa x2 = 1 de 50 a 100 ns e tambm de 150 a 200 ns, o que corresponde tabela de

12
PPGSESAI09 Sistemas Embarcados

verdade na Figura 12. Isso deve produzir a imagem na Figura 19. Observe que a sada f exibida
como tendo um valor desconhecido neste tempo, o que indicado por um padro de X; seu valor
ser determinado durante a simulao. Salve o arquivo.

Figura 19 Configurao dos valores de teste.

6.1. Realizando a simulao

Um circuito projetado pode ser simulado de duas maneiras. A maneira mais simples
assumir que elementos de lgica e fios de interconexo no FPGA so perfeitos, causando assim
nenhum atraso na propagao de sinais atravs do circuito. Isso chamado de simulao funcional
(functional simulation). Uma alternativa mais complexa levar em conta todos os atrasos de
propagao, denominada simulao temporal (timing simulation). Tipicamente, a simulao
funcional usada para verificar a correo funcional de um circuito conforme est sendo projetado.

6.1.1. Simulao funcional

Antes de executar uma simulao funcional, necessrio executar a Anlise e Sntese


(Analysis and Synthesis) do seu projeto, selecionando o cone na janela principal do Quartus.
Observe que Anlise e Sntese executado como parte do fluxo de compilao principal. Se voc
compilou seu design, ento no necessrio executar Anlise e Sntese novamente.
Para executar a simulao funcional, selecione Simulation > Run Functional Simulation ou
selecione o cone na janela do Simulation Waveform Editor. Uma janela pop-up mostrar o
progresso da simulao e, em seguida, fechar automaticamente quando estiver concluda. No final
da simulao, uma segunda janela do Simulation Waveform Editor abrir os resultados, como
ilustrada na Figura 20. Observe que a sada f como especificado na tabela de verdade da Figura 7.

13
PPGSESAI09 Sistemas Embarcados

Figura 20 Resultado do teste funcional.

6.1.2. Simulao temporal

Tendo verificado que o circuito projetado funcionalmente correto, devemos agora


executar a simulao de tempo para ver como ele vai se comportar quando ele realmente
implementado no dispositivo FPGA escolhido. Antes de executar uma simulao de temporizao,
necessrio compilar seu projeto selecionando o cone na janela principal do Quartus.
Diferentemente das simulaes funcionais, as simulaes de tempo requerem a compilao
completa do seu projeto, no apenas Anlise e Sntese.
Para executar a simulao de temporizao, selecione Simulation > Run Timing
Simulation ou selecione o respectivo cone na janela Simulation Waveform Editor. A simulao deve
produzir as formas de onda na Figura 21. Observe que existe um atraso de aproximadamente de 5 ns
na produo de uma alterao no sinal f a partir do momento em que os sinais de entrada x1 e x2
mudam. Este atraso devido aos atrasos de propagao no elemento lgico e os fios no dispositivo
FPGA.
Nota: as simulaes de sincronizao so suportadas apenas por FPGAs Cyclone IV e Stratix IV. Se
a placa da srie DE no tiver um FPGA Cyclone IV ou Stratix IV, o resultado de uma simulao de
tempo ser idntico simulao funcional.

Figura 21 Resultado do teste temporal.

14
PPGSESAI09 Sistemas Embarcados

7. Exerccio
Fechar o projeto atual e criar um novo projeto, em outro diretrio, modificando o arquivo
VHDL para desenho em bloco. Para isto, no item 3.1 ao invs de escolher VHDL File, selecionar
Block Diagram/Schematic File. Desenhar o circuito controlador de luz e salvar no formato BDF
com o mesmo nome do projeto (Figura 22).
Para selecionar os componentes, basta clicar duas vezes na rea do arquivo BDF e escolher
uma das opes. As portas lgicas esto no diretrio Primitive. Para nomear os pinos, clicar com o
boto esquerdo do mouse, selecionar a opo Properties e digitar o respectivo nome. Para conectar
os componentes, passar com o mouse por cima de um dos terminais, clicar e arrastar at o outro
ponto de conexo. Aps o desenho do projeto, realizar a simulao funcional e temporal.

Figura 22 Projeto em bloco esquemtico.

8. Relatrio
Enviar o relatrio por email (amauriassef@utfpr.edu.br), em pdf, at a data da prxima aula com o
print das seguintes telas:
Desenho do circuito;
Sumrio da compilao;
Resultado da simulao funcional;
Resultado da simulao temporal.

15