Verilog 计数器模块:计数范围 10-12, 60-80, 120-159 时拉高输出
下面是一个使用 Verilog 语言实现的计数器模块,根据给定的条件将 'cnt' 和 'out' 输出信号拉高或拉低。
module Counter (
input wire clk,
input wire rst,
output reg [7:0] cnt,
output reg out
);
reg [8:0] count;
always @(posedge clk or posedge rst) begin
if (rst) begin
count <= 0;
cnt <= 0;
out <= 0;
end else begin
count <= count + 1;
if (count >= 10 && count <= 12 || count >= 60 && count <= 80 || count >= 120 && count <= 159) begin
cnt <= count;
out <= 1;
end else begin
cnt <= 0;
out <= 0;
end
end
end
endmodule
在这个计数器模块中,使用了一个 9 位的寄存器 'count' 来存储当前计数值。在每个上升沿时,计数器会自增 1。当复位信号 'rst' 为高电平时,计数器会被重置为 0,并且 'cnt' 和 'out' 输出信号也被拉低。根据给定的条件判断当前计数值是否满足要求,如果满足,将 'cnt' 设置为当前计数值,将 'out' 拉高;否则将 'cnt' 设置为 0,将 'out' 拉低。
原文地址: https://www.cveoy.top/t/topic/pjIb 著作权归作者所有。请勿转载和采集!