SOC的软硬件协同设计方法和技术

  • 格式:doc
  • 大小:103.50 KB
  • 文档页数:7

下载文档原格式

  / 7
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SOC的软硬件协同设计方法和技术

摘要:

随着嵌入式系统与微电子技术的飞速发展,硬件的集成度越来越高,这使得将CPU、存储器和I/O设备集成到一个硅片上成为可能,SOC应运而生,并以其集成度高、可靠性好、产品问世周期短等特点逐步成为当前嵌入式系统设计技术的主流。传统的嵌入式系统设计开发方法无法满足Soc设计的特殊要求,这给系统设计人员带来了巨大的挑战和机遇,因此针对Soc的设计方法学己经成为当前研究的热点课题。

论文首先分析了嵌入式系统设计的发展趋势,论述了传统设计开发方法和工具的局限性,针对Soc设计技术的特点探究了Soc软硬件协同设计方法的流程,并讨论了目前软硬件协同设计的现状。

关键词: 软硬件协同设计,可重用设计,SOC

背景:

计算机从1946年诞生以来,经历了一个快速发展的过程,现在的计算机没有变成科幻片电影中那样贪婪、庞大的怪物,而是变得小巧玲珑、无处不在,它们藏身在任何地方,又消失在所有地方,功能强大,却又无影无踪,这就是嵌入式系统。嵌入式系统是以应用为中心、计算机技术为基础、软件硬件可剪裁、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统是将先进的计算机技术、微电子技术和现代电子系统技术与各个行业的具体应用相结合的产物,这一点决定了它必然是一个技术密集、高度分散、不断创新的知识集成系统。嵌入式系纫‘泛应用于国民经济和国防建设的各个领域,发展非常迅速,调查数据表明,嵌入式系统的增长为每年18%,大约是整个信息技术产业平均增长的两倍[1],目前世界上大约有2亿台通用计算机,而嵌入式处理器大约60亿个,嵌入式系统产业是二十一世纪信息产业的重要增长点。

随着集成电路制造工艺的飞速发展,嵌入式系统硬件的集成度越来越高,这使得将嵌入式微处理器、存储器、I/O设备等硬件组成部件集成到单个芯片上成为可能,片上系统SoC (System on Chip)应运而生[2]。SOC极大地缩小了系统体积;减少了板级系统SoB(System on Board)中芯片与芯片之间的互连延迟,从而提高了系统的性能; 强调设计重用思想,提高了设计效率,缩短了设计周期,减少了产品的上市时间。因此SOC以其集成度高、体积小、功耗少、可靠性好、产品问世周期短等优点得到了越来越广泛地应用,并且正在逐渐成为当前嵌入式系统设计的主流技术[3]。但Soc设计不同于传统嵌入式系统的开发,如何快速、有效地开发和设计Soc产品是当前嵌入式设计开发方法学的一个十分重要的研究领

域。

传统设计方法的局限性:

图1-1 传统的嵌入式系统设计流程

过去的嵌入式系统硬件部分设计相对于软件部分来说更容易,系统开发主要是在目标电路板上进行编程和交叉调试,所以那时的嵌入式系统开发很大精力都放在软件上,通常认为只要软件开发质量能够很好地保证,就可以很好地满足整个系统的功能和性能需求。传统的嵌入式系统设计流程如图1-1所示。系统软件和硬件划分完成以后,首先进行硬件子系统的设计与实现,再进行软件子系统的设计与实现,因此整个系统的设计与实现过程基本上是一个串行过程。

随着微电子技术的飞速发展,硬件的集成度越来越高,嵌入式产品大量采用soc 技术,使得传统的嵌入式系统开发方法逐渐暴露出很多不足之处:软件和硬件的开发过程割裂、缺乏沟通;设计自动化层次低;设计过程串行化增加了设计周期;缺乏设计重用支持。

图1-2 设计复杂度和设计生产率的增长趋势 系统需求描述 划分软件和硬件 硬件设计与实现 软件设计与实现 硬件设计错误 软件硬件划分错误

图1-2显示了设计复杂性和设计生产率的增长趋势,由此可知目前设计生产率的提高速度赶不上设计复杂度增加的速度,设计方法和工具成为制约嵌入式系统发展的瓶颈,soc技术给嵌入式系统设计带来了巨大的挑战,嵌入式系统设计方法学期待革新。

软硬件协同设计技术:

根据目前计算机和IC设计技术的发展来看,系统软件的研制要落后于硬件,如果在芯片设计过程中,没有相应的软件支持,那么对芯片的验证和模拟仿真都将遇到极大的障碍[4]。

