【基于Verilog的数字频率计设计】原创.上电测试OK

2023-11-04

/******************************************************************************************
Author:  荷包蛋
E-mail: shuangfeiyanworld@163.com
Device:  EP2C8Q208C8
Tool:    Quartus 8.1
Function:数字频率计(用8个数码管显示结果,单位为HZ)(理论基础:在单位时间1s内待测信号所产生的脉冲数即为待测信号的频率)
Version: 2011-9-5 v1.0
********************************************************************************************/

module frequence  (
                     input    CLK_50M, // 50MHZ基准频率
                     input      CLK_X,  // 待测信号
                     output reg [7 :0] WEI,DUAN // 数码管位选和段选
                  );
reg [31:0] cnt1,num;  //cnt1用来作延时用,num用来计算1s内待测信号所发出的脉冲数
reg        sec,state;      //sec用来产生周期为2s,占空比为50%的单位脉冲(即一个周期内高电平和低电平持续时间均为1s)
reg [31:0] freq ;     //频率输出


/**** 产生占空比为50%,周期为2s的单位脉冲sec ****/
always @ (posedge CLK_50M) 
begin
 if(cnt1==50_000_000) // delay 1s,cnt1=50_000_000是为了延时1s(因为基准时钟为50M),如果基准时钟为20M,则应写为cnt1==20_000_000,以此类推,总之,只要实现1s延时即可
  begin
   cnt1<=0;
   sec<=~sec;
  end
 else
   cnt1<=cnt1+1;
end

/**** 统计待测信号在单位时间1s内产生的脉冲数 ****/
always @ (posedge CLK_X) 
begin
 if(sec) // sec为高电平期间(1s),统计待测信号产生的脉冲数
  begin
   num<=num+1;
   state<=0;
  end
 else // sec为低电平期间(1s),读取待测信号产生的脉冲数
  case(state)
  0: begin freq<=num; state<=1;   end // 读取脉冲数(由于freq为reg型,在下一次sec低电平到来之前,会一直保持当前值不变)
  1: num<=0; // 将num清零,为下一个sec高电平期间脉冲数的统计做准备
  endcase
end


/**** 以下为频率测量结果的显示模块 ****/

reg [3 :0] wei1,wei2,wei3,wei4,wei5,wei6,wei7,wei8 ; //待测

always @ ( posedge CLK_50M ) // 得到待测信号频率输出的个位数,十位数,百位数,......(提示:N**M的意思是N的M次方)
begin
 wei1 <= (freq/10**0)%10 ;
 wei2 <= (freq/10**1)%10 ;
 wei3 <= (freq/10**2)%10 ;
 wei4 <= (freq/10**3)%10 ;
 wei5 <= (freq/10**4)%10 ;
 wei6 <= (freq/10**5)%10 ;
 wei7 <= (freq/10**6)%10 ;
 wei8 <= (freq/10**7)%10 ;
end


//display part
reg [15:0]jishu;

always@(posedge CLK_50M) // 为数码管动态扫描的时间间隔作准备
begin
 if (jishu==16'hffff)
   jishu<=0;
 else
  begin
   jishu<=jishu+1;
  end
end


reg [3:0]tab;

always@(posedge CLK_50M)
begin
 case(jishu[15:13]) // 位值读取;每一个时间间隔读取一个位(个位、十位、百位 ...)
 0:tab<=wei1[3:0];
 1:tab<=wei2[3:0];
 2:tab<=wei3[3:0];
 3:tab<=wei4[3:0];
 4:tab<=wei5[3:0];
 5:tab<=wei6[3:0];
 6:tab<=wei7[3:0];
 7:tab<=wei8[3:0];
 default:tab<=4'bz;
 endcase 
 
 case(jishu[15:13]) // 位选;在对应的时间间隔上打开对应的数码管(第一个、第二个、第三个 ...)
 0:WEI<=8'b1111_1110;//显示在第一个数码管上的数
 1:WEI<=8'b1111_1101;//显示在第二个数码管上的数,以下同理
 2:WEI<=8'b1111_1011;
 3:WEI<=8'b1111_0111;
 4:WEI<=8'b1110_1111;
 5:WEI<=8'b1101_1111;
 6:WEI<=8'b1011_1111;
 7:WEI<=8'b0111_1111;
 default:WEI<=4'bz;
 endcase
 
 case(tab)  // 段选;当tab(即wei1/wei2 ...)为0,1,2...时,打开数码管相应的段
 0:DUAN<=8'hc0;
 1:DUAN<=8'hf9;
 2:DUAN<=8'ha4;
 3:DUAN<=8'hb0;
 4:DUAN<=8'h99;
 5:DUAN<=8'h92;
 6:DUAN<=8'h82;
 7:DUAN<=8'hf8;
 8:DUAN<=8'h80;
 9:DUAN<=8'h90;
 default:DUAN<=8'h??;
 endcase   
end

endmodule

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【基于Verilog的数字频率计设计】原创.上电测试OK 的相关文章

  • 如何使用户输入与变量相关?

    我不知道如何准确地表达这个问题 但这就是我想要实现的目标 我正在使用堆栈实现河内塔插图 这是里面的main 功能 System out println Type the source pole number and the destinat
  • 如何使用类中的常量作为 php 函数中的参数定义?

    我有一堂课 class FetchMode const FetchAll 0 const FetchOne 1 const FetchRow 2 和一个函数 function getRecordSet FetchMode FetchMode
  • 如何通过名称获取函数地址?

    我想通过名称获取函数的地址 例如 目前我正在使用dlsym unsigned long get func addr const char func name return unsigned long dlsym NULL func name
  • 如何处理错误的数据类型输入

    在C 中 如何处理错误的输入 例如 如果程序要求输入一个整数 那么当您键入一个字符时 它应该能够执行某些操作 然后循环重复输入 但是当您在需要整数时输入一个字符时 循环会无限循环 反之亦然 程序进入死循环的原因是std cin由于输入失败而
  • 函数类型有什么用?

    鉴于以下两个typedefs typedef void pftype int typedef void ftype int 我明白第一个定义pftype作为指向一个函数的指针 该函数接受一个int参数并且不返回任何内容 第二个定义ftype
  • CMake:如何将 .def 文件添加到 Visual Studio 项目过滤器?

    如何将 def 文件添加到 Visual Studio 项目过滤器 filters文件 Visual Studio 使用 def 文件 CMake代码 set a src a cpp a def add library a SHARED a
  • Ionic 2 获取离子输入值

    我正在使用 ionic 2 创建登录名 请不要只回答 您只需要添加 ngModules 属性 如果您认为这就是解决方案 请解释原因 解释一下 就像对孩子做的那样 我的代码在login ts import Component from ang
  • 去除iOS输入阴影

    在 iOS Safari 5 上 我必须遵循输入元素 顶部内部阴影 我想删除顶部阴影 错误 webkit appearance不保存 目前的风格是 input border radius 15px border 1px dashed BBB
  • 如何将函数应用于多个 pandas 数据框

    我有多个数据框 df1 df2 df3 dfn 它们具有相同类型的数据 但来自无法连接的不同描述符组 现在我需要手动将相同的函数应用于每个数据帧 如何将相同的函数应用于多个数据框 pipe https pandas pydata org p
  • Excel - 查找列中不是错误或空白的最后一个值

    我需要在 Excel 电子表格的一列中找到最后一个非错误 非空白值 该列可以有多个 N A 实例 它们与实际值交替 有多种解决方案可用于查找最后一个非空单元格 但这些解决方案不考虑错误 特别是如果最后一个非空单元格出现错误 在这种情况下 解
  • 我应该使用函数还是无状态函子?

    这两段代码做同样的事情 如您所见 它将用于排序函数 哪个更好 我通常写后一种 但我看到一些程序员像以前那样做 struct val lessthan binary function
  • python:函数中的变量,点前面是函数名

    我需要理解这个概念 其中我们可以在函数定义中的变量名中使用点 这里没有类定义 也没有模块 Python 不应该接受包含点的变量名 def f x f author sunder f language Python print x f aut
  • 在 JavaScript 函数中加载图像

    我有获取图像像素颜色的功能 function getImage imgsrc var img img src imgsrc var imageMap new Object img load function var canvas
  • 如何创建不返回任何内容的函数

    我想写一个函数pl pgsql 我在用着Postgres 企业管理器 v3并使用 shell 来创建一个函数 但在 shell 中我必须定义返回类型 如果我不定义返回类型 我将无法创建函数 如何创建一个不返回结果的函数 即创建一个新表的函数
  • JavaScript - 声明嵌套函数的全局作用域?

    我尝试为嵌套 JavaScript 函数提供全局范围的尝试不起作用 DECLARE FUNCTION B IN GLOBAL SCOPE function B function A DEFINE FUNCTION B INSIDE NEST
  • JavaScript 测验在提出所有问题之前结束

    我现在正在学习 JavaScript 并且正在创建一个测验 我的测验运行正常 控制台中没有任何错误 但它会跳过问题 有时会在回答所有问题之前结束测验 即使给出正确答案 也会减少时间 我不太确定为什么它会这样做 因为在我看来它的编码是正确的
  • 如何检查用户是否按下了某个键?

    在java中 我有一个程序需要连续检查用户是否按下了某个键 所以在伪代码中 就像 if isPressing w do somthing 在java中 你不检查是否按下了某个键 而是检查listen to KeyEvents 实现您的目标的
  • 如何获取 Python 中所有内置函数的列表?

    我正在尝试整理一个关于如何获取 Python 中所有内置函数的列表的规范示例 该文档很好 但我想用可证明的方法来演示它 在这里 我本质上将内置函数定义为默认命名空间的成员 这些成员可用且与旨在在模块中使用的函数的风格特征一致 即 它们提供一
  • 如何将Scheme中的函数应用于另一个函数返回的参数列表?

    假设有两个函数 f 和 v 进一步假设 v 返回长度为 n 的列表 并且 f 需要恰好 n 个参数 我正在Scheme中寻找正确的语法 以将f应用于v返回的列表 如果我使用语法 f v v arguments 然后我收到一个关于 f 需要
  • XSL字符串多重替换功能

    如何让这个函数进行多重替换 经验 替换aaa with 111并替换bbb with 222 etc

随机推荐

  • pandas报cannot set a frame with no defined index and a scalar的一个原因

    使用pandas时遇到 ValueError cannot set a frame with no defined index and a scalar 错误 其中一个原因可能是由于你正在对一个空的dataframe进行操作 gt gt g
  • 10.es 基于multi_match+most_fields策略进行multi_field搜索 、使用most_fields策略进行cross-fields search的弊端

    从best fields换成most fields策略 best fields策略 主要是说将某一个field匹配尽可能多的关键词的doc优先返回回来 most fields策略 主要是说尽可能返回更多field匹配到某个关键词的doc 优
  • Linux命令入门教程(三):文件基础篇

    3 1 文件基础介绍 Linux系统的一个重要思想 一切皆文件 在Linux中 一个普通文件如 txt文本是一个文件 一个压缩包是一个文件 一个设备也是一个文件 Linux中文件的后缀名并不重要 你可以创建一个无后缀名的文件 或给它一个不相
  • TensorFlow2+OpenCV实现人像采集与识别

    TensorFlow2 OpenCV实现人像采集与识别 前言 1 图像检测和采集 2 图像预处理 3 网络搭建和模型训练 4 人脸图像匹配与识别 前言 本设计用python语言实现 这里罗列一下整个项目所需要的包 仅供参考 h5py 2 9
  • [架构之路-209]- 人人都是产品经理 - 产品经理的常见话题

    这是写给 1到3岁的产品经理 的书 适合刚入门的产品经理 产品规划师 需求分析师 以及对做产品感兴趣的学生 用户体验 市场运营 技术部门的朋友们 特别是互联网 软件行业 作为一名 4岁的产品经理 作者讲述了过去3年的经历与体会 与前辈们的书
  • Qt for vs2017 grpc无法解析的外部符号错误

    Qt for vs2017 grpc无法解析的外部符号错误 错误 grpc lib alts handshaker client obj error LNK2001 无法解析的外部符号 public void thiscall absl l
  • Keras框架下的猫狗识别(三)

    Tensorflow学习 使用jupyter notebook Keras框架下的猫狗识别 一 Keras框架下的猫狗识别 二 Tensorflow学习 使用jupyter notebook Tensorflow学习 使用jupyter n
  • 二. javascript语句

    注 与c语言用法相同的语句这里不作赘述 1 throw语句 抛出一个异常 例如 fuction myfun x y if y 0 throw new Error 除数不能为0 return x y myfun 1 0 结果报错 除数不能为0
  • maven 在idea 里面执行install 失败,报一些jar 包失败

    1 maven 在执行install 的时候 会有一些命令 这个时候会报日志 日志里面谁说从这个地址拿不到相关的Jar 包 那么 就先在pom xml 里面看看这个url存在不 如果存在 看看是否存在这个jar包 要是不存在 那么就会下载不
  • Android App软件框架搭建

    1 App软件框架搭建 1 0软件基本架构 1 1创建MainActivity并设置布局文件 布局文件如下
  • CVE-2023-28432 MiniO信息泄露漏洞复现

    CVE 2023 28432 MiniO信息泄露漏洞 MiniO 是一个基于 Apache License v2 0 开源协议的对象存储服务 它兼容亚马逊 S3 云存储服务接口 非常适合于存储大容量非结构化的数据 例如图片 视频 日志文件
  • 西门子plc编程和c语言类似吗,西门子PLC的优劣势总结(个人观点,有分歧欢迎讨论)...

    西门子SIMATIC系列PLC 诞生于1958年 经历了C3 S3 S5 S7系列 已成为应用非常广泛的可编程控制器 在冶金 化工 印刷生产线等领域都有应用 由最初发展至今 S3 S5系列PLC已逐步退出市场 停止生产 而S7系列PLC发展
  • 【sm2算法】基于mbedtls开源库国密算法的使用(二)

    在上一节中我们讲解了mbedtls基础知识 sm2环境 sm2公私钥的存储以及sm2公私钥的生成 sm2算法 基于mbedtls开源库国密算法的使用 一 我想月薪过万的博客 CSDN博客https blog csdn net qq 4188
  • 循迹小车基本原理和代码实现

    目录 一 循迹模块使用 二 接线方式 三 循迹小车原理 四 代码实现 一 循迹模块使用 1 TCRT5000传感器的红外发射二极管不断发射红外线 当发出的红外线没有被反射回来或被反射回来但强度不太够时 红外接收管一直处于关断状态 此时模块的
  • 网络层与数据链路层--一看便知

    文章目录 网络层 作用 IP协议 与IP协议有关的一些概念 协议头 分片和组装 网段划分 私有IP地址和公网IP地址 数据链路层 以太网 以太网帧格式 ARP协议 ARP数据报的格式 ARP协议工作流程 其他重要协议或技术 DNS ICMP
  • windows iocp适配epoll

    msafd h ifndef EPOLL MSAFD H define EPOLL MSAFD H include
  • 定档615

    6月15 24日 数字化基础软件自主创新分享周 即将火热来袭 预约通道现已正式开启 科技自立自强 在党的十九届五中全会已上升至国家发展中的战略支撑地位 近年来 随着信息产业自主创新相关政策 技术路线和实践路径的逐步明晰 自主创新落地的难点也
  • 利用swiper依赖做轮播图-详细步骤

    1 结构样式布局 div class swiper mySwiper div class swiper wrapper div class swiper slide a href img src js基础 js高级 imgs 1 jpg a
  • 前端第三方插件

    动画 tweenJS js动画库 easeljs js列表动画 d3Js 绘制图表 jspdf 生产pdf文件
  • 【基于Verilog的数字频率计设计】原创.上电测试OK

    Author 荷包蛋 E mail shuangfeiyanworld 163 com Device EP2C8Q208C8 Tool Quartus 8 1 Function 数字频率计 用8个数码管显示结果 单位为HZ 理论基础 在单位