目录

前言

原理

Verilog HDL程序设计

测试代码

仿真波形图

ISE综合后

RTL Schematic

Technology Schematic


前言

本博文用Verilog HDL语言描述模24的8421BCD码计数器,之后用Modelsim进行功能仿真,然后用ISE进行综合,看看综合出来的RTL级电路以及Technology Schematic是什么样子的,对于RTL Schematic 以及 Technology Schematic可能比较复杂,暂时可能看不懂,但混个眼熟吧。重点是设计思路以及波形图是否正确,后面例如设计一个时钟计数器,这个模24的计数器就可以当成一个模块来直接使用。本博文的目的实际上也是为了时钟计数器做准备,后面的博文会用到这个模块。

原理

计数原理很简单,rst_n为异步复位信号,当时钟上升沿或复位下降沿到来时,如果rst_n有效,则计数器清零(0000 0000)。计数器的计数过程为,当输出信号的低4位从0(0000)计数到9(1001)后,高4位计数加1,当计数到23(0010 0011)时,计数器重新清零,然后重新开始计数。

Verilog HDL程序设计

//8421BCD码计数器,模24
module bcd_counter(clk, rst_n, en, dout);input clk, rst_n, en;
output[7:0] dout;
reg[7:0] dout;always@(posedge clk or negedge rst_n)          //异步复位
beginif(!rst_n)       //复位信号有效时,输出清零dout <= 8'b00000000;else if(en == 1'b0)   //计数使能无效时,输出不变dout <= dout;else if( (dout[7:4] == 4'b0010)&&(dout[3:0] == 4'b0011) )  //计数达到23时,输出清零dout <= 8'b00000000;else if(dout[3:0] == 4'b1001)       //低位达到9时,低位清零,高位加1begindout[3:0] <= 4'b0000;dout[7:4] <= dout[7:4] + 1'b1;endelse                     //上述情况都没有发生,则高位不变,低位加1begindout[7:4] <= dout[7:4];dout[3:0] <= dout[3:0] + 1'b1;endendendmodule

测试代码

