SoC设计方法学
SoC设计方法学的内容可以简单的归纳为如下三点:软硬件协同设计技术,IP核生成及复用技术和超深亚微米IC设计技术(有时又称纳米级电路设计技术)。它们又分别包含一系列的子课题(图5)。
在这些子课题中有些是我们已经十分熟悉的,但是这并不意味着它们是已经解决的问题。恰恰相反,这些课题在融入SoC设计方法学的框架之后,已经在内涵上产生了很大的变化。
软硬件协同设计技术
首先探讨一下软硬件协同设计。软硬件协同设计课题的提出已有多年的历史,但是早期的研究多集中在针对一个特定的硬件如何进行软件开发或根据一个已有的软件实现具体的硬件结构。前者是一个经典的软件开发问题,软件性能的好坏不仅仅取决于软件开发人员的技术水平,更有赖于所使用的硬件平台,后者是一个软件固化的问题,实现的途径可以是采用一个与原有软件平台相同的软件处理器,并将软件代码存储于存储器当中,也可以是在充分理解软件的内在功能之后完全用硬件来实现软件的功能。采用存储器固化软件代码的作法一般来说可以比较快地实现芯片设计,且芯片具有一定的二次开发可能,但是由于考虑到实现所需的硬件平台的一致性,芯片的性能将受到较大的限制,大多应用在性能比较低的场合。除此之外,有时候要找到一个可用的、与软件开发时所使用的硬件平台兼容的处理器也是一件十分困难的事情。将软件功能全部由硬件来实现的作法具有较大的风险,一般需要比较长的时间和比较大的人力、物力和财力的投入,特别是进入市场的时间较为苛刻的时,这种做法有其局限性。但是一旦成功,则芯片具有较高的性能。从上述介绍不难发现,早期的软硬件协同设计方法研究还是一种面向目标的(Object
Oriented)软硬件设计方法,研究的内容和结果与所要实现的目标和已具备的条件密切相关,形不成具有普遍适用性的理论体系。
其次是这一全新的设计方理论与已有的IC设计理论之间的接口。可以预见,这种全新的设计理论应该是现有IC设计理论的完善,是建筑在现有理论之上的一个更高层次的设计理论,它与现有理论一起组成了更为完善的理论体系。在这种假设下,这种设计理论的输出就应该是现有理论的输入。
第三,这种全新的软硬件协同设计理论将如何确定最优性原则。显然沿用以往的最优性准则是不够的。除了芯片设计师们已经熟知的速度、面积等硬件优化指标外,与软件相关的如代码长度、资源利用率、稳定性等指标也必须由设计者认真地加以考虑。
第四,如何对这样的一个包含软件和硬件的系统的功能进行验证。除了验证所必须的环境之外,确认设计错误发生的地方和机理将是一个不得不面对的课题。
最后,功耗问题。传统的IC在功耗的分析和估计方面已有一整套理论和方法。但是,要用这些现成的理论来分析和估计含有软件和硬件两部分的SoC将是远远不够的。简单地对一个硬件设计进行功耗分析是可以的,但是由于软件运行引起的动态功耗则只能通过软硬件的联合运行才能知道。其实,还可以举出很多新理论要涉及的问题,它们一起构成了面向SoC的软硬件协同设计的内容。
IP核生成及复用技术
其次来看一下设计重用技术。正如前面所讨论的,今天在单个芯片上已可以集成上千万乃至上亿只晶体管。芯片变得如此复杂,它实现了以前需要许多块印制电容板(PCB)甚至机架才能完成的功能。在这样高的集成度下,设计的难度已变得非常高,设计代价事实上主导了芯片的代价。这不仅要求设计者必须具备系统和芯片两方面的知识,同时也必须充分考虑市场竞争的压力,最大限度地缩短设计周期。凡事从零做起的思路显然不能适应这种新情况,而采用前人成功的设计经验和设计资料是解决这个问题的明智选择。
所谓设计重用实际上包含两个方面的内容,涉及设计资料重用技术和如何生成可被他人重用的设计资料。前者通常被称为IP重用(IP Reuse),因为可以补反复使用的设计资料通常具备比较复杂的功能,且经过验证。设计资料内不仅仅包含一些物理功能和技术特性,更重要的是包含了设计者的创造性思维,具有很强的知识内涵。这些资料因而也被称为具有知识产权的内核(IP Core),简称IP核。后者则涉及到如何去生成IP核。
(1)IP核的生成
先讨论一下IP核的生成。所谓IP核实际上就是一个经过验证的IC设计,从其实现的形式和应用层次上来看,IP核可以有三种不同的表现形式:软核(Soft-Core)、固核(Firm-Core)和硬核(Hard-Core)。
软核以HDL的方式提交,其性能通过时序模拟进行验证。由于软核不依赖于任何实现工艺或实现技术,具有很大的灵活性。使用者可以方便地将其映射到自己所使用的工艺上去,可复用性很高。软核的另外一个重要的优点是使用者拥有全部源代码。使用者可以通过修改源代码,方便地生成同样功能且自有版权的新软核,从而避免向原有软核作者支付版税。同时聪明的软核使用者还可以通过增加自己的知识和经验,产生出远比原始软核广泛得多的新的软核。正是由于软核的上述优点,它的价格不菲,且提供者寥寥无几。
但是软核也有自身的弱点。由于软核的载体是硬件描述语言且与实现的工艺无关,使用者在最终将其嵌入自己的设计时就要对从描述到版图的转换的全过程负责。虽然这要涉及经曲IC设计的全部内容,IC设计人员必须具备相当的风险意识。另外,工艺映射和系统的性能有着一定的内在关系,是否可以不加修改地将一个软核映射到任何一个工艺上仍然是需要探讨的一个问题。
硬核以IC版图的形式提交,并经过实际工艺流片验证。显然,硬核强列地依赖于某一个特定的实现工艺,而且在具体的物理尺寸,物理形态及性能上具不可更改性。
这些特点对使用者来说有喜有忧。喜的是硬核已经过验证并具有最优的面积代价和性能的设计,使用者不需考虑与上相关的优化问题。忧的是硬核与工艺的强相关性迫使使用也只能使用核工艺完成电路其它部分的设计,而且要在布局布线遵守注意固核的物理限制。显然,固核的特点决定了使用者进行电路设计时的灵活性很小,希望通过获得固核以生成其它固核的可能基本上没有。即使有,受到加工工艺、经费和知识产权等方面的限制,也会失去意义。从另外一个角度看,正是因为固核的这些缺点,的使用价格在软核、固核和硬核三种IP核中,是最低的。
处于软核和硬核之间的固核以电路网表的形式提交并通常采用硬件进行验证。硬件验证的方式有很多种,比如可以采用可编程器件(如FPGA,EPLD)进行验证,采用硬件仿真器进行验证等。
固核往往对应于某一个特定的实现工艺,在该实现工艺的条件下固核具有最优的面积和性能特性。对于使用者来说不需要对固核的功能给于过多地关注,可以减少许多相关的设计工作,同时由于固核的时序特性是经过严格检验的,设计者只要保证在布局布线过程中电路关键路径的分布参数不会引起时序混乱就可以保证芯片的设计成功。
但是固核也有其自身的缺点,那就是它与实现工艺的相关性及网表的难读性。与实现工艺的相关性限制了固核的使用范围,网表的难读性则使得布局布线后发生的时序违反的排除变得比较困难。由于固核在使用的方便程序上和开放程序上均介于软核和硬核之间,其价格也处于它们的价格之间。
(2)IP核与常规IC不同的地方
IP核的生成具有与常规的IC设计不同的特点。例如时序,测试和低功耗等虽然是IC设计中的经典问题,但是直接将已有的设计方法应用到IP核的设计中就会出现许多意想不到的困难。看一个简单的例子(图6)。
图6的右上角给出了一个简单的逻辑表达式,下方给出了该表达式的逻辑实现,这个逻辑实现对应的时序图也在图中给出。显然,时序图的最下边的一个波形是逻辑表达式所定义的,但是由于在异或门的输入端引入了一个非门,其时延将会影响到电路的输出,实际的波形将会类似于倒数第二个波形,包含有若干个毛剌。尽管有这些毛剌,但是就一个特定的应用来说,只要确定好输出端的采样时间,仍然可以保证输出信号的正确性。但是要将这样一个带有时序毛刺的电路当作IP核提供给他人使用则是绝对错误的。由于不知道具体应用环境对信号采样的位置,很可能采到的信号恰恰是毛刺所在地,从而导致输出错误。为了获得没有毛不剌的、时序干净的设计,可以对逻辑表达式进行一系列变换(图7)最终获得图7给出的逻辑实现方式。
这个例子说明了设计人员今天熟悉的电路设计理论和方法必须要有所发展以适应面向SoC的IP核生成,简单地照搬是不行的。
(3)IP核面临的新问题
IP核的使用也面临许多新问题。由于IP核的特殊性和IC开发的高风险性,IP核的使用决不是这些IP核的简单堆砌,使用过程中不仅仅要考虑它们的功能,更要使它们溶入芯片。以为有了IP核就可以进行SoC设计的想法不免过于天真。可以看一下图8中给出的一个有关可测性设计的例子。
根据可测性设计理论,一个时序电路的可测性与其时序路径上的长度有关,而测试复杂度与环路长度成正比。环路长度越长测试复杂度越高,且这种关系成指数形式变化。一个IP核经过精心设计可以具有很好的可测性,但是在具体被嵌入使用时,外部配套电路设计不当会引入环路,使电路的可测向下降。从图8可知,即使所使用的IP核内部没有任何环路、具有很高的可测性,但是在引入了外围电路之后,也会产生不止一条穿过IP核的环路。这个例子说明IP核的使用需要综合考虑诸多因素,而不是几个IP核的简单堆砌。
另外一个例子涉及低功耗,即使所使用的所有IP核均是精心设计并具有低功耗的特点,也会由于IP核的提供者不同,在接口的时序上存在一些差异。为了同步这些时序上的差异,就需要IP核之外的电路工作在一个较高的频率上。显然,芯片的开关功耗会因此大大提高,众而部分抵肖IP核低功耗带来的好处。
(4)超深亚微米IC设计技术
最后来探讨一下超深亚微米IC设计技术。超深亚微米IC设计技术是深亚微米IC设计技术的延伸。除了传统的连线延迟问题之外,IC设计人员还要考虑信号完整性等其它的问题。人们在跨入超深亚微米时代的时候,实际上尚未彻底解决深亚微米阶段的关键课题。连线延迟大于单元延迟引起的一系列问题仍然困扰着设计人员。所以要探讨超深亚微米IC的设计,就有必要对这个经典的问题作一个仔细的分析。
设计迭代
以布尔代数为基本理论基础的现代数字IC设计技术面向的是系统的功能设计(Logic Oriented)布尔代数定义的各种基本逻辑运算所描述的是一个系统的输出对输入的逻辑关系。这种逻辑关系以一组包含“0”和“1”两个基本逻辑值的逻辑向量来表示。现代IC设计的核心问题就是解决如何准确地实现这种用二值逻辑确定的系统功能,或者说找到一组正确描述系统功能的逻辑表达式。显然,在具体实现中采取哪种实现方法在逻辑表达式中没有表示。理论工作的贡献在布尔代数上得到了巨大的体现。如果没有布尔代数,今天我们赖以生布的IC工业也就失去了这的理论基础。
信号完整性问题
在超深亚微米IC设计技术的研究中,除了要克服由于连线延迟引起的设计迭代之外,设计人员还要克服由于特征尺寸缩小后,信号延迟变小,工作频率提高带来的所谓信号完整性的问题。图9给出了特征尺寸与芯片内部最高工作频率的关系。
在芯片内部工作频率提高的同时,由于集成度的大幅度上升,单个芯片中的连线长度也随之大幅度升高。单个芯片中的连线总长将达到十几~几十公里,其中不乏有些连线的长度达到十几米~几十米。根据物理学的基本定律,频率与波长成反比。当芯片的内部工作时钟达到几千兆赫的时候,相应的波长只有若干米。再考虑到电磁场的有关理论,可以知道当连线长度达到波长的几倍时,连线将成为向外界发射电磁波的天线,同样这些连线也会成为接收电磁波的天线。考虑到IC芯片内部连线密布,在很高的工作频率下,信号的干扰将成为一个不容忽视的问题,信号的完整性将成为设计得面对的另外一个严重的挑战。所以传统的基于布尔代数的数字IC设计理论必须要从简单的面向逻辑,转向吸引其它相关领域的理论,形成新的理论体系。
上一篇:X1203实时时钟芯片的原理与应用
下一篇:羿步FIFO的VHDL设计
- 热门资源推荐
- 热门放大器推荐
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况