作者:kuhn
系统单芯片(SoC)设计面临的一个重要问题在于软件与硬件设计师们各自生活在自己的世界里。这是日本名古屋大学(Nagoya University)的信息教授Hiroaki Takada日前在MPSoC (Multi-Processor SoC)研讨会上所发表的看法。
Takada同时也是一位“以软件为中心”的系统级(system-level)设计之研究人员。自称为“软件人员”的他,在此次研讨会上展示了一种系统级的设计工具──SystemBuilder,这种工具利用C语言编写的高阶描述语言来工作。
“我认为,硬件与软件工程师之间沟通的困难严重阻碍了在软硬件问题上进行适当区分的决策。”Takada表示。他指出,从术语上来说,软硬件工程师截然不同,他们对词汇含义有不同的理解,如对“测试(test)”和“验证(verification)”就各自看法迥异。
他进一步指出,软硬件工程师关注的重点不同。硬件工程师主要关注性能,而软件工程师更多关心管理的复杂性。这两者对双方都很重要,但折衷程度不同。其中一方无法理解另一方的问题。”
而“系统(system)”这个词汇也有不同的含义。Takada建议进行一个简单测试:让硬件工程师和软件工程师各画出一个手机的“系统”框架图。相信结果定是大相径庭,他表示。
Takada指出,软件工程师所谓的“建置(implementation)”可被硬件工程师视为规格。而一个实际的系统等级设计流程以模型描述为开端,转向系统级描述,再从那分解为硬件和软件开发。
“用一种语言来描述硬件和软件能够改进设计生产率。”他表示。但其所指并非以一概全,不是只要一种产业解决方案的意思。他解释,“我不认为SystemC适合软件工程师。至少,我不喜欢它。”
名古屋大学的SystemBuilder起始于C系统级描述。硬件/软件划分由设计师来决定。该工具提供自动硬件/软件接口整合及自动软件整合。SystemBuilder采用Y Explorations的商用行为整合工具Excite,为硬件生成RTL代码。SystemBuilder在多种抽象级执行硬件/软件协同仿真,最终以FPGA实现结束。
系统描述的基本组件是平行执行的功能组件(FU,functional unit),及提供模块化和非模块化通讯的CP (communication primitives)。FU和CP之间如何连接用一个脚本档案进行了描述。