锁相环技术原理及FPGA实现(txt+pdf+epub+mobi电子书下载)


发布时间:2020-09-09 05:35:51

点击下载

作者:杜勇

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

锁相环技术原理及FPGA实现

锁相环技术原理及FPGA实现试读:

前言

为什么要写这本书

1965年,英特尔联合创始人戈登·摩尔(Gordon Moore)预测,计算机芯片的处理能力每两年就会翻一番。尽管已经过去50多年,摩尔定律仍然有效。半导体行业的发展速度,以及摩尔定律的精准性预测一度连摩尔本人都感到无比惊奇!

2015年6月1日,英特尔宣布将以每股54美元的价格收购Altera,以此计算,此交易总价将达到167亿美元,创造了英特尔并购历史上金额最大的纪录。一时间,传闻四起,业内专家和媒体开始讨论,FPGA计算机是否将成为可能?

无论你是否愿意,只要从事的是与电子及信息处理相关的行业,FPGA的地位已显得越来越重要,它已成为电子行业的基本设计平台之一!

无论多么高大上的技术,工程师要能够熟练应用到自己的工程项目中,都必须深入了解每一个技术实现细节。所谓“九层之台,起于垒土;合抱之木,生于毫末”。对于繁杂的技术实现方法,“各个击破”是有效学习应用的不二法门。

自作者于4年前开始陆续出版数字通信技术的FPGA实现相关著作以来,通过邮件或博客的方式收到了广大读者的很多反馈意见。一些读者直接通过邮件告知书中的内容对工作中提供的直接或间接的帮助;一些读者提出了很多中肯的、有建设性的意见和建议;更多的读者通过邮件或博客交流书中的相关设计问题。归纳起来,不少读者的问题集中在数字锁相环技术的设计及实现方面。在前几本著作中,限于书中内容编排,对通信系统中最困难的锁相环技术阐述得还不够系统全面。目前市场上讲解锁相环技术的图书,主要集中在讲解锁相环的基本工作原理,或介绍一些专门的锁相环集成芯片,因此,将锁相环的工作原理与FPGA实现结合起来讨论,显得十分必要。

作者在写作本书的过程中,兼顾锁相环技术的理论,以及工程设计过程的完整性,重点突出FPGA设计方法、结构、实现细节,以及仿真测试方法。在讲解理论知识的时候,结合SystemView、MATLAB软件仿真实例,重点从工程应用的角度进行介绍,主要介绍工程设计时必须掌握和理解的知识点,便于读者尽快地找到理论与工程实现之间的结合点。在讲解实例的FPGA实现时,不仅对所有实例给出了完整的程序代码,并且从思路和结构上进行了详细的分析和说明。根据作者的理解,针对一些似是而非的概念,结合工程实例的仿真测试加以阐述,希望能对读者提供更多有用的参考。相信读者按照书中讲解的步骤完成一个个工程实例时,会逐步感觉到理论与工程实现之间完美结合的畅快。随着读者掌握的工程实现技能的提高,对锁相环理论知识的理解也必将越来越深刻,当重新阅读以前学过的原理时,头脑里就更容易构建起理论知识与工程实践之间的桥梁。

本书的内容安排

第1章首先介绍了FPGA的基本知识,以及Altera公司的主要器件。本章在介绍了FPGA的发展历程、结构及工作原理等基本知识后,对本书所用到的设计语言及工具软件进行了简要介绍,主要包括Verilog HDL语言、Quartus II、MATLAB和SystemView软件。所谓“工欲善其事,必先利其器”。之所以说是简要介绍,因为这些开发工具本身的功能十分强大,每一种工具都有种类繁多的专门著述进行阐述。随着工程师设计经验的积累,设计水平的提高,越能更全面地掌握设计工具的特点,从而更好地发挥设计工具的性能,以最小的代价设计出理想的产品。好比一把宝剑,只有握在高手的手中才能发挥出最大的威力。

第2章介绍了FPGA数字信号处理基础知识。数字信号在FPGA等硬件系统中实现时,因受寄存器长度的限制,不可避免地会产生有效字长效应。设计工程师必须了解字长效应对数字系统可能带来的影响,并在实际设计中通过仿真来确定最终的量化位数、寄存器长度等内容。本章在详细分析了字长效应在FPGA设计中的影响后,对几种常用的运算模块IP核进行介绍,讨论了各IP核控制参数的设置方法。IP核在FPGA设计中的应用十分普遍,尤其是在数字滤波器等信号处理领域,采用设计工具提供的IP核进行设计,不仅可以提高设计效率,而且可以保证设计的性能。

第3章从锁相环的组成讲起,深入细致地探讨锁相环关注的信号特性,全面阐述VCO和乘法鉴相器的工作方式。随后借用最简单的反馈电路等基础知识,逐步揭开锁相环跟踪信号相位的神秘面纱。最后通过SystemView软件工具,详细仿真分析了一阶锁相环的工作过程,全方位地了解锁相环的工作机理。

