FPGA验证学习(二):SoC的设计方法学

前言

前面对SOC的背景、系统级的Soc、IP以及Soc与IP产业有了一下了解,这里我们来看看SoC的设计方法学。了解学校一下Soc这个玩意怎么设计出来的。

#
传统设计流程可分为逻辑设计物理实现两个相互独立阶段,包含以下几个步骤:

  • 系统规划、
  • 功能设计、
  • 逻辑设计、
  • 电路设计、
  • 设计验证、
  • 生产制作、
  • 测试调试。

芯片的设计考虑较简单,设计人员要做的只是前端设计,如系统结构设计,进行前端模拟仿真并且向硅片供应商提供网表。硅片供应商则负责后端设计,包括芯片的物理设计、封装、测试和成品率管理。

随着系统集成度的不断提高以及终端用户需求的多样化,系统功能愈来愈复杂,如何确定系统结构并完成软硬件的划分成为关键,传统的系统设计方法已经不能很好地满足设计的需求。

为了提高芯片的设计效率,缩短设计周期,系统设计需要新的设计理论体系和设计方法,以克服传统设计方法中前端设计和后端设计相互分离的弊病。这一新的设计理论和设计方法是以软硬件协同设计理论、IP核生成及复用技术和超深亚微米技术等为支撑的。

近几年,随着可编程器件技术的发展,在FPGA上实现SOC即SOPC已成为了一种发展趋势。SoPC(System on Programmable Chip)是一种灵活、高效的SoC解决方案。

一、软硬件协同设计

软硬件协同设计课题的提出已有多年的历史,

但是早期的研究多集中在针对一个特定的硬件如何进行软件开发或根据一个已有的软件实现具体的硬件结构

前者是一个经典的软件开发问题,软件性能的好坏不仅仅取决于软件开发人员的技术水平,更有赖于所使用的硬件平台;后者是一个软件固化的问题,实现的途径可以是采用一个与原有软件平台相同的硬件处理器,并将软件代码存储于存储器当中,也可以是在充分理解软件的内在功能之后完全用硬件来实现软件的功能。

采用存储器固化软件代码的方法一般来说可以比较快地实现芯片设计,且芯片具有一定的二次开发可能,但是由于考虑到实现所需的硬件平台的一致性,芯片的性能将受到较大的限制,大多应用在性能比较低的场合。

除此之外,有时候要找到一个可用的、与软件开发时所使用的硬件平台兼容的处理器也是一件十分困难的事情。将软件功能全部由硬件来实现的做法具有较大的风险,一般需要比较长的时间和比较大的人力、物力和财力的投入,特别是在进入市场的时间较为苛刻时,这种做法有其局限性。但是一旦成功,则芯片具有较高的性能。

从上述介绍不难发现,早期的软硬件协同设计方法研究还是一种面向目标的(Object Oriented)软硬件设计方法,研究的内容和结果与所要实现的目标和已具备的条件密切相关,难以形成具有普遍适用性的理论体系。

面向SoC的软硬件协同设计理论应该是从一个给定的系统任务描述着手,通过有效地分析系统任务和所需的资源,采用一系列变换方法并遵循特定的准则,自动生成符合系统功能要求的、符合实现代价约束的硬件和软件架构。

这种全新的软硬件协同设计思想需要解决许多以前没有碰到的问题。首先是系统的描述方法,目前广泛采用的硬件描述语言(HDL)是否仍然有效,如何来定义一个系统级的软件功能描述或硬件功能描述等。到今天为止,尚没有一个大家公认的且可以使用的系统功能描述语言可供设计者使用。

1-HDL

硬件描述语言(HDL)是一种用形式化方法描述数字电路和系统的语言。利用这种语言,数字电路系统的设计可以从上层到下层(从抽象到具体)逐层描述自己的设计思想**,用一系列分层次**的模块来表示极其复杂的数字系统。

然后,利用电子设计自动化(EDA)工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。(在电路设计中,网表(netlist)是用于描述电路元件相互之间连接关系的,一般来说是一个遵循某种比较简单的标记语法的文本文件。)

接下去,再用专用集成电路(ASIC)或现场可编程门阵列(FPGA)自动布局布线工具,把网表转换为要实现的具体电路布线结构

其次是这一全新的软硬件协同设计理论与已有的IC设计理论之间的接口。可以预见,这种全新的设计理论应该是现有IC设计理论的完善,是建筑在现有理论之上的一个更高层次的设计理论,它与现有理论一起组成了更为完善的理论体系。在这种假设下,这种设计理论的输出就应该是现有理论的输入,正如门级电路网表是传统IC设计的输入。

第三,这种全新的软硬件协同设计理论将如何确定最优性原则。显然,沿用以往的最优性准则是不够的。除了芯片设计师们已经熟知的速度、面积等硬件优化指标外,与软件相关的如代码长度、资源利用率、稳定性等指标也必须由设计者认真地加以考虑。

第四,如何对这样的一个包含软件和硬件的系统的功能进行验证。除了验证所必需的环境之外,确认设计错误发生的地方和机理将是一个不得不面对的课题。

最后是功耗问题。传统的IC在功耗的分析和估计方面已有一整套理论和方法。但是要用这些现成的理论来分析和估计含有软件和硬件两部分的SoC是远远不够的。简单地对一个硬件设计进行功耗分析是可以的,但是软件运行引起的动态功耗则只能通过软硬件的联合运行才能改进。其实,还可以举出很多新理论要涉及的问题,它们一起构成了面向SoC的软硬件协同设计的内容。

二、IP核的生成和复用

现在来看一下设计复用技术。今天在单个芯片上已可以集成上千万乃至上亿只晶体管,芯片变得如此复杂,实现了以前需要许多块印制电路板(PCB)才能完成的功能。在这样高的集成度下,设计的难度已变得非常高,设计代价事实上主导了芯片的代价。

这不仅要求设计者必须具备系统和芯片两方面的知识,同时也必须充分考虑市场竞争的压力,最大限度地缩短设计周期。凡事从零做起的思路显然不能适应这种新情况,而采用前人成功的设计经验和设计资料是解决这个问题的明智选择,同时复用技术是解决IC设计能力和EDA工具相对落后于半导体工艺技术的发展这一问题的唯一解决途径。

所谓设计复用实际上包含两个方面的内容涉及设计资料复用技术和如何生成可被他人复用的设计资料。前者通常被称为IP复用。因为可以被反复使用的设计资料通常具备比较复杂的功能,且经过验证。设计资料内不仅仅包含一些物理功能和技术特性,更重要的是包含了设计者的创造性思维,具有很强的知识内涵。这些资料就是被称为具有知识产权的内核(IP Core)。

后者则涉及如何去生成IP核。在SoPC(System on Programmable Chip)系统平台上,可复用设计方法可扩展为四个方面:分别是可重构硬件平台、可重配置系统平台、IP核复用与IP核设计、原型算法可重用设计与验证。

根据处理信号类型的不同,集成电路一般可以分为数字电路和摸拟电路。同样IP也据此可以分为数字IP和模拟IP,它们的设计方法以及在系统芯片中的集成方式都是截然不同的。

小知识

门级网表即利用逻辑综合工具将RTL描述的程序换成用基本逻辑单元(宏单元)表示的文件

1.数字IP的设计

数字IP的基本设计方法与一般的数字集成电路的设计方法是一样的(如图9-6所示)。

  • 1、在确定电路需求后通过硬件描述语言编写寄存器传输级的代码(RTL Code),
  • 2、再通过综合工具和Foundry提供的综合库生成门级网表,
  • 3、最后经布局布线生成版图。

经过验证的IP能以这一设计流程中形成的不同形式——RTL代码、门级网表或版图等进行IP的转让和集成,每种描述形式就对应于前面所说的软IP、固IP和硬IP。

在这里插入图片描述
(物理设计是指将门级网表根据时序等约束布局、布线并最终生成版图的过程。可以分为版图规划、单元布局、时钟树综合和详细布线等步骤。)

2.模拟IP的设计

模拟电路与数字电路的设计方法和设计流程是完全不同的。半导体器件的二级效应对模拟电路有很大的影响,模拟信号的处理不仅对速度和精度的要求比较高,而且对噪声、串扰和其他干扰比数字信号要敏感得多。

因此模拟电路的设计很少能够自动完成,通常每一个元件都要“手工设计”,并且对于版图的要求也比较严格,一般都采用个别定制的版图设计方法。图9-7给出了模拟IP设计和仿真的一般流程。模拟电路与工艺的联系比较紧密,在确定了电路的性能参数之后,首先就要确定SPICE(Simulation Program with Integrated Circuit Emphasis)仿真工具和Foundry的SPICE模型。电路设计者通常要先搭建电路结构,确定设计参数,并进行各种类型的仿真,如直流分析、交流分析、瞬态分析等。这其实是一个反复仿真、调整和修改的过程。在满足设计要求后要进行工艺容差和温度的仿真,最后还要用SPICE模型提供的最坏情况组合参数进行最坏情况分析,以保证电路在不同工作环境和加工条件下的性能稳定。

