电子说
作者:Ron Wilson
要点
经济形势刺激了对可编程模拟元件的兴趣。
不存在将可编程模拟芯片用于一个系统的设计流程。
设计流取决于供应商为理解芯片而提供的隐喻(metaphor)。
今后,这些设计流也许是今天FPGA(现场可编程门阵列)流的混合信号版。
可配置模拟IC已经出现了多年,表面看来对市场的影响不及其数字同胞FPGA(现场可编程门阵列)。不过,当前的经济形势却使可编程模拟标准产品的概念突然显现出吸引力。一些需求能很好地适合这些器件的优点:保持在某个产品领域的设计前沿,不花费很多的设计成本,并且不存在会影响任何一个设计进入量产的最终用户需求。这样的日子可能为时不远了。
不过,如果可编程模拟时代到来了,仍然有一个很大的问题:这些芯片应该采用哪种设计方法?传统的直观式模拟设计流程(仍需主要依靠试验板试验验证)还有意义吗?或者用户会发现用于FPGA器件的流程(即前端用系统级语言,验证用仿真)可能更适用?答案既复杂而又有益。
各种架构
这种复杂性的原因之一是,在“可编程模拟”的共有描述下,存在着大量的架构。一个极端情况是特定功能芯片,它有高度的用户可配置能力,而不改变其基本功能。在另一个极端上,有些芯片是FPGA的模拟近亲,即有着大量小型的非专用模拟功能块。两种极端在结构与功能上都有差别,其意义在于它们有不同的需求。
考虑两个例子。一个是Lattice半导体公司的可编程电源控制器系列。这些多功能芯片控制着一块当代PCB(印刷电路板)上多个电源的时序与触发。多数情况下,它们是Lattice运用自己的可编程逻辑技术做成的简单PLD(可编程逻辑器件)。这些芯片亦包括精密ADC、可编程阈值监控器以及DAC,用于检测输出电压,并为电源的反馈回路提供精密调整的电压。
对另一端,考虑Anadigm公司的FPAA(现场可编程模拟阵列)。这些器件基本上是非专用的元件阵列,用于组装成开关电容模拟信号处理电路。FPAA中编程的作用不仅是设定电路的参数,也能创建电路的拓扑结构。甚至这些产品中的“可编程能力”也有两种含义。因此设计者用于处理它们的方法也有差别。
不同的隐喻(metaphor)
芯片开发者倾向于向用户隐藏起可编程芯片的结构,而代之以一种隐喻来虚拟化结构。他们希望,这种虚拟化对用户更熟悉,对要解决的问题更有相关性。隐喻会随硅片的结构,以及供应商对于客户与客户问题的观点而变化。例如,在数字PLD的早期,供应商将一只PLD的内部描述为多组NAND门驱动大型NOR门输入端,以后成为了表述逻辑功能的标准方法。
当FPGA出现时,其供应商初期将其描述为大型的逻辑单元阵列,每个单元都包括一些门和一个触发器。这些隐喻都非常接近于芯片的实际电路。现在,FPGA已变得如此庞大,隐喻已更抽象。今天,看待FPGA的典型方法是将其当作一个空白单子,一个人在上面书写RTL(寄存器传输级)逻辑,有便于布放分配的内存块、DSP(数字信号处理)块,以及高速I/O单元。没人再尝试使隐喻反映出电路情况。
从供应商为自己可编程模拟器件所选择的隐喻中可以看到一种类似的差别。以Lattice为例,它对自己电源控制器IC的描述用词接近于芯片上的实际元件:数字与模拟输入、限幅比较器、一只ADC、一个可编程逻辑阵列,以及一组DAC。与之相比,Anadigm公司讨论芯片时并不采用大多数用户的术语,如电容、可配置放大器、阶梯网络或可编程模拟开关等。该公司描述的是模拟功能块:运放、滤波器,等等。Anadigm公司首席运营官Simon Dickinson表示,当器件将成为一个较大设计中一分子时,该公司有时会鼓励用户把芯片想象成一个功能固定或具有多功能的黑盒子,而不管其中的内容。
一般来说,可编程模拟芯片的功能越专业,则隐喻就更贴切。不过,如果一种可编程结构是高度自适应的,则供应商可以采用两种方案之一:应用与其下架构无关的隐喻,如Verilog-A或Spice网表,或隐藏可编程结构的隐喻,仅将其表述成一个参数化的固定功能芯片。隐喻的重要性在于,是它决定了用户采用的设计方法,而不是其中的硅结构。一些案例可以说明这一点。
一些实例方法
Lattice公司主管电源控制器IC的营销经理Shyam Chandra称:“人们仍然采用分立芯片控制复位信号、看门狗时序,等等。我算了一下,(安森美的产品系列中)仅用于复位生成的就有400种芯片,市场上肯定有100种热插拔控制器IC。”因此Lattice选择了一种编程隐喻方式,使设计者像在使用一些较小型的固定功能芯片。
在开发设计规格时,Lattice产品的用户会在数据表中搜索他们电路板上的处理器、内存、FPGA和其它器件,为每只芯片确定所需上电次序。对这些次序作编译,就生成了控制器逻辑的完整状态图。但这是一种手工劳动,Chandra警告说:“大约75%的情况下,第一次工作是不正确的。人会出现错误,数据表规格中也经常会有灰色区域。”因此,Lattice公司提供了一种简单的编程语言和波形仿真工具,用户可以对次序作编码,在不毁坏任何东西的情况下观察其动作。当次序正确时,工具会配置Lattice芯片中的状态引擎,使之可以驱动复位信号和为电路板提供顺序供电的MOSFET门。同样,Lattice公司还提供了一个辅助工具,用于设置芯片的微调与容限检测电路。通过使用一个已知DC/DC转换器的库,软件可获取用户的容限和电压要求,设定片上比较器与DAC以及所需电阻值,同时监控转换器的输出和驱动微调输入。
标准产品隐喻的概念超出了电源控制领域。在一个不同的市场中,Actel公司提供在Fusion系列FPGA上的可配置AFE(模拟前端)块。该公司也同样支持其可编程模拟段的配置,但也同样怀疑用户对板级仿真的兴趣。该公司一名现场应用工程师Mark Nagel说:“我得说,我们只有不到一半的客户会做任何一种全电路板仿真。在芯片级,我们确实提供了一种工具,它可以为模拟激励生成波形,然后将其送入一个ADC模块,提供用于FPGA逻辑ModelSim仿真的数字输出。不过我们的AFE结构相当固定。对大多数人来说,我们的用户倾向于先考虑分辨率、采样率等的需求;配置AFE,并作尝试。你可以用板上元件查询AFE中的模拟结点,可以用芯片FPGA部分中的一个Synplicity嵌入逻辑分析仪查看数字输出。”因此,用户一般不用仿真工具研究AFE;他们只仿真数字逻辑部分。
另外一个例子来自Cypress半导体公司,其PSoC(可编程系统芯片)提供相对丰富的可配置模拟元件阵列,它与一个数字构建块和一个微控制器核心紧密耦合。Cypress硅结构的通用特性可以确定一种高级语言隐喻,以及一种综合仿真设计流。不过该公司选择了一个不同的方向。Cypress公司现场应用工程师Jason Baumbach解释说:“我们的隐喻法是一个部件目录,而不是一个可编程模拟阵列。给用户展示数千个寄存器对他们没有帮助。我们是提供一个‘用户模块’的目录,”即芯片上可配置的模拟阵列部分。不过,它们对于用户来说就是现成的模拟部件。用户根据用户模块绘出其设计的模拟部分的逻辑,然后采用Cypress PSoC开发环境,就可以直接从逻辑图进入到试验板阶段。Baumbach称:“我们并未看到很多人在使用Spice或Matlab。多数情况下,他们尝试做的模拟电路都相当简单。”
其它观点
多数情况下,这些公司都不会尝试提供板级的仿真工具,这些工具可显示出他们的芯片与电路板上其它电路的工作情况,甚至详细仿真出芯片的模拟部分与数字部分之间的相互作用。用户的经验以及从数据表获得的信息都有助于这个目标。Lattice公司的Chandra认为:“在电源管理中,仿真意味着读取并理解逻辑图。”而Cypress公司则看到了将该公司带往另一方向的进展。PSoC芯片的模拟部分仍然在继续变得更为重要。客户正日益发现,整体微控制器都可以即时地重新配置模拟阵列。这种能力很有用,但它逐渐削弱了部件目录式的隐喻。公司产品营销经理Mark Saunders称:“器件不断变得更强大。因此我们需要继续推动自己的抽象能力。”
与之对照的是,austriamicrosystems AG正在尝试一种更广泛的方案,对相对简单的芯片作仿真。该公司线性与无线产品营销总监Bruce Ulrich解释说:“我们认为有两种工程师。有一些是正统性偏好者,他们对仿真有一种文化性论点。他们认为仿真多少有些不正经。但也有一些采用市售现成DC/DC转换器的设计者并不认为自己是专家,他们觉得有一个能帮助自己作开关频率与负载实验的工具很不错,因为能看到发生了什么。”
基于这种看法,该公司在自己的主页上链接了一个Transim技术公司的WebSim线性仿真引擎版本。该页面有austriamicrosystems公司各种型号的电源IC、网表捕捉工具、仿真引擎,以及一个生成物料清单的工具。用户可以在网站上对一个电源子系统作试验,研究其参数和性能,并获得一个器件清单。Ulrich强调说:“它没有Spice的精度;它是一种线性近似。但已足够给出一个有关电路行为的概念,并警告你何时会有开关问题、噪声或不稳定性问题。”该公司最近增加了网站的功能,但正在考虑一个扩展的模型库,这样用户就可以使用该公司产品系列中的其它器件。
Triad半导体公司的情况有所不同。与Cypress公司一样,该公司也制造结合了可编程模拟阵列与微控制器的芯片。不过此时,可编程能力采用的是厂家编程形式,而不是现场可编程的闪存单元。Triad公司营销与技术销售副总裁Reid Wender称,大多数情况下,该公司的用户并不是从仿真开始,而是用分立器件作试验板设计,市售模拟元件作模拟信号路径,而FPGA作数字逻辑,还有ARM Cortex M0核心。Wender说:“这些设计者多数喜欢用市售元件,他们要求我们的ASIC也满足这些规格。”
客户与Triad公司分享了这个试验板。客户使用该板的性能,定义ASIC中模拟信号路径的传输函数。然后,Triad公司的团队使用一个芯片级的仿真工具,配置模拟阵列,使之匹配于客户试验板的传输函数。Triad公司将这个仿真结果与客户分享,设定一个过孔遮罩,然后配置成排的晶圆,总循环时间大约为四周。然后,客户可以将Triad硅片用于自己的试验板,进行验证。Wender称,这个流程中最困难的部分是了解模拟信号处理路径与在Cortex上运行的软件的整合。他说:“我们一直与Keil合作来仿真混合信号外设。但最终我们需要一个桌面上的完整模拟/混合信号仿真器,这是某种能够以低价将Verilog、Spice和软件仿真置于桌面的东西。我们还在继续寻找。”
未来
对未来的观点来自于佐治亚州技术学院的一个持续的研究项目,Paul Hasler是电子工程与计算机科学教授,他对FPAA有十年的研究。现在的项目包括用大约1000个模拟元件和构成100个计算模拟块的成千个开关级器件,构建大型的阵列。Hasler称:“这些芯片的容量可能10倍于现有的商用可编程模拟阵列。对于模拟信号处理性能,我们能够在一只芯片中,放入相当于1 teraMAC(万亿次乘法/加法指令) 的信号处理能力,功耗为数百毫瓦。”Hasler与他的团队已用模拟信号处理的隐喻建立了一个完整的设计流,没有芯片设计的细节。Hasler说:“我们最大的芯片之一有大约10万个可编程参数。你不可能手工处理这种等级的复杂性,因此我们对编程采用一种块级的信号处理隐喻方法。”
即便如此,FPAA的巨大复杂性还是需要一种类似ASIC的设计流。试图在试验板上调试一个1000只元件的模拟设计是毫无希望的。因此FPAA流采用了两级仿真。流程开始于Simulink和计算元件库,Hasler的团队为它建立了Spice网表。用户可以在Simulink上作系统仿真,然后转而建立一个Spice网表,后者送至一个芯片编译器,产生等效于FPGA编程的文件。Hasler说:“我们可以编译大多数合法的Spice网表,但并非所有网表都能得到有效的设计。在Spice级,用户必须学习如何使用工具来做出最佳使用的硅片。在Simulink级,这种工作主要是在库中完成。”现在,该团队正在开发可以提取Spice网表的工具,可提供开关级编程文件中的准确寄生参数,并且可以做布局与源文件之间的比较工作。Hasler补充说:“将反向标注全部返归Simulink级会有一点复杂。”
这种流程可能就是未来,哪怕是对简单得多的元件。Cadence公司混合信号仿真营销总监John Pierce如是说:“传统方案也不会做得更多了,即使对固定功能器件。当把可编程元件集成到系统中,你必须看发生了什么事,而不只是如何对其编程。”
Pierce继续说,还有些问题有待解决。直觉上,一个板级仿真的正确起点应是在Matlab或类似工具中。然而,从一个传输函数视图到一个交换阵列不是件简单的事。甚至在电路仿真级就会出现问题。他说:“Verilog-A或SystemVerilog都不希望你在运行中改变配置寄存器的设定。”但是,如果你试图将配置寄存器和模拟开关也模型化,成为器件网表的一部分,那么仿真可能迅速膨胀,尤其是采用开关电容技术时。Pierce说:“在一个系统环境中仿真可编程模拟器件的技术确实存在。而挑战在于将它们带入到我们的Verilog-AMS(模拟/混合信号)领域中。”
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !