数字频率计Word文档格式.docx
《数字频率计Word文档格式.docx》由会员分享,可在线阅读,更多相关《数字频率计Word文档格式.docx(20页珍藏版)》请在冰点文库上搜索。
4.4锁存器模块19
4.5扫描仪模块19
4.6实物调试20
第五章 实验小结20
第六章参考文献21
第一章绪论
在电子工程,资源勘探,仪器仪表等相关应用中,频率计是工程技术人员必不可少的测量工具。
频率测量也是电子测量技术中最基本最常见的测量之一。
不少物理量的测量,如转速、振动频率等的测量都涉及到或可以转化为频率的测量。
目前,市场上有各种多功能、高精度、高频率的数字频率计,但价格不菲。
为适应实际工作的需要,本文在简述频率测量的基本原理和方法的基础上,提供一种基于FPGA的数字频率计的设计和实现过程,本方案不但切实可行,而且具有成本低廉、小巧轻便、便于携带等特点。
EDA技术是以大规模可编程逻辑器件为设计载体,以硬件语言为系统逻辑描述的主要方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件设计的电子系统到硬件系统的设计,最终形成集成电子系统或专用集成芯片的一门新技术。
其设计的灵活性使得EDA技术得以快速发展和广泛应用。
伴随着集成电路(IC)技术的发展,电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域。
电子设计自动化是一种实现电子系统或电子产品自动化设计的技术,它与电子技术,微电子技术的发展密切相关,它吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,促进了工程发展。
EDA的一个重要特征就是使用硬件描述语言(HDL)来完成的设计文件,VHDL语言是经IEEE确认的标准硬件语言,在电子设计领域受到了广泛的接受。
1.2设计目的
在熟练掌握数字频率计工作原理及内部构造等的基础上,通过本次课程设计更加深入的了解数字频率计的功能。
了解EDA技术,并掌握VHDL硬件描述语
言的设计方法和思想。
通过学习的VHDL语言结合数字频率计的组成原理等相
关知识掌握所学的课程知识。
第二章设计内容与要求
2.1数字频率计
数字频率计是采用数字电路制做成的能实现对周期性变化信号频率测量的仪器。
频率计主要用于测量正弦波、矩形波、三角波和尖脉冲等周期信号的频率值。
其扩展功能可以测量信号的周期和脉冲宽度。
通常说的,数字频率计是指电子计数式频率计。
测量频率的方法有很多,按照其工作原理分为无源测量法、比较法、示波器法和计数法等。
计数法在实质上属于比较法,其中最常用的方法是电子计数器法。
电子计数器是一种最常见、最基本的数字化测量仪器。
数字计数式频率计能直接计数单位时间内被测信号的脉冲数,然后以数字形式显示频率值。
这种方法测量精确度高、快速,适合不同频率、不同精确度测频的需要。
电子计数器测频有两种方式:
一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;
二是间接测频法,如周期测频法。
2.2设计要求
1、了解频率计的基本功能和设计原理;
2、设计一个频率计,能够检测由信号发生器发生的1HZ到1KHZ信号的频率;
3、将测试得到的频率值用数码管实时显示出来,单位Hz。
第三章设计原理及程序
3.1设计流程即电路原理图
3.2各单元模块功能介绍及电路设计
3.2.1分频器模块设
(1)程序
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
entityfpqis
port(clk:
instd_logic;
out1:
bufferstd_logic);
endfpq;
architectureBehavioraloffpqis
signalcount:
integerrange0to25000000;
begin
process(clk)
if(clk'
eventandclk='
1'
)then
count<
=count+1;
if(count=20000000)then
out1<
=notout1;
=0;
endif;
endif;
endprocess;
endBehavioral;
(2)器件原理图
(3)程序功能解释
此模块是分频器电路模块,由此程序将晶振分频,得到要求频率。
在本次实验中,两次用到分频器,分别将40MHz晶振分成1Hz和1000Hz。
注:
仿真时,为方便仿真,用5分频。
3.2.2测频器
entitycpqis
port(CLK:
instd_logic;
CLR,LOCK,ENA:
OUTSTD_LOGIC);
endcpq;
ARCHITECTUREcpqOFcpqIS
SIGNALY:
STD_LOGIC:
='
0'
;
BEGIN
PROCESS(CLK)
BEGIN
IF(CLK'
EVENTANDCLK='
)THEN
Y<
=NOTY;
ENDIF;
ENDPROCESS;
PROCESS(CLK,Y)
IF(CLK='
ANDY='
CLR<
ELSE
LOCK<
ENA<
=Y;
ENDcpq;
由闸门信号产生电路可知,闸门信号产生电路由分频器和测频器组成。
时钟信号是给定的一个已知频率的信号,本设计中已知频率为1024HZ经过分频器和测频器得到频率为1HZ
的闸门信号,闸门信号的CLR、ENA端和LOCK端分别控制十进制计数器和锁存器工作。
3.2.3计数器
entityartis
port(clk,clr,ena:
cq:
outstd_logic_vector(3downto0);
carry_out:
outstd_logic);
endart;
architectureBehavioralofartis
signalcqi:
std_logic_vector(3downto0);
begin
process(clk,clr)
ifclr='
thencqi<
="
0000"
elsifclk'
then
ifena='
if(cqi<
10)thencqi<
=cqi+1;
elsecqi<
0001"
endif;
endprocess;
process(cqi)
ifcqi="
1010"
thencarry_out<
elsecarry_out<
cq<
=cqi;
闸门电路产生的CLR、ENA端分别与十进制计数器的CLR、ENA端
相接。
当十进制计数器每接受到信号时计数器复位并启动新的计数过程。
3.2.4锁存器
entityscqis
port(LOCK:
INSTD_LOGIC;
DIN:
INSTD_LOGIC_VECTOR(3DOWNTO0);
DOUT:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
endscq;
ARCHITECTUREscqOFscqIS
PROCESS(LOCK,DIN)
IFLOCK'
EVENTANDLOCK='
THEN
DOUT<
=DIN;
--锁存输入数据
ENDscq;
闸门电路产生的LOCK端接至锁存器的LOCK端,十进制计数器输出端接至锁存器的DIN端,当锁存器接收到信号时,锁存器刷新当前结果,并将计数器新一轮计得的结果进行锁存。
3.2.5扫描仪
entitysmyis
PORT(CLK:
COUNT1,COUNT2,COUNT3,COUNT4:
S:
OUTSTD_LOGIC_VECTOR(2DOWNTO0);
endsmy;
ARCHITECTUREsmyOFsmyIS
SIGNALDQ:
STD_LOGIC_VECTOR(2DOWNTO0):
000"
PROCESS(CLK)IS
IFCLK'
IF(DQ="
011"
DQ<
ELSE
=DQ+1;
ENDIF;
ENDPROCESS;
PROCESS(DQ)IS
CASEDQIS
WHEN"
=>
S<
DOUT<
=COUNT1;
001"
010"
=COUNT2;
=COUNT3;
=COUNT4;
WHENOTHERS=>
1111"
ENDCASE;
ENDsmy;
锁存器将记录的结果送至扫描仪的COUNT端经扫描仪扫描由S和DOUT端分别送至数码管和38译码器
3.2.6连接扫描仪和38译码器子模块
ENTITYSIS
PORT(S:
INSTD_LOGIC_VECTOR(2DOWNTO0);
A,B,C:
ENDS;
ARCHITECTUREEOFSIS
A<
=S(0);
B<
=S
(1);
C<
=S
(2);
ENDE;
连接扫描仪和38译码器
3.2.7数码管
entitySMGis
PORT(NUM:
INSTD_LOGIC_VECTOR(3DOWNTO0);
A,B,C,D,E,F,G:
endSMG;
ARCHITECTUREARTOFSMGIS
SIGNALLED:
STD_LOGIC_VECTOR(6DOWNTO0);
PROCESS(NUM)--将二进制转化为十进制数显示
CASENUMIS
LED<
1111110"
0110000"
0010"
1101101"
0011"
1111001"
0100"
0110011"
0101"
1011011"
0110"
1011111"
0111"
1110000"
1000"
1111111"
1001"
1111011"
1011"
1100"
1001110"
1101"
0111101"
1110"
1001111"
1000111"
ENDCASE;
=LED(6);
=LED(5);
=LED(4);
D<
=LED(3);
E<
=LED
(2);
F<
=LED
(1);
G<
=LED(0);
ENDART;
显示数字
第四章 模块仿真及实物调试
4.1分频器模块
4.2测频器模块
4.3计数器模块
4.4锁存器模块
4.5扫描仪模块
4.6实物调试
第五章 实验小结
时光荏苒,白驹过隙,经过几天的奋斗,三人一个组合,我们通过分工合作,一起努力完成了此次的EDA课程设计。
在这次课程设计的过程中,我们对VHDL语言有了更深的认识。
通过查阅相关资料和动手设计我们发现我们以前对VHDL语言的认识太过肤浅,认为VHDL语言只能用于设计小型的电路系统。
但有了更深刻的认识之后我发现学好VHDL语言可以设计出大规模的、功能复杂的电路系统。
对于这次的课程设计,我们遇到了很多问题,首先小组成员对程序进行分工,在计数器的程序上出现问题,影响了整个程序和课程设计的进程。
在硬件调试的时候,对电路板的的结构和数据手册的不太熟悉,影响了我们的进程,花费了很大一部分时间研究电路板。
最终在小组成员的努力下解决问题。
通过这次的课程设计,我们发现了动手实践的重要性。
动手实践是理论知识得以灵活运用的必要前提,也是今后走上工作岗位之后能够很好的完成设计工作的技术保证。
只有遇到实际问题并根据自己对课堂上获得的专业知识的理解来解决才能真正的提高自己的能力。
这也提醒我们在平时的学习生活中不能一味埋头于课本知识,当今社会竞争越来越激烈,社会对人才的要求越来越全面,只有理论知识是远远不够的,必须靠实践作支撑。
虽然课设完成了,但是我意识到,我们对FPGA技术仅仅只是停留在入门的阶段,想要有更大的发展,更深入的研究,还需要更多的努力与实践。
因此在学习之余我们应该积极参加各种与专业知识有关的实践活动和知识竞赛,巩固所学的理论知识,多注重培养实际动手能力和专业技术能力,这样才能在以后的工作岗位上有所作为。
同时,在此次的课程设计中,我们由团队合作,一起完成了人物。
在团队中,我们都是一个个体,团结起来,齐聚智慧,并在成绩优异的同学带领之下,顺利完成此次课程设计。
我们也通过此次实验,了解到团队合作的力量,和领导核心的力量。
在对理论知识的应用的同时,一步步提升我们的动手能力,和处理困难问题,应对压力和挫折的心理承受能力。
第六章参考文献
1、VolneiA.Pedroni
主编.《VHDL数字电路设计教程》.电子工业出版社,2013.01
2、潘松、王国栋
主编.《VHDL应用教程》电子科技大学出版社,2000
3、甘历
主编.《VHDL应用于开发实践》科学出版社,2003
4、刘爱荣
主编.《EDA技术与CPLD/FPGA开发应用简明教程》.清华大学出版社,2007
课程设计独创性声明:
本次实验中,测量频率是1KHZ,采用测频法对被测信号进行测量,但也存在不足的地方,最好的设计方法是用测周期法与测频法相结合的方式,在频率低于1HZ采用测周法,高于1HZ时采用测频法,这样的好处在于减小量化误差。
而两种测量方法之间进行自动选择,首先采用测周法进行测量,若频率超过1HZ则产生溢出信号,自动选择采用测频法进行测量,这样的设计是最合理的频率计设计,若只采用某一种方法进行测量都存在不足之处。
学生签名(手写):
指导教师评语:
课程设计成绩:
指导教师签名:
教研室意见:
教研室主任签名: