Also versuche ich einen Zähler zu implementieren, der eine Eintaktzyklusaktivierung benötigt und von dort aus zu zählen beginnt. Er sendet einen Ein-Taktzyklus abgelaufen, sobald der Zähler fertig gezählt hat. Die Freigabe wird niemals erneut gesendet, bis der Zähler fertig gezählt ist und der Wert kontinuierlich ist.Wie starte ich einen Zähler mit einer Taktimpulsfreigabe
Ich dachte über die Verwendung einer Reg-Variable, die auf High geändert wird, wenn Enable = 1, und zu Low geändert wurde, sobald der Zähler beendet zu zählen. Ich fürchte, das könnte Laschen bedeuten, die ich nicht will ... Gibt es einen besseren Weg, dies zu tun?
aktuelle Code:
module Timer(
input [3:0] value,
input start_timer,
input clk,
input rst,
output reg expired
);
//counter var
reg [3:0] count;
//hold variable
reg hold;
//setting hold
always @*
begin
if (start_timer == 1'b1)
hold <= 1'b1;
end
//counter
if (hold == 1'b1)
begin
always @ (posedge(clk))
begin
if(count == value - 1)
begin
expired <= 1'b1;
count <= 4'b0;
hold <= 1'b0;
end
else
count <= count + 1'b1;
end
end
endmodule