收藏 分销(赏)

基于FPGA的FSK编码的VHDL实现.doc

上传人:a199****6536 文档编号:5595163 上传时间:2024-11-13 格式:DOC 页数:33 大小:950KB 下载积分:12 金币
下载 相关 举报
基于FPGA的FSK编码的VHDL实现.doc_第1页
第1页 / 共33页
基于FPGA的FSK编码的VHDL实现.doc_第2页
第2页 / 共33页


点击查看更多>>
资源描述
编 号: 审定成绩: xxxx大学 毕业设计(论文) 设计(论文)题目: 基于FPGA的FSK编码的VHDL实现 学 院 名 称 : 学 生 姓 名 : 专 业 : 班 级 : 学 号 : 指 导 教 师 : 答辩组 负责人 : 填表时间: 年 月 重庆邮电大学教务处制 xxxx大学本科毕业设计(论文) 摘要 FPGA是英文Field-Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它具有可编程逻辑器件现场可编程的灵活性, 又具有门陈列器件功能强、高集成度和高速度的优点, 因此在现代通信系统设计中被越来越广泛的应用。 本论文从系统仿真和FPGA实现对FSK调制进行研究。在仿真方面用QuartusII作为VHDL语言实现FSK的仿真平台,实现系统波形仿真。实现用Altera公司的CycloneII作为处理芯片,配合外围电路完成FSk的调制功能。通过VHDL语言编程,把逻辑电路的语言化,用QuartusII生成调制所需的各个模块,最后实现FSK的调制。 本论文共分为三章,第一章主要介绍了FPGA的基本原理以及应用、发展现状,另外还介绍了VHDL语言的特点;第二章中较为详细的讲述了FSK调制的基本原理,其中包括FSK的多种调制方法等相关知识。第三章介绍了用QuartusII实现2FSK调制算法的实现,其中包括对各个功能模块的介绍和仿真结果及其意义。 【关键词】FPGA VHDL FSK调制 ABSTRACT FPGA is a Field-Programmable Gate Array English acronym, that is, field programmable gate array, it is in PAL, GAL, EPLD based on programmable devices such as the further development of the product.It has a programmable flexibility of field programmable logic devices, but also has powerful function gate array devices, high integration and speed advantage, so in the modern communications system design is more widely used. This paper from the system simulation and FPGA implementation of the FSK modulation study.QuartusII in simulation using VHDL language FSK as the simulation platform, to achieve the system waveform simulation.Implemented by the Altera Corporation CycloneII a processing chip with external circuit to complete FSk the modulation function.Through the VHDL programming language, the language of logic, with QuartusII modules required to generate modulation, FSK modulation the final realization. The thesis is divided into three chapters, the first chapter introduces the basic principles of FPGA and its applications, development status, also described the characteristics of VHDL language; second chapter describes in detail the basic principle of FSK modulation, includingFSK modulation methods of a variety of knowledge.The third chapter describes the implementation with QuartusII 2FSK modulation algorithm, including the introduction of various functional modules and the simulation results and their significance. 【Key words】FPGA VHDL FSK modulation 目录 U前 言U 4 U第一章 FPGA和VHDL语言U 5 U第一节 FPGA基本原理和设计基础U 5 U一、U UFPGA的基本工作原理U 5 U二、U UFPGA设计基础U 7 U第二节 VHDL硬件描述语言简介U 9 U一、U UVHDL语言的应用U 9 U二、U UVHDL语言的特点与设计流程U 10 U第三节 本章小结U 12 U第二章FSK调制基本原理U 12 U第一节 FSK调制基本概述U 12 U一、U UFSK简介U 12 U二、U UFSK信号的时域表达(以2FSK为例子说明)U 12 U三、U U2FSK调制基本原理U 13 U第二节 本章小结U 14 U第三章 基于QuartusII的FSK调制算法仿真实现U 15 U第一节 QuartusII使用简介U 15 U一、U UQuartusII软件简介U 15 U二、U UQuartusII软件设计流程U 15 U三、U U设计图解U 17 U第二节 FSK调制的VHDL实现U 21 U一、U UFSK调制总体思路U 21 U二、U U分频器U 21 U三、U UM系列产生基带信号U 22 U四、U U正弦波信号发生器U 23 U第三节 本章小结U 23 U结论U 24 U致谢U 25 U参考文献U 26 U附录U 27 0B前 言 FPGA技术经过20多年的发展,现在已经被应用到各个领域,并且正在逐渐成为越来越多领先技术的系统级解决方案。本文通过对FSK调制的FPGA实现,了解系统仿真和实际实现的方法,加深对数字调制原理的理解,掌握基于FPGA开发的一般流程,并通过此过程学习了VHDL语言在可编程逻辑器件上的应用,为以后的电子技术开发打下基础。 1B第一章 FPGA和VHDL语言 8B第一节 FPGA基本原理和设计基础 一、 16BFPGA的基本工作原理 1、FPGA的基本结构 ①可编程输入/输出单元:简称I/O 单元,是芯片与外部电路的接口部分,完成不同电气特性下对输入/输出信号驱动和匹配需求。 ②基本可编程逻辑单元:它是可编程逻辑的主体,可以根据设计灵活地改变其内部连接与配置,完成不同的逻辑功能。 ③嵌入式块RAM:目前大多数FPGA都有内嵌的块RAM(Block RAM),它大大拓展了FPGA的应用范围和使用灵活性。 ④丰富的布线资源:布线资源连通FPGA内部所有的单元,连接的长度和工艺决定着信号在连线上的驱动能力和传输速度。 ⑤底层嵌入功能单元:所指的是那些通用程度较高的嵌入式功能模块,比如PLL(Phase Locked Loop)、DLL(Delay Locked Loop)、DSP和CPU等。⑥内核专用硬核:这里所指的是通用性相对较弱,不是所有FPGA器件都包含硬核(Hard Core)Altera的FPGA有高密度FPGA和Altera低成本FPGA之分: ⑦Altera高密度FPGA:Altera高密度FPGA主要用于高端,其中Stratix和Stratix GX被大量应用于高端的路由器和交换机中做复杂的协议处理和流量调度,有的在3G系统中做高速DSP算法的实现,也有的用在高清晰电视系统中做高速图像处理和传输等等。 ⑧Altera低成本FPGA:Altera低成本FPGA有ACEX,之后推出了飓风(Cyclone)系列,还有基于90nm工艺的飓风Ⅱ。低成本FPGA主要定位在大量且对成本敏感的设计中,如数字终端和手提设备等,另外在PC、消费类产品和工业控制领域,FPGA还不是特别普及,主要是以前其成本相对较高。 2、FPGA的工作原理 在可编程逻辑器件当中,诸如GAL、CPLD之类都是基于乘积项的可编程结构,即可编程的与阵列和固定的或阵列组成。由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构,查找表可以很好地满足这一要求。目前主流FPGA都采用了基于SRAM工艺的查找表结构,也有一些军品和宇航级FPGA采用Flash或者熔丝与反熔丝工艺的查找表结构。SRAM工艺的FPGA芯片不具备非易失特性,因此断电后将丢失内部逻辑配置。在每次上电后,都需要从外部非易失存储器(PROM、Flash存储器等)中导入配置比特流。 根据数字电路的基本知识可以知道,对于一个n输入的逻辑运算,不管是与或非运算还是异或运算等等,最多只可能存在2n种结果。所以如果事先将相应的结果存放于一个存储单元,就相当于实现了与非门电路的功能。显然N不可能很大,否则LUT的利用率很低,输入多余N个的逻辑函数,必须用几个查找表分开实现 查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。图1.1是4输入LUT: 查找表 LUT 输入1 输入2 输入3 输入4 输出 图1.1 4输入LUT 目前Xilinx的最新产品Virtex 5 FPGA芯片采用6输入的LUT,而其余所有芯片都使用4输入的LUT。对于一个6/4 LUT可以看成一个有6/4位地址线的64/ 的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。 3、FPGA的编程与配置 编程:FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时, FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。FPGA 有多种搭配方式:并行主模式为一片 FPGA 加一片 EPROM 的方式;主从模式可以支持一片 PROM 编程多片 FPGA ;串行模式可以采用串行 PROM 编程 FPGA ;外设模式可以将 FPGA 作为微处理器的外设,由微处理器对其编程。 配置:与CPLD不同,FPGA是基于门阵列方式为用户提供可编程资源的,其内部逻辑结构的形成是由配置数据决定的。这些配置数据通过外部控制电路或微处理器加载到FPGA内部的SRAM中,由于SRAM的易失性,每次上电时,都必须对FPGA进行重新配置,在不掉电的情况下,这些逻辑结构将会始终被保持,从而完成用户编程所要实现的功能。 FPGA的配置方式分为主动式和被动式,数据宽度有8位并行方式和串行方式两种。在主动模式下,FPGA在上电后,自动将配置数据从相应的外存储器读入到SRAM中,实现内部结构映射;而在被动模式下,FPGA则作为从属器件,由相应的控制电路或微处理器提供配置所需的时序,实现配置数据的下载。 使用并行EPROM对FPGA进行配置时,速度相对较快,存储容量较大;而在一些对空间较为敏感,速度要求不太高的应用中,利用串行方法进行配置,可以减小电路板的面积,同时可以简化系统结构。 二、 17BFPGA设计基础 FPGA设计流程如图,包括电路功能设计、设计输入、功能仿真、综合优化、综合后仿真、实现、布线后仿真、板级仿真以及芯片编程与调试等主要步骤。 1、FPGA典型设计流程 电路功能设计 设计输入 功能仿真 综合 综合后仿真 设计实现与布局布线 时序仿真 板级仿真与验证 器件编程与调试 选片,自顶向下设计方法,将系统分为若干单元,每个单元继续划分,直到可以使用EDA元件库。 有原理图输入法,VHDL语言输入法。 也称前仿真,是在编译之前对用户设计的电路进行逻辑功能验证。 将较高级抽象层次的描述转化成较低层次的描述。 把综合生成的文件反标注到综合仿真模块中去。 将综合生成的逻辑网表配置到具体的FPGA芯片上。 是指将布局布线的延时信息反标注到设计网标中来检测有无时序违规现象。 主要应用于高速电路设计中,以第三方工具进验证。 产生使用的数据文件,然后将编程数据下载到FPGA中。 图1.2 FPGA典型设计流程 2、常用开发工具 FPGA 的设计软件很多 , 具体说来可包含以下软件 : 1. 设计输入( Design Entry ):Summit 公司的 VisualHDL 、 Mentor 公司的 Renoir 、 Aldec 公司的 ActiveHDL 。均支持图文混合的层次化设计。三者都提供 PC 版本, VisualHDL 还有工作站版本。 2. 仿真( Simulation ):仿真包括功能仿真和时序仿真。其中,功能仿真在布局布线之前;时序仿真在布局布线之后。仿真工具有 Mentor 公司的 Modelsim 和 Aldec 公司的 ActiveHDL ,二者同时支持 VHDL 和 Verilog 的仿真。 Cadence 公司也提供仿真工具,对 Verilog 的支持更强。 Modelsim 同时提供 PC 和工作站版本, ActiveHDL 只有 PC 版本。 3. 综合( Synthesis ):综合工具实现从 HDL 语言到 FPGA 或 ASIC 网表的生成。目前有 Synopsys 公司的 FPGA Compiler II 、 Mentor 公司的 Examplar 和 Synplify 公司的 Synplicity 。三者都有 PC 和工作站版本。 4. 布局布线( Place & Route ):布局布线采用 FPGA 厂商提供的工具。 Xilinx 有 Foundation Series 和 Alliance Series 两个系列。 Altera 的两个系列是 MaxPlusII 和 Quartus 。 本次设计中使用Quartus II,它是Altera公司推出的CPLD/FPGA开发工具,Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,使用Quartus II就可以完成本次设计的所有要求。 9B第二节 VHDL硬件描述语言简介 硬件描述语言有HDL、AHDL、Verilog HDL和VHDL等。VHDL语言的全称是“超高速集成电路硬件描述语言”(very high speed integrated circuit hardware description language)属于硬件描述语言中的一种,对系统硬件的描述功能很强而语法规范又比较简单。 其中符合IEEE-1076标准的VHDL的应用成为EDA解决方案中的首选。VHDL这种行为描述性语言将被广泛应用到新一代EDA硬件设计方案中,因此对VHDL的应用成为EDA解决方案的核心,更是整个电子逻辑系统设计的核心。 一、 18BVHDL语言的应用 VHDL语言作为高级硬件行为描述型语言,如今已经广泛被应用到FPGA/CPLD和ASIC中的设计。严格地讲,VHDL是一种用来描述数字逻辑系统的“编程语言”。它通过对硬件行为的直接描述来实现对硬件的物理实现,代表了当今硬件设计的发展方向。VHDL是为了满足逻辑设计过程中的各种需求而设计的。 第一,它是可以用来描述逻辑设计的结构,比如逻辑设计中有多少个子逻辑,而这些子逻辑又是如何连接的。除此之外,VHDL并不十分关心一个具体逻辑依靠何种方式实现,而是把开发者的精力集中到逻辑所实现的功能上。 第二,VHDL采用类似高级语言的语句格式完成对硬件行为的描述,具备更强的模块化能力,并拥有良好的可读性以及程序的移植性。另外,VHDL淡化状态机,与或表达式等早一代硬件描述语言中的元素,用更类似于高级语言的表达式取代。这些也是为什么把VHDL称为“编程语言”的原因。 第三,VHDL给出逻辑的模拟与调试为设计工作提供了最大的空间。VHDL调试的过程是相当灵活的:一方面可以使用传统的调试方法,比如适用传统的波形激励或编写测试向量;另一方面,可以使用一些VHDL原码调试器,这类调试器可以大大加快VHDL程序调试的速度,因为它可以像调试软件一样单步跟踪调试每一条语句,并且可以设置断点,观察内部变量等。这些功能是传统的调试仿真方法所不具备的。这种调试器比较著名的有Aldec的Active-HDL。拥有高效率的生成代码,能够节省大量的资源。甚至不必编写任何测试向量便可以进行源代码级的调试。而且,设计者可以非常方便地比较各种方案之间的可行性及其优劣而不需做任何实际的电路实验。 二、 19BVHDL语言的特点与设计流程 a) VHDL语言的特点 VHDL语言目前主要是对数字电路设计的描述,对模拟电路的设计尚不能很好地表达。VHDL语言的设计格式更是面向具体的硬件对象的语言,因此任何独立于硬件实体的程序设计是没有意义的。现在EDA设计代替了传统的手工设计,都是以FPGA、CPLD、EPLD等可编程器件作为系统中硬件的载体,大部分是以VHDL作为设计语言,并针对所使用的芯片来选择不同公司的软件在计算机上进行设计、综合。这种用程序设计完成的硬件结构可装载到对应的可编程器件中,进行仿真、模拟、验证。VHDL的语言特点主要有: (1)更加类似软件上的高级语言,具备更强的模块化能力并拥有良好的可读性以及程序的移植性; (2)淡化状态机,与或表达式等早一代硬件描述语言中的元素,用更类似于高级语言的表达式取代; (3)拥有高效率的生成代码,能够节省大量的资源。 b) VHDL的设计流程 应用VHDL语言进行电子设计,首先要了解基本的设计流程。在EDA解决方案中采用VHDL要经过的流程如图2.1所示。 从图2.1可以看出,在分析系统指标后,就进入了设计阶段,首先是设计输入,可以采用的输入方式有VHDL语言、VHDL语言与逻辑图混合输入或采用逻辑图输入,这一步通常都使用芯片生产商提供的开发工具,有关这方面的内容将在后面介绍。接下来是对所输入的源文件进行编译,即HDL Synthesis。通常称为合成或逻辑合成,这一步通常由三个过程组成,分别是HDL语言合成(language synthesis或HDL compilation)、逻辑优化(optimization)、目标映射(technology mapping)。前两个过程很好理解,最后一步是为了适应不同公司的编译器而生成EDIF(electronic design interchange format)的中间文件,也有的生成AHDL、DSL、QDIF、XNF等内部网单描述文件。有些公司的软件自带编译器,而也有些公司的软件不带编译器,这时需要使用第三方软件,比较著名的有Exemplar 公司的Leonardo Spectrum 和Synplicity 公司的Synplify等。一般这类工具都采用Behavior Extracting Synthesis Technology(B.E.S.T.)和Synthesis Constraints Optimization Environment(SCOPE),这两种技术可以提高VHDL逻辑合成的效率和可靠性。另外,这类工具在生成EDIF文件的同时还生成VHDL格式的网单,可以用于对逻辑功能调试(functional simulator)。这里的逻辑功能调试也就是图中的功能仿真,这是在芯片装载程序前的功能仿真模拟,它仅仅验证逻辑的正确性。在一般的EDA解决方案中,这一步一般采用编写测试向量或加激励波形的方法,只能对逻辑的输出信号进行模拟,而对于一些重要的内部信号则无能为力了。在采用VHDL后可以借助HDL Synthesis生成的VHDL格式的内部网单使用一些特殊的调试器对VHDL源程序进行类似于高级语言调试的单步跟踪调试。这样不仅可以观察重要的内部信号,而且可以清楚地看到程序执行的流程。一般还要经过时序模拟(timing simulatior)也就是图1.3中的时序分析,在这里可以对电路的工作频率、工作延时做定性的模拟,虽然这也还会跟实际情况有一定的差距,但还是建议开发者要进行这一步模拟。 设计输入 VHDL与电路图混合 系统要求 编译 功能仿真 时序分析 下载到芯片 系统调试 最终产品 图1.3 VHDL的设计流程 对于这些步骤,一般均可借助由芯片生产商提供的开发软件完成。因此一定要在这里将各项功能都调试正确,接下来就是对芯片进行装载程序,在这里要用各个芯片厂商提供的编译器来生成可用于装载(download)的文件进行装载。例如,Altera公司的软件生成的装载文件是 .POF,用软件菜单中的Program命令装载芯片;Lattice公司的软件生成的装载文件是 .JED,用软件菜单中的Fitter命令装载芯片。每个公司的开发工具都具备这些功能。最后是对装载的芯片进行系统调试以验证设计的正确性。如果其中哪一步出现错误,都要重复前面的步骤,直到最终产品调试通过。 10B第三节 本章小结 本章主要介绍了FPGA的基本原理,编程时的基本配置,以及基于FPGA设计开发的基本流程,同时介绍了VHDL语言在电子设计中的应用,最后介绍了VHDL语言的设计流程,详细介绍没个步,而且骤该做些什么,最后能正确通过VHDL语言进行FPGA的电子设计。 2B第二章FSK调制基本原理 11B第一节 FSK调制基本概述 一、 20BFSK简介 信息的传输是通信领域不可缺少的研究内容,由于频率资源的有限性,限制了我们无法用开路信道传输信息;其次,通信的最终目的是远距离传递信息。由于传输失真、传输损耗以及无法保证带内特性的原因,基带信号是无法在无线信道或光纤信道上进行长距离传输的。为了在信道中进行长途传输,必须对数字信号进行载波调制,将信号频谱搬移到高频处就是所谓的调制。 数字频移键控(FSK)是一种对正弦波载波进行数字非线性调制解调技术。它是继ASK之后出现较早的一种调制解调技术方式,由于它抗噪声、抗衰落性能较好,设备不算复杂,实现容易,所以在很多场合获得应用。二进制频移键控是用两个不同频率的载波来代表数字信号的两种电平。接受端受到不同的载波信号再进行逆变换成为数字信号,完成信息传输过程。由于数字信号只有“0”和“1”两种状态, 所以数字调制完全可以理解为像报务员用开关电键控制载波的过程。 二、 21BFSK信号的时域表达(以2FSK为例子说明) 二进制频移键控是指载波的频率受调制信号的控制,而幅度和相位保持不变。设二进制数字信号的“1”对应载波频率,“0”对应载波频率,而且和质检的改变时瞬间完成的。因此,二进制频移键控信号可以看成是两个不同载波的二进制频移键控信号的叠加。根据以上分析,得出2FSK信号的时域表达式为: 这里和分别表示第n和信号码元的初始相位。 一般的,将看做是宽度为的单极性脉冲波形。 设和 于是,可以将2FSK信号表示为: 2FSK信号的典型事件波形如下图所示: 1 1 1 1 0 0 0 2FSK信号 图 2.1 2FSK时域时间波形 三、 22B2FSK调制基本原理 通常2FSK信号可以由两种电路实现。图2.2所示为模拟调频法,它是利用二进制基带信号对载波进行调频,这种方法不存在相位断续的现象,是频移键控通信方式早期采用的实现方法。图2.3所示是用数字键控法产生二进制移频键控信号的原理图,图中两个振荡器的输出载波受输入的二进制基带信号控制,在一个码元Ts期间输出或两个载波之一。该方法由于使用两个独立振荡器,使得信号波形的相位存在不连续的现象,但它具有转换速度好、波形好、稳定度高且易于实现等优点,得到广泛采用。 ~ 电压控制振荡器 图2.1 模拟调频法 ~ ~ 振荡器1 振荡器2 开关 图2.2 键控法 在本次设计中,采用键控法,利用FPGA产生两路不同频率的载波,根据“0”和“1”的变化切换到相应的载波,最后进行数\模转换输出FSK波形。后面章节会进行详细介绍。 12B第二节 本章小结 本章介绍了调制解调的基本方法,其中以2FSK为代表,阐述FSK调制的两种方法,模拟调制和键控法,并且对FSK的时域波形进行了详细讲解,为后面的FSK调制设计监理理论基础。 3B第三章 基于QuartusII的FSK调制算法仿真实现 13B第一节 QuartusII使用简介 一、 23BQuartusII软件简介 Quartus II设计软件是Altera提供的完整的多平台设计环境,能够直接满足特定设计需要,为可编程芯片系统(SOPC)提供全面的设计环境。Quartus II软件含有FPGA和CPLD设计所有阶段的解决方案。Quartus II是Altera公司新一代的EDA设计工具,由该公司早先的MAX+PLUS II演变而来。不仅继承了MAX+PLUS II工具的优点,更提供了对新器件和新技术的支持,使设计者能够轻松和全面的介入设计的每一个环节。 二、 24BQuartusII软件设计流程 利用QuartusII进行设计的流程如图3.1所示: 设计输入 综合 综合布线 时序分析 仿真 编程和配置 功耗分析 调试 工程更改管理 时序逼近 图3.1 QuartusII设计流程图 上面的步骤是一个完整的设计流程,在实际过程中有的步骤可以简化,简化后的流程图如下: 建立项目文件 建立设计文件 原理图输入 文本输入 编译查错 软件仿真 选定芯片,映射管脚 编译后下载 试验成功 修改错误 有错 无错 有错 无错 有错 图3.2简化的QuartusII设计流程 在设计过程中,需要不断编译和调试,首先要保证编译通过,通过后在下载到硬件上看是否实现预期功能,若不能实现,需要重新返回修改源码。编译通过是是保证语法正确,下载硬件调试时保证程序逻辑是否正确,只有保证了这两项的正确,才能保证实验的成功。 三、 25B设计图解 在本小结将介绍详细的设计图解: 图3.3新建工程向导 图3.4选择工程路径和工程名称,注意与实体名一致 图3.5 选择芯片 图3.6 添加VHDL文件 图3.7 成功编译的工程文件 到这一步,完成了工程和程序建立,并且编译通过,是进行软件仿真的前提,下面进行波形仿真,在软件上验证逻辑是否正确,然后再到硬件上调试。 图3.8 新建仿真波形文件 图3.9 在仿真波形中添加输入输出信号 图3.10 软件仿真初步仿真结果 14B第二节 FSK调制的VHDL实现 一、 26BFSK调制总体思路 在二进制数字调制中,若利用受矩形脉冲系列控制的开关电路对两个独立的频率源进行选通,使正弦波的频率随二进制信号在和两个频率点间变化,则产生二进制频移键控信号(2FSK),二进制频移键控信号可以看成两个不同载波的二进制振幅键控信号的叠加。在二进制频移键控中,幅度恒定不变的载波信号的频率随着输入码流的变化而切换,而且“0”和“1”之间的改变时瞬间完成的,本设计中通过产生伪随机m系列码作为基带信号输入。首先由晶振经费分频器N1和N2分频产生两个不同频率的载波,利用分频产生的载波控制存储在FPGA内部的正弦表输出到数模转换器,即可得到不同频率的正弦信号,完成FSK调制,整体框图如图3.11所示: 分频器 M系列产生器 正弦信号发生器 数据选择器 DA 50MHz时钟源 1MHz 500kHz 5kHz 正弦信号输出 图3.11 FSK调制整体框图 二、 27B分频器 本2FSK调制器的数据速率为1.25kb/s,需要产生1.25kHz和和2.5kHz的正弦信号。对正弦信号每个周期输出100个点,因此需要产生3个时钟信号,由于后面输出正弦波的DA转换器DA0832的最大转换速率是1us,即转换率为1MHz,所以采用如下几种频率可以得到很好的效果:1mHz(作为10kHz正弦信号的时钟)、500kHz(作为5kHz正弦信号的时钟)、5kHz(作为m系列基带信号的时钟)。基准时钟由一个50MHz的晶振提供,则需要一个50分频(1mHz),一个100分频(500kHz),然后再100分频(5KHz),这样的效果就是,当基带信号为“1”的时候输出2个正弦波,当基带信号为“0”的时候输出1个正弦波。重要函数如下: process (clk) --f1为50分频的载波信号1m,作为10k正弦信号时钟源 begin if clk'event and clk= '1' then --时钟上升沿检测 if cntf1 = nf1 then --50分频 cntf1 <= 1; --重新计数 clkf1 <= not clkf1;--翻转 else cntf1 <= cntf1 + 1; end if; end if; end process; process (clk) --f2为100分频的载波信号500k,作为5k正弦信号时钟源 begin if clk'event and clk='1'then--时钟上升沿检测 if cntf2 = nf2 then--100分频 clkf2 <= not clkf2;--翻转 cntf2 <= 1;--重新计数 else cntf2 <= cntf2 + 1; end if; end if; end process; 三、 28BM系列产生基带信号 M系列是为随机系列的一种,它的显著特点是有随机特性、预先可确定性和循环特性,从而在通信领域得到了广泛应用。本设计中的基带信号用一个m系列发生器来产生,产生码元的频率为5kHz。M系列发生器用一种带有2个反馈抽头的3级反馈移位寄存器来实现,特征多项式可用表示,周期为。M系列的初始状态为“000”,在时钟上升沿到来时M(0)<=M(1);M(1)<=M(2);M(2)<=(M(1)XOR M(0))OR(NOT(M(0)OR M(1)OR M(2))。通过移位反馈得到一串“0010111”循环序列,并防止进入全“0”状态。通过更换时钟频率可以方便地改变输入码元的速率。函数如下: process (clkm) begin if(clkm'event and clkm='1') then m(0)<=m(1);--实现移位功能 m(1)<=m(2); end if; end process; process (clkm) begin if(clkm'event and clkm='1') then m(2)<=(m(1) xor m(0)) or (not (m(0) or m(1) or m(2))); end if;--上述表达式跟上面的移位功能产生m的随机序列“1110010” end process; 四、 29B正弦波信号发生器 用数字电路和DAC变换器可以产生要求的模拟信号。每个采样点采用8位量化编码,即8位分辩率。采样点的个数与分辨率的大小主要取决于CPLD/FPGA 器件的容量,其中分辨率的高低还与DAC的位数有关。本文设计采用的是8位并行DAC器件DAC0832,测试表明,8位分辨率和每周期1OO个采样点可以达到很好的效果。本设计中,数字基带信号与FSK调制信号的对应关系为:“0”对应1 0K Hz,“1”对应5K Hz,载波的频率可以方便地通过软件修改。 最后把综合后的程序下载到FPGA板子上可以再数字示波器上看到FSk调制: 15B第三节 本章小结 本章介绍了FSK用VHDL语言具体的实现方法,通过学习了参考别人的设计,成功地在FPGA实现了FSK的调制,由于FPGA输出的是数字信号,输出FSK调制还需要进行数模转换,在本设计中用DAC0832按照频率的不同输出了调制后的正弦波,满足实验要求。 4B结论 用VHDL语言与FPGA结合的方法设计FSK调制器,克服了纯硬件设计复杂,体积庞大等缺点,设计灵活,修改方便,VHDL语言方便移植,FPGA在线仿真便宜调试,体现出了VHDL和FPGA结合设计逻辑电路的强大功能。 5B致谢 毕业设计完成了,在这个过程中我学到了很多东西。首先我要感谢我的导师XXX老师,他在我完成论文的过程中,给予了我很大的帮助。在论文开始的初期,我对于论文的结构以及文献选取等方面都有很多问题,经过老师的耐心指导,我找到了查找资料的方法,遇到问题和请教老师,经过几个月的奋斗,顺利完成了设计,在此对XXX老师表示衷心的感谢!还有我一起奋斗给予我帮助的同学们,谢谢你们! 6B参考文献 [1] 潘松 黄继业. EDA技术使用教程.科学出版社,2007. [2] 侯伯宁 顾新. VHDL硬件描述语言与数字电路逻辑电路设计.西安电子科技大学出版社.2004. [3] 蒋青 于秀兰. 通信原理.人民邮电出版社.2006
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服