CN113343629A - 集成电路验证方法、代码生成方法、系统、设备和介质 - Google Patents
集成电路验证方法、代码生成方法、系统、设备和介质 Download PDFInfo
- Publication number
- CN113343629A CN113343629A CN202110713130.XA CN202110713130A CN113343629A CN 113343629 A CN113343629 A CN 113343629A CN 202110713130 A CN202110713130 A CN 202110713130A CN 113343629 A CN113343629 A CN 113343629A
- Authority
- CN
- China
- Prior art keywords
- dpi
- integrated circuit
- modeling language
- verification
- data
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
-
- 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/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/396—Clock trees
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)
- Computer Networks & Wireless Communication (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
提供在SV语言环境中调用C语言环境的集成电路验证/代码生成方法、系统、设备和介质。代码生成方法包括:在C语言中的生成存储被存储在哈希数组中的通用数据包的通用类;在C语言中生成对哈希数组的控制函数;在C语言中生成定义C语言仿真验证模型计算的回调队列,以便调用控制函数,通用类中还包括回调队列接口,被生成为自动运行用于集成电路验证的回调队列;在C语言中生成C语言DPI和在SV语言中生成SV语言DPI,使得两个DPI交换数据。验证包括:监听RTL的接口所对应的待验证数据;SV语言DPI将所监听的数据传送给C语言DPI,存入通用数据包;回调队列接口运行回调队列,以调用控制函数,并得到C语言计算的结果;SV语言DPI从C语言DPI接收结果。
Description
技术领域
本申请涉及集成电路设计领域,且更具体地,涉及在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的集成电路验证方法、系统、设备和可读介质、以及在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的代码生成方法、系统、设备和可读介质。
背景技术
验证(verification)是现代数字集成电路设计流程中不可或缺且至关重要的一环,其目的是为了保证设计功能按照既定的设计而正确的实现。在设计阶段,设计工程师根据需求说明书细化为各个元件的特性列表,将其转化为设计规格说明书。验证工程师则根据特性列表,写出验证规格说明书。当设计说明书完成后,设计人员开始使用用于硬件设计的硬件描述语言、例如Verilog(或者VHDL,这里以Verilog为例)将特性列表转换成寄存器传输级(RTL)代码。验证人员则使用用于集成电路验证的硬件描述语言、例如SystemVerilog(简称SV)或用于集成电路验证的行为建模语言、例如C或C++语言搭建验证模型。
需要更快捷方便地完成集成电路验证的技术方案。
发明内容
根据本发明的一个方面,提供一种在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的集成电路验证方法,其中,获得了在行为建模语言的仿真验证环境中的存储用于集成电路验证的通用数据包的通用类,其中该通用数据包被存储在哈希数组中;获得了在行为建模语言的仿真验证环境中的对所述哈希数组的多个控制函数;获得了在行为建模语言的仿真验证环境中的定义用于集成电路验证的行为建模语言仿真验证模型计算的回调队列,以便对所述哈希数组的多个控制函数中的至少一个控制函数进行调用,其中所述通用类中还包括回调队列接口,所述回调队列接口被生成为自动运行所述用于集成电路验证的回调队列;获得了在行为建模语言的仿真验证环境中的行为建模语言域公共直接编程接口DPI和在硬件描述语言的仿真验证环境中的硬件描述语言域公共DPI,其中硬件描述语言域公共DPI与所述行为建模语言域公共DPI相互交换数据;其中,所述集成电路验证方法包括:在集成电路验证过程中,监听寄存器传输级RTL的各个接口所对应的待验证数据;所述硬件描述语言域公共DPI将所监听的数据传送给所述行为建模语言域公共DPI,存入哈希数组中存储的所述通用数据包中;所述回调队列接口自动运行所述用于集成电路验证的回调队列,以调用对所述哈希数组的多个控制函数中的至少一个控制函数,并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果;所述硬件描述语言域公共DPI从所述行为建模语言域公共DPI接收用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
根据本发明的一个方面,提供一种在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的集成电路验证系统,其中,获得了在行为建模语言的仿真验证环境中的存储用于集成电路验证的通用数据包的通用类,其中该通用数据包被存储在哈希数组中;获得了在行为建模语言的仿真验证环境中的对所述哈希数组的多个控制函数;获得了在行为建模语言的仿真验证环境中的定义用于集成电路验证的行为建模语言仿真验证模型计算的回调队列,以便对所述哈希数组的多个控制函数中的至少一个控制函数进行调用,其中所述通用类中还包括回调队列接口,所述回调队列接口被生成为自动运行所述用于集成电路验证的回调队列;获得了在行为建模语言的仿真验证环境中的行为建模语言域公共直接编程接口DPI和在硬件描述语言的仿真验证环境中的硬件描述语言域公共DPI,其中硬件描述语言域公共DPI与所述行为建模语言域公共DPI相互交换数据;其中,所述集成电路验证系统包括:使得在集成电路验证过程中,监听寄存器传输级RTL的各个接口所对应的待验证数据的装置;使得所述硬件描述语言域公共DPI将所监听的数据传送给所述行为建模语言域公共DPI、存入哈希数组中存储的所述通用数据包中的装置;使得所述回调队列接口自动运行所述用于集成电路验证的回调队列、以调用对所述哈希数组的多个控制函数中的至少一个控制函数、并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的装置;使得所述硬件描述语言域公共DPI从所述行为建模语言域公共DPI接收所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的装置。
根据本发明的一个方面,提供一种计算机可读介质,存储了计算机可执行代码,以便在处理器的执行下进行在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的集成电路验证方法。
根据本发明的一个方面,提供一种在硬件描述语言的仿真验证环境中调用行为建模语言的仿真验证环境的集成电路验证设备,包括:
处理器;
存储器,存储了计算机可执行代码,以便在处理器的执行下进行在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的集成电路验证方法。
根据本发明的一个方面,提供一种在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的代码生成方法,包括在行为建模语言的仿真验证环境中生成存储用于集成电路验证的通用数据包的通用类,其中该通用数据包被存储在哈希数组中;在行为建模语言的仿真验证环境中生成对所述哈希数组的多个控制函数;在行为建模语言的仿真验证环境中生成定义用于集成电路验证的行为建模语言仿真验证模型计算的回调队列,以便对所述哈希数组的多个控制函数中的至少一个控制函数进行调用,其中所述通用类中还包括回调队列接口,所述回调队列接口被生成为自动运行所述用于集成电路验证的回调队列;在行为建模语言的仿真验证环境中生成行为建模语言域公共直接编程接口DPI,在硬件描述语言的仿真验证环境中生成硬件描述语言域公共DPI,使得硬件描述语言域公共DPI与所述行为建模语言域公共DPI相互交换数据。
根据本发明的一个方面,提供一种在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的代码生成系统,使得包括在行为建模语言的仿真验证环境中生成存储用于集成电路验证的通用数据包的通用类的装置,其中该通用数据包被存储在哈希数组中;使得在行为建模语言的仿真验证环境中生成对所述哈希数组的多个控制函数的装置;使得在行为建模语言的仿真验证环境中生成定义用于集成电路验证的行为建模语言仿真验证模型计算的回调队列、以便对所述哈希数组的多个控制函数中的至少一个控制函数进行调用的装置,其中所述通用类中还包括回调队列接口,所述回调队列接口被生成为自动运行所述用于集成电路验证的回调队列;使得在行为建模语言的仿真验证环境中生成行为建模语言域公共直接编程接口DPI、在硬件描述语言的仿真验证环境中生成硬件描述语言域公共DPI、使得硬件描述语言域公共DPI与所述行为建模语言域公共DPI相互交换数据的装置。
根据本发明的一个方面,提供一种计算机可读介质,存储了计算机可执行代码,以便在处理器的执行下进行在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的代码生成方法。
根据本发明的一个方面,提供一种在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的代码生成设备,包括:处理器;存储器,存储了计算机可执行代码,以便在处理器的执行下进行在硬件描述语言的仿真验证环境中调用行为建模语言的仿真验证环境的代码生成方法。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请的实施例的在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的代码生成方法的流程图。
图2示意性地示出了用根据本申请的实施例的代码生成方法生成的代码的示意图。
图3是示意性地描述通用类、C语言域公共DPI和SV语言域公共DPI的详细内容的示意图。
图4示出了根据本申请的实施例的在用于集成电路验证的硬件描述语言(文中用SV语言来举例)的仿真验证环境中调用用于集成电路验证的行为建模语言(文中用C语言来举例)的仿真验证环境的集成电路验证方法的流程图。
图5示出了根据本申请的实施例的在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的代码生成系统的方框图。
图6示出了根据本申请的实施例的在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的代码生成设备的方框图。
图7示出了根据本申请的实施例的一种计算机可读介质的硬件图。
图8示出了根据本申请的实施例的在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的集成电路验证系统的方框图。
图9示出了根据本申请的实施例的在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的集成电路验证设备的方框图。
图10示出了根据本申请的实施例的一种计算机可读介质的硬件图。
具体实施方式
现在将详细参照本发明的具体实施例,在附图中例示了本发明的例子。尽管将结合具体实施例描述本发明,但将理解,不是想要将本发明限于描述的实施例。相反,想要覆盖由所附权利要求限定的在本发明的精神和范围内包括的变更、修改和等价物。应注意,这里描述的方法步骤都可以由任何功能块或功能布置来实现,且任何功能块或功能布置可被实现为物理实体或逻辑实体、或者两者的组合。
芯片设计分为前端设计和后端设计,前端设计(也称逻辑设计)和后端设计(也称物理设计)并没有统一严格的界限,涉及到与工艺有关的设计就是后端设计。
芯片设计的前端设计分为如下几个步骤:
1.规格制定
提出的设计要求,包括芯片需要达到的具体功能和性能方面的要求。
2.详细设计
根据规格要求,提供设计解决方案和具体实现架构,划分模块功能。
3.硬件描述语言编码
使用硬件描述语言(VHDL或Verilog HDL)将模块功能以代码来描述实现,也就是将实际的硬件电路功能通过硬件描述语言描述出来,形成寄存器传输级(RTL)代码。
4.仿真验证
仿真验证就是检验上述编码设计的正确性,检验的标准就是是否符合第一步中制定的规格。即设计是否精确地满足了规格中的所有要求,直到验证结果显示完全符合规格标准。
5.逻辑综合(设计编译器)
仿真验证通过之后,进行逻辑综合。逻辑综合的结果就是把设计实现的硬件描述语言(例如HDL)代码翻译成门级网表netlist。综合需要设定约束条件,即综合出来的电路在面积、时序等目标参数上达到的标准。一般来说,综合完成后需要再次做仿真验证(这个也称为后仿真,之前的称为前仿真)。
6.静态时序分析
静态时序分析(Static Timing Analysis,STA),这也属于验证范畴,它主要是在时序上对电路进行验证,检查电路是否存在建立时间(setup time)和保持时间(holdtime)的违例(violation),如果存在违例,则验证不通过。
7.形式验证
这也是验证范畴,它是从功能上(STA是时序上)对综合后的网表进行验证。常用的就是等价性检查方法,以功能验证后的HDL设计为参考,对比综合后的网表功能,他们是否在功能上等价。这样做是为了保证在逻辑综合过程中没有改变原先HDL描述的电路功能。
芯片设计的后端设计包括如下几个步骤:
1.可测性设计(Design For Test,DFT)。芯片内部往往都自带测试电路,DFT的目的就是在设计的时候就考虑将来的测试。DFT的常见方法就是,在设计中插入扫描链,将非扫描单元(如寄存器)变为扫描单元。
2.布局规划(FloorPlan)
布局规划就是放置芯片的宏单元模块,在总体上确定各种功能电路的摆放位置,如知识产权核(IP)模块、随机存取存储器(RAM)、输入/输出(I/O)引脚等等。布局规划会直接影响芯片最终的面积。
3.时钟树综合(Clock Tree Synthesis,CTS)
时钟树综合就是时钟的布线。由于时钟信号在数字芯片的全局指挥作用,它的分布应该是连到各个寄存器单元,从而使时钟从同一个时钟源到达各个寄存器时的时钟延迟差异最小。
4.布线(Place&Route)
布线就是普通信号布线了,包括各种标准单元(基本逻辑门电路)之间的走线。
5.寄生参数提取
由于导线本身存在的电阻,相邻导线之间的互感、耦合电容在芯片内部会产生信号噪声、串扰和反射。这些效应会产生信号完整性问题,导致信号电压波动和变化,如果严重就会导致信号失真错误。提取寄生参数进行再次的分析验证,来分析信号完整性问题,避免信号失真错误。
6.版图物理验证
对完成布线的物理版图进行功能和时序上的验证,即将版图与逻辑综合后的门级电路图进行对比验证;设计规则检查(Design Rule Checking,DRC):检查连线间距,连线宽度等是否满足工艺要求,电气规则检查(Electrical Rule Checking,ERC):检查短路和开路等电气规则违例;等等。
还包括电路功耗分析、以及产生的可制造性设计(DFM)问题。
物理版图验证完成也就是整个芯片设计阶段完成,接下来进行芯片制造。将物理版图交给芯片代工厂在晶圆硅片上制造出实际的电路,再进行封装和测试,就得到了集成电路芯片。
本申请涉及集成电路的验证领域。随着芯片规模的增大,芯片设计中验证需要的时间越来越长,占整个设计周期的比例越来越大。为了提高验证速度,出现各种自动化的验证语言(如SystemVerilog(SV)等)和验证工具(这些验证工具大部分都支持随机验证)和各种验证方法学,如开放验证方法(Open Verification Methodology,OVM)和验证方法手册(Verification Methodology Manual,VMM)。
SV语言是最近10多年大力发展的特殊应用集成电路(Application SpecificIntegrated Circuit,ASIC)验证语言,它相比C语言有诸多优点。SV也是一种面向对象的编程语言,它的语法结构跟C语言类似,完美地继承了C语言的优点,但是又比C语言更简单,且能够全部兼容Verilog的语法,更加贴合硬件描述,因此被用来广泛的用作大规模集成电路的验证,也受到了各大电子设计自动化(Electronic design automation,EDA)厂商的大力支持。
虽然SV语言有如此之多的优势,但是C语言也在验证中被广泛运用。C语言的应用主要有以下几个方面:
1.在带有各种中央处理单元(central processing unit,CPU)的片上系统(System on Chip,SoC)中,CPU指令的执行需要把C语言代码编译之后传递给CPU使用。
2.在各种算法芯片中,需要使用算法开发人员所提供的C语言模型来对芯片电路进行验证。算法人员不具备相关的ASIC语言开发经验,他们多用C语言进行模型开发。
3.在某些芯片中需要开发一套C语言的模型来对芯片的各种性能指标进行评估。
4.由于SV语言的历史相对来说比较短,在SV语言广泛应用之前,有很多已经存在的C语言模型需要使用在SV语言搭建的验证平台中。
所以在现在的仿真验证中不可避免地会出现SV语言的验证平台跟C语言的行为模型之间的交互。提高它们之间交互的效率能够降低芯片验证成本,加速验证的收敛。
在当前的主流验证SV语言里面如果要运行C语言生成的模型实现动态的验证,传统的解决方法是为调用C语言域中的多个函数,在C语言域中生成该多个函数对应的多个直接编译接口(Direct Programming Interface,DPI),且在SV语言域中生成调用该多个函数的多个DPI,从而在SV语言域的仿真平台里面来调用C语言域中的某个DPI来调用C语言域中的某个函数,从而实现SV语言的仿真平台和C语言生成的行为模型的协同工作。
传统技术的SV语言的仿真平台和C语言生成的行为模型的协同工作的解决方案带来以下几个问题:
1.验证人员需要对每个模块和接口生成与之对应的DPI,增加了验证人员的代码生成工作量和调试的时间。
2.可扩展性不好,一旦接口有所改动,就需要手动再去更新一次所有的DPI的定义。需要耗费较大的人力,影响项目进度。
因此为了解决上述问题,本文提出了一种新型的集成电路验证方法和代码生成方法,该方法在包含C语言模型的仿真验证环境中能够简化验证方法,减少代码生成数量,提高了可扩展性和易用性,使得验证代码的质量能够快速收敛,极大的提高了验证效率,降低了验证成本。
众所周知,用于集成电路验证的硬件描述语言包括例如SystemVerilog(简称SV)等,且用于集成电路验证的行为建模语言包括例如C或C++语言搭建验证模型等,但是为了描述的简便,以下在举例时采用SV语言和C语言的表述,但这不是限制本申请只能应用于SV语言和C语言之间的协同工作,而是可以应用于其他用于集成电路验证的硬件描述语言和用于集成电路验证的行为建模语言之间的协同工作,只要其原理与本申请的相同。
图1示出了根据本申请的实施例的在用于集成电路验证的硬件描述语言(以下用SV语言来举例)的仿真验证环境中调用用于集成电路验证的行为建模语言(以下用C语言来举例)的仿真验证环境的代码生成方法100的流程图。
代码生成方法100包括:步骤101,在行为建模语言的仿真验证环境中生成存储用于集成电路验证的通用数据包的通用类,其中该通用数据包被存储在哈希数组中;步骤102,在行为建模语言的仿真验证环境中生成对哈希数组的多个控制函数;步骤103,在行为建模语言的仿真验证环境中生成定义用于集成电路验证的行为建模语言仿真验证模型计算的回调队列(callback),以便对哈希数组的多个控制函数中的至少一个控制函数进行调用,其中通用类中还包括回调队列接口,回调队列接口被生成为自动运行用于集成电路验证的回调队列;步骤104,在行为建模语言的仿真验证环境中生成行为建模语言域公共直接编程接口DPI,在硬件描述语言的仿真验证环境中生成硬件描述语言域公共DPI,使得硬件描述语言域公共DPI与行为建模语言域公共DPI相互交换数据。
也就是说,在本申请的实施例中,仅在诸如SV语言的硬件描述语言的仿真验证环境中生成一个SV语言域公共DPI,且仅在诸如C语言的行为建模语言的仿真验证环境中生成一个C语言域DPI,并通过在C语言的仿真验证环境中生成用哈希数组来存储用于集成电路验证的通用数据包的通用类,并生成对哈希数组的多个控制函数进行任何调用的定制化回调队列,能够不像传统技术那样需要对每个函数生成各自的SV语言域公共DPI和C语言域DPI,节省了生成和调试代码的数据量和时间,且由于根据实际的集成电路验证的各个操作步骤的需要来生成执行这些步骤的回调队列,且由于生成了通用数据包的通用类,可以使得本方案的扩展性很好,即使操作步骤有变化、或接口或数据包有任何改动,都不需要手动地更新所有的DPI定义,可以通过改动回调队列或通用类或控制函数来很快地适用。
下面结合图2的具体示意图来示意性地说明代码生成方法100。图2示意性地示出了用根据本申请的实施例的代码生成方法生成的代码的示意图。
如图2所示,首先,在C语言域生成一个通用类,用来存储一个通用数据包。并将该数据包存储在一个哈希数组里面。生成一些常用的控制函数,实现对该哈希数组的元素的控制,比如对哈希数组中的某一个元素的查询、修改、插入、删除等。上述通用类和控制函数可以用来实现对C语言域中的数据包的统一存放。这样就准备好了C语言域和SV域之间的数据交互的统一接口。
其次,在SV域生成一个公共的DPI,该公共的DPI可以包括一些不同功能的DPI(例如如图2所示的DPI),其能够调用C语言域中的上述控制函数(如图2所示的函数1、函数2……函数n),实现将SV域中的数据包发送给C语言域,并保存在C语言域的哈希数组中。通过这些DPI就能够将SV语言域中任意格式的数据类型统一转换为C语言域中数据进行存放和访问、修改等控制。
最后,将C语言模型中处理该数据的函数放入C语言域中定义好的回调队列中,并在SV语言调用的DPI所对应的C语言DPI(例如如图2所示的DPI)中调用该回调队列,实现C语言模型的自动运行。
通过这样的方式,只需要生成好以上三段代码,就可以实现将SV语言环境中的任意格式的数据发送给C语言域中,并启动一个C语言的模型计算的过程。并且当需要在SV语言中增加对被验证设计的监测内容(例如被验证模块(Design Under Test,DUT)通过与被验证设计相连接的接口1、2……n从监视器1、2……n检测到的数据)时,可以方便的复用该通用的数据包,而不需要额外的增加DPI和C语言的代码。这样能够极大地提高验证效率,快速发现设计代码中的各种错误。
接下来,结合图3具体地描述通用类、行为建模(C)语言域公共DPI和硬件描述(SV)语言域公共DPI的详细内容和功能。图3是示意性地描述通用类、C语言域公共DPI和SV语言域公共DPI的详细内容的示意图。
在一个实施例中,通用数据包包括各种数据,通用数据包的哈希数组包括定义数据的键和值,定义数据的键表示数据的名称,而定义数据的值表示该数据的值。
结合图3,首先,在C语言域生成一个通用类(如图3中#1所示)。该通用类的主要功能是实现一个C语言域的通用数据包的定义。其中通过键(key)为字符串(通用数据包中的各个数据的名称)、值(value)为数据包集合中的各个数据的双精度整数的哈希数组(如图3中#3所示,称为数据的哈希数组)来存储这一个数据包集合(transaction)里面的所有数据。
该通用类中还包含了一些常用的控制函数,如对数据的打印、数据包中每一个变量的get函数(得到某个键(key)的值(value))和set函数(设置一个新的值(设置某个键(key)的值(value)为某个具体值))等、比较函数(如图3中#8、#9、#10所示)。
在一个实施例中,对应地,硬件描述SV语言域公共DPI的设置(set)函数包括三个参数:所监听的数据包的名称、所监听的数据的名称和所监听的数据的值,并且硬件描述语言域公共DPI的设置函数被生成为调用行为建模语言域公共DPI的推入函数并输入三个参数,以将所监听的数据的名称和所监听的数据的值推入由所监听的数据包的名称作为键所指定的通用数据包。
对应地,硬件描述SV语言域公共DPI的获得(get)函数包括两个参数:所监听的数据包的名称、所监听的数据的名称,且硬件描述语言域公共DPI的获得函数被生成为调用行为建模语言域公共DPI的推出函数并输入这两个参数,以得到针对所监听的数据包的名称、所监听的数据的名称的用于集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个实施例中,该通用类还包括定义通用数据包的键和值,定义通用数据包的键表示数据包的名称,定义通用数据包的值表示数据包的哈希数组。
结合图3,在以上通用类中定义一个数据包的静态的哈希数组(如图3中#4所示),它的键为字符串(该数据包的名称),值为上面所定义的另一个哈希数组(即,数据包的值,即,数据包中的各个数据的哈希数组)。因此在存在多个数据包的情况下,可以存储和索引用到的所有多个数据包的实例。
在一个实施例中,回调队列接口被生成为自动运行用于集成电路验证的回调队列,以调用多个控制函数中的至少一个控制函数来对通用数据包进行控制,并得到用于集成电路验证的行为建模语言仿真验证模型计算的结果。
结合图3,在该通用类中定义了一个回调队列接口,用来自动启动所需要执行的回调队列的功能(如图3中#5所示)。此后还将描述回调队列接口调用的回调队列的功能。
回调队列接口的示例为:
在一个实施例中,行为建模语言域公共DPI可以包括推入函数、推出函数,硬件描述语言域公共DPI包括可以设置函数和获得函数。
行为建模语言域公共DPI的推入函数被生成为基于从硬件描述语言域公共DPI的设置函数的调用,将推入函数中接收的所监听的数据推入到哈希数组中存储的通用数据包中。
行为建模语言域公共DPI的推出函数被生成为基于硬件描述语言域公共DPI的获得函数的调用,来推出用于集成电路验证的行为建模语言仿真验证模型计算的结果。
行为建模语言域公共DPI的推入函数包括三个输入参数:输入数据包的名称、输入数据的名称和输入数据的值,推入函数被生成为将接收的所监听的输入数据的名称和输入数据的值推入到由输入数据包的名称作为键所指定的通用数据包中,并返回指向哈希数组中存储的通用数据包的指针。
结合图3,在C语言域中生成一个用于SV域的DPI接口函数,例如推入函数(如图3中#12所示)。该函数有三个参数输入数据包的名称、输入数据的名称、输入数据的值。该推入函数可以实现将指定的键-值对即接收的所监听的输入数据的名称和输入数据的值插入到由输入数据包的名称作为键所指定的数据包中去,并返回指向该哈希数组(通用数据包)的指针。该推入函数可以调用C语言域的set函数来实现在某个键插入某个值的操作。
在一个实施例中,回调队列接口被生成为自动运行用于集成电路验证的回调队列,以调用多个控制函数中的至少一个控制函数来对所推入的通用数据包进行控制,并得到用于集成电路验证的行为建模语言仿真验证模型计算的结果。
结合图3,在推入函数(把SV语言域里的数据推入到C语言域里的哈希数组里面去)完成之后自动逐一调用回调队列中的所有方法函数来处理这些数据。
在一个实施例中,通用类中的回调队列接口被生成为接收指针,并调用多个控制函数中的至少一个控制函数来对指针所指向的通用数据包进行控制,并得到用于集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个实施例中,行为建模语言域公共DPI的推出函数包括两个输入参数:输入数据包的名称、输入数据的名称,且被生成为返回针对输入数据包的名称、输入数据的名称的用于集成电路验证的行为建模语言仿真验证模型计算的结果。
结合图3,定义了一个推出函数(取上述仿真结果),包括两个输入参数输入数据包的名称、输入数据的名称,该函数会返回针对输入数据包的名称、输入数据的名称的C语言仿真验证模型计算的结果的值(即,先前提到的回调队列的操作结果以哈希函数的形式存储在某个键所对应的值中,如图3中#11所示),用来从现存的数据包中取出某一个域段的值。该推出函数可以调用C语言域的get函数来实现从某个键取值的操作。
至此,通过以上4个步骤,实现了用于SV语言中的在C语言域中定义的一个通用数据包的构造与存储、索引和回调队列的自动调用。
在一个实施例中,用于集成电路验证的回调队列根据集成电路验证的实际需求而生成。可以使得本方案的扩展性很好,即使操作步骤的实际需求有变化,都不需要手动地更新所有的DPI定义,可以通过改动回调队列来适用这种变化。
如此,在本申请的各个实施例中,仅在诸如SV语言的硬件描述语言的仿真验证环境中生成一个SV语言域公共DPI,且仅在诸如C语言的行为建模语言的仿真验证环境中生成一个C语言域DPI,并通过在C语言的仿真验证环境中生成用哈希数组来存储用于集成电路验证的通用数据包的通用类,并生成对哈希数组的多个控制函数进行任何调用的定制化回调队列,能够不像传统技术那样需要对每个函数生成各自的SV语言域公共DPI和C语言域DPI,节省了生成和调试代码的数据量和时间。本方案的扩展性很好,即使操作步骤有变化、或接口或数据包有任何改动,都不需要手动地更新所有的DPI定义,可以通过改动回调队列或通用类或控制函数来很快地适用。
在进行了上述准备之后,可以执行在SV语言的仿真验证环境中调用C语言的仿真验证环境的集成电路验证方法来对设计的集成电路进行验证。
图4示出了根据本申请的实施例的在用于集成电路验证的硬件描述语言(以下用SV语言来举例)的仿真验证环境中调用用于集成电路验证的行为建模语言(以下用C语言来举例)的仿真验证环境的集成电路验证方法400的流程图。
如上,已经获得了在行为建模语言的仿真验证环境中的存储用于集成电路验证的通用数据包的通用类,其中该通用数据包被存储在哈希数组中;已经获得了在行为建模语言的仿真验证环境中的对哈希数组的多个控制函数;已经获得了在行为建模语言的仿真验证环境中的定义用于集成电路验证的行为建模语言仿真验证模型计算的回调队列,以便对哈希数组的多个控制函数中的至少一个控制函数进行调用,其中通用类中还包括回调队列接口,回调队列接口被生成为自动运行用于集成电路验证的回调队列;已经获得了在行为建模语言的仿真验证环境中的行为建模语言域公共直接编程接口DPI和在硬件描述语言的仿真验证环境中的硬件描述语言域公共DPI,其中硬件描述语言域公共DPI与行为建模语言域公共DPI相互交换数据。
然后,集成电路验证方法400包括:步骤401,在集成电路验证过程中,监听寄存器传输级RTL的各个接口所对应的待验证数据;步骤402,硬件描述语言域公共DPI将所监听的数据传送给行为建模语言域公共DPI,存入哈希数组中存储的通用数据包中;步骤403,回调队列接口自动运行用于集成电路验证的回调队列,以调用对哈希数组的多个控制函数中的至少一个控制函数,并得到用于集成电路验证的行为建模语言仿真验证模型计算的结果;步骤404,硬件描述语言域公共DPI从行为建模语言域公共DPI接收用于集成电路验证的行为建模语言仿真验证模型计算的结果。
注意,寄存器传输级(register transfer level,RTL)级指的是用寄存器这一级别的描述方式来描述电路的数据流方式。RTL级的描述就会更详细一些,并且从寄存器的角度,把数据在寄存器之间移动的处理过程表达出来,可以容易地被综合工具综合成电路的形式。其基本部件是寄存器、计数器、多路复用器和算术逻辑单元ALU这些功能块,对数据的基本操作包括了算术操作、逻辑操作、移位和循环操作等。RTL级的基本部件通常采用真值表和状态表来表示。而行为级指的是仅仅描述电路的功能(行为)。行为级是RTL的上一层,行为级是最符合人类逻辑思维方式的描述角度,通过定义输入/输出响应的方式用C/C++来描述硬件行为,行为级的描述与硬件的物理实现无关,更多的是采取直接赋值的形式,只能模拟器件的行为,看到器件的运行结果,以验证它是否执行了正确的功能,看不出数据流的实际处理过程和实际基本部件的实现。其中又大量采用算术运算,延迟等一些无法综合的语句。从行为级到RTL级的转换,一般都是由集成电路设计人员手工翻译或利用高级综合工具(例如,Catapult C Synthesis)来进行。
由于RTL级的数据流模型显式地定义了寄存器之间的互连关系,因此可以体现:寄存器级元件之间的时序关系、硬件资源分配、调度、微代码控制单元设计、总线设计等。因此,待验证数据可以包括用于验证集成电路中各个部分的接口处的输出数据(行为结果),例如电压电平、波形等。
因此,监听寄存器传输级RTL模型的各个(基本部件的)接口输出的待验证数据,并将数据输入到SV语言域仿真模型以调用C语言域仿真模型来验证这些数据的正确性(即各个基本部件的行为结果是否正确),则是集成电路验证的重要步骤。在验证了RTL模型的正确性之后,可以使用综合工具将其转换为门级电路,并进行后续的生产和测试等。
在上述集成电路验证过程中,可以通过监听RTL的各个接口所对应的待验证数据,经由如上述生成的SV语言域公共DPI将所监听的数据传送给如上述生成的C语言域公共DPI,存入哈希数组中存储的通用数据包中,使得回调队列接口自动运行用于集成电路验证的回调队列,以调用对哈希数组的多个控制函数中的至少一个控制函数,并得到用于C语言仿真验证模型计算的结果,经由SV语言域公共DPI从C语言域公共DPI接收C语言仿真验证模型计算的结果,从而利用SV语言域的公共DPI来容易地且快捷地调用C语言域的仿真验证模型来进行验证。
如上,在一个实施例中,行为建模语言域公共DPI包括推入函数、推出函数,硬件描述语言域公共DPI包括设置函数和获得函数。
硬件描述语言域公共DPI将所监听的数据传送给行为建模语言域公共DPI,存入哈希数组中存储的通用数据包中的步骤包括:行为建模语言域公共DPI的推入函数基于从硬件描述语言域公共DPI的设置函数的调用,将推入函数中接收的所监听的数据推入到哈希数组中存储的通用数据包中。
回调队列接口自动运行用于集成电路验证的回调队列,以调用对哈希数组的多个控制函数中的至少一个控制函数,并得到用于集成电路验证的行为建模语言仿真验证模型计算的结果的步骤包括:回调队列接口自动运行用于集成电路验证的回调队列,以调用多个控制函数中的至少一个控制函数来对所推入的通用数据包进行控制,并得到用于集成电路验证的行为建模语言仿真验证模型计算的结果。
行为建模语言域公共DPI的推出函数被生成为基于硬件描述语言域公共DPI的获得函数的调用,来推出用于集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个实施例中,其中通用数据包包括待验证数据,哈希数组包括定义数据的键和值,定义数据的键表示数据的名称,而定义数据的值表示该数据的值,通用类还包括定义通用数据包的键和值,定义通用数据包的键表示数据包的名称,定义通用数据包的值表示数据包的哈希数组。
行为建模语言域公共DPI的推入函数包括三个输入参数:输入数据包的名称、输入数据的名称和输入数据的值,推入函数将接收的所监听的输入数据的名称和输入数据的值推入到由输入数据包的名称作为键所指定的通用数据包中,并返回指向哈希数组中存储的通用数据包的指针。
其中,回调队列接口自动运行用于集成电路验证的回调队列,以调用对哈希数组的多个控制函数中的至少一个控制函数,并得到用于集成电路验证的行为建模语言仿真验证模型计算的结果的步骤包括:通用类中的回调队列接口接收指针,并调用多个控制函数中的至少一个控制函数来对指针所指向的通用数据包进行控制,并得到用于集成电路验证的行为建模语言仿真验证模型计算的结果。
行为建模语言域公共DPI的推出函数包括两个输入参数:输入数据包的名称、输入数据的名称,且返回针对输入数据包的名称、输入数据的名称的用于集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个实施例中,硬件描述语言域公共DPI的设置函数包括三个参数:所监听的数据包的名称、所监听的数据的名称和所监听的数据的值,并且硬件描述语言域公共DPI将所监听的数据传送给行为建模语言域公共DPI,存入哈希数组中存储的通用数据包中的步骤包括:硬件描述语言域公共DPI的设置函数调用行为建模语言域公共DPI的推入函数并输入三个参数,以将所监听的数据的名称和所监听的数据的值推入由所监听的数据包的名称作为键所指定的通用数据包。
硬件描述语言域公共DPI的获得函数包括两个参数:所监听的数据包的名称、所监听的数据的名称,且硬件描述语言域公共DPI从行为建模语言域公共DPI接收用于集成电路验证的行为建模语言仿真验证模型计算的结果的步骤包括:硬件描述语言域公共DPI的获得函数调用行为建模语言域公共DPI的推出函数并输入这两个参数,以得到针对所监听的数据包的名称、所监听的数据的名称的用于集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个实施例中,用于集成电路验证的回调队列根据集成电路验证的实际需求而生成。
如此,在需要监听RTL的接口所对应的监视器或者直接在接口中得到监听的数据之后,通过实例化不同的公共DPI,并调用设置(set)函数来将数据包(trans)的数据存入到C语言域,并自动调用回调队列中的所有函数。因此可以通过以上方法实现了通用的SV语言域的监听数据发送给C语言域的数据包(trans),并自动调用回调队列的一个改进的方法。可以方便地调用C语言域的模型,而无需大量地修改代码,只需要将该模型的方法加入回调队列就可以实现自动调用了。
本申请的实施例能够实现至少如下技术效果:
1、能够非常方便的把C模型和现有的SV验证环境进行融合;
2、减少验证时重复生成DPI接口的代码量;
3、降低代码维护和调试的时间等成本;
4、具有很高的可重用性,可以快速部署在不同的验证环境中。
图5示出了根据本申请的实施例的在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的代码生成系统500的方框图。
代码生成系统500包括:使得在行为建模语言的仿真验证环境中生成存储用于集成电路验证的通用数据包的通用类的装置501,其中该通用数据包被存储在哈希数组中;使得在行为建模语言的仿真验证环境中生成对哈希数组的多个控制函数的装置502;使得在行为建模语言的仿真验证环境中生成定义用于集成电路验证的行为建模语言仿真验证模型计算的回调队列、以便对哈希数组的多个控制函数中的至少一个控制函数进行调用的装置503,其中通用类中还包括回调队列接口,回调队列接口被生成为自动运行用于集成电路验证的回调队列;使得在行为建模语言的仿真验证环境中生成行为建模语言域公共直接编程接口DPI、在硬件描述语言的仿真验证环境中生成硬件描述语言域公共DPI、使得硬件描述语言域公共DPI与行为建模语言域公共DPI相互交换数据的装置504。
在一个实施例中,行为建模语言域公共DPI包括推入函数、推出函数,硬件描述语言域公共DPI包括设置函数和获得函数。
行为建模语言域公共DPI的推入函数被生成为基于从硬件描述语言域公共DPI的设置函数的调用,将推入函数中接收的所监听的数据推入到哈希数组中存储的通用数据包中。
回调队列接口被生成为自动运行用于集成电路验证的回调队列,以调用多个控制函数中的至少一个控制函数来对所推入的通用数据包进行控制,并得到用于集成电路验证的行为建模语言仿真验证模型计算的结果。
行为建模语言域公共DPI的推出函数被生成为基于硬件描述语言域公共DPI的获得函数的调用,来推出用于集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个实施例中,通用数据包包括待验证数据。
通用类还包括定义通用数据包的键和值,定义通用数据包的键表示数据包的名称,定义通用数据包的值表示数据包的哈希数组。
哈希数组包括定义数据的键和值,定义数据的键表示数据的名称,而定义数据的值表示该数据的值。
行为建模语言域公共DPI的推入函数包括三个输入参数:输入数据包的名称、输入数据的名称和输入数据的值,推入函数被生成为将接收的所监听的输入数据的名称和输入数据的值推入到由输入数据包的名称作为键所指定的通用数据包中,并返回指向哈希数组中存储的通用数据包的指针。
通用类中的回调队列接口被生成为接收指针,并调用多个控制函数中的至少一个控制函数来对指针所指向的通用数据包进行控制,并得到用于集成电路验证的行为建模语言仿真验证模型计算的结果。
行为建模语言域公共DPI的推出函数包括两个输入参数:输入数据包的名称、输入数据的名称,且被生成为返回针对输入数据包的名称、输入数据的名称的用于集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个实施例中,硬件描述语言域公共DPI的设置函数包括三个参数:所监听的数据包的名称、所监听的数据的名称和所监听的数据的值,并且硬件描述语言域公共DPI的设置函数被生成为调用行为建模语言域公共DPI的推入函数并输入三个参数,以将所监听的数据的名称和所监听的数据的值推入由所监听的数据包的名称作为键所指定的通用数据包。
硬件描述语言域公共DPI的获得函数包括两个参数:所监听的数据包的名称、所监听的数据的名称,且硬件描述语言域公共DPI的获得函数被生成为调用行为建模语言域公共DPI的推出函数并输入这两个参数,以得到针对所监听的数据包的名称、所监听的数据的名称的用于集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个实施例中,用于集成电路验证的回调队列根据匹配集成电路验证的实际需求而生成。
如此,各个实施例的方案在包含C语言模型的仿真验证环境中能够简化验证方法,减少代码生成数量,提高了可扩展性和易用性,使得验证代码的质量能够快速收敛,极大的提高了验证效率,降低了验证成本。
图6示出了根据本申请的实施例的在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的代码生成设备600的方框图。
代码生成设备600包括:处理器601;存储器602,存储了计算机可执行代码,以便在处理器的执行下进行如上述的在硬件描述语言的仿真验证环境中调用行为建模语言的仿真验证环境的代码生成方法。
处理器可以包括但不限于例如一个或者多个处理器或者或微处理器等。
存储器可以包括但不限于例如,随机存取存储器(RAM)、只读存储器(ROM)、快闪存储器、EPROM存储器、EEPROM存储器、寄存器、计算机存储介质(例如硬碟、软碟、固态硬盘、可移动碟、CD-ROM、DVD-ROM、蓝光盘等)。
除此之外,该设备还可以包括数据总线、输入/输出(I/O)总线,显示器以及输入/输出设备(例如,键盘、鼠标、扬声器等)等。
处理器可以通过I/O总线经由有线或无线网络与外部设备通信。
存储器还可以存储至少一个计算机可执行指令,用于在由处理器运行时执行本技术所描述的实施例中的各个功能和/或方法的步骤。
在一个实施例中,该至少一个计算机可执行指令也可以被编译为或组成一种软件产品,其中一个或多个计算机可执行指令被处理器运行时执行本技术所描述的实施例中的各个功能和/或方法的步骤。
图7示出了根据本申请的实施例的一种计算机可读介质700的硬件图。
该计算机可读介质700存储了计算机可执行代码701,以便在处理器的执行下进行如上述的在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的代码生成方法。
计算机可读存储介质包括但不限于例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。
图8示出了根据本申请的实施例的在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的集成电路验证系统800的方框图。
其中已经获得了在行为建模语言的仿真验证环境中的存储用于集成电路验证的通用数据包的通用类,其中该通用数据包被存储在哈希数组中;获得了在行为建模语言的仿真验证环境中的对哈希数组的多个控制函数;获得了在行为建模语言的仿真验证环境中的定义用于集成电路验证的行为建模语言仿真验证模型计算的回调队列,以便对哈希数组的多个控制函数中的至少一个控制函数进行调用,其中通用类中还包括回调队列接口,回调队列接口被生成为自动运行用于集成电路验证的回调队列;获得了在行为建模语言的仿真验证环境中的行为建模语言域公共直接编程接口DPI和在硬件描述语言的仿真验证环境中的硬件描述语言域公共DPI,其中硬件描述语言域公共DPI与行为建模语言域公共DPI相互交换数据。
集成电路验证系统800包括:使得在集成电路验证过程中,监听寄存器传输级RTL的各个接口所对应的待验证数据的装置801;硬件描述语言域公共DPI将所监听的数据传送给行为建模语言域公共DPI、存入哈希数组中存储的通用数据包中的装置802;使得回调队列接口自动运行用于集成电路验证的回调队列、以调用对哈希数组的多个控制函数中的至少一个控制函数、并得到用于集成电路验证的行为建模语言仿真验证模型计算的结果的装置803;使得硬件描述语言域公共DPI从行为建模语言域公共DPI接收用于集成电路验证的行为建模语言仿真验证模型计算的结果的装置804。
在一个实施例中,行为建模语言域公共DPI包括推入函数、推出函数,硬件描述语言域公共DPI包括设置函数和获得函数。
其中,使得硬件描述语言域公共DPI将所监听的数据传送给行为建模语言域公共DPI,存入哈希数组中存储的通用数据包中的装置包括使得:行为建模语言域公共DPI的推入函数基于从硬件描述语言域公共DPI的设置函数的调用、将推入函数中接收的所监听的数据推入到哈希数组中存储的通用数据包中的装置。
其中,使得回调队列接口自动运行用于集成电路验证的回调队列,以调用对哈希数组的多个控制函数中的至少一个控制函数、并得到用于集成电路验证的行为建模语言仿真验证模型计算的结果的装置包括:使得回调队列接口自动运行用于集成电路验证的回调队列、以调用多个控制函数中的至少一个控制函数来对所推入的通用数据包进行控制、并得到用于集成电路验证的行为建模语言仿真验证模型计算的结果的装置。
其中,行为建模语言域公共DPI的推出函数被生成为基于硬件描述语言域公共DPI的获得函数的调用,来推出用于集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个实施例中,通用数据包包括待验证数据。
哈希数组包括定义数据的键和值,定义数据的键表示数据的名称,而定义数据的值表示该数据的值。
通用类还包括定义通用数据包的键和值,定义通用数据包的键表示数据包的名称,定义通用数据包的值表示数据包的哈希数组。
行为建模语言域公共DPI的推入函数包括三个输入参数:输入数据包的名称、输入数据的名称和输入数据的值,推入函数将接收的所监听的输入数据的名称和输入数据的值推入到由输入数据包的名称作为键所指定的通用数据包中,并返回指向哈希数组中存储的通用数据包的指针。
其中,使得回调队列接口自动运行用于集成电路验证的回调队列、以调用对哈希数组的多个控制函数中的至少一个控制函数,并得到用于集成电路验证的行为建模语言仿真验证模型计算的结果的装置包括:使得通用类中的回调队列接口接收指针、并调用多个控制函数中的至少一个控制函数来对指针所指向的通用数据包进行控制、并得到用于集成电路验证的行为建模语言仿真验证模型计算的结果的装置。
行为建模语言域公共DPI的推出函数包括两个输入参数:输入数据包的名称、输入数据的名称,且返回针对输入数据包的名称、输入数据的名称的用于集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个实施例中,硬件描述语言域公共DPI的设置函数包括三个参数:所监听的数据包的名称、所监听的数据的名称和所监听的数据的值,并且使得硬件描述语言域公共DPI将所监听的数据传送给行为建模语言域公共DPI、存入哈希数组中存储的通用数据包中的装置包括:使得硬件描述语言域公共DPI的设置函数调用行为建模语言域公共DPI的推入函数并输入三个参数、以将所监听的数据的名称和所监听的数据的值推入由所监听的数据包的名称作为键所指定的通用数据包的装置。
硬件描述语言域公共DPI的获得函数包括两个参数:所监听的数据包的名称、所监听的数据的名称,且使得硬件描述语言域公共DPI从行为建模语言域公共DPI接收用于集成电路验证的行为建模语言仿真验证模型计算的结果的装置包括:使得硬件描述语言域公共DPI的获得函数调用行为建模语言域公共DPI的推出函数并输入这两个参数、以得到针对所监听的数据包的名称、所监听的数据的名称的用于集成电路验证的行为建模语言仿真验证模型计算的结果的装置。
在一个实施例中,用于集成电路验证的回调队列根据匹配集成电路验证的实际需求而生成。
如此,各个实施例的方案在包含C语言模型的仿真验证环境中能够简化验证方法,减少代码生成数量,提高了可扩展性和易用性,使得验证代码的质量能够快速收敛,极大的提高了验证效率,降低了验证成本。
图9示出了根据本申请的实施例的在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的集成电路验证设备900的方框图。
集成电路验证备900包括:处理器901;存储器902,存储了计算机可执行代码,以便在处理器的执行下进行如上述的在硬件描述语言的仿真验证环境中调用行为建模语言的仿真验证环境的集成电路验证方法。
处理器可以包括但不限于例如一个或者多个处理器或者或微处理器等。
存储器可以包括但不限于例如,随机存取存储器(RAM)、只读存储器(ROM)、快闪存储器、EPROM存储器、EEPROM存储器、寄存器、计算机存储介质(例如硬碟、软碟、固态硬盘、可移动碟、CD-ROM、DVD-ROM、蓝光盘等)。
除此之外,该设备还可以包括数据总线、输入/输出(I/O)总线,显示器以及输入/输出设备(例如,键盘、鼠标、扬声器等)等。
处理器可以通过I/O总线经由有线或无线网络与外部设备通信。
存储器还可以存储至少一个计算机可执行指令,用于在由处理器运行时执行本技术所描述的实施例中的各个功能和/或方法的步骤。
在一个实施例中,该至少一个计算机可执行指令也可以被编译为或组成一种软件产品,其中一个或多个计算机可执行指令被处理器运行时执行本技术所描述的实施例中的各个功能和/或方法的步骤。
图10示出了根据本申请的实施例的一种计算机可读介质1000的硬件图。
该计算机可读介质1000存储了计算机可执行代码1001,以便在处理器的执行下进行如上述的在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的集成电路验证方法。
计算机可读存储介质包括但不限于例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。
当然,上述的具体实施例仅是例子而非限制,且本领域技术人员可以根据本发明的构思从上述分开描述的各个实施例中合并和组合一些步骤和装置来实现本发明的效果,这种合并和组合而成的实施例也被包括在本发明中,在此不一一描述这种合并和组合。
根据本公开的一个方面,提供一种在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的集成电路验证方法,其中,获得了在行为建模语言的仿真验证环境中的存储用于集成电路验证的通用数据包的通用类,其中该通用数据包被存储在哈希数组中;获得了在行为建模语言的仿真验证环境中的对所述哈希数组的多个控制函数;获得了在行为建模语言的仿真验证环境中的定义用于集成电路验证的行为建模语言仿真验证模型计算的回调队列,以便对所述哈希数组的多个控制函数中的至少一个控制函数进行调用,其中所述通用类中还包括回调队列接口,所述回调队列接口被生成为自动运行所述用于集成电路验证的回调队列;获得了在行为建模语言的仿真验证环境中的行为建模语言域公共直接编程接口DPI和在硬件描述语言的仿真验证环境中的硬件描述语言域公共DPI,其中硬件描述语言域公共DPI与所述行为建模语言域公共DPI相互交换数据。所述集成电路验证方法包括:在集成电路验证过程中,监听寄存器传输级RTL的各个接口所对应的待验证数据;所述硬件描述语言域公共DPI将所监听的数据传送给所述行为建模语言域公共DPI,存入哈希数组中存储的所述通用数据包中;所述回调队列接口自动运行所述用于集成电路验证的回调队列,以调用对所述哈希数组的多个控制函数中的至少一个控制函数,并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果;所述硬件描述语言域公共DPI从所述行为建模语言域公共DPI接收用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个方面,所述行为建模语言域公共DPI包括推入函数、推出函数,所述硬件描述语言域公共DPI包括设置函数和获得函数,其中,所述硬件描述语言域公共DPI将所监听的数据传送给所述行为建模语言域公共DPI,存入哈希数组中存储的所述通用数据包中的步骤包括:所述行为建模语言域公共DPI的推入函数基于从所述硬件描述语言域公共DPI的设置函数的调用,将所述推入函数中接收的所监听的数据推入到哈希数组中存储的所述通用数据包中,其中,所述回调队列接口自动运行所述用于集成电路验证的回调队列,以调用对所述哈希数组的多个控制函数中的至少一个控制函数,并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的步骤包括:所述回调队列接口自动运行所述用于集成电路验证的回调队列,以调用多个控制函数中的至少一个控制函数来对所推入的通用数据包进行控制,并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果,其中,所述行为建模语言域公共DPI的推出函数被生成为基于所述硬件描述语言域公共DPI的获得函数的调用,来推出所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个方面,所述通用数据包包括待验证数据,所述哈希数组包括定义数据的键和值,所述定义数据的键表示数据的名称,而所述定义数据的值表示该数据的值,所述通用类还包括定义通用数据包的键和值,所述定义通用数据包的键表示数据包的名称,所述定义通用数据包的值表示所述数据包的所述哈希数组,所述行为建模语言域公共DPI的推入函数包括三个输入参数:输入数据包的名称、输入数据的名称和输入数据的值,所述推入函数将接收的所监听的输入数据的名称和输入数据的值推入到由输入数据包的名称作为键所指定的通用数据包中,并返回指向所述哈希数组中存储的所述通用数据包的指针,其中,所述回调队列接口自动运行所述用于集成电路验证的回调队列,以调用对所述哈希数组的多个控制函数中的至少一个控制函数,并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的步骤包括:所述通用类中的回调队列接口接收所述指针,并调用多个控制函数中的至少一个控制函数来对所述指针所指向的通用数据包进行控制,并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果,所述行为建模语言域公共DPI的推出函数包括两个输入参数:输入数据包的名称、输入数据的名称,且返回针对所述输入数据包的名称、输入数据的名称的所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个方面,所述硬件描述语言域公共DPI的设置函数包括三个参数:所监听的数据包的名称、所监听的数据的名称和所监听的数据的值,并且所述硬件描述语言域公共DPI将所监听的数据传送给所述行为建模语言域公共DPI,存入哈希数组中存储的所述通用数据包中的步骤包括:所述硬件描述语言域公共DPI的设置函数调用所述行为建模语言域公共DPI的推入函数并输入所述三个参数,以将所监听的数据的名称和所监听的数据的值推入由所监听的数据包的名称作为键所指定的通用数据包,所述硬件描述语言域公共DPI的获得函数包括两个参数:所监听的数据包的名称、所监听的数据的名称,且所述硬件描述语言域公共DPI从所述行为建模语言域公共DPI接收所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的步骤包括:所述硬件描述语言域公共DPI的获得函数调用所述行为建模语言域公共DPI的推出函数并输入这两个参数,以得到针对所述所监听的数据包的名称、所监听的数据的名称的所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个方面,所述用于集成电路验证的回调队列根据集成电路验证的实际需求而生成。
根据本公开的一个方面,提供一种在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的集成电路验证系统,其中,获得了在行为建模语言的仿真验证环境中的存储用于集成电路验证的通用数据包的通用类,其中该通用数据包被存储在哈希数组中;获得了在行为建模语言的仿真验证环境中的对所述哈希数组的多个控制函数;获得了在行为建模语言的仿真验证环境中的定义用于集成电路验证的行为建模语言仿真验证模型计算的回调队列,以便对所述哈希数组的多个控制函数中的至少一个控制函数进行调用,其中所述通用类中还包括回调队列接口,所述回调队列接口被生成为自动运行所述用于集成电路验证的回调队列;获得了在行为建模语言的仿真验证环境中的行为建模语言域公共直接编程接口DPI和在硬件描述语言的仿真验证环境中的硬件描述语言域公共DPI,其中硬件描述语言域公共DPI与所述行为建模语言域公共DPI相互交换数据。所述集成电路验证系统包括:使得在集成电路验证过程中,监听寄存器传输级RTL的各个接口所对应的待验证数据的装置;使得所述硬件描述语言域公共DPI将所监听的数据传送给所述行为建模语言域公共DPI、存入哈希数组中存储的所述通用数据包中的装置;使得所述回调队列接口自动运行所述用于集成电路验证的回调队列、以调用对所述哈希数组的多个控制函数中的至少一个控制函数、并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的装置;使得所述硬件描述语言域公共DPI从所述行为建模语言域公共DPI接收所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的装置。
在一个方面,所述行为建模语言域公共DPI包括推入函数、推出函数,所述硬件描述语言域公共DPI包括设置函数和获得函数,其中,使得所述硬件描述语言域公共DPI将所监听的数据传送给所述行为建模语言域公共DPI,存入哈希数组中存储的所述通用数据包中的装置包括:使得所述行为建模语言域公共DPI的推入函数基于从所述硬件描述语言域公共DPI的设置函数的调用、将所述推入函数中接收的所监听的数据推入到哈希数组中存储的所述通用数据包中的装置,其中,使得所述回调队列接口自动运行所述用于集成电路验证的回调队列、以调用对所述哈希数组的多个控制函数中的至少一个控制函数、并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的装置包括:使得所述回调队列接口自动运行所述用于集成电路验证的回调队列、以调用多个控制函数中的至少一个控制函数来对所推入的通用数据包进行控制、并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的装置,其中,所述行为建模语言域公共DPI的推出函数被生成为基于所述硬件描述语言域公共DPI的获得函数的调用,来推出所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个方面,所述通用数据包包括待验证数据,所述哈希数组包括定义数据的键和值,所述定义数据的键表示数据的名称,而所述定义数据的值表示该数据的值,所述通用类还包括定义通用数据包的键和值,所述定义通用数据包的键表示数据包的名称,所述定义通用数据包的值表示所述数据包的所述哈希数组,所述行为建模语言域公共DPI的推入函数包括三个输入参数:输入数据包的名称、输入数据的名称和输入数据的值,所述推入函数将接收的所监听的输入数据的名称和输入数据的值推入到由输入数据包的名称作为键所指定的通用数据包中,并返回指向所述哈希数组中存储的所述通用数据包的指针,其中,使得所述回调队列接口自动运行所述用于集成电路验证的回调队列、以调用对所述哈希数组的多个控制函数中的至少一个控制函数、并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的装置包括:使得所述通用类中的回调队列接口接收所述指针、并调用多个控制函数中的至少一个控制函数来对所述指针所指向的通用数据包进行控制、并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的装置,所述行为建模语言域公共DPI的推出函数包括两个输入参数:输入数据包的名称、输入数据的名称,且返回针对所述输入数据包的名称、输入数据的名称的所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个方面,所述硬件描述语言域公共DPI的设置函数包括三个参数:所监听的数据包的名称、所监听的数据的名称和所监听的数据的值,并且使得所述硬件描述语言域公共DPI将所监听的数据传送给所述行为建模语言域公共DPI、存入哈希数组中存储的所述通用数据包中的装置包括:使得所述硬件描述语言域公共DPI的设置函数调用所述行为建模语言域公共DPI的推入函数并输入所述三个参数、以将所监听的数据的名称和所监听的数据的值推入由所监听的数据包的名称作为键所指定的通用数据包的装置,所述硬件描述语言域公共DPI的获得函数包括两个参数:所监听的数据包的名称、所监听的数据的名称,且使得所述硬件描述语言域公共DPI从所述行为建模语言域公共DPI接收所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的装置包括:使得所述硬件描述语言域公共DPI的获得函数调用所述行为建模语言域公共DPI的推出函数并输入这两个参数、以得到针对所述所监听的数据包的名称、所监听的数据的名称的所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的装置。
在一个方面,所述用于集成电路验证的回调队列根据匹配集成电路验证的实际需求而生成。
根据本公开的一个方面,提供一种计算机可读介质,存储了计算机可执行代码,以便在处理器的执行下进行在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的集成电路验证方法。
根据本公开的一个方面,提供一种在硬件描述语言的仿真验证环境中调用行为建模语言的仿真验证环境的集成电路验证设备,包括:处理器;存储器,存储了计算机可执行代码,以便在处理器的执行下进行在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的集成电路验证方法。
根据本公开的一个方面,提供一种在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的代码生成方法,包括:在行为建模语言的仿真验证环境中生成存储用于集成电路验证的通用数据包的通用类,其中该通用数据包被存储在哈希数组中;在行为建模语言的仿真验证环境中生成对所述哈希数组的多个控制函数;在行为建模语言的仿真验证环境中生成定义用于集成电路验证的行为建模语言仿真验证模型计算的回调队列,以便对所述哈希数组的多个控制函数中的至少一个控制函数进行调用,其中所述通用类中还包括回调队列接口,所述回调队列接口被生成为自动运行所述用于集成电路验证的回调队列;在行为建模语言的仿真验证环境中生成行为建模语言域公共直接编程接口DPI,在硬件描述语言的仿真验证环境中生成硬件描述语言域公共DPI,使得硬件描述语言域公共DPI与所述行为建模语言域公共DPI相互交换数据。
在一个方面,所述行为建模语言域公共DPI包括推入函数、推出函数,所述硬件描述语言域公共DPI包括设置函数和获得函数,其中,所述行为建模语言域公共DPI的推入函数被生成为基于从所述硬件描述语言域公共DPI的设置函数的调用,将所述推入函数中接收的所监听的数据推入到哈希数组中存储的所述通用数据包中,其中,所述回调队列接口被生成为自动运行所述用于集成电路验证的回调队列,以调用多个控制函数中的至少一个控制函数来对所推入的通用数据包进行控制,并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果,其中,所述行为建模语言域公共DPI的推出函数被生成为基于所述硬件描述语言域公共DPI的获得函数的调用,来推出所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个方面,所述通用数据包包括待验证数据,所述通用类还包括定义通用数据包的键和值,所述定义通用数据包的键表示数据包的名称,所述定义通用数据包的值表示所述数据包的所述哈希数组,所述哈希数组包括定义数据的键和值,所述定义数据的键表示数据的名称,而所述定义数据的值表示该数据的值,所述行为建模语言域公共DPI的推入函数包括三个输入参数:输入数据包的名称、输入数据的名称和输入数据的值,所述推入函数被生成为将接收的所监听的输入数据的名称和输入数据的值推入到由输入数据包的名称作为键所指定的通用数据包中,并返回指向所述哈希数组中存储的所述通用数据包的指针,其中,所述通用类中的回调队列接口被生成为接收所述指针,并调用多个控制函数中的至少一个控制函数来对所述指针所指向的通用数据包进行控制,并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果,所述行为建模语言域公共DPI的推出函数包括两个输入参数:输入数据包的名称、输入数据的名称,且被生成为返回针对所述输入数据包的名称、输入数据的名称的所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个方面,所述硬件描述语言域公共DPI的设置函数包括三个参数:所监听的数据包的名称、所监听的数据的名称和所监听的数据的值,并且所述硬件描述语言域公共DPI的设置函数被生成为调用所述行为建模语言域公共DPI的推入函数并输入所述三个参数,以将所监听的数据的名称和所监听的数据的值推入由所监听的数据包的名称作为键所指定的通用数据包,所述硬件描述语言域公共DPI的获得函数包括两个参数:所监听的数据包的名称、所监听的数据的名称,且所述硬件描述语言域公共DPI的获得函数被生成为调用所述行为建模语言域公共DPI的推出函数并输入这两个参数,以得到针对所述所监听的数据包的名称、所监听的数据的名称的所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个方面,所述用于集成电路验证的回调队列根据匹配集成电路验证的实际需求而生成。
根据本公开的一个方面,提供一种在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的代码生成系统,包括:使得在行为建模语言的仿真验证环境中生成存储用于集成电路验证的通用数据包的通用类的装置,其中该通用数据包被存储在哈希数组中;使得在行为建模语言的仿真验证环境中生成对所述哈希数组的多个控制函数的装置;使得在行为建模语言的仿真验证环境中生成定义用于集成电路验证的行为建模语言仿真验证模型计算的回调队列、以便对所述哈希数组的多个控制函数中的至少一个控制函数进行调用的装置,其中所述通用类中还包括回调队列接口,所述回调队列接口被生成为自动运行所述用于集成电路验证的回调队列;使得在行为建模语言的仿真验证环境中生成行为建模语言域公共直接编程接口DPI和在硬件描述语言的仿真验证环境中生成硬件描述语言域公共DPI、使得硬件描述语言域公共DPI与所述行为建模语言域公共DPI相互交换数据的装置。
在一个方面,所述行为建模语言域公共DPI包括推入函数、推出函数,所述硬件描述语言域公共DPI包括设置函数和获得函数,其中,所述行为建模语言域公共DPI的推入函数被生成为基于从所述硬件描述语言域公共DPI的设置函数的调用,将所述推入函数中接收的所监听的数据推入到哈希数组中存储的所述通用数据包中,其中,所述回调队列接口被生成为自动运行所述用于集成电路验证的回调队列,以调用多个控制函数中的至少一个控制函数来对所推入的通用数据包进行控制,并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果,其中,所述行为建模语言域公共DPI的推出函数被生成为基于所述硬件描述语言域公共DPI的获得函数的调用,来推出所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个方面,所述通用数据包包括待验证数据,所述通用类还包括定义通用数据包的键和值,所述定义通用数据包的键表示数据包的名称,所述定义通用数据包的值表示所述数据包的所述哈希数组,所述哈希数组包括定义数据的键和值,所述定义数据的键表示数据的名称,而所述定义数据的值表示该数据的值,所述行为建模语言域公共DPI的推入函数包括三个输入参数:输入数据包的名称、输入数据的名称和输入数据的值,所述推入函数被生成为将接收的所监听的输入数据的名称和输入数据的值推入到由输入数据包的名称作为键所指定的通用数据包中,并返回指向所述哈希数组中存储的所述通用数据包的指针,其中,所述通用类中的回调队列接口被生成为接收所述指针,并调用多个控制函数中的至少一个控制函数来对所述指针所指向的通用数据包进行控制,并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果,所述行为建模语言域公共DPI的推出函数包括两个输入参数:输入数据包的名称、输入数据的名称,且被生成为返回针对所述输入数据包的名称、输入数据的名称的所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个方面,所述硬件描述语言域公共DPI的设置函数包括三个参数:所监听的数据包的名称、所监听的数据的名称和所监听的数据的值,并且所述硬件描述语言域公共DPI的设置函数被生成为调用所述行为建模语言域公共DPI的推入函数并输入所述三个参数,以将所监听的数据的名称和所监听的数据的值推入由所监听的数据包的名称作为键所指定的通用数据包,所述硬件描述语言域公共DPI的获得函数包括两个参数:所监听的数据包的名称、所监听的数据的名称,且所述硬件描述语言域公共DPI的获得函数被生成为调用所述行为建模语言域公共DPI的推出函数并输入这两个参数,以得到针对所述所监听的数据包的名称、所监听的数据的名称的所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
在一个方面,所述用于集成电路验证的回调队列根据匹配集成电路验证的实际需求而生成。
根据本公开的一个方面,提供一种计算机可读介质,存储了计算机可执行代码,以便在处理器的执行下进行在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的代码生成方法。
根据本公开的一个方面,提供一种在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的代码生成设备,包括:处理器;存储器,存储了计算机可执行代码,以便在处理器的执行下进行在硬件描述语言的仿真验证环境中调用行为建模语言的仿真验证环境的代码生成方法。
注意,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本发明的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本发明为必须采用上述具体的细节来实现。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
本公开中的步骤流程图以及以上方法描述仅作为例示性的例子并且不意图要求或暗示必须按照给出的顺序进行各个实施例的步骤。如本领域技术人员将认识到的,可以按任意顺序进行以上实施例中的步骤的顺序。诸如“其后”、“然后”、“接下来”等等的词语不意图限制步骤的顺序;这些词语仅用于引导读者通读这些方法的描述。此外,例如使用冠词“一个”、“一”或者“该”对于单数的要素的任何引用不被解释为将该要素限制为单数。
另外,本文中的各个实施例中的步骤和装置并非仅限定于某个实施例中实行,事实上,可以根据本发明的概念来结合本文中的各个实施例中相关的部分步骤和部分装置以构思新的实施例,而这些新的实施例也包括在本发明的范围内。
以上描述的方法的各个操作可以通过能够进行相应的功能的任何适当的手段而进行。该手段可以包括各种硬件和/或软件组件和/或模块,包括但不限于硬件的电路、专用集成电路(ASIC)或处理器。
可以利用被设计用于进行在此描述的功能的通用处理器、数字信号处理器(DSP)、ASIC、场可编程门阵列信号(FPGA)或其他可编程逻辑器件(PLD)、离散门或晶体管逻辑、离散的硬件组件或者其任意组合而实现或进行描述的各个例示的逻辑块、模块和电路。通用处理器可以是微处理器,但是作为替换,该处理器可以是任何商业上可获得的处理器、控制器、微控制器或状态机。处理器还可以实现为计算设备的组合,例如DSP和微处理器的组合,多个微处理器、与DSP核协作的微处理器或任何其他这样的配置。
结合本公开描述的方法或算法的步骤可以直接嵌入在硬件中、处理器执行的软件模块中或者这两种的组合中。软件模块可以存在于任何形式的有形存储介质中。可以使用的存储介质的一些例子包括随机存取存储器(RAM)、只读存储器(ROM)、快闪存储器、EPROM存储器、EEPROM存储器、寄存器、硬碟、可移动碟、CD-ROM等。存储介质可以耦接到处理器以便该处理器可以从该存储介质读取信息以及向该存储介质写信息。在替换方式中,存储介质可以与处理器是整体的。软件模块可以是单个指令或者许多指令,并且可以分布在几个不同的代码段上、不同的程序之间以及跨过多个存储介质。
在此公开的方法包括用于实现描述的方法的动作。方法和/或动作可以彼此互换而不脱离权利要求的范围。换句话说,除非指定了动作的具体顺序,否则可以修改具体动作的顺序和/或使用而不脱离权利要求的范围。
上述功能可以按硬件、软件、固件或其任意组合而实现。如果以软件实现,功能可以作为指令存储在切实的计算机可读介质上。存储介质可以是可以由计算机访问的任何可用的切实介质。通过例子而不是限制,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光碟存储、磁碟存储或其他磁存储器件或者可以用于携带或存储指令或数据结构形式的期望的程序代码并且可以由计算机访问的任何其他切实介质。如在此使用的,碟(disk)和盘(disc)包括紧凑盘(CD)、激光盘、光盘、数字通用盘(DVD)、软碟和蓝光盘,其中碟通常磁地再现数据,而盘利用激光光学地再现数据。
因此,计算机程序产品可以进行在此给出的操作。例如,这样的计算机程序产品可以是具有有形存储(和/或编码)在其上的指令的计算机可读的有形介质,该指令可由处理器执行以进行在此描述的操作。计算机程序产品可以包括包装的材料。
软件或指令也可以通过传输介质而传输。例如,可以使用诸如同轴电缆、光纤光缆、双绞线、数字订户线(DSL)或诸如红外、无线电或微波的无线技术的传输介质从网站、服务器或者其他远程源传输软件。
此外,用于进行在此描述的方法和技术的模块和/或其他适当的手段可以在适当时由用户终端和/或基站下载和/或其他方式获得。例如,这样的设备可以耦接到服务器以促进用于进行在此描述的方法的手段的传送。或者,在此描述的各种方法可以经由存储部件(例如RAM、ROM、诸如CD或软碟等的物理存储介质)提供,以便用户终端和/或基站可以在耦接到该设备或者向该设备提供存储部件时获得各种方法。此外,可以利用用于将在此描述的方法和技术提供给设备的任何其他适当的技术。
其他例子和实现方式在本公开和所附权利要求的范围和精神内。例如,由于软件的本质,以上描述的功能可以使用由处理器、硬件、固件、硬连线或这些的任意的组合执行的软件实现。实现功能的特征也可以物理地位于各个位置,包括被分发以便功能的部分在不同的物理位置处实现。而且,如在此使用的,包括在权利要求中使用的,在以“至少一个”开始的项的列举中使用的“或”指示分离的列举,以便例如“A、B或C的至少一个”的列举意味着A或B或C,或AB或AC或BC,或ABC(即A和B和C)。此外,措辞“示例的”不意味着描述的例子是优选的或者比其他例子更好。
可以不脱离由所附权利要求定义的教导的技术而进行对在此描述的技术的各种改变、替换和更改。此外,本公开的权利要求的范围不限于以上描述的处理、机器、制造、事件的组成、手段、方法和动作的具体方面。可以利用与在此描述的相应方面进行基本相同的功能或者实现基本相同的结果的当前存在的或者稍后要开发的处理、机器、制造、事件的组成、手段、方法或动作。因而,所附权利要求包括在其范围内的这样的处理、机器、制造、事件的组成、手段、方法或动作。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本发明。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本发明的范围。因此,本发明不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本发明的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (20)
1.一种在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的集成电路验证方法,其中,
获得了在行为建模语言的仿真验证环境中的存储用于集成电路验证的通用数据包的通用类,其中该通用数据包被存储在哈希数组中;
获得了在行为建模语言的仿真验证环境中的对所述哈希数组的多个控制函数;
获得了在行为建模语言的仿真验证环境中的定义用于集成电路验证的行为建模语言仿真验证模型计算的回调队列,以便对所述哈希数组的多个控制函数中的至少一个控制函数进行调用,其中所述通用类中还包括回调队列接口,所述回调队列接口被生成为自动运行所述用于集成电路验证的回调队列;
获得了在行为建模语言的仿真验证环境中的行为建模语言域公共直接编程接口DPI和在硬件描述语言的仿真验证环境中的硬件描述语言域公共DPI,其中硬件描述语言域公共DPI与所述行为建模语言域公共DPI相互交换数据;
其中,所述集成电路验证方法包括:
在集成电路验证过程中,监听寄存器传输级RTL的各个接口所对应的待验证数据;
所述硬件描述语言域公共DPI将所监听的数据传送给所述行为建模语言域公共DPI,存入哈希数组中存储的所述通用数据包中;
所述回调队列接口自动运行所述用于集成电路验证的回调队列,以调用对所述哈希数组的多个控制函数中的至少一个控制函数,并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果;
所述硬件描述语言域公共DPI从所述行为建模语言域公共DPI接收用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
2.根据权利要求1所述的方法,其中,
所述行为建模语言域公共DPI包括推入函数、推出函数,所述硬件描述语言域公共DPI包括设置函数和获得函数,
其中,所述硬件描述语言域公共DPI将所监听的数据传送给所述行为建模语言域公共DPI,存入哈希数组中存储的所述通用数据包中的步骤包括:所述行为建模语言域公共DPI的推入函数基于从所述硬件描述语言域公共DPI的设置函数的调用,将所述推入函数中接收的所监听的数据推入到哈希数组中存储的所述通用数据包中,
其中,所述回调队列接口自动运行所述用于集成电路验证的回调队列,以调用对所述哈希数组的多个控制函数中的至少一个控制函数,并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的步骤包括:所述回调队列接口自动运行所述用于集成电路验证的回调队列,以调用多个控制函数中的至少一个控制函数来对所推入的通用数据包进行控制,并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果,
其中,所述行为建模语言域公共DPI的推出函数被生成为基于所述硬件描述语言域公共DPI的获得函数的调用,来推出所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
3.根据权利要求2所述的方法,其中所述通用数据包包括待验证数据,
所述哈希数组包括定义数据的键和值,所述定义数据的键表示数据的名称,而所述定义数据的值表示该数据的值,
所述通用类还包括定义通用数据包的键和值,所述定义通用数据包的键表示数据包的名称,所述定义通用数据包的值表示所述数据包的所述哈希数组,
所述行为建模语言域公共DPI的推入函数包括三个输入参数:输入数据包的名称、输入数据的名称和输入数据的值,所述推入函数将接收的所监听的输入数据的名称和输入数据的值推入到由输入数据包的名称作为键所指定的通用数据包中,并返回指向所述哈希数组中存储的所述通用数据包的指针,
其中,所述回调队列接口自动运行所述用于集成电路验证的回调队列,以调用对所述哈希数组的多个控制函数中的至少一个控制函数,并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的步骤包括:所述通用类中的回调队列接口接收所述指针,并调用多个控制函数中的至少一个控制函数来对所述指针所指向的通用数据包进行控制,并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果,
所述行为建模语言域公共DPI的推出函数包括两个输入参数:输入数据包的名称、输入数据的名称,且返回针对所述输入数据包的名称、输入数据的名称的所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
4.根据权利要求3所述的方法,其中,所述硬件描述语言域公共DPI的设置函数包括三个参数:所监听的数据包的名称、所监听的数据的名称和所监听的数据的值,并且
所述硬件描述语言域公共DPI将所监听的数据传送给所述行为建模语言域公共DPI,存入哈希数组中存储的所述通用数据包中的步骤包括:所述硬件描述语言域公共DPI的设置函数调用所述行为建模语言域公共DPI的推入函数并输入所述三个参数,以将所监听的数据的名称和所监听的数据的值推入由所监听的数据包的名称作为键所指定的通用数据包,
所述硬件描述语言域公共DPI的获得函数包括两个参数:所监听的数据包的名称、所监听的数据的名称,且
所述硬件描述语言域公共DPI从所述行为建模语言域公共DPI接收所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的步骤包括:所述硬件描述语言域公共DPI的获得函数调用所述行为建模语言域公共DPI的推出函数并输入这两个参数,以得到针对所述所监听的数据包的名称、所监听的数据的名称的所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
5.根据权利要求1所述的方法,其中,所述用于集成电路验证的回调队列根据集成电路验证的实际需求而生成。
6.一种在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的集成电路验证系统,其中,
获得了在行为建模语言的仿真验证环境中的存储用于集成电路验证的通用数据包的通用类,其中该通用数据包被存储在哈希数组中;
获得了在行为建模语言的仿真验证环境中的对所述哈希数组的多个控制函数;
获得了在行为建模语言的仿真验证环境中的定义用于集成电路验证的行为建模语言仿真验证模型计算的回调队列,以便对所述哈希数组的多个控制函数中的至少一个控制函数进行调用,其中所述通用类中还包括回调队列接口,所述回调队列接口被生成为自动运行所述用于集成电路验证的回调队列;
获得了在行为建模语言的仿真验证环境中的行为建模语言域公共直接编程接口DPI和在硬件描述语言的仿真验证环境中的硬件描述语言域公共DPI,其中硬件描述语言域公共DPI与所述行为建模语言域公共DPI相互交换数据;
其中,所述集成电路验证系统包括:
使得在集成电路验证过程中,监听寄存器传输级RTL的各个接口所对应的待验证数据的装置;
使得所述硬件描述语言域公共DPI将所监听的数据传送给所述行为建模语言域公共DPI、存入哈希数组中存储的所述通用数据包中的装置;
使得所述回调队列接口自动运行所述用于集成电路验证的回调队列、以调用对所述哈希数组的多个控制函数中的至少一个控制函数、并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的装置;
使得所述硬件描述语言域公共DPI从所述行为建模语言域公共DPI接收所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的装置。
7.根据权利要求6所述的系统,其中,
所述行为建模语言域公共DPI包括推入函数、推出函数,所述硬件描述语言域公共DPI包括设置函数和获得函数,
其中,使得所述硬件描述语言域公共DPI将所监听的数据传送给所述行为建模语言域公共DPI、存入哈希数组中存储的所述通用数据包中的装置包括:使得所述行为建模语言域公共DPI的推入函数基于从所述硬件描述语言域公共DPI的设置函数的调用、将所述推入函数中接收的所监听的数据推入到哈希数组中存储的所述通用数据包中的装置,
其中,使得所述回调队列接口自动运行所述用于集成电路验证的回调队列,以调用对所述哈希数组的多个控制函数中的至少一个控制函数,并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的装置包括:使得所述回调队列接口自动运行所述用于集成电路验证的回调队列,以调用多个控制函数中的至少一个控制函数来对所推入的通用数据包进行控制,并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的装置,
其中,所述行为建模语言域公共DPI的推出函数被生成为基于所述硬件描述语言域公共DPI的获得函数的调用,来推出所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
8.根据权利要求7所述的系统,其中所述通用数据包包括待验证数据,
所述哈希数组包括定义数据的键和值,所述定义数据的键表示数据的名称,而所述定义数据的值表示该数据的值,
所述通用类还包括定义通用数据包的键和值,所述定义通用数据包的键表示数据包的名称,所述定义通用数据包的值表示所述数据包的所述哈希数组,
所述行为建模语言域公共DPI的推入函数包括三个输入参数:输入数据包的名称、输入数据的名称和输入数据的值,所述推入函数将接收的所监听的输入数据的名称和输入数据的值推入到由输入数据包的名称作为键所指定的通用数据包中,并返回指向所述哈希数组中存储的所述通用数据包的指针,
其中,使得所述回调队列接口自动运行所述用于集成电路验证的回调队列,以调用对所述哈希数组的多个控制函数中的至少一个控制函数,并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的装置包括:使得所述通用类中的回调队列接口接收所述指针、并调用多个控制函数中的至少一个控制函数来对所述指针所指向的通用数据包进行控制、并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的装置,
所述行为建模语言域公共DPI的推出函数包括两个输入参数:输入数据包的名称、输入数据的名称,且返回针对所述输入数据包的名称、输入数据的名称的所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
9.根据权利要求8所述的系统,其中,所述硬件描述语言域公共DPI的设置函数包括三个参数:所监听的数据包的名称、所监听的数据的名称和所监听的数据的值,并且
使得所述硬件描述语言域公共DPI将所监听的数据传送给所述行为建模语言域公共DPI,存入哈希数组中存储的所述通用数据包中的装置包括:使得所述硬件描述语言域公共DPI的设置函数调用所述行为建模语言域公共DPI的推入函数并输入所述三个参数,以将所监听的数据的名称和所监听的数据的值推入由所监听的数据包的名称作为键所指定的通用数据包的装置,
所述硬件描述语言域公共DPI的获得函数包括两个参数:所监听的数据包的名称、所监听的数据的名称,且
使得所述硬件描述语言域公共DPI从所述行为建模语言域公共DPI接收所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的装置包括:使得所述硬件描述语言域公共DPI的获得函数调用所述行为建模语言域公共DPI的推出函数并输入这两个参数,以得到针对所述所监听的数据包的名称、所监听的数据的名称的所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果的装置。
10.根据权利要求6所述的系统,其中,所述用于集成电路验证的回调队列根据集成电路验证的实际需求而生成。
11.一种计算机可读介质,存储了计算机可执行代码,以便在处理器的执行下进行如权利要求1-5中任一所述的在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的集成电路验证方法。
12.一种在硬件描述语言的仿真验证环境中调用行为建模语言的仿真验证环境的集成电路验证设备,包括:
处理器;
存储器,存储了计算机可执行代码,以便在处理器的执行下进行如权利要求1-5中任一所述的在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的集成电路验证方法。
13.一种在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的代码生成方法,包括
在行为建模语言的仿真验证环境中生成存储用于集成电路验证的通用数据包的通用类,其中该通用数据包被存储在哈希数组中;
在行为建模语言的仿真验证环境中生成对所述哈希数组的多个控制函数;
在行为建模语言的仿真验证环境中生成定义用于集成电路验证的行为建模语言仿真验证模型计算的回调队列,以便对所述哈希数组的多个控制函数中的至少一个控制函数进行调用,其中所述通用类中还包括回调队列接口,所述回调队列接口被生成为自动运行所述用于集成电路验证的回调队列;
在行为建模语言的仿真验证环境中生成行为建模语言域公共直接编程接口DPI和在硬件描述语言的仿真验证环境中生成硬件描述语言域公共DPI,使得硬件描述语言域公共DPI与所述行为建模语言域公共DPI相互交换数据。
14.根据权利要求13所述的方法,其中,
所述行为建模语言域公共DPI包括推入函数、推出函数,所述硬件描述语言域公共DPI包括设置函数和获得函数,
其中,所述行为建模语言域公共DPI的推入函数被生成为基于从所述硬件描述语言域公共DPI的设置函数的调用,将所述推入函数中接收的所监听的数据推入到哈希数组中存储的所述通用数据包中,
其中,所述回调队列接口被生成为自动运行所述用于集成电路验证的回调队列,以调用多个控制函数中的至少一个控制函数来对所推入的通用数据包进行控制,并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果,
其中,所述行为建模语言域公共DPI的推出函数被生成为基于所述硬件描述语言域公共DPI的获得函数的调用,来推出所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
15.根据权利要求14所述的方法,其中所述通用数据包包括待验证数据,
所述通用类还包括定义通用数据包的键和值,所述定义通用数据包的键表示数据包的名称,所述定义通用数据包的值表示所述数据包的所述哈希数组,
所述哈希数组包括定义数据的键和值,所述定义数据的键表示数据的名称,而所述定义数据的值表示该数据的值,
所述行为建模语言域公共DPI的推入函数包括三个输入参数:输入数据包的名称、输入数据的名称和输入数据的值,所述推入函数被生成为将接收的所监听的输入数据的名称和输入数据的值推入到由输入数据包的名称作为键所指定的通用数据包中,并返回指向所述哈希数组中存储的所述通用数据包的指针,
其中,所述通用类中的回调队列接口被生成为接收所述指针,并调用多个控制函数中的至少一个控制函数来对所述指针所指向的通用数据包进行控制,并得到用于所述集成电路验证的行为建模语言仿真验证模型计算的结果,
所述行为建模语言域公共DPI的推出函数包括两个输入参数:输入数据包的名称、输入数据的名称,且被生成为返回针对所述输入数据包的名称、输入数据的名称的所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
16.根据权利要求15所述的方法,其中,所述硬件描述语言域公共DPI的设置函数包括三个参数:所监听的数据包的名称、所监听的数据的名称和所监听的数据的值,并且所述硬件描述语言域公共DPI的设置函数被生成为调用所述行为建模语言域公共DPI的推入函数并输入所述三个参数,以将所监听的数据的名称和所监听的数据的值推入由所监听的数据包的名称作为键所指定的通用数据包,
所述硬件描述语言域公共DPI的获得函数包括两个参数:所监听的数据包的名称、所监听的数据的名称,且所述硬件描述语言域公共DPI的获得函数被生成为调用所述行为建模语言域公共DPI的推出函数并输入这两个参数,以得到针对所述所监听的数据包的名称、所监听的数据的名称的所述用于所述集成电路验证的行为建模语言仿真验证模型计算的结果。
17.根据权利要求13所述的方法,其中,所述用于集成电路验证的回调队列根据匹配集成电路验证的实际需求而生成。
18.一种在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的代码生成系统,包括
使得在行为建模语言的仿真验证环境中生成存储用于集成电路验证的通用数据包的通用类,其中该通用数据包被存储在哈希数组中的装置;
使得在行为建模语言的仿真验证环境中生成对所述哈希数组的多个控制函数的装置;
使得在行为建模语言的仿真验证环境中生成定义用于集成电路验证的行为建模语言仿真验证模型计算的回调队列,以便对所述哈希数组的多个控制函数中的至少一个控制函数进行调用的装置,其中所述通用类中还包括回调队列接口,所述回调队列接口被生成为自动运行所述用于集成电路验证的回调队列;
使得在行为建模语言的仿真验证环境中生成行为建模语言域公共直接编程接口DPI、在硬件描述语言的仿真验证环境中生成硬件描述语言域公共DPI、使得硬件描述语言域公共DPI与所述行为建模语言域公共DPI相互交换数据的装置。
19.一种计算机可读介质,存储了计算机可执行代码,以便在处理器的执行下进行如权利要求13-17中任一所述的在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的代码生成方法。
20.一种在用于集成电路验证的硬件描述语言的仿真验证环境中调用用于集成电路验证的行为建模语言的仿真验证环境的代码生成设备,包括:
处理器;
存储器,存储了计算机可执行代码,以便在处理器的执行下进行如权利要求13-17中任一所述的在硬件描述语言的仿真验证环境中调用行为建模语言的仿真验证环境的代码生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110713130.XA CN113343629B (zh) | 2021-06-25 | 2021-06-25 | 集成电路验证方法、代码生成方法、系统、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110713130.XA CN113343629B (zh) | 2021-06-25 | 2021-06-25 | 集成电路验证方法、代码生成方法、系统、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113343629A true CN113343629A (zh) | 2021-09-03 |
CN113343629B CN113343629B (zh) | 2023-02-28 |
Family
ID=77478797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110713130.XA Active CN113343629B (zh) | 2021-06-25 | 2021-06-25 | 集成电路验证方法、代码生成方法、系统、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113343629B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114528793A (zh) * | 2022-04-22 | 2022-05-24 | 湖南泛联新安信息科技有限公司 | 一种对Verilog HDL进行行为仿真的方法 |
TWI801084B (zh) * | 2022-01-07 | 2023-05-01 | 瑞昱半導體股份有限公司 | 用於靜態時序分析的餘量校正方法及餘量校正系統 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101504690A (zh) * | 2009-03-26 | 2009-08-12 | 北京航空航天大学 | 用于通信系统集成电路设计的实时仿真验证系统及其方法 |
US20130067437A1 (en) * | 2011-09-13 | 2013-03-14 | Junjie Chen | Providing SystemVerilog Testing Harness for a Standardized Testing Language |
CN104965750A (zh) * | 2015-06-05 | 2015-10-07 | 浪潮集团有限公司 | 基于Python语言的Rapidio切换器逻辑仿真验证平台及方法 |
US20150310159A1 (en) * | 2014-03-05 | 2015-10-29 | Vayavya Labs Private. Limited | Computer-implemented verification system for performing a functional verification of an integrated circuit |
CN106682370A (zh) * | 2017-02-28 | 2017-05-17 | 郑州云海信息技术有限公司 | 一种仿真验证系统 |
CN106708687A (zh) * | 2015-11-12 | 2017-05-24 | 青岛海信电器股份有限公司 | 一种基于可执行文件的芯片验证方法和装置 |
CN109960866A (zh) * | 2019-03-20 | 2019-07-02 | 苏州中晟宏芯信息科技有限公司 | 信号处理方法、验证方法及电子设备 |
CN112257362A (zh) * | 2020-10-27 | 2021-01-22 | 海光信息技术股份有限公司 | 逻辑代码的验证方法、验证装置以及存储介质 |
CN112417797A (zh) * | 2020-11-27 | 2021-02-26 | 海光信息技术股份有限公司 | 寄存器配置同步方法、验证平台系统及配置方法、装置 |
CN112597718A (zh) * | 2020-12-21 | 2021-04-02 | 海光信息技术股份有限公司 | 集成电路设计的验证方法、验证装置以及存储介质 |
CN112685315A (zh) * | 2021-01-05 | 2021-04-20 | 电子科技大学 | 面向c源码的自动化形式化验证工具及方法 |
-
2021
- 2021-06-25 CN CN202110713130.XA patent/CN113343629B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101504690A (zh) * | 2009-03-26 | 2009-08-12 | 北京航空航天大学 | 用于通信系统集成电路设计的实时仿真验证系统及其方法 |
US20130067437A1 (en) * | 2011-09-13 | 2013-03-14 | Junjie Chen | Providing SystemVerilog Testing Harness for a Standardized Testing Language |
US20150310159A1 (en) * | 2014-03-05 | 2015-10-29 | Vayavya Labs Private. Limited | Computer-implemented verification system for performing a functional verification of an integrated circuit |
CN104965750A (zh) * | 2015-06-05 | 2015-10-07 | 浪潮集团有限公司 | 基于Python语言的Rapidio切换器逻辑仿真验证平台及方法 |
CN106708687A (zh) * | 2015-11-12 | 2017-05-24 | 青岛海信电器股份有限公司 | 一种基于可执行文件的芯片验证方法和装置 |
CN106682370A (zh) * | 2017-02-28 | 2017-05-17 | 郑州云海信息技术有限公司 | 一种仿真验证系统 |
CN109960866A (zh) * | 2019-03-20 | 2019-07-02 | 苏州中晟宏芯信息科技有限公司 | 信号处理方法、验证方法及电子设备 |
CN112257362A (zh) * | 2020-10-27 | 2021-01-22 | 海光信息技术股份有限公司 | 逻辑代码的验证方法、验证装置以及存储介质 |
CN112417797A (zh) * | 2020-11-27 | 2021-02-26 | 海光信息技术股份有限公司 | 寄存器配置同步方法、验证平台系统及配置方法、装置 |
CN112597718A (zh) * | 2020-12-21 | 2021-04-02 | 海光信息技术股份有限公司 | 集成电路设计的验证方法、验证装置以及存储介质 |
CN112685315A (zh) * | 2021-01-05 | 2021-04-20 | 电子科技大学 | 面向c源码的自动化形式化验证工具及方法 |
Non-Patent Citations (3)
Title |
---|
KHALED SALAH: "A UVM-based smart functional verification platform: Concepts, pros, cons,and opportunities", 《RESEARCHGATE》 * |
孙雷: "基于ovm的65nmFPGA编程下载模块功能验证研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
金淼: "基于UVM的HIMAC模块验证平台的设计与实现", 《中国优秀硕士学位全文全文数据库 基于OV}T的65NMFPGA编程下载模块功能验证研究》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI801084B (zh) * | 2022-01-07 | 2023-05-01 | 瑞昱半導體股份有限公司 | 用於靜態時序分析的餘量校正方法及餘量校正系統 |
CN114528793A (zh) * | 2022-04-22 | 2022-05-24 | 湖南泛联新安信息科技有限公司 | 一种对Verilog HDL进行行为仿真的方法 |
CN114528793B (zh) * | 2022-04-22 | 2022-07-01 | 湖南泛联新安信息科技有限公司 | 一种对Verilog HDL进行行为仿真的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113343629B (zh) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11836641B2 (en) | Machine learning-based prediction of metrics at early-stage circuit design | |
US8554530B1 (en) | Methods and systems for property assertion in circuit simulation | |
US8051402B2 (en) | Method and apparatus for implementing communication between a software side and a hardware side of a test bench in a transaction-based acceleration verification system | |
US20110035203A1 (en) | system level power evaluation method | |
CN112417798B (zh) | 一种时序测试方法、装置、电子设备及存储介质 | |
CN102782651B (zh) | 硬件设计的混合式并发及串行逻辑仿真 | |
US10867091B1 (en) | Machine learning based power optimization using parallel training and localized data generation | |
CN113343629B (zh) | 集成电路验证方法、代码生成方法、系统、设备和介质 | |
US11853662B2 (en) | Machine-learning enhanced compiler | |
US7711534B2 (en) | Method and system of design verification | |
US7299446B2 (en) | Enabling efficient design reuse in platform ASICs | |
CN116341428B (zh) | 构建参考模型的方法、芯片验证方法及系统 | |
US20210374314A1 (en) | Engineering Change Order Scenario Compression by Applying Hybrid of Live and Static Timing Views | |
CN118052196A (zh) | 基于uvm的芯片验证测试方法、装置及电子设备 | |
US11022634B1 (en) | Rail block context generation for block-level rail voltage drop analysis | |
CN116069726B (zh) | 一种集成电路设计库的管理方法、设备及介质 | |
US12086521B2 (en) | Circuit design simulation and clock event reduction | |
US10936776B1 (en) | Analyzing waveform data generated for simulated circuit design | |
Morin-Allory et al. | Efficient and correct by construction assertion-based synthesis | |
US11544435B1 (en) | On-the-fly computation of analog mixed-signal (AMS) measurements | |
US11983474B1 (en) | Connecting random variables to coverage targets using an ensemble of static analysis, dynamic analysis and machine learning and guided constraint solving of the random variables during simulation of an integrated circuit | |
US20230177244A1 (en) | Creation of reduced formal model for scalable system-on-chip (soc) level connectivity verification | |
US20230071521A1 (en) | Detecting simulation, emulation and prototyping issues using static analysis tools | |
US20240111660A1 (en) | Managing high performance simulation representation of an emulation system | |
CN117149202A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |