典型的设计流程遵循以下所示的结构,可以分为多个步骤。 这些阶段中的某些阶段并行发生,而某些阶段依次发生。 我们将研究当今行业中典型的项目设计周期的情况。
要求(Requirements)
半导体公司的客户通常是其他一些计划在其系统或最终产品中使用该芯片的公司。 因此,客户的要求在决定如何设计芯片方面也起着重要作用。 自然,第一步将是收集需求,估计最终产品的市场价值,并评估执行该项目所需的资源数量。
技术指标 Specifications
下一步将是收集“规范”,该规范抽象地描述了要设计的芯片的功能,接口和总体架构。这可能类似于以下内容:
【1】需要计算能力才能运行成像算法以支持虚拟现实;
【2】需要两个具有相干互连功能的ARM A53处理器,并且应在600 MHz上运行;
【3】需要USB 3.0,蓝牙和PCIe第二代接口;
【4】应使用适当的控制器支持1920x1080像素显示;
架构Architecture
架构师提出了芯片应如何工作的系统级视图。 他们将决定需要所有其他组件,应运行什么时钟频率以及如何确定功耗和性能要求。 他们还决定数据如何在芯片内部流动。 一个示例是处理器从系统内存中获取成像数据并执行它们时的数据流。 同时,图形引擎将执行转储到内存另一部分中的前一批的后处理数据。
Digital Design数字设计
由于现代芯片的复杂性,不可能从头开始构建某些东西,并且在许多情况下,很多组件都将被重用。 假设X公司需要FlexCAN模块才能与汽车中的其他模块进行交互。 他们可以从另一家公司购买FlexCAN设计以节省时间和精力,也可以花费资源自行构建。 同样,从诸如触发器和CMOS晶体管之类的基本模块设计这样的系统也是不切实际的。 取而代之的是,开发了一种行为描述,以使用硬件描述语言(例如Verilog或VHDL)在功能,性能和其他高级问题方面对设计进行分析。 这通常是由数字设计师完成的,类似于具有数字电子技术的高级计算机程序员。
Verification验证
一旦准备好RTL设计,就需要对其功能正确性进行验证。 例如,期望DSP处理器发出总线事务以从内存中获取指令,但是我们如何知道这会按预期发生呢? 因此,此时需要功能验证,这需要借助EDA仿真器来完成,该仿真器具有对设计进行建模并对其施加不同激励的能力。 这是硅前验证工程师的工作。
为了节省时间并实现功能封闭,设计团队和验证团队并行运行,在这里设计人员“发布” RTL版本,验证团队开发测试平台环境和测试用例以测试该RTL版本的功能。 如果这些测试中的任何一个失败,则可能表明设计存在问题,并且该设计元素上将出现“错误”。 该错误必须在设计团队的下一版RTL版本中修复。 这个过程一直进行到对设计的功能正确性有足够的信心为止。
逻辑综合Logic Synthesis
现在,我们对设计感到满意,现在是时候将其转换为具有诸如组合门和触发器之类的真实元素的硬件原理图了。 此步骤称为综合。 逻辑综合工具可将HDL中的RTL描述转换为门级网表。 该网表不过是根据门及其之间的连接对电路进行的描述。 它可能看起来像:
and_2_0 u_and2_0 ( .in_a (_net_112),
.in_b (_net_56),
.out (_net_222));
ff_lt u_ff_lt_122 (.d (_net_222),
.clk (_net_11),
.q (_net_76));
逻辑综合工具可确保网表满足时序,区域和电源规格。 通常,他们可以访问不同的技术节点过程和数字元素库,并且可以进行智能计算以满足所有这些不同的标准。 这些库是从半导体工厂获得的,这些半导体工厂为不同组件提供数据特性,例如触发器的上升/下降时间,组合门的输入-输出时间等。
Logic Equivalence逻辑对等
然后用RTL检查门级netlist是否具有逻辑等价性,有时会执行“门级验证”,在此过程中再次对某些元素进行验证,不同之处在于这一次是在门级,处于较低的抽象级别。由于在此阶段的设计中涉及大量的元素以及后面注释的延迟信息,因此模拟时间往往较慢。
Placement and Routing布局和布线
然后将网表输入到物理设计流程中,在该流程中,借助EDA工具完成自动布局和布线(APR或PnR)。 Cadence Encounter和Synopsys IC Compiler是此类工具的一个很好的例子。 这将选择标准单元并将其放置到行中,定义用于输入输出的球形贴图,创建不同的金属层,并放置缓冲区以满足计时要求。 完成此过程后,将生成布局,通常将其发送以进行制造。 此阶段通常由物理设计团队处理,他们精通技术节点和物理实施细节。
Validation生效
验证并没有在这里结束。样品芯片将由同一家半导体公司制造,或送往台积电或全球代工厂等第三方代工厂。这个示例现在经过硅后验证过程,其中另一个工程师团队在测试器上运行不同的模式。在硅后验证中调试要比硅前验证困难得多,因为对芯片内部节点的可见性大大降低了。此外,一百万个时钟周期将在一秒内完成,并跟踪到准确的错误时间。
参考文献:
【1】https://www.chipverify.com/verilog/asic-soc-chip-design-flow
来源:CSDN
作者:菜鸟-求指导
链接:https://blog.csdn.net/qq_43042339/article/details/104534508