Beruflich Dokumente
Kultur Dokumente
Altera Quartus II
No final desse tutorial voc encontrar um FAQ com as perguntas mais frequentes
durante as monitorias. Possivelmente suas dvidas futuras podem aparecer l.
Abraos,
06 de setembro de 2009
2
1. Download do Quartus II Web Edition e Instalao
A Altera disponibiliza uma verso do Quartus II Web Edition em seu site, sem a
necessidade de nenhuma licena comprada. Basta fazer o download e instalar no
seu PC.
Atualmente o link para download esse:
https://www.altera.com/support/software/download/altera_design/quartus_we/d
nl-quartus_we.jsp
Uma tela com opes ser aberta. Nela existe a possibilidade de voc no
selecionar uma srie de arquivos de compilao, entre outros. Opte apenas pelas
seguintes opes:
Cyclone II support
Third-party EDA tool interfaces
Tutorial files
3
As demais opes podem ser todas desmarcadas. Caso queira, desmarque
tambm Tutorial files, o que implicar em abrir mo dos tutoriais que o help do
programa oferece.
4
2. Conceitos Fundamentais
Isso no um provrbio chins, mas com certeza essa frase evita muitos
problemas.
O primeiro passo para comearmos um projeto no QII criarmos uma pasta no
Windows para colocarmos os arquivos. Faa isso como de costume, escolha um
local (que pode ser um pendrive) no PC e crie uma pasta vazia. Arquivos .jpg
podem ser colocados nesta pasta sem problemas, porm prefira pastas vazias
para manter a ordem.
5
Como mostrado, a compilao executa de forma ascendente, ou seja, o
arquivo principal ser o ltimo lido no processo de compilao.
Nesse exemplo o erro evidente, vamos analisar.
Para um Relgio COM Despertador precisamos, claro, de um comparador.
Quando o programa ler o Relgio COM Despertador ainda no ter lido o
Comparador, ou seja, teremos problemas!
Existe uma forma de trocar de lugar o Comparador com o Relgio COM
Despertador, mas antes de aprendermos a consertar aprenderemos a fazer
direito.
6
Na tela que foi aberta vamos desenvolver nosso projeto com as portas-lgicas,
componentes prontos (ALUs, contadores, flip-flops, etc) e componentes que
vamos criar.
Na hora de salvar este projeto, escolhemos a pasta que criamos para tal.
Nomeamos o arquivo com qualquer coisa que nos lembre do que se trata o
projeto e alguma sinalizao de que ele o nosso arquivo principal, ou seja, o
Relgio COM Despertador do exemplo anterior.
Para indicar isso, usei _main no final do nome.
Perceba que abaixo do nome e do tipo do arquivo temos uma opo que j est
selecionada, que diz: Criar um novo projeto baseado neste arquivo. Claro que
sim, exatamente o que queremos.
Aps voc clicar em Save uma janela vai aparecer, aperte uma vez Next e depois
aperte Finish.
Nosso projeto j est criado.
7
Mas e se eu quero usar um circuito do projeto X no projeto Y?
Abra o projeto X, copie o circuito com o Ctrl+C, feche o projeto Y, abra um novo
diagrama (File>New>Block Diagram/Schematic File), copie o contedo com
Ctrl+V e salve.
Ateno! Quando voc for abrir seu projeto para trabalhar nele, antes de abrir
qualquer esquemtico, abra o projeto. Assim, a primeira coisa a se fazer quando
queremos abrir o QII para continuar um trabalho File>Open Project. Somente
depois File>Open para escolher o esquemtico com qual queremos lidar.
Usarei um Detector de RA como exemplo nesse tutorial. Falaremos dele mais pra
frente.
8
1. Ferramenta de Seleo a setinha do Windows, clique e arraste para
selecionar.
2. Seleo de Componentes Clicar nessa ferramenta ou clicar duas vezes
na rea branca ao lado das ferramentas surte o mesmo efeito. Uma tela se
abrir e nela selecionaremos o componente desejado para adicionar ao
esquema.
3. Fio Aqui voc no pica fio, voc liga os fios, cria os fios.
4. Ligao Constante Esse boto no bem uma ferramenta, uma opo.
Selecionar ela garante que todas as conexes fiquem firmes, como se fossem
fios elsticos. Suponhamos que eu tenho uma ligao entre a sada de um
componente A e a entrada de um componente B, e por motivos estticos
quero distanciar B de A. Com essa opo selecionada, o fio vai continuar
ligado entre os componentes, esticando automaticamente quando eu
distancio os componentes. Sem esta opo, eu vou tirar um componente de
perto do outro e o fio se manter como estava, ou seja, a ligao ser
desfeita e teremos um fio com um lado ligado ao vazio. Muitssimo til para
no desligar o que queremos manter ligado, mas cuidado! Quando movemos
componentes possvel, sem querer, curto-circuitar fios no caminho sem
que percebamos, por isso muita ateno.
5. Seleo Parcial Essa opo permite a seleo de apenas um pedao do
fio, sem ter que selecion-lo inteiro. Caso haja um fio que desejemos apagar
apenas sua ponta, com essa opo selecionada deletamos apenas a ponta do
fio. Sem essa opo, teramos que deletar o fio todo e criar um novo.
6. Zoom A ferramenta da lupa no novidade para ningum. Com ela
selecionada, clique na tela com o boto esquerdo para aumentar a imagem,
com o boto direito para diminu-la.
9
3 Mo-na-Massa - Detector de RA como Exemplo
10
Em Name voc pode digitar o nome do componente, isso ganha tempo ao invs
de ficar procurando manualmente.
Tente fazer isso digitando 74194, dff, and3. A regra para memorizar simples:
XXff leva aos flip-flops, onde XX o tipo do flip-flop.
YYYK leva as portas-lgicas, onde YYY o tipo da porta (and, or, xor) e K o
nmero de entradas.
11
Veja como fica a montagem:
12
3.2 Compilando
Na tela que surge, aperte Start. Uma barra verde comear a andar mostrando a
porcentagem de compilao concluda. Ao clicar no Start o programa perguntar
se desejamos salvar o projeto. Se voc pretende compilar necessrio ter o
13
projeto salvo antes, ento opte por sim. Caso esteja inseguro, faa um backup
antes de compilar.
14
Perceba que a compilao no terminou e o programa nos apontou erros. Ele deu
a dica que o problema pode estar em inst3. Essas marcaes instX voc pode ver
no desenho das portas no esquemtico. Diga-se de passagem, inst3 o
componente em cuja entrada implantei o erro.
Essas mensagens podem ajudar muito na hora de achar os erros de montagem.
Corrigir erros e fazer montagens melhores uma questo de experincia, com o
tempo voc vai pegando o jeito.
15
3.3 Simulando
Temos ento um novo menu lateral, uma aba onde ficaro os pinos (inputs e
outputs) que sero testados e, na direita da tela, a linha do tempo. Essa mira na
tela no existe, eu coloquei ela ai e voc j saber porqu.
Primeiro vamos inserir os pinos que sero testados. Para isso clique nas
proximidades da mira com o boto direito. Surgir uma telinha, onde voc far o
seguinte caminho:
16
Insert > Insert Node or Bus
Sua tela abrir um pouco diferente dessa de cima. Inicialmente teremos as duas
telas (Nodes Found e Selected Nodes) em branco.
O primeiro passo , onde indiquei na imagem com o nmero 1, selecinar Pins:
all. Aps isso, clique em List. Na janela da esquerda aparecero todos os pinos.
17
Voc pode selecionar s os que deseja que apaream na simulao e apertar o
boto > ou, caso queira simular todos os pinos (que o nosso caso aqui) clique
em >> marcado na imagem pelo nmero 3.
OK duas vezes, voltamos a nossa tela de simulao. Agora ela est um pouco
diferente, vamos ver:
Indicado com o nmero 6 est o tempo final da simulao. Caso ele seja
pequeno ou grande demais, alm da nossa vontade, podemos mud-lo. Isso ser
feito daqui a pouco. Procure manter esse tempo mximo em sua memria, ele
ser necessrio para referncia vrias vezes.
18
3.3.1 Alterando o valor de uma entrada para 0 ou 1
19
3.3.3 Agrupando entradas e atribuindo valores automaticamente
Essas duas coisas vem juntas pois assim se tornam muito eficientes.
20
Aqui escolhemos o nome do grupo e o tipo de contagem.
Vou dar ao grupo o nome de RA e vou escolher uma contagem do tipo Unsigned
Decimal, ou seja, decimal sem sinal.
21
Na tela da esquerda temos que a contagem binria, ser mostrada como
decimais sem sinal, comea em 0 e incrementado de 1 em 1.
Na tela da direita temos que a contagem comea em 0 e termina em 1us, o
tempo mximo da nossa simulao.
Os valores da contagem vo mudar a cada 40ns.
22
J sabemos como manobrar as contagens, agora vamos de fato simular nossa
sada. Temos as entradas contando at 9, da pra frente Dont Care.
Esperamos 1 em 0 7 1 5 8 e 0 no resto at 10. A partir de 10, seja o que for que
der na sada, no importa.
O primeiro passo para a simulao salvar essa tela do Waveform. Basta clicar
em salvar e pronto.
23
Tudo pronto, Start.
Eis que onde antes estava meio riscado no waveform (a sada Z) agora temos
informao. Vamos ver o que obtivemos.
Pergunta: Por que temos esse pico entre o 3 e o 4 e por que a sada est um
pouco deslocada da entrada? Explicarei brevemente mais adiante.
24
4 Criando Componentes Relgio Despertador como Exemplo
Muitas vezes, mais do que um luxo, isso uma necessidade. Para montagens
muito grandes colocar tudo em uma tela apenas invivel. Fica praticamente
impossvel saber quem quem em um mar de fios e portas.
Fazer seus componentes torna a montagem muito mais limpa e profissional.
Assim segue. A diferena que aqui vamos criar 3 esquemas eltricos ao invs
de 1.
Salve com o nome que desejar e pronto. Lembro que o componente vale apenas
para esse projeto.
Caso queira fazer alteraes no componente, altere o esquemtico que usou para
ger-lo e salve.
File > Create / Update > Create Symbol Files for Current File
25
Segue abaixo algumas telas do relgio com despertador, usando componentes
customizados.
26
27
5 A Placa e a Gravao
5.1 A Placa
Observe que temos diversas opes nela, inclusive sadas para udio e vdeo. No
curso de EA773 usaremos apenas os LEDs, displays, botes e as chaves.
28
Com esta vista de cima do equipamento observamos um boto vermelho que fica
na parte de cima, na esquerda. Ele liga e desliga a placa. bvio, mas vale
lembrar que no pode-se gravar nada com a placa desligada.
A FPGA o maior circuito integrado da placa, com a volta verde. Nela est
marcado sua famlia (Cyclone II) e o modelo, no caso EP2C20F484C7.
Para maiores detalhes sobre a placa voc pode ler o manual dela. No final dessa
parte do tutorial vou colocar os endereos mais utilizados, para referncia rpida.
29
tentar colocar diesel em um fusca, ou um cartucho de Super Nintendo no drive
de CD. Simplesmente as coisas no iro combinar.
30
Voc pode ver os nomes olhando na placa. Perceba que na parte de cima,
esquerda da imagem, temos o LEDG7
31
Agora que os pinos j esto endereados, feche essa tela.
Retornando tela dos esquemticos, compile novamente o projeto.
32
5.2 A Gravao
BOA SORTE !!
33
6 FAQ
6.1 Por que a onda da sada est um pouco para a direita em relao s
entradas?
Os motivos pelos quais isso ocorre fogem do interesse desse tutorial, mas podem
ser entendidos estudando-se a eletrnica interna de cada porta lgica,
principalmente da tecnologia dos transistores envolvidos.
Como podemos observar na imagem, o tempo de atraso da FPGA que usamos
aproximadamente 10ns.
Em termos engenheiros, no dizemos que ondas vem antes ou depois, mas sim
que elas esto defasadas de uma determinada quantidade.
Por isso, lembre sempre de manter suas oscilaes com perodos maiores que 3
vezes o tempo de atraso, pelo menos. Como no estamos nos preocupando aqui
com a velocidade, coloque umas 10 vezes. Isso faz com que o atraso, at
visualmente, fique despresvel.
34
6.2 O que so esses picos que ocorrem, s vezes, nas transies?
Esse pico feio, mas vou te mostrar como ele miservel. Olhando assim no
vemos a dimenso da coisa, mas vamos dar vrias ampliadas.
Isso ocorre, novamente, devido a eletrnica interna das portas. Esse tipo de
fenmeno sempre ocorre nas transies.
Isso mais um motivo para voc no trabalhar muito prximo do tempo de
atraso. Quanto maior o tempo que o dado fica na sada, menos significativo o
rudo e menor a chance dele ser lido como um dado.
Vrias vezes foi citado que o tempo mximo no pode ser extrapolado, porm
muitas vezes ele pouco para as nossas necessidades. Surge ento a
necessidade de aumentlo.
Primeiro voc precisa ter certeza que no est com dois projetos na mesma
pasta, que no apagou o que no devia e colocou outra coisa em cima. Se voc
suspeita disso, vale mais a pena criar um projeto novo e ir copiando e colando o
contedo dos esquemas.
Isso pode resolver a maioria dos casos. Se no resolveu, crie outro projeto e
copie e cole o contedo dos esquemas.
35
Importante! No copie e cole arquivos, copie e cole o contedo dos esquemas.
Existe sim como copiar os arquivos, mas j que o objetivo consertar erros
melhor arriscar o mnimo possvel.
6.6 Tenho 200 entradas que ficam em 1 sempre, mais 200 que sempre
ficam em 0.. Quando coloco no Waveform fica uma baguna. J que eu
no tenho que mudar elas sempre, tem algo mais prtico a ser feito?
http://www.alldatasheet.com/
36
6.10 Simulei anteriormente, inseri e tirei alguns pinos, quero simular
novamente. Compilo e quando abro o simulador s tenho pinos antigos.
Que fazer?
Clique com o boto direito nessa tabela e v para a opo Customize Columns.
Insira Location na sua tabela.
Como eu expliquei anteriormente, para que voc veja com clareza o piscar dos
LEDs preciso que eles pisquem em frequncia muito baixa.
Para diminuir a frequncia do clock divida-a vrias vezes. Um componente que
ajuda muito nesse tipo de servio o freqdiv.
37
7 Referncia Rpida aos Endereos dos Perifricos
Aqui coloco as tabelas de endereos que voc pode ver no manual. As imagens e
a tabelas abaixo foram feitas pelo pessoal da Altera, crdito a eles.
LEDs
38
Displays
39
Switches (Chavinhas)
Botes
Clocks
40