FPGA学习笔记:3位计数器设计
创作时间:
作者:
@小白创作中心
FPGA学习笔记:3位计数器设计
引用
CSDN
1.
https://blog.csdn.net/qq_45910789/article/details/139013650
FPGA(现场可编程门阵列)是一种重要的可编程逻辑器件,在数字电路设计中有着广泛的应用。本文将介绍如何使用Verilog语言设计一个3位计数器,这是一个FPGA学习的基础内容。
一、逻辑设计
1.端口设计
模块的输入端口包含系统时钟sys_clk、复位信号sys_rst_n;输出端口包含3位的计数器信号cnt[2:0]。
2.波形图绘制
每个时钟上升沿之后,计数器的值就加1,cnt循环从0计数到7,每当计数器计数到最大值时,就会从零开始重新累加。
二、程序设计
根据波形图使用Verilog编写计数器(counter.v)代码
1.计数器代码
module counter(
input sys_clk, // 系统时钟信号
input sys_rst_n, // 系统复位信号(低电平有效)
output reg [2:0] cnt // 输出计数器值,3位宽度
);
always @(posedge sys_clk or negedge sys_rst_n) begin
if (!sys_rst_n) // 如果复位信号为低电平
cnt <= 3'd0; // 计数器复位为0
else
cnt <= cnt + 3'd1; // 计数器值加1
end
endmodule
2.仿真代码
`timescale 1ns / 1ns // 仿真单位/仿真精度
module tb_counter();
// 定义输入端口
reg sys_clk; // 系统时钟信号
reg sys_rst_n; // 系统复位信号(低电平有效)
// 定义输出端口
wire [2:0] cnt; // 计数器值输出端口
// 初始化模块
initial begin
sys_clk = 1; // 初始时钟信号为高电平
sys_rst_n = 1'b0; // 初始复位信号为低电平
#201 // 延迟201个时间单位
sys_rst_n = 1'b1; // 将复位信号置为高电平,使计数器开始计数
end
// 时钟信号反转模拟
always #10 sys_clk = ~sys_clk;
// 实例化计数器模块
counter counter_inst(
.sys_clk(sys_clk), // 传递时钟信号
.sys_rst_n(sys_rst_n), // 传递复位信号
.cnt(cnt) // 传递计数器输出
);
endmodule
3.仿真结果
仿真波形与我们绘制的波形图一致
总结
计数器是逻辑设计中非常常用的一个时序电路,计数器是由寄存器和加法器组成的,使用计数器可以实现使用计数器可以对脉冲的个数计数,以实现测量、计数、分频和控制的功能。
热门推荐
一碗苏式绿豆汤里的江南智慧
小寒养生茶:五款适合寒冬饮用的养生茶
打扫房间时应遵循哪些步骤?
家庭清洁顺序:让家焕然一新的条理化方法
红烧牛肉面的健康之道:从食材到烹饪全解析
牛腱子肉让红烧牛肉面更美味!
红烧牛肉面的完美牛肉制作秘籍🔥
珠三角人口集聚度再创新高,经济引擎作用持续增强
珠三角城市群跃升10万亿级,深圳再创新高!
头孢类抗生素使用需谨慎!这些禁忌和注意事项请收好
吃头孢期间的饮食禁忌:这些食物千万不能碰!
珠三角最新经济数据出炉:四大万亿城市表现亮眼
珠三角城市群:从“追赶者”到“领跑者”
赤城县十大旅游景点
这5种常见的养生茶不能乱喝,小心越喝身体越差!很多人都中招了
《红楼梦》中的未解之谜:太虚幻境与金陵十二钗的命运密码
《红楼梦》第五回:宝玉梦中探秘金陵十二钗的命运
发酵技巧大揭秘:轻松搞定完美面团!
中国迪士尼乐园的双星闪耀:探索梦幻与欢乐的奇妙之旅
东城市场监管局:年夜饭安全大揭秘!
从“抬老人到银行”事件看金融机构的科技应用与人文关怀
从“抬老人到银行”到“适老网点”:金融机构服务特殊群体的反思与启示
网红养生茶,怎么喝才“养生”?
魅力边城自驾游:湘西古村古镇探秘!
冬日边城:沈从文笔下的冰雪世界
边城秀山:自然与人文交织的摄影天堂
光头强与嘟嘟:一段令人捧腹的"父女"情缘
创业成功的三大支柱:经营策略、精神支柱与情感支持
创业成功后如何平衡工作与亲子关系?
无锡移动布局低空经济新赛道