




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖南工业大学本科毕业设计(论文)(2014届)本科毕业设计(论文)资料题 目 名 称: 位同步的FPGA实现 学 院(部): 电气与信息工程学院 专 业: 电子信息工程 学 生 姓 名: 向建军 班 级: 电信1002班 学号 10401701339 指导教师姓名: 曹二莲 职称 讲师 最终评定成绩: 湖南工业大学教务处2014届本科毕业设计(论文)资料第一部分 毕业论文(2014届)本科毕业设计(论文)学 院(部): 电气与信息工程学院 专 业: 电子信息工程 学 生 姓 名: 向建军 班 级: 电信1002 学号 10401701339 指导教师姓名: 曹二莲 职称 讲师 最终评定成绩: 2014年5月摘 要同步是通信系统中很重要的一个过程,它可以使通信系统更稳定、更可靠、更准确,它是数字通信系统有顺序进行的技术支撑。同步分为位同步、帧同步和载波同步,我们对数字通信信号的同步除了载波同步和帧同步之外,还要进行位同步。位同步也就是保证接收端准确有效抽样判决数字基带信号序列的基础,一般位同步信号从解调后的基带信号中提取出来,同时也可以从已调频带信号当中直接提取位同步信号,一般可以进行一元中央位置采样的决定,最好是在接收元素结束时间采样的决定。位同步有插入导频法(一种外同步法)和直接法(一种自同步法),本文运用了数字锁相法提取位同步电路的方案,以大规模可编程逻辑器件FPGA为主控制器,以VHDL硬件描述语言为主要语言对其进行在线编程,在Quartus软件工具中进行仿真和调试,以达到功耗低、成本低、效率高的技术要求。关键词:位同步;数字锁相电路;FPGA;VHDL;Quartus ABSTRACTSynchronization is a very important process in communication system, it can make the system more stable, more reliable, more accurate, it is the digital communication system has the technical support of the order. Synchronization is divided into bit synchronization, frame synchronization and carrier synchronization, we on the digital communication signal in addition to frame and carrier synchronization and bit synchronization. Bit synchronization is the basis to ensure the correct and effective decision receiver sampling digital baseband signal sequence,general synchronization signal is extracted from the baseband demodulated signals, but also can directly extract bit synchronization signal from the frequency band signal has, in general can be a central position sampling decisions, preferably in the receiving elements in the end time sampling decision. Bit synchronization is the pilot insertion method (a kind of external synchronization method) and direct method (a self synchronizing method), this paper uses digital PLL method of bit synchronization circuit extraction, with the large-scale programmable logic device FPGA as the main controller, using the VHDL hardware description language is the main language of the online programming, simulation and debugging in Quartussoftware tools, to meet the requirements of low power consumption, low cost, high efficiency technologyKeywords: Bit synchronization (symbol extraction process); digital phase locked loop circuit (bit synchronization circuit); FPGA; VHDL; Quartus 目 录摘 要IABSTRACTII第1章 绪论1第2章 同步技术32.1 同步技术32.2 同步的分类32.3 位同步32.3.1 位同步方法42.3.2 位同步系统性能指标5第3章 基于FPGA设计流程的介绍73.1 FPGA器件概述73.2 FPGA设计操作流程7第4章 微分型位同步的FPGA实现114.1 微分型位同步原理114.2 微分鉴相模块的VHDL实现124.3 双相时钟信号的VHDL实现164.4 单稳触发器的VHDL实现174.5 控制及分频模块的VHDL实现19第5章 系统仿真与结果分析215.1 顶层模块的VHDL实现215.2 系统的整体仿真与结果分析25结 论26参考文献27致 谢28II第1章 绪论 在数字通信系统中,要准确的恢复信号,接收端和发送端就必须保持严格同步。在数字通信系统中,同步又称为定时,是指收发双方在时间上保持步调一致。同步系统性能的优劣将直接影响数字通信的质量,甚至会影响数字通信能否正常运行。可以说同步系统是保证数字通信系统正常工作的前提。早在1970那一年, 胎膜早破(可编程只读存储器)是最古老的PLD的出现,它是可编程的只读存储器,它不能被擦除和重写,只能写一次,而在20世纪70年代中期,又出现了PLA(Programmable Logic Array),也就是可编程逻辑阵列。可编程阵列逻辑PAL(可编程逻辑阵列)1977美国AMD装置第一,这是一个熔丝编程。大约在1985年,Lattice公司率先发明GAL(Generic Array Logic),也就是通用阵列逻辑器件,该装置可电擦除,可编程,设置加密位PLD等,然而Altera公司推出最晚的却是可擦除可编程逻辑器件EPLD(Erasable PLD),它是在20世纪80年代中期推出的 。880年底,格是在系统可编程技术提出了ISP(在系统编程),它还推出了一系列的在系统可编程逻辑器件(EPLD器件)。1985现场可编程的概念被首次提出,赛灵思公司,在同一时间,世界上第一个生产的FPGA(现场可编程门阵列,现场可编程门阵列)装置。而在1995年,Xilinx公司又推出了XC4025,它的可用门数达到了25000门。PLD的分类:(1) PROM 即可编程只读存储器(Programmable Read Only Memory)(2) 可编程逻辑阵列PLA(Programmable logic array PLA)(3)可编程逻辑阵列PAL(Programmable logic array PAL)(4)通用逻辑阵列GAL(Generic array logic GAL)(5)即可擦除可编程器件EPLD (Erasable Programmable Logic Device)(6)复杂可编程逻辑器件CPLD (Complex PLD)(7)即现场可编程门阵列FPGA(Field Programmable Gates Array) 现场可编程门阵(FPGA)是PAL、GAL、EPLD等可编程器件的进一步发展的产物。它是作为ASIC领域中的一种半定制电路而出现的,不仅克服了原本可编程器件门电路门数量有限等缺点,还解决了定制电路的不足。在第二十世纪中叶80年代, FPGA是一种高密度可编程逻辑器件,数组类型,它和我们以前所介绍的可编程逻辑器件是有所不同的。FPGA由逻辑功能块排成阵列组成,还有可编程的互连资源连接等这些逻辑功能块以及还有相应的输入输出单元来共同实现不同的设计。这其中,FPGA的功能是由逻辑结构的配置数据而决定。同时,存储在片上SRAM或熔断器的配置数据。基于SRAM的FPGA器件,同时,存储在片上SRAM或熔断器的配置数据。用户可以控制加载过程,在现场修改器件的逻辑功能,即所谓的现场可编程。Quartus8.0是Altera公司新近推出的EDA软件工具,其设计工具完全支持VHDL、Verilog的设计流程,其内部嵌有VHDL、Verilog逻辑综合器。第三方的综合工具,如Leonardo Spectrum、Synplify Pro、FPGA Compiler有着更好的综合效果,因此通常建议使用这些工具来完成VHDL/Verilog源程序的综合。Quartus可以直接调用这些第三方工具。同样,Quartus具备仿真功能,也支持第三方工具,如Modelsim。此外,Quartus为Altera DSP开发包进行系统模型设计提供了集成综合环境,它与MATLAB和DSP Builder结合可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具。Quartus还可以与SOPC Builder结合,实现SOPC系统开发本文主要研究一种位同步电路的FPGA 实现,其研究的主要内容是:理解位同步的概念及实现方法,建立位同步控制器模型,以FPGA为主控器,设计一个位同步控制器,并完成各模块电路测试激励程序的设计。任务:(1) 掌握常用的位同步方法及实现原理;(2) 完成微分型位同步的设计与仿真;(3)完成积分型位同步的设计与仿真;(4)建立数字锁相环法仿真模型并完成功能仿真;(5)完成数字锁相环法位同步的设计与仿真;技术要求:(1)完成测试激励信号源的设计;(2)相位误差 ;(3)同步带宽;第2章 同步技术2.1 同步技术 在数字通信系统中,要准确的恢复信号,接收端和发送端就必须保持严格同步。在数字通信系统中,同步又称为定时,是指收发双方在时间上保持步调一致。同步系统性能的优劣将直接影响数字通信的质量,甚至会影响数字通信能否正常运行。可以说同步系统是保证数字通信系统正常工作的前提。2.2 同步的分类 同步是通信系统中很重要的一个过程,它可以使通信系统更稳定、更可靠、更准确,它是数字通信系统有顺序进行的技术支撑。同步分为位同步、帧同步和载波同步。(1)载波同步 目前,在广泛采用的相移键控(2PSK,DPSK,MPSK)、最小频移键控(MSK)、正交幅度调制(QAM)等数字调制系统中,接收端解调时都必须提供与发送端调制载波同频同相的相干载波,获取该相干载波的过程称为载波同步(或载波提取)。(2)位同步 无论是基带传输,还是频带传输,都需要位同步。在数字通信系统中,任何消息都是由一连串数字信号码元序列来传送的。但是由于传输信道不理想和受到噪声的干扰,数字信号必然会产生波形失真。接受时需要知道每个码元的起止时刻,以便在最佳的时刻进行抽样判决。这就要求接收端必须产生一个与接受码元具有相同频率和相同相位(位置)的位定时脉冲序列,即位同步(或码元同步),该码元定时脉冲序列称为位同步脉冲(或码元同步脉冲)(3)帧同步在前面介绍的数字时分多路复用系统中,各路信码都是在规定的时隙内传送,形成规定的帧结构,例如PDH基群、二次群、三次群和四次群帧结构。在这些帧结构中,都包括帧同步信号,用于接收端识别出每帧的起始时刻和分接定位以便正确分接。在接收端获得这些帧同步信号的过程称为帧同步(或群同步)。2.3 位同步位同步也就是保证接收端准确有效抽样判决数字基带信号序列的基础,一般位同步信号从解调后的基带信号中提取出来,同时也可以从已调频带信号当中直接提取位同步信号。对位同步的要求有:让接收端产生出来的位同步脉冲频率正好等于发送端的码元速率;让接收器在正确的时刻接受接受象征例句。一般可以进行一元中央位置采样的决定,最好是在接收元素结束时间采样的决定。插入导频法(一种外同步法)和直接法(一种自同步法),是我们位同步的主要方法。2.3.1 位同步方法(1)自同步法 自同步法是数字通信系统中应用最多、最常用的位同步方法。使用这种方法,接收端可以接收来自好的位同步信号提取的数字信号。它包含滤波法和数字锁相法,本文章主要运用的就是数字锁相法原理实现位同步的。 滤波法1)波形变换-滤波法 二进制数字信号,如果是不归零的随机序列,它的功率谱中不包含有同步时钟频率,等部分,不管是单极性的或是双极性的。不能直接从中滤出的同步信号分量。但我们可以某些变换的信号,其中包含一个数字信号的同步信息,然后使用过滤器除去它,原理框图如图2.1所示。图中的波形变换可以是微分,整流电路。 图2.1 波原理变换滤波方法2)包络检波-滤波法在数字微波中继通信系统中,经常采用从中频PSK信号中直接提取位同步信息的方法。需要从数字基带信号解调的载波恢复位同步信息的提取,并提取位同步信息可同时进行从中频PSK信号。其原理框图如图2.2所示。 图2.2 包络检波法原理框图 锁相法 所谓数字锁相法是指采用锁相环来提取未能同步信号的方法。数字锁相环提取位同步电路的原理框图如图2.3框图所示,它是由信号钟、分频器、相位比较器和控制器等组成。高稳定度的晶体振荡器和脉冲整形电路是信号的主要组成部分。要想晶体振荡器频率为,则接受码元的速率刚好是,在经过整形电路之后,输出周期性脉冲序列,其周期为。控制器由扣除门(常开)、附加门(常闭)和或门等组成,作用是对信号钟输出的脉冲序列实行扣除(或者添加)脉冲,它是根据相位比较器输出的控制 图2.3 数字锁相环的原理框图脉冲(包括超前脉冲或者是滞后脉冲)来对信号钟输出的脉冲序列实施扣除或者添加脉冲。分频器是一个计数器,当控制器在每个输出的N个脉冲,它会输出一个脉冲。控制器和分频器连接在一起的相位同步信号调整的结果应用于相位检测器。周期T调整之前和之后的相移取决于时钟信号,每个时间步是,相应的最小相位调整相位比较器是将接收脉冲序列和位同步信号进行相位比较,这个过程是用于判别位同步信号到底是超前还是滞后,如果是超前就输出超前脉冲,如果是滞后就输出滞后脉冲。(2)插入导频法一般地,把位定时导频信号插入到数字基带信号功率谱的零点,这种方法叫做位同步插入导频法,它包含包络调制法还有时域插入位同步法,因为功耗高,成本高和效率底等特点,故插入导频法一般不采用,本文章主要是利用用数字锁相位同步法,所以在这里不做多余介绍。2.3.2 位同步系统性能指标位判别同步系统的性能指标有很多,一般常见的有,相位误差、同步建立时间、同步保持时间和同步带宽等。结合数字锁相原理,为了讨论相位的误差对误码率的影响,下面我们来分析这些主要的性能指标。(1)相位误差 所谓的静态相位误差,是指也位同步信号的平均相位和最佳相位之间的相位差。对于数字锁相法,来提取位同步信号的,位同步脉冲的相位在跳变时调整是引起相位的误差的主要原因。每调节一步,相位就会转变,n为分频器分频的次数,因此最大的相位误差为: (2.1) 显然,n越大,最大相位误差就越小。(2)同步建立时间ts同步建立时间就是指开机或者失去同步后再次重新建立同步所需要的最长时间,同步建立时间越短越好。当一个同步脉冲的相位和相位差的PI(参考对的时间是T/2),调整时间会最长。这时需要的最大调整次数为 (2.2) 由于接收符号是随机的,为二进制码,每两个相邻的符号(01,10,11,00),带或不带零的情况在每个半。在数据的两种数字锁相法提取零比脉冲参考相应的,平均每周期的脉冲,2秒内都有可能进行调整,所以同步建立时间: (2.3)(3)同步保持时间 当建立同步,如果输入信号中断,甚至“0”和“1”码,锁相环失的调节作用。脉冲重复频率发送和接收双速范围,以其固有的差频,相位同步信号和传输,如果时间较长,相位漂移,漂移的要求,直到达到一个最大值。从同步到失同步所用的时间,叫做同步保持时间: (2.4)(4)同步带宽同步带宽是指的最大频率,振荡器调整到同步状态允许差。由于数字锁相环,几乎每2周(2T)调整的时间,所以每次可以调整时间,所以在一个符号周期平均可以调整时间T / 2N。对于数字锁相法,同步带宽为: (2.5)第3章 基于FPGA设计流程的介绍3.1 FPGA器件概述现场可编程门阵(FPGA)是PAL、GAL、EPLD等可编程器件的进一步发展的产物。它是作为ASIC领域中的一种半定制电路而出现的,不仅克服了原本可编程器件门电路门数量有限等缺点,还解决了定制电路的不足。在第二十世纪中叶80年代, FPGA是一种高密度可编程逻辑器件,数组类型,它和我们以前所介绍的可编程逻辑器件是有所不同的。FPGA由逻辑功能块排成阵列组成,还有可编程的互连资源连接等这些逻辑功能块以及还有相应的输入输出单元来共同实现不同的设计。这其中,FPGA的功能是由逻辑结构的配置数据而决定。同时,存储在片上SRAM或熔断器的配置数据。基于SRAM的FPGA器件,同时,存储在片上SRAM或熔断器的配置数据。用户可以控制加载过程,在现场修改器件的逻辑功能,即所谓的现场可编程。 EDA技术是依赖的FPGA设计的发展,有许多EDA软件支持XilinxFPGA的开发设计,最广泛的是ISE,以下是ise8。Xilinx FPGA的设计的一般过程如图3-1框图所示。XilinxFPGA的开发设计过程包括:程序设计输入,功能仿真,逻辑综合,时序仿真和设计和配置设备。3.2 FPGA设计操作流程(1)功能定义/器件选型 在FPGA设计项目开始之前,必须有系统功能的定义和模块的划分,另外就是要根据任务要求,如系统的功能和复杂度,对工作速度和器件本身的资源、成本、以及连线的可布性等方面进行权衡,选择合适的设计方案和合适的器件类型。 一般都采用自顶向下的设计方法,把系统分成若干个基本单元,然后再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接使用EDA元件库为止。(2)设计输入 设计输入是将所设计的系统或电路以开发软件要求的某种形式表示出来,并输入给EDA工具的过程。常用的方法有硬件描述语言(HDL)和原理图输入方法等。原理图输入方式是一种最直接的描述方式,在可编程芯片发展的早期应用比较广泛,它将所需的器件从元件库中调出来,画出原理图。这种方法虽然直观并易于仿真,但效率很低,且不易维护,不利于模块构造和重用。更主要的缺点是可移植性差,当芯片升级后,所有的原理图都需要作一定的改动。目前,在实际开发中应用最广的就是HDL语言输入法,利用文本描述设计,可以分为普通HDL和行为HDL。普通HDL有ABEL、CUR等,支持逻辑方程、真值表和状态机等表达方式,主要用于简单的小型设计。而在中大型工程中,主要使用行为HDL,其主流语言是Verilog HDL和VHDL。这两种语言都是美国电气与电子工程师协会(IEEE)的标准,其共同的突出特点有:语言与芯片工艺无关,利于自顶向下设计,便于模块的划分与移植,可移植性好,具有很强的逻辑描述和仿真功能,而且输入效率很高。 除了这IEEE标准语言外,还有厂商自己的语言。也可以用HDL为主,原理图为辅的混合设计方式,以发挥两者的各自特色。 (3)功能仿真 功能仿真也称为前仿真是在编译之前对用户所设计的电路进行逻辑功能验证,此时的仿真没有延迟信息,仅对初步的功能进行检测。仿真前,要先利用波形编辑器和HDL等建立波形文件和测试向量(即将所关心的输入信号组合成序列),仿真结果将会生成报告文件和输出信号波形,从中便可以观察各个节点信号的变化。如果发现错误,则返回设计修改逻辑设计。常用的工具有Model Tech公司的ModelSim、Sysnopsys公司的VCS和Cadence公司的NC-Verilog以及NC-VHDL等软件。 (4)综合优化 所谓综合就是将较高级抽象层次的描述转化成较低层次的描述。综合优化根据目标与要求优化所生成的逻辑连接,使层次设计平面化,供FPGA布局布线软件进行实现。就目前的层次来看,综合优化(Synthesis)是指将设计输入编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表,而并非真实的门级电路。真实具体的门级电路需要利用FPGA制造商的布局布线功能,根据综合后生成的标准门级结构网表来产生。为了能转换成标准的门级结构网表,HDL程序的编写必须符合特定综合器所要求的风格。由于门级结构、RTL级的HDL程序的综合是很成熟的技术,所有的综合器都可以支持到这一级别的综合。常用的综合工具有Synplicity公司的Synplify/Synplify Pro软件以及各个FPGA厂家自己推出的综合开发工具。 (5)综合后仿真 综合后仿真检查综合结果是否和原设计一致。在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去,可估计门延时带来的影响。但这一步骤不能估计线延时,因此和布线后的实际情况还有一定的差距,并不十分准确。目前的综合工具较为成熟,对于一般的设计可以省略这一步,但如果在布局布线后发现电路结构和设计意图不符,则需要回溯到综合后仿真来确认问题之所在。在功能仿真中介绍的软件工具一般都支持综合后仿真。(6)实现与布局布线 布局布线可理解为利用实现工具把逻辑映射到目标器件结构的资源中,决定逻辑的最佳布局,选择逻辑与输入输出功能链接的布线通道进行连线,并产生相应文件(如配置文件与相关报告),实现是将综合生成的逻辑网表配置到具体的FPGA芯片上,布局布线是其中最重要的过程。布局将逻辑网表中的硬件原语和底层单元合理地配置到芯片内部的固有硬件结构上,并且往往需要在速度最优和面积最优之间作出选择。布线根据布局的拓扑结构,利用芯片内部的各种连线资源,合理正确地连接各个元件。目前,FPGA的结构非常复杂,特别是在有时序约束条件时,需要利用时序驱动的引擎进行布局布线。布线结束后,软件工具会自动生成报告,提供有关设计中各部分资源的使用情况。由于只有FPGA芯片生产商对芯片结构最为了解,所以布局布线必须选择芯片开发商提供的工具。 (7) 时序仿真 时序仿真,也称为后仿真,是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规(即不满足时序约束条件或器件固有的时序规则,如建立时间、保持时间等)现象。时序仿真包含的延迟信息最全,也最精确,能较好地反映芯片的实际工作情况。由于不同芯片的内部延时不一样,不同的布局布线方案也给延时带来不同的影响。因此在布局布线后,通过对系统和各个模块进行时序仿真,分析其时序关系,估计系统性能,以及检查和消除竞争冒险是非常有必要的。在功能仿真中介绍的软件工具一般都支持综合后仿真。(8)板级仿真与验证 板级仿真主要应用于高速电路设计中,对高速系统的信号完整性、电磁干扰等特征进行分析,一般都以第三方工具进行仿真和验证。(9)芯片编程与调试 设计的最后一步就是芯片编程与调试。芯片编程是指产生使用的数据文件(位数据流文件,Bitstream Generation),然后将编程数据下载到FPGA芯片中。其中,芯片编程需要满足一定的条件,如编程电压、编程时序和编程算法等方面。逻辑分析仪(Logic Analyzer,LA)是FPGA设计的主要调试工具,但需要引出大量的测试管脚,且LA价格昂贵。目前,主流的FPGA芯片生产商都提供了内嵌的在线逻辑分析仪(如Xilinx ISE中的ChipScope、Altera QuartusII中的SignalTapII以及SignalProb)来解决上述矛盾,它们只需要占用芯片少量的逻辑资源,具有很高的实用价值。FPGA设计的总体流程如图3.1所示。 图3.1 FPGA设计流程图第4章 微分型位同步的FPGA实现 位同步提取总体原理框图如图4.1所示,主要由过零提取、鉴相器、脉冲形成、脉冲加减控制和N 分频器几个部分组成。输入的非归零二进制码元经过零提取后送入鉴相器,鉴相器对过零提取后的输出码元ui的相位与位同步提取后输出信号uo的相位进行比较,当位同步提取输出信号uo 的相位超前时输出一个减脉冲信号usub,滞后时输出一个加脉冲信号uadd ,然后送入脉冲加减控制器,脉冲加减控制器根据鉴相器的输出信号uadd 和usub来控制对输入的两路时钟脉冲信号 p1和 p2的打开与关闭, p1和 p2是由脉冲形成器送入的两路相位差为 180 度、频率都是Nf0的时钟信号。脉冲加减控制器输出的信号经过N 分频器后输出频率为 f0的同步时钟信号,也就是我们所需要的位同步信号。从框图中可以看到,信号经鉴相器、脉冲加减控制器和N 分频器后又回到鉴相器,形成一个锁相闭环回路,此锁相回路不断的对输出的位同步时钟信号uo的相位进行调整,最终达到时钟同步。 图4.1 锁相位同步提取原理框图 要使输出的位同步时钟与接收的码元同步就要根据鉴相器的输出来不断的调整输出的位同步时钟的相位,由鉴相器输出的加、减脉冲控制信号来相应的增加或扣除冲,也就相应的加快或者延迟了N 分频器(其实是一个计数器,记满N 个脉冲后电平翻转)记满N 个脉冲的时间,从而调整了位同步输出信号的相位。4.1 微分型位同步原理 过零提取的原理是:每当输入码元电平翻转时就产生一个脉冲,这些脉冲反映了发端时钟的相位信息,以此信息为参考基准经锁相后获得同步时钟。用VHDL 实现过零提取的方法是:把输入的二进制码元经过延迟后与未经延迟的二进制码元相异或即可。数字电路中的延迟可由级连的D 触发器来实现,改变级连的个数就可以改变延迟的时间,这在VHDL 中设几个信号变量就可以实现。完成延迟所需的时钟由本地时钟提供,过零提取所得脉冲信号的电平宽度不能太宽或太窄,一般取码元周期的1/10 为宜。基带信号中提取数据跳变沿的电路如图4.2所示,提取到的数据跳变沿波形如图4.3所示。图4.2 提取数据跳变沿的电路图4.3 基带数据跳变沿检测过程波形波形4.2 微分鉴相模块的VHDL实现输入信号的微分整流及其与分频器输出的两路相位相反的信号(clk_i clk_q)之间的鉴相功能,由顶层文件中的鉴相模块完成。微分鉴相器的VHDL代码十分简单,下面给出VHDL实现代码。-DifferPD.vhd文件的程序代码Library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;Entity DifferPD is Port ( rst:in std_logic; clk_32:in std_logic; datain:in std_logic_vector(5 downto 0); clk_i:in std_logic; clk_q:in std_logic; pd_bef:out std_logic; pd_aft:out std_logic;End DifferPD;Architecture Behavioral of DifferPD is-定义程序中用到的信号Signal din,din_edge:std_logic;Begin -去输入数据的符号位为码元起始相位 Din=datain(5); -输入信号微分整流,检测输入信号跳变沿后,产生一个clk32时钟周期的高 -电平脉冲 process(rst,clk32) begin if rst=“1”then din_d=“0” elsif rising_edge(clk32)then din_d =din din_edge =din xor din_d; -完成鉴相功能 pd_bef =din_edge and clk_i; pd_aft =din_edge and clk_q; end if; end process ;end Behavioral; 将上面VHDL程序语言在Quartus软件中编译并运行,其过程是(1)先执行【File】【New】命令,新建源程序,选择界面如图4.4所示。(2)再执行【File】【Project Wizard】命令,如图4.5所示。(3)最后执行【Processing】【Start Compiltion 】,命令运行结果如图4.6所示。图4.4 新建文件类型的选择界面图4.5 程序编辑和工程向导操作界面图4.6 VHDL程序运行结果界面执行【File】【New】命令,在弹出的对话框选择【Block Diagram】打开原理图编辑界面,如图4.7所示,最终绘制的微分鉴相模块的RTL原理图如图4.8所示。图4.7 RTL原理图编辑界面图4.8 微分鉴相模块的RTL原理图4.3 双相时钟信号的VHDL实现实现双相时钟信号的方法有很多,本实例采用计数器设计思路来完成。由于信号的周期均是4个clk32周期,因此可以设计一个周期为4的2位二进制计数器,再根据计数器的值来分别对输出信号的高低状态进行设置,从而产生所需要的双相时钟信号。其VHDL代码如下,综合后的RTL原理图如图4.5所示。-clktrans.vhd文件的程序代码Library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;Entity clktrans is Port ( rst:in std_logic; clk_32:in std_logic; clk_d1:out std_logic; clk_d2:out std_logic;Architecture Behavioral of clktrans isend clktrans;BiginProess(rst,clk32)Variable c: std_logic_vector(1 downto 0);Begin If rst=1then c:=00 Elsif rising_edge(clk32)then c:c+1; If c=0 then clk_d1=1; clk_d2=0; Else clk_d1=0; clk_d2=0; end if; end if; end process; end Behavioral ; 根据4.2节的操作过程,在Quartus中我们就能画出双相时钟模块的RTL原理图,如图4.9所示。图4.9 双相时钟模块的RTL原理图4.4 单稳触发器的VHDL实现所谓单稳触发器,就是在检测到高电平脉冲信号时,连续输出一定时间长度的高电平脉冲信号。其VHDL代码如下,综合后的RTL原理图如图4.6所示。-monostable.vhd文件的程序代码Library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;Entity monostable is Port (clk32, rst:in std_logic; din:in std_logic; dout:out std_logic; end monostable;Architecture Behavioral of monostable isBegin -单稳态触发器:检测到一个高电平脉冲后,输出4个clk32时钟周期高电平 proess(rst,clk32)Variable c: std_logic_vector(1 downto 0); Variable start :boolean; begin If rst=1then c:=00; Start=false dout=0; Elsif rising_edge(clk32)then If din=1 then Start:=ture; dout=1; End if; If start then dout=1; If c3 then c:=c+1; else Start=false; end if; else; c:=00; dout=0 end if; Else; end if; end if; end process; end Behavioral ; 图4.10 单稳触发器模块的RTL原理图4.5 控制及分频模块的VHDL实现控制分频模块用于完成S1取反及gate_open和gate_close“与门”功能,产生clk_in的“或门”功能,以及对clk_in进行8分频输出位同步信号clk_i及clk_q。下面给出该模块的VHDL代码,其综合后的RTL原理图如图4.7所示。-controlDivFreq.vhd文件的程序代码Library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;Entity controlDivFreq. is Port (clk32, rst:in std_logic; din:in std_logic; dout:out std_logic; end controlDivFreq.;Architecture Behavioral of controlDivFreq. isBegin proess(rst,clk32) Variable c: std_logic_vector(1 downto 0); Variable start :boolean; begin If rst=1then c:=00; Start=false dout=0; Elsif rising_edge(clk32)then If din=1 then Start:=ture; dout=1; End if; If start then dout=1; If c3 then c:=c+1; else Start=false; end if; else; c:=00; dout=0 end if; end if; end process; End Behavioral ; 图4.11 控制及分频模块的RTL原理图第5章 系统仿真与结果分析5.1 顶层模块的VHDL实现 采用VHDL实现微分型位同步环路,并对实现后的环路进行仿真测试。输入基带数据速率为1MHz,采样速率为8MHz。位同步信号每次调整的相位为一个数据采样周期,根据位同步环路的工作原理,系统时钟频率选择为32MHz。位同步环的工作原理和载波同步的锁相环相似,单在进行VHDL实现时的差异还是十分明显的。载波同步锁相环电路设计时,环路参数的设计十分重要,也要占用设计者的很大精力;位同步环的设计更多的需要关注环路中逻辑关系及时序关系,设计者在完全掌握并理解环路各部件的逻辑及时序关系后,因此环路实现后往往可以达到很高的运算速度。微分型位同步的VHDL实现代码不长,为了让便于读者更好的理解位同步系统设计思想。以及各功能模块之间的逻辑和时序关系,本实例将各功能模块分别用单个文件来实现。同样,为了讲述方便,我们还是先对位同步环路系统顶层模块进行讨论,以使读者从总体上对位同步
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内经考试题及答案
- 汽修考试题及答案
- 中级财务会计(上)知到智慧树答案
- 工务维修考核试卷及答案
- 药品检查员能力提升培训班结业考试试题(附答案)
- 幼儿园教师业务考试试题及答案
- 内科考试题含答案
- 酒水饮料理论知识考核试题题库及答案
- 加氢工艺考试模拟卷及答案
- 国家基本药物培训试题及答案
- 2025年教科版新教材科学三年级上册全册教案设计(含教学计划)
- 医院药品采购与质量控制规范
- 枣庄学院《图学基础与计算机绘图》2024-2025学年第一学期期末试卷
- 2025版仓储库房租赁合同范本(含合同生效条件)
- GB 46031-2025可燃粉尘工艺系统防爆技术规范
- 2025至2030年中国纳米抛光浆料行业发展监测及发展趋势预测报告
- 养老护理员培训班课件
- 2025-2030城市矿产开发利用政策支持与商业模式创新报告
- 隔爆水棚替换自动隔爆装置方案及安全技术措施
- 近十年中职试卷及答案
- 股票k线图入门图解
评论
0/150
提交评论