EDA课程设计要点.docx

上传人:b****5 文档编号:6208587 上传时间:2023-01-04 格式:DOCX 页数:14 大小:205.16KB
下载 相关 举报
EDA课程设计要点.docx_第1页
第1页 / 共14页
EDA课程设计要点.docx_第2页
第2页 / 共14页
EDA课程设计要点.docx_第3页
第3页 / 共14页
EDA课程设计要点.docx_第4页
第4页 / 共14页
EDA课程设计要点.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

EDA课程设计要点.docx

《EDA课程设计要点.docx》由会员分享,可在线阅读,更多相关《EDA课程设计要点.docx(14页珍藏版)》请在冰豆网上搜索。

EDA课程设计要点.docx

EDA课程设计要点

 

设计报告

 

课程名称在系统编程技术

任课教师黄慧

设计题目八位十进制频率计

班级11级电子

(2)班

姓名潘凌林

学号**********

 

摘要

数字频率计是电子测量与仪表技术最基础的电子仪表类别之一,数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器,而且它是数字电压必不可少的部件。

当今数字频率计不仅是作为电压表,计算机,天线电广播通讯设备,工艺过程自动化装置、多种仪表仪器与家庭电器等许多电子产品中的数据信息输出显示器反映到人们眼帘。

集成数字频率计由于所用元件少、投资少、体积小、功耗低,且可靠性高、功能强、易于设计和研发,使得它具有技术上的实用性和应用的广泛性。

不论从我们用的彩色电视机、电冰箱、DVD还有我们现在家庭常用到的数字电压表数字万用表等等都包含有频率计。

数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波、方波或其它周期性变化的信号。

数字频率计广泛应用于科研机构、学校、实验室、企业生产车间等场所。

研究数字频率计的设计和开发,有助于频率计功能的不断完善、性价比的提高和实用性的加强。

本文关于八位十进制频率计的课程设计是在QuartusII软件中运用VHDL语言编写程序,其测频范围智能在1Hz至10MHz之间并具有清零复位功能,其频率结果用八位数码管稳定显示.该程序主要包括三大子模块:

控制模块,锁存模块和计数模块。

本设计将主要从这三个子模块的功能描述,模块图,源程序以及仿真波形来分析并一步一步完成这整个总模块!

关键字:

八位十进制频率计VHDL语言控制模块锁存模块计数模块

 

 

一设计原理分析

1.1数字频率计的基本原理

数字频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。

闸门时间也可以大于或小于一秒。

闸门时间越长,得到的频率值就越准确,但闸门时间越长则每测一次频率的间隔就越长。

闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。

数字频率计的主要功能是测量周期信号的频率。

频率是单位时间(1S)内信号发生周期变化的次数。

如果我们能在给定的1S时间内对信号波形计数,并将计数结果显示出来,就能读取被测信号的频率。

数字频率计首先必须获得相对稳定与准确的时间,同时将被测信号转换成幅度与波形均能被数字电路识别的脉冲信号,然后通过计数器计算这一段时间间隔内的脉冲个数,将其换算后显示出来。

对应到本设计中,控制模块对时钟信号CLKK的分频产生控制,并输入给计数器使能端EN和锁存器的使能端LOAD。

通过这样的控制作用所得计数值即为所需的信号频率(1Hz至10MHz)。

1.2系统总体框图

图1

总体框图设计思路:

由50MHz系统时钟分频得到0.5Hz的基准时钟。

在基准时钟的1S高电平期间计被测频率的脉冲个数,1S高电平结束时计数结束,所记录的脉冲个数是被测信号的频率,为了在数码管上显示计数结果需要锁存器将所计的数锁存,因此,在基准时钟下降沿来的时候锁存器实现锁存功能。

为了下次计数必须将本次计数的结果清零,所以在基准时钟低电平期间对计数器清零。

被测频率从计数器的是中端输入实现频率的测试。

将锁存器锁存的数据输入扫描器,通过译码器将锁存的二进制数译成十进制然后显示到数码管上,最终被读出来。

二方案选择

2.1方案比较

方案一:

基于单片机实现八位十进制频率计字功能

利用AT89C51的内部定时计数器来对外部输入信号进行计数,从而达到测频的目的,这种方案,结构简单容易掌握,各部分电路实现起来都非常容易。

其原理框图如图所示:

图2

 

方案二:

基于CPLD技术实现八位十进制频率计

通过VerilogHDL硬件描述语言编写代码的方式来实现八位十进制频率计功能。

其框图如图所示:

图3

方案三:

基于FPGA技术实现八位十进制频率计

运用VHDL硬件描述语言进行对FPGA进行配置在试验箱中完成八位十进制频率计功能。

其框图如图所示。

图4

 

2.2方案选定

综上所述,方案一简单易行,但是被测信号频率范围为1Hz~100MHz。

该单片机会因为运行速度无法跟上而导致测量误差很大,故不可选用。

方案二虽然满足题目要求,但是由于未学习CPLD相关知识,故也不能选用。

而方案三采用FPJA来设计八位十进制频率计,测量精度高,运行速度快,采用VHDL语言模块化编程,大大缩减了外围的硬件电路,节约了硬件资源,而且方便进行软件调试。

由于本次课程设计题目为八位十进制频率计,要求可测的频率范围为0到10MHZ,所以运算速度快、精度高、性能可靠、可将外围器件通过编程来代替的FPGA芯片更符合要求。

综合比较结合各方面的优劣势,并参考本次课程设计要求,我选择了方案三基于FPJA器件来实现八位十进制频率计的设计方案。

三各功能模块的VHDL设计

3.1八位十进制数字频率计总功能模块

3.1.1功能模块图

图5

 

3.1.2仿真波形

图6

3.2测频控制信号发生器的功能模块及仿真

3.2.1功能描述

频率计的关键是设计一个测频率控制信号发生器,产生测量频率的控制时序。

控制时钟信号CLK取为1Hz,2分频后即可产生一个脉宽为1秒的时钟TSTEN,以此作为计数闸门信号。

当TSTEN为高电平时,允许计数;当TSTEN由高电平变为低电平(下降沿到来)时,应产生一个锁存信号,将计数值保存起来;锁存数据后,还要在下次TSTEN上升沿到哦来之前产生零信号CLEAR,将计数器清零,为下次计数作准备

3.2.2功能模块图

图7

3.2.3仿真波形

图8

3.3锁存器的功能模块及仿真

3.3.1功能描述

锁存器(Latch)是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。

锁存,就是把信号暂存以维持某种电平状态。

锁存器的最主要作用是缓存,其次完成高速的控制其与慢速的外设的不同步问题,再其次是解决驱动的问题,最后是解决一个I/O口既能输出也能输入的问题。

3.3.2功能模块图

图9

3.3.3仿真波形

图10

3.4十进制计数器的功能模块及仿真

3.4.1功能描述

计数是一种最简单基本的运算,计数器[15]就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能,计数器是由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS触发器、T触发器、D触发器及JK触发器等。

3.4.2功能模块图

图11

子功能模块图

图12

3.4.3仿真波形

图13

 

四引脚定义

图1

五硬件测试

当所输入的信号为64HZ时实验箱数码管上显示如图4.20所示

图15

当输入频率为65500HZ时实验箱数码管上显示如图所示。

图16

 

六总结

在此次的八位十进制数字频率计的设计中,不可避免的我遇到了很多的困难.但更确切的来说,通过这次的EDA课程设计---八位十进制频率计,让我又有了一次锻炼机会,更熟练的在QuartusII上进行VHDL程序的编译及各个模块的仿真.虽然在实际操作过程中出现了很多没有料想到的各种错误,例如由于粗心造成了程序的缺失和错误,还有在理解程序上还没能精确到每一步导致错误不能及时查找出口来.这些问题看似很小,但就是因为小反而更加难以掌握.但幸好在老师和同学的帮助下最终还是都解决了。

所以这次的课程设计不仅仅是一项任务,更是对这么久以来的学习的一种巩固加强.不仅很好地复习了我们学过的专业知识,使我对数字系统结构也有了更进一步的了解和认识,同时对QuartusII软件、EDA技术、VHDL语言等系列知识都有了一定的了解。

当然要完成一项课程设计,光靠课本里的书面知识,及时再熟练也是不够的.所以由于设计项目的难度性,我借助互联网络进行搜索并查阅大量的相关资料,所以此次设计还让我锻炼了组织整理资料的能力,同时在逻辑思维、步骤和方法的设计、考虑问题的思路和角度等方面的能力也有所提高,从真正意义上把理论与实践相结合了起来。

也使我明白书本上的知识只有应用到实践中才会具有意义,才会充满活力,也只有当我们会把知识运用于实践了,才算真正的学懂了这些知识。

本次数字频率计的涉及到了QuartusII软件,VHDL语言,EDA技术,微机原理和EDA所学的大部分内容。

