Replies: 4 comments
-
module count11(input logic clk, output logic [3:0] y=4'b0);
always_ff @(posedge clk)
begin
if (y == 4'b1010) y <=0; //un contatore modulo 11 conta da 0 a 10, quindi non arriva mai a 11
else y <= y+1;
end
endmodule |
Beta Was this translation helpful? Give feedback.
-
Questa è una variante di modulo contatore che conta da 0 a 11 (binario 1011) utilizzando un registro a 4 bit. L'ingresso clk viene utilizzato per attivare il conteggio, il primo ingresso viene utilizzato per azzerare il contatore e l'uscita del conteggio fornisce il valore di conteggio corrente. Il blocco sempre viene attivato sul fronte positivo del segnale di clock e incrementa il contatore a meno che non venga azzerato o abbia raggiunto il suo valore massimo. module counter_11 (
input clk,
input rst,
output [3:0] count
);
reg [3:0] count_reg;
always @(posedge clk) begin
if (rst)
count_reg <= 4'b0000;
else if (count_reg == 4'b1010)
count_reg <= 4'b0000;
else
count_reg <= count_reg + 1;
end
assign count = count_reg;
endmodule |
Beta Was this translation helpful? Give feedback.
This comment has been hidden.
This comment has been hidden.
-
hai ragione, ho corretto, penso possiamo darlo per risolto btw |
Beta Was this translation helpful? Give feedback.
-
Esercizio 3 (5 punti)
Descrivere in SystemVerilog un blocco che realizza un contatore modulo 11
Beta Was this translation helpful? Give feedback.
All reactions