首页 理论教育 功能仿真验证设计的实用性

功能仿真验证设计的实用性

时间:2023-06-16 理论教育 版权反馈
【摘要】:检查设计是否符合功能要求的主要途径就是功能仿真。接着,利用VHDL或Verilog的电路仿真器,对设计进行功能验证。注意,这种功能仿真没有考虑电路实际的延迟,无法获得精确的结果。目前EDA工具供应商有Synopsys、Cadence、Mentor和Magma,每个厂商都有各自研发的侧重点,如Cadence在仿真器上有优势,而Mentor在物理验证上略胜一筹。

功能仿真验证设计的实用性

验证的主要目的是检查设计实现的功能特性是否正确,以及是否与规范定义的要求吻合。

检查设计是否符合功能要求的主要途径就是功能仿真。仿真的操作类型可分为黑盒测试、白盒测试和灰盒测试。编写testbench即是典型的黑盒测试,也是功能测试,主要针对表观的功能和性能;白盒测试也称结构测试,可以检验每条通路是否按预期要求进行工作;灰盒测试介于两者之间,增强了用户与开发者的交互,便于得出一个协同性的结论。

验证通常还需要考虑静态时序分析以及形式验证。前者简称为STA(static timing analysis),侧重检查时序特性是否符合要求,而不考虑电路的功能正确性。后者主要判断多个电路设计是否等价,以评估对电路修改的结果。

自从1952年英国科学家Dummer第一次提出集成电路的设想后,全世界都开始探寻集成电路设计与制造的奥秘:1958年世界上第一块集成电路诞生,摩尔先生提出著名的摩尔定律,而后他的Intel公司就开始沿着他的定律发展。直到今天,一个CPU上已经可以集成数以亿计的晶体管。到底是什么样的技术方法支撑着集成电路的高速发展呢?

不同种类的集成电路的材料其功能不尽相同,大致可以分为单片集成电路和混合集成电路,按功能还可分为数字电路、模拟电路和数模混合电路。不同的电路设计方法不同,但是总的设计流程大致相同。计算程序如图3-4所示。

1.行为级描述阶段

设计人员产品的应用场合,设定一些如功能、操作速度、接口规格、环境温度及消耗功率等规格,以作为将来电路设计时的依据。便可进一步规划软件模块及硬件模块该如何划分,哪些功能该整合于SOC内,哪些功能可以设计在电路板上。行为级描述实质上是对整个系统的数学模型进行描述,并不用真正考虑算法的实现方法,而是更多地考虑电路的功能是否达到实际要求。

2.寄存器传输级描述阶段

设计描述和行为级验证功能设计完成后,可以依据功能将SOC划分为若干功能模块,并决定实现这些功能将要使用的IP核。此阶段将直接影响了SOC内部的架构及各模块间互动的信号及未来产品的可靠性。决定模块之后,可以用VHDL或Verilog等硬件描述语言实现各模块的设计。接着,利用VHDL或Verilog的电路仿真器,对设计进行功能验证(function simulation,或行为验证behavioral simulation)。注意,这种功能仿真没有考虑电路实际的延迟,无法获得精确的结果。

图3-4 计算程序

3.逻辑综合阶段

逻辑综合确定设计描述正确后,可以使用逻辑综合工具(synthesizer)进行综合。在综合过程中,需要选择适当的逻辑器件库(logic cell library),作为合成逻辑电路时的参考依据。硬件语言设计描述文件的编写风格是决定综合工具执行效率的一个重要因素。事实上,综合工具支持的HDL语法均是有限的,一些过于抽象的语法只适于作为系统评估时的仿真模型,而不能被综合工具接受逻辑综合得到门级网表。

4.门级验证阶段

门级功能验证是寄存器传输级验证。主要的工作是要确认经综合后的电路是否符合功能需求,该工作一般利用门电路级验证工具完成(注意,此阶段仿真需要考虑门电路的延迟)。

5.布局布线阶段

布局指将设计好的功能模块合理地安排在芯片上,规划好它们的位置;布线则指完成各模块之间互连的连线。注意,各模块之间的连线通常比较长,因此产生的延迟会严重影响SOC的性能,尤其在0.25μm制程以上,这种现象更为显著。(www.xing528.com)

以上的这种设计方法称为自顶向下设计方法,它是指从系统硬件的高层次抽象描述向最底层物理描述的一系列转换过程;还有另一种设计方式称为自底向上的设计方法。但目前主流的技术是自顶向下的。

马克思曾经告诉我们,有了世界观还要掌握方法论才能进一步改造世界。上述的电路设计大致流程就是我们的芯片世界观,而接下来需要了解的设计方法学就是改造电路的方法论。集成电路的设计方法总是落后于制造技术的发展,设计和工艺技术的差异只能依靠改进设计方法学来缩小。集成电路设计的抽象层次可分为五层(见图3-5)。

图3-5 集成电路设计的抽象层次

历史上先后产生了三种主要的设计方法学:①时序驱动的设计方法(TDD);②基于模块的设计方法(BBU);③基于平台的设计方法(PBD)。

早期的集成电路设计全靠手工,从设计原理到硬件电路模拟,到每个原件的版图设计、布局布线,再到完整的电路掩模版,全由人工完成,发展到由计算机辅助设计,但是设计各阶段的软件却彼此独立,且功能较少,不利于大规模系统设计。到了20世纪90年代,经历了CAE阶段,我们终于迎来了电子设计自动化技术(EDA)。它根据硬件描述语言完成的设计文件,自动完成逻辑、化简、分割、综合、优化、布局布线及仿真,直至完成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。目前EDA工具供应商有Synopsys、Cadence、Mentor和Magma,每个厂商都有各自研发的侧重点,如Cadence在仿真器上有优势,而Mentor在物理验证上略胜一筹。

EDA工具软件大致可分为芯片设计辅助软件、可编程芯片辅助设计软件、系统设计辅助软件等三类,主要有SPICE/PSPICE、multiSIM、Matlab、PCB、Verilog、Cadence等。EDA在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。科研方面主要利用电路仿真工具(multiSIM或PSPICE)进行电路设计与仿真,利用虚拟仪器进行产品测试,将CPLD/FPGA器件实际应用到仪器设备中,从事PCB设计和ASIC设计等。在产品设计与制造方面,包括计算机仿真、产品开发中的EDA工具应用、系统级模拟及测试环境的仿真、生产流水线的EDA技术应用、产品测试等各个环节。如PCB的制作、电子设备的研制与生产、电路板的焊接、ASIC的制作过程等。从应用领域来看,EDA技术已经渗透到各行各业,包括在机械、电子、通信航空航天化工矿产、生物、医学、军事等各个领域,都有EDA应用。另外,EDA软件的功能日益强大,原来功能比较单一的软件,现在增加了很多新用途。如AutoCAD软件可用于机械及建筑设计,也扩展到建筑装潢及各类效果图、汽车和飞机的模型、电影特技等领域。

从目前的EDA技术来看,其发展趋势是政府重视、使用普及、应用广泛、工具多样、软件功能强大。中国EDA市场已渐趋成熟,不过大部分设计工程师面向的还是PCB制板和小型ASIC领域,仅有小部分(约11%)的设计人员开发复杂的片上系统器件。为了与我国台湾地区以及美国的设计工程师形成更有力的竞争,中国的设计队伍有必要引进和学习一些最新的EDA技术。在信息通信领域,要优先发展高速宽带信息网、深亚微米集成电路、新型元器件、计算机及软件技术、第三代移动通信技术、信息管理信息安全技术,积极开拓以数字技术、网络技术为基础的新一代信息产品,发展新兴产业,培育新的经济增长点。要大力推进制造业信息化,积极开展计算机辅助设计(CAD)、计算机辅助工程(CAE)、计算机辅助工艺(CAPP)、计算机辅助制造(CAM)、产品数据管理(PDM)、制造资源计划(MRPII)及企业资源管理(ERP)等。在ASIC和PLD设计方面,向超高速、高密度、低功耗、低电压方面发展。外设技术与EDA工程相结合的市场前景看好,如组合超大屏幕的相关链接,多屏幕技术也有所发展。中国自1995年以来加速开发半导体产业,先后建立了几所设计中心,推动系列设计活动以应对亚太地区其他EDA市场的竞争。

EDA软件开发,目前主要集中在美国。但各国也正在努力开发相应的工具。日本韩国都有ASIC设计工具,但不对外开放。中国华大集成电路设计中心,也提供IC设计软件,但性能不是很强。相信在不久的将来会有更多更好的设计工具在各地开花并结果。据最新统计显示,中国和印度正在成为电子设计自动化领域发展最快的两个市场,年复合增长率分别达到了50%和30%。

随着集成电路的集成程度和功能复杂程度的不断提高,集成电路的功能验证难度也在不断增加。目前,集成电路功能验证约占整个开发过程投入的60%~70%,是项目成功的关键。集成电路的功能验证需要有系统的方法加以支撑,并尽可能地做到自动化,从而提高验证的效率。

图3-6 集成电路功能验证

从图3-6中可以看出,验证是繁琐而复杂的过程,逻辑门一个数量级的增加导致了仿真所需周期数3个数量级的增加,这时人力去干涉和检查逻辑错误的可能性是非常低的,必须借助于自动化的仿真程序来验证。

基于仿真的验证是指在软件环境下模拟电路工作的实际情况,从而在实现实际电路之前,完成对硬件电路设计的功能测试,从而缩减芯片的开发成本,提高芯片投片一次性成功的概率。以Verilog和VHDL为代表的硬件描述语言的出现,是对逻辑门单元电路描述的一种抽象,提高了IC设计的效率,但这些语言在验证上的表现并不理想,所以业界开始设计在硬件描述语言上更抽象的语言,以胜任设计和验证两方面的需求,如superlog、system Verilog等,一些专门针对验证而设计的抽象语言如vera也相应诞生。

验证方法有仿真验证和形式验证,形式验证也称静态验证,是从数学上证明逻辑电路的功能,下面着重介绍基于仿真的验证方法,其基本流程如图3-7所示。

图3-7 仿真验证方法流程

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