毕 业 设 计(论文
)
论文题目: 锁相环设计
学生姓名: 何宝园 学 号: 082006008
专 业: 电子信息工程
指导教师: 程伟
第1章 绪论
1.1 课题研究的目的意义
本次进行研究的课题是全数字锁相环。锁相环路是一种反馈电路,锁相环的英文全称是Phase-Locked Loop,简称PLL。其作用是使得电路上的时钟和某一外部时钟的相位同步。因锁相环可以实现输出信号频率对输入信号频率的自动跟踪,所以锁相环通常用于闭环跟踪电路。锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住,这就是锁相环名称的由来。锁相环在通信、雷达、测量和自动化控制等领域应用极为广泛,随着电子技术向数字化方向发展,需要采用数字方式实现信号的锁相处理。因此,对全数字锁相环的研究和应用得到了越来越多的关注。
传统的数字锁相环系统是希望通过采用具有低通特性的环路滤波器,获得稳定的振荡控制数据。对于高阶全数字锁相环,其数字滤波器常常采用基于DSP 的运算电路。这种结构的锁相环,当环路带宽很窄时,环路滤波器的实现将需要很大的电路量,这给专用集成电路的应用和片上系统SOC(system on chip)的设计带来一定困难。另一种类型的全数字锁相环是采用脉冲序列低通滤波计数电路作为环路滤波器,如随机徘徊序列滤波器、先N 后M 序列滤波器等。这些电路通过对鉴相模块产生的相位误差脉冲进行计数运算,获得可控振荡器模块的振荡控制参数。
1.2 国内外研究现状
1.2.1 锁相环技术的产生背景
锁相环路诞生于20世纪30年代。在40年代开始在电视接收技术中得到广泛应用。此后空间技术的发展又极大的促进了锁相技术的发展,现已广泛应用于电子技术的各个领域。随着数字电路技术的发展,数字锁相环在调制解调、频率合成、FM 立体声解码、彩色副载波同步、图象处理等各个方面得到了广泛的应用。数字锁相环不仅吸收了数字电路可靠性高、体积小、价格低等优点,还解决了模拟锁相环的直流零点漂移、器件饱和及易受电源和环境温度变化等缺点,此外还具有对离散样值的实时处理能力,已成为锁相技术发展的方向。锁相环是一个相位反馈控制系统,在数字锁相环中,由于误差控制信号是离散的数字信号,而不是模拟电压,因而受控的输出电压的改变是离散的而不是连续的;此外,环路组成
部件也全用数字电路实现,故而这种锁相环就称之为全数字锁相环(简称DPLL)。
近年来,锁相技术在通信、航天、测量、电视、原子能、电机控制等领域,能够高性能地完成信号的提取、信号的跟踪与同步,模拟和数字通信的调制与解调、频率合成、滤波等功能,已经成为电子设备中常用的基本部件之一。特别是在数字通信的调制解调、位同步、频率合成中常常要用到各种各样的锁相环。锁相环是一个相位误差控制系统,它比较输入信号和振荡器输出信号之间的相位差,从而产生误差控制信号来调整振荡器的频率,以达到与输入信号同频同相的目的。锁相技术的核心是锁相环路,所谓的锁相环路是一个实现相位自动锁定的控制系统[1]。
1.2.2 现状和发展
目前,已有单片集成全数字锁相环的商用产品,但作为某一个实际项目设计,需要的锁相电路特性不尽相同,有些现成的产品,不是成本高、体积大、资源浪费多,就是不能完全满足设计性能的要求。根据位移检测的特点,采用高密度可编程逻辑器件,可根据实际要求,充分利用器件资源,同时把一些相关的数字电路组合在一起,不仅提高了系统的集成度和可靠性,降低了功耗,降低了成本,而且使电路性能得到明显改善[2]。
1.3 论文研究内容
进行毕业设计之前,首先我们要学习VHDL语言,了解锁相环的基本原理,及其各种实现方案,然后通过VHDL语言设计程序来实现全数字锁相环。再根据设计的程序实现各个模块,同时通过MAX+plus II 软件进行仿真检验,应用EDA 技术设计该系统,并用FPGA实现了其硬件电路。仿真和硬件测试结果证实了该设计的正确性。
第2章 设计总体规划
2.1 整体方案
采用VHDL自上而下的设计方法,先根据所设计的思路划分模块,再就每个模块进行VHDL语言的程序设计,用MAX+PLUS II软件来测试并做仿真编译各个模块,再把整体联系起来用MAX+PLUS II软件进行总体仿真,从而实现系统总体功能。
正式做毕业设计之前,由于查找了很多资料,故对于全数字锁相环的各个环节进行了相应的了解。数字锁相环的基本结构可分为三个模块:数字鉴相器、数字环路滤波器和数控振荡器。鉴相器是这样一种电路,它的输出信号与两个输入信号u1和u2的相位差相关,很多结构的电路都可以完成这种功能。鉴相器有多种类型,比如乘法鉴相器,EXOR鉴相器(异或门),JK触发型鉴相器和鉴频/鉴相器(PFD)。乘法鉴相器广泛应用于线性锁相环(LPLL)中,EXOR门鉴相器的工作原理与线性乘法器相似,DPLL数字锁相环的信号都是二进制信号,例如方波,我们假定信号u1,u2均为对称的方波,零误差时,即信号u1和u2的相位恰好相差90度,那么输出信号ud为一个方波,其频率等于参考信号频率的两倍,信号ud的占空比恰好是50%。由于信号中的高频分量将被环路滤波器滤除,我们只需要考虑ud的平均值。
最终我们选择了由异或门组成的数字鉴相器,由变模可逆计数器(模数K在一定范围内可自由设置)组成的数字环路滤波器,由除N计数器、除H计数器和加减脉冲控制器三者组成的数控振荡器。
2.2 模块划分
根据上面的描述以及考虑到设计中应有的功能,现将硬件锁相环电路划分为以下三大模块:
(1)鉴相器模块
(2)数字环路滤波器模块 (3)数控振荡器模块
锁相环组成框图如图2-1所示: 图2-1 锁相环电路 本地估算信号 数字压控振荡器 相位校正序列 输入信号 数字鉴相器 相位误差序列 数字滤波器 2.3 设计分工
本次课题的研究由我和刘琴同学共同完成,我们根据模块进行了分工。将三个模块分为两部分,第一二模块为第一部分,第三模块为第二部分。经过商量,我负责第一部分数字鉴相器和数字环路滤波器这两个模块,我的搭档刘琴同学负责第二部分数控振荡器模块,最后整体进行仿真验证时由我们两人一起完成。
2.4 设计工具及设计语言
开发工具为MAX+plus II,设计语言为VHDL,MAX+plus II 开发工具是美国Altera公司自行设计的一种CAE软件工具,其全称为Multiple Array Matrix and Programmable Logic User System。它具有原理图输入,文本输入(采用硬件描述语言)和波形图输入三种输入手段,利用该工具所配备的编辑、编译、仿真、综合、芯片、编程等功能,将设计电路或电路描述程序变成基本的逻辑单元写入到可编程的芯片中(如FPGA芯片),做成ASIC芯片。目前MAX+plus II是市场上使用最广的开发工具软件之一,是一个功能强大、使用方便的设计工具。
VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的计算机高级语言。因为本次设计需要对设计工具和设计语言很熟悉,故在下一章将具体进行介绍。
第3章 开发环境与开发语言具体介绍
3.1 关于EDA的介绍
EDA是电子设计自动化(Electronic Design Automation)的英文缩写,是20世纪90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。EDA技术就是以计算机为工具,在EDA软件平台上,根据硬件描述语言(HDL)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
这里的所谓EDA主要是指数字系统的自动化设计,因为这一领域的软硬件方面的技术已比较成熟,应用的普及程度也已经比较大。而模拟电子系统的EDA正在进入实用,其初期的EDA工具不一定需要硬件描述语言。典型的EDA工具中必须包含两个特殊的软件包(或其中之一),即综合器和适配器。综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件结构组件,进行编译、优化、转换和综合,最终获得门级电路甚至更底层的电路描述文件。EDA仿真测试技术只需通过计算机就能对所设计的电子系统从各种不同层次的系统性能、特点来完成一系列准确的测试与仿真操作,在完成实际系统的安装后还能对系统上的目标器件进行所谓边界扫描测试。这一切都极大地提高了大规模系统电子设计自动化程度。与单片机系统开发相比,利用EDA技术对FPGA/CPLD的开发,通常是一种借助于软件方式的纯硬件开发,因此可以通过这种途径进行所谓专用集成电路(ASIC)开发,而最终的ASIC芯片,可以是FPGA/CPLD,也可以是的门阵列掩模芯片,FPGA/CPLD只起到硬件仿真ASIC芯片的作用。而利用计算机进行的单片机系统的开发,主要是软件开发,在这个过程中只需程序编译器就可以了。
电子设计自动化可分为三个不同的发展阶段: 第一代EDA技术是电子图板时期
早在60、70年代,随着新的技术时期的来临,计算技术发展的很快,同时电子设计进入了中小规模集成电路开发应用时期,电子系统产品设计从原来的分离元器件逐渐被越来越多的集成电路所代替,并且每片集成电路中所包含的元件从原来的几十、几百也逐渐增至几千以至上万。需要和可能迫使电子设计工程师对二维平面图形开始用计算机进行辅助设计,代替繁杂、机械的手工设计。这一时期的计算机辅助设计通常可称谓辅助制图,被形象的叫做电子图板。
第二代EDA技术是以电路辅助设计和仿真分析技术为核心,分支软件迅速发展时期。可叫做辅助设计和仿真分析时期。
到了80年代初期,随着计算和微电子技术发展以及电子设计自动化技术自身发展的需要,像数字电路分析、模拟电路分析、混合电路分析、热分析、时序分析、失效分析、印刷电路板自动布线等电子设计自动化应用纷纷出现,使得多层印刷电路板、大规模、超大规模集成电路设计的自动化成为现实,同时,由于集成电路设计周期的缩短,设计费用的降低,使其按用户需要设计制造变成可能,因而又引出以半定制、全定制为特征的专用集成电路(ASIC)的概念,使集成电路制造在80年代中期又发生了一场性变化。
第三代EDA技术是集成综合概念设计时期
第三代EDA作为新一代EDA技术要解决系统层的描述,系统层的仿真和综合。新一代EDA技术由于采用了统一的数据库,每一层次的设计工作直接为相邻的层次和工作提供了它的数据,并且可以随时更新和检验,这就使得本来要串行的工作变成了同时的工作。同时工程实际上还包含了结构设计、模具设计和快速制作,使设计加工、制造、测试都能在计算机辅助设计下进行。现代的EDA技术可以辅助电子设计的方方面面,可以处理系统电路,包括各种数字电路、模拟电路、数模混合电路的设计,可采用的手段也包括了集成电路、厚薄膜混合电路、多芯片模块、印刷电路板,可进行仿真分析等[3]。
3.2 设计语言--VHDL
3.2.1 VHDL简介
硬件描述语言(Hardware Description Language,HDL),顾名思义,是电子系统硬件行为描述、结构描述、数据流描述的语言。VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底,VHDL被IEEE(The Institute of Electrical and Electronics Engineers)和美国国防部确认为标准硬件描述诺言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076—1993版本。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,己成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL与Verilog语言将承担起几乎全部的数字系统设计任务。
1987年底, VHDL被IEEE ( The Institute of Electrical and Electronics Engineers)和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标
准版本(IEEE-1076)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本。现在,VHDL作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。VHDL是EDA技术的重要组成部分,是电子设计的主流硬件描述语言。
3.2.2 VHDL,Verilog和ABEL语言对比
常见硬件描述语言有VHDL,Verilog和ABEL语言。VHDL起源于美国国防部的VHSIC;Verilog起源于集成电路的设计;ABEL起源于可编程逻辑器件的设计。下面从使用方面将三者进行对比。
(1)逻辑描述层次。一般的硬件描述语言可以在三个层次上进行电路的描述,其层次由高到低依次可分为行为级、RTL级和门电路级。VHDL语言是一种高级描述语言,适用于行为级和RTL级的描述,最适于描述电路的行为;Verilog语言和ABEL语言是一种较低级的描述语言,适用于RTL级和门电路级的描述,最适于描述门级电路。
(2)设计要求。用VHDL进行电子系统设计时可以不了解电路的结构细节,设计者所做的工作较少;用Verilog和ABEL语言进行电子系统设计时可以不了解电路的结构细节,设计者需要做大量的工作。
(3)综合过程。任何一种语言源程序,最终都要转换成门电路级才能被布线器或失配器所接受。因此,VHDL语言源程序的综合通常要经过行为级—RTL级—门电路级的转化,它几乎不能直接控制门电路的生成,而Verilog语言和ABEL语言源程序的综合过程要稍简单,即经过RTL级—门电路级的转化,易于控制电路资源。
(4)对综合器的要求。VHDL描述语言层次较高,不易控制底层电路,因而对综合器的性能要求较高;Verilog和ABEL对综合器的性能要求较低。
(5)支持的EDA工具。支持VHDL和Verilog的EDA工具很多,但支持ABEL的综合器仅仅Dataio一家。
(6)国际化程度。VHDL和Verilog已成为IEEE标准;ABEL正朝国际化标准努力。
3.2.3 利用VHDL语言设计硬件电路的优点
各ASIC芯片制造商都相继开发了用于各自目的的HDL语言,但是大多都未标准化和通用化。唯一已被公认的是美国国防部开发的VHDL语言,它已成为IEEE STD_1076标准。另外,从近期HDL语言发展的动态来看,许多公司研制的硬件电路设计工具也都逐渐向VHDL语言靠拢。使得它们的硬件电路设计工具也能支持VHDL语言。Viewlogic公司开发的Verilog-HDL语言目前使用也较广泛,据资料介绍近期也有可能成为另一种标准的HDL语言。但是,从整体来看Verilog-HDL语言不如VHDL语言。
VHDL语言和其它HDL语言相比到底有哪些特色呢?下面作一简要的说明。 (1)计技术安全、方法灵活、支持广泛
VHDL语言可以支持自上至下(Top Dow)和基于库(Library-Based)的设计方法,而且还支持同步电路、异步电路、FPGA以及其它随机电路的设计。其范围之广是其它HDL语言所不能比拟的。例如,SFL语言和UDL/I语言,它们只能描述同步电路。另外,由于VHDL语言早在1987年12月已作为IEEE STD_1076标准公开发布。因此,目前大多数EDA工具几乎在不同程度上都支持VHDL语言。这样给VHDL语言进一步推广和应用创造了良好的环境。
(2)系统硬件描述能力强
如前所述,VHDL语言具有多层次描述系统硬件功能的能力,可以从系统的数学模型直到门级电路。另外,高层次的行为描述可以与低层次的RTL描述和结构描述混合使用。例如,在PC机扩展槽上要设计一块接口卡,该接口卡的硬件设计应满足主机的接口要求。此时,主机部分功能可以用行为方式描述,而接口卡可以采用RTL方式描述。在系统仿真时就可以验证接口卡的工作是否正确。这样,在接口卡设计出来以前就可以知道接口卡的工作是否满足系统要求。
VHDL语言能进行系统级的硬件描述,这是它的一个突出的优点。其它HDL语言,如UDL/I、Verilog等只能进行IC级、PC级描述,而不能对系统级的硬件很好的进行描述。
再如,VHDL语言可以自定义数据类型,这样也给编程人员带来了较大的自由和方便。
(3)VHDL语言可以与工艺无关编程
在用VHDL语言设计系统硬件时,没有嵌入与工艺有关的信息。当然,这样的信息是可以用VHDL语言来编写的。与大多数HDL语言的不同之处是,当门级或门级以上层次的描述通过仿真检验以后,再用相应的工具将设计映射成不同的
工艺(如MOS、CMOS等)。这样,在工艺更新时,就无须修改原设计程序,只要改变相应的映射工具就行了。由此可见,无论修改电路还是修改工艺,相互之间不会产生什么不良的影响。
(4)VHDL语言标准、规范、易于共享和复用
由于VHDL语言已作为一种IEEE的工业标准,这样,设计成果便于复用和交流,反过来就能进一步推动VHDL语言的推广及完善。另外,VHDL语言的语法比较严格,其风格类似于Ada语言,给阅读和使用都带来了极大的好处。
3.2.4 VHDL程序设计约定
为了便于程序的阅读和调试,对VHDL程序设计特作如下约定: (1)语句结构描述中方括号“[ ]”内的内容为可选内容。
(2)VHDL的编译器和综合器对程序文字的大小写是不加区分的。本论文一般使用小写。
(3)程序中的注释使用双横线“- -”。在VHDL程序的任何一行中,双横线“- -”后的文字都不参加编译和综合。
(4)为了便于程序的阅读和调试,书写和输入程序时,使用层次缩进格式,同一层次的对齐,低层次的较高层次的缩进两个字符。
考虑到MAX+plusll要求源程序文件的名字与实体名必须一致,因此为了使同一个VHDL源程序文件能适应各个EDA开发软件上的使用要求,建议各个源程序文件的命名均与实体名一致。
3.2.5 VHDL自上而下的设计方法
所谓自上而下的设计方法,就是从系统总体要求出发,自上而下地逐步将设计内容细化,最后完成系统硬件的整体设计。一般的在硬件设计中,设计者将自上而下分成三个层次对系统硬件进行设计。
第一层次是行为描述。所谓行为描述,实质上就是对整个系统的数学模型的描述。一般来说,对系统进行行为描述的目的是试图在系统设计的初始阶段,通过对系统行为描述的仿真来发现设计中存在的问题。在行为描述阶段,并不真正考虑实际的操作和算法用什么方法来实现。考虑更多的是系统的结构及其工作过程是否能达到系统设计规格书的要求。
第二层次是RTL方式描述。这一层次称为寄存器传输描述(又称数据流描述)。如前所述,用行为方式描述的系统结构的程序,其抽象程度很高,是很难直接映射到具体逻辑元件结构的硬件实现的。要想得到硬件的具体实现,必须将行为方式描述的VHDL语言程序改写为RTL方式描述的VHDL语言程序。也就是
说,系统采用RTL方式描述,才能导出系统的逻辑表达式,才能进行逻辑综合。
第三层次是逻辑综合。逻辑综合这一阶段是利用逻辑综合工具,将RTL方式描述的程序转换成用基本逻辑元件表达的文件(门级网络表)。此时,如果需要,可以将逻辑综合结果以逻辑原理图方式输出。也就是说,逻辑综合的结果相当于在人工设计硬件电路时,根据系统要求画出了系统的逻辑电原理图。此时对逻辑综合结果在门电路级上再进行仿真,再检查定时关系。如果一切正常,那么系统的硬件设计基本结束。如果在三个层次的某个层次上发现有问题,都返回上一层,寻找和修改相应的错误,然后再向下继续未完的工作。
由自上而下的设计过程可知,从总体行为设计开始到最终逻辑综合,形成网络表为止,每一步都要进行仿真检查,这样有利于尽早发现系统设计中存在的问题,从而可以大大缩短系统硬件的设计周期。因此本次设计用的是VHDL的自上而下的设计方案。
3.2.6 VHDL语言程序的基本结构
所谓VHDL语言设计的基本单元(Design Entity),就是VHDL语言的一个基本设计实体。一个基本设计单元,简单的可以是一个与门(AND Gate ),复杂点的可以是一个微处理器或一个系统。但是,不管是简单的数字电路,还是复杂的数字电路,其基本构成是一致的。它们都是由实体说明(Entity Declaration)和构造体(Architecture Body)两部分构成。如前所述,实体说明部分规定了设计单元的输入输出接口信号或引脚,而构造体部分定义了设计单元的具体构造和操作(行为)。当我们使用VHDL语言设计一个硬件电路时,我们至少需要描述三个方面的信息:
(1)设计是在什么规范范围内设计的,亦即此设计符合某个设计规范,能得到大家的认可,这就是库、程序包使用说明;
(2)所设计的硬件电路与外界的接口信号,这就是设计实体的说明; (3)所设计的硬件电路其内部各组成部分的逻辑关系以及整个系统的逻辑功能这就是该设计实体对应的结构体说明。其中,库、程序包使用说明用于打开(调用)本设计实体将要用到的库、程序包;实体说明用于描述该设计实体与外界的接口信号说明,是可视部分;结构体说明用于描述该设计实体内部工作的逻辑关系,是不可视部分。根据需要,实体还可以有配置说明语句。配置说明语句主要用于以层次化的方式对特定的设计实体进行元件例化,或是为实体选定某个特定的结构体。
一个完整的VHDL语言程序通常包含实体(Entity)、结构体(Architecture)、配置(Configuration)、包集合(Package)和库(Library)五部分。前四部分是
可分别编译的源设计单元。实体用于描述所设计的系统的外部接口信号;结构体用于描述系统内部的结构和行为;包集合存放各设计模块都能共享的数据类型、常数和子程序等;配置用于从库中选取所需要的单元来组成系统设计的不同版本;库存放已经编译的实体,结构体,包集合和配置。
(1)实体:实体由实体说明和结构体两部分组成。实体说明主要描述的是一个设计的外貌,即对外的输入输出接口以及一些用于结构体的参数定义。结构体描述的是设计的行为和结构,指定了输入与输出之间的行为。
任何一个基本设计单元的实体说明都有如下结构: ENTITY 实体名 IS [类属参数说明] [端口说明] END 实体名
其中类属参数说明主要用来为设计实体指定参数,如端口宽度、器件延迟等;端口说明是对基本设计实体与外部接口的描述,要写明端口名,端口方向和数据类型。
(2)结构体具体指明了该基本设计单元的行为、元件及内部连接关系,也就是说它定义了设计单元具体的功能。结构体对其基本设计单元的输入输出关系可以用三种方式描述:行为描述、寄存器传输描述和结构描述(逻辑元件连接描述)。
结构体的基本语言格式:
ARCHITECTURE 结构体名 OF 实体名 IS [定义语句] 内部信号、常数、数据类型、函数等的定义 BEGIN [功能结构语句] END 结构体名
其中需要注意的是结构体中的语句都是并行执行的,是不以书写顺序为执行顺序的。相对应于其他高级语言的子程序,VHDL中也有子结构的模块设计方法。
VHDL语言中有三种子结构描述语句:块语句,进程语句,子程序语句。下面主要介绍一下本课题用到的进程语句的描述方法。
进程(PROCESS)语句在系统仿真的时候,是按顺序一条一条向下执行的,而不像其他方法是并行执行。进程语句结构如下:
[进程标号:] PROCESS [(敏感信号参数)] is [进程说明部分] BEGIN [顺序描述语句]
END PROCESS [进程标号]
一个结构体可以有多个进程,各进程之间是并行执行的。皆由敏感信号激活,当其中有敏感信号参数时,进程中不能再出现有激励作用的WAIT语句。
在本设计中用到的库主要就是IEEE库,主要用到的程序包是STD_LOGIC_11程序包,均为标准包和库,没有自己创建[4]。
3.2.7 VHDL语言在EDA中的应用
VHDL语言作为一种数字电子系统设计语言,在集成电路前端设计,用FPGA器件实现的数字电子系统设计的过程中,发挥着十分重要的作用。用EDA工程的方法进行现代电子系统设计,对于科研、教学领域是一门新发展的工程学科,对于信息产业领域的设计企业、生产企业是一项先进的设计和生产技术。
电子设计技术由于计算机技术的发展而产生了巨大变化。经典的电子设计方法,是用电路图表示设计思想,用实验电路板搭载实验电路,进行模拟、仿真,用电子测试仪器进行功能、性能测试。20世纪80年代,计算机辅助设计(CAD)技术开始发展,许多CAD工具软件开始流行。在信息学科领域也和其他学科一样,计算机辅助设计技术步入了发展轨道。由于电子科学是计算机科学的基础,计算机学科的发展离不开电子学科的支持,但是计算机科学又反作用于电子科学,加速了电子学科的发展。这样构成了一个闭环正反馈系统,使得电子设计技术很快由计算机辅助设计阶段进入了电子设计自动化(EDA)阶段。这是一个质的飞越,因为在EDA工程中,用硬件描述语言表达设计思想,用计算机进行模拟、仿真,可测试设计把测试器件设计到芯片系统内部,实现了内建自测试功能。利用EDA集成设计环境,可以使电子设计流程全自动实现。我们把利用EDA工程进行电子设计的方法称为现代电子设计[5]。
3.3 设计软件环境--MAX+plus II
Altera公司的MAX + plusⅡ软件是易学易用的可编程逻辑开发软件。其界面友好,集成化程度高。
3.3.1 MAX + plusⅡ开发工具介绍
MAX+plus II 开发工具是美国Altera公司自行设计的一种软件工具,其全称为
Multiple Array Matrix and Programmable Logic User System。它具有原理图输入,波形输入和文本输入(采用硬件描述语言)三种输入手段,利用该工具所配备的编辑、编译、仿真、综合、芯片、编程等功能,将设计电路或电路描述程序变成
基本的逻辑单元写入到可编程的芯片中(如FPGA芯片),做成ASIC芯片。目前MAX+plus II 是市场上使用最广的开发工具软件之一,而且是一个功能强大、使用方便的设计工具。 MAX+plus II 软件提供了一种与结构无关的设计环境,设计者无需精通器件内部的复杂结构,而只需要使用常用的设计输入方法(如原理图输入,HDL和波形输入)进行描述,MAX+plus II 软件会自动在计算机上把设计输入编译成最终结构所需要的格式。
3.3.2 MAX + plusⅡ的功能
支持器件有:FLEX10KE,FLEX10KB,FLEX10KA,MAX7000B,MAX3000A系列,和CLASSIC系列等。
常用的设计输入方法有:通过MAX + plusⅡ图形编辑器,创建图形设计文件(.gdf);通过MAX + plusⅡ文本编辑器,适用AHDL语言,创建文本设计文件(.tdf);使用VHDL语言,创建文本设计文件(.vhd);使用verilog hdl语言创建文本设计文件(.v),还可以通过MAX + plusⅡ波形编辑器,创建波形设计文件(.wdf)等。
设计编译通过MAX + plusⅡ编译器完成,可检查项目是否有错,并对项目进行逻辑综合,然后配置到一个altera器件中,同时产生报告文件,编程文件和可用于时间仿真的输出文件。设计验证通过MAX + plusⅡ的定时分析器进行时序分析,功能仿真,时序仿真和波形方针,生成一些标准文件为其他EDA工具所用。其中波形方针是最有用的,它可以判断设计的正确性。
3.3.3 MAX + plusⅡ中的VHDL设计
MAX+plus II软件提供了一种与结构无关的设计环境,设计者无需精通器件内部的复杂结构,而只需要使用常用的设计输入方法(如原理图输入,HDL和波形输入)进行描述,MAX+plus II软件会自动在计算机上把设计输入编译成最终结构所需要的格式。其具有如下特点:
(1)结构无关 其编译程序能自动完成优化和逻辑综合。
(2)多平台 它是将输入编辑、编译、和校验功能全集成化的一套可编程开发工具,可以加快动态调试,缩短设计周期。
(3)硬件描述语言 支持各种HDL设计输入形式,包括VHDL、AHDL、Verilog HDL。
(4)开放的界面。
使用MAX+plus II软件开发工具进行设计的整个过程大体上可分为以下四个阶段:设计输入、设计实现、设计验证和器件编程。设计输入中的输入方式有
三种:图形编辑、波形编辑和文本编辑。图形编辑即输入电路原理图,不仅可以使用MAX+plus II中丰富的图形器件库,而且可以使用几乎全部的标准EDA设计工具。文本编辑方式支持Altera公司的AHDL语言,并且兼容VHDL和Verilog HDL。波形编辑最有特点,它允许设计者通过编辑输入/输出波形的逻辑关系,由系统自动生成该功能模块。此外,符号编辑器用于编辑用户自己的功能模块符号。通过底层编辑器可以观察实际器件的内部结构,并可指定和改变器件引脚分布,或者调整各模块在器件内部宏单元之间的分布,从而优化器件性能。
设计实现是在所选的可编程逻辑器件内物理地实现所设计的逻辑。其过程主要由MAX+plus II中的核心部分编译器(Compiler)完成。编辑器是依据设计输入文件和选定的目标器件自动生成用于器件编程、波形仿真及延时分析等所需要的数据文件。
仿真器和延时分析器利用编译器产生的数据文件自动完成逻辑功能和延时特性仿真。在仿真文件中加载不同的激励,可以观察中间结果以及输出波形。在仿真结果正确以后,就可以进行器件编程,即通过编程器(Programmer)将编译的数据文件下载到实际芯片中。下载之后,仍需进行动态仿真,因为在前面的仿真属于静态时序仿真,并未涉及实际器件。动态仿真是将实际信号送入实际芯片中进行的时序验证。最后测试芯片在系统中的实际运行性能。
整个设计过程中所使用的设计工具都集成在MAX+plus II之中,每个工具以窗口形式打开,并且可以同时打开多个窗口,通过在各窗口之间切换,分别使用各个设计工具[6]。
MAX+plus II软件开发设计流程:
(1)设计准备阶段:在系统设计之前,首先要进行方案论证、系统设计和器件选择等准备工作。
(2)设计输入:由图可以看到设计输入主要有三种形式,原理图输入、硬件描述语言输入和波形图输入。
(3)功能仿真:仿真前,先利用波形编辑器和硬件描述语言等建立波形文件和测试向量,仿真结果将会生成报告文件和输出信号波形,从中可以观察到各个节点的信号变化。如果发现错误,则返回设计输入中修改逻辑设计。
(4)设计处理:设计处理是器件设计中的核心环节。在设计处理过程中,编译软件将对设计输入文件进行逻辑化简、综合优化和适配,最后产生编程用的编程文件。
(5)时序仿真:时序仿真又称延时仿真。在设计处理以后,对系统和各个模块进行时序仿真,分析其时序关系,估计设计的性能,以及检查和消除竞争冒险等。
(6)器件编程:时序仿真完成后,软件就可产生供器件编程使用的数据文件,然后将编程数据放到对应的具体可编程器件中去。器件在编程完毕后,可以用编译时产生的文件对器件进行校验、加密等工作。
下面以一个最简单的或门为例介绍一下其用法。
(1)进入MAX+plus II,首先新建一个项目,点击file/project/name,在弹出的对话框中填入要建立的项目名称,例:andg,点OK确定。新建项目如图3-1所示:
图3-1 新建项目
项目名对话框如图3-2所示:
图3-2 项目名对话框
(2)为该项目建立一个新的文本文档,点工具条的第一个按钮file/new,在弹出的对话框中选中Text Edit file。如图3-3所示:
,或者点击
图3-3 新建文本文档
(3)在新的文本编辑文档中用VHDL编写元件。其中的元件实体名必须和项目名称相同,然后保存,文件名后缀为 .vhd。如图3-4所示:
图3-4 编辑文本后保存
(4)然后点击按钮进行检查,点按钮进行编译,或者在file/project下选
择相应菜单进行该操作。当编译后显示“0 errors 0 warnings”的时候表示程序已经编译通过,没有错误。本程序编译后没有错误,如图3-5所示:
图3-5 编译通过
(5)下面介绍波形仿真界面,先为该项目新建一个Waveform Editor file,点新建后在弹出的对话框选中Waveform Editor file,如图3-6所示:
图3-6 选择波形编辑文件
(6)为该图形仿真文件加入节点,可以在菜单的Node下选择“Insert Node”一个一个得添加,也可以直接选“Enter Nodes from SNF”直接由电脑一次性添加。添加完节点后,给各节点按时间分别赋值,保存后,点击后的波形仿真图形了。本题的与门波形如图3-7所示:
按钮就可以看到运行
图3-7 波形仿真
有了波形的仿真,就可以看到自己编辑的元件功能是否正确。是否能实现预计的功能。
由上可知,在MAX + plusⅡ中使用VHDL语言进行设计过程可用图3-8表示
[13]
:
设计输入 项目编译 功能仿真 下载
图3-8 设计过程
第4章 数字锁相环的具体实现
4.1 数字锁相环简介
4.1.1 全数字锁相环模块以及模块简介
数字锁相环的一般组成如下图4-1所示,由数字鉴相器、数字环路滤波器、数字压控振荡器三部分组成。 (1)数字环路鉴相器(DPD)
数字鉴相器也称采样鉴相器,数字鉴相器的形式可分为:过零采样鉴相器、触发器型数字鉴相器、超前—滞后型数字鉴相器和奈奎斯特速率取样鉴相器。
过零采样鉴相器
过零型采样鉴相器有两种形式:一种是正过零点采样,这是所有数字鉴相器中最简单的一种;另一种则是双向过零型鉴相器,即在正、负过零点都采样。很显然双向过零型采样鉴相器能够比单向过零点采样鉴相器更快的检测出相位变化。
触发器型数字鉴相器
触发型数字鉴相器的具体形式很多,可以直接用触发器电路来构成,也可以用门电路来构成。
超前-滞后型数字鉴相器
超前-滞后型数字鉴相器的特点是,它输出一个表示本地估算信号超前或滞后于输入信号的量。如果本地估算信号超前于输入信号则输出“超前脉冲”,以便利用该“超前脉冲”控制本地估算信号(DCO)的相位退后。反之,则输出“滞后脉冲”,并使本地估算信号(DCO)的相位前移。超前-滞后型数字鉴相器可分为微分型和积分型两种。微分型超前-滞后数字鉴相器结构简单,硬件实现比较简单,但是它的抗干扰能力比较差。而积分型超前-滞后数字鉴相器具有优良的控干扰性能,而它的结构和硬件实现很复杂。
DCO 图4-1 数字环路滤波器基本结构
输入信号 鉴相器 相位误差序列 数字环路滤波器 本地估算信号 相位校正序列
奈奎斯特速率采样数字鉴相器
前面介绍的三种数字鉴相器,它们都是以本地估算信号为基准相位对输入信号进行比较,得到相位误差信息。这种采样方式通常称为非均匀采样。而奈奎斯特速率采样数字鉴相器采样方式不同,它是以某一个固定的频率基准作为输入信号的采样脉冲。这时,采样频率必须足够高,以使采样后的输入信号能依据奈奎斯特采样定理再现输入信号。
(2)数字环路滤波器(DLF)
数字环路滤波器在环路中对输入噪声起抑止作用,并且对环路的校正速度起调节作用。数字滤波器是一种专门的技术,有各种各样的结构形式和设计方法。引入数字环路滤波器和模拟锁相环路引入环路滤波器的目的一样,是作为校正网络引入环路的。因此,合理的设计数字环路滤波器和选取合适的数字滤波器结构就能使DPLL满足预定的系统性能要求。
(3)数控振荡器(DCO)
数控振荡器,又称为数字钟。它在数字环路中所处的地位相当于模拟锁相环中的压控振荡器(VCO)。但是,它的输出是一个脉冲序列,而该输出脉冲序列的周期受数字环路滤波器送来的校正信号的控制。其控制特点是:前一采样时刻得到的校正信号将改变下一个采样时刻的脉冲时间位置[7]。
4.1.2 全数字锁相环的产生、特点及应用
锁相环利用外部输入的参考信号控制环路内部振荡信号的频率和相位。因锁相环可以实现输出信号频率对输入信号频率的自动跟踪,所以锁相环通常用于闭环跟踪电路。锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住,这就是锁相环名称的由来。
锁相环的特点是: (1)具有频率准确跟踪性能
(2)具有良好窄带高频跟踪性能(称载波跟踪型) (3)具有良好的带通滤波性能(称调制跟踪型) (4)具有良好门限效应 (5)易集成化,数字化
目前已有多种不同性能的集成锁相环电路,主要分为模拟和数字两种。但由于模拟锁相环存在温度漂移、电网电压的影响等缺点,给系统的同步调节带来困难。因此,逐渐被数字锁相环所取代。所谓全数字化,就是环路部件数字化,采用数字鉴相器(DPD)、数字环路滤波器(DLF)、数控振荡器(DCO)构成锁
相环。目前,全数字锁相环路的研究日趋成熟,并已制成全数字化锁相环路FSK信号解调器、PSK信号解调器、位时钟提取器及同步载波提取器等[14]。
全数字化锁相环的共同特点是:
(1)电路完全数字化,使用逻辑门电路和触发器电路。系统中只有“导通”和“截止”两种工作状态,受外界和电源的干扰的可能性大大减小,电路容易集成,易于制成全集成化的单片全数字锁相环路。因而系统的可靠性大大提高。
(2)全数字锁相环路还缓和甚至消除了模拟锁相环路中电压控制振荡器(VCO)的非线性以及环路中使用运算放大器和晶体管后而出现的饱和及运算放大器和鉴相器的零漂等对环路性能的影响。
(3)数字锁相环路的环路部件甚至整个环路都可以直接用微处理机来模拟而实现。
(4)全数字锁相环路中,因模拟量转变为数字量所引入的量化误差和离散控制造成的误差,只要系统设计得当,均可以被忽略。
目前,数字锁相环路(DPLL)已在数字通信、无线电电子学及电力系统自动化等领域中得到了极为广泛的应用。与传统的模拟电路实现的PLL相比,DPLL具有精度高、不受温度和电压影响、环路带宽和中心编程频率可调、易于构建高阶锁相环等优点。随着集成电路技术的发展,不仅能够制成频率较高的单片集成锁相环路,而且可以把整个系统集成到一个芯片上去。在基于FPGA的通信电路中,可以把全数字锁相环路作为一个功能模块嵌入FPGA中,构成片内锁相环。
锁相环在调制和解调中的应用 调制和解调的概念
为了实现信息的远距离传输,在发信端通常采用调制的方法对信号进行调制,收信端接收到信号后必须进行解调才能恢复原信号。
所谓的调制就是用携带信息的输入信号ui来控制载波信号uc的参数,使载波信号的某一个参数随输入信号的变化而变化。载波信号的参数有幅度、频率和位相,所以,调制有调幅(AM)、调频(FM)和调相(PM)三种。
调幅波的特点是频率与载波信号的频率相等,幅度随输入信号幅度的变化而变化;调频波的特点是幅度与载波信号的幅度相等,频率随输入信号幅度的变化而变化;调 相波的特点是幅度与载波信号的幅度相等,相位随输入信号幅度的变化而变化。
解调是调制的逆过程,它可将调制波uo还原成原信号ui。 相环在调频和解调电路中的应用
调频波的特点是频率随调制信号幅度的变化而变化,压控振荡器的振荡频率取决于输入电压的幅度。当载波信号的频率与锁相环的固有振荡频率ω0相等时,
压控振荡器输出信号的频率将保持ω0不变。若压控振荡器的输入信号除了有锁相环低通滤波器输出的信号uc外,还有调制信号ui,则压控振荡器输出信号的频率就是以ω0为中心,随调制信号幅度的变化而变化的调频波信号。根据锁相环的工作原理和调频波的特点可得解调电路组成框图如图4-2所示: 品振电路 鉴相器 调制信号ui 调频信号uo 低通滤波器 载波信号uc 压控振荡器 图4-2 解调电路框图 由此可得调频电路可利用锁相环来组成,由锁相环组成的调频电路组成框图如图4-3所示: uc uo 调频信号ui 鉴相器 低通滤波器 压控振荡器 图4-3 调频电路框图
锁相环在频率合成电路中的应用
在现代电子技术中,为了得到高精度的振荡频率,通常采用石英晶体振荡器。但石英晶体振荡器的频率不容易改变,利用锁相环、倍频、分频等频率合成技术,可以获得多频率、高稳定的振荡信号输出。
输出信号频率比晶振信号频率大的称为锁相倍频器电路;输出信号频率比晶振信号频率小的称为锁相分频器电路。锁相倍频和锁相分频电路组成框图如图4-4所示[8]:
晶振电路 ui 鉴相器 低通滤波器 压控振荡器 uo fi Nf0 fo
fi=Nfo
图4-4 锁相倍频分频电路组成框图
图中的N大于1时,为分频电路;当N小于1时为倍频电路。
4.1.3 数字锁相环的分类
数字锁相环的结构很多,它们可以方便的按鉴相器的不同分为四大类: (1)过零检测数字锁相环(ZC-DPLL):通过环路的负反馈作用,最终使输入信号在过零点的时刻在鉴相器中进行取样。
(2)触发器数字锁相环(FF-DPLL):它的鉴相器由触发器构成,相位误差是由输入信号和本地时钟信号在正向过零点时刻,使触发器置“1”和清零产生的。
(3)超前/滞后数字锁相环(LL-DPLL):鉴相器对输入信号的每一周期都鉴别了它是超前还是滞后于本地时钟。
(4)奈奎斯特速率数字锁相环(NR-DPLL):输入信号在鉴相器中,按取样定理要求的奈奎斯特速率进行取样。
也可将上述1、2、3分为非均匀采样数字锁相环,将4分为均匀采样数字锁相环[9]。
4.1.4 数字锁相环的实现方法及性能要求
4.1.4.1 数字锁相环的实现方法
数字锁相环的实现方法是多种多样的,数字锁相环按照数字鉴相器的形式可以分成四类,它们分别是:
(1)过零型数字锁相环路 (2)触发器型数字锁相环路 (3)导前-滞后型数字锁相环路 (4)奈奎斯特速率采样型数字锁相环路
随着电子技术的发展,分别可以采用以下几种不同的设计方法来实现,一种是基于FPGA即可编程逻辑器件来实现;一种是用EDA来实现;本文主要通过VHDL硬件描述语言来实现,并通过MAX+plus II 软件进行仿真以验证设计是否达到预期目的[15]。 4.1.4.2 性能要求
一般地,设计出来的数字锁相环应具有结构简洁明快,参数调节方便,工作稳定可靠的特点。模块要有好的灵活性、可扩展性和可移植性,设计者可根据系统的具体要求修改模块参数,方便的移植和调用到其它系统中去。
4.1.5 锁相环工作原理
锁相环使我们世界的一些部分有序化。如果我们打开电视,锁相环会保证图象的头在上,脚在下面。彩色电视机中其他锁相环可以保证绿色是绿色,红色是红色(即使政治家主张颠倒才是真理)。锁相环电路使一个特殊系统跟踪另外一个系统。更确切地讲,锁相环是一个使输出信号(由振荡器产生的)与参考信号或者输入信号在频率和相位上同步的电路。在同步(通常称为锁定)状态,振荡器输出信号和参考信号之间的相位差为零,或者保持常数。如果出现相位误差,一种控制机理作用到振荡器上,使得相位误差再次减小到最小。在这样的控制系统中,实际输出信号的相位锁定到参考信号的相位。因而我们称之为锁相环。
锁相环的工作原理:
(1)压控振荡器的输出经过采集并分频; (2)和基准信号同时输入鉴相器;
(3)鉴相器通过比较上述两个信号的频率差,然后输出一个直流脉冲电压; (4)控制VCO,使它的频率改变;
(5)这样经过一个很短的时间,VCO 的输出就会稳定于某一期望值。 锁相环可用来实现输出和输入两个信号之间的相位同步。当没有基准(参考)输入信号时,环路滤波器的输出为零(或为某一固定值)。这时,压控振荡器按其固有频率fo进行自由振荡。当有频率为fi的参考信号输入时,u1 和u2同时加到鉴相器进行鉴相。如果fo和fi相差不大,鉴相器对u1和u2进行鉴相的结果,输出一个与u1和u2的相位差成正比的误差电压ud,再经过环路滤波器滤去ud中的高频成分,输出一个控制电压uc,uc将使压控振荡器的频率fo(和相位)发生变化,朝着参考输入信号的频率靠拢,最后使fi= fo,环路锁定。环路一旦进入锁定状态后,压控振荡器的输出信号与环路的输入信号(参考信号)之间只有一个固定的稳态相位差,而没有频差存在。这时我们就称环路已被锁定。
环路的锁定状态是对输入信号的频率和相位不变而言的,若环路输入的是频率和相位不断变化的信号,而且环路能使压控振荡器的频率和相位不断地跟踪输入信号的频率和相位变化,则这时环路所处的状态称为跟踪状态。
锁相环路在锁定后,不仅能使输出信号频率与输入信号频率严格同步,而且还具有频率跟踪特性,所以它在电子技术的各个领域中都有着广泛的应用[16]。
4.2 全数字锁相环的VHDL设计
4.2.1 ADPLL设计框图
Mf0 fin 异或门鉴相器 CP1 Ud 进位脉冲 可逆计数器 借位脉冲 除H计数器 dec inc fout 除N计数器 iout 加/减脉冲控制器 CP2 2Nf0 图4-5 ADPLL设计框图
设计中全数字锁相环结构框图如图4-5所示,由数字鉴相器、数字环路滤波器和数控振荡器三部分组成。其中数字鉴相器采用了异或门鉴相器;数字环路滤波器由变模可逆计数器构成(模数K可预置);数控振荡器由加/减脉冲控制器和除N 计数器构成。可逆计数器和加/减脉冲控制器的时钟频率分别为Mf0和2Nf0。这里f0 是环路的中心频率,一般情况下M 和N 为2 的整数幂。时钟2Nf0 经除H(= M/2N)计数器得到[10]。
4.2.2 ADPLL的电路原理图
电路原理图中数控滤波器的输入时钟频率为Mfc,其中M为常数,fc为环路中心频率;数控振荡器的输入频率为2Nfc;ΔΦ为输入信号V1与输出信号V2的相位差[11]。
ADPLL电路原路图如图 4-6所示:
Mfc V1(f1) Vd 2Nfc V2(f2)
数字鉴相器 数字滤波器 数控振荡器 图4-6 数字锁相环的电路原理图
4.2.3 ADPLL总体框图
ADPLL总体框图如图4-7所示:
时钟 进位 K计数器 UD 借位 鉴相器 减脉冲 加脉冲 时钟 输出 除N计数器 除H计数器 图4-7 ADPLL总体框图
4.2.4 ADPLL顶层设计模块
ADPLL顶层模块如图4-8所示:
图4-8 ADPLL顶层设计模块
了解了ADPLL的工作原理,我们就可以据此对各个部件进行设计。在图4-8中
,
除
了输
入
输出
外,
还
有五
个
环节
,
为
JXQ,CLK_4DIV,BMKN,MAICHONG,CLK_8DIV。其中JXQ为数字鉴相器(异或
门组成),BMKN为数字环路滤波器(在此由变模可逆计数器组成),数控振荡器由其余的三个环节(CLK_4DIV,MAICHONG, CLK_8DIV)组成。CLK_4DIV为除H(H在这里等于4)计数器,其实就是一个分频器,将输入其中的信号进行4分频。CLK_8DIV为除N(N在这里等于8)计数器,与上同理,也是一个分频器,将输入其中的信号进行8分频。BMKN为变模可逆计数器,与异或门输出端相连。
数字鉴相器(JXQ)输入端为U1和U2,其中U1为需要进行锁相控制的输入信号,U2为经过最后一个环节除N(N在这里等于8)计数器后的信号(即输出信号),异或门比较输入信号U1相位和输出信号U2相位之间的相位误差,即U1和U2进行异或运算。经过比较后,异或门输出误差信号UD作为JXQ的结果由UD端输出.再把鉴相器的UD输出端接到数字环路滤波器的UD输入端,把UD作为变模可逆计数器的计数方向控制信号。当U1与U2同极性时,输出UD为低电平,使得变模可逆计数器做加法运算,如果相加的结果达到预设的模值,则BMKN输出一个进位脉冲给脉冲加减电路,由BMKN的R1端与MAICHONG的R1端相连来控制;当U1与U2不同极性时,输出UD为高电平,使得变模可逆计数器做减法运算,如果相加的结果为零,则BMKN输出一个借位脉冲给脉冲加减电路,由BMKN的R2端与MAICHONG的R2端相连来控制;变模可逆计数器的CLK端为时钟信号输入端,CLK 为时钟频率,等于f0,U1的频率为f0, EN为使能端。该计数器设计为一个9位可编程(可变模数)可逆计数器,计数范围是由外部置数CBA控制,C、B、A 可预置变模可逆计数器的模数,它在001-111 范围内变化,相应的模数在2∧3--2∧9 范围内变化。
数控振荡器由加减脉冲控制器,除N计数器,除H计数器组成。MAICHONG实现了对输入信号频率和相位的跟踪和调整,最终使输出信号锁定在输入信号的频率和相位上,其实它是一个增量-减量计数器式DCO。它和环路滤波器连用。如果在环路滤波器无进位、借位的时候,加减脉冲控制器对时钟2NF0进行二分频。当加减脉冲控制输入一个进位脉冲R1=1时,输出脉冲中通过该计数器内部加上一个时钟脉冲。反之,当加减脉冲控制输入一个借位脉冲R2=1时,输出脉冲中通过该计数器内部减上一个时钟脉冲。因此通过借位和进位脉冲可以使输出频率得到改变,输出频率能被进位和借位脉冲的最高频率控制在一个给定的范围内。本地时钟信号经过除H计数器四分频后与脉冲加减电路的时钟信号端相连,再进过除N计数器八分频后接到鉴相器的U2输入端,从而使得U1,U2两端信号的频率相等。
4.2.5 ADPLL各模块设计具体流程
4.2.5.1 鉴相器的设计
锁相环中的鉴相器又称为相位比较器,它的作用是检测输入信号和输出信号的相位差,并将检测出的相位差信号转换成ud电压信号输出。
本次设计中鉴相器采用的是异或门鉴相器。异或门鉴相器用于比较输入信号u1 与数控振荡器输出信号u2 的相位差,其输出信号ud 作为可逆计数器的计数方向控制信号,连接到变模可逆计数器的ud端。当ud 为低电平时( u1 和u2 有同极性时),可逆计数器作\"加\"计数。反之,当ud 为高电平时,可逆计数器作\"减\"计数。
当环路锁定时,fi和fo正交,鉴相器的输出信号Ud 为50 % 占空比的方波,此时定义相位误差为零,在这种情况下,可逆计数器“加”和“减”的周期是相同的,只要可逆计数器只对其时钟的k 值足够大(k> M/ 4),其输出端就不会产生进位或借位脉冲,加/减脉冲控制器只对其时钟2Nfo 进行二分频,使fi和fo的相位保持正交。在环路未锁定的情况下,若Ud = 0 即u1、u2同极性时,它使可逆计数器向上加计数,并导致进位脉冲产生,进位脉冲作用到加/减脉冲控制器的“加”控制端R1, 该控制器便在二分频过程中加入半个时钟周期,即一个脉冲。反之,若Ud = 1 时,可逆计数器进行减计数,导致借位脉冲产生,并将借位脉冲作用到加/减脉冲控制器的“减”输入端R2,于是,该控制器便在二分频过程中减去半个时钟周期,即一个脉冲。这个过程是连续发生的。加/减脉冲控制器的输出经过除N计数后,使得本地估算信号U2 的相位受到调整控制,最终达到锁定的状态
[12]
。
异或门数字鉴相器VHDL程序代码如下: library ieee;
use ieee.std_logic_11.all; entity jxq is
port(u1,u2:in std_logic; ud:out std_logic); end entity jxq; architecture art of jxq is begin
ud <=u1 xor u2; end architecture art ;
异或门数字鉴相器模块如图4-9所示:
图4-9 异或门鉴相器
分析:数字鉴相器(JXQ)输入端为U1和U2,其中U1为需要进行锁相控制的输入信号,U2为经过最后一个环节除N(N在这里等于8)计数器后的信号(即输出信号),异或门比较输入信号U1相位和输出信号U2相位之间的相位误差,即U1和U2进行异或运算。经过比较后,异或门输出误差信号UD作为JXQ的结果由UD端输出。
异或门数字鉴相器的仿真波形如图4-10所示:
图4-10 鉴相器仿真波形
模块进行分别仿真时,u2需要自己赋值,在此u1和u2都赋以方波。如上图4-10所示,u1与u2频率相同,而相位差为90度,故ud输出的信号频率恰好时输入信号的两倍,即ud为占空比为50%的方波。 4.2.5.2 数字环路滤波器的设计
数字环路滤波器是由变模可逆计数器构成的。该计数器设计为一个9 位可编程(可变模数)可逆计数器,计数范围是由外部置数CBA控制。假设系统工作无相位差,由锁相环原理知,u1 和u2 的相位差0 ,异或门鉴相器输出是一个对称的方波,因此可逆计数器在相同的时间间隔内进行加或减计数,只要k 足够大,那么从零开始的计数就不会溢出或不够。
若u1始落u2,异或门输出不对称,那么计数器加计数时间比减计数时间长,其结果计数器随着时间的增长将溢出,产生一个进位脉冲。相反,若u1开始滞后u2,计数器将产生一个借位脉冲。进位和借位脉冲可用来控制DCO,使得DCO 输出的脉冲数根据进位和借位来加上或者是删除一些脉冲,实际上也就改变了DCO 的输出频率。
变模可逆计数器的设计由VHDL 完成,程序如下: library ieee;
use ieee.std_logic_11.all;
use ieee.std_logic_unsigned.all; entity bmkn is
port(clk,ud,en,c,b,a:in std_logic;
r1,r2:out std_logic); end entity bmkn;
architecture behave of bmkn is
signal cq,k,mo : std_logic_vector (8 downto 0); signal cao1,cao2: std_logic;
signal instruction: std_logic_vector (2 downto 0); begin
instruction <= c&b&a;
with instruction select mo<=\"000000111\"when\"001\\"000001111\"when\"010\\"000011111\"when\"011\\"000111111\"when\"100\\"001111111\"when\"101\\"011111111\"when\"110\\"111111111\"when\"111\\"000000111\"when others; process (clk,en,ud,k,cq) is begin
if clk'event and clk = '1'then k <= mo; if en = '1'then if ud = '0'then
if cq < k then cq <= cq + 1; else cq <= (others => '0'); end if; else
if cq > 0 then cq <= cq - 1; else cq <= k; end if; end if;
else cq <= (others =>'0') ; end if; end if; end process;
process (en,ud,cq,k) is begin if en ='1'then if ud ='0'then
if cq =k then cao1 <= '1'; else cao1 <= '0'; end if; cao2 <= '0'; else
if cq =\"000000000\"then cao2 <= '1'; else cao2 <= '0'; end if ; cao1 <= '0'; end if;
else cao1 <= '0';cao2 <= '0'; end if; end process; r1 <= cao1; r2 <= cao2 ; end behave ;
数字环路滤波器模块如图4-11所示:
图4-11 数字环路滤波器模块
其中CBA为外部置数控制,由它来控制模数,它在001-111 范围内变化,相应的模数在2∧3--2∧9 范围内变化。UD与鉴相器的输出端相连用来控制可逆计数
器的计数方向。R1,R2分别为进位和借位输出端。
数字环路滤波器的仿真波形如图4-12所示:
图4-12 数字环路滤波器仿真波形
在上图中,因为是局部仿真,故ud输入端自行赋值,在前250ns时,ud为高电平,故计数器进行减法运算,因为是从000开始减,故需要借位,r2置1,当ud在后250ns时为低电平,故计数器进行加法运算,当加到0FF后需进位,故r1置1。 4.2.5.3 数控振荡器的设计
数控振荡器由加/减脉冲控制器和除N 计数器组成的。加/减脉冲控制器其实是一个增量—减量计数器,它和环路滤波器连用。加/减脉冲控制器由D 触发器和J K 触发器构成。此部分设计由我的搭档完成。
4.2.6 实验仿真结果与分析
本设计全数字锁相环路在我们设计过程中采用了两种方法来实现。第一种方法是三个模块都是采用VHDL 语言编写模块,然后仿真,例化,逐渐由下而上的实现整个电路,最终达到整体仿真下载成功。第二种方法是第一二模块均采用VHDL 语言编写模块,而第三个模块用电路所做。
(1)三个模块均用VHDL语言所做后的总体仿真波形如图4-13,4-14,4-15所示:
锁相环仿真波形(K=8,M=,N=8,H=4),进入锁定时间为0us。
图4-13 锁相环仿真波形(K=8)
由于模值K取值小,故系统很快就进入稳定锁定状态,由图4-13可以看出,当外部置数CBA取001且时钟频率取值远远小于输入信号频率,IOUT输出端为均匀的脉冲,即系统锁定。
锁相环仿真波形(K=128,M=,N=8,H=4),锁定时间为274.5ns。
图4-14 锁相环仿真波形(K=128)
与图4-13相比较,此时外部置数为101,对应模值K为128,系统没有立即稳定,在前214.5ns时,IOUT输出端输出为不均匀脉冲,当过了这个时刻,输出端输出为均匀脉冲,系统进入锁定状态。
锁相环仿真波形(K=256,M=,N=8,H=4),锁定时间为2.3945us。
图4-15 锁相环仿真波形(K=256)
与上图4-13,4-14相比较,图4-15进入锁定时间明显推迟,此时模值K为256,进入稳定时间为2.3945us。
总体分析:CBA置数不同,模数不同,故iout端输出锁定的时间也都不同。 由上图对比可知,模k 愈大,环路进入锁定状态的时间越长。k 取得过大,对抑制噪
声、减少相位抖动有利,但是同时又加大了环路进入锁定状态的时间。反之, k 取得过小,可以加速环路的锁定,而对噪声的抑制能力却随之降低。
(2)前两个模块均用VHDL语言所做,第三个模块用电路所做的电路图与仿真波形分别如下:
总电路图如图4-16所示:
图4-16 锁相环总电路图
总仿真波形如图4-17,4-18所示:
图4-17 总仿真图(锁定时间为214.5ns,K=16)
图4-18 总仿真图(锁定时间为314.5ns,K=256)
分析:由上图4-17,4-18可以看出,结果与第一种方案一样。随着模值K的取值不同,系统进入锁定的时间不同,锁定的范围也不同,故可根据实际情况取不同的K值来满足需要。
第5章 结语与展望
5.1 设计结语
采用VHDL 设计全数字锁相环路,具有设计灵活,修改方便和易于实现的优点,并能够制成嵌入式片内锁相环。该类数字锁相环路中计数器的模数可以随意修改,增加了系统应用的灵活性与通用性,故有较大的改进。这样,就能够根据不同的情况最大限度地、灵活地设计环路。而且采用VHDL设计数字锁相环路,具有设计灵活、修改方便和易于实现的优点。同时,采用在系统可编程芯片实现有利于提高系统的集成度和可靠性。
基于VHDL语言的可变模数数字锁相环,不仅简化了硬件的开发和制作过程,而且使硬件体积大大减小,并提高了系统的可靠性。该方法可以在不修改硬件电路的基础上,通过修改设计软件、更改移相范围就可满足不同条件下的需要。
全数字锁相环中可逆计数器及N分频器的时钟由外部晶振提供。不用VCO,可大大减轻温度及电源电压变化对环路的影响。
5.2 锁相环现状与发展
目前,已有单片集成全数字锁相环的商用产品,但作为某一个实际项目设计,需要的锁相电路特性不尽相同,有些现成的产品,不是成本高、体积大、资源浪费多,就是不能完全满足设计性能的要求。根据位移检测的特点,采用高密度可编程逻辑器件,可根据实际要求,充分利用器件资源,同时把一些相关的数字电路组合在一起,不仅提高了系统的集成度和可靠性,降低了功耗,降低了成本,而且使电路性能得到明显改善。
参考文献
[1] 王福昌,鲁昆生. 锁相技术 [M]. 武汉: 华中科技大学, 2002. 4~90
[2] 张厥盛,郑继禹,万心平. 锁相技术 [M]. 西安: 西安电子科技大学出版社,1994. 8~45
[3] 谭会生,张凡昌. EDA技术及应用(第二版)[M]. 西安: 西安电子科技大学出版
社,2004-4,3-14.
[4] 齐洪喜,陆 颖. VHDL电路设计使用教程 [M]. 北京: 清华大学出版社,2003. 36~40 [5] 刘绍汉,林灶生,刘新民. VHDL芯片设计 [M]. 北京: 清华大学出版社,2004. [6] 王建校,宁改娣. MAX+plus II 应用入门 [M]. 科学出版社,2001. 3~156
[7] Roland E.Best 著,李永明等译. 锁相环设计、仿真与应用(第5版)[M] .北京: 清华大
学出版社,2007.
[8] 眭法川. 锁相与频率合成 [M]. 北京: 国防工业出版社,1998. 11~78
[9] 胡华春,石玉. 数字锁相环原理与应用 [M]. 上海: 上海科学技术出版社,1990. [10] 徐惠民,安德宁. 数字逻辑设计与VHDL描述 [M]. 北京:机械工业出版社,2002. [11] 庞浩,俎云霄,王赞基. 一种新型的全数字锁相环 [J]. 中国电机工程学报,2003(2):
37-41.
[12] 王金明,杨吉斌. 数字系统设计与Verilong HDL [M]. 电子工业出版社, 2002. [13] 薛定宇,陈阳泉. 系统仿真技术与应用 [M]. 北京: 清华大学出版社, 2004. [14] Lindsey William C, Chie Chak Ming. A survey of digital phase-locked loops [J].
Proceedings of the IEEE, 1981, 69(4): 410-431.
[15] Dr Best Roland E. Phase-Locked loops: Theory, Dsign and Applications
[M]. New York:Mcgraw-Hill, 1984.
[16] IEEE. IEEE Standard VHDL Language Reference Manual IEEE std 1076-1993 Institute
of Electrical and Electronics Engineens Inc, 1993
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo6.cn 版权所有 赣ICP备2024042791号-9
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务