课程设计(论文)任务书电气与电子工程学院电子信息工程专业2013- 2班一、课程设计(论文)题目数字频率计二、课程设计(论文)工作自 2015 年12 月28 日起至2016 年1 月 8 日止。
三、课程设计(论文) 地点: 电子测控实验室四、课程设计(论文)内容要求:1)课程设计任务:1:设计一个能测量方波信号的频率的频率计。
2:测量的频率范围是0~999999 hz。
3: 测量结果用十进制数显示。
4: 量程自动切换,超限报警。
2)课程设计论文编写要求(1)课程设计任务及要求(2)总体电路设计(3)模块设计---给出各个模块的详细设计思路(4)管脚绑定---列表或截图给出管脚绑定情况(5)仿真及FPGA开发板调试---给出运行仿真波形截图,分析运行结果。
(6)设计体会与小结---设计遇到的问题及解决办法,通过设计学到了哪些新知识,巩固了哪些知识,有哪些提高。
(7)参考文献(必须按标准格式列出,可参考教材后面的参考文献格式)(8)报告按规定排版打印,要求装订平整,否则要求返工;(9)课设报告的装订顺序如下:封面---任务书---中文摘要---目录----正文---附录(代码及相关图片)(10)严禁抄袭,如有发现,按不及格处理。
3)课程设计评分标准:(1)学习态度:10分;(2)系统设计:20分;(3)代码调试:20分;(4)回答问题:20分;(5)论文撰写:30分。
4)课程设计进度安排进度安排:本设计持续10天,其中最后一天为答辩时间。
第1-2天:讲解题目,准备参考资料,检查、调试实验软硬件,进入设计环境,开始设计方案和验证方案的准备;第3-4天:完成设计与验证方案,经指导老师验收后进入模块电路设计;第5-7天:完成模块电路设计,进行代码输入,并完成代码的初步仿真;第8-9天:代码功能仿真正确,约束设计,综合、下载,实现设计目标,并指导老师验收设计;整理设计资料,撰写报告、准备答辩;第10天:验收合格后进行答辩。
学生签名:2015 年12 月28 日课程设计(论文)评审意见(1)学习态度(10分):优()、良()、中()、一般()、差();(2)系统设计(20分):优()、良()、中()、一般()、差();(3)代码调试(20分):优()、良()、中()、一般()、差();(4)回答问题(20分):优()、良()、中()、一般()、差();(5)论文撰写(30分):优()、良()、中()、一般()、差();评阅人:职称:2016 年 1 月10 日中文摘要在电子测量技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。
测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。
本文阐述了用Verilog HDL语言设计了一个简单的数字频率计的过程。
数字频率计的基本原理是用一个频率稳定度高的频率源(可以用实验时经常用到的20Mhz)作为基准时钟,对比测量其他信号的频率。
通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。
闸门时间也可以大于或小于一秒。
闸门时间越长,得到的频率值就越准确,但闸门时间越长则没测一次频率的间隔就越长。
闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。
本文数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波,方波或其它周期性变化的信号。
数字频率计是一种应用很广泛的仪器,目录一、课程设计任务及要求 (1)1:设计任务 (1)2:设计要求 (1)二、总体电路设计 (1)1:设计原理 (1)2:设计思路 (1)3:电路符号 (2)三、模块设计 (2)1:分频模块 (2)2:计数模块 (3)3:量程控制模块 (4)4:LED译码显示模块 (4)四、管脚绑定 (5)五、仿真及FPGA开发板调试 (6)1 仿真及仿真图 (6)2 FPGA开发板调试 (10)3总体电路图 (16)六、设计体会与小结 (18)1:设计体会 (18)2:误差分析和小结 (18)七、参考文献 (20)附录 (21)1设计代码 (21)2 Testbench 代码 (25)一、课程设计任务及要求1:设计任务用Verilog语言设计一个能测量方波信号的频率的频率计,测量的频率范围是0 999999Hz,结果用十进制数显示,量程自动切换、超限报警。
2:设计要求1)把量程分别为1hz,1Khz二档,即最大读数分别为 999hz和999Khz。
这里要求量程能够自动转换。
2)采用记忆显示方式,即计数过程中不显示数据,待计数过程结束以后,显示测频结果,并将此显示结果保持到下一次计数结束,显示时间不小于 1s。
3)小数点位置随量程变更自动移位。
二、总体电路设计1:设计原理测频法的测量原理即在确定的闸门时间Tw 内,记录被测信号的变化周期数或脉冲个数Nx,则被测信号的频率为Fx=Nx/Tw ,通常闸门时间为一秒。
闸门信号Tw被测信号Nx图 2.1 测频法原理图2:设计思路数字频率计系统的组成如下图所示,输入信号为20Mhz的基准时钟和1hz到999999hz的被测时钟,闸门时间模块的作用是对基准时钟进行分频,得到一个1s的闸门信号,作为7位十进制计时器的计数标志,7位数码管显示被测信号的频率。
数码管显示的数字从右到左依次对应十进制数的个,十,百,千,万,十万,百万位。
第1 页3:电路符号数字频率计的电路符号如下图所示。
输入信号:基准时钟clk;被测时钟clkin。
输出信号:数码管地址位选信号 q[2:0];7段数码管显示控制信号 seg7[6:0];小数点控制信号 dp。
szplj图2.3 数字频率计的电路符号三、模块设计1:分频模块由于测频时不同量程档需要不同的时基信号,分频模块是必不可少的。
系统通过试验箱给定的20MHZ的频率通过分频变成0.5HZ,即1秒钟得计数时间,通过1秒钟的记数时间里待测频率上升沿的数量实现频率测定,待测频率通过分频,多路器等实现各频率的测定。
第2 页分频模块示例程序://20MHZ--->1KHZ,产生1KHz的时钟信号always @(posedge clk or negedge rst_n)beginif(!rst_n)begincnt1khz<=0;clk1khz<=0;endelse if(cnt1khz==9999)begincnt1khz<=0;clk1khz<=~clk1khz;endelsecnt1khz<=cnt1khz+1;end表3.1 分频模块图2:计数模块:想要实现频率的测定,其实就是在1秒钟的计数时间里对待测频率信号上升沿进行计数,所以计数模块是不可缺少的。
计数模块示例程序:always @(posedge clk1hz or negedge rst_n)beginif(!rst_n)shuru<=1;else第3 页beginalarm<=((clk_in_cnt*2)>999999)?1:0;cntq1<=(clk_in_cnt*2)%10;cntq2<=(clk_in_cnt*2)%100/10;cntq3<=(clk_in_cnt*2)%1000/100;cntq4<=(clk_in_cnt*2)%10000/1000;cntq5<=(clk_in_cnt*2)%100000/10000;cntq6<=(clk_in_cnt*2)%1000000/100000;cntq7<=(clk_in_cnt*2)%10000000/1000000;shuru<=0;end图3.2 计数模块图3:量程控制模块:对待测频率的量程进行判断,确定量程以后,根据不同的量程,在试验箱上显示,我们的设计是3个量程(1,2,量程和超量程)。
量程控制模块示例程序:always @(dp_1hz or dp_1khz or cntq1 or cntq2 or cntq3 or cntq4 orcntq5 or cntq6 or cntq7) //0~999hz时选择hz量程beginif((cntq7==4'b0)&&(cntq6==4'b0)&&(cntq5==4'b0)&&(cntq4==4'b0)) {dp_1hz,dp_1khz}<=2'b10;else{dp_1hz,dp_1khz}<=2'b01;//大于999hz时选择khz量程end4:LED译码显示模块频率计将测量的结果通过7位数码管(LED)来显示。
第4 页显示示例程序:always @(y)begin case(y)4'd0:seg7=7'b0111111;4'd1:seg7=7'b0110000;4'd2:seg7=7'b1011011;4'd3:seg7=7'b1001111;4'd4:seg7=7'b1100110;4'd5:seg7=7'b1101101;4'd6:seg7=7'b1111101;4'd7:seg7=7'b0000111;4'd8:seg7=7'b1111111;4'd9:seg7=7'b1101111;default:seg7=7'b0000000;endcaseend四、管脚绑定管教绑定时可以参考以前的任务书上给出的资料,需要绑定核心开发板上的管脚可以查阅相关资料。
表4.1 管脚绑定表五、仿真及FPGA开发板调试1 仿真及仿真图:Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。
它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件。
仿真前应该先写好与相应模块对应的Testbench文件,设置好Modelsim 软件在电脑中的路径,注意把Testbench文件保存在工程所在的文件夹中时,不要勾选加入工程的选项。
本次课程设计中加入了分频模块,进行总体仿真时应该把分频模块去掉,否则会等待很长时间才能看到波形。
1)分频模块仿真图:2)计数模块仿真图:3)量程控制模块仿真图4)显示译码模块仿真图2 总体仿真图:频率为100hz:频率为1000hz:2 FPGA开发板调试将程序刷入开发板前应该先绑定好管脚,检查无误后刷入开发板。