数字频率计.docx
- 文档编号:29004657
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:16
- 大小:171.33KB
数字频率计.docx
《数字频率计.docx》由会员分享,可在线阅读,更多相关《数字频率计.docx(16页珍藏版)》请在冰豆网上搜索。
数字频率计
湖南人文科技学院
课程设计报告
课程名称:
VHDL语言与EDA课程设计
设计题目:
数字频率计
系别:
通信与控制工程系
专业:
电子信息工程
班级:
08级电信1班
学生姓名:
文建坤易龙云
学号:
0840911408409130
起止日期:
11年6月13日~11年12月24日
指导教师:
田汉平
教研室主任:
谢四莲
指导教师评语:
指导教师签名:
年月日
成绩评定
项目
权重
成绩
文建坤
易龙云
1、设计过程中出勤、学习态度等方面
0.2
2、课程设计质量与答辩
0.5
3、设计报告书写及图纸规范程度
0.3
总成绩
教研室审核意见:
教研室主任签字:
年月日
教学系审核意见:
主任签字:
年月日
摘要
EDA(ElectronicDesignAutomation)即电子设计自动化。
EDA技术指的是以计算机硬件和系统软件为基本工作平台,以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统设计的主要表达方式,自动完成集成电子系统设计的一门新技术。
EDA旨在帮助电子设计工程师在计算机上完成电路的各种设计,使得硬件设计如同软件设计一样方便快捷,为数字系统设计带来了极大的灵活性。
与早期的电子CAD软件相比,EDA软件的自动化程度更高,功能更完善,运行速度更快,而且操作界面友好,有良好的数据开放性、互换性和兼容性。
因此,EDA技术很快在世界各地的电子电路设计领域得到了广泛应用,并已成为新一代电子技术发展的重要方向。
现代EDA技术的基本特征是采用高级语言描述,具有系统级仿真和综合能力。
以VHDL语言为代表的硬件描述语言是各种描述方法中最能体现EDA优越性的描述方法,并于1984年被IEEE确定为标准化的硬件描述语言。
它有强大的行为描述能力和多层次的仿真模拟,程序结构规范,VHDL综合器性能日益完善,设计效率较高。
数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。
随着复杂可编程逻辑器件(CPLD)的广泛应用,以EDA工具作为开发手段,运用VHDL语言。
将使整个系统大大简化。
提高整体的性能和可靠性。
本设计用VHDL在CPLD器件上实现一种8位十进制数字频率计测频系统,能够用十进制数码显示被测信号的频率,能够测量正弦波、方波和三角波等信号的频率,具有体积小、可靠性高、功耗低的特点。
关键词:
数字频率计;EDA;VHDL;QuartusⅡ
目录
设计要求3
1、方案论证与对比3
1.1方案对比3
1.2方案选择4
2.总体模块设计4
3.单元模块设计5
3.1顶层模块设计5
3.2密码输入模块5
3.3显示模块9
3.4延时模块11
3.5设置密码以及验证模块13
4.系统仿真14
5.硬件测试16
6.结束语17
参考文献19
数字频率计
设计要求
设计一个8位10进制数字频率计,能测量最大值小于5V的正弦波、三角波、方波或其他周期性波形的频率,用数码管显示结果。
1、方案论证与对比
1.1方案对比
方案一:
使用ATMEL公司的AT89C51实现一基于单片机的设计,使用该单片作为控制器件,再辅以其他外围电路,
方案二:
基于EDA技术,其基本框图如图1-1:
方案三:
用CMOS集成电路组成,如图1所示:
1.2方案选择
2.总体模块设计
频率信号易于传输,抗干扰性强,可以获得较好的测量精度。
因此,频率检测是电子测量领域最基本的测量之一。
本文的数字频率计是按照计算每秒内待测信号的脉冲个数的基本原理来设计,此时取闸门时间为1秒。
数字频率计的关键组成部分包括一个测频控制信号发生器、一个计数器和一个锁存器,另外包含信号整形电路、脉冲发生器、译码驱动电路和显示电路,其原理框图如图1所示。
图1数字频率计原理框图
工作过程:
系统正常工作时,脉冲信号发生器输入1Hz的标准信号,经过测频控制信号发生器的处理,2分频后即可产生一个脉宽为1秒的时钟信号,以此作为计数闸门信号。
测量信号时,将被测信号通过信号整形电路,产生同频率的矩形波,输入计数器作为时钟。
当计数闸门信号高电平有效时,计数器开始计数,并将计数结果送入锁存器中。
设置锁存器的好处是显示的数据稳定,不会由于周期性的清零信号而不断闪烁。
最后将锁存的数值由外部的七段译码器译码并在数码管上显示。
3.单元模块设计
3.1顶层模块设计
图3是频率计的顶层设计的原理图。
其中模块control是测频时序控制模块,cnt10_8模块是是十位计数器模块,latch8是测频时序锁存模块,这些模块是由VHDL语言设计之后生成的,将这些模块连接起来,如图3所示。
图3
3.2测频控制模块
1、此模块主要由时钟输入、计数器时钟使能、计数器清零、输出锁存构成。
其具体的实现是由一个1秒的输入信号脉冲计数允许的信号,1秒计数结束后,计数值被锁入锁存器,计数器清0,为下一测频计数周期作好准备。
2、具体程序如下。
LIBRARYIEEE;——测频控制电路
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYcontrolIS
PORT(clk:
INSTD_LOGIC;
cen:
OUTSTD_LOGIC;
rst:
OUTSTD_LOGIC;
load:
OUTSTD_LOGIC);
ENDcontrol;
ARCHITECTUREbehavOFcontrolIS
SIGNALDiv2CLK:
STD_LOGIC;
BEGIN
PROCESS(clk)
BEGIN
IFclk'EVENTANDclk='1'THEN
Div2CLK<=NOTDiv2CLK;
ENDIF;
ENDPROCESS;
PROCESS(clk,Div2CLK)
BEGIN
IFclk='0'ANDDiv2CLK='0'THENrst<='1';
ELSErst<='0';ENDIF;
ENDPROCESS;
load<=NOTDiv2CLK;cen<=Div2CLK;
ENDbehav;
2、以上各子模块的设计均采用VHDL语言实现,其具体实现程序如下:
3.3十进位计数模块
1、此模块先设计单个十进制计数模块,再设计八位十进制计数模块,将先设计好的单个十进制计数模块导入到八进制计数模块中,就可以完成八位十进制计数模块的设计,这样设计的好处是,减小了程序设计的复杂度,而且层次感强。
2、主要涉及的程序见下面的两个程序。
libraryieee;——单个十进制计数模块
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitycnt10is
port(rst,fx,ena:
instd_logic;
cout:
outstd_logic;
outy:
outstd_logic_vector(3downto0));
endcnt10;
architecturebehvofcnt10is
begin
process(rst,ena,fx)
variablecqi:
std_logic_vector(3downto0);
begin
ifrst='1'thencqi:
=(others=>'0');
elsiffx'eventandfx='1'then
ifena='1'then
ifcqi<9thencqi:
=cqi+1;cout<='0';
elsifcqi=9then
cqi:
=(others=>'0');
cout<='1';
endif;
elsifena='0'thencqi:
=(others=>'0');
endif;
endif;
outy<=cqi;
endprocess;
endbehv;
libraryieee;——八位十进制计数模块
useieee.std_logic_1164.all;
entitycnt10_8is
port(fx,rst,ena:
instd_logic;
d:
outstd_logic_vector(31downto0));
endentity;
architectureoneofcnt10_8is
componentcnt10
port(rst,fx,ena:
instd_logic;
cout:
outstd_logic;
outy:
outstd_logic_vector(3downto0));
endcomponent;
signale:
std_logic_vector(7downto0);
begin
u1:
cnt10portmap(fx=>fx,rst=>rst,ena=>ena,cout=>e(0),outy=>d(3downto0));
u2:
cnt10portmap(fx=>e(0),rst=>rst,ena=>ena,cout=>e
(1),outy=>d(7downto4));
u3:
cnt10portmap(fx=>e
(1),rst=>rst,ena=>ena,cout=>e
(2),outy=>d(11downto8));
u4:
cnt10portmap(fx=>e
(2),rst=>rst,ena=>ena,cout=>e(3),outy=>d(15downto12));
u5:
cnt10portmap(fx=>e(3),rst=>rst,ena=>ena,cout=>e(4),outy=>d(19downto16));
u6:
cnt10portmap(fx=>e(4),rst=>rst,ena=>ena,cout=>e(5),outy=>d(23downto20));
u7:
cnt10portmap(fx=>e(5),rst=>rst,ena=>ena,cout=>e(6),outy=>d(27downto24));
u8:
cnt10portmap(fx=>e(6),rst=>rst,ena=>ena,cout=>e(7),outy=>d(31downto28));
endarchitectureone;
3.4测频锁存模块
1、在频率计的设计当中设计了一个锁存器,设置锁存的器的好处就是数据显示稳定,不会由于周期性的清零而使信号不断的闪烁,这个模块的功能就是将计数器在规定时间的计数值锁存进锁存器中。
2、主要的设计程序如下。
libraryieee;——锁存器
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitylatch8is
port(d:
instd_logic_vector(31downto0);
clk:
instd_logic;
q:
outstd_logic_vector(31downto0));
endlatch8;
architectureoneoflatch8is
begin
process(clk,d)
variablecqi:
std_logic_vector(31downto0);
begin
ifclk'eventandclk='1'thenq<=d;
endif;
endprocess;
endone;
4.系统仿真
将程序下载Cyclone系列芯片中,同时在EDA试验箱上进行硬件验证。
本文提出的数字频率计由于采用VHDL语言设计,用一片FPGA实现,因而体积小,功耗低,具有较好的应用前景。
但由于结构还比较简单,有待进一步完善。
1、率计输入模块的仿真,如图4-1所示。
图4数字频率计输入模块仿真
2)数字频率计整个系统的仿真如图4-2:
图5数字频率计整个电路系统仿真图
5.硬件测试
1)仿真波形正确后,便可进行下载;
2)选择GW48系列EDA试验开发系统;
3)使用Cyclone系列芯片EP1C6Q240C8;
4)先进行引脚锁定,具体引脚锁定如图5-1;
5)选择模式5;
6)选择好硬件和模式后就可以下载到EDA实验箱;
图6数字频率计引脚锁定
6.结束语
通过两星期的紧张工作,最后完成了我的设计任务——基于VHDL语言的数字频率计的设计。
通过本次课程设计的学习,我深深的体会到设计课的重要性和目的性所在。
本次设计课不仅仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。
它不仅仅是一个学习新知识新方法的好机会,同时也是对我所学知识的一次综合的检验和复习,使我明白了自己的缺陷所在,从而查漏补缺。
希望学校以后多安排一些类似的实践环节,让同学们学以致用。
在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。
在应用VHDL的过程中让我真正领会到了其并行运行与其他软件顺序执行的差别及其在电路设计上的优越性,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。
致谢
在此次课程设计中,非常感谢田汉平老师,老师对我的指导与大力的帮助,如果没有他严谨细致、一丝不苟地批阅和指正,本文很难在这个短时间内完成。
从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!
参考文献
[1]潘松,黄继业.EDA技术与VHDL(第2版)[M].北京:
清华大学出版社,2007.
[2]康华光.电子技术基础数字部分(第五版)[M].高等教育出版社,2006.
[3]全国大学生电子设计大赛竞赛组委会编.第五届全国大学生电子设计竞赛获奖作品选编[M].北京理工大学出版社,2003.
[4]全国大学生电子设计大赛竞赛组委会编.全国大学生电子设计竞赛获奖作品选编(2003)[M].北京:
北京理工大学出版社,2005.
[5]全国大学生电子设计竞赛湖北赛区组委会编电子系统设计实践[M].湖北:
华中科技大学出版社,2005.
附录
生成的顶层程序如下:
LIBRARYieee;
USEieee.std_logic_1164.all;
LIBRARYwork;
ENTITYtopIS
port
(
clk:
INSTD_LOGIC;
fx:
INSTD_LOGIC;
out1:
OUTSTD_LOGIC_VECTOR(31downto0)
);
ENDtop;
ARCHITECTUREbdf_typeOFtopIS
componentcnt10_8
PORT(fx:
INSTD_LOGIC;
rst:
INSTD_LOGIC;
ena:
INSTD_LOGIC;
d:
OUTSTD_LOGIC_VECTOR(31downto0)
);
endcomponent;
componentlatch8
PORT(clk:
INSTD_LOGIC;
d:
INSTD_LOGIC_VECTOR(31downto0);
q:
OUTSTD_LOGIC_VECTOR(31downto0)
);
endcomponent;
componentcontrol
PORT(clk:
INSTD_LOGIC;
cen:
OUTSTD_LOGIC;
rst:
OUTSTD_LOGIC;
load:
OUTSTD_LOGIC
);
endcomponent;
signalSYNTHESIZED_WIRE_0:
STD_LOGIC;
signalSYNTHESIZED_WIRE_1:
STD_LOGIC;
signalSYNTHESIZED_WIRE_2:
STD_LOGIC;
signalSYNTHESIZED_WIRE_3:
STD_LOGIC_VECTOR(31downto0);
BEGIN
b2v_inst:
cnt10_8
PORTMAP(fx=>fx,
rst=>SYNTHESIZED_WIRE_0,
ena=>SYNTHESIZED_WIRE_1,
d=>SYNTHESIZED_WIRE_3);
b2v_inst2:
latch8
PORTMAP(clk=>SYNTHESIZED_WIRE_2,
d=>SYNTHESIZED_WIRE_3,
q=>out1);
b2v_inst3:
control
PORTMAP(clk=>clk,
cen=>SYNTHESIZED_WIRE_1,
rst=>SYNTHESIZED_WIRE_0,
load=>SYNTHESIZED_WIRE_2);
END;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字频率计
![提示](https://static.bdocx.com/images/bang_tan.gif)