lundi 18 novembre 2013

EP2C5T144C8N

Un petit FPGA Altera se trouvant sur une platine de test pas chère...

En suivant ces deux vidéos My First FPGA Tutorial (1) et My First FPGA Tutorial (2) et en l'adaptant au hardware grâce au schéma et à la documentation sommaire, on parvient à changer le comportement des LEDs.


On crée un fichier Verilog MyFirstProject.v (1):

module MyFirstProject( CLOCK_50, LEDR, KEY);

input CLOCK_50;
input KEY;

output [2:0] LEDR;

reg [27:0] count;
wire reset_n;

assign reset_n = KEY;

always@ (posedge CLOCK_50 or negedge reset_n)
begin
   if (!reset_n)
      count = 0;
   else
      count = count + 1;
end

assign LEDR = count [27:25];
endmodule
 
On assigne les entrées/sorties (2).
Ce qui, dans MyFirstProject.qsf, donne :

set_location_assignment PIN_144 -to KEY
set_location_assignment PIN_3 -to LEDR[0]
set_location_assignment PIN_7 -to LEDR[1]
set_location_assignment PIN_9 -to LEDR[2]
set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[0]  
set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[1]
set_instance_assignment -name IO_STANDARD "2.5 V" -to LEDR[2]
set_location_assignment PIN_17 -to CLOCK_50
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to CLOCK_50
 
(On spécifie deux choses : la localisation et le type électrique)
 
On compile avec Quartus II (3) et on télécharge avec le USB Blaster (4).
 
Le programmeur n'était pas accessible aux utilisateurs normaux mais Using Altera's USB-Blaster on Debian Linux explique qu'il suffit d'ajouter un fichier
 /etc/udev/rules.d/altera-usb-blaster.rules
contenant
 ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="666"
Après reboot, cela fonctionne. Rien d'exceptionnel ou d'original mais cela permet de tester simplement le Minifpga et la chaîne des outils.