为缓解我国电子信息产业快速发展与核心技术人才紧缺的矛盾,中电网(ECCN)在信息产业部的支持下,联合国际著名集成电路设计厂商和清华大学等国内顶级高校,隆重推出电子工程与集成电路技术培训项目。所开课程包括FPGA/PLD、数字处理器、嵌入式 SoC 以及模拟和射频技术等。其中,FPGA培训是与Altera公司和清华大学共同推出的,并最先开课。本刊将陆续整理培训的精华内容与读者分享。更多详情敬请登录 http://training.ECCN.com/ 。
IP核
IP核定义
IP(Intellectual Property)即知识产权,包含产品、工艺、技术及软件等,受到专利、版权及商业机密等的保护。
IP核类型
软核
通常是用HDL文本形式提交给用户,它经过RTL级设计优化和功能验证,但其中不含任何具体的物理信息。根据软核,用户可以综合出正确的门电路级设计网表,并可以进行后续的结构设计,具有很大的灵活性,借助EDA综合工具可以很容易地与其他外部逻辑电路合成一体。
硬核
硬核是基于半导体工艺的物理设计,已有固定的拓扑布局和具体工艺,并已经过工艺验证,具有可保证的性能。它提供给用户的形式是电路物理结构掩模版图和全套工艺文件。
固核
固核的设计程度则介于软核和硬核之间,除了完成软核所有的设计外,还完成了门级电路综合和时序仿真等设计环节。一般以门级电路网表的形式提供给用户。
IP核的使用
IP是自下而上设计方法学的基础,也是SoC的构造基础。IP的可重用特性,除了可以缩短SoC芯片的设计时间外,还能大大降低设计和制造的成本,提高可靠性。Altera为用户提供了各式各样的IP核及方便的IP核使用工具,如MegaWizard宏向导等。
IP核的优势
使用IP核进行系统设计可以提高设计性能,降低开发成本,缩短设计周期,其灵活性强仿真方便,降低了设计风险。
Altera的IP
Altera为用户提供了三类IP,包括:基本宏功能(Megafunctions)、MegaCore及AMPP IP核。
基本宏功能
Altera的基本宏功能是针对其目标器件进行优化过的模块,性能更高,使用资源更少,可用于实现基本的逻辑功能。另外,一些Altera特有的资源,如RAM块、DSP块、LVDS驱动器、锁相环及高速收发电路等,也是通过基本宏功能的方式提供给用户。
基本宏功能(Megafunctions)包括两类,一类是Altera专有的宏功能,以ALT开头进行标注,另一类则是参数化的模块库。具体包括算术组件:如,累加器、乘法器;门电路:如,多路选择器和各种门函数;I/O组件:如,锁相环、LVDS收发器、存储器等。
MegaCore
MegaCore 是Altera提供的第二类IP核,它提供了比较复杂又比较通用的功能模块,分为四类:
数字信号处理类:FIR、FFT、NCO、维特比等;
通信类:Rapid I/O、SPI4.2、8B、10B等;
接口和外设类:PCI、DDR存储器接口等;
微处理器类:Nios II、SRAM接口、DRAM接口、UART等。
AMPP IP核
AMPP IP核是第三方及Altera合作伙伴向Altera用户提供的基于Altera器件优化的IP核。所有AMPP IP核具有统一的界面,用来定制、生成IP文件。
Altera的IP工具MegaWizard管理器
MegaWizard管理器可以帮助用户建立或修改包含自定义宏功能模块变量的设计文件,而后可以在用户自己的设计文件中对这些IP模块文件实例化。通常这些自定义宏功能模块变量基于Altera提供的基本宏功能、MegaCore以及AMPP IP核。通过运行向导,MegaWizard管理器能帮助用户方便的为自定义宏功能模块变量指定选项,产生所需功能。
缺省状态下,MegaWizard输出HDL 封装文件,同时还提供HDL实例化模块、VHDL元件声明(CMP)、Quartus II符号(BSF)及Verilog黑盒子等不同选择。
专用硬件资源的使用
锁相环
锁相环是芯片中最常用的时钟产生形式,可以对参考晶振信号进行分频、倍频、占空比调整、相位调整等操作,精确地产生所预期的时钟信号。锁相环集成方便,频率精度高。
随着系统复杂度的不断提高,内部逻辑实现时往往需要多个频率和相位的时钟,因此在 FPGA内部出现了时钟管理单元,而最具有代表性的即为锁相环(PLL)和延迟锁定环(DLL)。
Altera在FPGA芯片中内嵌模拟锁相环(PLL),PLL通过反馈路径消除时钟分布路径的延时,可以用作频率综合(如:分频、倍频)、去抖动、调整占空比及移相等。
图1给出了Altera StratixⓇ II器件的PLL与时钟网络,图中器件的I/O分布在四个边沿,每个边分为两组,共八个I/O组。同时,各边提供了四个时钟输入脚及锁相环(PLL)。其中,图中上下两边提供的是增强型PLL,左右两边提供的是快速PLL。
图1 Stratix II FPGA的PLL与时钟网络(略)
产生时钟信号的基本元件,包括标准的与高级的晶体振荡器。高级的晶体振荡器通过电压控制、温度补偿等方法提高晶振精度。时钟产生电路包括锁相环(PLL)与延迟锁定环(DLL),两者均可调整压控振荡器,以获得所需的相位或频率。区别在于前者是模拟电路,后者是数字电路(如图2所示)。
图2 PLL与DLL比较(略)
锁相环(PLL)
Altera在Stratix 器件中,提供了增强型锁相环(EPLL),可对片内和片外提供丰富的时钟输出,具有一些高级属性。同时,还提供了快速锁相环(FPLL),主要用于高速源同步差分I/O接口的设计和一些普通应用。而在Cyclone器件中,提供了简化的快速PLL。
PLL由压控振荡器(VCO)、分频器、相位检波器(PD)、环路的低通滤波器(LF)和2分频电路组成(如图3所示),因此锁相环的三个性能指标即锁相时间、抖动和功耗。
图3 销相环(略)
锁定时间
PLL在一定的频率容差范围内产生预期频率输出花费的时间,通常表示为PLL在规定的频率精度内产生输出频率的时间。如:要求输出频率500MHz,频率精度为1kHz,则锁相时间可以规定为1kHz分辨率50μ秒。
抖动或相位误差
加性噪声和相位误差的差别:由于PLL中电子器件的热噪声,余弦波信号可能被加性噪声和相位误差所污染。加性噪声只对信号幅度产生影响,相位误差则使信号的水平行踪发生变化,产生时间上的影响。
低抖动PLL结构
差分PLL结构
差分PLL结构中,包括环路滤波器和VCO在内的所有PLL元件均由差分方式实现,如果实现正确,它对噪声有较好的共模抑制力。以差分方式实现环路滤波器可以减少电容的尺寸,节省面积。
电源整流 PLL结构
差分结构有较高的参考电源寄生性能,因此要利用电压整流器隔离电源的起伏,减少电源电压跳动对PLL抖动性能的影响。
自适应 PLL结构
对SoC应用的锁相环而言,电源噪声和固有的VCO噪声是主要的噪声来源。优化环路带宽可以平衡由各种噪声源引起的抖动。但某些情况下,可能很难找到合适的闭环带宽满足锁定时间和低抖动的性能要求,因而需研究自适应带宽技术。通常采用两种带宽方式的结构,在频率捕获期间由开关接入具有更大电流的电荷泵并旁路环路滤波器的电阻,保证快速捕获。
无电阻环路 PLL
环路滤波器的元件分为以电容为主的积分元件和以电阻为主的比例元件,积分元件累加相位误差,并变换成电流脉冲,表示为电压。比例元件没有这样的记忆,它直接把相位误差脉冲变换成电压脉冲,因此可以去除用于稳定闭环响应的电阻,把电流脉冲直接加入VCO中。
延迟锁定环
延迟锁定环(DLL,如图4所示)在缓冲链中的总延迟等于参考时钟的一个周期。DLL可以虚假锁定(False Locking)在输入周期的倍数或零时间上,防止虚假锁定需要利用预先调谐算法,调整VCDL中的延迟或者限制VCDL的增益。当DLL锁定时,VCDL中的每个缓冲器均有Tref/M的延迟,其中Tref是输入参考周期,M是VCDL中缓冲的级数。
图4 延迟锁定环(略)
DLL的环路滤波器只包含一个电容,其闭环响应是单极点系统,无条件稳定,因而无需电阻来稳定环路滤波器。
混合PLL/DLL法
混合PLL/DLL法(如图5所示),可以解决在基于PLL和DLL频率综合方法中遇到的问题,混合结构的抖动总是优于一般PLL的抖动(等于累加因子α)和纯粹基于DLL频率综合的抖动(等于N/3)。
图5 混合PLL/DLL法(略)
在实际应用中,用户可以调用MegaWizard中的ALTPLL生成所需的锁相环,无论是EPLL还是FPLL,都可以在这里选择。
Stratix II FPGA增强型PLL结构
Stratix II FPGA增强型PLL结构(如图6所示)包含四个具有先进时钟管理功能的增强型PLL,将内部或外部时钟的相位和频率同步于输入参考时钟。增强型PLL包括相频检波、电荷泵、环路滤波器及VCO等。VCO的输出可以接到6个输出引脚。
图6 Stratix II FPGA增强型PLL结构(略)
Stratix II FPGA FPLL结构
Stratix II FPGA FPLL结构(如图7所示),每个器件提供八个快速PLL,支持差分或单端的源同步发送器输出或通用外部时钟输出。包括相频检波、电荷泵、环路滤波器及VCO等,比增强型结构简单。
图7 Stratix II FPGA FPLL结构(略)
与增强型PLL相比,Stratix II FPGA FPLL没有专用的时钟输出引脚,它的全局或局部可以驱动任何I/O引脚作为外部时钟输出引脚。同时,由任何特定组(Bank)支持的I/O标准可以决定在这组的快速PLL驱动的外部时钟输出遵循怎样的标准。
片内存储器
在FPGA中,片内存储器是十分重要的资源。利用片内存储器,可以在FPGA中实现RAM、ROM、CAM等存储单元。存储单元的设计有其自身的规律和特点:
RAM是根据地址读、写数据的存储单元;
在FPGA中没有专用的ROM硬件资源,实现ROM的方法是:对RAM赋初值,并保持该初值;
CAM和RAM恰恰相反,它返回的是与端口数据相匹配的内部地址。
CAM的应用非常广泛,如在路由器中的地址表等。
FPGA中与存储单元相关的资源有三类:块RAM、查找表、寄存器。块RAM是FPGA中内嵌的存储单元,可以配置为单口/双口RAM、ROM、CAM及FIFO等。绝大多数 FPGA都是基于触发器(FF)和查找表(LUT)结构的,这两种基本资源都可以综合为RAM等存储单元。相对较小、速度较高的存储结构可以用寄存器资源实现;相对大一些,时序余量宽松的存储单元可以用LUT实现。
目前很多综合工具支持类推RAM、ROM、CAM等存储单元使用块RAM、寄存器或LUT资源。
存储单元的三种基本生成方法:
直接在HDL代码中描述:直接用HDL代码描述存储单元的模型,而后由综合器综合类推。其缺点在于综合结果不确定,或者需要直接调用器件商提供的与这些存储单元相关的硬件原语。
使用综合约束属性指导综合器类推RAM等存储单元,这要求设计者必须熟悉器件结构和综合软件的约束属性。
使用EDA软件提供的IP Core实现,该方法简单、高效,推荐采用。
为了满足不同的设计需求, Altera FPGA中的块RAM有三种:M512:每块容量为512bit;M4K:每块容量为4kbit;M-RAM:每块容量为512kbit。Altera片内块RAM的端口方式:单端口RAM:一个端口进行读写操作;简单双端口RAM:两个端口,一个只读,一个只写;真正双端口RAM:两个端口,均可读写;多端口RAM,比如一个端口写,两个端口读等;FIFO:先进先出队列;ROM:只读存储器;移位寄存器等。
在Altera Quartus II中,要实现单端口、双端口等RAM,需要在MegaWizard中的Storage部分选择ALTSYNCRAM的Megafunction功能块。要使用RAM实现移位寄存器,则需在MegaWizard中调用ALTSHIFT TAPS。
高速差分接口
随着数据接口速度和带宽的不断提高,许多接口逐渐摒弃了传统的LVTTL/LVCMOS电平,转而采用一些速度更高、抗干扰性能更好的差分接口电平(如图8所示),如LVDS、HyperTransport等,从而减少PCB走线,提高传输带宽。
图8 高速差分接口(略)
在实际设计中,要实现LVDS发送器和接收器,只需在MegaWizard中调用ALTLVDS并进行定制即可。
DSP块
FPGA中的DSP资源,包括:硬件乘法器、乘加器及专用的DSP逻辑片。利用这些资源,系统设计者可将精力集中在设计上,而无须关心底层模块的细节。
FPGA可以生成定制硬件设计,从而控制逻辑在硬件中的实现。通过裁减硬件架构,FPGA可以提供额外的性能。当速度是最重要的考量因素时,可以在FPGA中设计完全并行的算法处理方案,以资源换取速度。
Altera高端FPGA中均嵌入DSP块,用来实现高速的、并行的数字信号处理。Altera DSP块包括:输入寄存器、乘法器、流水线寄存器、加/减/累加单元、求总和单元、输出多路选择器及输出寄存器等(如图9所示)。
图9 Altera DSP块结构(略)
为提高速度,DSP块中的输入寄存器增加了流水线级并支持旁路模式。乘法器模块则包含4个18×18乘法器,其数据带宽与存储器带宽相匹配,支持有符号和无符号操作及三种不同的数据宽度,包括:1个36×36乘法器,4个18×18乘法器及8个9×9乘法器。 其中,流水线寄存器可以割断乘法器和加法器之间的关键路径,提高DSP块的速度。
其他硬核
除了以上的专用硬件资源外, 还有可能在FPGA中集成其他硬IP核,如:微处理器硬核、以太网MAC层硬核等。硬核的优势在于节省FPGA片内逻辑资源,降低开发成本,节省功耗,缩短验证、测试及布局布线时间,使设计简单快捷。
以以太网MAC(多媒体存取控制器)硬核为例,在FPGA中嵌入以太网MAC IP的优势体现在:缩小电路板面积、降低电路板复杂度、降低设计对FPGA引脚数量的要求、使设计方案更灵活等。 |