计数器简介以及FPGA实现

这篇具有很好参考价值的文章主要介绍了计数器简介以及FPGA实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在时序逻辑电路中,最基本的单元是寄存器,本篇将会介绍如何利用寄存器,实现一个具有计数器功能的电路。在FPGA开发中,一切与时间有关的设计都会用到计数器,所以学会设计计数器至关重要。

一、计数器介绍

计数是一种最简单基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能。

计数器在数字系统中应用广泛,如电子计算机的控制器中对指令地址进行计数,以便顺序取出下一条指令,在运算器中作乘法、除法运算时记下加法、减法次数,又如在数字仪器中对脉冲的计数等等。

二、绘制计数器时序图

在代码编写之前,我们先利用visio把时序图绘制出来,编写代码时思路会更清晰

初次使用visio绘制时序图,需要事先下载三个形状,分别是FPGA_DESIGN、状态机形状和逻辑图形状。

fpga计数器,开发语言,fpga开发

 下载好形状开始波形图绘制,如下图所示:fpga计数器,开发语言,fpga开发

 实际上,我们只需要计数器技术范围是0到M/2-1即可,因为我们可以控制LED灯在计数器一个计数周期结束时电平进行翻转。这样做也能够节省1bit的硬件资源,改进后的时序图如下:

fpga计数器,开发语言,fpga开发

tips:分享几个使用visio绘图的快捷键

ctrl+滚轮:放大或缩小界面

shift+移动箭头:微量移动

ctrl+分别选中:合并选中

ctrl+拖动选中的内容:快速复制选中的内容到指定位置

三、ISE仿真实现(附verilog代码)

module counter
#(
	parameter	CNT_MAX = 25'd24_999_999
)
(
	input	wire	sys_clk		,
	input	wire	sys_rst_n	,

	output	reg		led_out
 );

reg		[24:0]		cnt;
always@(posedge sys_clk or negedge sys_rst_n)
	if(sys_rst_n == 1'b0)
		cnt <= 25'd0;
	else	if(cnt == CNT_MAX)
		cnt <= 25'd0;
	else
		cnt <= cnt + 25'd1;
		
always@(posedge sys_clk or negedge sys_rst_n)
	if(sys_rst_n == 1'b0)
		led_out <= 1'b0;
	else if (cnt == CNT_MAX)
		led_out <= ~led_out;
	else
		led_out <= led_out;
		
endmodule

仿真代码:1、定义输入输出信号 2、初始化输入信号。模拟复位信号、时钟信号,使用initial语句对其进行赋值 3、实例化

`timescale 1ns / 1ns
module tb_counter();
	// Inputs
	reg sys_clk;
	reg sys_rst_n;

	// Outputs
	wire led_out;

	initial 
		begin
			sys_clk = 1'b1;
			sys_rst_n <= 1'b0;
			#20;
			sys_rst_n <= 1'b1;
		end
		
	always #10 sys_clk = ~sys_clk;
		
	counter 
	#(
		.CNT_MAX(25'd24)
	)
	uut //实例化名称要写在端口前边
	(
		.sys_clk(sys_clk), 
		.sys_rst_n(sys_rst_n), 
		.led_out(led_out)
	);
      
endmodule

四、仿真结果

fpga计数器,开发语言,fpga开发

 分析:

1、时钟频率是50MHZ   

2、每过一个时钟周期,计数器加1,计数器周期是24   

3、计数器达到最大值24时,输出信号进行翻转

满足设计要求

 文章来源地址https://www.toymoban.com/news/detail-752441.html

到了这里,关于计数器简介以及FPGA实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【FPGA】Verilog:升降计数器 | 波纹计数器 | 约翰逊计数器 | 实现 4-bit 升降计数器的 UP/DOWN

    目录 Ⅰ. 理论部分 0x00 升降计数器(UP DOWN Counter) 0x01 波纹计数器(Ripple Counter)

    2024年02月05日
    浏览(50)
  • 实现十进制计数器EDA|FPGA

    实验内容 有限状态机设计:实现十进制计数器 实验目的 有限状态机设计:实现十进制计数器 软件流程(硬件连接) ①新建工程 ②创建半加器原理图 ③将设计项目设置成可调用的元件 ④尝试运行代码 ⑤新建文件输出代码的波形  四、代码  五、实验结果及分析  

    2024年02月03日
    浏览(51)
  • Verilog语言实现FPGA上的计数器

    Verilog语言实现FPGA上的计数器 计数器是数字电路中经常使用的基本元素之一,它用于生成指定脉冲数量或者指定计数范围内的计数信号。在现代数字电路设计中,FPGA(Field Programmable Gate Array)作为一种可编程逻辑器件被广泛应用,可以通过Verilog语言来实现计数器模块。 在V

    2024年02月05日
    浏览(45)
  • FPGA设计开发(基础课题):74LS160计数器芯片设计

    一、设计目的 1、学会用HDL语言设计时序电路; 2、用HDL语言设计74LS160计数器芯片的数字功能。 二、设计原理 计数器是最常用的寄存器逻辑电路,从微处理器的地址发生器到频率计都需要用到计数器。一般计数器可以分为两类:加法计数器和减法计数器。加法计数器每来一个

    2024年02月08日
    浏览(57)
  • 【LabVIEW FPGA入门】使用数字IO卡实现计数器输入功能

            1.首先需要用一个数字IO的输入FPGA端口,并将其拖入程序框图中,同时创建一个循环。                  2.如果想要在循环中实现累加功能,就可以使用移位寄存器。         数字输入的当前值和历史值进行比较,用于一个判断大于,来确定是否出现了上升沿

    2024年01月20日
    浏览(52)
  • 【FPGA】时序逻辑电路——基于计数器实现一个以1秒频率闪烁的LED灯

    1 D触发器 分析: 特性:输出端Q只在CK处于上升沿的时候变化 图中波形的形成过程: 当D处于高电平时,CK未处于上升沿时,Q仍处于低电平 当CK来到上升沿,Q需要根据D发生变化,由于D是高电平,所以Q要从低电平变化成高电平 D从高电平变化成低电平,但是此时CK未来到上升沿

    2024年02月09日
    浏览(46)
  • FPGA拾忆_(3):调用IP 计数器&BCD计数器

    调用IP计数器: 每来一个cin(进位输入)信号,计数器输出值加一,当计数值为9且cin为1时,输出一个时钟长度的cout(进位输出)信号。 首先采用调用quartus种IP的方式,具体步骤: Tools----IP Catalog: 然后会调出IP目录窗口: 通过搜索counter来添加计数器模块,需要设置的内容

    2024年02月03日
    浏览(56)
  • fpga[1]计数器(附源码)

    计数器电路是在数字电子技术中应用的最多的时序逻辑电路。计数器不仅能用于对时钟脉冲计数,还可以用于分频、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。 在许多大型电路中必然有计数器电路的身影,可以说了解并掌握计数器的设计方法是学习fpga的第一步。

    2023年04月25日
    浏览(53)
  • FPGA实验二:模可变计数器设计

    目录 一、实验目的 二、实验要求 三、实验代码 1.实验源码

    2024年02月12日
    浏览(51)
  • 【FPGA】Verilog:时序电路设计 | 二进制计数器 | 计数器 | 分频器 | 时序约束

    前言: 本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例:计数器与分频器   ​​ 功能特性: 采用 Xilinx Artix-7 XC7A35T芯片  配置方式:USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度  存储器:2Mbit SRAM   N25Q064A SPI Flash(样图旧款为N25Q032A) 通用

    2024年02月02日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包