EDA技术主要是指面向专用集成电路设计的计算机技术,与传统的专用集成电路设计技术相比,其特点有:①设计全程,包括电路系统描述、硬件设计、仿真测试、综合、调试、软件设计,直至硬件系统都由计算机完成;②设计技术直接面向用户,即专用集成电路的被动使用都有同时也可能是专用集成电路的主动设计者;③专用集成电路的实现有了更多的途径,即除传统的ASIC器件外,还能通过FPGA、CPLD、ispPAC、FPSC等可编程器件来实现,本文主要就后者,简要介绍EDA技术及其应用最新近的一些发展。
由于在电子系统设计领域中的明显优势,基于大规模可编程器件解决方案的EDA技术及其应用在近年中有了巨大的发展,将电子设计技术再次推向又一崭新的历史阶段。这些新的发展大致包括这样6个方面:①新器件;②新工具软件;③嵌入式系统设计;④DSP系统设计;⑤计算机处理器设计;⑥与ASIC市场的竞争技术。以下将分别予以说明。
1、新器件
由于市场产品的需求和市场竞争的促进,成熟的EDA工具所能支持的,同时标志着最新EDA工具所能支持的,同时标志着最新EDA技术发展成果的新器件不断涌现,其特点主要表现为:
(1)大规模。逻辑规模已达数百万门,近10万逻辑宏单元,可以将一个复杂的电路系统,包括诸如一个至多个嵌入式系统处理器、各类通信接口、控制模块和DSP模块等装入一个芯片中,即能满足所谓的SOPC设计。典型的器件有Altera的Stratix系列、Excalibue系列;Xilinx的Virtex-II Pro系列、Spartan-3系列(该系列达到了90nm工艺技术)。
(2)低功耗。尽管一般的FPGA和CPLD在功能和规模上都能很好地满足绝大多数的系统设计要求,但对于有低功耗要法语的便携式产品来说,通常都难于满足要求,但由Lattice公司最新推出的ispMACH4000z系列CPLD达到了前所未有的低功耗性能,静态功耗20微安,以至于被称为0功耗器件,而其它性能,如速度、规模、接口特性等仍然保持了很好的指标。
(3)模拟可编程。各种应用EDA工具软件设计、isp方式编程下载的模拟可编程及模数混合可编程器件不断出现。最具代表性的器件是Lattice的ispPAC系列器件,其中包括常规模拟可编程器件ispPAC10;精密高阶低通滤波器设计专用器件ispPAC80;模数混合通用在系统可编程器件ispPAC20;在系统可编程电子系统电源管理器件ispPAC-POWER等等。
(4)含多种专用端口和附加功能模块的FPGA。例如Lattice的ORT、ORSO系列器件,含sysHSI SERDES技术的FPGA具有通信速度高达3.7Gbps的SERDES背板收发器,其中内嵌8b/10b编解码器,以及超过40万门的FPGA可编程逻辑资源;Altera的Stratix、Cyclone、APEX等系列器件,除内嵌大量ESB(嵌入式系统块)外,还含有嵌入的锁相环模块(用于时钟发生和管理)、嵌入式微处理器核等。此外,Stratix系列器件还嵌有丰富的DSP模块。
2、新工具软件
为了适应更大规模FPGA的开发,包括片上系统的DSP的开发,除了第三方EDA公司不断更新的通用EDA工具外,主要PLD供应商也相继推出,并适时升级其EDA开发工具。
如Lattice公司从早期的Synario,升级到后来的ispEXPERT System、ispDesignEXPERT System、ispLEVER,直到现在的ispLEVER Advanced System通用EDA工具,可用于开发Lattice所有的FPGA、FPSC、CPLD和GDX器件。
Xilinx推出的最新设计环境是ISE6.1I,其中增加了许多新的功能,如支持嵌入式系统的Linux开发,支持混合硬件描述语言综合设计流程、强化排错功能、Chip Scope Pro实时调试器等等。此外还升级了用于软核嵌入式系统调试的工具Embedded Developmen Kit和基于FPGA的DSP开发环境System Generator for DSP。
同样,Altera也推出了适用于不同设计对象的EDA开发环境。其中QuartusⅡ 3.0是一综合设计环境,被称为SOPC(可编程单片系统)升级环境,它承接了原来MaxplusⅡ的全部设计功能和器件对象外还增加了许多新功能和新的FPGA器件系列,包括一些适用于SOPC开发的大规模器件。
相对于上述EDA工具,QuartusⅡ含有许多更具特色和更强的实用功能,大致有以下几点:
(1)QuartusⅡ与MATLAB/Simulink和Altera的DSP Builder,以及第三方的综合器和仿真器相结合,用于开发DSP硬件系统;
(2)QuartusⅡ与SOPC Builder结合用于开发Nios嵌入式系统;
(3)QuartusⅡ含实时调试工具、嵌入式逻辑分析式Signal TapⅡ。
随着逻辑设计复杂性的不断增加,在计算机上以软件方式的仿真测试变得更加耗费时间,而不断需要重复进行的硬件系统的测试同样变得更为困难。为了解决这些问题,设计者可以将一种高效的硬件实时测试手段和传统的系统测试方法相结合来完成。这就是嵌入式逻辑分析仪Signal TapⅡ的使用。它可以随设计文件一并下载于目标芯片中,用以捕捉目标芯片内设计者感兴趣的信号节点处的信号,而又不影响原硬件系统的正常工作。可以通过两种方式来使用Signal TapⅡ,一种是直接使用QuartusⅡ3.0中的Signal TapⅡ;另一种方式是通过MATLAB的Simulink和DSP Builder来使用Signal TapⅡ。DSP Builder中包含有Signal TapⅡ模块,设计者可以使用此模块设置用于信号探察的事件触发器,配置存储器,并能显示波形。这可以使用Node模块来选择有待监测的信号。使用Signal TapⅡ后,当触发器运行后,通常要占用部分内部RAM,因为在实际监测中,将测得的样本信号暂存于目标器件中的嵌入式RAM(如ESB)中,然后通过器件的JTAG端口和Byte BlasterⅡ下载线将采得的信息传出,送于PC机进行分析。PC机中送达的数据是以文本文件的方式存储的,并可在Simulink图上显示波形;
(4)QuartusⅡ含一种十分有效的逻辑设计优化技术,即设计模块在FPGA中指定区域内的逻辑锁定功能,Logic Lock技术。
有FPGA开发经验的人都会有这样的体会,原来在硬件测试上十分成功的FPGA设计,结果在源代码并没有任何改变的情况下,仅仅是增加了一点与原程序毫不相干的电路描述,或甚至只改变了某个端口信号的引脚锁定位置,结果在综合适配后,原设计的硬件性能大为下降,如速度降低了,有时甚至无法正常工作。这时,如果比较改变设计前后的Floorplan图,会发现芯片内部资源的使用情况发生了巨大的变化。这表明,即使对原设计作极小的改变(更不用说对适配约束条件的改变),都会使适配器对原设计的布线(routing)和布局(placing)策略作大幅改变和调整。同时,当设计规模比较大时,人为很难直接介入布线/布局的优化。对于由许多基本电路模块构建成的顶层系统的FPGA开发,类似的问题将更加突出。例如,原来某一基本模块的FPGA硬件测试十分成功,包括工作性能、速度以及资源利用率等,但当将这些基本模块连接到一个顶层设计后,即使在同一FPGA中进行测试,也常发现各模块以及总系统的性能有所下降,甚至无法工作的情况。事实上,如果能在设计基本模块时,就固定其布线/布局的原方案,即使在顶层文件的总体适配时,也不改变原来基本模块的布线/布局及其原来的优化方案,就能很好地解决上述棘手的问题。对此,QuartusⅡ提供了这一优秀的设计技术,可以将设计好的布线/布局方案。这样一来,对于一项较大设计中的某一底层模块,不但在顶层的软件描述上是一个子模块,而且在FPGA芯片中总体适配中,此模块在硬件便类似于ASIC设计中的一个标准模块,始终能保持自己原来的布线/布局方案,从而在任何大系统中都能保持原有的电路性能,就像一个被调用的独立的元件一样,不会由于顶层系统布线/布局的改变而改变基本模块的布线/布局结构了。有了逻辑锁定技术,面对大系统的设计,工程师们就可以将构成大系统的各模块进行分别设计,分别优化它们的布线/布局,及适配约束,逐个地使它们分别获得最佳的工作性能,逐个优化交锁定它们的布线/布局方案,最后把它们连在一起形成性能优良的顶层系统。显然,逻辑设计锁定技术是SOPC单片系统优化设计及IP核成功拼装应用的有力保证。
(5)QuartusⅡ含有将FPGA设计向ASIC设计我缝转移的高效的ASIC设计技术,即Hard Copy技术,对此将在后面做更多的说明。
3、在FPGA中植入嵌入式系统处理器
目前最为常用的嵌入式系统大多采用了含有ARM的32位知识产权处理器核的器件。尽管由这些器件构成的嵌入式系统有很强的功能,但为了使系统更为完备、功能更为强大、对更多任务的完成具有更好的适就万籁 ,通常必须为此处理器配置许多接口器件,方能构成一个完整的应用系统,如除配置常规的SRAM、DRAM、Flash外,还必须配置网络通信接口、串行通信接口USB接口、VGA接口、PS/2接口等等。这样势必会增加整个系统的体积、功耗,降低了系统的可靠性。但是如果将ARM或其它知识产权核以硬核方式植入FPGA中,利用FPGA中的可编程逻辑资源和IP软核来构成该嵌入式系统处理器的接口功能模块,就能很好地解决这些问题。对此,Altera和Xilinx公司都相继推出了这方面的器件。例如,Altera的Excalibur系列FPGA中就植入了ARM922T嵌入式系统处理器;Xilinx的Virtex-ⅡPro系列中植入了IBM PowerPC405处理器。这样就能使得FPGA的强大的软件功能有机地相结合,高效地实现SOC系统。
但是,这种将IP硬核植入FPGA的解决方案存在5种不够完美之处:(1)由于此类硬核多来自第三方公司,FPGA厂商通常无法直接控制其知识产权费用,从而导致FPGA器件价格相对较高;(2)由于硬核是预先植入的,设计者无法根据实际需要改变处理器的结构,如总线规模、接口方式,乃至指令形式,更不可能将FPGA逻辑资源构成的硬件模块以指令的形式形成内置嵌入式系统的硬件加速模块(如DSP模块),以适应更多的电路功能要求;(3)无法根据实际设计需求在同一FPGA中使用指定数量的处理器核;(4)无法裁减处理器硬件资源以降低FPGA成本;(5)只能在特定的FPGA中使用硬核嵌入式系统,如只能使用Excalibur系列FPGA中的ARM核,Virtex-ⅡPro系列中的PowerPC核。
但是如果利用软核嵌入式系统处理器就能有效地解决上述不利因素。它们分别是Altera的Nios核与Xilinx的Micro Blaze。特别是前者,使上述5方面的问题得到全面的解决。
Altera的Nios核是用户可随意配置和构建的32位/16位总线(用户可选的)指令集和数据通道的嵌入式系统微处理器IP核,采用Avalon总线结构通信接口,带有增强的内存、调试和软件功能(C或汇偏程序程序优化开发功能);含由First Silicon Solutions(FS2)开发的基于JTAG的片内设备(OCI)内核(这为开发者提供了强大的软硬件调试实时代码,OCI调试功能可根据FPGA JTAG端口上接受的指令,直接监视和控制片内处理器的工作情况)。此外,基于QuartusⅡ平台的用户可编辑的Nios核含有许多可配置的接口模块核,包括:可配置高速缓存(包括由片内ESB或外部SRAM或SDRAM,100M以上单周期访问速度)模块,可配置RS232通信口、SDRAM控制器、标准以太网协议接口、DMA、定时器、协处理器等等。在植入(配置进)FPGA前,用户可根据设计要求,利用QuartusⅡ和SOPC Builder,对Nios及其外围系统进行构建,使该嵌入式系统在硬件结构、功能特点、资源占有等方面全面满足用户系统设计的要求。Nios核在同一FPGA中被植入的数量没有限制,只要FPGA的资源允许,此外Nios可植入的Altera FPGA的系列几乎没有限制,在这方面,Nios显然优于Xilinx的Micro Blaze。另外,在开发工具的完备性方面、对常用的嵌入式操作系统支持方面,Nios都优于Micro Blaze。就成本而言,由于Nios是由Altera直接推出而非第三方产品,故用户通常无需支付知识产权费用,Nios的使用费仅仅是其占用的FPGA的逻辑资源费。因此,选用的FPGA越便宜,则Nios的使用费就越便宜。