Dans le précédent article, nous avons fait connaissance avec Verilog et avons conçu nos premiers modules après avoir choisi la plateforme FPGA la plus adaptée à nos besoins pédagogiques. Cependant, nous avons délibérément fait l'impasse sur une étape importante du design HDL : la simulation. Il est temps, maintenant, de corriger cet écart et de pousser davantage dans la découverte et la compréhension de Verilog et des FPGA.
1. Précédemment dans Buffy contre les FPGA...
La dernière fois, nous avions terminé notre apprentissage sur un code Verilog relativement complet utilisant déclarations et instanciations, affectations continues et procédurales, passages de paramètres, etc. Nous avons fait le tour des grandes lignes du langage et obtenu un résultat, un compteur fonctionnel. Pour rappel, notre dernière version du code était la suivante :
// déclaration top level module
module Premier (
input wire MCLK50M,
output wire led1,
output wire led2,
output wire led3
);
// instanciation
blink instled1 (MCLK50M, led1);
blink #(32'd6499999) instled2 (MCLK50M, led2);
blink #(32'd3499999) instled3 (MCLK50M, led3);
endmodule
// module clignotant
module blink #(parameter speed=32'd16499999)(
input wire CLK,
output reg led
);
reg [31:0] cnt;
// compteur pour division
always @ (posedge CLK)
begin
if(cnt != speed)
cnt <= cnt +...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première