为缓解我国电子信息产业快速发展与核心技术人才紧缺的矛盾,中电网(ECCN)在信息产业部的支持下,联合国际著名集成电路设计厂商和清华大学等国内顶级高校,隆重推出电子工程与集成电路技术培训项目。所开课程包括FPGA/PLD、数字处理器、嵌入式 SoC 以及模拟和射频技术等。其中,FPGA培训是与Altera公司和清华大学共同推出的,并最先开课。本刊将陆续整理培训的精华内容与读者分享。更多详情敬请登录 http://training.ECCN.com/。
本讲包含四部分内容,一,命令行与Tcl 脚本;二,功耗分析;三,高速电路设计,包括:信号完整性及电源高速设计等;四,成本缩减。
命令行与Tcl脚本
在使用EDA 软件时,除了可以通过图形用户界面 GUI 操作以外,也可以通过命令行和脚本方式完成同样的工作。
脚本是指用纯文本的方式记录并运行设计流程的各种设置和操作。在 EDA 领域使用脚本是一种比较流行的方式,但对初学者而言,不易上手,比较枯燥,实际上使用脚本具有众多优点。
脚本语言的优点
使用脚本语言具有以下好处:节省内存资源,提高生产率;用户可以灵活定制工作过程;可以方便的嵌入到基于脚本语言的设计流程中;可以方便的进行分布式计算;及可移植性强等。同时,图形用户界面 (GUI) 的优势,包括:界面友好、直观,容易使用;方便进行原理图、版图编辑等。
命令行与脚本
为了兼顾脚本方式的灵活性和GUI方式的易用性,用户可以在设计的不同阶段分别使用 GUI 方式和脚本方式。这里的命令行也是一种脚本,在 Altera Quartus II 中,有命令行脚本和 Tcl 脚本两种方式,这两种方式互为补充,为用户提供全流程的脚本解决方案。
命令行
命令行方式提供比 GUI更多的可独立执行的命令,每个设计步骤都有相应的模块化的执行指令,如:quartus_map:分析、综合与映射命令;quartus_fit:布局布线命令;quartus_sim:仿真命令;quartus_asm:生成配置文件;quartus_pgm:对器件进行配置等。此外,使用命令行还可以对工程进行各种设置。
Tcl脚本
Tcl是 EDA 领域的标准脚本语言,如Synopsys、Mentor Graphics、 Synplicty等EDA 公司均采用Tcl脚本语言。
在Tcl语言中,允许用户自定义命令,并可在大多数设计平台间无缝转换。Altera Quartus II 支持很多Tcl命令包,每个包有不同类型的Tcl命令,如project 包中的命令主要用于设置和得到工程的属性,device包则主要用于得到器件信息。
功耗分析
早期的逻辑器件,由于制造工艺水平的限制,通常器件的密度较低,工作频率不高,器件的体积、面积较大,因此系统对器件的性能要求不高,器件的功耗问题也并不突出。但当前,随着器件规模的飞速增长,器件的封装尺寸越来越小,密度越来越大,同时系统对器件的性能和可靠性要求不断提高,功耗问题已不能忽略。
器件的功耗取决于多种因素,包括:工作频率、器件的密度和利用率、工作电压、输出负载、开关效应及所处的环境等。因此,对器件功耗的统计和计算较为复杂,如何为设计者提供准确的功耗数据,以便在设计过程中加以考虑,从而提高系统的性能和可靠性,已经成为设计工具的主要任务之一。
FPGA的功耗
目前广泛使用的、基于SRAM的 FPGA器件的一个特点是其上电瞬间的电流较大,有时甚至大于芯片正常工作时的电流。如果用户在设计时没有考虑到上电瞬间的大电流,使得电源模块不能提供这么大的电流时,就会导致芯片上电失败,器件无法正常工作。一般这个上电电流值会在芯片手册中给出。
图1 FPGA静态功耗(略)
FPGA在正常工作中,消耗的总功耗由器件的静态功耗、动态功耗和 I/O 功耗构成。静态功耗也称为待机功耗,是芯片处于上电状态,但内部电路没有工作时消耗的功耗;动态功耗是指由于内部电路翻转所消耗的功耗;I/O 功耗则是指I/O在翻转时,对外部负载电容进行充放电所消耗的功耗。
静态功耗
芯片的静态功耗是芯片处于待机状态下所消耗的功 耗 ,主要是由芯片内部的漏电流产生。与0.13 μm工艺的器件相比,在高速的90nm或65nm器件中,漏电流相对较大,因此静态功耗成为主要的电源消耗,也叫做漏电功耗。相比以前的器件工艺(如0.13μm),90nm或65nm器件由于内核电压的降低,芯片在工作时所消耗的动态功耗也因此相应降低。
图2比较了 0.13 μm 和 90nm 两种工艺下FPGA的静态功耗。纵坐标代表功耗,以瓦数为单位。绿色为静态功耗,黄色为动态功耗,蓝色为 I/O 功耗,可以看出两者 I/O 功耗相差不多,90nm的动态功耗有所降低,而静态功耗有所增长。
图2 0.13μm与90nmFPGA的静态功耗(略)
Altera 功耗估计
Altera 为了使用户能够准确的评估芯片在工作时的实际功耗,提供了两种功耗估计方法:
PowerPlay 早期功耗估计
采用PowerPlay 早期功耗估计,用户需要估计 FPGA 中的各种资源(如逻辑单元、ROM 块、PLL、DSP 块及I/O等)的使用情况,以及它们的工作时钟频率。同时,需要估计各种资源的工作过程中的翻转率,而这对芯片的动态功耗影响非常大。在 90nm 器件中,由于静态功耗较大,计算功耗时还需考虑环境温度、表面风速、散热片类型等因素,以估计芯片的待机功耗。当设计完成后,用户可在 Quartus II 中输出一个功耗估计文件,并将其载入估计表格中。
图3 PowerPlay早期功耗估计工具(略)
PowerPlay 早期功耗估计的过程如下:在 Quartus II 中对 FPGA 设计进行部分或完整编译;在 Quartus II 中生成功耗估计文件;在Altera网站下载 PowerPlay 早期功耗估计工具;运行导入数据宏,将器件资源使用情况自动载入表单;查看是否有需要修改的地方。实际上,设计编译并生成的功耗估计文件,还需导入PowerPlay 功耗估计工具以完成分 析。
PowerPlay 功耗分析器
在使用 PowerPlay 功耗分析器之前,用户必须首先编译设计,而后根据设计的实际情况,给设计添加一些激励,再对设计进行仿真。功耗分析器可以根据仿真结果估算芯片实际工作时的功耗。这种方法通常在设计的后期,用来精确估计芯片功耗时使用,与计算表格相比,这种方法更准确,但耗费的时间更多。
如图4所示,给出了功率分析器的工作流程,包括:在仿真设置中,使能 .SAF 文件生成;在功耗分析器的设置中,指定 .SAF 文件的名字;编译设计;生成功能仿真网表;运行 Quartus II 仿真软件,配制过程当中将生成 .SAF 文件;运行功率分析器(Power Analyzer);在编译报告中,检查 PowerPlay 功率分析结果。
图4 PowerPlay功耗分析器工作流程(略)
高速电路设计
在FPGA/CPLD设计中,逻辑工程师们只关心逻辑功能的正确与否,而对一些电路板和系统级的问题重视不够,也缺乏相应的知识。
图5 生成使能SAF文件(略)
系统级问题主要体现在信号完整性、电源完整性、热设计及高速系统设计等方面。在高速数字设计中,信号完整性问题无处不在,影响巨大,而电源供电的质量则对系统的正常工作和信号质量非常关键。
信号完整性
信号完整性,就是要使信号具有良好的物理特性,包括高低电平的阈值以及沿的跳变特性等,防止产生信号畸变而导致接收端无法识别。
与信号完整性相关的现象,包括:反射、振铃、开关噪声、地弹、衰减、串扰及容性负载等,而信号本身的质量、电源/地噪声、信号线间串扰与电磁干扰等则是产生这些现象的原因。
传输线效应
信号在媒质上传播时,会产生波动和反射等现象。一个信号传输系统对输入信号的响应,决定于传输线长度和电气信号传输的快慢。信号在传输过程中,如果传输路径的特性阻抗发生变化(如,信号线宽度突变、信号换层、过孔等),信号将在阻抗不连续的节点产生反射,这就是传输线效应。因此,在设计 PCB 时,应注意保持传输线阻抗尽量连续,并在信号末端,合理利用终端匹配电阻吸收信号。
串扰
串扰是指两个相邻信号线之间,其中一条走线上的电流发生改变,同时会在另一条走线上耦合出一定的噪声电流,它只在相邻走线上电流发生改变时才会发生。
减少串扰的方法很多,根本原则是减少信号之间的耦合效应,如,对于PCB布线,同一层走线尽量远一些;相邻信号层走线尽量不要平行;信号线与参考平面尽量贴近等。
电源/地噪声
系统中,电源和地经常受到外界或内部的噪声干扰,使电源表现出一定的波动,这种波动有时会严重影响系统的可靠性。通常导致这些波动的原因是电源和地之间对交流信号存在一定的阻抗,因此设计电源的主要目的是使电源分配系统在相当宽的噪声频率范围内表现出较低的交流阻抗,使得各种噪声造成的电源地平面波动幅度尽量小。具体方法包括:使电源平面与地平面之间的间距尽量小,尽量采用薄的介质;采用低电感的去耦电容;在芯片封装上,采用更多、更短的电源和地线,增加片上电容等。
电磁干扰EMI
在电子系统中,电磁干扰无处不在。信号完整性和电磁干扰密切相关,任何信号完整性问题都可能成为EMI的噪声源,因此,在设计PCB时,要充分考虑电磁干扰效应,做好设备屏蔽。
图6 Altera HardCopy/HardCopy II(略)
电源完整性
电源完整性属于信号完整性的范畴,保持电源完整性就是保持电源的稳定供电,在实际系统中,由于存在着不同频率的噪声,要做到这一点并不容易。首先,需要把电源分配系统和外界隔离开。另外,系统内部也会产生各种噪声,此时可以通过放置去耦电容降低噪声的影响。
功耗分析与热设计
FPGA 芯片一般分为商业级和工业级,Altera 的商业级芯片的正常工作温度范围是 0-85℃,工业级芯片的正常工作范围是?40-100℃。在实际系统中,设计者必须保证芯片的温度在其可承受的范围之内。热设计就是保持芯片的温度在其可承受的范围之内的一些设计内容,如加装散热片等。
高速 PCB 设计
系统PCB 设计的注意事项:外层信号延迟最小;减小参考平面间的信号线干扰;高速差分信号线布线及阻抗匹配;电容、旁路电容及去耦电容的设置;高速系统时钟布线尽量不使用过孔;及注意电源的屏蔽和滤波等。
借助HardCopy缩减FPGA设计成本
Altera HardCopy/HardCopy II
为了实现可编程的灵活性,在 FPGA 中使用了大量冗余的逻辑资源,互连线资源及其他的特殊逻辑功能块。这些都显著增加了系统的成本和功耗,同时也限制了FPGA的设计性能。 结构化ASIC,是利用预先定义好的逻辑结构和内部走线资源,通过为用户定制几层金属互连线层来实现客户需要的芯片功能。
表1:HardCopy/HardCopy II性能、工艺对比(略)
HardCopy 是Altera推出的一种结构化ASIC, Quartus II工具中也内嵌了HardCopy转换工具,用户可以轻松的把 FPGA的设计转至HardCopy上。使用HardCopy器件,将芯片的性能提升50%左右,而功耗和单片成本则大幅降低。目前,HardCopy已升级为 HardCopy II 。
与对应的 FPGA 相比,HardCopy的设计思路可以简单理解为:在FPGA 的基础上,去掉可编程互连线资源;去掉FPGA的配置电路、逻辑资源和RAM 块的可编程性;把占用的硅片面积减小到原来的 70% 左右;增加嵌入的可测试电路;及使用两层金属走线来定制逻辑功能等。 Altera HardCopy减少了成本、降低了功耗、提高了性能,令速度提升近50%。
HardCopy II 设计流程
图7给出了HardCopy II的设计流程:选择 HardCopy II 的目标器件,用 Mentor Graphic 的设计软件进行结构化转换,而后进行HardCopy II优化。
图7 HardCopy II 的设计框架(略)
在HardCopy II 的设计流程中,用户需要参与的工作非常少,如果用户已经在 FPGA 上完成了设计,经过验证保证无缺陷后,就可以在 Quartus II 中利用 HardCopy 流程产生一个存档文件,把整个文件交给 Altera ,即可等待样片。
Altera 根据用户提供的文件,对设计进行门级网表提取,插入扫描和测试电路,再根据用户的约束条件进行布局布线,在这个过程中,还会对设计进行形式验证和静态时序分析, 以确保设计正确。
如图8所示, HardCopy II的移植和校验需要2-4周,定制掩膜、样机制造和封装测试需要约5-7周,样机的认可需要3周,而最后的量产大概需要8 周左右。因此整个过程的设计周期为18-22 周,极大地节省了设计时间,加速了应用推广。
图8 HardCopy II具体设计流程(略) |