博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【verilog_8】: 设计60进制计数器,带异步复位、同步使能、同步装载、同步清零、同步置位
阅读量:3940 次
发布时间:2019-05-24

本文共 1106 字,大约阅读时间需要 3 分钟。

1.设计60进制计数器,带异步复位、同步使能、同步装载、同步清零、同步置位

法一

author : Mr.Maoe-mail : 2458682080@qq.commodule cnt60x(	input clk,	input reset,	input [5:0] d,	input en,	input load,	input sclr,	output reg[5:0] q,	output cout	);always @(posedge clk,posedge reset)	if(reset)		q <= 0;		else if(sclr)			q <= 0;	else if(load)		q <= d;	else if(en)		if(q < 60-1)			q <= q + 1'b1;		else			q <= 0;				assign cout = (q==60-1);endmodule

法二

author : Mr.Maoe-mail : 2458682080@qq.commodule CNT_60(rst_a, en_s, load_s, clr_s, clk, q, data, cnt) ;  input clk, clr_s, rst_a, en_s, load_s;   //后缀有s的代表为同步,后缀为a的代表异步input [0:5] data ;output q, cnt;   //其实这里的cnt并不需要输出,只不过为了仿真时更好观察计数过程,把cnt输出reg [0:5] cnt ;  //计数60,2^5 = 64 > 60reg q ;always@(posedge clk or negedge rst_a)begin    if(!rst_a)    cnt <= 0 ;		//异步复位	 	 else if(en_s)	     begin		     if(load_s)             cnt <= data ;  //如果数据加载有效,则令计数器=输入的数据	   else if(clr_s)              cnt <= 0 ;		else if(cnt <= 59)         cnt <= cnt + 1 ;		else                        cnt <= cnt ;		  		  endendalways@(posedge clk)begin   if(cnt == 59)   q <= 1'b1 ;  else            q <= 1'b0 ;  endendmodule

转载地址:http://jyiwi.baihongyu.com/

你可能感兴趣的文章
nginx 优化
查看>>
openresty+lua在反向代理服务中的玩法
查看>>
ClickHouse集群搭建从0到1
查看>>
nginx实现请求的负载均衡 + keepalived实现nginx的高可用
查看>>
linux shell 中数组的定义和for循环遍历的方法
查看>>
求1!+2!+3!....+20!(java代码)
查看>>
VMware安装Ubuntu系统无法选择语言
查看>>
QT5.12安装
查看>>
Git/Github初步使用记录
查看>>
QT 开发问题合集
查看>>
Github使用问题合集
查看>>
QT多线程服务器
查看>>
Ubuntu 18.04.2 ulimit配置
查看>>
Ubuntu Mysql 安装与配置
查看>>
QT5.12 Mysql驱动未能加载问题
查看>>
现场直击|SequoiaDB@SIGMOD 2021:关注数据库的根科技存储技术
查看>>
赋能政企智慧办公,巨杉数据库与致远互联完成产品互认证
查看>>
SequoiaDB湖仓一体架构亮相 ACM SIGMOD 2021
查看>>
信通院发布第十二批大数据产品能力评测结果,巨杉数据库两款产品通过
查看>>
巨杉数据库荣获2020年度河南省科学技术进步奖
查看>>