共1条
1/1 1 跳转至页
集成电路设计的新纪元 (转载)
摘要:SOC设计中集成了复杂的IP模块和嵌入式软件,传统的以功能设计为基
础的IC设计方法已经无法适应新的设计需求,IC设计方法需要变革,从以功能设
计为基础的传统流程转变到以功能组装为基础的全新流程。SOC设计的关键要素包
括:深入的系统级设计与分析;软硬件的协同设计与验证;完整的验证环境;外界
设计咨询服务。SOC设计的时代正在来临,必将不断带来激动人心的机遇与挑战!
关键字:系统芯片SOC,设计方法,功能组装,软硬件协同设计,系统验证
尽管系统芯片SOC(System-On-a-Chip)已经成为IC业界的焦点,但它的基
本概念却并不新鲜。七十年代以来,随着半导体和电子设计自动化技术的不断发
展,集成在单个芯片上的功能就在不断增加。每次半导体工艺的进步都提高了芯片
的晶体管集成度,与此同时,也不断向设计者提出了新的挑战。
目前情况是,单个芯片所能提供的晶体管数量已经超过了大多数电子系统的
需求,如何去发挥这些几乎无限的计算能力就变成了一项重大的挑战。任何一个
电子系统设计几乎都会用到一些已经存在的IP模块,如:微处理器、DSP、存储器
等等;与传统IC不同的是,嵌入式软件的设计也被集成到了SOC的设计流程中。
传统IC设计方法关注的是如何创建一个全新的设计并进行有效的验证。复杂的
IP模块、嵌入式软件、不断增长的晶体管数量,这些都变成了传统方法日益沉重的
负担。要想迎接SOC设计的挑战,必须在IC设计方法上有根本的变革。
SOC设计所关注的焦点已经发生了变化,不再是某个新功能的设计实现,而是如
何去评估、验证和集成多个已经存在的软硬件模块。SOC的设计方法将以组装为基础
,形成自己的鲜明特色,包括更深入的系统级设计、软硬件并行设计与验证、在设
计流程的所有层次上进行验证、以及合理利用外界的设计咨询服务等等。
SOC的几乎无限的晶体管集成度正在引发电子系统设计的一场革命,结果必然
是SOC设计效率的上升和电子系统功能的普遍增强。今天,SOC几乎都是由大公司来
开发,因为只有他们才有庞大的工程资源和充足的设计经费。造成这种实质垄断的
原因就是SOC设计中使用的仍然是已经不适应现实需要的传统设计方法与工具,厂
商必须用现有的工具拼凑出一个设计流程,然后投入大量的人力和财力来逐个解决
设计问题。据估计,一个这样的SOC设计项目需要投入超过1,500万美元。
为了将SOC推向更广泛的使用,设计方法必须革命。革命的最主要动力目前来
自电信市场的成长与发展,最先使用SOC的主要是大型电信公司,随着电信产业的
发展,SOC的应用日益推广,特别在第三代移动通信(3G)项目中更是取得了巨大
的成功。
从SOC的设计实践中,人们认识到设计方法的革命就是需要完成一个转变--从
以功能设计为基础的传统流程转变到以功能组装为基础的全新流程。SOC设计的关
键要素包括:更深入的系统级设计与分析;使用一致的工具来进行软硬件的协同设
计与验证;一个完整的验证环境,它可以完成逻辑仿真工具与其它高效工具(如软
硬件协同工具)的连接;4)利用外界设计咨询服务来弥补现阶段SOC设计体系的不
足。
巨大的挑战
如图1所示,
图1:传统IC与SOC
与过去的IC产品相比,如今的SOC已经有了很大的不同。SOC的开发中已有硬
件模块的集成与嵌入式软件的设计验证将非常关键,传统设计方法对此显然是力不
从心,特别是在系统验证上,它可能会消耗掉60-80%的设计资源。
为了完成系统功能,SOC设计必须依赖已有的IP模块。在理想情况下,现成的
IP应该能大幅度提高设计人员的生产力,但是在现实的市场上,很少的IP模块是可
以立刻重复使用的。许多IP在设计之初都是针对特定的应用,因而很少考虑到要与
外来电路搭配使用。如果SOC设计师希望利用这些IP,就必须投入力量来修改它们,
让它们能满足系统的功能需要或集成需要。然而这样的修改工作会拖延设计进度,
让验证工作变得更加复杂,甚至最终让IP丧失了它本来应该提供的效率优势。
SOC系统中会引入一个或多个微处理器,这也是一个让设计复杂化的因素。现
代处理器的强大功能和高速计算使得集成后的模拟验证非常复杂;特别是当系统中
必须使用多个处理器时,复杂程度还会大幅度增加,但这却是现代系统中的常见情
形。在这样的沉重负担下,仍然进行传统的门级和RTL级验证将会非常困难。
在处理器成为SOC部件后,嵌入式软件也必然进入SOC的设计流程,但是这一全
新构件的加入并不那么容易。由于目前市场上没有面向硅实现的嵌入式软件解决方
案,许多厂商在SOC开发中只能使用板级的嵌入式软件开发工具。不幸的是,板级的
解决方案并不适合SOC。最突出的问题就是软件的调试,板级开发工具在系统原型开
发完成后进行软件调试,而在SOC设计中,这是绝对无法接受的:为了解决软件问题
而重新进行硬件设计,这种做法不仅代价昂贵,而且会浪费大量的时间。软硬件的
并行开发工具可以解决这个问题,并且能改善设计验证的能力。但是使用这样的工
具不仅需要改变设计方法,而且还需要一定的准备时间和相关的知识与经验。
将传统的功能验证方法应用在SOC设计中时会面临许多问题。快速增加的门数、
复杂的不同来源的功能模块以及各式各样的仿真模型会让传统的模拟方法陷入困境
。尽管如此,许多设计人员仍然非常依赖RTL级或门级的仿真技术,原因有两种,要
么是他们并不知道有更高效的设计方法,要么是他们并不相信这些方法。对于集成
了多个处理器和其它部件的复杂SOC,使用传统仿真技术进行全系统的分析和优化会
造成设计进度滞后,甚至占用掉60-80%的设计时间,因为在这一阶段发现的问题需
要重新进行整个的设计流程才能解决。但是,如果在设计的前期阶段,通过一些仿
真手段,比如行为级的C语言模型或HDL模型仿真,来改善初试设计的正确性,就可
以减少在设计后期进行迭代的次数。
以组装为基础的全新设计方法
在SOC设计中,功能组装正在逐渐代替功能设计,而成为主流的设计方法。如图
2所示,传统的设计方法中,无论是HDL还是原理图设计,重点都在于设计新的电路
来实现系统功能。但是渐渐地,IC包含了各种IP模块(微处理器、DSP、存储器等等
),对于这种电路,工程师关注的焦点是:应该选择哪些功能模块、功能模块如何
使用、如何进行软硬件的功能划分、如何进行模块互连、如何进行系统验证等等。
比较起来,以功能组装为基础或以设计复用为基础的方法更能适应这种关注焦点的
转移,从而满足SOC的设计需要。
SOC设计方法与传统设计方法之间有四个主要的区别:第一,对系统设计阶段的
要求更严格:软硬件开发人员必须一起深入分析软硬件的功能划分,合理选择IP模
块并仔细安排各个设计阶段的接口;第二,以SOC为中心的嵌入式软件设计;第三,
多层次的验证方法:充分利用设计前期阶段的仿真技术,进行软硬件并行设计与验
证,将分析调试工作对后期设计验证的依赖程度降到最低;最后,由于IP模块、
EDA工具或者模型技术都还处于不断改进的阶段,通过专业厂商的咨询服务来弥补工
具、设计经验等方面的缺口也是设计方法中一个非常重要的因素。
图2:功能设计与功能组装
系统开发的第一步就是系统分析,在这一阶段,开发小组需要分析系统需求
,探讨可能的体系结构,并最终确定软硬件的功能划分。体系结构方面的考虑重要
包括:确定芯片内部的总线结构、系统平台、测试与调试结构(即JTAG)等等。除
此以外,IP的选择也是在系统设计阶段完成的。
这个过程复杂而冗长,它的结果就是形成一组设计规格。规格的一部分成为软
件开发的指导文档,另一部分定义了硬件需要实现的功能。系统设计阶段的工作则
由体系结构设计工程师、软件和硬件设计人员完成。尽管市场上已经有一些工具可
以支持体系结构级的分析评价,但基本上系统设计过程仍然靠工程师自由发挥,而
且主要是由经验、直觉和以往的考虑因素决定的。
在当前的设计环境中,许多的系统构件要么由已有的IP模块组成,要么是它们
的衍生而来,这也要在系统设计阶段充分考虑。针对特定的系统设计环境与设计目
标,体系结构设计工程师在选择IP模块时,必须全面考虑它们的各种优缺点。为了
支持这种优缺点的取舍分析,厂商在提供各种IP模块时,必须让它们能够支持不同
体系结构的应用实验。换句话说,IP模块的特性必须预先规划到一定的程度,并能
以规范的方式提供出来,这样,体系结构的设计工程师才能针对性能、规模、成本
和功耗等不同方面的系统设计目标来评估IP模块。除此以外,在系统设计阶段还必
须评估IP模块的品质、集成的方便程度和可重用性,考虑IP的支持性因素,如:标
准的遵从程度、未来发展的蓝图、易用性、获取IP授权的效率、以及合作厂商的可
信赖程度等。
选择IP模块时的另一个重要考虑因素是IP与目标系统的配合程度。一般说来,
在进行集成之前,最好选择那些无须修改的IP模块。但是如今的大多数情况是:设
计人员在获得了IP模块后必须进行修改,修改的范围包括各个设计层次上的IP模型
。这种修改会耗费大量的时间和资源,不仅会耽误产品的研发进度,还会给整个设
计流程引入风险,并让IP厂商的支持变得困难重重。虽然某种程度的修改是不可避
免的,但是如果设计人员能够牺牲一点芯片面积或功能来换取尽可能少地修改IP模
块,那么情况就会有所改善。即使某些模块的功能可能超过了系统的需求,但是为
了尽量少地进行IP的修改,我们也应该在某些不太重要的功能上做出妥协,以便直
接使用一些我们需要的功能模块。
如果目标系统中含有可以编程的IP模块,如处理器和DSP,那么系统设计阶段
就还有一项重要工作,即:建立嵌入式软件的开发计划。虽然市场上也有一些现成
的嵌入式软件和调试工具,但它们主要针对的是电路板级的应用,很少考虑到SOC
的独特需求。当系统设计中决定是开发还是购买嵌入式软件开发工具时,一个非常
重要的考虑因素就是系统的存储器配置方式:如果使用的是嵌入式存储器,那么传
统的板级工具可能就不太合适,换言之,此时就需要开发自己的嵌入式软件工具了。
以SOC为中心的实现方式
引入了可编程模块的SOC设计中,必须考虑嵌入式软件的设计,在SOC领域,软
件开发必须与硬件同步进行。利用面向SOC的嵌入式软件开发工具,可以在设计的早
期阶段进行软件开发与验证,让软硬件开发人员在统一的环境下工作,并能在SOC上
集成多个处理器。软件的设计调试工具在加入SOC的设计环境后,会在设计流程的关
键点上发挥重要作用,如:功能验证、建立原型环境、基于JTAG的硬件原型开发等
等。多个处理器模块的同步调试是一个非常困难的问题,但在SOC设计中却非常关键
。当今市场上已经推出了处理此类问题的高度复杂的工具,尽管专用程度非常高,
但还是满足了SOC设计人员的需求。市场必须推出更多的针对各种专用体系结构的标
准处理器平台,SOC的应用才能够逐步推广。否则,除了在工具上的巨大投资外,设
计人员还必须从头开始相关的平台研发工作。
尽管目前已经有了一些新的工具和方法来提高设计效率,但是SOC的验证仍然
可以说是最大的挑战。设计人员仍然在使用传统的耗时的逻辑仿真方法来进行全芯
片功能验证工作,因此,提高效率的关键就是寻找有效的方法来减少这一阶段的分
析、调试和优化工作。在进行详细的门级验证之前,为了尽可能早地找出问题并优
化设计,SOC的设计人员就必须依赖前期验证方法,可以采用C语言或行为级仿真,
也可以进行软硬件协同验证。整个验证过程的核心应该是一个可靠的仿真环境,支
持设计的各个阶段进行的仿真工作。
要充分发挥前期验证的作用,就必须充分检查设计的各个组成部分,并针对各
个组成部分采用最有效的设计验证手段。在处理器的验证方面,关键是快速的软硬
件协同验证,以及这种验证方法与系统仿真环境的有效集成。可以使用指令集仿真
器和物理原型环境来进行快速的调试,然后再与系统仿真环境同步后进行系统验证
。如果软硬件工程师能在一个一致的协同验证环境下工作,设计效率就可以显著提
高,得到的设计结果也更为优化。除了处理器部分以外,对于其它的大规模IP模块
、存储器和用户逻辑,也有各自是加快验证速度的方法。对于复杂IP模块,可以在
更高的抽象层次,如C或行为级进行仿真,然后通过与系统级仿真环境的接口连接到
整个仿真平台。同样地,存储器模块也可以采用类似的仿真手段。对于用户逻辑,
则可以通过人工或自动生成的测试基准进行测试。
SOC设计流程中的工具与构件都还在不断的发展变化中,因此在SOC设计中,很
可能会缺乏相应的设计工具与设计经验,此时,咨询服务就显得特别重要。通过厂
商提供的咨询服务,客户可以针对特定的问题来组合特定的设计工具和设计方法。
利用外界的知识经验,可以减少设计风险,并针对未来的产品研发,建立自己的
SOC设计体系。外界的顾问可以在各种设计工作上提供协助,包括平台的建立、IP
模块的评估、工具与流程的集成、模型生成、软件开发、以及功能验证等等。
尽管SOC技术已经有了巨大的进步,但仍然还不成熟,昂贵的成本与结果的不确
定性令许多工程师持观望态度。事实上,大多数工程师在产品研发时,还没有用到
巨大容量的芯片,再考虑到外购IP元件带来的不确定性,于是在决定"自行设计还是
采购"时,很自然地会倾向自行设计。另外,由于系统级集成的解决方案还很少,所
以SOC的设计就变成了一种高度专业化而且代价昂贵的过程,这让许多设计人员避之
惟恐不及。虽然市场上开始出现了一些EDA的解决方案,但成本都很高,而且需要大
量的再培训工作。
有些工程师希望完全掌握产品的整个设计流程,对于这些工程师而言,若要依
赖外界的服务才能把设计方法集成在一起将是一件非常令人不快的事情。事实上,
设计人员对于SOC的抵触心态并不容易完全消失,除非SOC开发工具、IP构件与服务
的成本、风险与复杂性大幅度下降,或者由于市场的竞争压力上升迫使厂商采用
SOC解决方案。
总的来说,如果设计人员想要利用SOC设计的优点,就必须把注意的焦点转向前
期设计阶段,并时刻留心工具和IP市场的快速发展。通过使用专用的系统集成平台
,工程师可以减少对工具的依赖,也不必对IP模块的内容进行大量的修改;但是这
些平台尚处于刚刚出现的阶段,还需要经过长时间的发展才能在SOC设计中得到高效
使用。VSIA和EDA厂商正在努力提高IP模块的可重用性,这可以让用户在更小的风险
下,通过更简单的方式,转移到以功能组装为基础的全新的设计方法。
系统级的设计工具和模型还远未成熟,需要相当长的一段时间才能真正提高功
能组装方式的SOC设计效率,但是所有这些已经确确实实引起了业界的高度重视。以
功能组装为基础的SOC设计的时代正在来临,对于那些希望把半导体工艺的能力发挥
到极限的工程师而言,SOC将给他们不断带来激动人心的机会!
关键词: 集成 电路设计 新纪元 转载 设计 复杂 模块 嵌
共1条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |