基于VHDL的数字频率计的设计.doc_第1页
基于VHDL的数字频率计的设计.doc_第2页
基于VHDL的数字频率计的设计.doc_第3页
基于VHDL的数字频率计的设计.doc_第4页
基于VHDL的数字频率计的设计.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

江 苏 大 学 学 士 学 位 论 文目 录引言1第一章 概述21.1 课题研究背景21.2 国内外概况21.3 设计概述31.4 设计内容31.5 设计原理31.6 设计功能4第二章 技术与开发工具52.1 VHDL简介52.1.1 简介52.1.2 VHDL程序组成部分62.1.3 VHDL系统优势62.2 MAX+PLUS72.2.1 软件简介72.2.3 软件组成82.2.4 设计流程9第三章 系统分析103.1数字频率计的设计任务及要求103.2 模块的划分103.3设计分析11第四章 各功能模块基于VHDL的设计124.1 时基产生与测频时序控制电路模块的VHDL源程序124.2 待测信号脉冲计数电路模块的VHDL源程序134.2.1 十进制加法计数器的VHDL源程序134.2.2待测信号脉冲计数器的VHDL源程序144.3 锁存与译码显示控制电路模块的VHDL源程序154.3.1 译码显示电路的VHDL源程序154.3.2 锁存与译码显示控制模块的VHDL源程序164.4 顶层电路的VHDL源程序18第五章 数字频率计波形仿真205.1 时基产生与测频时序控制电路模块的仿真205.2 待测信号脉冲计数电路模块的仿真205.2.1 十进制加法计数器的仿真205.2.2待测信号脉冲计数器的仿真215.3 锁存与译码显示控制电路模块的仿真215.3.1 译码显示电路的仿真215.3.2 锁存与译码显示控制模块的仿真225.4 数字频率计系统的仿真22结论24致 谢25参考文献26基于VHDL的数字频率计的设计摘要 本文介绍了一种自顶向下分层设计多功能数字频率计的设计方法。该频率计采用VHDL硬件描述语言编程以MAX+PLUS为开发环境,极大地减少了硬件资源的占用。数字频率计模块划分的设计具有相对独立性,可以对模块单独进行设计、调试和修改,缩短了设计周期。该数字频率计的测量范围为lHz1MHz,响应时间小于等于15秒;其测试结果由4只七段数码管稳定显示,测量误差小于等于1 。仿真波形与分析结果表明,所设计的电路通过硬件仿真能够满足数字频率计的功能要求,具有理论与实践意义,实现了电子电路自动化的过程。数字频率计模块划分的设计具有相对独立性,可以对模块单独进行设计、调试和修改,缩短了设计周期。关键词:VHDL 数字频率计 EDA MAX+PLUS The Design of Digital Frequency Meter based on VHDLAbstract This paper presents a top-down design of multi-layered design method of digital frequency meter. The frequency counter using VHDL hardware description language programming in MAX + PLUS for the development environment, greatly reducing the hardware resources of the occupation. Digital frequency meter module design division of the relative independence of the separate modules can design, debug and modify, shorten the design cycle. The digital frequency meter measurement range of lHz 1MHz, response time of 15 seconds or less; the test results from the four seven-segment digital tube display stability, measurement error is less than equal to 1%. Simulation waveforms and analysis results show that the designed circuit simulation by hardware to meet the functional requirements of digital frequency meter of great theoretical and practical significance of the electronic circuit to achieve the automated process. Digital frequency meter module design division of the relative independence of the separate modules can design, debug and modify, shorten the design cycle.Key words: VHDL Digital frequency meter EDA MAX+PLUS- 26 -引言随着电子技术的发展,当前数字系统的设计正朝着速度快、容量大、体积小、重量轻的方向发展。推动该潮流迅猛发展的引擎就是日趋进步和完善的设计技术。目前数字频率计的设计可以直接面向用户需求,根据系统的行为和功能要求,自上至下的逐层完成相应的描述、综合、优化、仿真与验证,知道生成器件。上述设计过程除了系统行为和功能描述以外,其余所有的设计过程几乎都可以用计算机来自动地完成,也就是说做到了电子设计自动化(EDA)。这样做可以大大地缩短系统的设计周期,以适应当今品种多、批量小的电子市场的需求,提高产品的竞争能力。电子设计自动化(EDA)的关键技术之一是要求用形式化方法来描述数字系统的硬件电路,即要用所谓硬件描述语言来描述硬件电路。所以硬件描述语言及相关的仿真、综合等技术的研究是当今电子设计自动化领域的一个重要课题。硬件描述语言的发展至今已有几十年的历史,并已成功地应用到系统的仿真、验证和设计综合等方面。80年代后由美国国防部开发的VHDL语言(VHSIC Hardware Description Language)是一种面向设计的多层次、多领域且得到一致认同的标准的硬件描述语言,满足了广大用户所求,并在1987年12月由IEEE标准化。它的出现为电子设计自动化(EDA)的普及和推广奠定了坚实的基础。据1991年有关统计表明,VHDL语言已被广大设计者所接受。另外,众多的CAD厂商也纷纷使自己新开发的电子设计软件与VHDL语言兼容。由此可见,使用VHDL语言来设计数字系统是电子设计技术的大势所趋。数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生较大的延时,造成测量误差、可靠性差。随着可编程逻辑器件(CPLD)的广泛应用,以EDA工具为开发平台,利用VHDL(Very High Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言)工业标准硬件描述语言,采用自顶向下(Top to Down)和基于库(Library-based)的设计,设计者不但可以不必了解硬件结构设计,而且将使系统大大简化,提高整体的性能和可靠性。第一章 概述1.1 课题研究背景数字频率计是电子测量与仪表技术最基础的电子仪表类别之一, 数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器,而且它是数字电压必不可少的部件。当今数字频率计不仅是作为电压表、计算机、天线电广播通讯设备、工艺过程自动化装置。多种仪表仪器与家庭电器等许多电子产品中的数据信息输出显示器反映到人们眼帘。集成数字频率计由于所用元件少、投资少,体积小,功耗低,且可靠性高,功能强,易于设计和研发,使得它具有技术上的实用性和应用的广泛性。不论从我们用的彩色电视机、电冰箱,DVD,还有我们现在家庭常用到的数字电压表数字万用表等等都包含有频率计。现在频率计已是向数字智能方向发展,即可以很精确的读数也精巧易于控制。数字频率计已是现在频率计发展的方向,它不仅可以很方便的读数,而且还可以使频率的测量范围和测量准确度上都比模拟先进.而且频率计的使用已是很多的方面,数字卫星、数字通讯等高科技的领域都有应用,今天数字频率计的发展已经不仅仅是一个小电子产品的发展也是整个民族乃至整个国家的发展,所以频率计的发展是一个整体的趋势。而从民族产业上来说,我们在这种产业中还落后于西方发达国家,这将会关系到民族产业的兴衰。所以我们必须很重视当前的情况,学习发达国家的先进技术以发展本国的产业。1.2 国内外概况我国的频率计其实不是落后发达国家太多的,我国在这个领域的发展是极其迅速的,现在的技术实际已是多年来见证。我国现阶段电子产品的市场特点,电子数字化发展很快。在我国和发达国家的发展情况是趋于一致的,数字频率计已经应用于高科技等产品上面,可以不无夸张的说没有不包含有频率计的电子产品。我国的CD、VCD、DVD和数字音响广播等新技术已开始大量进入市场;而在今天这些行业中都必须用到频率计。到今天频率计已开始并正在向智能、精细方向的发展。国外的发展比我国要早,所以在这些行业中还领先于我们,我国还是缺少开发和研发的资金投入,很多的电子企业都不太乐意去花大量的时间、资金和精力去研究和开发,这也就使得我国在这方面的人力和资金都不充足,也就无法于发达国家相比,不能够形成一个量产的效果。从而很多的企业没有竞争力,这也和我国其他的民族产业存在相同的情况,这也正是我国在高速发展后的今天很少有自己的民族品牌的原因,所以我国应该大力的支持自己的民族品牌,不仅仅是要在资金和人才的投入,还要有具体的实际行动并起到一定的保护作用。1.3 设计概述所谓频率,就是周期信号在单位时间(1s)里变化的次数。本数字频率计的设计思路是:(1) 根据频率计的测频原理,可以选择合适的时基信号对输入被测信号脉冲进行计数,实现测频的目的。(2) 根据数字频率计的基本原理,本文设计方案的基本思想是分为三个模块来实现其功能,即时基产生与测频时序控制电路模块、待测信号脉冲计数电路模块和锁存与译码显示控制电路模块,并且分别用VHDL对其进行编程,实现计数电路、锁存电路、显示电路等。1.4 设计内容分析数字频率计的功能,完成功能模块的划分,分别用VHDL语言完成底层模块的设计和以原理图的方法完成顶层模块的设计,分别对各个模块以及顶层模块进行仿真分析,最后在硬件开发平台上进行测试。1.5 设计原理众所周知,频率信号易于传输,抗干扰性强,可以获得较好的测量精度。因此,频率检测是电子测量领域最基本的测量之一。频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下计算每秒内待测信号的脉冲个数,即闸门时间为1s。闸门时间可以根据需要取值,大于或小于1S都可以。闸门时间越长,得到的频率值就越准确,但闸门时间越长,则每测一次频率的间隔就越长。闸门时间越短,测得的频率值刷新就越快,但测得的频率精度就受影响。一般取1s作为闸门时间。数字频率计的关键组成部分包括测频控制信号发生器、计数器、锁存器、译码驱动电路和显示电路,其原理框图如图1. 1所示。计数器锁存器译码驱动电路数码管显示测频控制信号发生器图1.1 原理框图待测信号1.6 设计功能 四位十进制数字频率计用四组七段译码显示的数字频率计,其频率测量范围为1Hz10kHz。采用记忆显示的方法,即在测量过程中不刷新数据,等数据过程结束后才显示测量结果,给出待测信号的频率值,并保存到下一次测量结束,显示时间不少于1秒。第二章 技术与开发工具2.1 VHDL简介2.1.1 简介VHDL主要用于描述数字系统的结构,行为,功能和接口。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。VHDL 语言能够成为标准化的硬件描述语言并获得广泛应用 , 它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来,VHDL 语言主要具有以下优点:(1) VHDL 语言功能强大,设计方式多样 VHDL 语言具有强大的语言结构, 只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外,VHDL 语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。VHDL 语言设计方法灵活多样 , 既支持自顶向下的设计方式, 也支持自底向上的设计方法; 既支持模块化设计方法, 也支持层次化设计方法。 (2) VHDL语言具有强大的硬件描述能力 VHDL语言具有多层次的电路设计描述功能,既可描述系统级电路 , 也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL语言的强大描述能力还体现在它具有丰富的数据类型。VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。 (3) VHDL语言具有很强的移植能力 VHDL语言很强的移植能力主要体现在: 对于同一个硬件电路的 VHDL 语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。 (4) VHDL语言的设计描述与器件无关 采用VHDL语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。当硬件电路的设计描述完成以后,VHDL 语言允许采用多种不同的器件结构来实现。 (5) VHDL语言程序易于共享和复用 VHDL语言采用基于库(library)的设计方法。在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。 2.1.2 VHDL程序组成部分全部的VHDL程序由实体(Entity)、构造体(Architecture)、配置(Configuration)、包集合(Package)、库(Library)5个部分组成。各组成部分的作用是:(1) 实体 用于描述所设计的系统的外部接口信号。(2) 构造体 用于描述系统内部的结构和行为。(3) 配置 用于从库中选取不同单元(器件)来组成系统设计的不同版本。(4) 包集合 存放各设计模块都能共享的数据类型、常数和子程序等。(5) 库 存放已经编译了的实体、构造体、包集合和配置。库可由系统工程师生成或由ASIC芯片商提供,以便在设计中共享。2.1.3 VHDL系统优势(1) 与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。(2) VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。 (3) VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。 (4) 对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。 (5) VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。2.2 MAX+PLUS2.2.1 软件简介MAX+PLUS(Multiple Array and Programming Logic User System)开发工具是Altera公司推出的一种EDA工具,具有灵活高效、使用便捷和易学易用等特点。Altera公司在推出各种CPLD的同时,也在不断地升级相应的开发工具软件,已从早起的第一代A+PLUS、第二代MAX+PLUS发展到第三代MAX+PLUS和第四代Quartus。使用MAX+PLUS软件,设计者无需精通器件内部的复杂结构,只需用业已熟悉的设计输入工具,如硬件描述语言、原理图等进行输入即可,MAX+PLUS就会自动将设计转换成目标文件下载到器件中去。MAX+PLUS开发系统具有以下特点。(1) 多平台。MAX+PLUS软件可以在基于PC机的操作系统如Windows95、Windows98、Windows2000、Windows NT下运行,也可以在Sun SPAC station等工作站上运行。(2) 开放的界面。MAX+PLUS提供了与其他设计输入、综合和校验工具的接口,借口符合EDIF 200/300、LPM、VHDL、Verilog-HDL等标准。目前MAX+PLUS所支持的主流第三方EDA工具主要有Synopsys、Viewlogic、Mentor、Graphics、Cadence、OrCAD、Xilinx等公司提供的工具。(3) 模块组合式工具软件。MAX+PLUS具有一个完整的可编程逻辑设计环境,包括设计输入、设计处理、设计校验和下载编程4个模块,设计者可以按设计流程选择工作模块。(4) 与结构无关。MAX+PLUS开发系统的核心Compiler(编译器)能够自动完成逻辑综合和优化,它支持Altera的Classic、MAX7000、FLEX8000和FLEX10K等可编程器件系列,提供一个与结构无关的PLD开发环境。(5) 支持硬件描述语言。MAX+PLUS支持各种HDL设计输入语言,包括VHDL、Verilog-HDL和Altera的硬件描述语言AHDL。(6) 丰富的设计库。MAX+PLUS提供丰富的库单元供设计者调用,其中包括一些基本的逻辑单元,74系列的器件和多种特定功能的宏功能模块以及参数化的兆功能模块。调用库单元进行设计,可以大大减轻设计人员的工作量,缩短设计周期。2.2.3 软件组成MAX+PLUS软件采用模块化结构,包括设计输入、项目处理、项目校验和器件编程4个部分,所有这些部分都集成在一个可视化的操作环境下。(1) 设计输入MAX+PLUS的设计输入方法有多种,主要包括文本设计输入、原理图输入、波形设计输入等多种方式。另外,还可以利用第三方EDA工具生成的网表文件输入,该软件可接受的网表有EDIF格式、VHDL格式及Verilog格式。MAX+PLUS是一种层次设计工具,可根据实际情况灵活地使用最适合每一层次的设计方法。(2) 项目处理设计处理的任务就是对项目进行编译(Compile),编译实际就是将设计者编写的设计改为可以用于生产的“语言”。编译器通过读入设计文件并产生用于编程、仿真和定时分析的输出文件来完成编译工作。MAX+PLUS提供的编译软件,只需简单的操作,如参数选择、指定功能等,就可进行网表转换、逻辑分割和布线布局。(3) 项目校验MAX+PLUS提供的设计校验过程包括仿真和定时分析,项目编译后,为确保设计无误,要再用专用软件进行仿真。如果发现了错误,则应对设计输入进行部分修改直至无误。(4) 器件编程MAX+PLUS通过编程器(Device Programmer)将编译器生成的编程文件编程或配置到Altera CPLD器件中,然后加入实际激励信号进行测试,检查是否达到了设计要求?Altera公司器件的编程方法有许多种,可通过编程器、JTAG在系统编程及Altera在线配置等方式进行。在设计过程中,如果出现错误,则需要重新回到设计输入阶段,改正错误或调整电路后重复上述过程。2.2.4 设计流程使用MAX+PLUS进行可编程逻辑器件开发主要包括4个阶段:设计输入、编译处理、验证(包括功能仿真、时序仿真、和定时分析)和器件编程,流程如图2. 1所示:设计要求设计输入编译处理验证器件编程器件测试系统产品设计修改图2.1 设计流程图第三章 系统分析3.1数字频率计的设计任务及要求设计一个四位十进制的数字频率计,要求具有以下功能:(1) 测量范围:1Hz10kHz。(2) 测量误差1%。(3) 响应时间15s。(4) 显示时间不少于1s。(5) 具有记忆显示的功能,即在测量的过程中不刷新数据,等数据过程结束后才显示测量结果,给出待测信号的频率值,并保存到下一次测量结束。3.2 模块的划分根据系统设计要求,系统设计采用自顶向下的设计方法,系统的组成框图如图3. 1所示,包括时基产生与测频时序控制电路模块,以及待测信号脉冲计数电路模块和锁存与译码显示控制电路模块。时基产生与测频时序控制电路待测信号脉冲计数电路锁存与译码显示电路ENCLRLOCKq0:15z10:6z20:6z30:6z40:6待测信号F_IN标准时钟CLK图3.1 数字频率计的组成框图(1) 时基产生与测频时序控制电路模块时基产生与测频时序控制电路的主要产生计数允许信号EN、清零信号CCLR和锁存信号LOCK。(2) 待测信号脉冲计数电路模块待测信号脉冲计数电路是对待测脉冲信号的频率进行测量,它可由4个十进制加法计数器组成,其中EN为计数选通控制信号,CLR为计数器清零信号。在计数器清零信号CLR清零后,当计数选通控制信号EN有效时,开始对待测信号进行计数。如果计数选通控制信号EN的宽度为1s,那么计数结果就为待测信号的频率;如果计数选通信号EN的宽度为100ms,那么待测信号的频率等于计数结果10。(3) 锁存与译码显示控制电路模块锁存与译码显示控制电路用于实现记忆显示,在测量过程中不刷新新的数据,直到测量过程结束后,锁存显示测量结果,并且保存到下一次测量结束。锁存与译码显示电路的功能是对四位BCD码进行锁存,并转换为对应的4组七段码,用于驱动数码管。3.3设计分析采用VHDL语言设计一个复杂的电路系统,运用自顶向下的设计思想,将系统按功能逐层分割的层次化设计方法进行设计。在顶层对内部各功能块的连接关系和对外的接口关系进行了描述,而功能块的逻辑功能和具体实现形式则由下一层模块来描述。各功能模块采用VHDL语言来描述。第四章 各功能模块基于VHDL的设计4.1 时基产生与测频时序控制电路模块的VHDL源程序程序ctrl.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CTRL IS PORT(CLK: IN STD_LOGIC; -系统时钟 LOCK: OUT STD_LOGIC; -锁存信号 EN: OUT STD_LOGIC; -计数允许信号 CLR: OUT STD_LOGIC); -清零信号END;ARCHITECTURE ART OF CTRL IS SIGNAL Q: STD_LOGIC_VECTOR(3 DOWNTO 0); -定义变量BEGINPROCESS(CLK) BEGIN IF(CLKEVENT AND CLK=1)THEN -检测时钟上升沿 IF Q=1111THEN Q=0000; -计数大于15,清零 ELSE Q=Q+1; -允许计数 END IF; END IF; EN=NOT Q(3); LOCK=Q(3) AND NOT(Q(2) AND Q(1); CLR=Q(3) AND Q(2) AND NOT(Q(1); END PROCESS;END ART; 程序主要讲述了由时钟信号产生计数允许信号、清零信号和锁存信号,而且限定了响应时间为不超过15s。4.2 待测信号脉冲计数电路模块的VHDL源程序4.2.1 十进制加法计数器的VHDL源程序程序cb10.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CB10 IS PORT(CLK,EN,CLR: IN STD_LOGIC; COUNT10: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); -计数输信号END CB10;ARCHITECTURE ART OF CB10 IS -结构体 BEGIN PROCESS(CLK,CLR,EN) BEGIN IF CLR=1 THEN COUNT10=0000; -计数器清零 ELSIF RISING_EDGE(CLK) THEN -检测时钟上升沿 IF(EN=1) THEN -检测是否允许计数 IF COUNT10=1001 THEN COUNT10=0000; -计数值满9清零 ELSE COUNT10=COUNT10+1; -允许计数 END IF; END IF; END IF; END PROCESS;END ART; 程序主要讲述了十进制加法计数器的使用,在符合了一定的标准以后十进制的使用,在计数器满9后清零。4.2.2待测信号脉冲计数器的VHDL源程序程序count.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT IS PORT(CLK: IN STD_LOGIC; -待测时钟信号 EN: IN STD_LOGIC; -计数选通控制信号 CLR: IN STD_LOGIC; -计数器清零信号 QA,QB,QC,QD: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); -结果输出信号END;ARCHITECTURE ART OF COUNT IS COMPONENT CB10 -元件CB10引用说明语句 PORT(CLK,EN,CLR: IN STD_LOGIC; COUNT10: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); -计数输出信号 END COMPONENT; SIGNAL CLK2: STD_LOGIC; SIGNAL CLK3: STD_LOGIC; SIGNAL CLK4: STD_LOGIC; BEGIN CLK2=NOT QA(3); CLK3=NOT QB(3); CLK4=NOT QC(3); U1:CB10 PORT MAP(CLK,EN,CLR,QA); -元件引用例示 U2:CB10 PORT MAP(CLK2,EN,CLR,QB); -元件引用例示 U3:CB10 PORT MAP(CLK3,EN,CLR,QC); -元件引用例示 U4:CB10 PORT MAP(CLK4,EN,CLR,QD); -元件引用例示END ART;4.3 锁存与译码显示控制电路模块的VHDL源程序4.3.1 译码显示电路的VHDL源程序程序bcd7.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY BCD7 IS PORT(BCD: IN STD_LOGIC_VECTOR(3 DOWNTO 0); -BCD输入信号 LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -七段译码输出信号END;ARCHITECTURE ART OF BCD7 IS BEGIN LED=0111111 WHEN BCD=0000 ELSE -对照七段字形显示译码器真值表 0000110 WHEN BCD=0001 ELSE 1011011 WHEN BCD=0010 ELSE 1001111 WHEN BCD=0011 ELSE 1100110 WHEN BCD=0100 ELSE 1101101 WHEN BCD=0101 ELSE 1111101 WHEN BCD=0110 ELSE 0000111 WHEN BCD=0111 ELSE 1111111 WHEN BCD=1000 ELSE 1101111 WHEN BCD=1001 ELSE 0000000;END ART; 程序主要讲述了七段译码器的显示问题,对应的给出了信号输入过程中七段译码器的各种显示。4.3.2 锁存与译码显示控制模块的VHDL源程序程序lock.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LOCK IS PORT(LOCK: IN STD_LOGIC; QA,QB,QC,QD: IN STD_LOGIC_VECTOR(3 DOWNTO 0); LEDA,LEDB,LEDC,LEDD: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-频率计数输出END;ARCHITECTURE ART OF LOCK IS SIGNAL QAL,QBL,QCL,QDL: STD_LOGIC_VECTOR(3 DOWNTO 0); COMPONENT BCD7 -元件BCD7引用说明语句 PORT(BCD: IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); END COMPONENT; BEGIN PROCESS(LOCK) BEGIN IF(LOCKEVENT AND LOCK=1)THEN -检测时钟上升沿 QAL=QA; QBL=QB; QCL=QC; QDL=QD; END IF; END PROCESS; U0: BCD7 PORT MAP(QAL,LEDA); -元件引用例示 U1: BCD7 PORT MAP(QBL,LEDB); -元件引用例示 U2: BCD7 PORT MAP(QCL,LEDC); -元件引用例示 U3: BCD7 PORT MAP(QDL,LEDD); -元件引用例示END ART; 程序主要讲述了调用七段译码器的显示,将输入的信号经过译码之后在七段译码器上进行显示。4.4 顶层电路的VHDL源程序程序pinlvji.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY PINLVJI IS PORT(F_IN,CLK: IN STD_LOGIC; ENT,LOCKT,CLRT: BUFFER STD_LOGIC; Z1,Z2,Z3,Z4: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END PINLVJI;ARCHITECTURE ART OF PINLVJI IS SIGNAL ENS,LOCKS,CLRS: STD_LOGIC; SIGNAL QAS,QBS,QCS,QDS: STD_LOGIC_VECTOR(3 DOWNTO 0);COMPONENT CTRL -元件CTRL引用说明语句 PORT(CLK: IN STD_LOGIC; EN,LOCK,CLR: OUT STD_LOGIC);END COMPONENT;COMPONENT COUNT -元件COUNT引用说明语句 PORT(CLK,EN,CLR: IN STD_LOGIC; QA,QB,QC,QD: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COMPONENT;COMPONENT LOCK -元件LOCK引用说明语句 PORT(LOCK: IN STD_LOGIC; QA,QB,QC,QD: IN STD_LOGIC_VECTOR(3 DOWNTO 0); LEDA,LEDB,LEDC,LEDD: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END COMPONENT; BEGIN ENT=ENS; LOCKT=LOCKS; CLRT=CLRS; U1:CTRL PORT MAP(CLK,ENS,LOCKS,CLRS); -元件引用例示 U2:COUNT PORT MAP(F_IN,ENS,CLRS,QAS,QBS,QCS,QDS); -元件引用例示 U3:LOCK PORT MAP(LOCKS,Q

温馨提示

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

评论

0/150

提交评论