0
因此,我試圖實現一個計數器,它需要一個時鐘週期使能並從那裏開始計數。一旦計數器完成計數,它將發送一個時鐘週期到期。在計數器完成計數之前,該啓用將不會再次發送,並且值輸入是連續的。如何使用一個時鐘脈衝啓動計數器啓用
我在考慮只使用一個reg變量,當enable = 1時變爲高電平,一旦計數器完成計數,變爲低電平。我擔心這可能意味着鎖定我不想要...有沒有更好的方法來做到這一點?
當前代碼:
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