Voilà, j'ai trouvé ce programme sur un site, j'ai testé ce qu'il faisait, c'est une sirène de police et en le visualisant sur oscilloscope on voit que l' on a une certaine plage de fréquence. Par contre, je ne comprend pas trop comment le programme arrive à le faire surtout à partir de la ligne en gras
module music(clk, q);
input clk;
output q;
reg [22:0] tone;
always @(posedge clk) tone <= tone+1;
wire [6:0] ramp = (tone[22] ? tone[21:15] : ~tone[21:15]);
wire [14:0] clkdivider = {2'b01, ramp, 6'b000000};
reg [14:0] counter;
always @(posedge clk) if(counter==0) counter <= clkdivider; else counter <= counter-1;
reg q;
always @(posedge clk) if(counter==0) q <= ~q;
endmodule
Quelqu'un pourrait m'expliquer surtout les lignes en gras svp? Merci d'avance
un programme en verilog que je comprend pas
Modérateur : Modérateur
Code : Tout sélectionner
wire [6:0] ramp = (tone[22] ? tone[21:15] : ~tone[21:15]);
Code : Tout sélectionner
wire [14:0] clkdivider = {2'b01, ramp, 6'b000000};
Marsu
Groupe d'humour... http://groups.google.com/group/forire-le-retour
Inscription gratuite ici : http://groups.google.com/group/forire-l ... xsubscribe
Groupe d'humour... http://groups.google.com/group/forire-le-retour
Inscription gratuite ici : http://groups.google.com/group/forire-l ... xsubscribe