用SoC/嵌入系统工具权衡软硬件
扫描二维码
随时随地手机看文章
组网设备的开发者,正竞争 相采用CARDtools系统公司的NitorVP 6.0版SoC/嵌入系统协同设计及仿真工具包。NitroVP上市刚刚几个月,设计人员可以使用它来建立虚拟原形,对硬件与软件进行协同仿真,或进行权衡分析。
ST公司高级系统技术组系统建模工程师Marcello Coppola是率先使用NitroVP的人员之一,Coppola所在的小组研究通信应用系统以及设计这类系统的工具。
Coppola把NitroVP作为其工具包的一部分,为ST公司研制新的SoC,供宽带网络终端与设备(BBNT)使用。将xDSL调制解调器与不带ATM接口的设备相连时,需进行协议转换。BBNT所支持的几种协议栈,有的以硬件实现,有的以软件实现。ST设计人员因使用好几种平台,所以需要一种协同设计工具,来帮助进行软硬件的划分。
SoC已越来越复杂,所以需要更快的仿真工具。实现SoC的办法之现,是把模型建立在更高的抽象层次上。NitroVP提供了一种方法,使系统仿真可以在更高的抽象层次上进行,这时,细节得到简化,因而花在建模上的时间减少,并可将硬件与软件放在一起仿真。
ST小组除了将NitroVP软硬件协同设计工具用在更高抽象层次之外,还把它用到底板一级,将较低层次的模型(C++)与指令集仿真器(ISS)结合起来。NitroVP最重要的一点是使用简例。而且NitroVP至今仍是市场上出现的少数工具之一。
ST公司的SoC目前尚没有多处理器,不过Coppola说,今后一定会有。NitroVP支持多处理器以及多指令集仿真器。设计人员在构建嵌入系统时,可从各种不同的处理器模型和实时操作系统中比较选择。还可对功耗和存储器用法建模。NitroVP既有时序建模能力,又有功能建模能力,还有一种集成的SoC调试程序。
在SoC设计中,人们反复强调‘重用’,所以协同设计工具必须以某一标准语言为基础。重用必须从系统模型的顶层开始,且必须具有互操作性。ST小组采用的设计语言是C与C++,与因为如此,要求CARDtools公司将C/C++以某种更有效的方式集成到NitroVP中去。
CARDtools公司市场部经理Son Baxley认为:“把CARStools推向C与C++方向的,不仅是ST公司的设计人员。C/C++的能力是由市场推动而来的。现在已可以用C或C++建模。用户在使用早期版本时,不得不先用CARDtools专用的器件行为语言(DBL),然后再换成C或C++语言。目前,用户可从两类语言中任选一种。甚至于混用、匹配或相互替换。”
当问及ST公司在对不同的软硬件协同设计工具进行性能比较过程中,具进行性能比较过程中,是否经过正式评估时,Coppola回答说:“当时上市的其它工具只有一个,那就是Cadence公司的FELIX(即现在的VCC),那时,人们认为FELIX尚不成熟。”
目前上市的同类工具,还有CoWare公司的N2C设计系统。CoWare最近又在N2C上增加了基于平台的各种设计能力,包括:改进型虚拟平台模型创建,多处理器平台用增强型接口综合,以及系统软件与平台的方便集成。N2C包含从功能规范到多层硬件协同仿真及协同验证的系统设计。