CN102810123A - 一种激励产生方法及装置 - Google Patents
一种激励产生方法及装置 Download PDFInfo
- Publication number
- CN102810123A CN102810123A CN2011101474463A CN201110147446A CN102810123A CN 102810123 A CN102810123 A CN 102810123A CN 2011101474463 A CN2011101474463 A CN 2011101474463A CN 201110147446 A CN201110147446 A CN 201110147446A CN 102810123 A CN102810123 A CN 102810123A
- Authority
- CN
- China
- Prior art keywords
- test case
- command
- order
- tested
- command file
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种激励产生方法,包括:接收携带有测试用例命令的命令文件;对所述测试用例命令进行翻译,生成与所述测试用例命令相对应的文本命令;依据所述文本命令产生事务,并将所述事务按照待测试对象的时序要求发送给所述待测试对象。本申请实施例提供的激励产生方法,在激励产生过程中,应用python语言编写较为复杂的命令文件,通过翻译器将所述复杂的命令文件翻译为精简的文本命令文件;经过翻译的文本命令文件适合与任何语言的验证环境相配合,便于移植;本申请实施例提供的激励产生方法相对于传统的硬件语言产生激励,增加了翻译过程,提供了高抽象层次的事务级激励编写机制,提高了生产效率,验证效率,灵活度高。
Description
技术领域
本申请涉及集成电路验证领域,特别是涉及一种激励产生方法及装置。
背景技术
在IC仿真验证过程中,需要为DUT(待测试的对象)提供完备的激励,需要一种可读性高,高抽象层次的,支持随机、自动化的激励描述与产生机制。
现有的一般采用传统的硬件描述语言,如VERILOG VHDL,对DUT进行仿真验证,在使用传统硬件描述语言进行高抽象层次的激励描述时,由于硬件描述序言缺乏丰富的随机机制,造成描述语句用于,不易理解;从而导致验证效率不高,验证的灵活度低。
发明内容
为解决上述技术问题,本申请实施例提供一种可读性高、高效率、高灵活度的激励产生方法及装置。
技术方案如下:
一种激励产生方法,包括:
接收携带有测试用例命令的命令文件;
对所述测试用例命令进行翻译,生成与所述测试用例命令相对应的文本命令;
依据所述文本命令产生事务,并将所述事务按照待测试对象的时序要求发送给所述待测试对象。
上述的方法,优选的,所述对测试用例命令进行翻译包括:
读取所述命令文件中的测试用例命令;
解析所述测试用例命令获取所述测试用例命令中的目标地址范围;
依据所述目标地址范围生成与其相适应的操作数;
解析所述操作数的操作类型并生成与所述操作类型相对应的命令序列;
将所述命令序列转换为文本格式的命令。
上述的方法,优选的,还包括:
接收所述待测试对象依据所述事务输出的功能部件,
对所述功能部件进行分析获得所述待测试对象的输出数据。
上述的方法,优选的,所述携带有测试用例命令的命令文件基于python语言编写;
所述测试用例命令包含目标、操作和数据。
一种激励产生装置,包括:
接收器,用于接收携带有测试用例命令的命令文件;
翻译器,用于对所述接收器接收的命令文件中的测试用例命令进行翻译,生成与所述测试用例命令相对应的文本命令;
事务级参考模块,用于依据所述翻译器翻译的文本命令产生事务,并将所述事务按照待测试对象的时序要求发送给所述待测试对象。
上述的装置,优选的,所述翻译器包括:
读取单元,用于读取所述接收器接收的命令文件中的测试用例命令;
第一解析单元,用于解析所述读取单元读取的测试用例命令,获取所述测试命令中的目标地址范围;
生成单元,用于依据所述第一解析单元获取的目标地址范围生成与所述目标地址范围相适应的操作数;
第二解析单元,用于解析所述生成单元生成的操作数的操作类型,并生成与所述操作类型相对应的命令序列;
转换单元,用于将所述命令序列转换为文本格式的命令。
上述的装置,优选的,还包括:
监视器,用于接收所述待测试对象依据所述事务级参考模块产生的事务输出的功能部件;并对所述功能部件进行解析获得所述待测试对象的输出数据。
上述的装置,优选的,所述接收器接收的携带有测试用例命令的命令文件基于python语言编写。
由以上本申请实施例提供的技术方案可见,本发明提供的激励产生方法及装置,接收携带有测试用例命令的命令文件,对所述测试用例命令进行翻译,将所述测试用例命令翻译为易被解析的文本命令,依据所述文本命令产生事务,并将所述事务按照待测试对象的时序要求发送给待测试对象,完成对所述待测试对象的激励。
本申请实施例提供的激励产生方法及装置,在激励产生过程中,应用python语言编写较为复杂的命令文件,通过翻译器将所述复杂的命令文件翻译为精简的文本命令文件。
本申请实施例提供的激励产生方法中,接收应用python语言编写的命令文件,基于python语言编写的命令文件,渐近于自然语言,其可读性好、容易理解,并且有助于复用和维护;经过翻译的文本命令文件适合与任何语言的验证环境相配合,便于移植。
本申请实施例提供的激励产生方法相对于传统的硬件语言产生激励,增加了翻译过程,提供了高抽象层次的事务级激励编写机制,提高了生产效率,验证效率,灵活度高。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种激励产生方法实施例一的方法流程图;
图2为本申请实施例提供的一种激励产生方法实施例二的方法流程图;
图3为本申请实施例提供的一种激励产生方法实施例三的方法流程图;
图4为本申请实施例提供的一种激励产生装置实施例一的结构示意图;
图5为本申请实施例提供的一种激励产生装置实施例二的结构示意图;
图6为本申请实施例提供的一种激励产生装置实施例三的结构示意图;
图7为本申请实施例提供的激励产生过程中验证环境样例示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案。下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
实施例一
本申请实施例提供的一种激励产生方法的方法流程图如图1所示,包括:
步骤S101:接收携带有测试用例命令的命令文件;
本申请实施例提供的激励产生方法中,在仿真验证环境下,基于python语言编写测试用例,即包含有测试用例命令的命令文件;
所述命令文件是一种自定义的文本格式文件,包含多条用来激励待测试对象的命令,每条命令都包含指令、地址、数据等;
对于应用python语言编写的命令文件,可以支持所有python语言的语法,包括:数据格式类型;随机机制;流程控制语句如循环,条件分支等;
命令文件中包含目标,操作,数据<可选>等部分:
目标是具备相同属性的一类或一个芯片可控制单元;包括同一页面内所有的寄存器,所有页面中同一类型的寄存器,缓存/存储器中的内容块;
操作是针对目标的,包含如:write_all,写所有;Read_all,读所有;
Possible_write,不固定的写等;
数据可以是直接的常数,也可以是一个约束集合,约束语言遵从python语言的约束语法;
步骤S102:对所述测试用例命令进行翻译,生成与所述测试用例命令相对应的文本命令;
接收到所述携带有测试用例命令的命令文件后,对所述命令文件中的测试用例命令进行翻译,将初始编写的复杂测试用例命令精简为简单的文本命令;
文本命令的文件命令格式分三列:
Unit_Operater address<data>
其中:Unit_Operater包括read,write等原子操作。
步骤S103:依据所述文本命令产生事务,并将所述事务按照待测试对象的时序要求发送给所述待测试对象;
本申请实施例提供的激励产生方法中,引擎芯片即待测试对象中,包含7个页面,每个页面含有相同的一组寄存器,其中包含一个xxx寄存器;对所述xxx寄存器进行写操作即:
xxx(data).write_all;
翻译过程由python语言实现,负责翻译命令文件;
测试用例命令翻译为文本命令如下:
Write address_xxx_page_1 data
Write address_xxx_page_2 data
Write address_xxx_page_3 data
Write address_xxx_page_4 data
Write address_xxx_page_5 data
Write address_xxx_page_6 data
Write address_xxx_page_7 data
address_xxx_page_n是该寄存器xxx的逻辑地址,后缀n表示数据所写入的页面,data为写入该页面的实际数据;
所述文本命令的解析过程简单,适合与任何语言的验证环境配合,依据所述文本命令产生事务,并将所述事务按照待测试对象的时序要求发送给所述待测试对象,完成对所述待测试对象的激励。
实施例二
在实施例一的基础上,本申请实施例对于所述测试用例命令翻译为文本命令的过程进行详细阐述,其翻译过程流程图如图2所示,包括:
步骤S201:读取所述命令文件中的测试用例命令;
首先读入python格式的命令文件中的命令;
步骤S202:解析所述测试用例命令获取所述测试用例命令中的目标地址范围;
步骤S203:依据所述目标地址范围生成与其相适应的操作数;
生成在所述目标地址范围内合理的操作数;
步骤S204:解析所述操作数的操作类型并生成与所述操作类型相对应的命令序列;
步骤S205:将所述命令序列转换为文本格式的命令。
实施例二的翻译过程,依据实际芯片即待测试对象的设计需求,选择目标、操作集合,应用相应的类函数实现翻译过程。
实施例三
在实施例一的基础上,本申请实施例提供的激励产生方法还包括一些后续步骤如图3所示,步骤S101~步骤S103如实施例一中所述,此处不再赘述;
步骤S104:接收所述待测试对象依据所述事务输出的功能部件;
步骤S105:对所述功能部件进行分析获得所述待测试对象的输出数据。
对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
针对以上方法实施例,本申请实施例还提供了一种激励产生装置,其结构示意图如图4所示,包括:
接收器301,用于接收携带有测试用例命令的命令文件;
翻译器302,用于对所述接收器301接收的命令文件中的测试用例命令进行翻译,生成与所述测试用例命令相对应的文本命令;
事务级参考模块303,用于依据所述翻译器302翻译的文本命令产生事务,并将所述事务按照待测试对象的时序要求发送给所述待测试对象。
事务级参考模块303可以是一个参考模型,本申请实施例提供的参考模型采用C语言程序编写实现以驱动所述硬件事务级参考模块;事务级参考模块每从文本文件中读入一个命令,都生成一个事务,同时将所述事务发送给总线功能模型。
在图4所述激励产生装置的基础上,翻译器301的具体结构如图5所示,包括:
读取单元304,用于读取所述接收器301接收的命令文件中的测试用例命令;
第一解析单元305,用于解析所述读取单元304读取的测试用例命令,获取所述测试命令中的目标地址范围;
生成单元306,用于依据所述第一解析单元305获取的目标地址范围生成与所述目标地址范围相适应的操作数;
第二解析单元307,用于解析所述生成单元306生成的操作数的操作类型,并生成与所述操作类型相对应的命令序列;
转换单元308,用于将所述命令序列转换为文本格式的命令。
本申请实施例提供的激励产生装置中还包括监视器309,其结构示意图如图6所示,
监视器309,用于接收所述待测试对象依据所述事务级参考模块303产生的事务输出的功能部件;并对所述功能部件进行解析获得所述待测试对象的输出数据。
对于系统实施例而言,由于其基本相应于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
综合上述激励产生方法及装置,本申请实施例提供的验证环境样例示意图如图7所示,翻译器将编写的复杂命令文件翻译为精简命令文件,通过C程序驱动的事务级参考模型产生事务;总线功能模型接收事务级输入,并按芯片的时序要求发送至DUT(待测试对象);监视器接收DUT输出的功能部件,分析出有效数据,传送给比较检查器。
在图7中,翻译器将复杂命令文件翻译为精简命令文件,及事务级参考模型接收精简命令文件的过程属于逻辑处理过程,处理的过程包含事务级数据流的处理;剩余的其它过程为数据处理过程。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (8)
1.一种激励产生方法,其特征在于,包括:
接收携带有测试用例命令的命令文件;
对所述测试用例命令进行翻译,生成与所述测试用例命令相对应的文本命令;
依据所述文本命令产生事务,并将所述事务按照待测试对象的时序要求发送给所述待测试对象。
2.根据权利要求1所述的方法,其特征在于,所述对测试用例命令进行翻译包括:
读取所述命令文件中的测试用例命令;
解析所述测试用例命令获取所述测试用例命令中的目标地址范围;
依据所述目标地址范围生成与其相适应的操作数;
解析所述操作数的操作类型并生成与所述操作类型相对应的命令序列;
将所述命令序列转换为文本格式的命令。
3.根据权利要求1所述的方法,其特征在于,还包括:
接收所述待测试对象依据所述事务输出的功能部件,
对所述功能部件进行分析获得所述待测试对象的输出数据。
4.根据权利要求1所述的方法,其特征在于,所述携带有测试用例命令的命令文件基于python语言编写;
所述测试用例命令包含目标、操作和数据。
5.一种激励产生装置,其特征在于,包括:
接收器,用于接收携带有测试用例命令的命令文件;
翻译器,用于对所述接收器接收的命令文件中的测试用例命令进行翻译,生成与所述测试用例命令相对应的文本命令;
事务级参考模块,用于依据所述翻译器翻译的文本命令产生事务,并将所述事务按照待测试对象的时序要求发送给所述待测试对象。
6.根据权利要求5所述的装置,其特征在于,所述翻译器包括:
读取单元,用于读取所述接收器接收的命令文件中的测试用例命令;
第一解析单元,用于解析所述读取单元读取的测试用例命令,获取所述测试命令中的目标地址范围;
生成单元,用于依据所述第一解析单元获取的目标地址范围生成与所述目标地址范围相适应的操作数;
第二解析单元,用于解析所述生成单元生成的操作数的操作类型,并生成与所述操作类型相对应的命令序列;
转换单元,用于将所述命令序列转换为文本格式的命令。
7.根据权利要求5所述的装置,其特征在于,还包括:
监视器,用于接收所述待测试对象依据所述事务级参考模块产生的事务输出的功能部件;并对所述功能部件进行解析获得所述待测试对象的输出数据。
8.根据权利要求5所述的装置,其特征在于,所述接收器接收的携带有测试用例命令的命令文件基于python语言编写。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101474463A CN102810123A (zh) | 2011-06-02 | 2011-06-02 | 一种激励产生方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101474463A CN102810123A (zh) | 2011-06-02 | 2011-06-02 | 一种激励产生方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102810123A true CN102810123A (zh) | 2012-12-05 |
Family
ID=47233829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101474463A Pending CN102810123A (zh) | 2011-06-02 | 2011-06-02 | 一种激励产生方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102810123A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294143A (zh) * | 2016-08-03 | 2017-01-04 | 北京百度网讯科技有限公司 | 芯片的寄存器的调试方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090089773A1 (en) * | 2007-10-02 | 2009-04-02 | Huestis Jonathan M | System and method of delivering software product updates via a response file |
CN101551778A (zh) * | 2009-05-08 | 2009-10-07 | 刘志方 | 支持Python扩展的测试方法 |
CN101833498A (zh) * | 2009-07-31 | 2010-09-15 | 北京伟晨豪嘉科技有限责任公司 | 一种基于测试脚本技术的嵌入式系统自动化检测系统 |
-
2011
- 2011-06-02 CN CN2011101474463A patent/CN102810123A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090089773A1 (en) * | 2007-10-02 | 2009-04-02 | Huestis Jonathan M | System and method of delivering software product updates via a response file |
CN101551778A (zh) * | 2009-05-08 | 2009-10-07 | 刘志方 | 支持Python扩展的测试方法 |
CN101833498A (zh) * | 2009-07-31 | 2010-09-15 | 北京伟晨豪嘉科技有限责任公司 | 一种基于测试脚本技术的嵌入式系统自动化检测系统 |
Non-Patent Citations (2)
Title |
---|
丁敏: "《基于python语言实现自动化测试的研究》", 《数字技术与应用》, no. 3, 31 March 2010 (2010-03-31), pages 88 * |
蒋崇武,刘斌,王轶辰等: "《基于Python的实时嵌入式软件测试脚本》", 《计算机工程》, vol. 35, no. 15, 31 August 2009 (2009-08-31) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294143A (zh) * | 2016-08-03 | 2017-01-04 | 北京百度网讯科技有限公司 | 芯片的寄存器的调试方法及装置 |
CN106294143B (zh) * | 2016-08-03 | 2020-03-03 | 北京百度网讯科技有限公司 | 芯片的寄存器的调试方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3593250B1 (en) | Debugging system and method | |
US8341568B2 (en) | Systems and methods for logic verification | |
CN100573537C (zh) | 一种soc芯片系统级验证系统及方法 | |
CN102222004B (zh) | 交换机专用语言转换为c语言的方法 | |
EP3249543A1 (en) | Interface signal remapping method based on fpga | |
JP2009134739A (ja) | シミュレーション装置、変換装置、非同期回路、及びic | |
CN102929682B (zh) | 自动扩展tcl语言的预处理方法和装置 | |
CN102436385A (zh) | 一种可编程逻辑器件配置文件在线更新装置 | |
CN103714288B (zh) | 一种数据流跟踪方法 | |
CN102480467A (zh) | 一种基于网络通讯协议的soc软硬件协同仿真验证方法 | |
CN102520761A (zh) | 一种基于自定义处理器的任意波形产生系统 | |
CN101770388A (zh) | 获取芯片代码信息的方法和装置 | |
JP2017524180A (ja) | 高位合成を用いて高効率のエントロピーデコーダを実装するための方法 | |
CN114510432B (zh) | 一种寄存器调试平台和调试方法 | |
CN101008962A (zh) | 可配置可替换的网络芯片使用参考模型的验证方法 | |
CN105740579A (zh) | 一种连接uvm验证平台的搭建方法 | |
CN1815480B (zh) | 从波形图产生硬件设计语言触发的方法与系统 | |
CN102810123A (zh) | 一种激励产生方法及装置 | |
CN112905450A (zh) | 基于模板变量替换的芯片寄存器自动开发系统 | |
CN101441600B (zh) | 一种微处理器验证中快速换页的装置和方法 | |
CN107526585B (zh) | 基于Scala的FPGA开发平台及其调试、测试方法 | |
CN104102496A (zh) | 一种基于windows平台的银行自助系统跨浏览器插件的开发方法 | |
Zheng et al. | The methods of FPGA software verification | |
CN112232003B (zh) | 对设计进行仿真的方法、电子设备及存储介质 | |
Barker-Plummer et al. | Openproof-a flexible framework for heterogeneous reasoning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20121205 |