电气工程及其自动化EDA课程设计_第1页
电气工程及其自动化EDA课程设计_第2页
电气工程及其自动化EDA课程设计_第3页
电气工程及其自动化EDA课程设计_第4页
电气工程及其自动化EDA课程设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《电气工程及其自动化EDA课程设计》

课程设计报告

题目:数字频率计的设计

院(系):机电与自动化学院

专业班级:_____________________________

学生姓名:_____________________________

学号:_____________________________

指导教师:_____________________________

2014年1月6日至2014年1月10日

华中科技大学武昌分校

《电气工程及其自动化EDA课程设计》设计任务书

一、设计题目

数字频率计的设计

二、设计主要内容

i.设计目的:

(1)稳固和加深对《EDA技术及应用》及《数字电子技术》根本知识的理解,提高学生综合运用

本课程所学知识的能力;

(2)培养学生根据课题需要选学参考书籍、查阅手册、图表和文献资料的自学能力;通过独立思

考,深入钻研有关问题,学会自己分析解决问题的方法;

(3)以学生的动手为主要内容,培养学生系统软、硬件设计、调试的根本思路、方法和技巧,并

能熟练使用集成软件QuartusII进行有关电路设计与分析;

(4)掌握FPGA器件的正确使用方法,提高学生动手能力,能在教师指导下,完成课程任务;

(5)培养严肃认真的工作作风和科学态度。通过课程设计实践,帮助学生逐步建立正确的生产观

念、工程观念和全局观点。

2.设计内容:

(1)8位频率计输入端分别为:系统基准时钟100MHz(CLK)、被测信号输入(Fx);及输出端为

(D0UT),皆采用BCD码计数方式;

(2)可测量范围从1Hz到99999999Hz;

(3)将被测信号的频率直接送到8个LED显示;

也可选择其它题目,但分量不能低于上述题目。

三、原始资料

1.频率测量方法的根本原理是计算每秒内待测信号的脉冲个数,这就要求TESTCTL的计数使能信

号TSTEN能产生一个1秒脉宽的周期信号,并对频率计的每一个计数器CNT10的ENA使能端进行同步控

制。当TSTEN高电平时,允许计数,并保持其所计的数。在停止计数期间,首先需要一个锁存信号

LOAD的上跳沿将计数器在前1秒的计数值锁存进32位锁存器REG32B中,并由外部的7段译码器译出

并稳定的显示。此方法测量精度高。

数字频率计由多频信号源模块、测频控制模块、CNT计数模块、32位锁存器模块及频率显示模块组

成,其框图为图1所示,

图1数字频率计组成框图

2.在QuartusII软件中,编写各个模块VHDL源程序;并上机调试通过;

3.下载顶层文件到目标芯片;

4.将被测信号fx输入到系统,数码管将会显示被测信号频率。

四、要求的设计成果

1、根本要求:

在QuartuslI软件中新建原理图文件,编译,仿真,锁定管脚并下载到目标芯片。将被测信号fx

输入到系统,数码管将会显示被测信号频率。

(1)根据设计要求,设计系统的原理框图,说明系统中各主要组成局部的功能;

(2)在QuartusII软件中,编写各个模块VHDL源程序;并上机调试通过;

(3)根据软件编好用于系统仿真的测试文件;

(4)编好用于硬件验证的管脚锁定文件;

(5)记录系统各个模块仿真结果;

(6)记录仿真结果中出现的问题及解决方法。

2、备选要求:

学生可根据课堂教学对《EDA技术及应用》所掌握知识点的实际情况,也可选择其它方案完成设

计,从而形成难易程度不同的设计方法。

注意:根本要求学生必须完成,学有余力的学生可以在根本要求完成的前提下,选择其它方案完成

设计。一般来说,测频精度越高,考查评价就越高。

五、进程安排

表2进度安排及学时分配表

序号课程设计内容学时分配备注

集中学生学习课程设计的关键理论知识、分配设计任务、

11天

明确设计要求、查找资料等。

根据任务的要求进行方案构思,初选方案,绘制系统原理

21天

框图并与指导教师讨论,方案定稿。

完成各模块的VWL程序设计、编译和时序仿真1天

编程、下载,结合硬件平台,进行调试。完成顶层文件图

3绘制,对编制好的封图交给老师检查,并按照老师要求修1天

改。

4撰写课程设计说明书1天

5辩论及验收课程设计1天

合计5天

六、主要参考资料

[1]侯伯享.VHDL硬件描述语言与数字逻辑电路设计.西安:西安电子科技大学出版,2010.

[2]潘松.EDA技术实用教程.成都:电子科技大学出版社,2010.

[3]李玉山.电子系统集成设计技术.北京:电子工业出版社,2010.6.

[4]李国丽.EDA与数字系统设计.北京:机械工业出版社,2009.

[5]周彩宝.VHDL语言及其应用.上海:华东计算机技术研究所:2009.

「61谭会生.EDA技术中和应用实例与分析.西安:西安申子科技大学出版社,2008.