针对嵌入式系统Soc设计面临的问题与挑战,研究者们开始探索新的设计方法学——软硬件协同设计(Hardware/Software Co-Design)方法学。软硬件协同设计方法学的研究始于90年代初期,第一届International Workshop on

Hardware/Software Codesign会议于1993年召开[5],它标志着软硬件协同设计方法学的研究正式展开,软硬件协同设计领域正式确立。软硬件协同设计不仅是一种设计技术,同时也是种新的设计方法学,其核心问题是协调软件子系统和硬件子系统。与传统的嵌入式系统设计方法不同,软硬件协同设计强调软件和硬件设计开发的并行性和相互反馈,如图1-3所示,克服了传统方法中把软件和硬件分开设计所带来的种种弊端,协调软件和硬件之间的制约关系,达到系统高效工作的目的,软硬件协同设计提高了设计抽象的层次,拓展了设计覆盖的范围。与此同时,软硬件协同设计强调利用现有资源(已经过验证的IP核和软件构件),缩短系统开发周期,降低系统成本,提高系统性能,保证系统开发质量,适应Soc设计。Soc软硬件协同设计研究目前还处于发展阶段,许多技术仍未成熟和实用化,但是该技术将给嵌入式系统设计带来革命性的变化,能够极大地提高设计生产力,研究意义重大。

SOC软硬件协同设计流程:

图1-3 软硬件协同设计流程

传统芯片的设计都是专注于某个特定功能模块的设计,比如CPU、存储器、I/O接口等,即使是这样的一些芯片在以往的设计中己经是很复杂的问题了,需要很多高级设计人员花费大量的时间和精力,然而soc要完成的功能通常包括了多个传统芯片的功能,甚至还要复杂,因此设计片上系统soc是一个极为复杂的问题,一方面要满足复杂的功能和较高的性能,另一方面又要尽可能降低系统开发的成本,缩短产品问世周期,这给设计和开发soc带来了挑战。对于如此复杂的soc,如果芯片的每个部分都重新设计,那么其工作量之巨大是可想而知的,因此片上系统soc一般采用基于核的设计,软件部分采用构件重用,硬件部分采用IP核重用[6],即将一个系统按功能划分成若干个模块,然后直接利用设计好的软件构件和IP核搭建一个具有特定功能的芯片。soc的设计重用使系统设计者可以更多地考虑系统结构,而不必深陷于模块实现,从而达到降低系统设计复杂性的目的。但是IP核和软件构件重用决不等同于集成电路设计中的单元库的使用,不是一些IP核和软件构件的简单堆砌,还包含着很多有待解决的问题,如软硬件划分、验证、测试等,这也给soc设计方法学带来了巨大的挑战。

软硬件协同设计的目的就是找到一种最优化的软硬件比例结构以实现系统规范,同时满足系统速度、面积、功耗、灵活性等要求。

软硬件协同设计是一种自顶向下、自底向上的设计方法。具体流程如图1-4所示,在系统行为描述阶段,系统将被以最直接的方式描述出来。此时不涉及任何有关系统如何实现的问题,指描述系统外在的行为表现,更不涉及哪些是硬件、哪些是软件。在这个阶段,需要对整个系统的行为进行验证,以期在设计的开始阶段就发现系统行为要求中的错误。

之后,要对系统行为描述进行功能划分。将系统划分为互连的模块,每个模块都执行功能相对独立的特定行为,并确定模块的互连关系和接口标准,完成系统的结构模型描述。同样在完成系统的结构描述后,也需要进行验证,以确认结构描述与行为描述的一致。

软硬件划分在结构描述完成后进行,以确定各个部分由软件或硬件实现。更重要的是,在进行完软硬件划分后,要对系统的性能、灵活性等参数进行预测,以评估软硬件划分,甚至功能划分的合理性。如果划分不合理,就需要重新进行软硬件划分或功能划分,再进行评估。如此反复,直至获得最优的解决方案。

在完成软硬件划分之后,就可以对各个模块进行细化、综合(Synthesis),直至虚拟器件原型(包括软件)。在整个细化过程中,应多次进行软硬件的协同验证(∞—Verification)[7],以及时发现细化中的错误。

在到达器件原型级后,需要对各硬件原型进行映射(mapping),完成最终的实现。对已经由厂商提供IP的器件,可直接进行例化;对自己设计的器件,还要进一步进行综合、布图等工作。值得注意的是有些厂商提供较高层次的IP,这样,在较高的层次上就可以用IP替代原型。

在整个设计完毕之前还要对设计进行底层的软硬件协同验证和仿真。最终确认设计是否满足功能要求和条件约束。如果需要,还应对系统的性能、灵活性再次进行评估,以确定前面的先验估计是否准确。如果后验评估与先验评估相差太大,可能还需要重新进行结构划分和软硬件划分。