数字频率计的设计.docx

上传人:b****8 文档编号:9014137 上传时间:2023-02-02 格式:DOCX 页数:16 大小:181.08KB
下载 相关 举报
数字频率计的设计.docx_第1页
第1页 / 共16页
数字频率计的设计.docx_第2页
第2页 / 共16页
数字频率计的设计.docx_第3页
第3页 / 共16页
数字频率计的设计.docx_第4页
第4页 / 共16页
数字频率计的设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数字频率计的设计.docx

《数字频率计的设计.docx》由会员分享,可在线阅读,更多相关《数字频率计的设计.docx(16页珍藏版)》请在冰豆网上搜索。

数字频率计的设计.docx

数字频率计的设计

湖南人文科技学院

课程设计报告

课程名称:

VHDL语言与EDA课程设计

 

设计题目:

数字频率计

系别:

通信与控制工程系

专业:

电子信息工程

班级:

08级电信二班

学生姓名:

周杰卢欧

学号:

0840920608409211

起止日期:

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Ⅱ

 

目录

设计要求1

1、方案论证与对比2

1.1方案对比2

2.总体模块设计2

3.单元模块设计3

3.1顶层模块设计3

3.2测频控制模块3

3.3十进位计数模块4

3.4测频锁存模块6

4.系统仿真7

5.硬件测试8

6.结束语9

参考文献11

 

数字频率计

设计要求

设计一个8位10进制数字频率计,能测量最大值小于5V的正弦波、三角波、方波或其他周期性波形的频率,用数码管显示结果。

1、方案论证与对比

1.1方案对比

方案一:

使用ATMEL公司的AT89C51实现一基于单片机的设计,使用该单片作为控制器件,再辅以其他外围电路

方案二:

基于EDA技术,其基本框图如图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软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。

 

7.致谢

经过这两周的实习,使我学到了很多只有实际操作中的问题,虽然过程比较累,有时也心烦意乱,但是经过周围同学与老师的帮助指导与帮助,最终顺利的完成了此次课程设计。

在此,感谢我们的姚毅老师,田汉平老师及其他各位老师。

本课设能够顺利完成,离不开各位老师的悉心指导和严格要求。

最后,我要向在百忙之中抽时间对本文进行审阅的老师表示感谢,同时,也要感谢本设计小组的同学,不仅使我完成了实验,还从中学到了许多宝贵的知识,增长了我计算机方面的技能。

感谢他在我遇到困难时的热情帮助,在课程设计中,我们积极的交流与探讨也使我受益非浅,希望在以后的学习道路中我们能够共同进步。

在此我谨向在课程设计过程中给予我很大帮助的老师、同学们致以最诚挚的谢意。

 

参考文献

[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;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1