第4章讨论了一阶锁相环的FPGA实现方法。根据作者的学习经验,这个阶段最期望的一定不是再去理解什么原理公式,学习什么方法思路。好比初次接触到羽毛球时,在网上看了一段中规中矩的教学视频,又刚好买回一支炫丽的球拍,走进球场,实在没有心情再听老师讲什么挥拍动作和击球技巧,只想痛痛快快地上球场打上几拍了。这一章,我们将完成一个完整的一阶锁相环电路的FPGA设计及仿真测试过程。

第5章又回到理论知识上来。学习的过程通常是学习(理论)—实践(工程)—学习(理论)—实践(工程)的循环反复过程,每一次循环都会带来一次提高。前几章,我们主要从环路基本概念的角度,对环路进行了分析和仿真,从而初步建立起对锁相环路工作机理的认识。要深入研究锁相环技术,必须建立环路的系统模型,而后采用数学方法对模型进行精确的分析。这一章我们从最基本的线性时不变系统知识开始,逐步建立起锁相环路的数学模型,为后续的分析打下坚实的基础。在建立模型的过程中,我们会发现,所有的知识,所有的公式其实都是在大学的一些基础课程中学习过的。

第6章深入讨论锁相环中最关键的组成电路——环路滤波器。我们从最简单的环路滤波器——RC低通滤波器开始,逐步理解环路滤波器对锁相环路性能的决定性作用,并引出本书所研究的重点——由有源积分滤波器组成的理想二阶环路。为了直观说明环路滤波器对锁相环路性能的影响,以及锁相环路参数的设计方法,我们再次采用SystemView搭建了锁相环路模型,并通过翔实的仿真数据来说明一些看似深奥的理论知识。

第7章开始讨论工程上应用最多的理想二阶环路的FPGA实现。前两章讲了一大堆枯燥的锁相环原理,本质是说理想二阶环具有相当优异的性能。我们在第4章已经对一阶锁相环的FPGA实现进行了详细的讨论,有了前面章节的基础,就可以开始设计二阶环的FPGA电路了,并且要通过FPGA设计后的仿真来验证理论的正确性。二阶锁相环路相比一阶环路来讲,仅仅是多了一个环路滤波器。正是这个环路滤波器,尤其是理想环路滤波器,极大地改善了锁相环路的性能。当我们深刻理解了环路的工作原理,并动手设计出传说中的理想二阶锁相环电路时,会发现整个设计过程原来如此!

第8章再次回过头来,静心研究前面设计过程中还没有解决的一些问题。经过第7章的学习,我们已经可以完成一个完整的理想二阶锁相环路的设计。但在设计过程中,仍有一些参数的取值没有明确的依据,例如环路的固有振荡频率ω该如何取值?环路的捕获带宽与n捕获时间如何设计?当环路中存在噪声时(前面章节的设计都还没有涉及这个问题,但噪声又是电子系统中无法避免的),又该如何设计并计算环路的抗干扰性能呢?因此,在完成数字二阶环的FPGA初步设计之后,我们需要再回过头来更深入分析一下锁相环路性能,最终找到锁相环路参数的设计依据。

第9章是一个完整的应用锁相环实现信号解调的工程应用实例。经过前面章节的讨论,我们对锁相环的理论知识、仿真、设计及FPGA实现都有了比较充分的认识。在无线通信技术中,在接收端,应用锁相环获取相干载波是最为广泛的应用之一。本章以锁相环解调PSK调制信号为例,应用前面章节讨论得出的结论,完整地给出锁相环的参数设计、仿真测试,以及FPGA实现过程。

关于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进行工程设计的能力。由于作者水平有限,不足之处在所难免,敬请读者批评指正。欢迎大家就相关技术问题进行交流,或对本书提出改进意见及建议。

为便于读者交流,并及时发布相关资料及信息,本书特开设了交流博客,读者也可以通过邮件与作者进行技术交流。

交流空间:http://duyongcn.blog.163.com,作者邮箱:duyongcn@sina.cn。杜勇2016年4月第1章设计环境及开发平台介绍■ FPGA基础知识■ Altera器件简介■ Verilog HDL语言简介■ Quartus II开发套件■ ModelSim仿真软件■ MATLAB软件■ SystemView软件■ 小结——欲善其事先利其器

锁相环技术具有很强的专业性,要掌握其工作原理,透彻理解各种设计方法和思路,最终游刃有余地设计出性能优良的锁相环电路,首先需要掌握一系列相关工具。请注意,不是“一种”工具,而是“一系列”工具:FPGA开发软件Quartus II、HDL仿真软件ModelSim、MATLAB软件、SystemView软件,以及FPGA开发语言Verilog HDL。

