基于FPGA的数字式相位测量仪的设计与制作_第1页
基于FPGA的数字式相位测量仪的设计与制作_第2页
基于FPGA的数字式相位测量仪的设计与制作_第3页
基于FPGA的数字式相位测量仪的设计与制作_第4页
基于FPGA的数字式相位测量仪的设计与制作_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

1、i 基于基于 fpgafpga 的数字式相位测量仪的设计与制作的数字式相位测量仪的设计与制作 摘要:摘要:本设计给出了基于 fpga 核心的数字式相位测量的基本原理与实现方案,实现的 是对两列信号的相位差的精确测量并数字显示测量结果。该系统利用可编程逻辑器件 为主系统芯片,用 vhdl 对其进行设计开发,系统由相位测量仪、数字式移相信号发生 器和移相网络三个模块构成,整个装置具有原理简单,测量精度高,测量结果显示直观 的特点。本次设计在 eda 软件开发平台 max+plus上利用硬件描述语言 vhdl 进行设计 编程。 关键词:关键词:fpga/cpld、vhdl、测相仪 ii fpga-b

2、ased digital phase-measuring instrument design and production abstract: the design is based on the fpga core of the digital phase measurement and realization of the basic principles of the programme, the realization of the two signals in the phase of precision measurement and statistics show that th

3、e measurement results. the system of programmable logic devices based system chips, with their vhdl design and development, the system by the phase-measuring instrument, the digital shift believe that the phase-shifting, generator and a network of three modules, the device has a simple theory, measu

4、rement high- precision measurement results show that the visual characteristics. the design of the eda software development platform max + plus on the use of hardware description language vhdl design programming. key words: fpga / cpld;vhdl;measurement of the instrument 1 第 1 章 绪论 1.1 eda 技术概述 1.1.1

5、1.1.1 引言引言 20 世纪末,电子技术获得飞速发展,在其推动下,现代电子产品几乎渗透了社会 的各个领域,有力推动社会生产力的发展和社会信息化程度的提高,同时也使现代电 子产品性能进一步提高,产品更新换代的节奏也越来越快。现代电子技术的核心是 eda 技术,其依赖功能强大的计算机,在 eda 工具软件平台上,对以硬件描述语言 hdl 为系统逻辑描述手段完成的设计文件,自动完成逻辑编译、逻辑化简、逻辑分割、 逻辑综合、结构综合,以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。 eda 技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和 eda 软 件来完成对系统硬件功能的

6、实现。另一方面来看,在现代高新电子产品的设计和生产 中,微电子技术和现代电子设计技术是相互促进、相互推动又相互制约的两个技术环 节。前者代表了物理层在广度和深度上硬件电路实现的发展,后者则反映了现代先进 的电子理论、电子技术、仿真技术、设计工艺和设计技术与最新的计算机软件技术有 机的融合和升华。因此,严格地说,eda 技术应该是这两者的结合,是这两个技术领 域共同孕育的奇葩。 eda 技术已不是某一学科的分支或某种新的技能技术,它应该是一门综合性学科。 它融合多学科与一体,又渗透于各学科之中,打破了软件和硬件间的壁垒,使计算机 的软件技术和硬件实现、设计效率和产品性能合二为一,它代表了电子设计

7、技术和应 用技术的发展方向。 1.1.21.1.2 edaeda 技术发展趋势技术发展趋势 eda 技术的每一次进步,都引起了设计层次上的一次飞跃,从设计层次上分,70 年代为物理级设计(cad) ,80 年代为电路级设计(cae) ,90 年代进入到系统级设计 (eda) 。物理级设计主要指 ic 版图设计,一般由半导体厂家完成。 电路级设计:电子工程师接受系统设计任务后,首先确定设计方案,并选择能 实现该方案的合适元器件,然后根据具体的元器件设计电路原理图。接着进行第一次 仿真,其中包括数字电路的逻辑模拟、故障分析,模拟电路的交直流分析、瞬态分析。 在进行系统仿真时,必须要有元件模型库的支

8、持,计算机上模拟的检人输出波形代替 了实际电路调试中的信号源和示波器。这一次仿真主要是检验设计方案在功能方面的 正确性。 仿真通过后,根据原理图产生的电气连接网络表进行 pcb 板的自动布局布 2 线。在制作 pcb 板之前还可以进行 pcb 后分析,其中包括热分析、噪声及窜扰分析、 电磁兼容分析、可靠性分析等,并可将分析后的结果参数反标回电路图,进行第二次 仿真,也称为后仿真。后仿真主要是检验 pcb 板在实际工作环境中的可行性。 由此可见,电路级的 eda 技术使电子工程师在实际的电子系统产生前,就可以全 面地了解系统的功能特性和物理特性,从而将开发风险消灭在设计阶段,缩短了开发 时间,降

9、低了开发成本。 系统级设计: 进人 90 年代以来,电子信息类产品的开发明显呈现两个特点: 一是产品复杂程度提高;二是产品上市时限紧迫。然而,电路级设计本质上是基于门 级描述的单层次设计,设计的所有工作(包括设计忙人、仿真和分析、设计修改等) 都是在基本逻辑门这一层次上进行的,显然这种设计方法不能适应新的形势,一种高 层次的电子设计方法,也即系统级设计方法,应运而生。 高层次设计是一种“概念驱动式”设计,设计人员无须通过门级原理图描述电路, 而是针对设计目标进行功能描述。由于摆脱了电路细节的束缚,设计人员可以把精力 集中于创造性的方案与概念的构思上,一且这些概念构思以高层次描述的形式输人计 算

