FPGA设计基础01——计数器

FPGA设计基础01——计数器

1.计数器的功能就是计数。

2.计数器计的数是时钟脉冲的个数。

3.计数的最大值与位宽有关,位宽为n,则最大数为2的n次方。

4.常用于计算时间,如若FPGA的晶振为50M赫兹,那么他一个时钟的时间就是1/50_000_000=20ns,也就是说每来一个时钟就+20ns,通过多次计数可以得到想要的不同的时间。

5.我们平时写的普通计数器

		always @(posedge clk or negedge rst_n)begin
		    if(!rst_n)begin
		        cnt <= 0;
		    end
		    else if(加一条件)begin
		        if(结束条件)
		            cnt <= 0;
		        else
		            cnt <= cnt + 1;
		    end
		end

6.这里介绍一种明德扬的计数器,只需要记住两个关键:加一条件、结束条件。

	always @(posedge clk or negedge rst_n)begin
		 if(rst_n==1'b0)begin
			cnt<= 0;
		 end
		 else if(add_cnt) begin
			 if(end_cnt)
			 cnt<= 0;
		 else
			 cnt<= cnt + 1;
		 end
	end
	
	assign add_cnt = 1 ;
	assign 结束条件 = add-cnt && cnt== 100-1 ;

add_cnt为加一条件,上述将其致1,意味着一直计数,知道满足我的结束条件为止。

end_cnt为结束条件,上述为计数到第100个时钟(注意从0开始计数,所以要-1),即为100*20ns的时间

6.两个计数器同时使用

	always @(posedge clk or negedge rst_n)begin
		if(!rst_n)begin
		cnt0 <= 0;
		end
		else if(add_cnt0)begin
		if(end_cnt0)
		cnt0 <= 0;
		else
		cnt0 <= cnt0 + 1;
		end
	end
	
	assign add_cnt0 = 1;						//计数器0一直计数
	assign end_cnt0 = add_cnt0 && cnt0== 100-1 ;//计数到100个时钟时结束
	
	always @(posedge clk or negedge rst_n)begin 
		if(!rst_n)begin
		cnt1 <= 0;
		end
		else if(add_cnt1)begin
		if(end_cnt1)
		cnt1 <= 0;
		else
		cnt1 <= cnt1 + 1;
		end
	end
	
	assign add_cnt1 = end_cnt0;					//计数器0计数结束时,计数器1计数一次
	assign end_cnt1 = add_cnt1 && cnt1== 100-1 ;//计数器1计数到100时结束

由上面可知,两个计数器之间的关系为:计数器0计数完一整个周期后,计数器1加一。计数器0数完100个周期后,计数器1完成一个周期。

  • 8
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
课程简介 该课程是FPGA在嵌入式系统领域的应用,以XILINX的MICROBLAZE 32位软核处理器为载体,介绍嵌入式系统软件和硬件协同设计和协同调试的方法,诠释All Programmable在嵌入式系统设计的重要意义。 分享到: 课程目录 课程讨论 第35讲:Vivado高级设计技术 5 634 第34讲:基于HLS实现矩阵相乘 5 603 第33讲:基于HLS实现时序逻辑 5 288 第32讲:在Vivado看逻辑门的内部逻辑结构 5 857 第31讲:从组合逻辑、时序逻辑和矩阵相乘看基于HLS的字系统实现 5 228 第30讲:HLS关键优化策略 5 304 第29讲:高级综合工具调度及C代码的关键属性 5 271 第28讲:高级综合工具Vivado应用 5 426 第27讲:基于MATLAB的模型设计 5 306 第26讲:软硬件协同调试及构建断系统 5 350 第25讲:软硬件协同调试并分析系统 5 212 第24讲:用在线逻辑分析仪对系统进行硬件调试 5 274 第23讲:软硬件协同调试方法 5 263 第22讲:如何修改模版并在系统运行 5 294 第21讲:详细分析LED IP模版 5 263 第20讲:手把手教如何创建IP核 5 358 第19讲:实验:打通Micorblaze和SRAM的通道2 5 233 第18讲:实验:打通Micorblaze和SRAM的通道1 5 293 第17讲:GPIO实验详细分析 5 443 第16讲:实验:手把手教AXI GPIO核仿真 5 614 第15讲:MicroBlaze处理器结构及使用BSB建立的最小系统结构 5 486 第14讲:3位8进制计数器实现详解 5 268 第13讲:字逻辑的关键问题——有限状态机 5 303 第12讲:从PlanAhead及ISE综合实现详细分析FPGA结构 5 422 第11讲:详解FPGA芯片的内部结构之查找表(LUT) 5 423 第10讲:用ISE设计工具看清FPGA内部结构 5 513 第9讲:AMBA AX14协议规范 5 535 第8讲:AMBA AHB协议规范 5 398 第7讲:AMBA APB协议规范 5 399 第6讲:AMBA协议规范概述 5 559 第5讲:Zynq平台设计学方法II 5 1028 第4讲:Xilinx可扩展处理平台导论(Zynq-7000)及设计方法 805 第3讲:Xilinx可编程SoC设计流程及开发工具概述 716 第2讲:All Programmable(全可编程)平台SoC特点 599 第1讲:可编程SoC设计导论——内容简介
01 试看小梅哥fpga设计思想与验证方法视频:http://bbs.elecfans.com/jishu_484523_1_1.html 02 芯航线FPGA开发平台设计初衷:http://bbs.elecfans.com/jishu_514523_1_1.html 03 芯航线FPGA学习平台介绍:http://bbs.elecfans.com/jishu_514526_1_1.html 04 芯航线FPGA学习平台焊接记录:http://bbs.elecfans.com/jishu_514914_1_1.html 05 芯航线FPGA学习平台系统调试:http://bbs.elecfans.com/jishu_515169_1_1.html 06【连载视频教程(一)】科学的开发流程:http://bbs.elecfans.com/jishu_515340_1_1.html 07【连载视频教程(二)】3-8译码器设计验证:http://bbs.elecfans.com/jishu_515468_1_1.html 08【连载视频教程(三)】二进制计数器设计验证:http://bbs.elecfans.com/jishu_515476_1_1.html 09【连载视频教程(四)】高性能计数器IP核使用:http://bbs.elecfans.com/jishu_515714_1_1.html 10【连载视频教程(五)】BCD码计数器设计验证:http://bbs.elecfans.com/jishu_515893_1_1.html 11【连载视频教程(六)】例解阻塞赋值与非阻塞赋值:http://bbs.elecfans.com/jishu_516094_1_1.html 12【连载视频教程(七)】例说状态机:http://bbs.elecfans.com/jishu_516249_1_1.html 13【连载视频教程(八)】基于状态机的独立按键消抖:http://bbs.elecfans.com/jishu_516791_1_1.html 14【连载视频教程(九)】独立按键控制LED与亚稳态问题引入:http://bbs.elecfans.com/jishu_516795_1_1.html 15【连载视频教程(十)】码管动态扫描设计与实现:http://bbs.elecfans.com/jishu_516979_1_1.html 16【连载视频教程(十一)】UART串口发送模块设计与验证:http://bbs.elecfans.com/jishu_516984_1_1.html 17【连载视频教程(十二)】UART串口接收模块设计与验证:http://bbs.elecfans.com/jishu_518308_1_1.html 18【芯航线FPGA学习平台众筹进度帖】芯航线FPGA开发板入手测试说明:http://bbs.elecfans.com/jishu_518301_1_1.html 19【芯航线FPGA学习平台众筹进度帖】芯航线FPGA学习套件配置文件固化教程 http://bbs.elecfans.com/jishu_518816_1_1.html 20【芯航线FPGA学习平台众筹进度帖】芯航线FPGA学习套件众筹回报已发放完毕,特公布运单号 http://bbs.elecfans.com/jishu_518819_1_1.html 21【芯航线FPGA学习平台众筹进度帖】芯航线FPGA学习套件众筹总结暨抽奖结果 http://bbs.elecfans.com/jishu_520454_1_1.html 22【芯航线FPGA学习平台众筹进度帖】【有奖活动】芯航线FPGA学习平台有奖活动第一季——看教程,秀笔记,赢好礼 http://bbs.elecfans.com/jishu_520463_1_1.html 23【连载视频教程(十三)】嵌入式块RAM应用之双口RAM:http://bbs.elecfans.com/jishu_520914_1_1.html 24【连载视频教程(十四)】搭建串口收发与存取双口RAM简易应用系统: http://bbs.elecfans.com/jishu_520915_1_1.html 25【连载视频教程(十五)】ROM的搭建与Signaltap II 工具使用:http://bbs.elecfans.com/jishu_522774_1_1.html 26【连载视频教程(十六)】FIFO介绍与时序验证:http://bbs.elecfans.com/jishu_522778_1_1.html 27【连载视频教程(十七)】使用PLL进行设计+Verilog参设计介绍: http://bbs.elecfans.com/jishu_524442_1_1.html 28【芯航线FPGA学习平台众筹进度帖】芯航线FPGA学习套件下载器驱动安装说明 http://bbs.elecfans.com/jishu_524793_1_1.html 29【芯航线FPGA学习平台众筹进度帖】Verilog语法基础讲解之参设计: http://bbs.elecfans.com/jishu_528770_1_1.html 30【连载视频教程(十八)】基于线性序列机设计思想的串行DAC(TLC5620)驱动: http://bbs.elecfans.com/jishu_533944_1_1.html 31【连载视频教程(十九)】基于线性序列机设计思想的串行ADC驱动: http://bbs.elecfans.com/jishu_537056_1_1.html

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值