回想起自己初次学习FPGA实现数字通信相关设计时的状态,当老师列出一系列以前从未接触过的专业软件时,一时似乎有些绝望的感觉,掌握这些软件的用法不知是多么遥远的事!九层之台,起于垒土;千里之行,始于足下。知识的学习没有捷径可走,只有不断积累,在积累过程中去体会量变到质变的美妙。观望和感叹都是没有实际效用的,不如脚踏实地开始行动。

本章主要对本书所使用到的设计环境和开发平台进行简要介绍,之所以说是简要介绍,因为这些开发工具本身的功能十分强大,每一种工具都有种类繁多的专门著述进行详细阐述。随着工程师设计经验的积累,设计水平的提高,越能更全面地掌握设计工具的特点,从而更好地发挥设计工具的性能,以最小的代价设计出理想的产品。好比一把宝剑,只有握在高手的手中才能发挥出最大的威力。1.1 FPGA基础知识1.1.1 基本概念及发展历程

1.基本概念

随着数字集成电路的发展,越来越多的模拟电路逐渐被数字电路取代。同时数字集成电路本身也在不断地进行更新换代,它由早期的电子管、晶体管、中小规模集成电路发展到超大规模集成电路,以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。电子工程设计师们更愿意自己设计专用集成电路芯片(Application Specific Integrated Circuit,ASIC),而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际的工程应用之中,因而出现了可编程逻辑器件(Programmable Logic Device,PLD),其中应用最广泛的为现场可编程门阵列(Field Programmable Gate Array,FPGA)和复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)。PLD的主要特点是芯片或器件的功能完全由用户通过特定软件编程控制,并完成相应功能,且可反复擦写。这样,用户在用PLD设计好印制电路板(Printed Circuit Board,PCB)后,只要预先安排好PLD引脚的硬件连接,即可只通过软件编程的方式灵活改变芯片功能,从而达到改变整块PCB功能的目的。这种方法不需要对PCB进行任何更改,从而大大缩短产品的开发周期和成本。也就是说,由于使用了PLD进行设计,硬件设计已部分实现了软件化。随着生产工艺的不断革新,高密度、超大规模FPGA/CPLD器件越来越多地在电子信息类产品设计中得到应用,同时由于DSP(Digital Signal Processor)、ARM(Advanced RISC Machines)技术与FPGA技术相互融合,在数字信号处理等领域,已出现了具有较强通用性的硬件平台,核心硬件设计工作正逐渐演变为软件设计。

2.发展历程

早期的可编程逻辑器件在20世纪70年代初出现,这一时期只有可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)和电可擦除只读存储器(Electrically EPROM,EEPROM)三种。这类器件的结构相对简单,只能完成简单的数字逻辑功能,但也足以给数字电路设计带来巨大的变化。

20世纪70年代中期出现了结构上稍复杂的可编程芯片,即可编程逻辑器件,它能够完成各种数字逻辑功能,典型的PLD由“与”门和“或”门阵列组成。由于任意一个组合逻辑都可以用“与-或”表达式来描述,所以PLD能以“乘积项”的形式完成大量的组合逻辑功能。这一阶段的产品主要有可编程阵列逻辑(Programmable Array Logic,PAL)和通用阵列逻辑(Generic Array Logic,GAL)。PAL由一个可编程的“与”平面和一个固定的“或”平面构成。PAL器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和EEPROM技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(Programmable Logic Array,PLA),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。PLA器件既有现场可编程的,也有掩膜可编程的。在PAL的基础上又发展了一种通用阵列逻辑,如GAL16V8、GAL22V10等,它采用了EEPROM工艺,实现了电可擦除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。这些早期PLD器件的一个共同特点是,可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。

为了弥补这一缺陷,20世纪80年代中期,Altera和Xilinx两家公司分别推出了类似于PAL结构的扩展型CPLD和与标准门阵列类似的FPGA。它们都具有体系结构和逻辑单元灵活、集成度高和适用范围宽等特点。这两种器件兼容了PLD和GAL的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其他ASIC相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无须测试、质量稳定和可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产之中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。

20世纪90年代末以来,随着可编程逻辑器件工艺和开发工具日新月异的发展,尤其是Xilinx公司和Altera公司不断推出新一代超大规模可编程逻辑器件。FPGA技术与ASIC、DSP及CPU技术不断融合,FPGA器件中已成功地以硬核的形式嵌入ASIC、PowerPC处理器、ARM处理器,以HDL的形式嵌入越来越多的标准数字处理单元,如PCI控制器、以太网控制器、MicroBlaze处理器、Nios和NiosⅡ处理器等。新技术的发展不仅实现了软、硬件设计的完美结合,也实现了灵活性与速度设计的完美结合,使得可编程逻辑器件超越了传统意义上的FPGA概念,并以此发展形成了现在流行的系统级芯片(System on Chip,SoC)及片上可编程系统(System on a Programmable Chip,SoPC)设计技术,其应用领域扩展到了系统级,涵盖了实时数字信号处理技术、高速数据收发器、复杂计算和嵌入式系统设计技术的全部内容。

