打印
[FPGA]

连载4-《锁相环技术原理及FPGA实现》-前言2

[复制链接]
967|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cameion|  楼主 | 2015-12-2 09:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在连续出版《数字滤波器的MATLAB与FPGA实现》、《数字通信同步技术的MATLAB与FPGA实现》、《数字调制解调技术的MATLAB与FPGA实现》系列图书后,得到广大读者的积极支持和响应。其中读者交流最多的是锁相环技术问题。在大家的支持下,近期正撰写《锁相环技术原理及FPGA实现》一书,力图全面、详细分析讨论锁相环技术的原理及FPGA实现方法,尤其对其工作机理、难以理解的概念、不易解释的现象,以及FPGA设计细节全面展示出来。   在出版之前,为感谢广大读者的支持,特开设专栏,依次将本书第4章的初稿公开发布来出,便于大家学习和交流,并请对本书内容提供建议,便于在后续写作过程中对本书进行完善。
  本书预计2016年上半年出版,敬请关注!
  请在baidu中搜索“构建数字通信理论知识与工程实践间的桥梁”关注我的博客,以获取更多内容!

关于FPGA开发环境的说明
众所周知,目前两大厂商Xilinx和Altera的产品占据全球90%以上的FPGA市场。可以说,在一定程度上正是由于两家FPGA公司的相互竞争态势,有力地推动了FPGA技术的不断发展。虽然HDL的编译及综合环境可以采用第三方公司所开发的产品,如Modelsim、Synplify等,但FPGA器件的物理实现必须采用各自公司开发的软件平台,无法通用。Xilinx公司目前最新的开发工具为Vivado Design Suite套件,Altera公司目前的主流开发平台是Quartus II系列套件。与FPGA开发平台类似,HDL也存两种难以取舍的选择:VHDL和Verilog HDL。
如何选择开发平台以及HDL语言呢?其实,对于有志于从事FPGA技术开发的技术人员,选择哪种平台及HDL语言并不重要,因为两种平台具有很多相似的地方,精通一种HDL语言后,再学习另一种HDL语言也不是一件困难的事。通常来讲,可以根据周围同事、朋友、同学或公司的主要使用情况进行选择,这样在学习的过程中,可以很方便地找到能够给你指点迷津的专业人士,从而加快学习进度。
本书采用的是Altera公司的FPGA器件作为开发平台,采用Quartus II 12.1作为开发环境,采用Verilog HDL语言作为实现手段。由于Verilog HDL语言并不依赖于某家公司的FPGA产品,因此本书的Verilog HDL程序文件可以很方便地移植到Xilinx公司的FPGA产品上。如果程序中应用了IP核资源,两家公司的IP核通常是不能通用的,这就需要根据IP核的功能参数,在另外一个平台上重新生成IP核,或编写Verilog HDL代码来实现。
有人曾经说过,“技术只是一个工具,关键在于思想。”将这句话套用过来,对于本书来讲,具体的开发平台以及HDL语言只是实现数字通信技术的工具,关键在于设计的思路和方法。因此,读者完全不必要过于在意开发平台的差别,相信只要掌握本书所讲述的设计思路和方法,加上读者已经具备的FPGA开发经验,采用任何一种FPGA平台都可以很快地设计出满足用户需求的产品。
如何使用本书
本书在讨论锁相环的基本概念及工作原理时,主要用到了SystemView5.0版本软件。关于SystemView5.0软件的特点及使用方法在本书第1章进行了简要介绍。SystemView软件使用起来非常简单,书中的实例也只用到了一些基本功能。如果读者以前没有使用过这款软件的话,建议先用几个小时了解一下其基本用法,这样就可以动手对本书提供的实例程序运行仿真。当然,由于SystemView仅用来说明锁相环的工作原理,因此,读者也可以完全不去运行这些实例程序,只要理解书中提供的仿真结果即可。
相信大部分工科院校的学生和电子通信的从业人员对MATLAB软件都会有一个基本的了解。由于它的易用性及强大的功能,已经成为数学分析、信号仿真、数字处理必不可少的工具。由于MATLAB具有大量专门针对数字信号处理的常用函数,如滤波器函数、傅里叶分析函数等,十分有利于对一些通信的概念及信号进行功能性仿真,因此,在具体讲解某个实例时,通常会采用MATLAB作为仿真验证工具。虽然书中的MATLAB程序相对比较简单,主要应用一些数字信号处理函数进行仿真验证,如果读者没有MATLAB的知识基础,建议最好还是先简单学习一下MATLAB的编程概念及基本语法。考虑到程序及函数的兼容性,书中所有MATLAB程序的开发验证平台均为MATLAB R2014a版软件。
在讲解具体的FPGA工程应用实例时,通常会先采用MATLAB对所需设计的工程进行仿真,一方面仿真算法过程及结果,另一方面生成FPGA仿真所需要的测试数据;而后在Quartus II平台上编写Verilog HDL程序对实例进行设计实现,为便于讲述,通常会先讨论程序的设计思路,或者先给出程序清单,再对程序代码进行分析说明;完成程序编写后,需要编写TestBench测试激励文件,根据所需产生输入信号的种类,可以直接在TestBench文件中编写代码来产生输入信号,也可以通过读取外部文本文件的方式来产生输入信号;接下来就可以采用Modelsim工具对Verilog HDL程序进行仿真,查看Modelsim仿真波形结果,并根据需要将仿真数据写入外部文本文件中,通常还会对仿真波形进行讨论,分析仿真结果是否满足要求;如果Modelsim波形不便于精确分析测试结果,则需要再次编写MATLAB程序,对Modelsim仿真结果数据进行分析处理,最终验证FPGA设计的正确性。
本书主要以工程应用实例的方式讲解锁相环技术的原理及FPGA实现方法和步骤。书中所有实例均给出了完整的程序清单,限于篇幅,不同工程实例中的一些重复或相似的代码没有完全列出,随书配套的光盘上收录了本书所有实例的源程序及工程设计资源,并按章节序号置于光盘根目录下。本书在编写工程实例时,程序文件均放置在“D:\PllPrograms”的文件夹下,读者可以先在本地硬盘下建立“D:\PllPrograms”文件夹,而后将配套光盘中的程序压缩包解压至该文件夹下,大部分程序均可直接运行。需要说明的是,在部分工程实例中,需要由MATLAB产生FPGA测试所需的文本数据文件,或者由MATLAB读取外部文件进行数据分析,同时FPGA仿真的TestBench文件通常也需要从指定的路径下读取外部文件数据,或将仿真结果输出到指定的路径下。对于ModelSim仿真来讲,作为测试输入的文本文件必须放置在当前FPGA工程目录下的“simulation\modelsim”路径下。因此,读者在用MATLAB生成测试数据后,需要将生成的文件复制到指定的路径下,以获取正确的仿真结果。
致谢
有人说,每个人都有他存在的使命,如果迷失他的使命,就失去了他存在的价值。不只是每个人,每件物品也都有其存在的使命。对于一本书来讲,其存在的使命就是被阅读,并给阅读者带来收获。
作者在写作本书的过程中查阅了大量的资料,在此对资料的作者及提供者表示衷心的感谢。由于写作本书的缘故,重新阅读一些经典的数字通信理论书籍时,再次深刻感受到前辈们严谨的治学态度和细致的写作作风。
在此,感谢父母,多年来一直陪伴在我的身边,由于他们的默默支持,使得我能够在家里专心致志地写作;感谢我的妻子刘帝英女士,她不仅是一位尽心尽职的优秀母亲,也是一位严谨细致的科技工作者,同时也是本书的第一位读者,在工作之余对本书进行了详尽而细致的校对;四年前初次编写数字通信的FPGA设计与实现系列图书时,女儿才刚上小学,转眼她已经上五年级了,她最爱看书和画画,小脑袋里装着越来越多的她自己的想法。
FPGA技术博大精深,本书虽尽量详细讨论了锁相环技术的原理及FPGA实现相关内容,仍感觉到难以详尽阐述所有技术细节。相信读者在实际工程应用中经过不断的实践、思考及总结,一定可以快速掌握其工程设计方法,提高应用FPGA进行工程设计的能力。由于作者水平有限,不足之处在所难免,敬请读者批评指正。欢迎大家就相关技术问题进行交流,或对本书提出改进意见及建议。
为便于读者交流,并及时发布相关资料及信息,本书特开设了交流博客。读者也可以通过邮件与作者进行技术交流。


杜  勇  
2015年12月

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

33

帖子

9

粉丝