基于vhdl全数字锁相环的设计说明书内容摘要:
和布线的标准硬件描述语言,因此它可以使设计成果在设计人员之间进行交流与共享,减少硬件电路设计的工作量,缩短开发周期 [8]。 软件开发工具 - MAX+ plus II MAX+PLUSⅡ概述 Max+plusⅡ 全称为 Multiple Array Matrix Programmable Logic User System 是Altera 公司提供的 FPGA/CPLD 开发集成环境, Altera 公司的开发工具已经经历了四代,从最初的基于 DOS 的 A+PLUS,发展到 Max+plus,又于 1991 年推出性能更加完善的基于 Windows 的开发工具 Max+plusⅡ。 目前该公司又推出了它的第四代开发工具 QuartusⅡ。 Max+plusⅡ 功能强,使用方便,是市场上使用最广的开发工具软件之一。 在 Max+plusⅡ 上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无 关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。 Max+plusⅡ 开发系统的特点: (1)与结构无关 Max+plusⅡ /Complier( 编译程序 ) 是该开发软件系统的核心,能自动完成优化与逻辑综合。 支持 Altera 公司的 FLEX10K、 FLEX8000、 FLEX6000、 MAX9000、MAX7000、 MAX5000 和 Classic 可编程逻辑器件,提供了世界上唯一真正与结构无关的可编程逻辑设计环境。 (2)开放的界面 理工大学毕业设计 9 Max+plusⅡ 提供了与其他工业标准设计输入、综合和校验工具的链接。 支持与Cadence, Exemplarlogic, Mentor Graphics, Synplicty, Viewlogic 和其它公司所提供的 EDA 工具接口。 (3)多平台 Max+plusⅡ 是将输入编辑、编译、处理与较验功能全部集成化的一套可编程的开发软件,这样可以加快动态调试、缩短开发周期。 (4)丰富的设计库 Max+plusⅡ 提供丰富的库单元供设计者调用,其中包括 74 系列的全部器件和多种特殊的逻辑功能 ( MacroFunction) 以及新型的参数化的兆功能 ( MageFunction)。 (5)模块化工 具 设计人员可以从各种设计输入、处理和较验选项中进行选择从而使设计环境用户化。 Max+plusⅡ功能简介 (1)原理图输入 ( Graphic Editor) MAX+PLUSII 软件具有图形输入能力 , 用户可以方便的使用图形编辑器输入电路图 , 图中的元器件可以调用元件库中元器件 , 除调用库中的元件以外 , 还可以调用该软件中的符号功能形成的功能块 , 图形编辑器窗口见图 22。 (2)硬件描述语言输入 ( Text Editor) MAX+PLUSII 软件中有一个集成的文本编辑器 , 该编辑器支持 VHDL, AHDL和 Verilog 硬件描述语言的输入 , 同时还有一个语言模板使输入程序语言更加方便 ,该软件可以对这些程序语言进行编译并形成可以下载配置数据,文本编辑器窗口见图23。 图 22 图形编辑器窗口 图 23 文本编辑器窗口 (3)波形编辑器 ( W aveform Editor) 在进行逻辑电路的行为仿真时,需要在所设计电路的输入端加入一定的波形,波形编辑器可以生成和编辑仿真用的波形 ( *.SCF 文件 ) ,使用该编辑器的工具条可以容易方便的生成波形和编辑波形。 波形编辑 器窗口如图 24 所示。 使用时只要将欲输 理工大学毕业设计 10 入波形的时间段用鼠标涂黑,然后选择工具条中的按钮,例如,如果要某一时间段为高电平,只需选择按钮 “ 1”。 还可以使用输入的波形 ( *.WDF 文件 ) 经过编译生成逻辑功能块,相当于已知一个芯片的输入输出波形,但不知是何种芯片,使用该软件功能可以解决这个问题,设计出一个输入和输出波形相同 CPLD 电路。 (4)管脚 ( 底层 ) 编辑窗口 ( Floorplan Editor) 该窗口用于将已设计好逻辑电路的输入输出节点赋予实际芯片的引脚 , 通过鼠标的拖拉,方便的定义管脚的功能 , 管脚 ( 底层 ) 编辑 窗口见图 25。 图 24 波形编辑器窗口 图 25 管脚( 底层 ) 编辑窗口 (5)自动错误定位 在编译源文件的过程中,若源文件有错误, Max+Plus2 软件可以自动指出错误类型和错误所在的位置。 (6)逻辑综合与适配 该软件在编译过程中,通过逻辑综合 ( Logic Synthesizer) 和适配 ( Fitter) 模块 ,可以把最简单的逻辑表达式自动的吻合在合适的器件中。 (7)设计规则检查 选取 Compile\Processing\Design Doctor 菜单,将调出规则检查医生,该医生可以按照三种规则中的一个规则检查各个设计文件,以保证设计的可靠性。 一旦选择该菜单,在编译窗口将 显示出医生,用鼠标点击医生,该医生可以告诉你程序文件的健康情况 , 见图 26。 图 26 规则检测医生 理工大学毕业设计 11 (8)多器件划分 ( Partitioner) 如果设计不能完全装入一个器件,编译器中的多器件划分模块,可自动的将一个设计分成几个部分并分别装入几个器件中,并保证器件之间的连线最少。 (9)编程文件的产生 编译器中的装配程序 ( Assembler) 将编译好的程序创 建一个或多个编程目标文件: EPROM 配置文件 ( *.POF) 例如 , MAX7000S 系列 SRAM 文件 ( *.SCF) 例如, FLEX8000 系列的配置芯片 EPROM JEDEC 文件 ( *.JED) 十六进制文件 ( *.HEX) 文本文件 ( *.TTF) 串行 BIT 流文件 ( *.SBF) (10)仿真 当设计文件被编译好,并在波形编辑器中将输入波形编辑完毕后 , 就可以进行行为仿真了,通过仿真可以检验设计的逻辑关系是否准确。 (11)分析时间 ( Analyze Timing) 该功能可以分析各个信号到输出端的时间延迟,可以给出 延迟矩阵和最高工作频率见图 27 和图 28。 图 27 延迟矩阵 图 28 最高工作频率 (12)器件编程 当设计全部完成后 , 就可以将形成的目标文件下载到芯片中 , 实际验证设计的准确性。 Max+plusⅡ设计流程 使用 Max+plusⅡ 软件开发工具进行设计的整个过程如下图 29 所示,大体上可以分为四个阶段:设计输入、设计实现、设计验证和器件编程。 理工大学毕业设计 12 设计输入的方式有三种:图形编辑、波形编辑和文本编辑。 设计实现是在 可选的的可编程逻辑器件内物理的实现所设计的逻辑。 其过程主要由 MAX+PLUSⅡ 中的核心部分编译器 ( Compiler) 完成。 图 29 Max+plusⅡ的设计环境 设计验证中仿真器和延时分析器利用编译器产生的数据文件自动完成逻辑功能和延时特性仿真 [9][11]。 实验开发系统 实验开发系统提供芯片下载电路及 EDA 实验 /开发的外围资源 ( 类似于用于单片机开发的仿真器 ) ,以供硬件验证用。 一般包括: ① 实验或开发所需的各类基本信号发生模块,包括时钟、脉冲、高低电平等; ② FPGA/CPLD 输出信息显示模块,包 括数码显示、发光管显示、声响指示等; ③ 监控程序模块,提供 “ 电路重构软配置 ” ;④ 目标芯片适配座以及上面的 FPGA/CPLD 目标芯片和编程下载电路。 设计验证 设计实现 器件编程 设计输入 图形编辑器 (Graphic Editor) 符号编辑器 (Symbol Editor) 底层编辑器 (Floorplan Editor ) 波形编辑器 (Waveform Editor) 文本编辑器 (Text Editor) 编译器 (Compiler) 编程器 (Programmer) 仿真器 (Simulator) 延 时分析器 (Timing Analyzer) 理工大学毕业设计 13 第 三 章 设计总体规划 整体方案 采用 VHDL 自顶向下的设计方法,先根据所设计的思路画出流程图划分模块,再就每个模块进行 VHDL 语言的程序设计,用 MAX+PLUS II 软件来测试并做仿真编译仿真各个模块,再把整体联系起来 MAX+PLUS II 软件来测试并做仿真进行仿真,从而实现系统总体功能,之后再用 FPGA 器件实现了锁相系统的硬件功能。 关于全数字锁相环设计的几种方案 基于众多类型的全数字鉴相器、数字环路滤波器和数字控制振荡器,结合兼容的功能模块,几乎可以构成无限多的 ADPLL。 详细讨论每一个可能的 ADPLL 系统不太现实,下面有三个最典型的 ADPLL 的实现方案。 一、全数字锁相环 ADPLL 方案一 全数字锁相环结构框图下图 31 所示 , 主要由异或门鉴相器、 K 变模可逆计数器、脉冲加 /减电路和除 N 计数器四部分构成。 K 变模计数器和脉冲加 /减电路的时钟分别为 Mf0 和 2Nf0。 这里 f0 是环路中心频率,一般情况下 M 和 N 都是 2 的整数幂。 为了使电路简单,这两个 时钟由同一振荡器提供,时钟频率 2Nf0=Mf0。 图 31 全数字锁相环结构框图 DPLL 的工作过程如下: (1)当环路失锁时,异或门鉴相器比较输入信号和输出信号之间的相位差异,并产生 K 变模可逆计数器的计数方向控制信号 Ud; (2)K 变模可逆计数器根据计数方向控制信号 Ud 调整计数值, Ud 为高进行减计数,并当计数值到达 0 时,输出借位脉冲信号 dec;为低进行加计数,并当计数值达到预设的 K 模值时,输出进位脉冲信号 inc; (3)脉冲加减电路则根据进位脉冲信号 inc 和借位脉冲信号 dec 在电路输出 信号fo(φout) 2Nf0 CP2 Mf0 fi (φin) CP1 Ud 进位脉冲 借位脉冲 dec inc 异或门鉴相器 加 /减脉冲控制器 除 N 计数器 可逆计数器 iout 理工大学毕业设计 14 iout 中进行脉冲的增加和扣除操作,来调整输出信号的频率; (4)重复上面的调整过程,当环路进入锁定状态时,异或门鉴相器的输出 Ud 为一占空比 50%的方波,而 K 变模可逆计数器则周期性地产生进位脉冲输出 dec 和借位脉冲输出 inc,导致脉冲加减电路的输出 iout 周期性的加入和扣除半个脉冲。 本方案介绍了一种一阶 DPLL 的设计方法,利用 VHDL 语言配合 XILINX 的FPGA,为设计提供了极大的便利和性能保证。 DPLL 中可逆计数器模值可随意修改,来控制 DPLL 的跟踪补偿和锁定时间;同时,除 N 计数器的分频值也可随意 改变,使 DPLL 可跟踪不同中心频率的输入信号,而这些只需在设计中修改几行代码即可完成。 另外,设计好的 DPLL 模块还可作为可重用的 IP 核,应用于其他设计 [11][15]。 二、全数字锁相环 ADPLL 方案二 与此 ADPLL 相似的系统已在 TMS320 微单片机上用软件实现。 图所示系统由以下功能模块构建而成: (1)希尔伯特变换鉴相器 (2)一阶数字环路滤波器 (3)波形综合器 如模块图 32 所示,功能块中的算术和逻辑指令在同一时钟控制下运行,这意味着计算各模块输出变量的例行程序周期性的运行。 DCO 生成同信号 I 和正 交信号 Q,将他们提供给希尔伯特变换鉴相器去计算相位误差 ud~ θe,输出信号经过环路滤波器滤波,完成如下操作 : 110 nufanTudbnTuf (31) 式中, a1 和 b0 是滤波系数,由图中虚线框部分表示的数字环路滤波器滤波完成数学运算。 用软件实现的好处是改变 ADPLL 系统结构很简单,仅改变少数程序,一阶环路滤波器就可以变成二阶,同样也可以得到三阶 PLL[1]。 三、全数字锁相环 ADPLL 方案三 图 33 是一个全数字一阶环的实现 ,中心频率为 f0, 鉴相器采用 D 触发器,其增益 gd=1。 θe为高电平时 K 可逆计数器作加记数, θe为低平时 K 可逆计数器作减记数。 因此,环路锁定无相差时 , θe维持半占空比。 可逆计数器相当于一个积分器对相差进行记数,当正计数达到 K 时给出一个塞入脉冲 ca,当负记数达到 0 时给出一个扣除脉冲 bo。 当脉冲塞入 /扣除电路收到一个ca 脉冲,则对 f0。基于vhdl全数字锁相环的设计说明书
相关推荐
转换电路时,电路输出量 V0 和输入 d7~d0 的关系式为 V0=Vref28 RRf(d727+d626+...d020)。 DAC0832 芯片的特点 DAC0832 最具特色是输入为双缓冲结构,数字信号在进入 D/A 转前,需经过两个独立控制的 8 位锁存器传送。 其优点是 D/A 转换的同时, DAC 寄存器中保留现有的数据,而在输入寄存器中可送入新的数据。 系统中多个 D/A
CLR_CNT 信号用于在每次测量开始时,对计数器进行复位,以清除上次测量的结果,该复位信号高电平有效,持续半个时钟周期的时间。 EN 为计数允许信号,在 EN 信号的上升沿时刻计数模块开始对输入信号的频率 进行测量,测量时间恰为一个时钟周期 (正好为单位时间 1s),在此时间里被测信号的脉冲数进行计数,即为信号的频率。 然后将值锁存,并送到数码管显示出来。 设置锁存器的好处是使显示的数据稳定
AL、 FORTRAN、 PROLOG等。 这些语言 运行在不同硬件平台、不同的操作环境中, 它们适合于描述过程和算法, 不适合作硬件描述。 在利用 EDA 工具进行电子设计时,逻辑图、分立电子元件作为整个越来越复杂的电子系统的设计已不适用。 任何一种 EDA 工具,都需要一种硬件描述语言作为 EDA 工具的 工作语言。 早期的硬件描述语言, 如 ABELHDL、 AHDL,是由不同的 EDA
QuartusII 软件中仿真成功,现在下载到试验箱上以验证其功能。 实验中采用万用模式模式五,程序中各个端口锁定到试验箱上对应的管脚下载验证。 最后得数码管显示计时、计程和计费数据如下: 以上可知等待时间为 10分钟,行驶公里数为 23公里。 根据设计要求计算所得费用为: 5+( 23km3km) * /km+(10min2min)* /min=5+26+12=43元,与试验箱上所得结果相同
的技术指标。 电梯在运转时先响应同方向上的请求,只有当同 方向上的请求响应完后,才能转而响应不同方向上的请求。 (2)初始化状态为 1 楼等待门是关闭的。 这个就不用多解释了。 除了我对电梯的运行规律做出如上的分析外,我的另一个选择开发智能电梯控制器的原因是我想锻炼一下自己的逻辑思维和分析复杂问题的能力。 电梯的设计 概要 电梯的管脚 图 31 是电梯自动 控制的元器件模块符号。
URGE_TXABORT| PURGE_RXABORT | PURGE_TXCLEAR| PURGE_RXCLEAR )。 //清收发缓冲区//以下初始化结构变量CommTimeOuts, 设置超时参数 = 0FFFFFFFF。 = 0。 = 4000。 = 0。 = 4000。 SetCommTimeouts(hCom, amp。 CommTimeOuts )。 //设置超时参数 =