• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 9
    • 下载费用:30 金币  

    重庆时时彩二星走势图: 集成电路的仿真测试方法.pdf

    摘要
    申请专利号:

    重庆时时彩单双窍门 www.4mum.com.cn CN200910109891.3

    申请日:

    2009.11.27

    公开号:

    CN101719170A

    公开日:

    2010.06.02

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 17/50申请日:20091127|||公开
    IPC分类号: G06F17/50 主分类号: G06F17/50
    申请人: 深圳国微技术有限公司
    发明人: 黎嘉勇; 田浦延; 李达
    地址: 518057 广东省深圳市南山区高新技术产业园南区高新南一道国微大厦二楼
    优先权:
    专利代理机构: 深圳市康弘知识产权代理有限公司 44247 代理人: 胡朝阳;孙洁敏
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN200910109891.3

    授权公告号:

    101719170B||||||

    法律状态公告日:

    2012.11.28|||2011.07.20|||2010.06.02

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

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

    权利要求书

    1: 一种集成电路仿真测试方法,其特征在于,包括步骤: 读入集成电路的网表,根据寄存器、锁存器、RAM、ROM各自的数据生成对应的列表文件,由列表文件按verilog硬件描述语言生成保存现场数据任务和恢复现场数据任务; 在不同仿真时间点时调用保存现场数据任务,对所指定的不同仿真时间点的仿真现场数据进行保存; 产生多个相互独立的仿真线程,每个仿真线程均启动仿真软件,调用恢复现场数据任务将每个仿真软件所仿真对应的集成电路初始化为在不同仿真时间点时保存的现场数据,并启动各个仿真线程进行仿真验证。
    2: 根据权利要求1所述集成电路仿真测试方法,其特征在于,保存仿真现场数据的步骤包括: 先停止集成电路中所有的时钟信号,并保存各时钟信号的状态; 然后分别保存各个寄存器、锁存器、RAM和ROM的当前数据。
    3: 根据权利要求2所述集成电路仿真测试方法,其特征在于,寄存器、锁存器、RAM和ROM的仿真现场数据分别保存在不同的文件中。
    4: 根据权利要求2所述集成电路仿真测试方法,其特征在于,寄存器、锁存器、RAM和ROM的仿真现场数据均保存在一个文件中。
    5: 根据权利要求2所述集成电路仿真测试方法,其特征在于,寄存器、锁存器、RAM和ROM的仿真现场数据以二进制格式保存在文件中。
    6: 根据权利要求1所述集成电路仿真测试方法,其特征在于,调用恢复现场数据任务将集成电路初始化的步骤包括: 停止集成电路中所有的时钟信号; 以保存的仿真现场数据恢复各个寄存器、锁存器、RAM和ROM的状态值; 恢复集成电路中所有时钟信号。

    说明书


    集成电路的仿真测试方法

        【技术领域】

        本发明涉及电路仿真测试方法,尤其是涉及一种采用分段的形式提高集成电路仿真验证速度的仿真测试方法。

        背景技术

        现代的电路设计技术,除了直接绘制电路图之外,也有直接以语言实现电路的方式,这种语言即称为硬件描述语言(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?HDL的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()();????//保存ROM的数据

        end

        endtask

        从save_task的内容可以得知,当testbench调用此任务时,第一步是停止时钟信号的变化,实现方式的例子如下:force?design.clk=1′b0。时钟信号是同步设计电路中重要的信号,它的变化会触发其他信号的变化,因此把时钟停止后,整个集成电路就处于稳定的状态,后面所保存的register、latch、RAM、ROM等数据也就是稳态的数据了。

        保存时钟信息之后,分别用不同的task对register和latch数据环境进行保存,每个task均使用标准的verilog的系统任务$fdisplay实现数据保存的功能,因此在不同的硬件平台和不同的仿真软件中都能使用,具有良好的通用性。实现方式的例子如下:$fdisplay(file_id,″%b″,design.register.Q);

        接着,使用同样的系统任务实现RAM的数据环境的保存,实现方式的例子如下:$fdisplay(file_id,″%b″,design.RAM.mem[i]);

        同理,ROM的数据也可以用此方式保存下来:

        $fdisplay(file_id,″%b″,design.ROM.mem[i])。

        其中,寄存器、锁存器、随机存取存储器和只读存储器的状态可以保存在同一个文本文件中,也可以根据不同的类型,保存在各自独立的文本文件中,一般是以二进制格式保存在文件中;且使用标准的verilog硬件描述语言实现数据的保存,适用于所有EDA仿真工具。

        第三阶段:数据恢复(restore)阶段

        结合图4所示。首先,产生多个相互独立的仿真线程,这可以通过在计算机的操作系统中开启多个命令行窗口,然后分别在各个命令行窗口中启动仿真软件。其中仿真线程的数量可根据save阶段的分割时间点的数量来决定,使一个仿真线程对应以一个时间点保存的数据开始进行仿真测试。

        其次,初始化各个仿真线程的电路状态。每个仿真线程的电路都会被初始化为不同的状态,每个线程的电路初始状态对应一个save阶段的时间点的状态。这个初始化的操作通过调用任务restore_task实现,所需的数据来源于save阶段所保存的文件。

        restore_task的任务内容如下:

        task?restore_task;

        begin

        restore_reg_task();//初始化寄存器端口的数据

        restore_latch_task();??//初始化锁存器端口的数据

        restore_ram_task();???//初始化RAM的数据

        restore_rom_task();???//初始化ROM的数据

        restore_clk()();??//初始化时钟信号

        end

        endtask

        从restore_task的内容可以得知,当调用此任务时,第一步操作是需要初始化寄存器的数据。使用verilog语言中的force语句把数据赋值给寄存器的各个端口,实现对寄存器状态的初始化,实现方式的部分例子如下:

        force?design.register.Q=save_reg_Q[N];

        force?design.register.CLK=save_reg_CLK[N];

        除了寄存器,还需要初始化锁存器,它的原理跟寄存器是一致的,也是使用force语句把数据赋值给锁存器的各个端口,实现对锁存器状态的初始化。

        寄存器和锁存器的数据初始化后,就可以用verilog语言中的release语句撤销前面的force语句,但对时钟(clock)端口的force语句需要依然保持,因为一旦撤销它们,所有寄存器都会动起来,但暂时还有其他内容需要初始化,所以还需要等待。实现方式的例子如下:releasedesign.register.Q。

        初始化所有RAM的数据。使用verilog语言中的$fscanf或$readmemb系统命令把这些仿真模型内部的变量都初始化为save阶段所保存的数据。实现方式的例子如下:$fscanf(file_id,″%b″,design.RAM.mem[i]);

        同理,ROM的数据也可以用此方式初始化:$fscanf(file_id,″%b″,design.ROM.mem[i]);

        此时,所有的数据都初始化完毕,但系统依然没有进入工作状态,因为clock还没有release,所以最后的步骤就是释放所有的时钟信号。实现方式的例子如下:release?design.register.CLK。

        至此,整个仿真电路已经被初始化为save阶段特定时间点的状态,接着可以以这个初始状态为起点,按照正常的方式开始仿真验证的工作。

        由于每个仿真线程的电路均被初始化为不同的时间点的状态,因此每个仿真线程只需仿真验证两个相邻时间点之间的状态,而这些相互独立的各个仿真线程可以并行执行,因此极大地缩短了仿真的时间。

    关 键 词:
    集成电路 仿真 测试 方法
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:集成电路的仿真测试方法.pdf
    链接地址://www.4mum.com.cn/p-5781987.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03