Tutorial Quartus II - VHDL Pin Assignment
Tutorial Quartus II - VHDL Pin Assignment
Apresentação
Este tutorial tem como objetivo apresentar aos usuários uma alternativa de realizar o
mapeamento dos pinos de entrada e saída dos módulos em VHDL com os pinos do FPGA.
Sintaxe
Para sinais de um único bit, ou seja, do tipo std_logic, deve-se utilizar a seguinte sintaxe:
attribute chip_pin of <signal_name> : signal is "<pin_name>";
Conforme pode ser observado, não é necessário utilizar o prefixo “PIN_” antes do nome de
cada pino, diferente de quando é utilizado a ferramenta Pin Planner do Quartus, conforme
pode ser visto na Figura 1.
Exemplo
O exemplo abaixo implementa um codificador de prioridades estáticas (stactic priority encoder
– spe), com quatro entradas (R0, R1, R2 e R3) e quartos saídas (G0, G1, G2 e G3), onde as
entradas são mapeadas nos switches e as saídas nos leds do FPGA. Além disso, para demonstrar
o funcionamento do mapeamento dos pinos através da sintaxe , o código foi sintetizado na
placa de desenvolvimento terasIC DE0 (Ciclone II EP3C16F484C6), onde foram utilizados os
switches (SW0, SW1, SW2 e SW3) e os leds (LEDG0, LEDG1, LEDG2, LEDG3), conforme
pode ser visto na Figura 2.
H1 J3 J2 J1
G4 H6 H5 J6
entity spe is
port (
i_R0 : in std_logic; -- Input R0
i_R1 : in std_logic; -- Input R1
i_R2 : in std_logic; -- Input R2
i_R3 : in std_logic; -- Input R3
o_G0 : out std_logic; -- Output G0
o_G1 : out std_logic; -- Output G1
o_G2 : out std_logic; -- Output G2
o_G3 : out std_logic); -- Output G3
end spe;
begin
-- Combinational Logic
o_G0 <= i_R0;
o_G1 <= (not i_R0) and i_R1;
o_G2 <= (not i_R0) and (not i_R1) and i_R2;
o_G3 <= (not i_R0) and (not i_R1) and (not i_R2) and i_R3;
end arch_1;
Referência
http://quartushelp.altera.com/15.0/mergedProjects/hdl/vhdl/vhdl_file_dir_chip.htm