论文部分内容阅读
片上系统(SOC)的出现对集成电路设计方法学提出了挑战。采用目前基于寄存器传输级综合的设计流程,已不能适应市场对微电子设计的要求。微电子系统的设计已经从纯粹的硬件布局,上升到包扩软件硬件在内的系统设计。出现的困难主要来源于两个方面:一是电路规模的加大,现有设计方法和设计工具不能满足设计复杂性管理的需求,而电子产品进入市场的时间窗口减小也要求提高设计产率;另一个方面是电路特征尺寸的缩小,需要新的方法和工具去探测深亚微米设计的物理效应。深亚微米设计最突出的特点是互连延迟在电路延迟和芯片面积中的比例增加,设计方法必须从面向逻辑的设计转为面向互连的设计,在设计早期考虑物理效应。将系统级的架构、功能、算法和底层的物理性能、互连和时序等概念结合在设计流程前端,对物理性能进行早期评估,以减少设计反复提高设计产率。解决设计效率的两个主要途径是提高自动化水平和提高设计重用水平。设计重用技术包括设计本身的重用和设计策略的重用,基于知识产权(IP)的设计和高层次综合是发展的方向。SystemC作为IP描述语言的推出,适应了设计方法学的发展。SystemC 目前的发展趋势是提高抽象层次,建立系统级的软硬件协同设计。它统一了软件硬件的设计环境,其宽谱特性使得高层系统设计和低层次逻辑设计能在统一的语言环境中进行。SystemC提供了硬件描述能力,如模块、信号、端口等结构,多值信号、定点类型等,以及节拍式仿真的内核。SystemC2.0的发展重点在系统级的建模,因此提供了通道、接口和事件的概念,用以描述通讯和同步。同时SystemC也提供了动态事件敏感方法,满足对消息传递响应等系统级行为的建模要求。接口和通道的概念将通讯和计算分开,提高了设计的重用性。但是基于SystemC的设计方法用于工业应用仍然不够成熟,目前使用SystemC的方法仍然和Verilog设计类似。对如何在硬件设计中利用C++面向对象技术提高设计重用和复杂性管理,如何在基于SystemC的设计中支持物理设计的研究才刚刚起步,缺乏足够的基于SystemC项目验证相关设计方法。本文尝试在基于SystemC的设计方法学上有所贡献。主要工作如下:分析了面向对象技术中,封装、继承、多态、模式和框架等概念在微电子设<WP=5>1) 计中的适用性。给出了多态、指针等概念的硬件表示,扩展了Semeria等提出的指针分析方法[51],给出了一种新的变换函数指针的方法,在此基础上提出C++中虚拟函数映射到硬件的变换方法。根据本文提出的方法,既可手工将多态技术下建立的C++模型映射到转换成可综合的 SystemC代码,可以作为C++综合的基础。2) 设计验证已经成为SOC设计的主要瓶颈,对复杂系统的验证是目前研究的热点。仿真验证是一种黑盒验证,对大系统耗时且不易定位错误。本文建立了SystemC中的基于断言和剖析技术的验证方法,实现了用于断言验证的C++库,这种白盒验证方法可以提高基于SystemC的设计验证的效率,作为仿真验证方法的补充。3) 在深亚微米设计方法,通常需要将版图规划提前到设计初期。以便预估物理特征,减少设计反复。本文将功能结构协同设计的思想引入SystemC设计方法中,建立了SystemC上的结构描述和版图规划机制,并利用仿真退火技术验证了基于代理模式的类结构。4) SystemC作为新的设计语言,需要在设计中验证和发展和它相关的设计方法学。本文基于这一目的,利用SystemC建模ARM指令兼容处理器。我们给出了一种通讯细化的方法,并验证了封装、多态等面向对象概念在硬件设计中的有效性。