在这次设计中还发现理论与实际常常常存在很大差距.在课题设计中,通过使用QuartusII这个完全集成化易学易用的可编程逻辑设计环境,利用VHDL语言设计完成8位十进制数字频率计,能够较好的测定所给频率,并且具有自动清零和自动测试的功能,基本符合此次课程设计给出的要求。

七参考文献

1.潘松,黄继业,EDA技术与VHDL,清华大学出版社,2009.9

2.赵雅兴,FPGA原理、设计与应用,天津:

天津大学出版社,1999.4

3.丁文霞,EDA技术在现代数字系统中的应用,电子技术应用,2000.11

4.李洋,EDA技术使用教程,机械工业出版社,2002.3

5.薛宏熙,用VHDL设计电子线路,清华大学出版社,2000.8

6.赵刚EDA技术简明教程.成都:

四川大学出版社,2004.6

 

附录

1.控制模块源程序

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYFTCTRLIS

PORT(

CLKK:

INSTD_LOGIC;

CNT_EN:

OUTSTD_LOGIC;

RST_CNT:

OUTSTD_LOGIC;

Load:

OUTSTD_LOGIC

);

ENDFTCTRL;

ARCHITECTUREbehavOFFTCTRLIS

SIGNALDiv2CLK:

STD_LOGIC;

BEGIN

PROCESS(CLKK)

BEGIN

IFCLKK'EVENTANDCLKK='1'THEN

Div2CLK<=NOTDiv2CLK;

ENDIF;

ENDPROCESS;

PROCESS(CLKK,Div2CLK)

BEGIN

IFCLKK='0'ANDDiv2CLK='0'THEN

RST_CNT<='1';

ELSE

RST_CNT<='0';

ENDIF;

ENDPROCESS;

Load<=NOTDiv2CLK;

CNT_EN<=Div2CLK;

ENDbehav;

2.锁存模块源程序

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYREG32BIS

PORT(

LK:

INSTD_LOGIC;

DIN:

INSTD_LOGIC_VECTOR(31DOWNTO0);

DOUT:

OUTSTD_LOGIC_VECTOR(31DOWNTO0)

);

ENDREG32B;

ARCHITECTUREARTOFREG32BIS

BEGIN

PROCESS(LK,DIN)

BEGIN

IFLK'EVENTANDLK='1'THEN

DOUT<=DIN;

ENDIF;

ENDPROCESS;

ENDART;

3.技术模块源程序

(1)

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT4BIS

PORT(

CLK:

INSTD_LOGIC;

RST:

INSTD_LOGIC;

ENA:

INSTD_LOGIC;

OUTY:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

COUT:

OUTSTD_LOGIC

);

ENDCNT4B;

ARCHITECTUREbehavOFCNT4BIS

SIGNALCQI:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

P_REG:

PROCESS(CLK,RST,ENA,CQI)

BEGIN

IFRST='1'

THENCQI<="0000";

ELSEIFCLK'EVENTANDCLK='1'

THENIFENA='1'

THEN

IFCQI<9THENCQI<=CQI+1;--

ELSECQI<="0000";

ENDIF;

ENDIF;--

ENDIF;

ENDIF;

OUTY<=CQI;

ENDPROCESSP_REG;

COUT<=CQI(0)ANDNOTCQI

(1)ANDNOTCQI

(2)ANDCQI(3);

ENDbehav;

(2)

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYFOURTO32IS

PORT(

in0:

INSTD_LOGIC_VECTOR(3DOWNTO0);

in1:

INSTD_LOGIC_VECTOR(3DOWNTO0);

in2:

INSTD_LOGIC_VECTOR(3DOWNTO0);

in3:

INSTD_LOGIC_VECTOR(3DOWNTO0);

in4:

INSTD_LOGIC_VECTOR(3DOWNTO0);

in5:

INSTD_LOGIC_VECTOR(3DOWNTO0);

in6:

INSTD_LOGIC_VECTOR(3DOWNTO0);

in7:

INSTD_LOGIC_VECTOR(3DOWNTO0);

out32:

OUTSTD_LOGIC_VECTOR(31DOWNTO0)

);

ENDFOURTO32;

ARCHITECTUREoneOFFOURTO32IS

BEGIN

PROCESS(in0,in1,in2,in3,in4,in5,in6,in7)

BEGIN

out32<=in7&in6&in5&in4&in3&in2&in1&in0;

ENDPROCESS;

ENDone;

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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