在这里插入图片描述
在模拟电路的版图设计完成后需要进行物理验证以确保电路设计的正确性,物理验证包括几何规则(DRC),确保版图符合设计规则和网表一致性检查(LVS),确保版图与电路的一致性。

如果图9-7中的每一次条件判断或验证不能得到满足则要修改参数重新设计并验证。对于功能复杂、规模较大的电路有时还需要从设计好的版图中提取电路参数,进行仿真验证。从模拟电路的设计方法可以看出,模拟IP没有像数字IP那样存在软IP形式,一般都以硬IP的形式存在。

3.基于IP核的SoC设计

图9-8给出了基于IP核的SoC设计流程。由于SoC必须包含嵌入式软件,所以软硬件的划分是整个系统体系结构确立的一步重要工作。

确定哪些功能由硬件实现,哪些功能由软件实现,并且尽量保证在充分利用硬件资源的基础上节约成本并达到最好的效果。

在完成SoC软、硬件的划分后,软件和硬件的设计任务就可以同时并行开展。软件的开发一般基于处理器的指令集(Instruction System Architecture,ISA),主要包括系统的操作系统和应用软件两部分。

SoC中硬件设计的主要任务则是规划系统的体系结构,确立各个功能模块的功能和互连协议,并据此去选择合适的IP。因此SoC的设计不是从零开始,而是一个IP集成的过程

在这里插入图片描述
(这个图阐述的很好)

按照主流的数字集成电路的设计方法,SoC仍然要进行总体的RTL设计,设计一些必要的接口,实现各个IP之间的互连,从而完成一个完整的顶层描述。然后再经过综合和布局布线,完成物理的实现。然而这只是一个理想的设计流程。

在实际工业应用当中,IP复用并非如想象得那样简单,可以有效和自由地“拼装”到一个系统芯片中去。

首先就不同形式的IP而言,想要集成在一个系统中就会面临不同的问题。在IP设计、挑选以及集成的过程中缺乏足够的文档、缺少系统级评估模型、电学特性的不匹配、版图的不匹配、工具使用的不匹配、多重测试协议的使用、多重模块接口协议的使用等问题严重阻碍了SoC的快速发展。

三、超深亚微米设计

由于超深亚微米设计时互连线延迟是主要延迟因素,而延迟又取决于物理版图。

因此传统的自上而下的设计方法只有在完成物理版图后才知道延迟大小。如果这时才发现时序错误,则必须返回前端,修改前端设计或重新布局,这种从布局布线到重新综合的重复设计可能要进行多次,才能达到时序目标。

随着特征尺寸的减少,互连线影响越来越大。传统的逻辑综合和布局布线分开的设计方法已经变得无法满足设计要求,必须将逻辑综合和布局布线更紧密的联系起来,用物理综合方法,使设计人员同时兼顾考虑高层次的功能问题、结构问题和低层次上的布局布线问题。物理综合过程分为初始规划、RTL规划和门级规划三个阶段。

1、物理综合过程

1-初始阶段

在初始规划阶段,首先完成初始布局,将RTL模块安置在芯片上,并完成I/O布局、电源线规划。根据电路时序分析和布线拥挤程度的分析,设计人员可重新划分电路模块。通过顶层布线,进行模块间的布线并提取寄生参数,生成精确线网模型,确定各个RTL模块的时序约束,形成综合约束。

2-RTL规划阶段

RTL规划阶段是对RTL模块进行更精确的面积和时序估算。通过RTL估算器快速生成门级网表,再进行快速布局获得RTL模块更精确的描述,并基于这种描述对布局顶层布线、引脚位置进行精细调整。最后获得每一RTL模块的线负载模型和精确的各模块的综合约束。

3-门级规划

**门级规划是对每一RTL级模块独立地进行综合优化,完成门级网表,最后进行布局布线。**对每一RTL模块和整个芯片综合产生时钟树,还进行时序和布线拥挤程度分析,如果发现问题,可进行局部修改。由于物理综合过程和前端逻辑综合紧密相连,逻辑综合是在布局布线的基础上进行,因此延迟模型准确,设计反复较少。在超深亚微米设计过程中,除了连线延迟大于单元延迟引起的一系列问题仍然困扰着设计人员外,还要考虑信号完整性等其他问题。所以,有必要对这些经典问题作一个仔细的分析。

