一种超大规模集成电路门级网表仿真的加速方法

文档序号:8922445阅读:971来源:国知局
一种超大规模集成电路门级网表仿真的加速方法
【技术领域】
[0001]本发明涉及计算机应用技术,是一种超大规模集成电路门级网表仿真的加速方法,它属于超大规模集成电路仿真验证领域。
【背景技术】
[0002]芯片设计实现大致分为前端逻辑设计综合与后端物理设计综合两个部分。其中,后端物理设计实现包括时钟树综合、布局布线、功耗分析、物理验证和可制造性设计等多个步骤。在芯片设计中,前端逻辑的定义、开发、综合、集成和验证固然重要。但是随着半导体制造工艺的发展,一块芯片要去流片,进而量产,其后端物理设计实现显得非常关键。
[0003]为了保证芯片功能和实现的正确性,验证将贯穿于芯片的整个设计实现过程。验证是在设计过程中确认所设计的电路功能的正确性。验证可以通过软件仿真(SoftwareSimulat1n)、硬件加速器验证(Hardware Emulat1n)和形式验证(Formal Verificat1n)等方法进行,它是在流片之前要做的工作。
[0004]软件仿真是指利用仿真激励,通过仿真软件,对SoC体系结构进行功能验证。软件仿真分为前端仿真和后端仿真。前端仿真是指对SoC的RTL代码进行仿真,主要验证体系结构功能的正确性。后端仿真是指利用时序信息文件(Standard Delay File,sdf),对SoC的门级网表(Gate Level Netlist)进行仿真,主要验证体系结构实现的正确性,重点是验证时序是否收敛。
[0005]随着SoC设计技术手段的发展和越来越多样化的应用需求,SoC体系结构越来越复杂,芯片规模越来越庞大。超大规模集成电路门级网表的仿真验证难度越来越大,所消耗的时间越来越长,严重阻碍验证工作的进展,是设计人员和验证人员十分头疼的工作。
[0006]例如,以一个64核128G内存的服务器作为验证平台,验证目标是一个约I亿门级的SoC网表,配合时序信息文件,仿真工具编译过程需要约40分钟;仿真运行时,处理器读取并执行一条指令需要约5分钟。那么,执行一个配置100个寄存器的程序,约250条指令,后仿需要约20个小时。不难看出,超大规模集成电路门级网表的仿真速度十分缓慢,需要有方法加速该过程,提高验证效率。

【发明内容】

[0007]为了解决超大规模集成电路门级网表的仿真速度十分缓慢的问题,本发明提出了一种超大规模集成电路门级网表仿真的加速方法,可以极大程度缩短了超大规模集成电路门级网表的仿真时间,提高了验证效率。
[0008]本发明提出的一种超大规模集成电路门级网表仿真的加速方法,包括
[0009]步骤1,对集成电路各个模块的验证程序进行单独设计,并筛选有效的寄存器进行配置形成精简的仿真激励;
[0010]步骤2,对寄存器进行配置,利用精简的仿真激励,对SOC的RTL级代码进行仿真验证,设置关键寄存器和关键时间点,获取并保存关键寄存器在关键时间点的输出值;
[0011]步骤3,依据保存的关键寄存器在关键时间点的输出值,筛选出输出值与初始值不同的关键寄存器;
[0012]步骤4,门级网表仿真运行开始后,在集成电路对应模块完成复位之后并在工作之前的时间内,利用获取的关键寄存器的输出值的对步骤3中筛选的关键寄存器进行赋值,然后继续进行门级网表仿真工作。
[0013]优选的,步骤2中所述的关键寄存器是电路各个模块的功能配置寄存器;所述的关键时间点是电路各个模块的功能配置寄存器配置完毕的时刻。
[0014]优选的,步骤3中筛选出输出值与初始值不同的关键寄存器后,根据门级网表的命名规则,将所述的关键寄存器的每一位输出值赋值为非初始化值。
[0015]优选的,步骤2中关键寄存器输出值成功获取后,后续各种基于该状态进行仿真验证的工作开始后,在集成电路对应模块完成复位之后并在工作之前的时间内,利用获取的关键寄存器的输出值的对相应的寄存器进行赋值,代替寄存器配置过程。
[0016]本发明对集成电路各个模块的验证程序进行单独设计,并筛选有效的寄存器进行配置形成精简的仿真激励,可以很轻松的完成一定程度的网表仿真加速工作;关键寄存器输出值成功捕获后,后续各种基于该状态进行仿真验证的工作,均可以省略一系列寄存器配置的过程,极大程度缩短了超大规模集成电路门级网表的仿真时间,提高了验证效率。
【附图说明】
[0017]图1是本发明的方法流程示意图;
[0018]图2是本发明加速效果的对比示意图。
【具体实施方式】
[0019]为了使本发明的技术方案和优点更加易于理解,以下结合具体实施案例和附图,对本发明作进一步的详细说明。
[0020]本发明的一种超大规模集成电路门级网表仿真的加速方法,如图1所示包括以下步骤:
[0021]步骤1,对集成电路各个模块的验证程序进行单独设计,并筛选有效的寄存器进行配置形成精简的仿真激励;
[0022]由于时间的限制,超大规模集成电路门级网表仿真验证目标主要是关键路径或关键IP,验证SoC在后端设计实现后,通路是否满足时序,IP是否可以正常启动等。通常情况,门级网表仿真验证都是利用不同子模块最简单基础的仿真激励。复杂的仿真激励,例如大规模的数据搬运与计算等,通常在RTL级软件仿真或硬件加速器仿真验证阶段使用。
[0023]针对超大规模集成电路门级网表仿真,必须精简仿真激励,提高程序的有效性。精简原则如下:
[0024](I)提高模块验证的独立性。在前端仿真验证或回归验证时,设计人员通常会将多个模块、多个功能的仿真激励集成到一个验证程序。但是在门级网表仿真验证时,需要精简仿真激励,尽量单独验证各个模块,减少不必要的模块串联验证。这样可以并行验证多个模块,提高工作效率。
[0025](2)在验证IP时,不配置对于本次验证功能无影响的寄存器,不配置与初始化值相同的寄存器。这样可以提高验证程序的有效性,减少无用功。
[0026](3)在验证数据通路时,传输的数据量尽量少。因为大量、重复性的验证工作应该在速度较快的验证平台上进行,例如硬件加速器。在门级网表仿真时,需要明确该验证的主要目的,即芯片后端实现是否满足时序要求,尽量覆盖更多的通路。
[0027]该步骤是一个相对独立且简单的步骤,可以单独使用,在一定程度上提高门级网表的仿真速度。
[0028]步骤2,对寄存器进行配置,利用精简的仿真激励,对SOC的RTL级代码进行仿真验证,设置关键寄存器和关键时间点,获取并保存关键寄存器在关键时间点的输出值;
[0029]此步骤一方面验证精简后的仿真激励是否正确,另一方面尽快获取关键时间点时,关键寄存器的输出。关键寄存器和关键时间点的选取依据不同验证对象和不同验证需求而定。通常情况下,关键寄存器是集成电路各个模块的功能配置寄存器。关键时间点是集成电路各个模块的功能配置寄存器配置完毕的时刻。如果验证对象是自主设计研发或源代码公开可见,功能配置寄存器所属的模块一般很容易定位。同样,根据验证对象的设计手册,一般很容易确定关键时间点,例如验证对象功能使能的时刻,或验证对象初始化完成的时刻。
[0030]步骤3,依据保存的关键寄存器在关键时间点的输出值,筛选出输出值与初始值不同的关键寄存器;
[0031]根据门级网表的命名规则,将这些寄存器的每一位输出值赋值为非初始化值。另夕卜,由于在逻辑综合和物理实
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1