混合信号FPGA的“智能”系统验证流程

本文作者:admin       点击: 2006-11-08 00:00
前言:
为了满足市场对更高性能、更小体积及更低成本和功耗不断增长的需求,系统设计人员需要将更高级别的混合信号功能集成到系统级芯片(SoC)中。随着这些SoC设计中混合信号器件的增加,基本的功能验证在半导体的早期制备中变得十分重要。没有这种验证,系统设计人员将需要为半导体制备的返工耗费数以百万计美元,并且浪费宝贵的设计和验证资源,而且还可能错过产品上市的良机。幸运的是,现在的设计人员比过去有更多的选择;设计混合信号系统不再局限于混合信号ASIC、模拟MCU或分立组件。FPGA为系统集成开辟了新的方向,能够改善系统集成的各个方面,如降低总体系统成本、提高可靠性、实现可重配置性、缩短开发时间等。这种以可编程系统芯片(PSC)为核心的崭新解决方案将FPGA门、嵌入式Flash和模拟功能集成在单一可编程器件中,提供理想的低成本方案,具备真正的可编程性,而且可让系统设计人员快速地设计和开发复杂的混合信号系统。
  
关键要素

如果要一次投片成功,要选择好的且通过基本功能验证的可编程设计平台是非常重要的。据市场研究机构Dataquest1报告指出,FPGA从广义上讲,正成为现代高度集成SoC系统的首选媒体。原因很明显;由于FPGA的半导体构架是“预制”的,不存在非经常性工程(NRE)成本,加上任何可能影响产品性能或器件可靠性的工艺变数实际上均已解决。涉及芯片整体运行的大量复杂因素(包括影响时序的寄生RLC效应等)均已准确确认,并纳入产品的技术资料表中。因此,所有的验证循环都可以针对设计的特有功能。下一步所需的是验证方法,可以将确定设计及进行迭代的时间减至最少,并且保留所有设计内容。这可通过智能建模(即剔除一些不太重要且不会影响整个系统行为的细节)以及将所得到的模型映像到经已充分了解的流程来实现。
  
越来越复杂的内容

现场可编程性是系统集成的一个全新方向。这个新方向能够实现更深层面的集成,并具有多个重大优点:系统设计人员可在其系统中省掉多个器件,并将器件的功能集成到一个单芯片PSC中,大幅简化系统的设计;显著减少部件数目意味着外形尺寸也可显著减小;微控制器核的集成将使主处理器摆脱外设的任务,从而降低系统处理对数据吞吐能力的要求。

Actel Fusion PSC是首个能满足这种需求的可编程逻辑解决方案,首次将Flash内存、混合信号功能及微控制器技术与FPGA提供的硬件可重配置性的各种基本优点融合在一起。集成的内容越来越复杂,意味着可以将更多的可能性集成到更小的器件中,但同时也会向FPGA设计人员提出一些新的挑战,例如至少得应对混合信号设计的复杂性。鲜有FPGA设计人员有机会在这个领域中取得丰富的经验,那么,应采用什么方法管理这些项目的复杂性并确保一次性成功呢?这种交叉领域的专门技术必须集成在开发工具流程中。开发工具必须足够“聪明”,能够管理接口、配置和初始化等关键细节,以便将不同的部件联结起来,形成一个工作整体。在理想的情况下,可采用与传统开发工具基本相同的流程,将这种新系统功能的复杂设计内容聚合起来。
  
传统的FPGA设计流程

在选择ASIC或可编程解决方案时,第二个考虑因素是FPGA工具的易用性和成本效益。众所周知这些工具是用于集成高度复杂的设计功能,如快速架构开发(即通过快速生成核来实现开发)、逻辑和物理综合、行为和结构仿真,以及各种创新的调试技术。这些系统越来越多地向更高的抽象层扩展,涵盖器件/系统建模、设计分区、基于总线的通信协议和软/硬件协同验证。但传统FPGA设计流程的基本目标是将所需要的部件捆绑成一个“按钮”式的流程,容许单一工程师便可定义、生成和验证设计的“软”副本,然后在硬件FPGA系统门中实现和调试。
  
智能流程简化可编程系统芯片的设计

不仅ASIC/FPGA设计人员很少拥有系统/模拟设计的实际经验,大多数系统设计人员同样也缺乏数字逻辑的设计经验。因此,越来越复杂的设计内容要求工具流程必须“智能化”,也就是说,开发工具可以对不同的系统部件进行智能配置及初始化,并将这些部件正确地联结在一起,使所有交叉领域复杂性的验证任务变得简单。在这种情况下,接下来还得生成一个FPGA!在设计的前期(相对于实现阶段而言),这种复杂性通过3个关键环节来管理,即部件建模、设计实例化和验证流程。
  
