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.