//模24,8421BCD码计数器的测试文件
`timescale 1ns/1ps
module bcd_counter_tb;reg clk, rst_n, en;
wire[7:0] dout;//时钟信号,周期为20ns
always
begin#10 clk = ~clk;
end//初始化
initial
beginclk = 1'b0;rst_n = 1'b0;en = 1'b0;#30 rst_n = 1'b1; en = 1'b1;
endbcd_counter u1(.clk(clk), .rst_n(rst_n), .en(en), .dout(dout));
endmodule

仿真波形图

可见,计数到23后计数器就自动清零了,满足设计要求。

ISE综合后

RTL Schematic

展开后

没办法,再放大就看不全了,需要看仔细的,自己用ISE综合一下就好了。

Technology Schematic

用了一些LUT资源和D触发器资源以及各种BUF资源。

最后附上同一系列的博文:

模6计数器以及模10计数器(Verilog HDL语言设计)(Modelsim仿真与ISE综合)

级联模60计数器

模24的8421BCD码计数器(Verilog HDL语言描述)(仿真与综合)相关推荐

  1. 级联模60计数器(Verilog HDL语言描述)(仿真与综合)

    目录 前言 模60计数器 Verilog HDL语言描述 测试文件 仿真波形 RTL Schematic Technology Schematic 前言 看这篇文章前,推荐先看看模10计数器和模6计数 ...

  2. 数字时钟计数器(Verilog HDL语言描述)(仿真和综合)

    目录 前言 主题 Verilog HDL设计代码 测试代码 仿真波形 ISE中综合 RTL Schematic Technology Schematic 前言 数字时钟计数器和我的前一篇博文:级联模6 ...

  3. 有限状态机设计实例之空调控制器(Verilog HDL语言描述)(仿真与综合)(附用Edraw(亿图)画状态转移图)

    目录 前言 空调控制器 简介 状态转移图如下: Verilog HDL语言描述 测试文件 仿真图 ISE综合 RTL Schematic Technology Schematic 前言 关于工具的使用 ...

  4. 通过仿真和综合认识T触发器(Verilog HDL语言描述T触发器)

    这个系列的博文已经写过了两篇,分别是通过仿真和综合认识D触发器(Verilog HDL语言描述D触发器)和通过仿真和综合认识JK触发器(Verilog HDL语言描述JK触发器),分析的方法是完全并行 ...

  5. 通过仿真和综合认识JK触发器(Verilog HDL语言描述JK触发器)

    上篇博文写了用仿真和综合来认识D触发器(通过仿真和综合认识D触发器(Verilog HDL语言描述D触发器)),这篇博文采用完全并行的方式来认识JK触发器. 让我们迅速进入正题吧. J-K触发器的Ve ...

  6. 计数器——Verilog HDL语言

    计数器 任务要求 相关知识 逻辑原理 同步16进制计数器真值表 编程要求 源代码 任务要求 根据所学的时序逻辑及数字电路的知识完成计数器的设计,验证同步16进制计数器的功能,进一步熟悉 Verilog ...

  7. 通过仿真和综合认识D触发器(Verilog HDL语言描述D触发器)

    目录 前言 硬件语言描述 测试文件 仿真图 综合工具综合后的原理图 综合介绍D触发器 维基百科介绍: 其他来源(课本): 8位的D触发器 Verilog HDL程序设计 测试文件: 仿真波形: 综合工 ...

  8. 数字时钟计数器(内含模60计数器以及8421BCD码计数器设计代码)

    目录 前言 模60计数器 verilog设计代码如下: ISE综合 模24的8421BCD码计数器 原理 verilog HDL代码 测试文件 仿真波形 数字时钟计数器 verilog HDL代码 测 ...

  9. 模6计数器以及模10计数器(Verilog HDL语言设计)(Modelsim仿真与ISE综合)

    目录 前言 模6计数器 Verilog HDL语言描述 测试文件 仿真电路图 RTL Schematic Technology Schematic 模10计数器 Verilog HDL语言描述 测试文 ...

最新文章

  1. 科普:String hashCode 方法为什么选择数字31作为乘子
  2. Java程序员如何运用所掌握的技术构建一个完整的业务架构
  3. 正則表達式基本元字符集及其含义(上)
  4. linux18.04下安装的jdk11.0.2
  5. pandas - 案例(股票分析)
  6. 538. Convert BST to Greater Tree 把二叉搜索树转换为累加树
  7. 港航环境变化引起的错误解决方法
  8. php无限评论回复_php实现无限级评论功能_后端开发
  9. LeetCode算法入门- Longest Valid Parentheses -day12
  10. jssdk更新日志_关于jssdk版本的阿里云网站内容、产品介绍、帮助文档、论坛交流和云市场相关问题...
  11. html模态窗口调试,在模态窗口中显示HTML标记
  12. Ansible自动化运维笔记3(playbook)
  13. Linux下Apache、PHP、MySQL默认安装路径
  14. 微信聊天记录云存储服务如何收费
  15. 2017年6月英语 CET 四六级考试查询准考证方法
  16. easyui treegrid php,easyUI TreeGrid | 学步园
  17. 重积分 | 二重积分中 dx x dy = ρ dρ x dθ
  18. 2022跨年烟花代码(一)Canvas绘制3D烟花动画特效
  19. read( )函数注意事项与不足
  20. 安装 Jupyter 开发工具

热门文章

  1. python是结构化语言_NLP是如何工作的:把自然语言(尽可能)结构化
  2. 两个nb模块之间通讯方法_NB-IoT是什么?一口气带你搞懂NB-IoT的诞生、特性以及应用...
  3. 计算机三维作品说明,计算机三维技术
  4. 智慧农场-专项启动会议
  5. 智能车竞赛计时系统感应线圈放在节能充电线圈上输出电压会多大?
  6. 智能车竞赛技术报告 | 单车拉力组 - 哈尔滨工业大学 - 紫丁香
  7. BTN8982基本测试
  8. 2020人工神经网络第一次作业-解答第一部分
  9. ATMEGA328实验电路板
  10. 第十五届全国大学生智能汽车竞赛赛道拼装图