Menu File:
Se aparecer a tela informativa:
Definir:
O diretório do projeto;
O nome do projeto;
Qual é o “Top-Level Design” (o main da linguagem C).
Project Type:
Add Files:
Family, Device & Board Settings:
Cyclone V:
EDA Tool Settings:
Summary:

Depois de criado o projeto, vá em Assignements > Settings > Compiler Settings > VHDL Input e:

Menu File > Design Files > VHDL File;
Com esse novo arquivo selecionado:
Menu File > Save As;
Nomeie o arquivo e salve.
Com esse arquivo selecionado:
Selecione o arquivo que possui a entidade desejada e:
Ou, vá em:
Menu Assignments > Settings > General > Top-Level Entity;
E escolha a Top-Level Entity desejada.
Clique com o botão esquerdo do mouse no editor de texto e escolha:
Ou, vá em Menu Edit:
Em Insert Template > VHDL > Constructs > Design Units, veja a sintaxe para:
Library Clause;
Use Clause;
Entity;
Architecture.
Em Insert Template > VHDL > Constructs > Declarations, veja a sintaxe para:
Signal Declaration;
Variable Declaration;
Constant Declaration;
Component Declaration.
Em Insert Template > VHDL > Constructs > Concurrent Statements, veja a sintaxe para:
Combinational Process;
Sequencial Process.
Em Insert Template > VHDL > Constructs > Concurrent Statements > Instances, veja a sintaxe para:
Component Instantiation;
Direct Entity Instantiation;
Direct Entity Instantiation w/ Architecture.
Em Insert Template > VHDL > Constructs > Sequential Statements, veja a sintaxe para:
Em Insert Template > VHDL > Constructs > Expressions, veja a sintaxe para:
Unary Operators;
Binary Operators.
Em Insert Template > VHDL > Logic > Registers, veja a sintaxe para:
Basic Positive Edge Register;
Basic Positive Edge Register with Asynchronous Reset and Clock Enable;
Full-Featured Positive Edge Register with All Secondary Signals.
Com o cursor na posição do arquivo onde deseja inserir o template:
Ou, escolha o template desejado e copie a parte de interesse e cole no arquivo.
Menu File:
New:
Na tela de edição que foi aberta:

No navegador da biblioteca:
Primitives:
Logic:
and2;
OK.

Na tela de edição:
Use o simbolo “In”:
Selecione como entrada:
Selecione como saída:

Modifique os nomes dos sinais de entrada e de saída:
Com duplo clique nos nomes atuais:
Mude para Entrada_1;
Mude para Entrada_2;
Mude para Saida;