10、机,eda 系统就能以规则驱动的方式自动完成整个设计。这样,新的概念就能迅速 有效地成为产品,大大缩短了,产品的研制周期。不仅如此,高层次设计只是定义系 统的行为特性,可以不涉及实现工艺,因此还可以在厂家综合库的支持下,利用综合 优化工 具将高层次描述 转换成针对某种工艺优化的网络表,使工艺转化变得轻而易 举。 利用 eda 技术进行电子系统设计的最后目标,是完成专用集成电路 asic 的设计 和实现,asic 作为最终的物理平台,集中容纳了用户通过 eda 技术将电子应用系统 的既定功能和技术指标具体实现的硬件实体。 随着市场需求的增长,集成工艺水平的可行性以及计算机自动设计技术的不断提 高

11、,单片系统,或称系统集成芯片成为 ic 设计的发展方向。这一发展趋势表现在如下 几个方面: (1)超大规模集成电路的集成度和工艺水平不断提高,深亚微米工艺,如 0.13m、90nm 已经走向成熟,在一个芯片上完成系统级的集成已成为可能。 (2)由于工艺线宽的不断缩小,在半导体材料上的许多寄生效应已不能简单被忽略。 这就对 eda 工具提出更高的要求。可编程逻辑器件开始进入传统的 asic 市场。 (3)电子系统的成本、减少系统的体积、设计速度也成为一个产品能否成功的关键 因素,促使 eda 工具和 ip 核应用更为广泛。 (4)高性能的 eda 工具得到长足的发展,其自动化和智能化程度不断提高

12、,为嵌入 3 式系统设计提供了功能强大的开发环境。 (5)计算机硬件平台性能大幅度提高,为复杂 soc 设计提供了物理基础。 此外,随着系统开发对 eda 技术的目标器件各种性能要求的提高,asic 和 fpga 将更大程度相互融合。现在,传统 asic 和 fpga 之间的界限正变的模糊。系统 级芯片不仅集成 ram 和微处理器,也集成 fpga。这个 eda 和 ic 设计工业都朝这个 方向发展,这并非是 fpga 与 asic 制造商竞争的产物,对于用户来说,意味着有了 更多的选择。 1.2 硬件描述语言 vhdl 1.2.11.2.1 vhdlvhdl 语言的产生及特点语言的产生及特点

13、 vhdl 的英文全名是 vhsic(very high speed integrated ciruithardwre description language),于 1983 年由美国国防部(dod)发起创建,由 ieee(the institue of electrical and electronics engineers)进一步发展,并在 1987 年作为“ieee 标准 1076” 发布。从此,vhdl 成为硬件描述语言的业界标准之一。vhdl 最显著特点是: (1)与其他的硬件描述语言相比,vhdl 具有更强的行为描述能力,决定了它成为 系统设计领域最佳的硬件描述语言。 (2)对于

14、 vhdl 完成的一个确定设计,可以利用 eda 工具进行逻辑综合和优化, 并自动的把 vhdl 描述设计转化为门级网表。这种设计突破了传统门级设计中的瓶颈, 极大的减少了电路设计的时间和错误发生率,降低了开发成本,缩短了设计周期。 (3)vhdl 对设计的描述具有相对的独立性,设计者可以不懂硬件的结构,也不必 关心最终的目标器件是什么而进行独立的设计。正因为 vhdl 的硬件描述与具体的工 艺和硬件结构无关,vhdl 设计程序的硬件实现目标器件有广阔的选择范围。 (4)由于 vhdl 具有类属描述语句和子程序调用等功能,对于已完成的设计,在不 改变源程序的前提下,只需改变类属参数或函数,就能

15、改变设计的规模和结构。 vhdl 语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模 和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。用 vhdl 进行电 子系统设计的一个很大的优势是设计者可以专心致力于其功能的实现,而不需要对不 影响功能的与工艺有关的因素花费过多的时间和精力。 4 1.2.21.2.2 基于基于 vhdlvhdl 的设计方法的设计方法 图 1-1 给出了自顶向下的设计流程的框图说明,它包括以下设计阶段: 图 1-1 自顶向下的设计流程 与其他的硬件描述语言相比,vhdl 具有较强的行为仿真级与综合级的建模功能, 这种能远离具体硬件,基于行为描述方式

16、的硬件描述语言恰好满足典型的自顶向下的 设计方法,因而能顺应 eda 技术发展的趋势,解决现代电子设计应用中出现的各类问 题。 1.3 可编程逻辑器件 可编程逻辑器件 pld 是 20 世纪 70 年代发展起来的一种新的集成器件。pld 是大 规模集成电路技术发展的产物,是一种半定制的集成电路,结合计算机软件技术可以 快速、方便的构建数字系统。 1.3.11.3.1 可编程逻辑器件的原理结构框图可编程逻辑器件的原理结构框图 不论是简单的还是复杂的数字电路系统都是由基本门来构成的,如与门、或门、 非门、传输门等。由基本门构成的两类数字电路,一类是组合电路,在逻辑上输出总 是当前输入状态的函数;另

17、一类是时序电路,其输出是当前系统状态与当前输入状态 的函数,它含有存储元件。人们发现任何组合逻辑电路都可以用与门-或门二级电路实 现。同样任何时序电路都可组合电路加上存储元件构成。由此,人们提出了一种可编 程电路结构,即乘积项逻辑可编程结构。 其原理结构图如图 1-2 所示: 5 图 1-2 基于 pld 器件的原理结构图 1.3.21.3.2 可编程器件的分类可编程器件的分类 可编程逻辑器件种类很多,较常见的分类是按照集成度来区分的 pld 器件,具体 区分时,一般以 gal22v10 作为比较,集成度大于 gal22v10 称为复杂 pld,反之归 类为简单 pld。如下图 1-3: 图

18、1-3 pld 按集成度分类 1.4 基于 fpga 的 eda 开发流程及 max+plus系统 1.4.11.4.1 基于基于 fpgafpga 的的 edaeda 开发流程开发流程 (1)设计输入 将电路系统以一定的表达方式输入计算机,是在 eda 软件平台上对 fpga/cpld 开发的最初步骤,使用 eda 工具的设计输入可分为两种类型。 图形输入 图形输入通常包括原理图输入、状态图输入和波形图输入等方法。图形输入中常 用的是原理图输入方法。其缺点主要是由于图形设计方式并没有得到标准化,不同的 eda 软件中的图形处理工具对图形的设计规则、存档格式和图形编译方式都不同,因 此图形的文

19、件兼容性较差,难以交换和管理;随着电路设计规模的扩大,原理图输入 描述方式必然引起一系列难以克服的困难,如电路功能原理的易读性下降,错误排查 困难,整体调整和结构升级困难。 硬件描述语言文本输入 这种方式与传统的计算机软件语言编辑输入基本一致,就是将使用了某种硬件描 述语言(hdl)的电路设计文本,如 vhdl 的源程序进行编辑输入。 6 可以说,应用 hdl 的文本输入方法克服了上述原理图输入法存在的所有弊端,为 eda 技术的应用和发展打开了一个广阔的天地 hdl 综合 综合过程将把软件设计的 hdl 描述与硬件结构挂钩,是将软件转化为硬件电路的 关键步骤,是文件描述与硬件实现的一座桥梁。

20、 当输入的 hdl 文件在 eda 工具中检测无误后,首先面临的是逻辑综合,因此要 求 hdl 源文件中的语句都是可综合的。 整个综合过程就是将设计者在 eda 平台上编辑输入的 hdl 文本、原理图或状态 图形描述,依据给定的硬件结构组件和约束控制条件进行编译、优化、转换和综合, 最终获得门级电路甚至更底层的电路描述网表文件。 适配 适配器也称结构综合器,它的功能是将由综合器产生的网支文件配制于指定的目 标器件中,使之产生最终的下载文件。 逻辑综合通过后必须利用适配器将综合后的网表文件针对某一具体的目标器件进 行逻辑映射操作,其中包括底层器件配制、逻辑分割、逻辑优化、逻辑布局布线操作。 适配

21、完成后可以利用适配产生的仿真文件作确的时序仿真,同时产生可用于编程的文 件。 时序仿真和功能仿真 时序仿真。 就是接近真实期间运行特性的仿真,仿真文件中包含了器件硬件特性参数,因而, 仿真精度高。但时序仿真文件必须来自针对具体器件的综合器与适配器 功能仿真。 是直接对 vhdl、原理图描述或其他描述形式的逻辑功能进行测试模拟,以了解 其实现的功能是否满足原设计的要求,仿真过程不涉及任何具体器件的硬件特性。不 经历综合与适配阶段,在项目设计编辑编译后即可进入门级仿真器件进行模拟测试。 编程下载 把适配后生成的下载或者配置文件,通过编程器或编程电缆向 fpga 或 cpld 下 载,以便进行硬件调

22、试和验证。 硬件调试 最后是将含有载入了设计的 fpga 或 cpld 的硬件系统进行统一测试,以便最终 验证设计项目在目标系统上的实际工作情况,以排除错误,改进设计。 7 1.4.21.4.2 max+plusmax+plus系统系统 max+plus是 altera 公司提供的 fpga/cpld 开发集成环境,max+plus界面 友好,使用便捷,被誉为业界最易用易学的 eda 软件。max+plus软件提供了一种 与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。 使用 max+plus,设计者无需精通器件内部的复杂结构,而只需要用自己熟悉 的设计输入工具建立设计

23、,max+plus会自动把这些设计转换成最终结构所需的格式。 由于有关结构的详细知识已装入开发工具,设计者不需手工优化自己的设计,因此设 计速度非常快。 8 第 2 章 课题要求与系统设计方案 2.1 课题要求 利用可编程逻辑器件为主系统芯片,用 vhdl 对其进行设计开发,设计并制作一 个低频相位测量系统。该系统包括相位测量仪、数字式移相信号发生器和移相网络三 部分。主要设计内容为:cpld 开发技术与 vhdl 设计编程概述;用 vhdl 完成测量 相位和数字式移相信号发生器的程序设计,并完成测量芯片的 asic 制作;外围 a/d、d/a 转换及处理的硬件设计与制作;联机统调,完成所有硬

24、件调试,做成实际系 统。 2.2 总体方案设计 相位测量仪设计方法很多,总体上有数字和模拟两种设计方法。 方案一:模拟测量方法:用过零比较器将输入和输出的正弦波整形为方波,送鉴 相器鉴相,鉴相电路由异或门和低通滤波器组成,异或门的输出为脉冲方波,其占空 比与两个信号的相位的相位差成正比,经过低通滤波器,即可将占空比转换成直流电 压,再经 a/d 后,由 cpu 读取相位差值。该方案的硬件较复杂,实现有困难。 方案二:纯单片机方式:即有单片机为主体,辅助放大整形单元,单片机利用整 形之后的两个方波信号的边沿作为 cpu 的两个中断源,并测量两次中断之间的时间间 隔,这种方法硬件电路少,但要求 c

25、pu 的具有较高的时钟频率。用通常的单片机难以 完全满足本题的精度要求。 方案三:以 fpga/cpld 为主的方式:即用 fpga 完成鉴相、计数、数据处理、 显示等功能数据。这种方法系统结构紧凑,可以完成复杂的测量与控制,操作方便, 可以在很高的频率下工作,完全满足本题的要求。 综上所述,我选择方案三,同时将所以的模块设计均用 vhdl 文本设计方式,使 得本设计具有交互性好,功能调整与修改方便的优点。 2.3 系统设计 本设计要求设计相位测量仪,数字式移相信号发生器,移相网络三部分。 9 2.3.12.3.1 相位测量仪相位测量仪 相位测量仪主要由放大整形和数字化测量两大部分构成,其框图

26、 2.1 如下: 图 2.1 相位测量仪框图 其中,放大整形电路的主要任务是将两路同频率信号进行放大整形为方波信号, 送入测量仪去测量它们的之间的相位差,测量部分通过相位比较获得一个与 a、b 两 列信号相位差成正比的矩形脉冲并送入计数器计数,其计数值大小便反映了相位差, 将其处理后以数字量的形式准确地显示出来。 2.3.22.3.2 移相网络移相网络 模拟移相,由 r,c 组成移相网络进行移相,运用运放隔离后用电位 器合成,只需合理选取 r、c 参数,使其满足,便可通过电位器rc1 调节实现中时移相和幅值的变化要求,可以得到-90 到+90 任意相位角度。 2.3.32.3.3 数字式移相信

27、号发生器数字式移相信号发生器 本模块的基本原理框图如图 2.2。 图 2.2 数字式移相信号发生器框图 其基本思想是将要产生的正弦信号的一个周期的数字样本存储在波形数据检索表 中,然后通过了一个地址发生器对检索表中的波形数据周而复始地寻址读出,在经 d/a 变换和滤波后获得正弦波形,信号发生器的相位产生只需要改变地址计数器的计 数初值便可实现,由于从存储器中所读出的波形样本数是固定的,只要一个周期中的 样本数越大(我们选取 360 个点)输出波形的质量较高,其相位噪声较低且不随输出 频率的变化而变化,另外,用 vhdl 可以很方便地设计一个可变模计数器,使得输出 a b fpga . . .

28、. 10 频率可以通过键盘任意预值和改变,本方案是一种性能优异的可移相式信号发生器。 本设计的硬件电路主要包括 fpga 主芯片两片,分别完成数字化相位测量和数字 式移相信号发生器两个主要功能单元,其设计方法均采用 vhdl 编程,我们采用的是 altera 公司的 acexik 系列芯片,其特点是将查找表(lvt)和 eab 相结合,提供了 效率最高而价格低廉的结构,我们所选用的 ep1k50 芯片的最大器件门数达到了 199000 门(其中门型可用门为 5000 个) ,拥有 249 个最大 i/o 引脚和 10 个 eab 块, 具体设计见软件设计部分。 2.4 系统设计总图 图 2.3

29、 系统设计总图 如图 2.3 所示,整个系统是由芯片系统和外围电路两部份构成,其中芯片我们选用 144 个引脚 30 万门电路的 epf10k30etc144-1 主要设计芯片和 at89c51 单片机芯片。外 围电路主要由外部电源、时钟产生电路、键盘按钮等。 11 第 3 章 硬件电路设计 3.1 移相网络移相网络 由 r,c 组成移相网络进行移相原理图如下图 3.1。 图 3.1 移相网络原理图 3.1.13.1.1 电路工作原理的理论分析电路工作原理的理论分析 设移相输入电压为 ui(s) c 点为 rc 高通滤波电路的输出 公式 1 d 点为 rc 低通滤波电路的输出 公式 2 sis

