CN117332733A - 一种定位逻辑系统设计的错误的方法、设备以及存储介质 - Google Patents
一种定位逻辑系统设计的错误的方法、设备以及存储介质 Download PDFInfo
- Publication number
- CN117332733A CN117332733A CN202311047980.6A CN202311047980A CN117332733A CN 117332733 A CN117332733 A CN 117332733A CN 202311047980 A CN202311047980 A CN 202311047980A CN 117332733 A CN117332733 A CN 117332733A
- Authority
- CN
- China
- Prior art keywords
- design
- waveform file
- logic system
- system design
- waveform
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013461 design Methods 0.000 title claims abstract description 142
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000012360 testing method Methods 0.000 claims abstract description 48
- 238000004088 simulation Methods 0.000 description 48
- 238000012795 verification Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 230000005284 excitation Effects 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012938 design process Methods 0.000 description 2
- 238000009792 diffusion process Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 241000543370 Galax Species 0.000 description 1
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/02—Reliability analysis or reliability optimisation; Failure analysis, e.g. worst case scenario performance, failure mode and effects analysis [FMEA]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请实施例提供一种定位逻辑系统设计的错误的方法,包括:仿真第一逻辑系统设计和第二逻辑系统设计以分别获得第一波形文件和第二波形文件,所述第一逻辑系统设计包括第一待测设计,所述第二逻辑系统设计包括第二待测设计,所述第二波形文件包括所述第二待测设计的第二输入激励;将所述第二输入激励施加到所述第一待测设计以获得在所述第二输入激励下的所述第一待测设计的多个信号的参考波形文件;以及比较所述参考波形文件和所述第二波形文件以定位所述第二逻辑系统设计的错误。
Description
技术领域
本申请实施例涉及计算机软件技术领域,尤其涉及一种定位逻辑系统设计的错误的方法、设备以及存储介质。
背景技术
随着电子技术的发展,逻辑系统设计(例如,芯片设计)得到了广泛的应用。而逻辑系统设计的调试通常涉及到仿真波形的调试。例如,对于一个逻辑系统设计,通过仿真工具可以得到一定时间内多个信号的仿真波形图。仿真波形被存储为波形数据库,并且可以通过调试工具来读取该波形数据库以复现仿真波形,并相应地开展逻辑系统设计的调试工作。
在芯片设计的日常开发中,逻辑系统设计的源代码会不断修改迭代,不可避免会引入错误。传统的定位手段可以通过查看仿真波形,人为找到异常点后,逐级手动追踪信号直至找到错误的源头。这种方法主要依赖于人工的经验,耗时耗力。另外还可以通过回溯源代码,重新仿真逻辑系统设计的方法对错误源头进行定位。但是,这些方法都无法解决验证仿真环境变化的问题。手动追踪信号,也无法准确定位到错误的源头。因此,如何快速定位到错误的源头是提高验证效率的关键。
发明内容
本申请的第一方面提供一种定位逻辑系统设计的错误的方法,包括:仿真第一逻辑系统设计和第二逻辑系统设计以分别获得第一波形文件和第二波形文件,所述第一逻辑系统设计包括第一待测设计,所述第二逻辑系统设计包括第二待测设计,所述第二波形文件包括所述第二待测设计的第二输入激励;将所述第二输入激励施加到所述第一待测设计以获得在所述第二输入激励下的所述第一待测设计的多个信号的参考波形文件;以及比较所述参考波形文件和所述第二波形文件以定位所述第二逻辑系统设计的错误。
本申请的第二方面提供一种电子设备。该电子设备包括存储器,用于存储一组指令;以及至少一个处理器,配置为执行该组指令以使得所述电子设备执行如第一方面所述的方法。
本申请的第三方面提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机的一组指令,该组指令用于在被执行时使所述计算机执行如第一方面所述的方法。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请实施例的主机的示意图。
图2示出了根据本申请实施例的仿真工具和调试工具的示意图。
图3示出了一种仿真逻辑系统设计的方法的示意图。
图4示出了一种根据本申请实施例的生成参考波形的方法。
图5示出了根据本申请实施例的一种生成参考波形文件的方法的示意图。
图6示出了根据本申请实施例的一种定位逻辑系统设计中错误的方法的示意图。
图7示出了根据本申请实施例的一种快速定位逻辑系统设计中错误的方法的流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
仿真测试是在运行仿真测试系统的主机上对逻辑系统设计施加各种激励以检测逻辑系统设计是否可以实现预定的功能。
图1示出了根据本申请实施例的主机100的示意图。主机100可以是运行仿真系统的电子设备。如图1所示,主机100可以包括:处理器102、存储器104、网络接口106、外围接口108和总线110。其中,处理器102、存储器104、网络接口106和外围接口108通过总线110实现彼此之间在主机内部的通信连接。
处理器102可以是中央处理器(Central Processing Unit,CPU)、图像处理器、神经网络处理器(NPU)、微控制器(MCU)、可编程逻辑器件、数字信号处理器(DSP)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路。处理器102可以用于执行与本申请描述的技术相关的功能。在一些实施例中,处理器102还可以包括集成为单一逻辑组件的多个处理器。如图1所示,处理器102可以包括多个处理器102a、102b和102c。
存储器104可以配置为存储数据(例如,指令集、计算机代码、中间数据等)。在一些实施例中,用于仿真测试设计的仿真测试系统可以是存储器104中存储的计算机程序。如图1所示,存储器存储的数据可以包括程序指令(例如,用于实现本申请的定位逻辑系统设计的错误的方法的程序指令)以及要处理的数据(例如,存储器可以存储在编译过程产生的临时代码)。处理器102也可以访问存储器存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器104可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘、固态硬盘(SSD)、闪存、存储棒等。
网络接口106可以配置为经由网络向主机100提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、WiFi、近场通信(NFC)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口106可以包括任意数量的网络接口控制器(NIC)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
外围接口108可以配置为将主机100与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
总线110可以被配置为在主机100的各个组件(例如,处理器102、存储器104、网络接口106和外围接口108)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(例如,USB端口、PCI-E总线)等。
需要说明的是,尽管上述主机架构仅示出了处理器102、存储器104、网络接口106、外围接口108和总线110,但是在具体实施过程中,该主机架构还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述主机架构中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
图2示出了根据本申请实施例的仿真工具202和调试工具200的示意图。仿真工具202和调试工具200可以是运行在主机100上的计算机程序。
在芯片设计领域,通常可以利用仿真工具对一个设计进行仿真。仿真工具例如可以是芯华章科技股份有限公司出品的GalaxSim仿真工具。图2示出的示例性仿真工具202可以包括编译器120和仿真器220。编译器120可以将设计(例如,验证系统210)编译为目标代码204,仿真器220可以根据目标代码204进行仿真,并将仿真结果206输出。例如,仿真工具202可以将仿真结果(例如,仿真波形图)经由图1的外围接口108输出到输出设备上(例如,显示在显示器上)。验证系统210可以包括逻辑系统设计210a和验证环境210b。验证环境210b又可以称为测试台(testbench)。例如,验证环境210b可以是UVM环境。
仿真结果206还可以以波形数据库的形式存储。存储有波形数据的波形数据库还可以称为波形文件。
调试工具200也可以读取仿真结果206。调试工具200例如可以是芯华章科技股份有限公司出品的Fusion Debug调试工具。例如,调试工具200可以读取以波形文件存储的仿真结果206,并且生成相应的仿真波形用于调试。调试工具200还可以读取验证系统210的描述(通常是SystemVerilog和Verilog代码),并且显示给用户。调试工具200还可以生成各种图形化界面(例如:调试窗口)以方便用户的调试工作。用户可以向调试工具200发出调试命令(例如,运行验证系统210到某个时刻),调试工具200则将该调试命令施加到仿真工具202以相应地执行。调试工具200还可以读取日志文件。日志文件中可以包括仿真过程的各种信息,包括仿真错误的信息、报错的行号、仿真错误发生的时间等。
可以理解的是,除了与仿真工具202连接,调试工具200还可以与硬件仿真器(emulator)连接。
在逻辑系统设计投入实际运行前,需要将编制的逻辑系统设计利用前述的调试工具200来进行运行调试。调试工具200可以从用户处接收用户指令212,并且做出相应的调试动作。在一些实施例中,用户可以在图形界面中通过点击鼠标来发出用户指令212;在一些实施例中,用户可以在命令行界面中输入命令行来发出用户指令212。若调试过程中发现逻辑系统设计发生异常,则需要针对所发现的异常,进一步诊断,找出原因和具体的异常的源头位置,并进行修正,保证逻辑系统设计的鲁棒性。
在集成电路领域,仿真可以是指将逻辑系统设计进行编译之后使用仿真工具运行,以对设计的各种功能进行仿真测试。用于供专门应用的集成电路(ApplicationSpecific Integrated Circuit,简称ASIC)或者片上系统芯片(System On Chip,简称SOC)的设计。因此,在仿真中被测试或验证的设计又可以称为待测设计(Design Under Test,简称DUT)。
在芯片设计的日常开发中,待测设计的源代码会不断修改迭代,不可避免地引入错误。传统的定位手段可以通过查看仿真波形,人为找到异常点后,逐级手动追踪信号直至找到错误的源头。这种方法主要依赖于人工的经验,耗时耗力。另外还可以通过回溯源代码,重新仿真逻辑系统设计的方法对错误源头进行定位。
但是,在实际验证环境中,主要用随机激励对测试台进行测试。由于激励是随机的,因此在迭代后的待测设计中发现了问题,无法直接和旧的待测设计下的仿真结果进行比对。若是直接施加新的激励在旧的待测设计中,则有可能导致旧的待测设计后续的仿真过早结束。另外,待测设计中的错误往往会逐级扩散,人工逐级手动追踪信号往往无法及时有效地定位到错误源头。
因此如何在验证环境变化的情况下,快速准确地定位逻辑系统设计中的错误,是亟需解决的问题。
图3示出了一种仿真逻辑系统设计的方法的示意图。
如图3所示,逻辑系统设计302可以包括DUT 3022和TB 3024。DUT 3022可以是完整的芯片设计或者是完整芯片设计的一部分。TB 3024可以用于向DUT 3022提供测试激励,确定测试结果,并且生成测试反馈(例如,测试日志、错误报告等)。
仿真工具202可以读取并编译逻辑系统设计302的描述(例如,源代码),并生成可执行文件用于仿真。
TB 3024可以向DUT 3022施加多个激励信号。多个激励信号一般是分别施加到DUT的各个端口上的。仿真器220中运行的DUT 3022会依次处理多个激励信号。在DUT处理完多个激励信号后,DUT输出端会将输出信号施加到TB,对输出信号进行校验,从而确认是否满足逻辑系统设计的要求。如图3所示,TB 3024中的检查(Checker)模块会对DUT 3022的输出信号进行校验。可以理解,通常DUT 3022处理TB 3024施加的多个激励信号以产生的输出信号是可以通过TB 3024的校验的。容易理解,若DUT 3022处理的不是TB 3024施加的多个激励信号,则DUT 3022的输出信号可能不会通过TB 3024的检验。若校验不通过,则无法继续后面的仿真流程。
待仿真结束,DUT 3022会将仿真数据存储在存储器104中。后续仿真器220可以根据存储器104中的仿真数据,生成波形文件。波形文件可以包括测试日志、DUT每个端口的输出波形和DUT接收到的多个激励信号等。
图4示出了根据本申请实施例的一种生成参考波形的方法。
如图4所示,初始逻辑系统设计302可以包括DUT 3022和TB 3024,修订逻辑系统设计304可以包括DUT 3042和TB 3044。修订逻辑系统设计304是在初始逻辑系统设计302的基础上更新后得到的。修订逻辑系统设计304可以是修改初始逻辑系统设计302中的TB 3024和DUT 3022后得到的。
可以理解,初始逻辑系统设计302通常是被认为是正确的,而修订逻辑系统设计304的错误往往在对初始逻辑系统设计302修改后被引入的。例如,在初始逻辑系统设计302的DUT 3022被修改得到DUT 3042后,引入了一些错误。
可以理解的是,DUT 3042和DUT 3022在框架结构上可以是相同的。换而言之,DUT3042和DUT 3022的输出和输入端口、内部模块结构可以是对应一致的。
仿真工具202可以仿真初始逻辑系统设计302得到初始波形文件3026,并且仿真修订逻辑系统设计304得到修订波形文件3046。存储初始波形文件3026和修订波形文件3046于存储器104中。
如图4所示,在初始逻辑系统设计302的仿真过程中,TB 3024可以向DUT 3022施加一组激励信号(例如,激励信号a和b)。在修订逻辑系统设计304的仿真过程中,TB 3044可以向DUT 3042施加一组激励信号(例如,激励信号c和d)。
修订波形文件3046可以包括另一组激励信号(例如,激励信号c和d)。从修订波形文件3046中提取激励信号c和d并且施加到DUT 3022用于仿真DUT 3022。DUT 3022根据激励信号c和d可以产生参考波形文件400。
由此可见,相比于初始波形文件3026,参考波形文件400最大的区别在于待测设计从DUT 3042换回了DUT 3022。因此,初始波形文件3026和参考波形文件400的区别仅由待测设计的修改引起,而其他变量(包括测试台和输入的激励)都是一样的。相应地,初始波形文件3026和参考波形文件400的区别可以反映待测设计的修改情况,例如,反映修改引起的错误。因此,通过比较初始波形文件3026和参考波形文件400可以定位到DUT 3042中的错误。
图5示出了根据本申请实施例的一种生成参考波形文件的方法的示意图。
如图5所示,提取波形文件3046中的激励信号c和d,并施加到DUT 3022的输入端。由于DUT 3022和DUT 3024的输出和输入端口、内部模块结构可以是对应一致的,激励信号c可以施加到DUT 3022的a输入端,激励信号d可以施加到DUT 3022的b输入端。
待DUT 3022仿真结束后,会在输出端分别输出波形,即参考波形文件400。将参考波形文件400存储在存储器104中。DUT 3022仿真完成后,TB 3024会读取输出端e和f的输出波形并且校验。由于输入的激励信号已经改变,可能导致DUT 3022的输出触发TB 3024中的报错机制(例如,检查(Checker)模块),并导致仿真结束。
因此,为了使得TB 3024误以为结果正确并且保持仿真的持续运行,将来自初始波形文件3026的正确输出施加到DUT 3022输出端(也就是,TB 3024的输入端),从而TB 3024认为DUT 3022的输出正确并保持仿真的持续运行直到产生完整的参考波形文件400。
图6示出了根据本申请实施例的一种定位逻辑系统设计中错误的方法的示意图。
调试工具200可以从存储器104读取参考波形文件400和修订波形文件3046。
在一些实施例中,例如,图6中DUT 3022的输出端b可以和DUT 3042的输出端B对应。其中,DUT 3022可以从输入端接收到激励信号d,处理该激励信号d并从输出端口b输出波形信号,存储到参考波形文件400中。同理,DUT 3024可以从输入端接收到激励信号d,处理该激励信号d并从输出端口B输出波形信号,存储到修订波形文件3046中。如图6所示,DUT3022中的模块502可以和DUT 3042中的模块602相对应,DUT 3022中的模块504可以和DUT3042中的模块604相对应,DUT 3022中的模块506可以和DUT 3042中的模块606相对应。
DUT内部通常有各个独立的逻辑模块。逻辑模块单元的连接关系通常可以是树状的。如图6所示,DUT 3022内部有多个独立的逻辑模块单元。其中,模块504的输入是模块506的输出,模块504的输出是模块502的输入。同样,DUT 3024内部也有与DUT 3022对应的逻辑模块单元以及逻辑模块单元间的连接关系。
DUT输入端分别接收多个激励信号。从输入端到输出端,逐个逻辑模块进行仿真。如图6所示,模块506的仿真结果传送到模块504,模块504的仿真结果再传送到模块502。
DUT的输出端的输出波形,可以是距离端口最近的逻辑模块的输出波形。如图5所示,DUT 3022的端口b的输出波形可以是模块502的输出波形,DUT 3042的端口B的输出波形可以是模块602的输出波形。
调试工具200基于参考波形文件400和修订波形文件3046,从时间上比对DUT 3022和DUT 3042每个输出端口的信号波形。如图6所示,调试工具202从时间上比对DUT 3022的b端口的输出波形和DUT 3042的B端口的输出波形。DUT的输出波形和DUT内部的逻辑模块结构紧密相关。每一个逻辑模块都对应着输出端口的一段输出信号波形。
调试工具200从时间上找到参考波形文件400和修订波形文件3046的差异点。差异点可以是波形上出现的首个差异,例如,包括端口b和端口B的输出波形差异点。比对端口b输出的参考波形和端口B输出的波形,寻找到时间上第一个差异点,是端口b和端口B的输出波形差异点。调试工具200根据端口b和端口B的输出波形的差异点,寻找对应该差异点DUT内部的逻辑模块。可以理解,DUT内部每个逻辑模块的仿真波形都会体现在输出波形文件中。
如图6所示,根据端口b和端口B的输出波形差异点,调试工具200找到DUT 3022内部对应该差异点的逻辑模块单元502。由于DUT 3022和DUT 3042内部结构可以是一致的,调试工具可以找到DUT 3042内部的逻辑单元模块602,该模块对应着DUT 3022的逻辑模块单元502。
调试工具200从出现波形差异点的逻辑模块,向输入端逐级比对逻辑单元模块的输入信号和输出信号。如图5所示,模块502和模块602的输出信号不同,调试工具200比对模块502和模块602的输入信号。若模块502和模块602的输入信号也不同,比较模块504和模块604的输入信号是否相同。其中,模块504的输出信号是模块502的输入信号,模块604的输出信号是模块602的输入信号。若模块504的输入信号和模块604的输入信号也不相同,则比较模块506和模块606的输入信号。若模块506和模块606的输入信号相同,则DUT 3042中的模块606为错误的根本原因。若模块506和模块606的输入信号不同,则继续向输入端追溯,直至找到输入信号相同,输出不同的逻辑模块。该模块为待测设计3042中的错误根源。
本申请实施例通过比较参考波形文件和修订波形文件,克服了芯片设计过程中验证环境不断变化的因素。通过比较对应波形的内部逻辑模块的输入和输出,找到错误源头,解决了人工手动追踪错误耗时耗力、依赖人力的问题,也解决了错误扩散难以人工定位的问题。
本申请实施例还提供一种快速定位逻辑系统设计中错误的方法。
图7示出了根据本申请实施例的一种快速定位逻辑系统设计中错误的方法700的流程图。方法700可以由图1的主机100执行。方法700可以包括如下步骤。
在步骤702,仿真第一逻辑系统设计(例如,图4中的逻辑系统设计302)和第二逻辑系统设计(例如,图4中的逻辑系统设计304)以分别获得第一波形文件(例如,图4中的初始波形文件3026)和第二波形文件(例如,图4中的修订波形文件3046)。
在一些实施例中,所述第一逻辑系统设计包括第一待测设计(例如,图4中的DUT3022),所述第二逻辑系统设计包括第二待测设计(例如,图4中的DUT 3042),所述第二波形文件包括所述第二待测设计的第二输入激励(例如,图4中的激励信号c和d)。
在一些实施例中,第二逻辑系统设计是在第一逻辑系统设计的基础上修改后得到的。尤其是更改第一逻辑系统设计中的待测设计,得到第二逻辑系统设计。
在一些实施例中,如图4所示,更改逻辑系统设计302中的测试台3024和待测设计3022,尤其是待测设计3022,得到了逻辑系统设计304。
在一些实施例中,第一波形文件和第二波形文件可以包括测试日志、待测设计每个端口的输出波形和待测设计接收到的多个激励信号等。
在步骤704,将第二输入激励(例如,图4中的激励信号c和d)施加到第一待测设计(例如,图4中的DUT 3022)以获得在第二输入激励下的所述第一待测设计的多个信号的参考波形文件(例如,图4中的参考波形文件400)。
在一些实施例中,第二波形文件可以包括第二输入激励。如图4所示,修订波形文件3046可以包括测试台3044施加给待测设计3042的激励信号b。因此,可以从修订波形文件3046中提取出激励信号b,施加到待测设计3022,生成参考波形文件400。
在一些实施例中,如图5所示,在生成参考波形文件400后,调用存储器104中的初始波形文件3026。重新施加初始波形文件3026到待测设计3022的输出端,保证后续逻辑系统设计302的仿真继续运行。
在步骤706,比较所述参考波形文件(例如,图4或图6中的参考波形文件400)和所述第二波形文件(例如,图4或图6中的修订波形文件3046)以定位所述第二逻辑系统设计(例如,图4中的逻辑系统设计304)的错误。
在一些实施例中,调试工具200从时间上比较所述参考波形文件和所述第二波形文件。如图6所示,调试工具200从时间上找到待测设计3022端口c的输出波形和待测设计3042端口d的输出波形的差异点。进一步找到对应该差异点的内部逻辑模块。
在一些实施例中,调试工具200向输入端溯源,比较差异点对应的模块的输入信号和输出信号。直至找到输入信号相同,输出信号不同的模块,为根源错误模块。如图6所示,比较模块502和模块402的输入信号。若不同,则继续比较模块404和模块504的输入信号,直至找到输入信号相同,输出不同的逻辑模块。该模块为待测设计中的错误根源。
本申请实施例通过比较参考波形文件和修订波形文件,克服了芯片设计过程中验证环境不断变化的因素。通过比较对应波形的内部逻辑模块的输入和输出,找到错误源头,解决了人工手动追踪错误耗时耗力、依赖人力的问题,也解决了错误扩散难以人工定位的问题。
本申请实施例还提供一种电子设备。该电子设备可以是图1的主机100。该电子设备可以包括存储器,用于存储一组指令;以及至少一个处理器,配置为执行该组指令以使得所述电子设备执行方法700。
本申请实施例还提供一种非暂态计算机可读存储介质。所述非暂态计算机可读存储介质存储计算机的一组指令,该组指令用于在被执行时使所述计算机执行方法700。
上述对本申请的一些实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请的不同方面的许多其它变化,为了简明它们没有在细节中提供。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (8)
1.一种定位逻辑系统设计的错误的方法,包括:
仿真第一逻辑系统设计和第二逻辑系统设计以分别获得第一波形文件和第二波形文件,所述第一逻辑系统设计包括第一待测设计,所述第二逻辑系统设计包括第二待测设计,所述第二波形文件包括所述第二待测设计的第二输入激励;
将所述第二输入激励施加到所述第一待测设计以获得在所述第二输入激励下的所述第一待测设计的多个信号的参考波形文件;
以及
比较所述参考波形文件和所述第二波形文件以定位所述第二逻辑系统设计的错误。
2.根据权利要求1所述的方法,其中,所述第一待测设计包括第一模块,所述第一模块包括第一输入信号和第一输出信号,比较所述参考波形文件和所述第二波形文件以定位所述第二逻辑系统设计的错误进一步包括:
从所述参考波形文件和所述第二波形文件分别读取与所述第一输出信号对应的第一参考输出波形和第一输出波形;
确定所述第一参考输出波形和所述第一输出波形是否相同;
响应于确定所述第一参考输出波形和所述第一输出波形不相同,确定所述第一模块的第一输入信号在所述参考波形文件和所述第二波形文件中是否相同。
3.根据权利要求2所述的方法,其中,所述第一待测设计还包括第二模块,所述第二模块包括第二输入信号和第二输出信号,所述第二输出信号连接到所述第一输入信号,比较所述参考波形文件和所述第二波形文件以定位所述第二逻辑系统设计的错误进一步包括:
响应于所述第一模块的第一输入信号在所述参考波形文件和所述第二波形文件中不相同,确定所述第二模块的第二输入信号在所述参考波形文件和所述第二波形文件中是否相同。
4.根据权利要求2所述的方法,其中,比较所述参考波形文件和所述第二波形文件以定位所述第二逻辑系统设计的错误进一步包括:
响应于确定所述第二模块的第二输入信号在所述参考波形文件和所述第二波形文件中相同,确定所述第二待测设计中与所述第二模块对应的模块为错误模块。
5.根据权利要求1所述的方法,其中,将所述第二输入激励施加到第一待测设计以获得在第二输入激励下的所述第一待测设计的多个信号的参考波形文件,进一步包括:
将所述第一波形文件中的所述第一待测设计的输出波形施加到所述第一待测设计的输出端。
6.根据权利要求1所述的方法,其中,
所述第二逻辑系统设计从所述第一逻辑系统设计修改得到。
7.一种电子设备,包括:
存储器,用于存储一组计算机指令;以及
处理器,用于执行所述计算机指令以使得所述电子设备执行如权利要求1至6中任意一项所述的方法。
8.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行根据权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311047980.6A CN117332733A (zh) | 2023-08-18 | 2023-08-18 | 一种定位逻辑系统设计的错误的方法、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311047980.6A CN117332733A (zh) | 2023-08-18 | 2023-08-18 | 一种定位逻辑系统设计的错误的方法、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117332733A true CN117332733A (zh) | 2024-01-02 |
Family
ID=89277994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311047980.6A Pending CN117332733A (zh) | 2023-08-18 | 2023-08-18 | 一种定位逻辑系统设计的错误的方法、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117332733A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090125766A1 (en) * | 2007-11-09 | 2009-05-14 | Sean Safarpour | Method, system and computer program for hardware design debugging |
US20130055174A1 (en) * | 2011-08-23 | 2013-02-28 | Fritz A. Boehm | Method for verifying functional equivalence between a reference ic design and a modified version of the reference ic design |
CN114154444A (zh) * | 2021-11-12 | 2022-03-08 | 山东云海国创云计算装备产业创新中心有限公司 | 一种芯片仿真验证方法、系统、装置及可读存储介质 |
CN114266210A (zh) * | 2021-12-20 | 2022-04-01 | 眸芯科技(上海)有限公司 | 芯片ate测试中的wgl文件处理方法及应用 |
CN114548031A (zh) * | 2022-02-25 | 2022-05-27 | 长鑫存储技术有限公司 | 信号检测方法和装置 |
CN114662427A (zh) * | 2022-03-08 | 2022-06-24 | 芯华章科技股份有限公司 | 一种逻辑系统设计的调试方法及设备 |
CN115827636A (zh) * | 2022-12-19 | 2023-03-21 | 芯华章科技(厦门)有限公司 | 存储及从波形数据库读取逻辑系统设计的仿真数据的方法 |
CN115827568A (zh) * | 2022-11-23 | 2023-03-21 | 芯华章科技(北京)有限公司 | 获取逻辑系统设计的数据的方法、电子设备和存储介质 |
-
2023
- 2023-08-18 CN CN202311047980.6A patent/CN117332733A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090125766A1 (en) * | 2007-11-09 | 2009-05-14 | Sean Safarpour | Method, system and computer program for hardware design debugging |
US20130055174A1 (en) * | 2011-08-23 | 2013-02-28 | Fritz A. Boehm | Method for verifying functional equivalence between a reference ic design and a modified version of the reference ic design |
CN114154444A (zh) * | 2021-11-12 | 2022-03-08 | 山东云海国创云计算装备产业创新中心有限公司 | 一种芯片仿真验证方法、系统、装置及可读存储介质 |
CN114266210A (zh) * | 2021-12-20 | 2022-04-01 | 眸芯科技(上海)有限公司 | 芯片ate测试中的wgl文件处理方法及应用 |
CN114548031A (zh) * | 2022-02-25 | 2022-05-27 | 长鑫存储技术有限公司 | 信号检测方法和装置 |
CN114662427A (zh) * | 2022-03-08 | 2022-06-24 | 芯华章科技股份有限公司 | 一种逻辑系统设计的调试方法及设备 |
CN115827568A (zh) * | 2022-11-23 | 2023-03-21 | 芯华章科技(北京)有限公司 | 获取逻辑系统设计的数据的方法、电子设备和存储介质 |
CN115827636A (zh) * | 2022-12-19 | 2023-03-21 | 芯华章科技(厦门)有限公司 | 存储及从波形数据库读取逻辑系统设计的仿真数据的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022537620A (ja) | 人工知能チップ検証 | |
CN112417798B (zh) | 一种时序测试方法、装置、电子设备及存储介质 | |
CN111950212A (zh) | 高效的多模式验证平台及方法 | |
CN114662427B (zh) | 一种逻辑系统设计的调试方法及设备 | |
CN110632499A (zh) | 基于测试对象的测试向量生成方法及存储介质 | |
US6360353B1 (en) | Automated alternating current characterization testing | |
CN114548027A (zh) | 在验证系统中追踪信号的方法、电子设备及存储介质 | |
CN117094269B (zh) | 一种验证方法、装置、电子设备及可读存储介质 | |
CN115470125B (zh) | 基于日志文件的调试方法、设备以及存储介质 | |
CN115827636B (zh) | 存储及从波形数据库读取逻辑系统设计的仿真数据的方法 | |
CN115964237A (zh) | 一种针对中央处理器cpu的功能及性能测试方法及装置 | |
CN117667655A (zh) | 验证系统、验证方法、电子设备以及存储介质 | |
CN117332733A (zh) | 一种定位逻辑系统设计的错误的方法、设备以及存储介质 | |
CN115176233B (zh) | 以确定性顺序执行测试 | |
CN112506806B (zh) | 用于调试程序的方法、电子设备及存储介质 | |
CN112560393B (zh) | Eda软件工具的比对验证方法及装置 | |
CN117313596A (zh) | 一种定位逻辑系统设计的错误的方法、设备以及存储介质 | |
CN115510782B (zh) | 定位验证错误的方法、电子设备和存储介质 | |
CN116861829B (zh) | 用于定位逻辑系统设计中错误的方法、电子设备 | |
CN112131806A (zh) | 验证设计的编译方法、电子设备及存储介质 | |
CN117313650B (zh) | 一种芯片测试验证方法及其应用装置 | |
CN115292102B (zh) | 仿真方法、电子设备、可读存储介质 | |
CN117454835A (zh) | 保存和读取波形数据的方法、电子设备以及存储介质 | |
CN112580282B (zh) | 用于集成电路设计验证的方法、装置、设备以及存储介质 | |
CN107679266A (zh) | 闪存电路的仿真方法及仿真装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |