基于Python语言的Rapidio切换器逻辑仿真验证平台及方法_2

文档序号:9249150阅读:来源:国知局
4)编写Python的底层库函数;
5)编写Python的测试用例以及运行脚本。
[0017]基于Python语言的Rapid1切换器逻辑仿真验证方法,其中其中基于Python语言的逻辑仿真环境分2部分:在Cadence仿真器能够运行的部分、Python语言编写的测试用例以及相关代码部分,由于Cadence仿真器不能直接支持对Python的编译,所以需要有一种机制来连接这2部分的进程,采用共享内存的方法,利用Liunx机制,对所述2部分进程进行数据交换。
[0018]如图1所示,所述方法运行的内容包括:
I)Cadence仿真器部分能够运行的内容包括:
图1中间部分为由Verilog实现的Rapid1 Switch被测对象;
外层的Verilog TB wrapper例化这个被测对象,并且把更外层的SystemC送来的TLM数据包转换为具体信号流,施加给被测对象,并把被测对象的输出转换为TLM包送出;
SystemC TB负责把TLM数据流从更外层取到,分别送给SystemC的参考模型以及Verilog被测对象,对这2个的输出的数据包进行对比,并对比较结果进行输出,给到外层的API函数;
最外层的内存访问程序接口,负责通过Cadence仿真器提供的接口函数,读入加载给被测对象的数据包,并把比对结果通过Cadence仿真器提供的接口函数送入共享内存;
2)Python语言编写的测试用例以及相关代码部分运行的内容包括:
具体的测试用例以及运行脚本和一些基本库函数;每次运行一个测试用例,通过运行脚本把测试用例编译,并创建一个进程,使这个进程与Cadence仿真器的仿真进程同步,直到仿真运行完毕;
上述2部分通过2部分进程的共享内存,相互传输要测试的包信息以及测试结果,实现Cadence仿真器部分的数据与Python编译器部分的数据之间的交换,能够让Python实时控制仿真的进程,并得知仿真结果。
[0019]如图2所示,所述方法编译运行一个测试的启动步骤如下:
Python运行脚本启动;
编译Python测试用例以及库函数;
编译Cadence仿真器需要的被测对象的Verilog代码;
编译SystemC相关代码及Verilog Wrapper代码;
启动Cadence仿真器,获取相应线程以及共享内存;
运行编译过的Python代码,启动Python程序,这时Python进程可以对仿真进程的共孚内存进彳丁读与;
当仿真结束,Python测试用例执行完毕后,关闭仿真器以及其他进程。
[0020]整个仿真进程实际是由Python程序来控制,所有的仿真信息都能通过仿真器提供的API传送到Python控制端,这样就做到了整个仿真验证平台的最上层接口可以是Python的函数。我们就可以利用Python的众多优越特性,编写各种复用性很高的测试用例了。
[0021]通过以上的层次扩展,一个标准的数字逻辑设计,就可以被Python编写的测试用例驱动了。
[0022]以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
【主权项】
1.基于Python语言的Rapid1切换器逻辑仿真验证平台,其特征在于,所述验证平台包括:对Python语义进行解释的SystemC接口函数、SystemC调用SystemVerilog的DPI接口函数、Python实现的测试用例及运行脚本。2.根据权利要求1所述的基于Python语言的Rapid1切换器逻辑仿真验证平台,其特征在于,所述验证平台实现步骤如下: 1)对Verilog编写的Rapid1切换器被测对象进行例化; 2)用Verilog程序编写基本的激励输入以及响应输出的DPI函数与外层SystemC环境进行交互; 3)编写SystemC对于Python的解释器; 4)编写Python的底层库函数; 5)编写Python的测试用例以及运行脚本。3.基于Python语言的Rapid1切换器逻辑仿真验证方法,其中基于Python语言的逻辑仿真环境分2部分:在Cadence仿真器能够运行的部分、Python语言编写的测试用例以及相关代码部分,其特征在于:所述方法采用共享内存的方法,利用Liunx机制,对所述2部分进程进行数据交换。4.根据权利要求3所述的基于Python语言的Rapid1切换器逻辑仿真验证方法,其特征在于,所述方法所运行的内容如下: DCadence仿真器部分运行的内容包括: 由Verilog实现的Rapid1 Switch被测对象; 外层的Verilog TB wrapper例化这个被测对象,并且把更外层的SystemC送来的TLM数据包转换为具体信号流,施加给被测对象,并把被测对象的输出转换为TLM包送出; SystemC TB负责把TLM数据流从更外层取到,分别送给SystemC的参考模型以及Verilog被测对象,对这2个的输出的数据包进行对比,并对比较结果进行输出,给到外层的API函数; 最外层的内存访问程序接口,负责通过Cadence仿真器提供的接口函数,读入加载给被测对象的数据包,并把比对结果通过Cadence仿真器提供的接口函数送入共享内存; 2)Python语言编写的测试用例以及相关代码部分运行的内容包括: 具体的测试用例以及运行脚本和一些基本库函数;每次运行一个测试用例,通过运行脚本把测试用例编译,并创建一个进程,使这个进程与Cadence仿真器的仿真进程同步,直到仿真运行完毕; 上述2部分通过2部分进程的共享内存,相互传输要测试的包信息以及测试结果,实现Cadence仿真器部分的数据与Python编译器部分的数据之间的交换,能够让Python实时控制仿真的进程,并得知仿真结果。5.根据权利要求3或4所述的基于Python语言的Rapid1切换器逻辑仿真验证方法,其特征在于,所述方法编译运行一个测试的启动步骤如下: Python运行脚本启动; 编译Python测试用例以及库函数; 编译Cadence仿真器需要的被测对象的Verilog代码; 编译SystemC相关代码及Verilog Wrapper代码;启动Cadence仿真器,获取相应线程以及共享内存;运行编译过的Python代码,启动Python程序,对仿真进程的共享内存进行读写;当仿真结束,Python测试用例执行完毕后,关闭仿真器以及其他进程。
【专利摘要】本发明公开了一种基于Python语言的Rapidio切换器逻辑仿真验证平台及方法,所述验证平台包括:对Python语义进行解释的SystemC接口函数、SystemC调用SystemVerilog的DPI接口函数、Python实现的测试用例及运行脚本。本发明通过增加Python语言与SystemC语言间的解释器,使得Python语言能够直接控制逻辑仿真器的激励输入并比较响应输出,使得由Python编写的测试用例能直接用于逻辑仿真,并在一个Rapidio切换器上进行应用,通过以上环境的使用,可以极大提高测试用例的编写效率以及可复用性。
【IPC分类】G06F9/455
【公开号】CN104965750
【申请号】CN201510303882
【发明人】耿介, 姜凯, 于治楼
【申请人】浪潮集团有限公司
【公开日】2015年10月7日
【申请日】2015年6月5日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1