为了因应市场对于较高性能、较小的系统尺寸及降低成本和电源的需求,系统设计者正将较高层级的混合信号功能整合在他们的系统单芯片(SoC)设计中。随着这些SoC设计上的混合信号组件数量增加了,基本的功能验证对于硅初期能否成功也愈来愈重要。FPGA在系统整合难题上加入了一个新特点,改善了系统整合面,如整体的系统成本、可靠性、可组态性、上市时间等。在核心上,此新范例-可编程系统单芯片(programmable system chip, PSC)整合FPGA电闸,内嵌快闪和模拟功能在单一的可程序化组件中,提供了具真正程序能力的理想低成本路径,而且系统设计者可以用来快速地设计和研发复杂的混合信号系统。
关键准则
如业界分析师所言,FPGA正成为现代高度整合的SoC系统选择的工具。原因很明显。由于硅架构是预先组装的,因此没有NRE成本,且任何可能影响产品性能或装置可靠度的制程变化都应已解决。芯片整体作业中大部分的复杂度(包括寄生RLC对时序的影响等)特性都已完整调整,且规格上的数据已考虑到这些。因此所有的验证循环都可以致力于设计的适当功能性上。下一个需要的是可以尽量减少特征化和强化设计功能性目标时间的验证方法。此项减少是透过组合智能型模型(抽出不会影响整体系统行为的较不重要细节)将所产生的模型置入已完全了解的流程中。
复杂度增加
现场可程序化是系统整合全新的一面。此新的整合层级较深入且有以下几个优点:系统设计者可移除系统的许多组件而将该功能整合在单一PSB中,大幅简化系统设计;组件大幅减少就会有明显小许多的尺寸;且微控制器核心的整合会免除主处理器的周边任务,降低系统处理的工作量要求。
新一代的PSC是第一个如此进入可程序化逻辑市场的代表。它是第一个以FPGA提供的硬件可重组态性的基本好处结合闪存、混合信号功能性以及微控制器技术。日益复杂的内容开启了更小的整合装置之许多可能,但FPGA设计者也立即有了额外的挑战,其中一项就是对付混合信号设计的复杂性。很少FPGA设计者有机会在这些领域中取得深刻的经验,因此什么是管理这些计划的复杂度并确保它们第一次就成功的方法呢?
此一跨范围的专业技术必须包裹在工具流程中。工具必须做得够聪明来管理重要细节(如接口、组态和初始化需求)以便连结不同的组件并放在同一作业中。理想上此新系统功能性的复杂设计内容汇集基本上和传统工具流程完全一样的工具流程。
智能型流程
不仅是ASIC/FPGA设计者对系统/模拟设计的实际经验很少,大部分的系统设计者也同样没有数字逻辑的设计经验。因此,日益纯熟的设计内容需要智能型的工具流程。这意味着工具有智能去组态和启动不同的系统组件,正确地将它们结合,并将令人却步的所有跨范围复杂度验证任务弄简单给工程师。在这种情况下,他们就必须产生一个FPGA。从前端(和实作步骤相反)开始,此复杂性就在3个重要区域中被管理:组件模型、设计实例(instantiation)以及验证流程。
组件模型
当制作以硅为目标的组件模型时,对于细节组件行为对照验证系统正确作业所需的时间的取舍需谨慎为之。这在PLD架构的模拟组件中尤其重要,依此零件的预先组装天性即使是已解决的问题还是会被呈现。在最高层级的抽取中,所有的模拟组件都是依据数字组件将严格的数字行为规范覆盖在模拟行为模式上。窍门是抽出组件的完整行为细节,只留下能决定符合特定设计目标系统所需的功能。在PSC流程方面,依据实际硅的特征化数据的规格上具有模拟功能的电子特征,如信号整合度、A/D传输功能以及耦合效应等。包括输入预先缩放、差动增益、迟滞、A/D控制功能及输出行动等基本的模拟交换行为会被抽出,并放入适合在数字仿真器中特征化系统层级行为的粗略数字行为模式中。
设计实例
此一复杂且纯熟系统的设计实例需要有足够智能让设计者快速行动的灵活设计产生环境。基本上此,可达目标装置的逻辑资源所允许的最大值。这些受到自身绘图组态器支持的非常灵活资源是可以撷取、组态、并例举在设计中的,全都是非常简单的pick-and-click动作,不需要直接HDL编码。同时工具链会创造骨架,将想要的资源互连,并自动创造必要的控制机制。
智能的以GUI为基础的工具是在不需要直接使用者引导的背景下达成这些步骤的。这些工具的焦点都在容易使用,并提供快速的设计发展。当然它并不排除传统的 HDL代码发展,后者是熟悉HDL的使用者所不可或缺的,他们在计算电闸时需要最大的最佳化设计,或是需要广泛的设计客制化。
验证
传统的混合信号ASIC发展遵循由下而上的方法。它牵涉到两个不同的小组:一个研发数字部分的写入RTL代码,而另一个在晶体管层级实作模拟电路。在验证方面,设计者一般使用Verilog-AMS或VHDL-AMS的高层级全芯片仿真以验证系统层级的行为,如功能、性能和迟滞等。这需要和最终电路关系密切的模拟行为模式。然而验证接口层级议题、时序、信号整合度和电源等晶体管层级的模拟还是需要晶体管层级的模拟。这也可以帮助避免模型和电路之间的不准确性或不当关联。最近几年出现了新等级的工具,允许混合信号共同仿真环境在指定的SoC中验证混合信号组件。
在PSC流程中,混合信号仿真是没有必要的。对待组件内的模拟功能像开架式分离组件一般。就像组件厂商一样,数据规格所提供的模拟功能电子特征的许多信息依据实际硅的特征化数据。抽出详细的模拟行为后所产生的模式在全数字仿真器(如ModelSim等)中,就完全可以达到系统层级的验证。模拟输入是以真实或位向量值呈现在仿真测试基准中,一般是以测试基准工具产生的。
有了此层级的抽出,针对混合信号FPGA所提供的基本验证方法和沿着标准处理的数字FPGA基本上是相同的。
典型的PSC设计者会在设计过程中执行以下步骤:在Libero中产生并整合系统功能区块;透过Synplify或Synplify PRO合成设计;利用ModelSim验证设计;利用Libero Designer将设计编辑在Fusion PSC中以利后端实作;在ModelSim中利用后批注(back-annotated)时序再次验证。
此基本流程让Fusion使用者可以利用经证实的方法,在设计过程中的任何阶段验证混合信号PSC的系统层级行为,就宛如全数字芯片般简单。此流程依据客户设计中整合其余数字系统的某个模拟输入组合执行仿真系统层级行为必要的工作。
SoC发展概念上需要各式各样的专业技术,包括模拟设计、数字逻辑设计以及系统/结构定义等。随着整合层级的上升,此课题迅速地变得异常复杂,且FPGA发展常常牵涉到通常没有这类专业的一小组逻辑/FPGA设计工程者。