Xilinx公司于2003年率先推出了90 nm制造工艺的Spartan-3系列FPGA芯片,于2011年推出28 nm制造工艺的7系列FPGA芯片,并于2013年推出了20 nm制造工艺的UltraScale系列FPGA芯片,且宣称基于最新UltraScale的开发不但可实现从20 nm向16 nm乃至更高级FinFET技术的扩展,而且还可实现从单片向3D IC的扩展。作为可实现ASIC级性能的All Programmable架构,UltraScale不仅可解决总体系统吞吐量及时延限制问题,而且还可直接解决高级节点芯片之间的互联问题。

Altera公司于2004年首次推出90 nm制造工艺的Stratix II系列FPGA芯片后,紧接着于2006年推出了65 nm的Stratix III系列FPGA芯片,于2008年推出了40 nm的Stratix IV系列FPGA芯片,并于2010年先于Xilinx推出了28 nm制造工艺的Stratix V系列FPGA芯片。2013年,Altera推出了最新的基于14 nm三栅极工艺技术的Stratix 10系列FPGA芯片。

随着芯片制造工艺技术的不断进步,FPGA正向着低成本、高集成度、低功耗、可扩展、高性能的目标不断前进。相信FPGA的应用会得到更大的发展!FPGA的演进历程如图1-1所示。图1-1 FPGA的演进历程1.1.2 FPGA的结构和工作原理

1.FPGA的结构

目前所说的PLD器件,通常情况下指的是FPGA与CPLD器件。FPGA与CPLD器件因其内部结构不同,导致其集成度、运算速度、功耗及应用方面均有一定差别。通常将以乘积项结构方式构成逻辑行为的器件称为CPLD,如Xilinx的XC9500系列、Altera的MAX7000S系列和Lattice的Mach系列等,这类器件的逻辑门密度在几千到几万个逻辑单元之间。CPLD更适合触发器有限而乘积项丰富的结构,适合完成复杂的组合逻辑。通常将基于查找表(Look-Up-Table,LUT)结构的PLD器件称为FPGA,如Xilinx公司的Spartan、Virtex和7系列,Altera的Cyclone、Arria和Stratix系列等。FPGA是在CPLD等逻辑器件的基础上发展起来的。作为ASIC领域的一种半定制电路器件,它克服了ASIC器件灵活性不足的缺点,同时解决了CPLD等器件逻辑门电路资源有限的缺点,这种器件的密度通常在几万门到几百万门之间。FPGA更适合于触发器丰富的结构,适合完成时序逻辑,因此在数字信号处理领域多使用FPGA器件。

目前主流的FPGA仍是基于查找表技术的,但已经远远超出了先前版本的基本性能,并且整合了常用功能(如RAM、时钟管理和DSP)的硬核模块。如图1-2所示(图1-2只是一个示意图,实际上每一个系列的FPGA都有其相应的内部结构),FPGA芯片主要由6部分组成:可编程输入/输出单元(Input/Output Block,IOB)、基本可编程逻辑块(Configurable Logic Block,CLB)、数字时钟管理模块(Digital Clock Manager,DCM)、嵌入式块RAM(Block RAM,BRAM)、丰富的布线资源、内嵌的底层功能单元,以及内嵌专用硬件模块。图1-2 FPGA芯片内部结构示意图

1)可编程输入/输出单元(IOB)

可编程输入/输出单元简称I/O单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求,其示意结构如图1-3所示。图1-3 FPGA内部的IOB结构图

FPGA内的I/O按组分类,每组都能够独立地支持不同的I/O标准。通过软件的灵活配置,可适应不同的电气标准与I/O物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻阻值。目前,I/O口的频率也越来越高,一些高端的FPGA通过DDR寄存器技术可以支持高达2 Gbps的数据速率。外部输入信号可以通过IOB模块的存储单元输入FPGA的内部,也可以直接输入FPGA内部。为了便于管理和适应多种电器标准,FPGA的IOB被划分为若干个组(Bank),每个Bank的接口标准由其接口电压VCCO决定。一个Bank只能有一种VCCO,但不同Bank的VCCO可以不同。只有相同电气标准的端口才能连接在一起,VCCO电压相同是接口标准化的基本条件。

2)可配置逻辑块(CLB)

