前端在图片上展示数字_电子设计自动化EDA,从数字前端开始!

5cf804dabbf2d2458ba209f6e9104d59.png

EDA—从数字前端开始 !

集成电路数字设计流程可以说是一个完全自动化的过程,最能展示当今EDA工具的强大。我们用下图11个步骤来展示数字设计流程,通常会把步骤1和2称为数字前端流程,步骤3至11称为数字后端流程。

1e9b9f00ed89bd8e42267d7ae9767110.png

                   图片来源:einfochips.com

当进行FPGA/ ASIC设计时,就需要运用从前端到后端的完整EDA工具。这里列出了最常用的数字前端工具和术语,具体介绍如下。

Design Entry/Capture Tools

这里之所以依然列举Design Capture Tools,是因为它们在20年前的电路设计中起到非常关键的作用。在硬件描述语言没有成型之前,这些工具的功能包括手工网表输入、原理图捕获、硬件描述语言(HDL)表述的生成、状态图输入等,而由此生成的电路描述进入验证阶段。

今天数字电路设计的起点主要是依靠HDL(Hardware Description Language)如Verilog和VHDL进行。最近几年,随着开源硬件尤其是RISC-V的兴起,如Chisel等DSL(Domain Specific Language)在电路设计中得到一定的应用,尤其在学术界。

Function Verification 验证

验证是将正在创建的设计与已经证明是准确的设计进行正确性比较的步骤。按照Top-down的设计方法,设计是一步一步抽象层次下降的,从Spec到RTL到Gate。在任何一个抽象层次上进行的验证,都是利用上一个层次的功能作为参照系。我们可以在RTL上或者综合后的网表,以及布局布线后的网表上进行验证。验证作为一个大的范畴,涵盖很多的方法和工具,包括Simulation、Emulation、Prototyping以及Formal等静态验证方法。

Simulation 模拟

Simulation是设计功能验证的一个使用最为普遍的核心手段。Simulator是运行在计算机/服务器上的软件工具, Simulation技术发展的核心之一是如何提高速度,毕竟作为设计验证中最重要的工具,Simulator的速度以及由此带来的验证效率的提高和验证周期的缩短对一颗芯片设计的成功至关重要。基于多核CPU的并行算法是Simulator的一个技术前沿。

当验证工程师在准备进行Simulation时,除了设计本身,还需要提供为了施加测试激励而设计的Testbench以及测试向量本身。在设计复杂度不是很高的时候,Testbench的构建往往比较简单。随着设计复杂度的增加,基于UVM(Universal Verification Methodology)的验证方法学逐渐成为主流,其主要目的是可以更快地构建覆盖率更高的测试激励,从而增加验证的完备性。

最近几年SOC的发展,在Simulation领域一个比较引人注意的是Portable Stimulus的技术,该技术主要想解决的一个问题是在有嵌入式的处理器如ARM的情况下,如何在全芯片验证中自动产生处理器的测试码,从而加快验证覆盖率和收敛速度。

Emulation 仿真

Emulation是动态验证方法中在Simulation之外的另一个重要方法。Simulation在设计的可见度、使用的便利度、普及度,以及设计全周期中的使用率上有非常大的优势。但是Simulator作为一个运行在计算机/服务器上的软件工具,其运行速度随着设计规模的增大而大幅下降。例如对于一个几千万门的设计,Simulation运行速度为几个CPS(Cycle Per Second)是非常常见的。不断增大的SOC设计规模,不仅仅造成Simulator的运行速度下降,同时大的设计需要的测试向量往往会更长,其优势体现在要有嵌入式软件运行的情况。Emulation的运行速度一般在100K和1MCPS的数量级上,比Simulation速度快千倍或者万倍,同时具有设计中所有信号可见的Debug能力,极大提高了设计验证的效率。Emulation需要使用到专用的硬件仿真器Emulator。Emulation使用模式按照接口信号的来源一般可以分为ICE(In-Circuit-Emulation)、STB ( Synthesizable Testbench)和SA(Simulation Acceleration)模式。

Prototyping原型

原型验证自从FPGA诞生以来就已经存在。FPGA的高运行速度和设计修改的便利性,使得利用大规模FPGA原型进行ASIC验证成为一个非常普遍的手段,尤其是后期进行软硬件联合调试。但是FPGA原型系统受限于FPGA本身的特征,往往在硬件DEBUG上效率不高,所以在追求运行速度的验证环节,例如需要外接实际的物理测试环境、有大量软件需要验证的情况下运用更多。另外,FPGA原型在速度调优上有一定的局限,尤其是在设计时钟树比较复杂的情况下,设计相应的修改会比较多,造成原型系统准备时间比较长。

Synthesis综合

逻辑综合是承接数字前端和数字后端的一个重要步骤,其主要功能就是把用Verilog 或者VHDL编写的设计功能描述映射为物理实现用的、可传递到布局布线工具的网表。综合工具的主要输入除了设计RTL代码,还有目标工艺库例如TSMC或者SMIC的某个工艺库,以及设计实现的约束文件如时钟的设定等等。逻辑综合并不是一个简单的RTL到网表的翻译,这个步骤中根据设计的约束条件有大量的针对运行速度、面积、功耗等方面的考量。

a67dd4e1248336f3a5e00eaf04b5d4fd.png

感谢关注!

275158b0cdbc22cdb216b9cc6595a144.png

欢迎访问EDAHUB.CN

网址:https://edahub.cn

     感谢分享!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值