本发明专利技术公开了一种基于Python语言的Rapidio切换器逻辑仿真验证平台及方法,所述验证平台包括:对Python语义进行解释的SystemC接口函数、SystemC调用SystemVerilog的DPI接口函数、Python实现的测试用例及运行脚本。本发明专利技术通过增加Python语言与SystemC语言间的解释器,使得Python语言能够直接控制逻辑仿真器的激励输入并比较响应输出,使得由Python编写的测试用例能直接用于逻辑仿真,并在一个Rapidio切换器上进行应用,通过以上环境的使用,可以极大提高测试用例的编写效率以及可复用性。
【技术实现步骤摘要】
本专利技术涉及云计算
,具体涉及一种基于Python语言的Rapid1切换器逻辑仿真验证平台及方法,使用Python语言进行逻辑仿真的方法。
技术介绍
芯片的逻辑功能验证是伴随芯片设计不断发展的一个行业,功能验证在芯片的整个设计周期中占用的时间最多。尽管目前有许多技术可用于减少验证时间,但并没有一个明确适用于某一项目的验证方法。很多带有微处理器的SOC设计项目所使用的传统的验证环境,是基于Verilog模型以及类似C驱动程序的测试向量组成的。C程序模拟芯片中微处理器的启动程序,启动后对芯片中各组件的寄存器进行读写操作,将实际得到的寄存器值与期望值进行比较,判断测试是否通过。仿真时,C程序被编译为2进制文件,由Verilog测试平台读入到微处理器的存储器模型中,然后处理器开始执行C代码编译出的程序,模拟芯片的行为。对于没有微处理器的芯片,则基本使用Verilog测试平台。后来出现的UVM与SystemVerilog为验证人员开发面向对象的验证环境提供了方便,但是由于SystemVerilog必须向前兼容经典Verilog的语法,所以它的面向对象机制有很多固有缺陷。如何应用一种抽象层次更高,且简单易学的面向对象编程语言,成为很多芯片验证项目需要考虑的冋题。Python语言是近些年新兴的一种脚本语言,对比其他面向对象的语言,它的优势非常明显。它的类模块支持多态、操作符重载和多重继承等高级概念,并且以Python特有的简洁的语法和类型,00P (面向对象编程Object Oriented Programming,是一种计算机编程架构)十分易于使用。Python的使用和分发是完全免费的。就像其他的开源软件一样,Python的在线社区对用户需求的响应和商业软件一样快。而且,由于Python完全开放源代码,提高了开发者的实力,并产生了一个很大的专家团队。它可以在不同的系统平台中简单的进行移植。另外Python是一个混合体。它丰富的工具集使它介于传统的脚本语言(例如,Tcl和Perl)和系统语言(例如,C、C++和Java)之间。Python提供了所有脚本语言的简单和易用性,并且具有在编译语言中才能找到的高级软件工程工具。不像其他脚本语言,这种结合使Python在长期大型的开发项目中十分有用。
技术实现思路
本专利技术要解决的技术问题是:本专利技术针对以上问题,提供一种基于Python语言的Rapid1切换器逻辑仿真验证平台及方法。本专利技术所采用的技术方案为:基于Python语言的Rapid1切换器逻辑仿真验证平台,所述验证平台包括:对Python语义进行解释的SystemC接口函数、SystemC调用SystemVerilog的DPI接口函数、Python实现的测试用例及运行脚本。所述验证平台实现步骤如下: 1)对Verilog编写的Rapid1切换器被测对象进行例化; 2)用Verilog程序编写基本的激励输入以及响应输出的DPI函数与外层SystemC环境进行交互; 3)编写SystemC对于Python的解释器; 4)编写Python的底层库函数; 5)编写Python的测试用例以及运行脚本。基于Python语言的Rapid1切换器逻辑仿真验证方法,其中其中基于Python语言的逻辑仿真环境分2部分:在Cadence仿真器能够运行的部分、Python语言编写的测试用例以及相关代码部分,由于Cadence仿真器不能直接支持对Python的编译,所以需要有一种机制来连接这2部分的进程,采用共享内存的方法,利用Liunx机制,对所述2部分进程进行数据交换。所述方法所运行的内容包括: 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实时控制仿真的进程,并得知仿真结果。所述方法编译运行一个测试的启动步骤如下: Python运行脚本启动; 编译Python测试用例以及库函数; 编译Cadence仿真器需要的被测对象的Verilog代码; 编译SystemC相关代码及Verilog Wrapper代码; 启动Cadence仿真器,获取相应线程以及共享内存; 运行编译过的Python代码,启动Python程序,这时Python进程可以对仿真进程的共孚内存进彳丁读与; 当仿真结束,Python测试用例执行完毕后,关闭仿真器以及其他进程。本专利技术的有益效果为:本专利技术通过增加Python语言与SystemC语言间的解释器,使得Python语言能够直接控制逻辑仿真器的激励输入并比较响应输出,使得由Python编写的测试用例能直接用于逻辑仿真,并在一个Rapid1切换器上进行应用,通过以上环境的使用,可以极大提高测试用例的编写效率以及可复用性。【附图说明】图1为本专利技术Python语言的Rapid1切换器逻辑仿真验证平台基本结构示意图; 图2为本专利技术Python逻辑仿真验证平台的启动流程图; 其中: APIS:应用程序接口 (applicat1n programe interfaces);IUS:Incisive Unified Simulator0【具体实施方式】下面通过说明书附图,结合【具体实施方式】对本专利技术进一步说明: 基于Python语言的Rapid1切换器逻辑仿真验证平台,所述验证平台包括:对Python语义进行解释的SystemC接口函数、SystemC调用SystemVerilog的DPI接口函数、Python实现的测试用例及运行脚本。所述验证平台实现步骤如下: 1)对Verilog编写的Rapid1切换器被测对象进行例化; 2)用Verilog程序编写基本的激励输入以及响应输出的DPI函数与外层SystemC环境进行交互; 3)编写SystemC对于Python的解释器;当前第1页1 2 本文档来自技高网...
【技术保护点】
基于Python语言的Rapidio切换器逻辑仿真验证平台,其特征在于,所述验证平台包括:对Python语义进行解释的SystemC接口函数、SystemC调用SystemVerilog的DPI接口函数、 Python实现的测试用例及运行脚本。
【技术特征摘要】
【专利技术属性】
技术研发人员:耿介,姜凯,于治楼,
申请(专利权)人:浪潮集团有限公司,
类型:发明
国别省市:山东;37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。