logisim,quartus实现模为60的BCD码计数器
一、分析:利用封装的74161完成带有异步复位端的模6和模10计数器,然后级联构成模为60的BCD码计数器:
由74161功能表可知要构成模6计数器和模10计数器,可以采用同步置数法:当达到需要的计数终点时反馈一个置数信号到LD非,使得输出Q3Q2Q1Q0=D3D2D1D0。也可以采用反馈清零法:当达到需要的计数终点时反馈一个清零信号到CR非,使得输出Q3Q2Q1Q0=0000。
二、设计:
三、logisim实现:
1.Logisim环境下设计并封装74161:
2.利用封装的74161完成带有异步复位端的模6和模10计数器,然后连接构成模为60的BCD码计数器:
右边74161作为低位片,利用反馈清零法,从0000计数到1010清零(瞬态),因此实际有效计数从0000到1001,构成了模10计数器。
左边74161作为高位片,同样利用反馈清零法,当从0000计数到0101同时低位片进位到1010时清零,构成模6计数器。
左右两片74161级联,低位片每计10个数清零的同时向高位片发送一个下降沿的时钟信号,高位片计1,直到高位片为0101(5),低位片为1001(9)时产生进位,此时低位片再加1到1010时整体清零(瞬态),由此构成了模为60的BCD码计数器。
四、quartus实现:
1.在quartus环境下完成电路连接电路:
2.同样也可直接用verilog代码实现模60 BCD码计数器计数器:
//模为60的BCD码计数器
module count60(
input clk,
input cin,
input reset,
input load,
input [7:0]data,
output reg [7:0]qout,
output cout
);
always @(posedge clk or negedge reset)beginif(!reset)qout<=0;else if(load)qout<=data;else if(cin)beginif(qout[3:0]==9)beginqout[3:0]<=0;if(qout[7:4]==5)qout[7:4]<=0;else qout[7:4]<=qout[7:4]+1'b1; endelse qout[3:0]<= qout[3:0]+1'b1;end
end
assign cout=((qout==8'h59)&cin)?1:0;
endmodule
五、仿真结果:
1.logisim:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DYaVA0np-1647855011131)(C:\Users\25\Pictures\图8.png)]
说明:低位片每计10个数高位片成功加1,整体从00计数到59时进位输出成功为1,再来一个cp信号整体清零回到0000,重新开始新一轮计数。
2.quartus:
说明:当从00计数到59时产生进位,再来一个cp信号整体清零回到00,重新开始新一轮计数。
六、扩展:
1.除了反馈清零法,也可以用同步置数法来做,高低位片可以都用清零法,也可以都用置数法,也可以高位片清零法低位片置数法,解法并不唯一。
2.BCD码计数器和非BCD码计数器有什么不同?
BCD码计数器相当于将非BCD码计数器的每一位转译为bcd码,既用4位二进制数表示每一位十进制数。BCD码计数器的输出端可以直接通过驱动器连接7段数码管,实现计数的显示功能。
资源下载地址:
Github资源下载
logisim,quartus实现模为60的BCD码计数器相关推荐
- 模为60的BCD码计数器的设计与验证
step1:实现module: module DigitalCountBCD60(clk_50M,rst_n,time_cnt); input clk_50M; input rst_n; output ...
- FPGA中模为60的BCD码加法计数器
定义输入data,load,cin,clk,reset:输出为qout:则代码为: module count60(clk,load,cin,reset,data,cout,qout);input cl ...
- 利用BCD码计数器和7段码转换器子电路
实验目的:利用BCD码计数器和7段码转换器子电路 实验工具:Quartus ii软件和meli软件联合仿真 实验过程截图 实验结果截图 实验代码: module BCDcount (Clock, Cl ...
- HDLBits 系列(18) BCD码计数器的设计
目录 原题复现 审题 我的设计 原题复现 先给出原题: Build a 4-digit BCD (binary-coded decimal) counter. Each decimal digit i ...
- 数字时钟计数器(内含模60计数器以及8421BCD码计数器设计代码)
目录 前言 模60计数器 verilog设计代码如下: ISE综合 模24的8421BCD码计数器 原理 verilog HDL代码 测试文件 仿真波形 数字时钟计数器 verilog HDL代码 测 ...
- 两片74161实现60进制_设计60进制的计数器_用eda设计60进制计数器_74ls161(3)
图4 D/A 转换器电路 该电路的输入信号接四位二进制计数器的输出 端,设计数器输出高... 数字控制电路要求5V电源,可选择CW7805集成三端稳压器实现.辅助电源原理图如图6... <数字电 ...
- 模24的8421BCD码计数器(Verilog HDL语言描述)(仿真与综合)
目录 前言 原理 Verilog HDL程序设计 测试代码 仿真波形图 ISE综合后 RTL Schematic Technology Schematic 前言 本博文用Verilog HDL语言描述 ...
- [计组]压缩BCD码指二进制编码的十进制
压缩BCD码指二进制编码的十进制 压缩BCD码指一个字节8位存储2位BCD码.比如32用8421BCD码表示如下:非压缩BCD码表示:00000011 00000010:压缩BCD码表示:0011 0 ...
- 沈航计算机学院杨华,BCD码的加法.doc
BCD码的加法课案 沈阳航空航天大学 课 程 设 计 报 告 课程设计名称:计算机组成原理课程设计 课程设计题目:COP2000实现BCD码的加法 院(系):计算机学院 专 业:计算机科学与技术 班 ...
最新文章
- 分类与逻辑回归(classification and logistic regression)
- JAVA_Thread_interrupt
- c++顺序容器vector用法
- c# 分类 机器学习_C#也能做机器学习?基于.NET的AI智能应用市场还是一片“处女地”...
- [CQOI2017] 老C的任务(差分 + 树状数组 / K-D tree)
- PHP如何获取用户IP地址
- 通过hsv筛选颜色 python_OpenCV-Python 光流介绍(附代码)
- MongoDB 副本集
- jQuery动画:实现渐入渐出
- Android JNI 本地开发接口
- zynq以太网官网例子调试
- CMM,CMMI 软件全面质量管理的思想体系
- Vi编辑器常用命令及三种模式转换
- Windows10自带的 录制音频 方法
- 同样是VPS,为什么RAKsmart更受欢迎
- 客单价怎么算 影响客单价的主要因素有哪些?
- 对ABAP程序调优的学习(三)并行并发读取
- 速腾rs16激光雷达安装驱动使用方法
- 华为正式发布鸿蒙开源是什么意思,重磅!狙击所有操作系统,华为正式发布鸿蒙OS,并宣布全面开源...
- “兼并”还是“合作” 宏碁方正各怀鬼胎
热门文章
- 作业:找出“你、我、他”在Unicode表中的位置
- HDU 3549 网络流水题
- 不二越机器人编程手册_NACHI机器人说明书.doc
- element ui 不使用input-number实现数字效果 (大于0,可以是小数)
- localStorage、sessionStorage 、indexedDB 、websql 、cookie 的区别
- python office插件_Office 数据可视化8大实用插件推荐
- vb 窗体画面打不开
- 测试开发工作者日记【终焉】:再见~ 小猪
- JDK官方网站下载、安装教程及环境配置
- python 语料标注_语料标注工具(3)