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

文档序号:9249150阅读:496来源:国知局
基于Python语言的Rapidio切换器逻辑仿真验证平台及方法
【技术领域】
[0001]本发明涉及云计算技术领域,具体涉及一种基于Python语言的Rapid1切换器逻辑仿真验证平台及方法,使用Python语言进行逻辑仿真的方法。
【背景技术】
[0002]芯片的逻辑功能验证是伴随芯片设计不断发展的一个行业,功能验证在芯片的整个设计周期中占用的时间最多。尽管目前有许多技术可用于减少验证时间,但并没有一个明确适用于某一项目的验证方法。
[0003]很多带有微处理器的SOC设计项目所使用的传统的验证环境,是基于Verilog模型以及类似C驱动程序的测试向量组成的。C程序模拟芯片中微处理器的启动程序,启动后对芯片中各组件的寄存器进行读写操作,将实际得到的寄存器值与期望值进行比较,判断测试是否通过。仿真时,C程序被编译为2进制文件,由Verilog测试平台读入到微处理器的存储器模型中,然后处理器开始执行C代码编译出的程序,模拟芯片的行为。
[0004]对于没有微处理器的芯片,则基本使用Verilog测试平台。后来出现的UVM与SystemVerilog为验证人员开发面向对象的验证环境提供了方便,但是由于SystemVerilog必须向前兼容经典Verilog的语法,所以它的面向对象机制有很多固有缺陷。如何应用一种抽象层次更高,且简单易学的面向对象编程语言,成为很多芯片验证项目需要考虑的冋题。
[0005]Python语言是近些年新兴的一种脚本语言,对比其他面向对象的语言,它的优势非常明显。它的类模块支持多态、操作符重载和多重继承等高级概念,并且以Python特有的简洁的语法和类型,00P (面向对象编程Object Oriented Programming,是一种计算机编程架构)十分易于使用。
[0006]Python的使用和分发是完全免费的。就像其他的开源软件一样,Python的在线社区对用户需求的响应和商业软件一样快。而且,由于Python完全开放源代码,提高了开发者的实力,并产生了一个很大的专家团队。它可以在不同的系统平台中简单的进行移植。另外Python是一个混合体。它丰富的工具集使它介于传统的脚本语言(例如,Tcl和Perl)和系统语言(例如,C、C++和Java)之间。Python提供了所有脚本语言的简单和易用性,并且具有在编译语言中才能找到的高级软件工程工具。不像其他脚本语言,这种结合使Python在长期大型的开发项目中十分有用。

【发明内容】

[0007]本发明要解决的技术问题是:本发明针对以上问题,提供一种基于Python语言的Rapid1切换器逻辑仿真验证平台及方法。
[0008]本发明所采用的技术方案为:
基于Python语言的Rapid1切换器逻辑仿真验证平台,所述验证平台包括:对Python语义进行解释的SystemC接口函数、SystemC调用SystemVerilog的DPI接口函数、Python实现的测试用例及运行脚本。
[0009]所述验证平台实现步骤如下:
1)对Verilog编写的Rapid1切换器被测对象进行例化;
2)用Verilog程序编写基本的激励输入以及响应输出的DPI函数与外层SystemC环境进行交互;
3)编写SystemC对于Python的解释器;
4)编写Python的底层库函数;
5)编写Python的测试用例以及运行脚本。
[0010]基于Python语言的Rapid1切换器逻辑仿真验证方法,其中其中基于Python语言的逻辑仿真环境分2部分:在Cadence仿真器能够运行的部分、Python语言编写的测试用例以及相关代码部分,由于Cadence仿真器不能直接支持对Python的编译,所以需要有一种机制来连接这2部分的进程,采用共享内存的方法,利用Liunx机制,对所述2部分进程进行数据交换。
[0011]所述方法所运行的内容包括:
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实时控制仿真的进程,并得知仿真结果。
[0012]所述方法编译运行一个测试的启动步骤如下:
Python运行脚本启动;
编译Python测试用例以及库函数;
编译Cadence仿真器需要的被测对象的Verilog代码;
编译SystemC相关代码及Verilog Wrapper代码;
启动Cadence仿真器,获取相应线程以及共享内存;
运行编译过的Python代码,启动Python程序,这时Python进程可以对仿真进程的共孚内存进彳丁读与; 当仿真结束,Python测试用例执行完毕后,关闭仿真器以及其他进程。
[0013]本发明的有益效果为:本发明通过增加Python语言与SystemC语言间的解释器,使得Python语言能够直接控制逻辑仿真器的激励输入并比较响应输出,使得由Python编写的测试用例能直接用于逻辑仿真,并在一个Rapid1切换器上进行应用,通过以上环境的使用,可以极大提高测试用例的编写效率以及可复用性。
【附图说明】
[0014]图1为本发明Python语言的Rapid1切换器逻辑仿真验证平台基本结构示意图; 图2为本发明Python逻辑仿真验证平台的启动流程图;
其中:
APIS:应用程序接口 (applicat1n programe interfaces);
IUS:Incisive Unified Simulator0
【具体实施方式】
[0015]下面通过说明书附图,结合【具体实施方式】对本发明进一步说明:
基于Python语言的Rapid1切换器逻辑仿真验证平台,所述验证平台包括:对Python语义进行解释的SystemC接口函数、SystemC调用SystemVerilog的DPI接口函数、Python实现的测试用例及运行脚本。
[0016]所述验证平台实现步骤如下:
1)对Verilog编写的Rapid1切换器被测对象进行例化;
2)用Verilog程序编写基本的激励输入以及响应输出的DPI函数与外层SystemC环境进行交互;
3)编写SystemC对于Python的解释器;
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1