华农FPGA实验_实验九 8位数字频率计的设计_设计一个8 位数字显示的简易频率计 要求: ①能够测试10hz~10mhz 方波信号; ②电路-程序员宅基地

技术标签: fpga开发  

一 实验目的

1、熟悉利用Quartus II 9.0 软件开发数字电路的基本流程以及熟悉Quartus II软件的操作。

2、了解使用VHDL语言和原理图设计进行HDL描述的实现方法。

3、了解8位数字频率计的原理和实现方案。

4、掌握数字频率计的基本设计思路,软件环境参数配置,时序仿真,管脚分配,并且利用JTAG接口进行下载的常规设计流程。

5、掌握使用SIGNALTAP II进行硬件采样的具体过程。

二 实验前的准备

1、将红色的MODUL_SEL拨码开关组合的1、2、8拨上,3、4、5、6、7拨下,使数码管显示当前模式为:C1。

2、检查JTAG TO USB转换接口和USB连接线的连接,并且将JTAG线连接到核心板上的JTAG接口(核心板的第二个十针的插口)处。

三 实验要求

学习自顶而下的VHDL的设计思想,建立不同模块功能设计方案的有机组合,完成指定8位数字频率计的数字系统的设计方案。

四 实验原理

根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1s的输入信号脉冲计数允许信号;1s计数结束后,计数值被锁入寄存器,计数器清零,为下一测频计数周期做好准备。

五 实验内容

1、测频控制信号可以由一个独立的发生器产生。根据测频原理,测频控制时序要求计数使能信号CNT_ENA能产生一个1s脉宽的周期信号,并对频率计中的测频计数器的使能端ENABL进行同步控制。当计数使能端CNT_ENA高电平时允许计数;低电平时停止计数,并保持其所记的脉冲数。

2、在停止计数期间,首先需要一个锁存信号LOAD的上升沿将计数器在前一秒的计数值锁存进锁存器REG中,并可输出至外部的十六进制7段译码器输出频率数值。

3、锁存信号后,必须有一清零信号RST_CNT对计数器清零,为下一秒计数器的后续操作作准备。

4、在实验报告中给出顶层设计原理图文件,设计方案的时序仿真波形,以及SIGNALTAP II的测试波形。可使用自设分频单元设定输出频率为65535 Hz进行频率测试。


设计电路仿真与运行分析

(1)8位数字频率计的设计代码

8位数字频率计的顶层代码

8位数字频率计的顶层代码图

8位数字频率计的FTCTRL测频控制电路代码

FTCTRL测频控制电路代码图

8位数字频率计的32位计数器模块代码

8位数字频率计的32位计数器模块代码图

8位数字频率计的32位锁存器代码

8位数字频率计的32位锁存器代码图

  1. 工作原理

如图位8位频率计的工作原理图。

8位频率计工作原理图

工作原理:待测信号输入后经过脉冲形成电路后形成计数的窄脉冲后产生计数闸门信号,即可得到频率。若闸门开启的时间为T,待测信号频率为f,在闸门时间T内计数器计数值为N,则待测信号频率为f=N/T。闸门时间通常取1S。

(3)8位数字频率计RTL图

8位数字频率计的RTL图

8位数字频率计RTL分析:

CLK1HZ:输入时钟信号,参数可调,频率1HZ。

FSIN:控制信号输入。

FTCTTRL(u1):是测频控制电路,要求其及计数使能信号CNT_EN能够产生一个1S脉宽周期信号。

COUNTER32B:32位计数器,由FTCTTRL的CNT_EN信号控制。

REG32B:32位锁存器,在停止计数期间,由LOAD信号的上升沿将计数器接收器在前1S的计数值锁存进锁存器REG32B中,起到保存数据的作用

(4)时序仿真结果测试

条件1的时序仿真分析:

设置系统的参数分别为:END time=100s;CLK1HZ信号设置为1S,即1HZ频率输入;FSIN=250ms,作为控制电路输入。设置好参数后启动仿真,观察DOUT信号仿真输出的结果。

条件1仿真时序结果图

从仿真时序图分析可知:当CLK1HZ为1S输入而FSIN为250ms的时候,CLK1HZ信号是FSIN的4倍,即频率计在这一周期内数得的频率数从理论上分析应该为4个,化简为二进制即为0100。用32位表示位“00000000000000000000000000000100”,与DOUT仿真时的输出一致,说明频率计可以实现计数,计数器的设计是成功的。

条件2的时序仿真分析:

设置系统的参数分别为ENDtime=100s;CLK1HZ信号设置为1S,即1HZ频率输入;FSIN=100ms。作为控制电路输入。设置好参数后启动仿真,观察DOUT仿真输出的结果

条件2时序仿真结果图

从仿真时序图分析可知:当CLK1HZ为1S输入而FSIN为100ms的时候,CLK1HZ信号是FSIN的10倍,即频率计在这一周期内数得的频率数从理论上分析应该为10个,化简为二进制即为1010。用32位表示位“00000000000000000000000000001010”,与DOUT仿真时的输出一致,说明频率计的设计是成功的。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_62742599/article/details/135062621

智能推荐

oracle 12c 集群安装后的检查_12c查看crs状态-程序员宅基地

文章浏览阅读1.6k次。安装配置gi、安装数据库软件、dbca建库见下:http://blog.csdn.net/kadwf123/article/details/784299611、检查集群节点及状态:[root@rac2 ~]# olsnodes -srac1 Activerac2 Activerac3 Activerac4 Active[root@rac2 ~]_12c查看crs状态

