芯片设计流程

发布于:2023-09-16 ⋅ 阅读:(70) ⋅ 点赞:(0)


        VLSI 代表超大规模集成(Very Large Scale Integration),这是一种通过将数百万个晶体管集成到单个芯片中来创建集成电路 (IC) 的技术。超大规模集成电路技术可以生产出紧凑、功能强大且低成本的微处理器、存储芯片、数字信号处理器和其他先进电子设备,这彻底地改变了电子行业。

        截至2020年,超大规模集成电路技术的集成规模已达到纳米级工艺,特征尺寸在7-5纳米量级,允许在单个芯片上集成数十亿个晶体管。最新的处理器和集成电路采用 7 纳米和 5 纳米工艺节点制造,可实现更高的性能和功效。


什么是 ASIC?

        ASIC(Application Specific Integrated Circuit,专用集成电路)是一种旨在实现特定任务或功能的集成电路(IC)。与微处理器和存储芯片等通用 IC 不同,它是针对特定应用而定制的。

        ASIC 通常用于需要满足特定处理要求的高性能应用,例如网络、通信和消费电子产品。ASIC 是针对特定客户或应用而设计和制造的,它可以在单个芯片上集成数字、模拟和混合信号组件。


芯片设计流程

        典型的设计流程遵循如下所示的结构,可以分为多个步骤。其中一些阶段是并行发生的,还有一些阶段是顺序发生的。接下来我们将了解当今行业中典型的项目设计周期。

需求(Requirements)

        半导体公司的客户通常是计划在其系统或最终产品中使用该芯片的其他公司。因此,客户的要求在决定如何设计芯片方面也发挥着重要作用。理所当然的,第一步就是收集需求,估计最终产品的市场价值,并评估完成该项目所需的资源数量。

规范(Specifications)

        下一步将是收集规范----抽象地描述要设计的芯片的功能、接口和整体架构。类似这样的:

  • 需要算力来运行图像算法以支持虚拟现实
  • 需要两个具有一致性互连的 ARM A53 处理器,并且以600 MHz 的速度运行
  • 需要 USB 3.0、蓝牙和 PCIe 第二代接口
  • 应通过适当的控制器支持 1920x1080 像素显示

架构(Architecture)

        现在,架构师提出了芯片如何运行的系统级视图。他们将决定需要哪些其他组件、系统应该运行在时钟频率以及如何满足功耗和性能要求。他们还决定数据如何在芯片内流动,一个例子是处理器从系统 RAM 获取成像数据并执行它们。同时,图形引擎将执行转储到另一部分内存中的上一批数据的后处理数据,等等。

数字化设计(Digital Design)

        由于现代芯片的复杂性,不可能从头开始构建某些组件,在许多情况下,许多组件都将被重复利用。假设 X 公司需要FlexCAN 模块来与汽车中的其他模块交互。他们可以从另一家公司购买 FlexCAN 设计以节省时间和精力,也可以花费资源自行构建一个。同样的,使用触发器和 CMOS 晶体管等基本组件来设计这样的系统也是不切实际的。相反,使用Verilog 或 VHDL 等硬件描述语言开发行为描述来分析功能、性能和其他高级问题的设计。这通常由类似于具备数字电子技能的高级计算机程序员的数字设计师完成。

验证(Verification,前仿真)

        RTL 设计准备就绪后,就需要验证其功能的正确性。例如,DSP 处理器预计会发出总线事务以从内存中获取指令,但我们如何知道这是否会按预期发生?因此,这个阶段就需要进行功能验证,这是在能够对设计进行建模并对其应用不同的测试激励的EDA 仿真工具的帮助下完成的。这是流片前验证工程师的工作。

        为了节省时间并实现功能收敛,设计和验证团队一般是并行运作,设计人员“发布”RTL 版本,验证团队开发测试平台环境和测试用例来测试该 RTL 版本的功能。如果这些测试中的任何一个失败,则可能表明设计存在问题,并且该设计元素上将出现“BUG”。设计团队必须在下一版本的 RTL 版本中修复此错误。这个过程一直持续到对设计的功能正确性有足够的信心为止。 


逻辑综合(Logic Synthesis)

        现在我们对设计感到满意,所以是时候将其转换为具有组合门电路和触发器等真实元素的硬件原理图了。此步骤称为综合(Synthesis)。逻辑综合工具能够将 HDL 中的 RTL 描述转换为门级网表。该网表只不过是根据门电路及其之间的连接对电路进行的描述。它可能看起来像:

        逻辑综合工具确保网表满足时序、面积和功耗规范。通常,他们可以访问不同的技术节点流程和数字元件库,并可以进行智能计算以满足所有这些不同的标准。这些库是从半导体工厂获得的,可以提供不同组件的数据特性,例如触发器的上升/下降时间、组合门的输入-输出时间等。

逻辑等价(Logic Equivalence)

        然后检查门级网表与 RTL 的逻辑等效性,有时会执行“门级验证”,再次对某些元素进行验证,不同之处在于这次是在门级并且处于较低的抽象层级。由于此阶段的设计涉及大量元素以及反向注释的延迟信息,因此仿真时间往往会变慢。

布局布线(Placement and Routing)

        然后将网表输入到物理设计流程中,在 EDA 工具的帮助下完成自动布局布线(APR 或 PnR)。Cadence Encounter 和Synopsys IC Compiler 就是此类工具的一个很好的例子。这将选择标准单元并将其放置到行中,定义输入输出的球图,创建不同的金属层,并放置Buffer以满足时序要求。一旦完成此过程,就会生成layout,然后发出去制造。此阶段通常由熟悉技术节点和物理实现细节的物理设计团队处理。

确认(Validation,后仿真)

        事情还没有结束。样品芯片将由同一家半导体公司制造,或发送给台积电或格罗方德等第三方代工厂。该示例现在正在经历流片后验证过程,其中另一个工程师团队在测试仪上运行不同的模式。流片后验证比流片前验证要困难得多,因为芯片内部节点的可见性水平大大降低了。此外,一百万个时钟周期将在一秒钟内完成,并且追溯错误的确切时间将非常耗时。如果在此阶段发现任何实际问题或设计错误,则必须在 RTL 中修复、重新验证,并且必须执行此后的所有步骤。

        尽管设计流程中有多个步骤,但许多设计活动通常集中在电路 RTL 描述的优化和验证上。需要注意的是,虽然 EDA 工具可用于自动化流程,但使用不当会导致设计效率低下,因此设计人员必须在设计过程中做出选择。


  • 📣您有任何问题,都可以在评论区和我交流📃!
  • 📣本文由 孤独的单刀 原创,首发于CSDN平台🐵,博客主页:wuzhikai.blog.csdn.net
  • 📣您的支持是我持续创作的最大动力!如果本文对您有帮助,还请多多点赞👍、评论💬和收藏⭐!

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到