30、d u ds d u 由此可知 e 点电位为: 公式 3 b 输出电位为: a b + + + + - - - - r r c c c d r1 r2 r3 r4 r5 r6 r7 r8 e . . . rc d 1 sisc u ds s u sisdscsdse u ds dkk kuuuu )1 ( 11 1)()()( 21 2 1 rr r k 56 6 4 3 2 1 rr r r r k 12 公式 4 a 输出电位为: 公式 5 b 输出相对于 a 输出的相移为: 公式 6 因为 k1 的变化范围为 01,则的变化范围为 090,要使 值在到 1 45 范围内变化,则只能使 =

31、 ,也就是要求。 45 2 45 rc1 只要电路元器件的参数选择满足条件时,通过调节电位器 rw 就可以使rc1 得输出 a 与 b 之间的相位差在到范围内变化,以满足题目要求。45 45 3.1.23.1.2 电路元件参数选择电路元件参数选择 rc 参数的选择要求,则当输入信号频率为 100hz 时rc1 3 1059 . 1 200/1 rc 取 c=0.01uf, r=160k 当输入信号频率为 1khz 时 电容 c 取值不变,r=16k 当输入信号频率为 10khz 时 电容 c 取值不变,r=1.6 k 电位器选择:取 0 到 50k 的可调电位器。 r4,r5 的选择:当时,c

32、 点电位相对移相输入电压的衰减最大,所以选rc1 同相放大器的放大倍数为 2,则 r4=r5,选 r4=r5=10 k 运算放大器选择:这里选择 lm741 芯片。 输出电位器选择:2k 多圈电位器。 3.2 放大整形单元 该单元作为相位测量仪的输入通道,其主要功能是提高仪器的输入电阻和降低共 模干扰,并提供边沿稳定的矩形脉冲,为测量仪器进行数字化测量做准备。 为了简化设计,输入级,放大级、整形级全部采用模拟集成电路来实现,共采用 了三个高速模拟芯片:lh0033(缓冲器) 、max4016(双运放) 、max902(双电压比 sisb u ds dkk ku )1 ( 11 2 sisa v

33、ku 3 87 8 3 rr r k 21 1 1 arctan 1 arctan d w d w k k 13 较器)来实现,其中 lh0033 要求用10v 供电,其他器件用5v 供电。 该单元电路图如图 3.2。 图 3.2 放大整形单元电路图 为了使相位仪的输入阻抗大于 100k,我们现在选用了具有 fet 输入的宽带集成缓 冲器 lh0033 做输入级,该器件的输入电阻高达 1010,输出电阻只有 10,增益近 似等于 1,带宽可达 100mhz,用它来做输入级是非常理想的。 放大级的设计主要考虑增益和带宽的指标,因为后面的整形级才用了电压比较器, 所以放大级的增益应根据频率计指标提

34、出的最小输入信号幅度(0.3v)和电压比较器 所要求的输入电压的最小摆率来决定,当加到电压比较器输入端的信号频率为 0.1hz 时,只要其幅度大于 0.8v,它的过零压摆率就能满足大于 0.5v/s 的要求。 整形级选用输出为 ttl 电平的高速集成双电压比较器 max902 来构成,它比 ttl 电路有触发灵敏度高,因而可降低放大级增益的优点,此外,还可把触发电平调节电 路直接设置在电压比较器的输入端,实现起来比较方便。 100 100 100 82 470 100m 470 500 rf2 500 rf1 5000 rf3400 d1 d2 0.1uf 0.1uf 0.1uf 0.1uf

35、0.1uf 0.1uf 0.1uf0.1uf 0.1uf 6.8uf 6.8uf 6.8uf 6.8uf 6.8uf 6.8uf 6.8uf 6.8uf 6.8uf 0.1uf +5v +5v +5v +10v -5v-10v -5v -5v a1 a2 a3 a4 lh0033 max4016 max4016 max902 rp1 200 +5v + + + + 1 6 7 9 10 12 4 4 5 6 7 8 1 2 3 14 5 2 3 8 - - - ttla 1 + + + + + 5 10 7 g3=4 . . a . . . . 2dk17a a a b . . . 14 第

36、4 章 软件设计 4.1 相位测量系统 将两列相隔一定相位差的同频率正弦波信号过零比较为方波 cp1、cp2,示意图如 下图 4.1。 图 4.1 相位测量示意图 对两方波信号 cp1、cp2 信号进行异或,得到矩形波 cp3,用高频方波脉冲对 cp1 的一个周期进行计数,设计数值为 y,对 cp3 的高电平时间进行计数,计数数值 为 x,故相位差为: 整个相位差测量模块可分为四个小模块,分别是计数模块、数据溢出处理模块、运算 模块、数据选择模块。 4.1.14.1.1 计数模块计数模块 此模块的处理的信号为 cp1 和 cp2 异或后的信号 cp3,和 cp1 经过分一次频后的 信号 cp4

37、,分别对 cp3 和 cp4 信号的高电平为闸门时间进行计数,并将计数值输出。 根据课题要求,相位计数为(0359.9)分辨率为 0.1,相位差计算公式的计算 公式为 使相位差的分辨力达到 0.1,则 a 至少要满足递增为一时对应的相位差递增为 0.1。 而 a 的变化范围为(0b),因此当 b 满足 cp1 cp2 cp3 2 2 2 wt wt wt v v v 34 34 34 0 0 0 0 0 . 360 y x 0 0 . 360 b a 15 b3600 时 a 的变化范围大于(03600) ,满足课题要求。为了更加精确的测量出相位差,本 设计取 x 的位数为 14 位,在满足课

38、题要求频率范围(20hz20khz)内 x 的变化范围 为 40968191;y 的位数为 15 位,故满足课题要求频率范围(2020khz)内 y 的变 化范围为(819216383) 。在整个周期相同的一闸门时间 t 内的计数值为 n,会产生 1 个脉冲的误差,故误差为: 要使测量绝对误差2 即 mf6 . 3 0 为基准脉冲,应大于 3.6mhz,本设计采用的基准脉冲频率为 40mhz。 0 f 计数设计顶层图如下图 4.2,vhdl 语言描述(jishu2)见附录 1.1。 图 4.2 计数模块顶层设计图 4.1.24.1.2 数据溢出处理模块数据溢出处理模块 由于乘除法占用的资源很多

39、,可能在一片芯片内部都不能实现,通过移位模块将 要进行乘除法运算的数据 x、y 同时除以 2n(n 为移位的位数),而对相位差计算。 移位不影响相位差测量。 移位设计顶层图如下图 4.3,vhdl 语言描述(yiwei)见附录 1.2。 图 4.3 移位模块顶层设计图 %100 360 220 %100 n 1 0 f khz e 0 0 0.360* 0.360*) 2 2 ( b a b a n n %100 1 n 16 4.1.34.1.3 运算模块运算模块 这一模块实现相位差转化的计算表达式 = 0 0 . 360 b a 在处理过程中,因为 vhdl 语言在处理除法运算过程中不能对

40、浮点进行处理,为 了避免误差,只能先用乘法,再用除法,具体参照 vhdl 语言描述。 乘法设计顶层图如下图 4.4,vhdl 语言描述(tychenfa )附录 1.3。 图 4.4 乘法顶层设计图 除法设计顶层图如下图 4.5,vhdl 语言描述(kchufa )附录 1.4。 图 4.5 除法顶层设计图 4.1.44.1.4 数据选择模块数据选择模块 运算出来的结果为相位差范围为(0180) ,判断 cp1 与 cp2 之间的超前和滞后 的关系,使相位差的范围为(0359.9)范围内,具体处理过程如下: 先判断 cp1,cp2 的滞后超前,以 cp1 为准,cp2 为滞后,则输出为=360

41、0- ,cp2 为滞后,则输出为=再显示,加上小数点,便可在显示管上显示相位 差大小,输出 12 位二进制经译码形成 bcd 码。 数据选择模块设计顶层如图 4.6,vhdl 语言描述(xushu1)附录 1.5。 图 4.6 数据选择模块顶层设计图 12 位二进制经译码形成 bcd 码电路图如下图 4.7。 17 图 4.7 译码电路图 封装元件如下图 4.8。 图 4.8 转换电路封装元件 整个相位测量模块顶层设计如图 4.9。 图 4.9 数字移相信号发生器顶层模块 各小模块功能如下所示: 18 jishuz:实现计数模块功能,用基本脉冲同时对 cp1 的一个周期和 cp1、cp2 异

42、或后的脉冲信号高电平时间计数, yiwei:实现移位模块功能,将计数值 x,y 同时除二移位。 tychenfa:实现乘法运算。 kchufa:实现除法运算。 xushi:对 cp1、cp2 进行超前还是|滞后判断,并数据选择输出。 scan_8_dot: 实现动态扫描译码显示,vhdl 语言描述附录 1.6。 12-2-bcd:将 12 位二进制数转换为 bcd 码,实现译码功能。 各输入信号的流程图如图 4.10。 图 4. 10 输入信号的流程图 封装元件如下图 4. 11。图 4. 11 位测量封装元仿真波形如下 4.12。 图 4.12 顶层模块仿真波形 x y x y cp1 xo

43、r cp2 clk cp2 x x3600 3600*x/y . . . cp2 cp1 3600-360*x/y flag 19 4.2 数字移相信号发生器 该数字式移相信号发生器由键盘控制模块、显示控制模块、可变模分频器模块、 地址生成器模块、波形数据存储模块等五个模块。 4.2.14.2.1 键盘控制模块键盘控制模块 该模块有键盘扫描、数据流控制等部分。 键盘扫描键盘扫描原理图如图 4.13 所示,由分频器电路、键盘扫描计数器电路、 键盘 column 和 row 按键检测电路、按键抖动消除电路、键盘编码电路等组成. 键盘扫描频率一般为 1khz 左右,按键(key_pressed)为使

44、能 0 位,当使用者尚 未按下键盘时,key_pressed=1,此时由 015 反复计数,并输出计数值作为按键检 测电路的输入扫描键盘,直到使用者按下键盘时 key_pressed=0 ,计数器停止持续输 出计数值。 图 4.13 键盘扫描原理图 键盘控制部分主要分配按键功能,使该发生器有条不紊的工作。 键盘扫描设计顶层电路如图 4.14,vhdl 语言描述(jianpan_g)附录 1.7。 图 4.14 键盘扫描顶层设计图 键盘控制设计顶层电路如图 4.15,vhdl 语言描述(jian_ctrl)附录 1.8。 图 4.15 键盘控制顶层设计图 20 4.2.24.2.2 显示控制模块

45、显示控制模块 液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍 式仪表和低功耗应用系统中应用广泛。 我们采用 at89c51 单片机来控制常用的 2 行 16 个字的字符型液晶模块 dm-162, 根据显示的容量可以分为 1 行 16 个字、2 行 16 个字、2 行 20 个字,分别控制频率与 相位显示。 dm-162 液晶模块内部的字符发生存储器(cgrom)已经存储了 160 个不同的点 阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假 名等,每一个字符都有一个固定的代码,比如相位符号 的代码是 11110010b(f2h) ,显示时模块把

46、地址 f2h 中的点阵字符图形显示出来,我们就能看 到字母。 dm-162 液晶显示模块可以和单片机 at89c51 直接接口,电路如图 4.16 所示。 图 4.16 显示控制电路图 带有小数点的显示扫描模块如图 4.17,vhdl 语言描述(scan4_8_dot)附录 1.9。 图 4.17 显示扫描顶层设计图 4.2.34.2.3 波形存储模块波形存储模块 该模块以存储器的方式中存储了正弦波形半个周期的 180 个数据点,一个周期后 21 读取的数据就为 360 个点。这样就满足了题目中相位差步进为 1 的要求。当输入选 择地址不同时输出相应地址的 8 位波形数据值,提供给 a/d 转

47、换。 在此模块中也引出了两个方波波形,此方波随键盘输入频率相位值不同而改变。 可供测试用。 波形存储设计顶层如图 4.18,vhdl 语言描述(cosin_32)附录 1.10。 图 4.19 波形存储顶层设计图 余弦函数设计顶层如图 4.19,vhdl 语言描述(cosin_180)附录 1.11。 图 4.19 余弦函数顶层设计图 4.2.44.2.4 地址生成器模块地址生成器模块 对波形存储器存储的每一个数据都赋一个地址,每个数据都对应一个固定地址, 在读取某一数据时,可通过它的地址对它寻址读取。移相数字发生器的输出脉冲信号 每个周期有 360 个数据,故存储器的地址范围为(0360)

48、。键盘输入移相值并通过二 进制转化为 add_x 数值,通过地址累加 count=count+1 得到新地址。因为在波 形数据表里只有波形的一半数据,所以在地址计数到 180 后地址是通过 add=360- count 来对波形表寻址。而移相地址为 add2=add1+add_x。 ,改变存储器地址, 便可改变移相数字发生器的相位。 地址生成器设计顶层如图 4.20,vhdl 语言描述(cosin_180)附录 1.12。 图 4.20 地址生成器顶层设计图 22 bcd 码转换成 10 位二进制码电路图如下图 4.21。 图 4.21 bcd 码转换成 10 位二进制码电路图 封装元件如图

49、4.22。 图 4.22 电路图封装元件 输出选择设计顶层图如图 4.23,vhdl 语言描述(cosin_180)附录 1.13。 图 4.23 输出选择顶层设计图 将地址生成器和波形存储模块连接电路图 4.24。 图 4.24 连接电路图 23 封装元件如下图 4.25。 图 4.25 封装元件 4.2.54.2.5 可变模分频器模块可变模分频器模块 对一基准频率进行可变模分频,当基准频率足够大,改变模的大小得到不同频率 的脉冲信号。以此脉冲信号对地址生成器和波形存储器读数,地址生成器和波形存储 器读出速度决定了移相数字信号发生器信号的频率大小,因此,控制变模分频器模的 大小便可控制移相数

50、字信号发生器的输出频率。 移相数字信号发生器一个周期的数据采样点的个数为 360 个点,若移相数字信号 发生器的输出的正弦信号频率为 f, 对存储器的读数脉冲频率既变模分频器的输出频率 f0=360*f, 基准脉冲频率为 40mhz,变模分频器的模 m 的表达式为 fff/11111136040/40 实现除法电路,预定被除数为 111111,输入的除数为要预制的移相数字信号发生器 输出正弦波信号频率大小。输出的商即为模 m。 对基准频率信号(40mhz)进行 m 分频,便可得到对地址生成器和波形存储器读 出速度脉冲. 除法电路设计顶层模块如图 4.26,vhdl 语言描述(chufa_1)附

51、录 1.14 图 4.26 除法电路设计顶层图 分频电路设计顶层模块如图 4.27,vhdl 语言描述(cp_pinlv)附录 1.15。 图 4.27 分频电路设计顶层图 bcd 码转换成 14 位二进制码电路图如下图 4.28。 24 图 4.28 bcd 码转换成 14 位二进制码电路图 封装元件如图 4.29 图 4.29 转换电路封装元件 可变模分频器模块电路连接如下图 4.30。 图 4.30 可变模分频器电路图 可变模分频器顶层文件如下图 4.31。 图 4.31 可变模分频器顶层文件 移相数字信号发生器顶层模块如下图 4.32。 25 图 4.32 移相数字信号发生器顶层模块

52、各小模块功能如下所示: jianpan_g: 键盘扫描。 jian_ctrl:键盘控制。 fenpin:得到不同频率的脉冲信号。 scan_8_dot: 带有小数点的显示扫描模块。 cos_zuhe: 对波形存储器存储的每一个数据都赋一个地址,每个数据都对应一 个固定地址,在读取某一数据时,可通过它的地址对它寻址读取。 box_ctrl: 片选。 youhua_xianshi: 当高位为零,那么就不显示, “c”为不显示标志。 封装元件如下图 4.33。 图 4.33 移相数字信号发生器封装元件 26 4.3 频率测量 将待测正弦波信号经过比较器后等到一个方波信号,以此方波信号为基准计数脉 冲

53、 1 秒钟计数的大小即为待测信号在这一秒钏内的频率大小。 用 vhdl 语言描述频率测量原理的过程如下图 4.34。 图 4.34 频率测量原理图 其中,clk 为基准倍,频率大小为 40mhz。基准信号经过分频后得到周期为 0.1s、0.01s、0.0001s,占空比接近为 1 的闸门脉冲信号,并以次作为被测信号的闸门 时间对被测信号同时计数,并判断计数值的大小。当计数值小于 1000 时,置标志位为 0;大于 1000,置标志位为 1;显然,三个标志位的判断有先后关系,flag1 最先被判 断,依次是 falg2,flag3.通过标志位选择计数值 count1,count2,count3

54、显示。 flag1 的优先级最高,只要 flag1=1, 数据选择显示器立即选择 count1 显示。 flag2 的优先级次之,当 flag1=0,flag2=1 时,数据选择显示器立即选择 count2 显 示。 flag3 的优先级最低,只有当 flag1=0,flag2=0,flag3=1 时,数据选择显示器才选 择 count3 显示。 显示频率的单位为 khz,当闸门时间为 0.001s 时,若信号频率为 f,则 count1=(f/1000)+-1, 而频率显示为 f/1000khz,即计数值;当闸门时间为 0.01s 时,显示的最低位显示 小数点即可;当闸门时间为 0.1s 时

55、,显示的次低位显示小数点即可表示频率值。 经过分频等到一个高电平时间为 1s 的闸门脉冲信号,十进制计数器直接把计数, 结果转化为 bcd 码,然后右闸门脉冲信号的下降沿将计数结果锁存,并输出。 频率测量电路设计模块如图 4.35。 27 图 4.35 频率测量电路设计模块 各小模块功能如下: fenping:将基准频率进行分频。vhdl 语言描述(fenping)附录 1.16。 jishu1:以 0.1s 为闸门时间,进行 bcd 码计数。vhdl 语言描述 jishu1)附录 1.17。 jishu2:以 0.01s 为闸门时间,进行 bcd 码计数。vhdl 语言描述(jishu2)