CLB是FPGA内的基本逻辑单元,其实际数量和特性会依器件的不同而不同。用户可以根据设计需要灵活地改变其内部连接与配置,完成不同的逻辑功能。FPGA一般是基于SRAM工艺的,其基本可编程逻辑单元几乎都由查找表(Look Up Table,LUT)和寄存器(Register)组成。FPGA内部的查找表一般为4输入LUT。Altera的一些高端FPGA芯片采用了自适应逻辑块(Adaptive Logic Modules,ALM)结构,可根据设计需求由设计工具自动配置成所需的模式,如5输入和3输入的LUT,或5输入和4输入的LUT,或两个4输入的LUT等。查找表一般完成组合逻辑功能。

FPGA内部寄存器结构相当灵活,可以配置为带同步/异步复位或置位、时钟使能的触发器(Flip Flop,FF),也可以配置成锁存器(Latch)。FPGA一般依赖寄存器完成同步时序逻辑设计。一般来说,比较经典的基本逻辑可编程单元的配置是一个寄存器加一个查找表,但是不同厂商的寄存器和查找表的内部结构有一定的差异,而且寄存器和查找表的组合模式也不同。例如,Altera的可编程逻辑单元通常称为逻辑单元(Logic Element,LE),由一个寄存器外加一个LUT构成。Altera大多数FPGA将10个LE有机地组合起来,构成更大的功能单元——逻辑阵列模块(Logic Array Block,LAB)。LAB中除了LE外,还包含LE间的进位链、LAB控制信号、局部互连线资源、LUT级联链、寄存器级联链等连线与控制资源,如图1-4所示。Xilinx可编程逻辑单元称为Slice,它是由上下两个部分构成,每个部分都由一个寄存器加一个LUT组成,称为逻辑单元(Logic Cell,LC),两个LC之间有一些共用逻辑,可以完成LC之间的配合与级联。Lattice的底层逻辑单元称为可编程功能单元(Programmable Function Unit,PFU),它由8个LUT和8~9个寄存器构成。当然,这些可编程单元的配置结构随着器件的发展也在不断更新,更新的一些可编程逻辑器件常常根据设计需求推出一些新的LUT和寄存器的配置比率,并优化其内部的连接构造。图1-4 典型的LAB结构示意图

了解底层配置单元的LUT和寄存器比率的一个重要意义在于器件选型和规模估算,很多器件手册上用器件的ASIC门数或等效的系统门数表示器件的规模。但是由于目前FPGA内部除了基本可编程逻辑单元外,还包含有丰富的嵌入式RAM、PLL或DLL,专用Hard IP Core(硬知识产权功能核)等。这些功能模块也会等效出一定规模的系统门,所以用系统权衡基本可编程逻辑单元的数量是不准确的,常常混淆设计者。比较简单科学的方法是用器件的寄存器或LUT数量来衡量(一般来说,两者的比率为1:1)。例如,Xilinx的Spartan-3系列的XC3S1000有15 360个LUT,而Lattice的EC系列LFEC15E也有15 360个LUT,所以这两款FPGA的可编程逻辑单元数量基本相当,属于同一规模的产品。同样道理,Altera的Cyclone器件簇的EP1C12的LUT数量是12060个,就比前面提到的两款FPGA芯片规模略小。需要说明的是,器件选型是一个综合性问题,需要将设计的需求、成本压力、规模、速度等级、时钟资源、I/O特性、封装、专用功能模块等诸多因素综合考虑。

LE是Altera FPGA芯片的基本逻辑单位,通常由一个4输入查找表和一个可编程触发器,再加上一些辅助电路组成。LE有两种工作模式——正常模式和动态算术模式,其中正常模式用于实现普通的组合逻辑功能,动态算术模式用于实现加法器、计数器和比较器等功能。

LE正常模式的结构如图1-5所示。在正常模式下,LUT作为通用的4输入函数,实现组合逻辑功能。LUT的组合输出可以直接输出到行列互连线,或者通过LUT链输出到下面LE的LUT输入端,也可以经过触发器的寄存后输出到行列互连线。触发器同样可以通过触发器链串起来做移位寄存器。在不相关的逻辑功能中使用LUT和触发器可以被打包到同一个LE中,而且同一个LE中的触发器的输出可以反馈到LUT中实现逻辑功能,这样可以增加资源的利用率。图1-5 LE正常模式

在LE动态算术模式下,4输入LUT被配置成4个2输入的LUT,用于计算两个数相加之和与进位值,如图1-6所示。图1-6 LE动态算术模式

3)数字时钟管理模块(DCM)

业内大多数FPGA均提供数字时钟管理模块,用于产生用户所要求的稳定时钟信号,主要由锁相环路完成。相位锁定环路能够提供精确的时钟综合,且能够降低抖动,并实现过滤功能。内嵌时钟管理模块主要指延迟锁定环(Delay Locked Loop,DLL)、锁相环(Phase Locked Loop,PLL)、DSP等处理核。现在,越来越丰富的内嵌功能单元使得单片FPGA成为了系统级的设计工具,使其具备了软、硬件联合设计的能力,并逐步向SoC平台过渡。DLL和PLL具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。Xilinx公司生产的芯片上集成了DCM和DLL,Altera公司的芯片集成了PLL,Attice公司的新型芯片上同时集成了PLL和DLL。PLL和DLL可以通过IP核生成工具方便地进行管理和配置。DLL的结构如图1-7所示。图1-7 典型DLL结构

