模10模99计数器与分频器 Verilog Quartus

名称:模10模99计数器与分频器 Verilog Quartus

软件:Quartus

语言:Verilog

功能介绍

本设计包含 Verilog 编写的数字计数与分频基础工程,主要包括同步模10计数器、两位 8421 BCD 模99计数器以及偶数分频器。工程可在 Quartus 环境中打开、编译和仿真,适合数字逻辑、FPGA 入门实验以及计数器级联设计学习使用。 模10计数器提供 clk、rst_n、en、count 和 tc 接口。rst_n 为低有效异步复位,en 为计数使能,count 输出 4 位当前计数值,tc 在 9 回 0 时输出一个周期的进位脉冲。该结构清晰,既可以单独作为 0 到 9 循环计数模块使用,也可以作为多级十进制计数系统中的基础单元。 模99 BCD 计数器输出十位 tens 和个位 ones,实现 00 到 99 再回到 00 的循环计数。分频器模块提供 2 分频、4 分频和 8 分频输出,复位后各级输出清零,释放复位后按级联关系翻转,可用于生成较低频率的控制节拍。

运行环境

开发语言:Verilog 开发软件:Quartus 工程类型:Quartus FPGA 工程,包含 Verilog 源码、工程配置文件以及仿真波形相关文件。

设计思路

模10计数器采用同步计数结构,核心逻辑由时钟上升沿驱动,低有效异步复位负责初始化计数值和终端进位信号。使能信号 en 为高时,count 按 0、1、2 直到 9 的顺序递增;当 count 达到 9 后,下一个有效计数周期回到 0,同时 tc 输出一个时钟周期的高脉冲,用于表示一次模10循环结束。 这种设计方式适合级联扩展。tc 可作为下一级计数器的进位触发条件,从而扩展成多位十进制计数系统。低有效复位使电路能够快速回到确定初值,使能门控则让计数器在暂停状态下保持当前计数值,便于在数字钟、计数显示、频率控制和状态计数类实验中复用。 两位 8421 BCD 计数器部分采用个位与十位联动的思路:个位从 0 到 9 循环,个位回零时推动十位加 1;十位同样按 0 到 9 循环。当十位和个位均达到 9 后,下一拍共同回到 00,实现完整的 00 到 99 循环。分频器部分通过 D 触发器翻转实现 2 分频,并以上一级输出级联生成 4 分频、8 分频信号,适合用于时钟降频和节拍产生。

模块结构

主要模块包括: 1. mod10_counter:同步模10计数器,包含低有效异步复位、计数使能、4位计数输出和终端进位输出。 2. mod99_bcd_counter:两位 8421 BCD 计数器,个位满 9 回零并推动十位递增,实现 00 到 99 循环。 3. freq_divider:级联偶数分频器,生成 2 分频、4 分频和 8 分频时钟输出。 4. adder8、fa1:8位加法器及一位全加器模块,可作为组合逻辑基础模块参考。

演示视频

配套演示视频展示了工程功能运行效果,便于对照计数、复位、使能和分频输出等关键现象进行理解。视频可作为学习工程结构和验证波形含义的辅助参考。

仿真图/仿真说明/设计文档图片

配套设计文档包含工程文件说明、程序编译结果、RTL 图、仿真图和仿真分析内容。仿真覆盖了复位、使能、计数递增、终端回零、BCD 十位进位以及 2/4/8 分频输出等关键行为。 模10计数器仿真中,rst_n 初始拉低后释放,en 为高时 count 从 0 递增到 9,随后回到 0,回零当拍 tc 输出高脉冲;en 拉低时 count 保持不变,tc 保持为 0。模99 BCD 计数器仿真中,ones 每拍递增,ones 为 9 后回 0 并使 tens 加 1,tens 和 ones 到达 99 后回到 00。分频器仿真中,clk_div2、clk_div4、clk_div8 的周期分别为输入时钟的 2、4、8 倍,占空比为 50%。

模10模99计数器与分频器 Verilog Quartus 设计文档图片 image1.png

模10模99计数器与分频器 Verilog Quartus 设计文档图片 image2.png

模10模99计数器与分频器 Verilog Quartus 设计文档图片 image3.png

模10模99计数器与分频器 Verilog Quartus 设计文档图片 image4.png

模10模99计数器与分频器 Verilog Quartus 设计文档图片 image5.png

模10模99计数器与分频器 Verilog Quartus 设计文档图片 image6.png

模10模99计数器与分频器 Verilog Quartus 设计文档图片 image7.png

模10模99计数器与分频器 Verilog Quartus 设计文档图片 image1.png

模10模99计数器与分频器 Verilog Quartus 设计文档图片 image2.png

模10模99计数器与分频器 Verilog Quartus 设计文档图片 image3.png

模10模99计数器与分频器 Verilog Quartus 设计文档图片 image4.png

模10模99计数器与分频器 Verilog Quartus 设计文档图片 image5.png

模10模99计数器与分频器 Verilog Quartus 设计文档图片 image6.png

模10模99计数器与分频器 Verilog Quartus 设计文档图片 image1.png

模10模99计数器与分频器 Verilog Quartus 设计文档图片 image2.png

模10模99计数器与分频器 Verilog Quartus 设计文档图片 image3.png

模10模99计数器与分频器 Verilog Quartus 设计文档图片 image4.png

模10模99计数器与分频器 Verilog Quartus 设计文档图片 image5.png

部分代码

以下展示顶层模块 mod10_counter 的部分代码,完整源码请下载压缩包查看。

module mod10_counter (
    input clk,
    input rst_n,
    input en,
    output reg [3:0] count,
    output reg tc
);

// 计数逻辑:en=1 时递增;到 9 回 0,并拉高 tc 一个周期
always @(posedge clk or negedge rst_n) begin
    if (!rst_n) begin
        count <= 4'd0;
        tc <= 1'b0;
    end else if (en) begin
        if (count == 4'd9) begin
            count <= 4'd0;
            tc <= 1'b1;
        end else begin
            count <= count + 4'd1;
            tc <= 1'b0;
        end
    end else begin
        tc <= 1'b0;
    end
end

endmodule

代码文件(付费下载)

📥 付费后此处显示完整工程压缩包下载链接。
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 模10模99计数器与分频器 Verilog Quartus

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员