56、附录 1.18。 jishu3:以 0.001s 为闸门时间,进行 bcd 码计数。vhdl 语言描述(jishu3) 附录 1.19。 xuanze:数据选择。vhdl 语言描述(cp_pinlv)附录 1.20。 scan_8_dot:译码显示。vhdl 语言描述(scan_8_dot)附录 1.21。 封装元件如下图 4.36。 图 4.36 频率测量电路顶层 28 第 5 章 程序下载 程序已经编译通过,仿真也和预先设想的相同,但是必须通过下载调试来验证设 计的正确与否。是否能经得起硬件芯片运行实践的检验。在一般的 eda 工程中设计项 目器件,是一个实际的电路系统或是一个电子产品。在

57、此,编程下载就是将自己完成 的逻辑设计烧录到具体的器件中去。 在硬件方面,本课题选用了 altera 公司开发的 acex1k 的芯片。fpga 系统的 关键技术之一是要用硬件描述语言来描述 fpga 的硬件电路。所以本课题前面介绍了 硬件描述语言的设计、仿真和综合等技术,下面将介绍下载及外围硬件电路的设计。 5.1 引脚锁定 maxplus仿真结果正确,就可以将设计下载到选定的器件中进行系统硬件测 试。以便最终了解设计的项目的正确性。本次实验是在 sz-eda 超强型开发实验仪进 行,具体操作方法是: 图 5.1 max+plus ii 上面 max+plusii 完成了编译,把我们定义的

58、i/o 脚自动分配给了器件 ep1k30tc184-3。选择 max+plus ii-floorplan editor,进入底层编辑工具,再选择 layout-device view 和 layout-current assignments floorplan,显示当前的管脚分配 情况。右上角为 unassigned nodes use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity jishu2 is port(cp1,cp2: in std_logi

59、c; clk: in std_logic; cp_fen1: out std_logic;-1hz cp_4: buffer std_logic;-200k flag: out std_logic; count11:out std_logic_vector(21 downto 0); count21:out std_logic_vector(20 downto 0); end jishu2; architecture pengshu of jishu2 is signal cp:std_logic; signal cpp:std_logic; signal mm: integer range

60、0 to 200; signal count: integer range 0 to 200000; signal count_1:std_logic_vector(21 downto 0); signal count_2:std_logic_vector(20 downto 0); signal count1: std_logic_vector(21 downto 0); signal count2: std_logic_vector(20 downto 0); begin process(cp1) -cp1 分频 begin if(cp1event and cp1=1) then cpp=

温馨提示

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

评论

0/150

提交评论