4)嵌入式块RAM(BRAM)

大多数FPGA都具有内嵌的BRAM,这大大拓展了FPGA的应用范围和灵活性。块RAM可被配置为单端口RAM、双端口RAM、地址存储器(CAM),以及FIFO等常用存储结构。CAM存储器在其内部的每个存储单元中都有一个比较逻辑,写入CAM中的数据会和内部的每一个数据进行比较,并返回与端口数据相同的所有数据的地址。除了块RAM,还可以将FPGA中的LUT灵活地配置成RAM、ROM和FIFO等结构。在实际应用中,芯片内部的BRAM数量也是选择芯片的一个重要因素。

对于一般的FPGA器件来讲,单片块RAM的容量为18 kbit,即位宽为18 bit、深度为1024。用户可以根据需要改变其位宽和深度,还可以将多片块RAM级联起来形成更大的RAM,此时所配置的最大容量受限于芯片内的块RAM数量。

5)丰富的布线资源

布线资源连通FPGA内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为四类不同的类别:第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线资源,用于完成芯片Bank间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专用时钟、复位等控制信号线。

在实际工程设计中,设计者不需要直接选择布线资源,布局布线器可自动根据输入逻辑网表的拓扑结构和约束条件选择布线资源来连通各个模块单元。从本质上讲,布线资源的使用方法和设计的结果有密切、直接的关系。

6)底层内嵌专用硬核

内嵌专用硬核是相对底层嵌入的软核而言的,FPGA内部集成的处理能力强大的硬核(Hard Core),等效于ASIC电路。为了提高FPGA性能,芯片生产商在芯片内部集成了一些专用的硬核。例如,为了提高FPGA的乘法速度,主流的FPGA中都集成了专用乘法器;为了适应通信总线与接口标准,很多高端的FPGA内部都集成了串/并收发器(SERDES),可以达到数10 Gbps的收发速度。Xilinx公司的高端产品不仅集成了PowerPC系列CPU,还内嵌了DSP Core模块,其相应的系统级设计工具是EDK和Platform Studio,并以此提出了片上系统(System on Chip)的概念。通过PowerPC、Miroblaze、Picoblaze等平台,能够开发标准的DSP处理器及其相关应用。Altera的高端FPGA芯片中不仅集成了大量的硬件乘法器等DSP核、多个高速收发器模块、PCIe硬核模块,还集成了ARM Cortex-A9等具有强大实时处理功能的嵌入式硬核,从而实现SoC的开发目的。

2.FPGA的工作原理

众所周知,类似于PROM、EPROM、EEPROM可编程器件的可编程原理是通过加高压或紫外线导致三极管或MOS管内部的载流子密度发生变化,来实现所谓的可编程的,但是这些器件大多只能实现单次可编程,或者编程状态难以稳定。FPGA则不同,它采用了逻辑单元阵列(Logic Cell Array,LCA)这样一个新概念,内部包括可配置逻辑模块(Configurable Logic Block,CLB)、输入/输出模块(Input Output Block,IOB)和内部连线(Interconnect)三个部分。FPGA的可编程实际上改变了CLB和IOB的触发器状态,这样可以实现多次重复的编程。由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。查找表可以很好地满足这一要求,目前主流FPGA都采用了基于SRAM工艺的查找表结构,也有一些军品和宇航级FPGA采用Flash或者熔丝与反熔丝工艺的查找表结构。

根据数字电路的基本知识可以知道,对于一个n输入的逻辑运算,不论是与、或运算,还是其他逻辑运算,最多只可能存在2n种结果,所以如果事先将相应的结果存放于一个存储单元,就相当于实现了与非门电路的功能。FPGA的原理也是如此,它通过烧写程序文件去配置查找表的内容,从而在相同电路结构的情况下实现了不同的逻辑功能。查找表简称LUT,LUT本质上就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入RAM。这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。

从表1-1中可以看到,LUT具有和逻辑电路相同的功能。实际上,LUT具有更快的执行速度和更大的规模。由于基于LUT的FPGA具有很高的集成度,其器件密度从数万门到数千万门不等,可以完成极其复杂的时序逻辑与组合逻辑电路功能,所以适用于高速、高密度的高端数字逻辑电路设计领域。表1-1 LUT输入与门的真值表

FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式编程。加电时,FPGA芯片将EPROM中的数据读入片内的RAM中,配置完成后FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须通用的EPROM、PROM编程器即可。Actel、QuickLogic等公司还提供反熔丝技术的FPGA,具有抗辐射、耐高低温、低功耗和速度快等优点,在军品和航空航天领域中应用较多,但这种FPGA不能重复擦写,开发初期比较麻烦,费用也比较昂贵。

3.IP核的概念

IP(Intelligent Property)核是指具有知识产权的集成电路模块或软件功能模块的总称,是经过反复验证过的、具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体工艺中。到了SoC阶段,IP核设计已成为ASIC电路设计公司和FPGA提供商的重要任务,也是其实力的体现。对于FPGA开发软件,其提供的IP核越丰富,用户的设计就越方便,其市场占有率就越高。目前,IP核已经变成系统设计的基本单元,并作为独立设计成果被交换、转让和销售。

根据IP核的提供方式,通常将其分为软核、固核和硬核这3类。从完成IP核所花费的成本来讲,硬核的代价最大;从使用灵活性来讲,软核的可复用性最高。

1)软核(Soft IP Core)

软核在电子设计自动化(Electronic Design Automation,EDA)设计领域指的是综合之前的寄存器传输级(Register Transfer Level,RTL)模型。具体在FPGA设计中指的是对电路的硬件语言描述,包括逻辑描述、网表和帮助文档等。软核是已通过功能仿真的功能模块,需要经过综合和布局布线才能使用。其优点是灵活性高、可移植性强,允许用户自主配置;缺点是对模块的预测性较低,在后续设计中存在发生错误的可能性,有一定的设计风险。软核是IP核应用最广泛的形式。

2)固核(Firm IP Core)

固核在EDA设计领域指的是带有平面规划信息的网表,具体在FPGA设计中可以看成带有布局规划的软核,通常以RTL代码和对应工艺网表的混合形式提供。将RTL描述的标准单元库进行综合优化设计,形成门级网表,再通过布局布线工具布线后即可使用。和软核相比,固核的设计灵活性稍差,但在可靠性上有较大提高。目前,固核也是IP核的主流形式之一。

3)硬核(Hard IP Core)

硬核在EDA设计领域指经过验证的设计版图,具体在FPGA设计中指布局和工艺固定、经过前端和后端验证的设计,设计人员不能对其修改。不能修改的原因有两个:首先是系统设计对各个模块的时序要求很严格,不允许打乱已有的物理版图;其次是保护知识产权的要求,不允许设计人员对其有任何改动。IP硬核的不许修改特点使其复用有一定的困难,因此只能用于某些特定应用,使用范围较窄,但其性能优良、可靠性及稳定性高。1.1.3 FPGA在数字信号处理中的应用

现代数字信号处理技术的实现平台主要有ASIC、DSP、CPU及FPGA四种。随着半导体芯片生产工艺的不断发展,四种平台的应用领域已越来越呈现相互融合的趋势,但因各自的侧重点不同,依然有各自的优势及鲜明特点。关于对四者的性能、特点、应用领域等方面的比较分析一直都是广大技术人员及专业杂志讨论的热点之一。相对而言,ASIC只提供可以接受的可编程性和集成水平,通常可为指定的功能提供最佳解决方案;DSP可为涉及复杂分析或决策分析的功能提供最佳可编程解决方案;CPU则在需要嵌入操作系统、可视化显示等领域得到广泛应用;FPGA可为高度并行或涉及线性处理的高速信号处理功能提供最佳的可编程解决方案。

任何信号处理器件性能的鉴定必须包括衡量该器件是否能在指定的时间内完成所需的功能。考虑一个具有16个抽头的简单FIR滤波器,该滤波器要求在每次采样中完成16次乘积和累加(MAC)操作。德州仪器公司的TMS320C6203 DSP具有300 MHz的时钟频率,在合理的优化设计中,每秒可完成4亿至5亿次MAC操作。这意味着C6203系列器件的FIR滤波具有最大为3 100万次每秒采样的输入速率。但在FPGA中,所有16次MAC操作均可并行执行。对于Xilinx的Virtex器件,16位MAC操作大约需要配置160个结构可重置的逻辑块(CLB),因此16个并发MAC操作的设计实现将需要大约2 560个CLB。XCV300E可轻松实现上述配置,并允许FIR滤波器工作在1亿个样本每秒的输入采样速率下。

目前,无线通信技术的发展十分迅速,无线通信技术发展的理论基础之一是软件无线电技术,而数字信号处理技术无疑是实现软件无线电技术的基础。无线通信一方面正向语音和数据综合的方向发展;另一方面,在手持PDA产品中越来越多地需要综合移动技术。这一要求对应用于无线通信中的FPGA芯片提出了严峻的挑战,其中最重要的三个方面是功耗、性能和成本。为适应无线通信的发展需要,FPGA系统芯片(System on a Chip,SoC)的概念、技术、芯片应运而生。利用系统芯片技术将尽可能多的功能集成在一片FPGA芯片上,使其性能上具有速率高、功耗低的特点,不仅价格低廉,还可以降低复杂性,便于使用。