2、设计迭代

以布尔代数为基本理论基础的现代数字IC设计技术面向的是系统的逻辑设计,布尔代数定义的各种基本逻辑运算所描述的是一个系统的输出对输入的逻辑关系。这种逻辑关系以一组包含“0”和“1”两个基本逻辑值的逻辑向量来表示。现代IC设计的核心问题就是解决如何准确地实现这种用二值逻辑确定的系统功能,或者说找到一组正确描述系统功能的逻辑表达式。

显然,在具体实现中,采取哪种实现方法在逻辑表达式中没有表示。理论工作的贡献在布尔代数上得到了巨大的体现。如果没有布尔代数,今天我们赖以生存的IC工业也就失去了它的理论基础。

3、信号完整性问题

在超深亚微米IC设计技术的研究中,除了要克服由于连线延迟引起的设计迭代之外,设计人员还要克服由于特征尺寸缩小、信号延迟变小、工作频率提高带来的所谓信号完整性的问题。

在芯片内部工作频率提高的同时,由于集成度的大幅度上升,单个芯片中的连线长度也随之大幅度升高。单个芯片中的连线总长将达到十几到几十千米,其中不乏有些连线的长度将达到十几米到几十米。根据物理学的基本定律,频率与波长成反比。当芯片的内部工作时钟达到几千兆赫兹的时候,相应的波长只有若干米。

再考虑到电磁场的有关理论,可以知道当连线长度达到波长的几倍时,连线将成为向外界发射电磁波的天线,同样这些连线也会成为接收电磁波的天线。考虑到IC芯片内部连线密布,在很高的工作频率下,信号的干扰将成为一个不容忽视的问题,信号的完整性将成为设计者面对的另外一个严峻挑战。所以传统的基于布尔代数的数字IC设计理论必须要从简单的面向逻辑,转向吸引其他相关领域的理论,形成新的理论体系。

四、布尔代数

1835年,20岁的乔治·布尔开办了一所私人授课学校。为了给学生们开设必要的数学课程,他兴趣浓厚地读起了当时一些介绍数学知识的教科书。不久,他就感到惊讶,这些东西就是数学吗?实在令人难以置信。于是,这位只受过初步数学训练的青年自学了艰深的《天体力学》和很抽象的《分析力学》。由于他对代数关系的对称和美有很强的感觉,在孤独的研究中,他首先发现了不变量,并把这一成果写成论文发表。这篇高质量的论文发表后,布尔仍然留在小学教书,但是他开始和许多第一流的英国数学家交往或通信,其中有数学家、逻辑学家德·摩根。摩根在19世纪前半叶卷入了一场著名的争论,布尔知道摩根是对的,于是在1848年出版了一本薄薄的小册子来为朋友辩护。这本书是他6年后更伟大知识的预告,它一问世立即激起了摩根的赞扬,认为他开辟了新的、棘手的研究科目。

布尔此时已经在研究逻辑代数,即布尔代数。他把逻辑简化成极为容易和简单的一种代数。在这种代数中,适当的材料上的“推理”成了公式的初等运算,这些公式比过去在中学代数第二年级课程中所运用的大多数公式要简单得多。这样就使逻辑本身受数学的支配。为了使自己的研究工作趋于完善,布尔在此后6年的漫长时间里,又付出了不同寻常的努力。1854年,他发表了《思维规律》这部杰作,当时他已39岁,布尔代数问世了,数学史上树起了一座新的里程碑。几乎像所有的新生一样,布尔代数发明后没有受到人们的重视。欧洲大陆著名的数学家蔑视地称它为没有数学意义的、哲学上稀奇古怪的东西,他们怀疑英伦岛国的数学家能否在数学上做出独特贡献。布尔在他的杰作出版后不久就去世了。20世纪初,罗素在《数学原理》中认为,“纯数学是布尔在一部他称之为《思维规律》的著作中发现的。”此说法立刻引起世人对布尔代数的关注。今天,布尔发明的逻辑代数已经发展成为纯数学的一个主要分支。

参考书籍:《32位嵌入式系统与SoC设计导论》

猜你喜欢

转载自blog.csdn.net/weixin_45264425/article/details/129782660
今日推荐