解决jupyter notebook无法找到虚拟环境的问题_jupyter没有pytorch环境-程序员宅基地

文章浏览阅读1.3w次,点赞45次,收藏99次。我个人用的是anaconda3的一个python集成环境,自带jupyter notebook,但在我打开jupyter notebook界面后,却找不到对应的虚拟环境,原来是jupyter notebook只是通用于下载anaconda时自带的环境,其他环境要想使用必须手动下载一些库:1.首先进入到自己创建的虚拟环境(pytorch是虚拟环境的名字)activate pytorch2.在该环境下下载这个库conda install ipykernelconda install nb__jupyter没有pytorch环境

国内安装scoop的保姆教程_scoop-cn-程序员宅基地

文章浏览阅读5.2k次,点赞19次,收藏28次。选择scoop纯属意外,也是无奈,因为电脑用户被锁了管理员权限,所有exe安装程序都无法安装,只可以用绿色软件,最后被我发现scoop,省去了到处下载XXX绿色版的烦恼,当然scoop里需要管理员权限的软件也跟我无缘了(譬如everything)。推荐添加dorado这个bucket镜像,里面很多中文软件,但是部分国外的软件下载地址在github,可能无法下载。以上两个是官方bucket的国内镜像,所有软件建议优先从这里下载。上面可以看到很多bucket以及软件数。如果官网登陆不了可以试一下以下方式。_scoop-cn

Element ui colorpicker在Vue中的使用_vue el-color-picker-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏3次。首先要有一个color-picker组件 <el-color-picker v-model="headcolor"></el-color-picker>在data里面data() { return {headcolor: ’ #278add ’ //这里可以选择一个默认的颜色} }然后在你想要改变颜色的地方用v-bind绑定就好了,例如:这里的:sty..._vue el-color-picker

迅为iTOP-4412精英版之烧写内核移植后的镜像_exynos 4412 刷机-程序员宅基地

文章浏览阅读640次。基于芯片日益增长的问题,所以内核开发者们引入了新的方法,就是在内核中只保留函数,而数据则不包含,由用户(应用程序员)自己把数据按照规定的格式编写,并放在约定的地方,为了不占用过多的内存,还要求数据以根精简的方式编写。boot启动时,传参给内核,告诉内核设备树文件和kernel的位置,内核启动时根据地址去找到设备树文件,再利用专用的编译器去反编译dtb文件,将dtb还原成数据结构,以供驱动的函数去调用。firmware是三星的一个固件的设备信息,因为找不到固件,所以内核启动不成功。_exynos 4412 刷机

Linux系统配置jdk_linux配置jdk-程序员宅基地

文章浏览阅读2w次,点赞24次,收藏42次。Linux系统配置jdkLinux学习教程,Linux入门教程(超详细)_linux配置jdk

随便推点

matlab(4):特殊符号的输入_matlab微米怎么输入-程序员宅基地

文章浏览阅读3.3k次,点赞5次,收藏19次。xlabel('\delta');ylabel('AUC');具体符号的对照表参照下图:_matlab微米怎么输入

C语言程序设计-文件(打开与关闭、顺序、二进制读写)-程序员宅基地

文章浏览阅读119次。顺序读写指的是按照文件中数据的顺序进行读取或写入。对于文本文件,可以使用fgets、fputs、fscanf、fprintf等函数进行顺序读写。在C语言中,对文件的操作通常涉及文件的打开、读写以及关闭。文件的打开使用fopen函数,而关闭则使用fclose函数。在C语言中,可以使用fread和fwrite函数进行二进制读写。‍ Biaoge 于2024-03-09 23:51发布 阅读量:7 ️文章类型:【 C语言程序设计 】在C语言中,用于打开文件的函数是____,用于关闭文件的函数是____。

Touchdesigner自学笔记之三_touchdesigner怎么让一个模型跟着鼠标移动-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏13次。跟随鼠标移动的粒子以grid(SOP)为partical(SOP)的资源模板,调整后连接【Geo组合+point spirit(MAT)】,在连接【feedback组合】适当调整。影响粒子动态的节点【metaball(SOP)+force(SOP)】添加mouse in(CHOP)鼠标位置到metaball的坐标,实现鼠标影响。..._touchdesigner怎么让一个模型跟着鼠标移动

【附源码】基于java的校园停车场管理系统的设计与实现61m0e9计算机毕设SSM_基于java技术的停车场管理系统实现与设计-程序员宅基地

文章浏览阅读178次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:Springboot + mybatis + Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。_基于java技术的停车场管理系统实现与设计

Android系统播放器MediaPlayer源码分析_android多媒体播放源码分析 时序图-程序员宅基地

文章浏览阅读3.5k次。前言对于MediaPlayer播放器的源码分析内容相对来说比较多,会从Java-&amp;amp;gt;Jni-&amp;amp;gt;C/C++慢慢分析,后面会慢慢更新。另外,博客只作为自己学习记录的一种方式,对于其他的不过多的评论。MediaPlayerDemopublic class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal..._android多媒体播放源码分析 时序图

java 数据结构与算法 ——快速排序法-程序员宅基地

文章浏览阅读2.4k次,点赞41次,收藏13次。java 数据结构与算法 ——快速排序法_快速排序法