我有一个输入和一个输出。如果输入为100个标记有效(100个周期),我想将输出转为1。
module check_100(
input wire clock,
input wire reset,
input wire in_a,
output reg out_a);
reg[10:0] counter;
always @(posedge clock) begin
counter <= counter + 1;
if(in_a && (counter == 100)) begin
out_a <= 1;
end
end
但它似乎无法正常工作。 这是一个检查信号是否为100个刻度/周期有效的好方法吗?
谢谢! :)
答案 0 :(得分:0)
一种方法是在count == 100时使用连续赋值来设置输出。当输入变低时,计数器复位。当它达到100时保持计数值。
module check_100(
input wire clock,
input wire reset,
input wire in_a,
output wire out_a
);
reg [10:0] counter;
assign out_a = counter == 100;
always @(posedge clock) begin
if (reset) begin
counter <= 0;
end else if (!in_a) begin
counter <= 0;
end else if (counter < 100) begin
counter <= counter + 1;
end
end
endmodule