设计定义

用三个十进制计数器实现一个三位十进制计数器。

  1. 分析,如下所示的一个计数器中,当q达到9、并且cin为1时,则q返回至0,cout产生进位为1.
  2. 那么我们可以设计三个这样的十进制计数器,将其拼接为一个三位的十进制计数器:上一个计数器的输出是下一个计数器的输入,依次类推。
module bcd_counter(clk,rst,cin,q,cout);input clk;input rst;input cin;output[3:0] q;output cout;

设计输入

  1. 计数器模块
module bcd_counter(clk,rst,cin,q,cout);input clk;input rst;input cin;output[3:0] q;output cout;reg[3:0] q;//reg cout;wire cout;always@(posedge clk or negedge rst)if(rst == 0)beginq <= 0;//cout <= 0;endelse if((q==4'd9)&&(cin==1))beginq <= 0;//cout <= 1;endelse if(cin==1)beginq <= q + 1'b1;//cout <= 0;endelse beginq <= q;//cout <= 0;endassign cout = ((q==4'd9)&&(cin==1))?1'b1:1'b0;
endmodule

分析:在这个模块中,我最开始将cout设计为时序逻辑,也即reg型并在always内部赋值,最后在仿真时发现错误,并最终设计成了组合逻辑。原因是当q为9并且其输入进位为1时,应该立马产生输出进位,而非在下一个时钟上升沿到来时再产生进位,这样就晚了。

  1. 验证模块
`timescale 1ns/1psmodule bcd_counter_tb;reg clk;reg rst;reg cin;wire[11:0] q;wire cout,cout_0,cout_1;bcd_counter u0(.clk(clk),.rst(rst),.cin(cin),.q(q[3:0]),.cout(cout_0));bcd_counter u1(.clk(clk),.rst(rst),.cin(cout_0),.q(q[7:4]),.cout(cout_1));bcd_counter u2(.clk(clk),.rst(rst),.cin(cout_1),.q(q[11:8]),.cout(cout)); initial clk = 1;always #1 clk = ~clk;initial beginrst = 0;#5; rst = 1;endinitial begincin = 1;#3000;cin = 0;$stop;end
endmodule

分析:如上代码所示,我们将u0的输出cout_0作为u1的输入,其实在实际中也是这样的,我们普通的算数达到9时,再加1,就会变成10,也即产生一个进位1,并且原先的9变成0.故其设计是符合我们的日常生活逻辑的

第五课:BCD计数器设计与验证相关推荐

  1. 4位BCD计数器设计

    状态转换: 输出函数: 4位BCD计数器设计:

  2. BCD计数器设计与使用Verilog

    1.设计内容 四位计数器,实现0---9的计数. 2.代码 module BCD_counter(Clk,Cin,Rst_n,Cout,q);input Clk;//计数基准时钟input Cin;/ ...

  3. 06-BCD计数器设计与应用——小梅哥FPGA设计思想与验证方法视频教程配套文档

    芯航线--普利斯队长精心奉献 实验目的:1.掌握BCD码的原理.分类以及优缺点 2.设计一个多位的8421码计数器并进行验证 3.学会基本的错误定位以及修改能力 实验平台:无 实验原理: BCD码(B ...

  4. 数学猜想验证步骤_初中数学猜想与验证优质课教案教学设计

    综合实践<猜想与验证>教学设计 一.内容和内容解析 1 .内容 本节课是为人教版七年级下册第五章 <相交线与平行线> 设计的 综合实践课. 2 .内容解析 观察.猜想.验证是研 ...

  5. 计算机改计数器的方法,第五章定时器计数器(修改)-计算机原理及应用资源共享课.ppt...

    第五章定时器计数器(修改)-计算机原理及应用资源共享课.ppt 1 第5章 MCS-51单片机定时器/计数器 主要内容 定时/计数器的工作原理模式 定时/计数器的工作方式 定时/计数器的应用 2 (1 ...

  6. 实验五、任意N进制异步计数器设计

    实验五  任意N进制异步计数器设计 实验目的 掌握任意N进制异步计数器设计的方法. 实验要求 一人一组,独立上机. 在电脑上利用Multisim软件完成实验内容. 实验内容 说明任意N进制异步计数器的 ...

  7. 四位BCD计数器verilog_verilog--计数器设计12-hour clock

    题目来源于: https://hdlbits.01xz.net/wiki/Count_clock​hdlbits.01xz.net 前言: 新手入门,以下内容主要记录学习过程,便于后期改正.新人对语法 ...

  8. 五年级计算机课主要学哪些,小学五年级信息技术教学设计

    小学五年级信息技术教学设计 一. 教材分析 教学内容: 五年级上册教材共分三个单元:多媒体素材的采集与处理.有声有色话家乡(Powerpoint).建设网上家园(Frontpage).根据课时安排.综 ...

  9. (90)FPGA十进制计数器设计-面试必问(十四)(第18天)

    (90)FPGA十进制计数器设计(第18天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)FPGA十进制计数器设计-面试必问(十四)(第18天) 5)技术交流 ...

  10. php比特教务选排课系统的设计与实现毕业设计源码301826

    比特教务选排课系统的设计与实现 摘 要 随着人类向信息社会的不断迈进,风起云涌的信息时代正掀起一次新的革命,同时计算机网络技术高速发展,网络管理运用也变得越来越广泛.因此,建立一个B/S结构的比特教务 ...

最新文章

  1. AI一分钟 | 特斯拉做空者频频“找茬”;自动驾驶汽车事故调查:人为是主因...
  2. WebMisDeveloper4.2.0面世
  3. 模拟命令行自动输入的HTML,HTML5 命令行界面仿真和自动打字动画
  4. android 使用xml定义自己的View
  5. java的import关键字的使用
  6. Python3 字典 items() 方法
  7. 沈志康奖教金 计算机学院,天大60名青年才俊获首届沈志康奖教金
  8. 英特尔Bridge技术加持下 Windows 11 PC也能运行手机应用
  9. mysql80压缩版安装_裕-安装MySQL80(压缩版)
  10. Leecode刷题热题HOT100(3)——无重复字符最长子串
  11. div是html5新元素,HTML5编码新元素的介绍
  12. C++11 —— 基于区间(range)的 for 循环
  13. Android-JNI开发系列《一》-动态库的函数注册
  14. Windows Server 2012 虚拟化实战:网络(一)
  15. 这样投递简历更容易找到工作
  16. 智慧交管数字孪生IOC系统
  17. 巧用CSS,愚人节极客式恶搞
  18. iReport连接数据库
  19. c++ 11 多线程支持 (std::packaged_task)
  20. 有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中——C语言

热门文章

  1. C++Comb Sort梳排序的实现算法(附完整源码)
  2. 大数据发展前景及发展战略分析
  3. JLabel.setBounds的四个参数
  4. dockers 赋权
  5. php faker,faker php伪造填充数据
  6. 去掉word中的页眉
  7. 【python】python读取命令行选项参数
  8. python深浅拷贝应用_Python深浅拷贝以及应用场景
  9. 压缩文件中文件名乱码问题
  10. 人工智能学习-高等数学