集成电路的仿真测试方法技术

技术编号:3873134 阅读:299 留言:0更新日期:2012-04-11 18:40
一种集成电路仿真测试方法,其包括步骤:读入集成电路的网表,根据寄存器、锁存器、RAM、ROM各自的数据生成对应的列表文件,由列表文件按verilog硬件描述语言生成保存现场数据任务和恢复现场数据任务;在不同仿真时间点时调用保存现场数据任务,对所指定的不同仿真时间点的仿真现场数据进行保存;产生多个相互独立的仿真线程,每个仿真线程均启动仿真软件,调用恢复现场数据任务将每个仿真软件所仿真对应的集成电路初始化为在不同仿真时间点时保存的现场数据,并启动各个仿真线程进行仿真验证。本发明专利技术极大的缩短了仿真的时间,提高了仿真效率。

【技术实现步骤摘要】

本专利技术涉及电路仿真测试方法,尤其是涉及一种采用分段的形式提高集成电路仿真验证速度的仿真测试方法。
技术介绍
现代的电路设计技术,除了直接绘制电路图之外,也有直接以语言实现电路的方式,这种语言即称为硬件描述语言(Hardware Description Language, HDL)。随着大规模逻辑电路的发展,硬件描述语言获得广泛的应用,其中使用最多的是verilog HDL。EDA (Electronic Design Automatic)技术是以计算机为工具,使用硬件描述语言完成设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真等工作。EDA技术的出现,极大地提高了电路设计的效率,减轻了设计者的劳动强度。 随着大规模逻辑电路的广泛应用和逻辑功能的日趋复杂,其验证逻辑功能是否正确的测试方案也变得非常繁杂和烦琐。如此,对于逻辑设计验证工程师来说,如何提高效率判断逻辑电路功能是否正确这一问题愈加突出,它也成为当前逻辑设计电路的仿真验证
的一大难点。 验证逻辑设计电路是否正确可以分为软件和硬件两种验证方案 —是验证人员采用EDA仿真验证软件,模拟电路的工作情况,根据仿真波形和时序的结合来分析和判断仿真结果是否正确。 二是采用硬件验证法,通过采用CPLD或FPGA等可编程逻辑器件进行硬仿真,直接 验证需要测试的逻辑设计电路。利用诸如FPGA等可编程逻辑器件来进行逻辑验证时,需要 拥有数量巨大的逻辑门的FPGA、成本高、周期长。而且必须在基于FPGA的硬件电路完成调 试的情况下,才能用来验证待测的逻辑设计电路;即使基于FPGA的硬件电路完成调试,一 旦待测的逻辑设计电路出现逻辑错误,该测试环境给出的帮助信息较少,对于逻辑错误的 定位也非常困难。因此通过EDA仿真工具验证电路仍然是电路设计必不可少的阶段。 另外,在芯片级的集成电路设计的过程中,除了考虑芯片的性能之外,也需要将芯 片的上市时间要求考虑在内,这就直接涉及到了芯片的验证时间问题。但是,现有的EDA工 具在中断此次仿真后,不具备在下次仿真中恢复此次仿真环境的功能,因此每次仿真都需 要经过相同的向量激励后,电路才能运行到所需的状态,从而耗费了大量时间,严重影响了 芯片的设计进度。
技术实现思路
本专利技术公开一种集成电路仿真测试方法,通过将原本单线程的仿真流程分割成多 个可并行执行的仿真线程,大幅减少了仿真的测试时间。本专利技术采用如下技术方案来实现一种集成电路仿真测试方法,其包括步骤 读入集成电路的网表,根据寄存器、锁存器、RAM、 ROM各自的数据生成对应的列表 文件,由列表文件按verilog硬件描述语言生成保存现场数据任务和恢复现场数据任务; 在不同仿真时间点时调用保存现场数据任务,对所指定的不同仿真时间点的仿真 现场数据进行保存; 产生多个相互独立的仿真线程,每个仿真线程均启动仿真软件,调用恢复现场数 据任务将每个仿真软件所仿真对应的集成电路初始化为在不同仿真时间点时保存的现场 数据,并启动各个仿真线程进行仿真验证。 其中,保存仿真现场数据的步骤包括 先停止集成电路中所有的时钟信号,并保存各时钟信号的状态; 然后分别保存各个寄存器、锁存器、RAM和ROM的当前数据。 其中,寄存器、锁存器、RAM和ROM的仿真现场数据分别保存在不同的文件中。 其中,寄存器、锁存器、RAM和ROM的仿真现场数据均保存在一个文件中。 其中,寄存器、锁存器、RAM和ROM的仿真现场数据以二进制格式保存在文件中。 其中,调用恢复现场数据任务将集成电路初始化的步骤包括 停止集成电路中所有的时钟信号; 以保存的仿真现场数据恢复各个寄存器、锁存器、RAM和ROM的状态值; 恢复集成电路中所有时钟信号。 与现有技术相比,本专利技术具有如下有益效果 本专利技术将仿真测试时间分成多个仿真段,对所指定的不同时间点的仿真现场的数 据保存,再启用多线程仿真程序,每个线程恢复一个时间点的仿真数据开始仿真测试。由于 每个仿真线程的电路均被初始化为不同的时间点的状态,因此每个仿真线程只需仿真验证 两个相邻时间点之间的状态,而这些相互独立的各个仿真线程可以并行执行,因此极大地 縮短了仿真的时间。附图说明 图1是本专利技术对仿真时间分段的示意图; 图2是本专利技术的流程示意图; 图3是数据保存阶段的流程示意图; 图4是数据恢复阶段的流程示意图。具体实施例方式如图1所示,本专利技术将仿真测试时间分成多个仿真段,对所指定的不同时间点的 仿真现场的数据保存,再启用多线程仿真程序,每个线程恢复一个时间点的仿真数据开始 仿真测试,使原本单线程的仿真流程分割成多个可并行执行的仿真线程,大幅减少了重新 仿真的时间。 如图2所示,本专利技术的实现可以分为以下三个阶段 第一阶段数据准备 此阶段主要是生成各种数据类型的列表,以及根据这些列表生成数据保存(save) 和数据恢复(restore)的verilog task,具体流程如下 (1)、通过EDA软件读入集成电路的网表(netlist),根据寄存器(register)、锁存 器(latch)、随机存取存储器(RAM)、只读存储器(ROM)等各种类型的数据,生成各自的列表文件。 (2)、根据这些列表文件,按照verilog的语法,生成save和restore的verilog task文件。 (3) 、 save task的主要任务是保存当前数据到指定的文件,主要是通过verilog HDL的$fdisplay系统任务实现。 (4) 、 restore task的主要任务是根据保存的数据文件恢复之前的仿真环境。 Restore task比较复杂,它需要一系列的操作,使用了 verilog HDL中的force、 release、 $fSCanf等语法和系统任务。 第二阶段数据保存(save)阶段 结合图3所示。在verilog亂的testbench中include之前产生的save task, 以单线程方式在仿真测试切割的各个时间点调用任务save—task分别保存各个时间点的 仿真现场数据。save_task的任务内容如下 task save—task ; begin save_clk(); 〃停止时钟变化,把时钟的状态保存下来 save_reg_ —task();〃保存register和latch的端口数据 save_ram_task (); 〃保存RAM的数据 save_rom_task () 0 ; 〃保存ROM的数据 end endtask 从save—task的内容可以得知,当testbench调用此任务时,第一步是停止时钟信 号的变化,实现方式的例子如下force design, elk = 1' b0。时钟信号是同步设计电路 中重要的信号,它的变化会触发其他信号的变化,因此把时钟停止后,整个集成电路就处于 稳定的状态,后面所保存的register、 latch、 RAM、 ROM等数据也就是稳态的数据了 。 保存时钟信息之后,分别用不同的task对register和latch数据环境进行保存, 每个task均使用标准的verilog的系统任务$fdisplay实现数据保存的功能,因此在不 同的硬件平台和本文档来自技高网
...

【技术保护点】
一种集成电路仿真测试方法,其特征在于,包括步骤:读入集成电路的网表,根据寄存器、锁存器、RAM、ROM各自的数据生成对应的列表文件,由列表文件按verilog硬件描述语言生成保存现场数据任务和恢复现场数据任务;在不同仿真时间点时调用保存现场数据任务,对所指定的不同仿真时间点的仿真现场数据进行保存;产生多个相互独立的仿真线程,每个仿真线程均启动仿真软件,调用恢复现场数据任务将每个仿真软件所仿真对应的集成电路初始化为在不同仿真时间点时保存的现场数据,并启动各个仿真线程进行仿真验证。

【技术特征摘要】

【专利技术属性】
技术研发人员:黎嘉勇田浦延李达
申请(专利权)人:深圳国微技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1