




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、【标题】基于VHDL的数字频率计设计 【作者】冉合高 【关键词】VHDL 硬件描述语言 数字频率计 设计 仿真 硬件测试 【指导老师】李金田 【专业】电子信息科学与技术 【正文】1 绪论1.1 数字频率计设计现状随着电子技术的飞速开展,各类分立电子元件及其所构成的相关功能单元,已逐步被功能更强大、性能更稳定、使用更方便的集成芯片所取代。由集成芯片和一些外围电路构成的各种自动控制、自动测量、自动显示电路普及各种电子产品和设备。数字系统和数字设备已广泛应用于各个领域,更
2、新换代速度可谓日新月异。 在电子系统非常广泛的应用领域内,到处可以见到处理离散信息的数字电路。供消费用的微波炉和电视、先进的工业控制系统、空间通讯系统、交通控制雷达系统、医院急救系统等在设计过程中无一不用到数字技术1。数字电路制造工业的进步,使得系统设计人员能在更小的空间内实现更多的功能,从而提高系统可靠性和速度。数字频率计是数字电路中的一个典型应用2,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着复杂可编程逻辑器件CPLD的广泛应用,以EDA工具作为开发手段,运用VHDL语言,将使整个系统大大简化,提高整体的性能和可靠性。数字频率计
3、是现代通信测量设备系统中不可缺少的测量仪器,不但要求电路能产生频率准确及稳定度高的信号,而且还能方便的改变频率。 数字频率计主要实现方法有直接式、锁相式、直接数字式3和混合式四种。直接式的优点是速度快、相位噪声低,但结构复杂、杂散多,一般只应用在地面雷达中;锁相式的优点是实现相位同步的自动控制,制作频率高,功耗低,容易实现系列化、小型化、模块化和工程化;直接数字式的优点是电路稳定、精度高、容易实现系列化、小型化、模块化和工程化。随着单片锁相式数字频率计的开展,锁相式和数字式容易实现系列化、小型化、模块化和工程化,性能也越来越好,已逐步成为两种最为典型,用处最为广泛的数字频率计。1.2
4、 硬件描述语言综述1.2.1 硬件描述语言的简述硬件描述语言是一种用形式化方法描述数字电路和系统的语言4。利用这种语言,数字电路系统的设计可以从上层到下层从抽象到具体逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。以电子设计自动化EDA工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表,再用专用集成电路ASIC或现场可编程门阵列FPGA自动布局布线工具,把网表转换为要实现的具体电路布线结构。目前,这种高层次(high-level-design)的方法已被广泛采用。据统计,目前在美国硅谷约有90%以
5、上的ASIC和FPGA采用硬件描述语言进行设计。 硬件描述语言的开展至今已有近30年的历史了,并成功地应用于设计的各个阶段:建模、仿真、验证和综合等。到20世纪80年代,已出现了上百种硬件描述语言,对设计自动化曾起到了极大的促进和推动作用。但是,这些语言一般各自面向特定的设计领域和层次,而且众多的语言使用户无所适从。因此,急需一种面向设计的多领域、多层次并得到普遍认同的标准硬件描述语言。20世纪80年代后期,VHDL和Verilog HDL语言适应了这种趋势的要求,先后成为IEEE标准。 现在,随着系统级FPGA以及系统芯片的出现,软硬件协调设计和系统设计变得越来越重要。传
6、统意义上的硬件设计越来越倾向于与系统设计和软件设计结合。硬件描述语言为适应新的情况迅速开展,出现了很多新的硬件描述语言,像Superlog、SystemC、Cynlib C+等等。究竟选择哪种语言进行设计,整个业界正在进行剧烈的讨论。因此,完全有必要在这方面作一些比较研究,为EDA设计做一些有意义的工作,也为开展我们未来的芯片设计技术打好根底。1.2.2 硬件描述语言的开展历程VHDL 早在1980年,由于美国军事工业需要描述电子系统的方法,美国国防部开始进行VHDL的开发。1987年,由IEEEInstitute of Electrical and Electro- ni
7、cs Engineers将VHDL制定为标准。参考手册为IEEE VHDL语言参考手册标准草案1076/B版,于1987年批准,称为IEEE 1076-1987。应当注意,起初VHDL只是作为系统标准的一个标准,而不是为设计而制定的。第二个版本是在1993年制定的,称为VHDL-93,增加了一些新的命令和属性。 虽然有“VHDL是一个4亿美元的错误这样的说法,但VHDL毕竟是1995年以前唯一制订为标准的硬件描述语言,这是它不争的事实和优势。同时它确实比较麻烦,而且其综合库至今也没有标准化,不具有晶体管开关级的描述能力和模拟设计的描述能力。目前的看法是,对于特大型的系统级数字电路设计
8、,VHDL是较为适宜的。 实质上,在底层的VHDL设计环境是由Verilog HDL描述的器件库支持的5,因此,它们之间的互操作性十分重要。目前,Verilog和VDHL的两个国际组织OVI、VI正在筹划这一工作,准备成立专门的工作组来协调VHDL和Verilog HDL语言的互操作性。OVI也支持不需要翻译,由VHDL到Verilog的自由表达。Verilog HDL是在1983年,由GDAGateWay Design Automation公司的Phil Moorby首创的。Phil Moorby后来成为Verilog-XL的主要设计者和Cadence公司的第一合伙人。在19841
9、985年,Phil Moorby设计出了第一个名为Verilog-XL的仿真器。1986年,他对Verilog HDL的开展又作出了另一个巨大的奉献:提出了用于快速门级仿真的XL算法。随着Verilog-XL算法的成功,Verilog HDL语言得到迅速开展。1989年,Cadence公司收购了GDA公司,Verilog HDL语言成为Cadence公司的私有财产。1990年,Cadence公司决定公开Verilog HDL语言,于是成立了OVIOpen Verilog International组织,负责促进Verilog HDL语言的开展。基于Verilog HDL的优越性,IEEE于19
10、95年制定了Verilog HDL的IEEE标准,即Verilog HDL 1364-1995。2001年发布了Verilog HDL 1364-2001标准。在这个标准中,参加了Verilog HDL-A标准,使Verilog有了模拟设计描述的能力。Superlog 开发一种新的硬件设计语言,总是有些冒险,而且未必能够利用原来对硬件开发的经验。能不能在原有硬件描述语言的根底上,结合高级语言C、C+甚至Java等语言的特点,进行扩展,到达一种新的系统级设计语言标准呢? Superlog就是在这样的背景下研制开发的系统级硬件描述语言6。Verilog语言的首创者Phil Moorby和
11、Peter Flake等硬件描述语言专家,在一家叫Co-Design Automation的EDA公司进行合作,开始对Verilog进行扩展研究。1999年,Co-Design公司发布了SUPERLOGTM系统设计语言,同时发布了两个开发工具:SYSTEMSIMTM和SYSTEMEXTM。一个用于系统级开发,一个用于高级验证。2001年,Co-Design公司向电子产业标准化组织Accellera发布了SUPERLOG扩展综合子集ESS,这样它就可以在今天Verilog语言的RTL级综合子集的根底上,提供更多级别的硬件综合抽象级,为各种系统级的EDA软件工具所利用。至今为止,已超过15家芯片设
12、计公司用Superlog来进行芯片设计和硬件开发。Superlog是一种具有良好前景的系统级硬件描述语言。但是不久前,由于整个IT产业的滑坡,EDA公司进行大的整合,Co-Design公司被Synopsys公司兼并,形势又变得扑朔迷离。 SystemC 随着半导体技术的迅猛开展,SoC已经成为当今集成电路设计的开展方向7。在系统芯片的各个设计中,像系统定义、软硬件划分、设计实现等,集成电路设计界一直在考虑如何满足SoC的设计要求,一直在寻找一种能同时实现较高层次的软件和硬件描述的系统级设计语言。 SystemC正是在这种情况下,由Synopsys公司和CoWare公司积极响
13、应目前各方对系统级设计语言的需求而合作开发的。1999年9月27日,40多家世界著名的EDA公司、IP公司、半导体公司和嵌入式软件公司宣布成立“开放式SystemC联盟。著名公司Cadence也于2001年参加了SystemC联盟。SystemC从1999年9月联盟建立初期的0.9版本开始更新,从1.0版到1.1版,一直到2001年10月推出了最新的2.0版。1.3 研究背景及意义 数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。在数字电路中,频率计属于时序电路,
14、它主要由具有记忆功能的触发器构成。在计算机及各种数字仪表中,都得到了广泛的应用。在CMOS电路系列产品中,频率计是用量最大、品种很多的产品。 本文采用的是一种8 b数字频率计测频系统,能够用十进制数码显示被测信号的频率的数字式频率计,其设计原理简单,电路实现方便,电路稳定、精度高,大大的缩短了生产周期,具有体积小、可靠性高、功耗低等特点。1.4 研究内容 本文以VHDL语言通过Quartus II软件设计的一个能测量方波信号频率的数字频率计,测量结果通过计数器计数,由锁存器保存计数结果,用数码现实管显示其结果。频率测量范围为1HZ16MHZ,输入信号电压为50mv
15、5v,测量精度为10 Hz。 1.5 本章小结 本章主要简述了数字频率计的开展现状,硬件描述语言的开展过程和数字频率计的研究背景及其研究意义,最后简述了本文的设计指标。2 数字频率计的设计2.1设计框图数字频率计主要由五局部组成:分频模块、测频控制模块、锁存模块以及计数模块、译码显示模块。原理框图如图2-1: 图2-1 原理框图信号整型电路:对被测信号进行放大整形处理; 分频模块: 把标准时基信号分频得到闸门信号;测频控制信号模块:将闸门信号信号整形后,产生标准矩形波,送入计数器;计数模块:对输入的矩形波进行计数,
16、并将结果送到锁存器中;锁存模块:保存计数器输出结果,保证系统稳定显示数据;译码显示模块:将锁存器输出的二进制计数结果转换成相应能够在七段数码显示管显示的十进制结果,在数码显示管上可以看到频率测量结果。2.2 方案选择和论证2.2.1 整形放大电路被测信号经过LM3900组成的两级运算放大放大信号清晰无杂波,然后再经过两级由CD40106 组成的施密特电路整形,可以得到幅度为5V 的标准方波信号,然后送入计数器。此设计做到了既可以输入微弱到30mV 的弱信号,又可以输入50V 强信号;既可以输入低到1Hz 的低频信号,又可以输
17、入高频信号,这是很多数字频率计很难做到的。如图2.2所示 图2.2 整形放大电路2.2.2 频率测量方案方案一:采用测周期法。需要有标准信号的频率fs,在待测信号的一个周期Tx内,记录标准信号的周期数Ns,那么被测信号的频率为:fx=fs/Ns 。这种方法的计数值会产生 1个脉冲误差,并且测试精度与计数器中记录的数值Ns有关。为了保证测试精度,测周期法仅适用于低频信号的测量。 图2.3 测周期法原理图方案二:采用测频法。测频法8就是在确定的闸门时间Tw内,记录被测信号的变化周期数或脉冲个数Nx,那么被测信号的频率为:fx=Nx/Tw。
18、这种方法会产生 1个误差,并且测试精度与计数器中记录的数值Nx有关,虽然精度降低,但能测量的最大频率较高,且不会产生溢出。 图2.4 测频法原理图本文要求测量频率不是很高,精度也不是很高,所以采用方案二测频法。2.2.3 周期测量方案方案一 直接周期测量法:用被测信号经放大整形后形成的方波信号直接控制计数门控电路,使主门开放时间等于信号周期Tx,时标为Ts的脉冲在主门开放时间进入计数器。设在Tx期间计数值为N,可以根据以下公式来算得被测信号周期:Tx=N*Ts经误差分析,可得结论:用该测量法测量时,被测信号的频率越高,测量误差越大。采用对多个周期进行计数
19、取平均值的方法虽可提高精度,但如果用它测量0.1Hz信号时,每测一次至少要等待1000s,显然是不可取的。方案二 等精度周期测量法:该方法在测量电路和测量精度上与直接周期测量完全相同,只是在进行计算时公式不同,在周期1/T代换频率f即可,其计算公式为Tx=Ts*Ns/Nx从降低电路的复杂度及提高精度特别是高频上考虑,适用范围更广泛。显然,方案二远好于方案一。因此,选用第二种方案等精度周期测量法。2.2.4 脉宽测量方案在进行脉冲宽度测量9时,首先经信号处理电路进行处理,限制只有信号的50%幅度及其以上局部才能输入数字测量局部。脉冲边沿被处理得非常陡峭,然后送入测量计数器进行
20、测量。测量电路在检测到脉冲信号的上升沿时翻开计数器,在下降沿是关闭计数器,设脉冲宽度为Twx,计算公式为Twx=Nx/fs。2.2.5 占空比测量方案测一次脉冲信号的脉宽,记录其值为Twx1,然后将信号反相,再测一次脉宽并记录其值为Twx1,然后将信号反相,再测一次脉宽并记录起值为Twx2,通过下式计算占空比:占空比=Twx1/Twx1+Twx2*100%2.3 本章小结本章主要介绍了数字频率计的原理框图,以及各种测量方案的选择与论证,加强了对电路知识的掌握。明确了设计思路,为软件设计奠定了根底。3软件设计3.1 工作原理工作原理是:当系统正常工作时,脉冲发生器提
21、供标准的1HZ输入信号,经过测频控制信号发生器进行信号的变换,产生计数信号。测量信号时,将标准信号经分频所得的闸门信号通过信号整形电路,产生矩形波送入计数模块。计数模块对输入的矩形波进行计数,并将计数结果送入锁存器中,锁存器的作用主要是为了保持计数结果及其稳定显示数据。显示译码驱动电路将锁存器输出的二进制计数结果转换成相应的能够在七段数码显示管显示频率测量结果。3.2 设计流程Altera公司的QuartusII软件是一个完全集成化,易学易用的可编程逻辑器件设计和开发系统,它提供一种真正与结构无关的可编程逻辑设计环境。它所提供的灵活性和高效性是无可比较定,其丰富的图形界面,辅之以完整
22、的可即时访问的在线文档,使设计人员能够轻松愉快地掌握和使用该软件。该软件支持灵活多样的输入方式:原理图输入,硬件描述语言输入,波形输入以及层次设计输入。QuartusII的设计输入处理和校验功能全部集成在统一的开发环境下,这样可以加快动态调试进程。它提供丰富的库单元供设计者使用,包括74系列的全部器件,多种特殊的逻辑宏功能macro-function和参数化功能模块library of paramerterized module,LPM,但更为重要的是quartusII 还提供多种编辑输入法,包括图形输入法,VHDL,VerilogHDL和AHDL的文本输入法,符号编辑输入法,以及内
23、存编辑输入法等。Quartus II的设计流程如图4.1所示: 图4.1 quartus II设计流程此外,Quartus II 软件为设计流程的每个阶段提供Quartus II 图形用户界面、EDA 工具界面以及命令行界面。可以在整个流程中只使用这些界面中的一个,也可以在设计流程的不同阶段使用不同界面。显示首次启动Quartus II 软件时出现的Quartus II 图形用户界面。Quartus II 图形用户界面如图4.2所示 图4.2 Quartu
24、s II 图形用户界面3.3 设计方法和规划在建立新设计时,应重视考虑Quartus II软件提供的设计方法,包括自上而下或自下而上的渐进式设计流程以及基于模块的设计流程。不管是否使用EDA设计输入和综合工具,都可以使用这些设计流程。Quartus II 软件同时支持自上而下和自下而上的编译流程10。在自上而下的编译过程中,一个设计人员或者工程负责人在软件中对整个设计进行编译。不同的设计人员或者IP 提供者设计并验证设计的不同局部,工程负责人在设计实体完成后将其参加到工程中。工程负责人从整体上编译并优化顶层工程。设计中完成的局部得到适配结果,当设计的其他
25、局部改动时,其性能保持不变。自下而上的设计流程中,每个设计人员在各自的工程中对其设计进行优化后,将每一个底层工程集成到一个顶层工程中。渐进式编译提供导出和导入功能来实现这种设计方法。作为底层模块设计人员,您可以针对他们的设计,导出优化后的网表和一组分配( 例如LogicLock 区域)。然后,工程负责人将每一个设计模块作为设计分区导入到顶层工程中。在这种情况下,工程负责人必须指导底层模块设计人员,保证每一分区使用适当的器件资源。在完整的渐进式编译流程中,您应该认识到,如果以前出于保持性能不变的原因而采用自下而上的方法,那么现在可以采用自上而下方法来到达同样的目的。这一功能之
26、所以重要是出于两方面的原因。第一,自上而下流程要比对应的自下而上流程执行起来简单一些。例如,不需要导入和导出底层设计。第二,自上而下的方法为设计软件提供整个设计的信息,因此,可以进行全局优化。在自下而上的设计方法中,软件在编译每一个底层分区时,并不知道顶层设计其他分区的情况,因此,必须进行资源均衡和时序预算。自上而下渐进式编译设计流程重新使用以前的编译结果,确保只对修改正的设计重新编译,因此能够保持设计性能不变,节省编译时间。自上而下的渐进式编译流程在处理其他设计分区时,可以只修改设计中关键单元的布局,也可以只对设计的指定局部限定布局,使编译器能够自动优化设计的其余局部,从而改良了时序。在编译
27、过程中,编译器将综合和适配结果保存在工程数据库中。第一次编译之后,如果对设计做进一步的修改,只有改动过的分区需要重新编译。完成设计修改后,您可以只进行渐进式综合,节省编译时间,也可以进行完整的渐进式编译,不但能够显著节省编译时间,而且还可以保持性能不变。在这两种情况中,Quartus II 软件为所选的任务合并所有的分区。由于渐进式编译流程能够防止编译器跨分区边界进行优化,因此编译器不会象常规编译那样对面积和时序进行大量优化。为获得最正确的面积和时序结果,建议您记录设计分区的输入和输出,尽量将设计分区数量控制在合理范围内,防止跨分区边界建立过多的关键路径,不要建立太小的分区,如数量少
28、于1000的逻辑单元和自适应逻辑模块(ALM)分区。3.4 模块电路程序设计3.4.1 分频模块程序设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FRE_DIVEDE IS PORT(CLK_1K:IN STD_LOGIC; CLK_1HZ:OUT STD_LOGIC);END FRE_DIVEDE;ARCHITECTURE RTL OF FRE_DIVEDE IS
29、; SIGNAL CNT1:INTEGER RANGE 0 TO 2048;BEGIN PROCESS(CLK_1K)BEGIN IF CLK_1K 'EVENT AND CLK_1K='1' THEN IF CNT1=2047 THEN CNT1<=0; CLK_1HZ<='1&
30、#39; ELSE CNT1<=CNT1+1; CLK_1HZ<='0' END IF; END IF;END PROCESS;END RTL;由源程序仿真,得到仿真波形,如图3.1所示:其中 CLK_1K为外接输入信号,经分频所的CLK_1HZ的输出信号。 &
31、#160; 图3.1 分频模块仿真波形3.4.2 测频控制信号模块程序设计LIBRARY IEEE;-测频控制信号模块ZPKZHUSE IEEE.STD_LOGIC_1164.ALL USE IEEE.STD_LOGIC_UNSIGNED.ALL ENTITY ZPKZH ISPORT (CLK: IN STD_LOGIC
32、;-1HZJSEN: OUT STD_LOGIC; -计数器时钟使能CLR_JSH:OUT STD_LOGIC; -计数器清零SCXH:OUT STD_LOGIC) -输出锁存信号END ZPKZH;ARCHITECTURE BEHAV OF ZPKZH ISSIGNAL DIV2CLK:STD_LOGIC;BEGINPROCESS(CLK)BEGINIF CLK'EVENT AND CLK= '
33、1'THEN -1HZ时钟2分频DIV2CLK<=NOT DIV2CLK;END IF;END PROCESS;PROCESS(CLK,DIV2CLK)BEGINIF CLK='1' AND DIV2CLK='1' THENCLR_JSH<='1'
34、; -产生计数器清零信号ELSE CLR_JSH<='0'END IF;END PROCESS;SCXH<= NOT DIV2CLK; JSEN<= DIV2CLK;END BEHAV;经源程序仿真波形,得到如3.1图所示波形:(整个仿真时间区域设为2us,时间轴周期为100ns) 其中控制信号时钟CLK的频率取1 Hz,而信号JSEN的脉宽恰好为1 s,可以用作闸门信号。此时,根据测频的时序要求,可得出信号SCXH和CLR_JSH的逻辑描述。在计数完成后,即计数使能信号JSEN在1 s的高电平后,利用其反相值的上跳沿
35、产生一个锁存信号SCXH,0.5 s后,CLR_JSH产生一个清零信号上跳沿。 图3.2 测频控制信号模块波形仿真图3.4.3 十进制计数模块程序设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10B ISPORT (CLK : IN STD_LOGIC; -定义计数信号RST: IN STD_LOGIC;
36、160; -定义复位信号EN: IN STD_LOGIC; -定义使能信号CQ:OUT STD_LOGIC_VECTOR(31 DOWNTO 0); -定义计数输出信号END CNT10B;ARCHITECTURE BEHAV OF CNT10B IS
37、60; -结构体SIGNAL CQI :STD_LOGIC_VECTOR(31 DOWNTO 0) BEGINPROCESS (CLK, RST, EN )BEGINIF RST ='1' THEN CQI<=(OTHERS=>'0'); -计数器复位ELSIF CLK'E
38、VENT AND CLK='1' THEN -检测时钟上升沿IF EN ='1' THEN CQI<=CQI+1; -允许计数END IF;END IF;END PROCE
39、SS;CQ<=CQI;END BEHAV;经源程序仿真,得到以下的仿真波形,如3.3图所示:其中此十进制计数器的特殊之处是,有一时钟使能输入端EN,用于锁定计数值。当高电平时计数允许,低电平时禁止计数。 图3.3 八位十进制计数模块波形仿真图3.4.4 32位锁存模块程序设计LIBRARY IEEE;USE IEEE. STD_LOGIC_1164. ALL ENTITY SCQ32B ISPORT(SCXH: IN STD_LOGIC;DIN: IN STD_LOGIC_VECTOR(31 DOWNTO 0) DOUT:OUT STD
40、_LOGIC_VECTOR(31 DOWNTO 0) ) END SCQ32B ARCHITECTURE BEHAV OF SCQ32B ISBEGINPROCESS(SCXH ,DIN)BEGINIF SCXH' EVENT AND SCXH ='1' THEN DOUT<=DIN;END IF;END PROCESS;END BEHAV;由锁存模块源程序得到仿真波形如图3.4所示:其中设置锁存器的好处是,显示的数据稳定,不会由于周期性的清零信号而不断闪烁。假设已有32位BCD码存在于此模块的输入口,在信号SCX
41、H的上升沿后即被锁存到存放器REG32B的内部,并由REG32B的输出端输出,然后由实验板上的7段译码器译成能在数码管上显示输出的相对应的数值。 图3.4 锁存模块仿真波形3.4.5 译码显示模块程序设计LIBRARY IEEE; -7 段显示译码器LED7USE IEEE. STD_LOGIC_1164. ALL USE IEEE. STD_LOGIC_UNSIGNED. ALL ENTITY LED7 ISPORT(SIN: IN STD_LOGIC_VECTOR(3 DOWNTO 0) D:OUT
42、 STD_LOGIC_VECTOR(3 DOWNTO 0) ) END LED7;ARCHITECTURE BEHAV OF LED7 ISBEGINPROCESS (SIN)BEGINCASE SIN ISWHEN"0000"=> D<="0000"WHEN"0001"=> D<="0001"WHEN"0010"=> D<="0010"WHEN"001
43、1"=> D<="0011"WHEN"0100"=> D<="0100"WHEN"0101"=> D<="0101"WHEN"0110"=> D<="0110"WHEN"0111"=> D<="0111"WHEN"1000"=> D<="1000"WHEN"1001"=>
44、 D<="1001"WHEN"1010"=> D<="1010"WHEN"1011"=> D<="1011"WHEN"1100"=> D<="1100"WHEN"1101"=> D<="1101"WHEN"1110"=> D<="1110"WHEN"1111"=> D<="
45、;1111"WHEN OTHERS => D<="0000"END CASE;END PROCESS;END BEHAV;经源程序仿真,得到波形仿真如图3.4所示:其中sin为输入信号,把锁存器中结果送入显示电路中,由DOUT输出结果并显示出来。 图3.4 7段显示译码模块仿真波形图3.4.6 数字频率计顶层源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FREQTEST ISPORT (CLK1kHZ:IN STD_LOGIC;FSI
46、N:IN STD_LOGIC;DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0);AA:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) BB:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) CC:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) DD:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) EE:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) FF:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
47、GG:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) HH:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ) END FREQTEST;ARCHITECTURE STRUC OF FREQTEST ISCOMPONENT ZPKZHPORT(CLK:IN STD_LOGIC;-1hzJSEN: OUT STD_LOGIC;-计数器时钟使能CLR_JSH:OUT STD_LOGIC;-计数器清零SCXH:OUT STD_LOGIC) -输出锁存信号END COMPONENT COMPONENT FRE_DIV
48、EDEPORT(CLK_1K:IN STD_LOGIC; CLK_1HZ:OUT STD_LOGIC);END COMPONENT;COMPONENT CNT10BPORT (CLK : IN STD_LOGIC;-定义计数信号RST: IN STD_LOGIC; -定义复位信号EN: IN STD_LOGIC; -定义使能信号CQ:OUT STD_LOGIC_VECTOR(31 DOWNTO 0);-定义计数输出信号END COMPONENT COMPONENT SCQ32BPORT(SCXH: IN ST
49、D_LOGIC;DIN: IN STD_LOGIC_VECTOR(31 DOWNTO 0) DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ) END COMPONENT COMPONENT LED7PORT(SIN: IN STD_LOGIC_VECTOR(3 DOWNTO 0) D:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ) END COMPONENT;SIGNAL TSTEN1:STD_LOGIC;SIGNAL CLR_CNT1:STD_LOGIC;SIGNAL
50、LOAD1:STD_LOGIC;SIGNAL CLOCK5:STD_LOGIC;SIGNAL DTO1:STD_LOGIC_VECTOR(31 DOWNTO 0);SIGNAL CARRY_OUT1:STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL DIN:STD_LOGIC_VECTOR(31 DOWNTO 0) SIGNAL DOUT1 :STD_LOGIC_VECTOR(31 DOWNTO 0) BEGINU1:ZPKZH PORT MAP (CLK=>clock5,JSEN=>TSTEN1,CLR_JSH=>
51、;CLR_CNT1,SCXH=>LOAD1);U2:SCQ32B PORT MAP (SCXH=>LOAD1,DIN=>DTO1,DOUT=>DOUT1);U3:CNT10B PORT MAP (CLK=>fsin,RST=>CLR_CNT1,EN=>TSTEN1,CQ=>DTO1);U4:FRE_DIVEDE PORT MAP(CLK_1K=>CLK1KHZ,CLK_1HZ=>CLOCK5);U5 :LED7 PORT MAP(SIN=> DOUT1(31 DOWNTO 28) ,D=&
52、gt; AA) U6 :LED7 PORT MAP(SIN=> DOUT1(27 DOWNTO 24) ,D=> BB) U7 :LED7 PORT MAP(SIN=> DOUT1(23 DOWNTO 20) ,D=> CC) U8 :LED7 PORT MAP(SIN=> DOUT1(19 DOWNTO 16) ,D=> DD) U9 :LED7 PORT MAP(SIN=> DOUT1(15 DOWNTO 12) ,D
53、=> EE) U10 :LED7 PORT MAP(SIN=> DOUT1(11 DOWNTO 8) ,D=> FF) U11 :LED7 PORT MAP(SIN=> DOUT1(7 DOWNTO 4) ,D=> GG) U12 :LED7 PORT MAP(SIN=> DOUT1(3 DOWNTO 0) ,D=> HH) END STRUC;由顶层源程序仿真,得到仿真波形如图3.5所示:测量频率结果为1024HZ,其中CLK为1HZ输入信号,FSIN
54、为计数脉冲,AA,BB,CC,DD,EE,FF,GG,HH为八位数字频率计显示信号,HH为最低位,AA位最高位。该波形能显示1HZ16MHZ频率。 图3.5 频率计顶层文件波形由顶层源程序生成的RTL电路图如图3.6所示: 图3.3 数字频率计顶层电路图3.5 本章小结本章主要介绍了用软件编写程序对数字频率计进行设计。首先介绍了应用QuartusII软件的设计流程及其设计方法,其次用VHDL语言编写数字频率计各模块程序及其波形仿真,得出最终设计电路图。通过本章的学习对VHDL编程有了深入的了解,对学习一门语言有了一定的根
55、底。4 电路仿真4.1 设计输入一个Quartus II的工程由所有设计文件和设计有关的设置组成。设计者可以使用Quartus II的 Block Editor,Text Editor,MegaWizard Plug-InManager(Tools菜单)和EDA设计输入工具建立包括Altera宏功能模块,参数化模块库PLM函数和知识产权IP函数在内设计。其步骤如下:1编辑设计文件建立工作库目录文件夹为D:/200414012123/sheji/,以便设计工程工程的储存,任何一项设计都是一项工程PROJECT,都必须首先为此工程建立一个放置与此工程相关的所有文件的
56、文件夹,此文件夹D:/200414012123/sheji/将被EDA软件默认为工作库Word library,不同的设计工程最好放在不同的文件夹中,同一工程的所有文件都必须放在同一个文件夹中。输入源程序。翻开Quartus II,选择File|New命令。在New窗口中的Device design file中选择硬件设计文件类型为VHDL FILE,然后在VHDL文本编辑窗口输入频率计顶层VHDL源程序sheji,如图4.3所示。 图4.3 VHDL文本编辑窗口文件存盘。选择File|Save as命令,找到已设立的文件夹D:/200414012123/sheji/,存
57、盘文件名应与实体名一致。2建立工程工程使用New project wizardFile菜单建立新工程。编辑新工程时,可以为工程指定工作目录,指定工程名称以及指定顶层设计实体的名称。还可以指定要在工程中使用设计文件,其他源文件,用户库和EDA工具,以及目标器件或者让Quartus II软件自动选择。其步骤如下:选择File|New project wizard命令,在对话框中输入存盘路径,再按Next;将设计文件参加工程中,单击下方的NEXT按钮,在弹出的对话框中单击File中的文件,将与工程相关的所有VHDL文件参加工程中,再单击Next;选择仿真器和综合器。在弹出的对话框中选择仿真器和综合类
58、型,如果都选None,表示选Quartus II 中自带的仿真器和综合器,在单击Next;选择目标芯片。再单击Next;弹出“工程设置统计对话框。最后单击Finish,设置结束。4.2 编译综合QUARTUS II编译器是由一系列处理模块构成,这些模块负责对设计工程检错,逻辑综合,结构综合,输出结果的编译配置,以及时序分析。在这一过程中将设计工程适配到CPLD/FPGA器件中,同时产生多种用途的输出文件,如功能能够和时序仿真,器件编译的目标文件等。编译器首先从工程设计文件间的层次描述中提取信息,每个低层次文件中的错误信息工设计者排除。而后将这些层次构建一个结构化的,以网表文
59、件表达的电路原理图文件,并把各层次中所有文件结合成一个数据包,以便更有效地处理。编译前,设计者可以通过各种不同的设置,告诉编译器使用各种不同的综合和适配技术,以便提高设计工程的工作速度。在编译过程中以及编译完成后,设计者可从编译报告窗中获取详细的编译结果,以便及时调整设计方案。上面工作做好后,执行Quartus II主窗口的Processing菜单的Start compilation选项,启动全程编译,编译成功后的工程管理窗口如图4.4 所示。 图4.4 VHDL的全编译界面编译过程中应注意工程管理窗下方的Processing栏中的编译信息。如果编译
60、成功,可得到上图所示的界面,此界面左上角是工程管理窗口,显示了此工程的结构和使用的逻辑宏单元数,最下方是编译处理信息,中间Compilation report栏是编译报告工程选择菜单,单击其中各项可了解编译和分析结果,例如最右边的Flow summary栏,那么显示硬件耗用统计报告。4.3 仿真测试该工程编译通过后,必须对其功能和时序性能进行仿真测试,以验证设计结果是否满足设计要求。整个时序仿真测试流程一般有建立波形文件,输入信号节点,设置波形参数,编辑输入信号,波形文件存盘,波形仿真器和分析仿真波形等步骤。现给出.VWF文件方式的仿真测试流程。1建立仿真测试波形文件选择Quartu
61、s II 主窗口的File菜单的New选项,在弹出的文件类型编辑对话框中,选择Other files中的Vector weaveform file项,单击ok按钮,即出现如图4.5所示的波形文件编辑窗口。 图4.5 波形文件编辑窗口2设置仿真时间区域对于时序仿真测试来说,将仿真时间设置在一个合理的时间区域内的十分必要的,通常设置时间区域将视具体的设计工程而定。本例设计中整个仿真区域设为10S,时间轴为500MS,其设置步骤是在EDIT菜单中选择end time,在弹出窗口中time处填入10,单位选择S,同理在gride size中tmie period输入500MS,单击OK按钮,设置结束。(3)输入工
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于物理世界数字化的企业决策支持系统研究
- 医疗教育革新科技赋能下的教育变革
- 医疗信息系统的弹性设计与安全风险管理
- 如何有效运用数字工具进行医疗推广
- 如何用好数宇之极光基于数据的商业地产运营与维护优化策略研究
- 医疗设备界面设计的数字化艺术创新实践
- 运动防护用具的智能安全系统考核试卷
- 数据要素产业园项目可行性研究报告(参考)
- 以结果为导向的数字化员工能力提升计划
- 创新教育理念与数字化教学资源的整合
- 河南省青桐鸣大联考普通高中2024-2025学年高三考前适应性考试地理试题及答案
- 管道劳务分包协议书
- 2025年中考理化生实验操作考试考务培训大纲
- 拆迁服务方案
- 2025-2030中国锂电子电池行业市场深度调研及前景趋势与投资研究报告
- 天津市部分区小学2025年小升初数学自主招生备考卷含解析
- 成人经鼻胃管喂养临床实践指南
- LED灯具绝缘和耐压测试说明
- 第八章食品包装材料的安全监督与管理 ppt课件
- 《市场调查与预测》说课
- 李家沱大桥健康监测实施方案
评论
0/150
提交评论