实际上,FPGA器件的功能早已超越了传统意义上的胶合逻辑功能。随着各种技术的相互融合,为了同时满足运算速度、复杂度,以及降低开发难度的需求,目前在数字信号处理领域及嵌入式技术领域,FPGA加CPU的配置模式已浮出水面,并逐渐成为标准的配置模式。全球最大的两家FPGA厂商——Altera和Xilinx,均推出了各自的嵌入了CPU核的FPGA器件及开发软件。1.2 Altera器件简介

Altera由Robert Hartmann、Michael Magranet、Paul Newhagen和Jim Sansbury于1983年创立,这些有远见的人们对当时的研究进行投资,认为半导体客户将从用户可编程标准产品中受益,逐步取代逻辑门阵列。为满足这些市场需求,Altera的创始人发明了首款可编程逻辑器件(PLD)——EP300,开创了半导体业界全新的市场领域。这一灵活的新解决方案在市场上打败了传统的标准产品,为Altera带来了半导体创新领先企业的盛誉。根据面向电子设计的未来发展需求,Altera可编程解决方案促进了产品的及时面市,相对于高成本、高风险的ASIC开发,以及不灵活的专用标准产品(Application Specific Standard Parts,ASSP)和数字信号处理器具有明显的优势。与以前的可编程逻辑产品相比,Altera为更广阔的市场带来了更大的价值。

通过与代工线合作伙伴台积电(TSMC)等业界一流的技术供应商保持长期稳固的合作关系,Altera确保了为客户及时交付高质量产品。采用来自业界最好的EDA供应商的工具,Altera进一步增强了自己的布局布线设计软件。在世界级分销网络的帮助下,Altera为全球客户提供服务。采用这一非常成功的商业模式,Altera能够将精力集中在核心能力上:开发并实现前沿的可编程技术,为客户提供最大价值。

Altera公司产品种类众多,基本可以满足各种电子通信类产品的设计需求。随着新技术的不断发展,Altera器件的性能仍在不断提高。Altera的器件可分为高端FPGA器件(Stratix系列)、中端FPGA器件(Arria系列)、低成本FPGA器件(Cyclone系列)、低成本CPLD器件(MAX系列),以及DC电源芯片(Enpirion系列)和FPGA程序配置器件(EPCS、EPCQ系列)。

表1-2 Altera各种FPGA器件产品的主要功能特点器件级别器件系列主要功能特点●唯一采用Intel革命性的14 nm的3D三栅极晶体管技术制造的主要FPGA。●Altera下一代FPGA体系结构内核性能提高端FPGA产Stratix 10系高了2倍。品列●功耗比前一代高端FPGA降低了70%。●第三代硬核处理器系统。●异构多管芯3D解决方案,包括SRAM、DRAM和ASIC●带宽最宽、集成度最高的28 nm FPGA,非常灵活。●新一类目标应用器件,集成了28 Gbps和支持背板的12.5 Gbps收发器,还集成了硬核知识产权(IP)模块,包括嵌入Stratix V系列式HardCopy®模块,以及用户友好的部分重新配置功能。●功耗比Stratix IV FPGA低30%。●低风险、低成本移植到HardCopy ASIC,实现量产●第四代Stratix FPGA系列。●同类最佳的11.3 Gbps收发器及高性能Stratix IV系列存储器接口实现了前所未有的系统带宽,并具有优异的信号完整性●第三代Stratix FPGA,业界功耗最低的高性能65 nm FPGA。●三种型号:逻辑丰富型(L)、存储器和DSP增强型(E)、收发器型(GX)。Stratix III系列●面向高端系统处理设计,由业界一流的FPGA设计工具提供支持,无风险HardCopy ASIC移植●第二代高性能90 nm FPGA系列。●目前的产品型号提供含有同类最佳的6.375 Gbps GX收发器。●高级FPGA体系结构、带有8输入分段式Stratix II系列LUT的高性能ALM、丰富的片内存储器、嵌入式DSP模块和高速外部接口,支持高端FPGA产HardCopy ASIC无风险移植品●第一代Stratix系列,Stratix II和Stratix III系列以更低的成本实现更好的性能。●中等性能、嵌入式DSP模块、片内存储Stratix系列器、灵活的I/O。●丰富的知识产权,包括“世界上最通用的处理器”Nios II●性能和功效最优的中端FPGA和SoC。●性能比前一代中端器件高60%。●带宽比前一代中端器件高4倍,支持28 中端FPGA产Arria10系列Gbps收发器。品●系统性能提高了3倍(2666 Mbps DDR4、混合存储器支持)●总功耗比前一代中端器件降低了40%

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载