Não esqueça de salvar o seu projeto.
No caso da utilização de descrição do circuito através do diagrama lógico, pode-se verificar, ou mesmo exportar, o código equivalente ao diagrama. Para isso, use a opção Create HDL Design File from Curret File:
Menu File:
Create / Update:
Create HDL Design File from Curret File…
Selecione VHDL;
OK.
Vá no diretório do projeto e abra o arquivo “.VHD” no editor de texto.
Para uma porta AND, o programa será similar ao seguinte:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
LIBRARY work;
ENTITY portaAND IS
PORT (
entrada1 : IN STD_LOGIC;
entrada2 : IN STD_LOGIC;
saida : OUT STD_LOGIC
);
END portaAND;
ARCHITECTURE bdf_type OF portaAND IS
BEGIN
saida <= entrada1 AND entrada2;
END bdf_type;O processo de compilação é dividido em algumas etapas:
Análise:
Verifica cada unidade de projeto separadamente:
declaração da entidade, arquitetura, etc..
facilita se utilizar um arquivo por unidade de projeto.
Verifica se há erros de sintaxe (gramática) ou semântica (significado);
As unidades analisadas são colocadas em uma biblioteca:
usando um formato interno a dependente da implementação;
essa biblioteca é chamada de work.
Elaboração:
Transforma o projeto hierárquico em um projeto plano:
cria as portas (ports);
cria os sinais (signal) e processos (process) dentro do corpo de cada arquitetura;
para cada componente instanciado, copia a entidade e corpo de arquitetura do componente para o módulo que o utiliza;
repete esse procedimento recursivamente nos corpos de arquitetura.
Resultado da elaboração:
process) interligados por uma rede de sinais (signal), chamado de netlist.É o suficiente para que a simulação possa ser executada.
Síntese:
Com o auxílio da biblioteca da tecnologia usada, traduz o projeto RTL em uma lista de conexões de portas lógicas (gate-level netlist):
Existem restrições ao uso de algumas declarações no modelo RTL;
Essas restrições dependem da ferramenta de síntese utilizada.
Alocação e Roteamento:
Analisa a lista de conexões gerada na síntese e aloca os blocos funcionais (primitivas) no dispositivo alvo (modelo da FPGA ou ASIC);
Faz o roteamento dos sinais que interconectam esses blocos funcionais;
Verifica se foram satisfeitas as restrições (constraints) de área, temporização e potência.
Gera um arquivo contendo todas as conexões necessárias para que a FPGA implemente a funcionalidade desejada.
No Quartus, a compilação pode ser feita de três formas:
Start Compilation: Faz a compilação completa. Isso inclui: análise sintática, criação da netlist, roteamento para a tecnologia escolhida (fitter), verificação das restrições de temporização do projeto, alocação dos pinos da FPGA, geração do arquivo assembly para gravar a FPGA, etc …
Start Analysis & Elaboration: Analisa o projeto procurando por erros de sintaxe e semântica. Também executa a elaboração, que é a identificação da hierarquia criada. Após a execução, é possível utilizar o RTL Viewer e navegar pelos arquivos no Project Navigator.
Start Analysis & Synthesis: Analisa o projeto procurando por erros de sintaxe e semântica. Faz a extração da netlist e cria um banco de dados com todos arquivos do projeto. Também faz o mapeamento do projeto para a arquitetura alvo (síntese). Após a execução, é possível fazer a simulação do circuito criado.
Clique no ícone escolhido:
Aguarde a finalização do processo;
Verifique se ocorreu algum erro.

Para verificar o circuito resultante da compilação, use:
Tools > Net List Viewers > RTL Viewer
Fluxo da compilação (compilation flow) do Quartus Prime





Pode-se verificar as conexões do circuito:

E, com o botão direito do mouse, exibir o sub menu:
Conectivity Details.

Que podem, eventualmente, possuir o sinal de “+”:


Menu File:
New:
Verification/Debug Files:
University Program VWF;
OK.

Abrirá uma nova tela com o simulador:

Menu Edit:
Insert:
Na tela de ‘Insert Node or Bus’:
Na tela de ‘Node Finder’:
Clique em List:
Escolha os sinais para simular;
OK.
OK.

Selecione a primeira entrada no seu ícone ‘In’:
Selecione o ícone de ‘Count Value’:
Em ‘Transitions occour’, digite 10 e escolha a unidade de “ns” (nanosegundos).
OK.

Faça o mesmo para a segunda entrada e escolha 20 ns.
Note que foi criada a sequência binária da tabela da verdade.
Salve a sua simulação.
Caso queira diminuir a janela de tempo mostrada:
Edit:
Set End Time…

A configuração da simulação precisa ser alterada. Para isso, vá em Simulation > Simulations Settings e:
Se o simulador é o da versão 23 do Quartus, troque na quinta linha a opção -novopt por -voptargs=+ACC.
Caso seja uma versão anterior do Quartus, apenas apague a opção -novopt.

Clique no ícone:


Após finalizar, com sucesso, a compilação completa, abra o gravador:

Deverá aparecer a tela do gravador, indicando que ele existe e está conectado:

Para escolher o arquivo a ser enviado para a FPGA, clique em Add File e escolha o diretório output_files:

Escolha o arquivo com a extensão “.sof” que deseja gravar:

Quando o arquivo carregar, confira a FPGA escolhida e se ela aparece como disponível para gravação:

Aperte o botão de Start e espere o término da gravação:

Caso o gravador não seja encontrado, aparecerá a seguinte tela:

Verifique a conexão do cabo USB com a placa e confira a exisência do gravador no Hardware Setup.
Definições do projeto:
*.qpf - Quartus Project
*.qsf - Quartus Settings File
Código:
*.vhd - VHDL Design File
*.v - Verilog HDL Source
*.bsf - Quartus Block Symbol File
*.bdf - Quartus Block Diagram File
*.qip - Quartus IP File
Memória:
*.sof - SRAM Object File
*.mif - Memory Initialization File
Simulação:
Outras:
| Tipo de Arquivo | Extensão |
|---|---|
| AHDL Include File | .inc |
| ATOM Netlist File | .atm |
| Block Design File | .bdf |
| Block Symbol File | .bsf |
| BSDL file | .bsd |
| Chain Description File | .cdf |
| Comma-Separated Value File | .csv |
| Component Declaration File | .cmp |
| Component Description File | _hw.tcl |
| Compressed Vector Waveform File | .cvwf |
| Conversion Setup File | .cof |
| Cross-Reference File | .xrf |
| database files | .cdb, .hdb, .rdb, .tdb |
| Design Protocol File | .dpf |
| Graphic Design File | .gdf |
| Hexadecimal (Intel Format) File | .hex |
| Hexadecimal (Intel Format) Output File | .hexout |
| HSPICE Simulation Deck File | .sp |
| HTML Format Report File | .htm |
| I/O Pin State File | .ips |
| IBIS Output File | .ibs |
| In System Configuration File | .isc |
| IP Index File | .ipx |
| Jam Byte Code File | .jbc |
| Jam File | .jam |
| JTAG Debugging Information File | .jdi |
| JTAG Indirect Configuration File | .jic |
| Library Mapping File | .lmf |
| License File | license.dat |
| Logic Analyzer Interface File | .lai |
| Memory Initialization File | .mif |
| Memory Map File | .map |
| PartMiner edaXML-Format File | .xml |
| Pin-Out File | .pin |
| Pin Planner File | .ppf |
| Programmer Object File | .pof |
| programming files | .cdf, .cof |
| QMSG File | .qmsg |
| Intel® Quartus® Prime IP File | .qip |
| Intel® Quartus® Prime Archive File | .qar |
| Intel® Quartus® Prime Archive Log File | .qarlog |
| Quartus User-Defined Device File | .qud |
| Intel® Quartus® Prime Default Settings File | .qdf |
| Intel® Quartus® Prime Exported Partition File | .qxp |
| Intel® Quartus® Prime Message Flag Rule File | .frf |
| Intel® Quartus® Prime Message Suppression Rule File | .srf |
| Intel® Quartus® Prime Project File | .qpf |
| Intel® Quartus® Prime Settings File | .qsf |
| Intel® Quartus® Prime Workspace File | .qws |
| Raw Binary File | .rbf |
| Raw Programming Data File | .rpd |
| Routing Constraints File | .rcf |
| Signal Activity File | .saf |
| Signal Tap File | .stp |
| Sources and Probes File | .spf |
| SRAM Object File | .sof |
| State Machine File | .smf |
| Symbol File | .sym |
| Synopsys® Design Constraints File | .sdc |
| Tab-Separated Value File | .txt |
| Tabular Text File | .ttf |
| Tcl Script File | .tcl |
| Text Design File | .tdf |
| Text Format Report File | .rpt |
| Token File | ted.tok |
| Vector Table Output File | .tbl |
| vector source files | .tbl, .vwf, .vec |
| Vector Waveform File | .vwf |
| Verilog Design File | .v, .vh, .verilog,.vlg |
| Verilog Output File | .vo |
| Verilog Quartus Mapping File | .vqm |
| Verilog Test Bench File | .vt |
| Value Change Dump File | .vcd |
| version-compatible database files | .atm, .hdbx, .rcf, .xml |
| VHDL Design File | .vhd, .vhdl |
| VHDL Output File | .vho |
| VHDL Test Bench File | .vht |
| XML files | .cof, .stp, .xml |
| waveform files | .scf, .stp, .tbl, .vec, .vwf |
| Waveform Settings File | .wsf |