部件建模
当针对半导体制备进行部件建模时,重要的是仔细权衡部件的细节行为和验证系统是否正确工作所花费的时间。这种权衡对PLD架构内的模拟部件尤其重要,即使这部分的预制性表明这些问题已经解决。在最高的抽象层,所有模拟部件都是数字部件,其模拟行为的模型是通过叠加严格的数字化行为指标来建立。这里的技巧是抽出部件的全部行为细节,同时保留那些决定最终系统能否满足设计要求的功能。对于PSC流程,模拟功能的电气特征参数(如:信号完整性、A/D转换功能和耦合效应)均可在产品技术资料表中查到,并基于实际半导体器件的特征数据。基本的模拟开关行为包括输入预定标、微分增益、迟滞、A/D控制功能和输出行为等,都被抽象成粗略的数字行为模型,适合在数字仿真器中描述系统级的行为特征。

设计实例化
跟有些人猜测的一样,对复杂精细的系统进行设计实例化需要非常灵活且具备足够智能的“设计生成”环境,让设计人员快速入手和实施。基本上,这个设计环境将容许所需的资源导入设计环境中,以达到目标器件逻辑资源所允许的最大限度。由本身的图形配置器提供支持,这些非常灵活的资源可以被捕捉、配置,以及设计实例化,而所有操作均为简单的鼠标点击,无需直接编写HDL代码。与此同时,这种工具链创建了主干总线,将所需资源的互连及自动创建必要的控制机制。这些工序将由以图形化用户界面为基础的智能工具在背后完成,无需用户直接引导。这些工具专注于简便的使用及提供快速设计的开发能力。当然,它们不会排斥传统的HDL代码编程——对于那些习惯使用HDL的用户,以及需要最大限度地优化设计或需要大量设计定制的用户,HDL编程功能是不可或缺的。
  
验证
传统的混合信号ASIC开发遵从自下向上的方法。这种开发方法涉及两个独立的团队;一个开发数字部分,即编写RTL代码;另一个在晶体管层面实现模拟电路。对于验证而言,设计人员为了验证各种系统级行为如功能、性能和延时等,一般都使用基于Verilog-AMS或VHDL-AMS语言的高层全芯片仿真,这种方法需要很好地关联最终电路的模拟行为模型。然而,晶体管层面的仿真仍然需要,以便验证某些接口层问题、时序、信号完整性和功率。这也有助于避免模型和电路间的偏差及错误。最近几年,一类全新的开发工具应运而生,可让混合信号协同仿真环境验证给定SoC芯片中的混合信号部件。

在PSC开发流程中,并不需要混合信号仿真。器件中模拟功能的处理方式,非常相似于现成的分立组件。产品的资料表已提供了大量的模拟功能电气特性参数,并基于实际半导体的特征数据,象分立组件供应商提供的资料一样。由于在最终模型中抽出了细节性的模拟行为,这种模型完全能在全数字仿真器(如ModelSim)中完成系统级验证。在这种仿真测试平台上,模拟输入表示成一些实数值或数位向量值,通常由测试平台工具(如Synapticad WaveFormer)来生成。

基于这个抽象层面,用于混合信号FPGA的基本验证方法在本质上就与标准数字FPGA产品的验证方法相同。简言之,PSC设计人员在设计过程中一般需要完成如下步骤:
a) 在Libero工具中生成和集成系统构件;
b) 通过Synplify或Synplify PRO综合设计;
c) 使用ModelSim验证设计;
d) 使用Libero Designer将设计编译到Actel Fusion PSC中,以便进行后端实现;
e) 在ModelSim中运行时序反标注(back-annotated timing)功能来重新验证。
这个基本流程能让Fusion客户使用公认的方法,验证其混合信号PSC的系统级行为,并可在设计的任何阶段如综合前、综合后和布局后进行,而且与验证全数字芯片一样简单。熟悉Libero流程的设计人员不会看到任何重大变化,而呈现在新客户面前的是简单易懂的流程,可让他们快速简便地完成 Fusion技术到其系统的“融入设计”(design in)。这个流程将会执行仿真系统级行为所需的充分工作,并在给定的客户设计中以一组给定的仿真输入与数字系统中剩余部分的相互作用为基础。
  
结语

从概念上来说,SoC开发本身就需要多种专门技术,包括模拟设计、数字逻辑设计和系统/架构定义。不用说,随着集成度的提高,这种开发很快就变得非常复杂,而且,在FPGA开发中经常都会有一些逻辑/FPGA设计工程师并没有这方面深入的专门知识。FPGA的可编程性大大增强了系统的可用性,但同时也增加了另一个层面的复杂性。因此,需要使用智能化的系统级集成和验证工具来实现PSC。在适当的抽象层面进行系统级验证已经证明能够改善设计质量和提升设计团队的整体生产力。随着新的开发工具出现以支持这个流程,设计质量和生产力可望进一步提高。