指导教师(签名):

20年月日

目录

第一章绪论..........................................................1

1.1设计背景......................................................1

1.2设计意义......................................................1

1.3本文的主要工作...............................................2

第二章EDA技术原理与概述.............................................3

2.1可编程逻辑器件根本原理.......................................3

2.2硬件描述语言..................................................4

2.3集成开发软件..................................................5

第三章数字频率计的系统分析........................................10

3.18位十进制数字频率计系统设计的原理..........................10

3.1.1数字频率计的根本原理.................................10

3.1.2系统总体框架图.......................................10

3.28位十进制数字频率计设计任务与要求..........................11

3.3目标芯片FLEX10K..........................................................................................11

第四章各功能模块基于VHDL的设计与仿真.............................13

4.18位十进制数字频率计的电路逻辑图............................13

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

4.3系统时钟分频的功能模块及仿真................................15

4.432位锁存器的功能模块及仿真.................................16

4.4.1锁存器.................................................16

4.4.2锁存器的功能模块及仿真................................17

4.5数码管扫描的功能模块及仿真..................................18

4.6数码管译码显示的功能模块及仿真..............................19

4.7十进制计数器的功能模块及仿真................................21

4.7.1计数器.................................................21

4.7.2十进制计数器的功能模块及仿真..........................21

4.88位十进制数字频率计的仿真..................................23

第五章结束语.......................................................30

参考文献............................................................31

第一章绪论

1.1设计背景

数字频率计⑴是电子测量与仪表技术最基础的电子仪表类别之一,数字频率计是计算机、通讯

设备、音频视频等科研生产领域不可缺少的测量仪器,而且它是数字电压必不可少的部件。当今数

字频率计不仅是作为电压表,计算机,天线电播送通讯设备,工艺过程自动化装置、多种仪表仪器

与家庭电器等许多电子产品中的数据信息输出显示器反映到人们眼帘。集成数字频率计由于所用元

件少、投资少、体积小、功耗低,且可靠性高、功能强、易于设计和研发,使得它具有技术上的实

用性和应用的广泛性。不管从我们用的彩色电视机、电冰箱、DVD还有我们现在家庭常用到的数字

电压表数字万用表等等都包含有频率计。现在频率计己是向数字智能方向开展,即可以很精确的读

数也精巧易于控制。数字频率计已是现在频率计开展的方向,它不仅可以很方便的读数。而且还可

以使频率的测量范围和测量准确度上都比较先进.而且频率计的使用已设计到很多的方面,数字卫

星,数字通讯等高科技的领域都有应用,今天数字频率计的开展已经不仅仅是一个小电子产品的开

展也是整个民族乃至整个国家的开展,所以频率计的开展是一个整体的趋势。

而从民族产业上来说,我们在这种产业中还落后于西方兴旺国家,这将会关系到美族产业的兴

衰。所以我们必须很重视当前的情况,学习兴旺国家的先进技术来开展本国的电子信息产业。

L2设计意义

我国的频率计其实不是落后兴旺国家太多的,我国在这个领域的开展是极其迅速的,现在的技

术实际已是多年来见证。我国现阶段电子产品的市场特点,电子数字化开展很快。在我国和兴旺国

家的开展情况是趋于一致的,数字频率计已经应用于高科技等产品上面,可以不无夸张的说没有不

包含有频率计的电子产品。我国的CD、VCD、DVD和数字音响播送等新技术已开始大量进入市场。

而在今天这些行'也中都必须用到频率计。频率计已开始并正在向智能,精细方向的开展。国外的开

展比我国要早,所以在这些行业中还领先于我们,我国还是缺少开发和研发的资金投入,很多的电

子企业都不太乐意去花大量的时间,资金和精力去研究和开发,这也就使得我国在这方面的人力和

资金都不充足,也就无法于兴旺国家相比,不能够形成一个量产的效果。从而很多的企业没有竞争

力,这也和我国其他的民族产业存在相同的情况,这也正是我国在高速开展后的今天很少有自己的

民族品牌的原因,所以我国应该大力的支持自己的民族品牌,不仅仅是要在资金和人才的投入,还

要有具体的实际行动并起到一定的保护作用。

1.3本文的主要工作

本文的主要工作为:

(1)首先分析了8位十进制数字频率计的根本原理。

(2)对设计工具QuarlusII进行了介绍,对设计中使用的VHDL语言—进行介绍。

(3)对数字频率计的各个模决功能的分析,进行了功能仿真测试,得出仿真波形图。

本文的安排如下:第一章介绍数字频率计的设计背景,设计意义,第二章介绍EDA技术原理与

概述,本论文是以EDA技术为基础编写的所以对EDA技术的要求比较高,对VHDL语言的编写以及

QuartusII的运用都要比较熟练。介绍了可编程逻辑器件FPGA和硬件描述语言,第三章是对数字

频率计的根本原理以及对设计的要求进行概述,对目标芯片的介绍等,第四章介绍各个功能模块的

根本功能以及VHDL语言的分析,将各局部进行仿真并对其进行仿真分析,测出所给频率。对该设

计的数字频率计的仿真进行理论值与实验值的验证,第五章是本文的结束语。

第二章EDA技术原理与概述

2.1可编程逻辑器件根本原理

FPGA“5J是一种高密度的可编程逻辑器件,自从Xilinx公司1985年推出第一片FPGA以

来,FPGA的集成密度和性能提高很快,其集成密度最高达1000万门/片以上,系统性能可达

300MHzo由于FPGA器件集成度高,方便易用,开发和上市周期短,在数字设计和电子生产中得

到迅速普及和应用。FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内

部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块I0B(InputOutput

Block)和内部连线(Interconnect)三个局部。现场可编程门阵列(FPGA)是可编程器件。

与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构,FPGA

利用小型查找表(16X1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,

触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序

逻辑功能的根本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA

的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了

逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能

实现的功能,FPGA允许无限次的编程。

FPGA器件优点:高密度、高速率、系列化、标准化、小型化、多功能、低功耗、低本钱,

设计灵活方便,可无限次反复编程,并可现场模拟调试验证。

图2.1FPGA根本结构

2.2硬件描述语言

目前最主要的硬件描述语言是VHDL和VerilogHDL,VerilogHDL和HDL都是用于逻辑设计的

硬件描述语言,并且都已成为IEEE标准。VHDL开展的较早,语法严格,而VerilogHDL是在C语

言的基础上开展起来的一种硬件描述语言,语法较自由。VHDL和VerilogHDL两者相比,VHDL的

书写规则比Verilog烦琐一些,但verilog自由的语法也容易让少数初学者出错。VerilogHDL和

VHDL作为描述硬件电路设计的语言,其共同的特点在于:能形式化地抽象表示电路的行为和结构、

支持逻辑设计中层次与范围的描述、可借用高级语言的精巧结构来简化电路行为的描述、具有电路

仿真与验证机制以保证设计的正确性、支持电路描述由高层到低层的综合转换、硬件描述与实现工

艺无关。本设计是用的VHDL语言来实现数字频率计的设计的,本设计将重点介绍VHDL语言。

VHDL语言主要用于描述数字系统的结构,行为,功能和接口。VHDL的程序结构特点是将一项

工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是局部,

及端口)和内部(或称不可视局部),既涉及实体的内部功能和算法完成局部。在对一个设计实体定

义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体

分成内外局部的概念是VHDL系统设计的根本点。VHDL语言能够成为标准化的硬件描述语言并获得

广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。

VHDL程序组成局部由实体、构造体、配置、包集合、库5个局部组成。

各组成局部的作用是:

(1)实体:用于描述所设计的系统的外部接口信号。

(2)构造体:用于描述系统内部结构和行为。

(3)配置:用于从库中选取不同单元(器件)来组成系统设计的不同版本。

(4)包集合:存放各设计模决都能共享的数据类型,常数和子程序等。

(5)库:可由系统工程师生成或由ASIC芯片商提供,以便在设计中共享。

VHDL系统优势

(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设

计领域最正确的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和

设计大规模电子系统的重要保证。

(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可

行性,随时可对设计进行仿真模以。

(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的

再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工

作才能实现。

(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把

VHDL描述设计转变成门级网表。

(5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计

实现的目标器件是什么,而进行独立的设计。

2.3集成开发软件

QuartusI^切是Altera公司推出的新一代开发软件,适合于大规模逻辑电路设计,其设计流

概括为设计输入⑻、设计编译、设计仿真和设计下载过程。QuartusII支持多种编辑输入法,包括

图形编辑输入法,VHDL,VerilogHDL和AHDL的文本编辑输入法,符号编辑输入法,以及内存编辑输

入法。QuartusII与MATLAB和DSPBuilder结合可以进行基于FPGA的DSP系统开发,是DSP硬件

系统卬实现的关键EDA工具,与SOPCBuilder结合,可实现S0PC系统开发。Quartus(R)II软件

中的工程由所有设计文件和与设计有关的设置组成。可以使用QuartusIIBlockEditor.Text

Editor.MegaWizard(R)Plug-InManager(TooIs菜单)和EDA设计输入工具加建立包括Altera(R)

宏功能模块、参数化模块库(LPM)函数和知识产权(IP)函数在内的设计。可以使用Settings对

话框(Assignments菜单)和AssignmentEditor设定初始设计约束条件。如图2.2所示为设计

输入流程图。

24,■

aeBBSBaB

图2.2设计输入流程图

本设计将以QuartusII软件来进行各个数据的操作,将仿真的图形数据来分析该课题。本设计

所选择的QuartusII义本编辑输入法,在义本编辑窗口中完成VHDL设计义件的编辑,然后对设计

文件进行编译、仿真操作。

详细介绍QuartusII文本编辑输入法的使用方法:

1.编辑设计文件

(1)新建一个文件夹。利用资源管理器,新建一个文件夹,如e:\SINGNTo

⑵输入源程序。翻开QuartusII,执行,在New窗口中的“DeviceDesignFiles”中选择编

译文衅的语言类型,这里选“VHDLFiles〃,然后在VHDL文木编译窗口中键入VHDL程序。如图2.3

所示。

(3)文件存盘。执行As,找到己设立的文件夹e:\SIN_GNT,存盘文件名应该与实体名一致。

2.创立工程

(1)建立新工程管理窗。执行ProjectWizard命名,在图2.4对话框进行工程设置。

(2)将设计文件参加工程中。

(3)选择仿真器和综合器类型。

(4)选择芯片。

(5)结束设置。

3.编译前设置

wswsaa

图2.3选择编辑文件的语言类型

-Ir<;na郡二

affBBaBSB

图2.4利用“NewProjectWizard”创立工程

(1)选择目标芯片,执行Assignmemts-settings命令,在弹出的对话框中选Compiler

Settings项卜的Device选R标芯片。

(2)选择目标器件编程配置方式,由图2.5的按钮DevicePinOptions进入选择窗,可选

Configuration方式为ActiveSerialo

(3)在下列图所示的ProgrammingFiles窗口,Hexadecimal(Intel-Format)outputFile,即

产生下载文件的同时,产生二法制十六进制配置文件fractest,hexout,可用于单片机与EPROM构

成的FPGA配置电路系统如图2.6所示。

4.编译及了解编译结果

首先执行Processing-*StartCompilation命令,启动全程编译,如果工程中的文件有错误,

在下方的Processing处理栏中会显示出来。对于Processing栏显示出的语句格式错误,可.双击此

条文,即弹出VHDL文件,在闪动的光标处(或附近)可发现文件中的错误。再次进行编译直至排

除所有错误。

5.仿真

(1)翻开波形编辑器。选择菜单命令,在New窗口中选择OtherFiles中的"VectorWaveform

File"翻开波形编辑器。

(2)设置仿真时间区域。执行Edit-EndTinie项,在弹出窗口中的Time窗口中的设定仿真时

间5011So

(3)存盘波形文件。选择File中的Saveas,将以名为ent4b的波形文件存入文件夹。

(4)输入信号节点。

(5)编辑输入波形。点击时钟名CLK,使之变为蓝色,再点击左列的时钟设置键,在Clock窗

口中设置CLK的周期为3us,再对文件存盘。

图2.5选择配置器件和配置方式

(6)总线数据格式设置。如果点击输出信号D0UT左旁的,则将展开此总线中的所有信号;

如果双击此“+〃号左旁的信号标记,将弹出对该信号数据格式设置的Radix栏有4种选择。

(7)仿真器参数设置。执行Assignment-*Settings命令,在Settings窗口执行

Catgory-SimulatorSettings命名,在此项下分别选中General按钮,观察仿真总体设置情况;

选中Mode按钮,以确定仿真模式为时序仿真Timing;选中Optiongs,确认选定“Simulation

coveragereporting/,;毛刺检测Glitchdetection为Ins宽度。

(8)启动仿真器,观察仿真结果。执行Processing-*StartSimulation命名,直到出现

“Simulationwassuccessful"。仿真波形文件SimulationReport通常会自动弹出,将仿真输

出结果与文件数据比较。

3BBB8B33

?,,川

图2.6选定目标器件

第三章数字频率计的系统分析

3.18位十进制数字频率计系统设计的原理

3.1.1数字频率计的根本原理

数字频率计的根本原理是用一个频率稳定度高的频率源作为基准时钟,通常情况下计算每秒内

待测信号的脉冲个数,此时我们称闸门时间为1秒。闸门时间也可以大于或小于一秒,闸门时间越

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

频率值刷新就越快,但测得的频率精度就受影响。数字频率计的主要功能是测量周期信号的频率。

频率是单位时间(1S)内信号发生周期变化的次数。如果我们能在给定的1S时间内对信号波形计

数,并将计数结果显示出来,就能读取被测信号的频率。数字频率计首先必须获得相对稳定与准确

的时间,同时将被测信号转换成幅度与波形均能被数字电路识别的脉冲信号,然后通过计数器计算

这一段时间间隔内的脉冲个数,将其换算后显示出来。这就是数字频率计的根本原理。

3.1.2系统总体框架图

图3.1系统总体框架图

总体框图设计思路:由50MHz系统时钟分频得到0.5Hz的基准时钟。在基准时钟的1S高电平

期间计被测频率的脉冲个数,1S高电平结束时计数结束,所记录的脉冲个数是被测信号的频率,

为了在数码管上显示计数结果需要锁存器将所计的数锁存,因此,在基准时钟下降沿来的时候锁存

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

清零。被测频率从计数器的是中端输入实现频率的测试。籽锁存器锁存的数据输入扫描器,通过译

码滞将锁存的二进制数译成十进制然后显示到数码管上,最终被读出来。

3.28位十进制数字频率计设计任务及要求

用测频法设计一个八位十法制的数字频率器,测频范围是1HZ到49999999HZ.

(1)测量范围信号:方波、正弦波;幅度:0.5V〜量;频率:1Hz〜4999999HZ。

(2)测量范围信号:脉冲波;幅度:0.5V〜5V;脉冲宽度2100us.测量误差W1%。

(3)显示器:十进制数字显示,显示刷新时间1〜10杪连续可调,对上述三种测量功能分别用

不同颜色的发光二极管指示。

(4)具有自校功能,时标信号频率为1Hz。

3.3目标芯片FLEX10K

目标芯片1⑴选用Altera公司生产的FPGA产品FLEX10K系列⑼中的LC84-4,FLEX10K是ALTERA

公司研制的第一个嵌入式的PLD可编程逻辑器件系列。它具有高密度、低本钱、低功率等特点,利

用FLEX10K系列CPLD可编程逻辑器件的EAB可在系统中实现逻辑功能和存贮功能。FLEX10K是

ALTERA公司研制的第一个嵌入式的PLD,它具有高密度、低本钱、低功率等特点,是当今ALTERACPLD

中应用前景最好的器件系列之一。它采用了重复可构造的CMOSSRAM工艺,并把连续的快速通道互

连与独特的嵌入式阵列结构相结合,同时可结合众多可编程器件来完成普通门阵列的宏功能。每一

个FLEX10K器件均包括一个嵌入式阵列和一个逻辑阵列,因而设计人员可轻松地开发集存贮器、数

字信号处理器及特殊逻辑等强大功能于一身的芯片。

FPGA采用可编程的查找表LUT(LookUpTable)结构。LUT是可编程的最小逻辑单元,大局部

FPGA采用基于SRAM的查找表逻辑形式结构,用SRAM来构成逻辑函数发生器。FLEX内部结构如图

3.2所示。

affOBaBSB

图3.2FLEX内部芯片结构

第四章各功能模块基于VHDL的设计与仿真

4.18位十进制数字频率计的电路逻辑图

8位十进制数字频率计的电路逻辑图,它由一个测频控制信号发生器TESTCTL、8个有时钟使

能的十进制计数器CNT10、一个32位锁存器REG32B⑻组成。以下分别叙述频率计各逻辑模块的功

能与设计方法。8位十进制数字频率计的电路逻辑如图4.18所示。

图4.18位十进制数字频率计的电路逻辑图

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

(1)测频控制信号发生器的功能模块如图4.2所示。

SBBOaBBB

・'.?•一・••

.v型・—二丁小3(

Jr<<>

“‘,,4■一.\I

图4.2测频控制信号发生器的功能模块图

(2)源程序如下:

LIBRARYIEEE;

USEIEEE.STD_LOG1C_1164.ALL:

USEIEEE.STDLOGICUNSIGNED.ALL;

ENTITYTESTCTLIS

PORT(CLK:INSTD_LOGIC;—1Hz测频控制时钟

TSTEN:OUTSTD_LOGTC;一计数器时钟使能

CLR_CNT:OUTSTD_LOGIC;一计数器清零

LOAD:OUTSTD_LOGIC;;一输出锁存信号

ENDENTITYTESTCTL;

ARCHITECTUREARTOFTESTCTLIS

SIGNALDIV2CLK:STDLOGIC;

BEGIN

PROCESS(CLK)IS

BEGIN

IFCLK,EVENTANDCLK='1'THEN—1HZ时钟二分频

DIV2CLK<=N0TDTV2CLK;

ENDIF;

ENDPROCESS;

PROCESS(CLK,DTV2CLK)IS

BEGIN

IFCLK='O'ANDDIV2CLK='O'THEN-产生计数器清零信号

CLR_CNT<='T;

ELSECLR_CNT<='O';ENDIF;

ENDPROCESS;

LOAD<=NOTD1V2CLK;TSTEK<=D1V2CLK;

ENDARCHITECTUREART;

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

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

为高电平时,允许计数;当TSTEN由高电平变为低电平(下降沿到来)时,应产生一个锁存信号,

将计数值保存起来;锁存数据后,还要在下次TSTEN上升沿到哦来之前产生零信号CLEAR,将计数

器清零,为下次计数作准备,如图4.3所示为测频控制信号仿真图。

图4.3测频控制信号仿真图

4.3系统时钟分频的功能模块及仿真

(1)系统时钟分频的分频功能模块如图4.4所以。

-

图4.4系统时钟分频的功能模块图

(2)源程序如下:

LIBRARYIEEE;

USEIEEE.STDLOGIC1164.ALL;

USEIHEE.STILI.OGIC_IJNSIG\IEI).ALL:

ENTITYdivlhzIS

PORT(CLK:INSTD_L0GIC;

CLOCK:OUTSTD_L0GIC);

ENDdivlhz;

ARCHITECTUREBEHAVOFdivlhzIS

SIGNALCOUNT:INTEGERRANGE0TO500000;

SIGNALCLKDATA:

STD_LOGIC;

BEGINPROCESS(CLK)

BEGIN

IFCLK,EVENTANDCLK='1'THEN

IFC0UNT=500THEN

C0UNT<=0;

CLKDATA<=NOTCLKDATA;

ELSECOUNT<=COUNT+1;

ENDIF;

ENDIF;

CLOCK<=CLK_DATA;

ENDPROCESS;

ENDBEHAV;

该模块由系统时钟分频模央[⑵为TESTCTL的计数能使信号TSTEN产生一个1S脉宽的周期信

号,并对频率计中的32位十连制计数器CNT10的ENA使能端进行同步控制。TSTEN高电平时允

许计数;当低电平时停止计数,并保持其所计的脉冲数。在停止计数期间,从仿真图4.5中可以看

出,一个锁存信号LOAD的上跳沿将计数器在前一秒的计数值锁存进锁REG32B中,并由外部的十

进制7段数码管显示计数值。设置锁存器的好处是数据显示稳定,不会由于周期性的清零信号而

不断闪烁。锁存信号后,必须有一个清零信号CLR_CNT对计数器进行清零,为下一秒的计数操作

做准备。

图4.5系统时钟分频的分频功能仿真图

4.432位锁存器的功能模块及仿真

4.4.1锁存器।⑶

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

改变状态。锁存,就是把信号暂存以维持某种电平状态。锁存器的最主要作用是缓存,其次完成高

速的冬制其与慢速的外设的不同步问题,再其次是解决驱动的问题,最后是解决一个I/O口既能

输出也能输入的问题。

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

(1)32位锁存器的功能模块如图4.6所示。

aBBB

图4.6锁存器的功能模块图

(2)源程序如下:

LIBRARYIEEE;

USEIEEE.STD_L0GIC_1164.ALL:

ENTITYREG32BIS

PORT(LOAD:INSTD_LOGIC;

DIN:INSTD_LOGIC_VECTOR(31DOWNTO0);

DOUT:OL'TSTD^LOG1C_VECTOR(31DOWNTO0)):

ENDENTITYREG32B;

ARCHITECTUREART01'REG32BIS

BEGIN

PROCESS(LOAD,DIN)IS

BEGIN

IFLOAD'EVENTANDLOAD二,FTHENDOUT<=DIN;一锁存输入数据

ENDIF;

ENDPROCESS;

ENDARCHITECTUREART;

彷真图4.7的LOAD信号上升沿到来时将对输入到内部的CNT10计数信号进行锁存,并将结

果输出给SELTIME。当输入信号上升到时就会产生锁存,否则,不进行锁存,该仿真在上升沿的时

候,将其锁存起来,直到下个上升沿才会改变锁存的数据,如仿真在“1〃的时候上升,则对“1〃

进行锁存。

=W*另同后方二

图4.7锁存器的功能仿真

4.5数码管扫描的功能模块及仿真

(1)数码管扫描⑻的功能模块如图4.8所示。

aeoBaBaB

图4.8数码管扫描的功能模块

(2)源程序如下:

LIBRARYIEEE;

USEIEEE.

STD_L0GIC_1164.ALL;

USEIEEE.

STDLOGICUNSIGNED.ALL;

ENTITYSELTIMEIS

PORTC

CLK:INSTDLOGIC;

DIN:INSTD_L0GIC_VECT0R(31DOWNTO0);

DAOUT:OUTSTD_L0GIC_VECT0R(3DOWNTO0);

SEL:OUTSTD_LOGIC_VECTOR(2DOWNTO0));

ENDSELTIME;

ARCHITECTUREbehavOFSELTTMETS

SIGNALSEC:

STD_L0GIC_VECT0R(2DOWNTO0);

BEGIN

PROCESS(CLK)

BEGIN

IF(CLK'EVENTANDCLK=f;THEN

IF(SEC=〃111〃)THENSEC<=〃000”;

ELSESECCSEC+l;

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(SEC,DIN(31DOWNTO0))

BEGIN

CASESECIS

WHEN〃000J>DA0UT<=DIN(3DOWNTO0);

WHEN"00r=>DA0UT<=DIN(7DOWNTO4);

WHEN〃010"二>DA0UT<=DIN(llDOWNTO8);

WHEN〃011"=>DA0UT<=DIN(15DOWNTO⑵

WHEN"100z,=>DA0UT<=DIN(19DOWNTO16)

WHEN/z101/z=>DA0UT<=DIN(23DOWNTO20)

WHEN〃110〃=〉DA0UT〈=DIN(27DOWNTO24)

WHEN,zlir=>DAOUT<=DIN(31DOWNTO28)

WHENOTHERS二〉NULL;

ENDCASE;

ENDPROCESS;

SEL<=SEC;

ENDbehav;

锁存信号输出DIN[31..0]f然后由SELTIME进行扫描输出,从仿真图4.9可以得出,当SEL

为〃000"时选通第一个CNT10;输出到LED7进行译码输出。该仿真图中的SEL为“000〃选通第

一个CNT7,当所选SEL为“001〃时所选通第二个CNT6,依次类推。当所选SEL为“111〃时所选

第八个CNT0。当每选定一个通道所对应的输入一个4位的二进制数所对应得数码管,图4.9为数

码管扫描的仿真图。

图4.9数码扫描管仿真图

4.6数码管译码显示的功能模块及仿真

(1)数码管译码显示的功能模块如图4.10所示。

QBBBasaa

图4.1()数码管译码显示的功能模块

(2)源程序如下:

LIBRARYIEEE;

USEIEEE.

STD_L0GIC_1164.ALL;

USEIEEE.

STD_LOG1C_UNSIGNED.ALL;

ENTITYLED7IS

PORT(

DIN:INSTD_L0GIC_VECT0R(3DOWNTO0);

DOUT:OUTSTDLOGICVECTOR(6DOWNTO0));

ENDLED7;

ARCHITECTUREbchavOFLED7IS

-SIGNALLED7:STD_LOGIC_VECTOR(6DOWNTO0);

BEGIN

PROCESS(DIN)

BEGIN

CASEDINIS

,,0000,,=>DOUT<=,,01111ir,:WHEN〃0001〃=>D0l:T<=〃0000110〃;WHEN

〃0010〃=〉DOUT<=〃1011011〃;WHEN〃0011〃=>D0LT<=〃1001111〃;WHEN

〃0100〃=>DOUT<=〃1100110〃;WHEN〃0101〃=>DOLT<=〃1101101〃;WHEN〃0110〃=>D0UT<=〃1111101〃;

WHEN"0111"=>D0UT〈H0000111”;WHEN"1OOO〃=>DOUT<=〃1111111”;WHEN

,,1001/,=>D0UT<=,/11011irz;WHEN"1010〃二)DOUT<=〃1110111〃;WHEN/z10ir,=>D0UT<="1111100/,;

WHEN〃1100〃=>D0UT<=〃0111001”;WHEN〃1101〃=>D0UT<="1011110〃;WHEN

"1110,,=>DOUT<=//111100r,;WHEN〃1111〃=>DOI;T<=〃1110001〃;WHENOTHERS二)NULL;

ENDCASE;

ENDPROCESS;

ENDARCHITECTUREbehav;

数码译码.主要是用来完成各种码制之间的转换。例如可用来完成BCD—十进制数、十进制数

—BCD之间数制的转换。从图4.11仿真图可知,当LED的输入为“0X7E〃数码管就会显示为“0〃,

当LED的输入为“0X06〃数码管就会显示为“1〃。图4.11为数码管译码显示仿真图。

图4.11数码管译码显示仿真图

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

4.7.1计数器

计数是一种最简单根本的运算,计数器,就是实现这种运算的逻辑电路,计数器在数字系统中

主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能,计数器是由

根本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,

这些触发器有RS触发器、T触发器、D触发器及JK触发器等。计数器在数字系统中应用广泛,如

在电子计算机的控制器中对指令地址进行计数,以便顺序取出下一条指令,在运算器中作乘法、除

法运算时记下加法、减法次数,又如在数字仪器中对脉冲的计数等等。计数器可以用来显示产品的

工作状态,一般来说主要是用来表示产品已经完成了多少份的折页配页工作。它主要的指标在于计

数器的位数,常见的有3位和4位的。很显然,3位数的计数器最大可以显示到999,4位数的最

大可以显示到9999o

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

(1)十进制计数器的功能模块如图4.12所示。

图4.12十进制计数器的功能模块

(2)源程序如下:

LIBRARYIEEE;

USETEEE.STD_L0GTC_1164.AI.L;

ENTITYCNT10IS

PORT(CLK:INSTD_LOGIC-计数时钟信号

CLR:INSTD_LOGIC一清零信号

ENA:INSTDLOGIC一计数使能信号

CQ:OUTINTEGERRANGE0TO15;-4位计数结果输出

CARRY_OUT:OUTSTD_LOGIC);一计数进位

ENDENTITYCNT1O;

ARCHITECTUREARTOFCNT1OIS

SIGNALCQT:INTEGERRANGE0TO15;

BEGIN

PROCESS(CLK,CLR,ENA)IS

BEGIN

IFCLR='1'THENCQI<=0:一计数器异步清零

ELSIFCLK*EVENTANDCLK=T'THEN

IFENA=T'THEN

IFCQI<9THENCQI<=CQI+1:

ELSECQI<=0;

ENDIF;一等于9,则计数器清零

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(CQT)IS

BEGIN

IFCQ>9THENCARRY_OUT<=T';一进位输出

ELSECARRY_OUT<='O';ENDIF;

ENDPROCESS;

CQ<=CQI;

ENDARCHITECTUREART;

咳仿真的作用是实现十进制计数功能。从仿真图4.13中可以得出,当第一个CNT10计数输出

CQ=9时,下一秒时钟上升沿到来时,将产生一个CARRY_OUT信号作为下一个CNT10的时钟信号,

同时CQ清零,依次递推到8个CNT10。

图4.13十进制计数器仿真图

4.88位十进制数字频率计的功能仿真及电路图

LIBRARYIEEE;

USEIEEE.STD_L0GIC_1164.ALL:

ENTITYCNT10IS

PORT(CLK:INSTD_LOGIC;一计数时钟信号

CLR:INSTD_LOGIC;一清零信号

ENA:INSTD_LOGIC;一计数使能信号

CQ:OUTINTEGERRANGE0TO15;一4位计数结果输出

CARRY_OUT:OUTSTD_LOGIC);一计数进位

ENDENTITYCNT1O;

ARCHITECTUREARTOFCNT1OIS

SIGNALCQI:INTEGERRANGE0TO15;

BEGIN

PROCESS(CLK,CLR,ENA)IS

BEGIN

IFCLR=T'THENCQI<=0;-计数港异步清零

ELSIFCLK'EVENTANDCLK='1'THEN

IFENA='1'THEN

IFCQK9THENCQI<=CQI+1;

ELSECQI<=0;

ENDIF;一等于9,则计数器清零

ENDIE;

ENDIF;

ENDPROCESS;

PROCESS(CQI)IS

BEGIN

IFCQI=9THENCARRY_OUT<='1';一进位输出

ELSECARRY_OUT<='O';ENDIF;

ENDPROCESS;

CQ<=CQI;

ENDARCHITECTUREART;

LIBRARYTEEE;

USEIEEE.STD_L0GIC_1164.ALL:

ENTITYREG32BIS

PORT(LOAD:INSTD_LOGIC;

DIN:INSTD_L0GIC_VECT0R(31DOWNTO0);

DOUT:OUTSTD_L0GIC_VECT0R(31DOWNTO0)):

ENDENTITYREG32B;

ARCHITECTUREARTOFREG32BIS

BEGIN

PROCESS(LOAD,DIN)IS

BEGIN

IFLOAD'EVENTANDLOAD=’1'THENDOUT<=DIN;一锁存输入数据

ENDIF;

ENDPROCESS;

ENDARCHITECTUREART;

LIBRARYTEEE;

USEIEEE.STD_L0GIC_1164.ALL:

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYTESTCTLIS

PORT(CLK:INSTD_LOGIC;-1Hz测频控制时钟

TSTEN:OUTSTDLOGIC;一计数器时钟使能

CLR_CNT:OUTSTD_LOGIC;一计数器清零

LOAD:OUTSTD_LOGTC);一输出锁存信号

ENDENTITYTESTCTL;

ARCHITECTUREARTOFTESTCTLIS

SIGNALDIV2CLK:STD_LOGIC;

BEGIN

PROCESS(CLK)IS

BEGIN

IFCLK'EVENTANDCLK=T'THEN

—1HZ时钟二分频

DIV2CLK<=N0TDIV2CLK;

ENDIF;

ENDPROCESS;

PROCESS(CLK,DTV2CLK)IS

BEGIN

IFCLK='O'ANDDTV2CLK='O'THEN

一产生计数器清零信号

CLR_CNT<='1';

ELSECLR_CNT〈='O';ENDIF;

ENDPROCESS;

LOAD<=NOTDIV2CLK;TSTEK<=DIV2CLK;

ENDARCHITECTUREART;

LIBRARYIEEE;

USEIEEE.STD_L0GIC_1164.ALL:

ENTITYFREQ8IS

PORT(FSIN:INSTDLOGIC;

CLK:INSTDLOGIC;

DOUT:OLITSTD_L0GIC_VECT0R(31DOWNTO0)):

ENDENTITYFREQ8;

ARCHITECTUREARTOFFREQ8IS

COMPONENTCNT10IS一待调用的有时钟使能的十进制计数器端口定义

PORT(CLK,CLR,ENA:INSTD_LOGIC;

CQ:OUTSTD_L0GIC_VECT0R(3DOWNTO0);

CARRY,OUT:OUTSTDJOGIC);

ENDCOMPONENTCNT10;

COMPONENTREG32BIS一待调用的32位锁存器端口定义

PORT(LOAD:INSTD_LOGIC;

DIN:INSTD_L0GIC_VECT0R(31DOWNTO0);

DOUT:OUTSTD_L0GIC_VECT0R(31DOWNTO0)):

ENDCOMPONENTREG32B;

COMPONENTTESTCTLIS一待调用的测频控制信号发生器端口定义

PORT(CLK:INSTD_LOGIC;

TSTEN:OUTSTDLOGIC;

CLR_CNT:OUTSTD_LOGIC;

LOAD:OUTSTD_LOGIC;;

endcomponentTESTCTL;

SIGNALSE,SC,SL:STD_LOG1C;

SIGNALSI,S2,S3,S4,S5,S6,S7,S8:STDLOGIC;

SIGNALSD:STD_L0GIC_VECT0R(31DOWNTO0);

BEGIN

U0:TESTCTL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论