一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

利用CPU和虚拟串口硬件实现交互仿真环境的芯片验证方法与流程

2022-12-19 22:20:33 来源:中国专利 TAG:

利用cpu和虚拟串口硬件实现交互仿真环境的芯片验证方法
技术领域
1.本发明涉及cpu芯片验证领域,具体而言,涉及一种利用cpu和虚拟串口硬件实现交互仿真环境的芯片验证方法。


背景技术:

2.一般情况下,cpu芯片仿真时除了cpu芯片本身外还需要添加定时器(用于仿真进程调度)和打印控制台(用于方便调试)。但是现有的主流cpu芯片仿真环境提供的打印控制台都只有输出能力,没有输入能力,仅用作监控作用。例如:1)arm发布的cpu测试机台,其实现的tbox硬件只有输出没有输入;2)riscv的openhw group发布的cpu测试机台core-v-verif(参见https://github.com/openhwgroup/core-v-verif),其实现的硬件的print寄存器只有输出没有输入。探究其根本原因主要为:若要实现输入则需要工程上有更强的输入输出异步编程能力;并且,cpu执行的测试程序也需要有更强的异步编程能力。
3.然而,在实际执行中,当不实现输入的时候,根据验证方法论通常是cpu测试机台执行完一个测试脚本就结束验证过程,如果需要同时执行多个测试时,则需要开发专门的测试用例(脚本)来实现同时运行多个测试过程,而在测试进行中缺乏控制测试行为的手段。例如在synopsis环境下只能操作simv控制台的shell命令(只有仿真工具的命令),并没有dut(device under test,测试设备)的测试控制的shell命令,需要通过按键盘终端键才能唤起。这样硅前开发的测试用例(脚本)通常由于整合了一些仿真特有的控制手段,而无法在硅后验证时使用,测试用例(脚本)的可复用性低,验证同样的功能还需要重新开发测试用例(脚本),无疑增加了更多的工作量。
4.因此,需要一种能够提供输入能力的控制台以实现交互仿真环境的芯片验证方法,以实现测试用例开发一次即能复用到不同的阶段。


技术实现要素:

5.为了解决上述问题,本发明提供一种利用cpu和虚拟串口硬件实现交互仿真环境的芯片验证方法,其通过提供具有输入能力的控制台,使cpu的仿真执行与通过串口操作实际硬件具备相同的功效,以能够运行交互性强且复杂的基于操作系统的测试用例,并能直接转换硅后验证程序到硅前用作cpu仿真激励,从而实现测试用例的一次开发可在不同阶段直接复用,节省开发周期与成本。
6.为达到上述目的,本发明提供了一种利用cpu和虚拟串口硬件实现交互仿真环境的芯片验证方法,其包括:
7.步骤s1:通过verilog语言实现虚拟串口硬件的总线接口;
8.步骤s2:通过c语言实现能够控制控制台的输入输出线程,该输入输出线程为不同于芯片仿真过程而独立存在的线程;
9.步骤s3:通过systemverilog语音与c语言的dpi接口向虚拟串口硬件提供以下五个过程:初始化、控制台可读、控制台可写、写控制台及读控制台;
10.步骤s4:将虚拟串口硬件的verilog部分的硬件标志位与dpi接口中的控制台可写/控制台可读的接口形成组合逻辑;
11.步骤s5:将cpu芯片对串口的输入输出端口的读写缓冲到虚拟硬件的fifo存储器中,使虚拟硬件实现时序逻辑,用以通过调用读控制台/写控制台的接口完成控制台的输入输出;
12.步骤s6:在硅后验证程序中增加该虚拟串口硬件的驱动软件;
13.步骤s7:在仿真芯片的cpu中直接执行硅后验证程序。
14.在本发明一实施例中,其中,步骤s1中虚拟串口硬件的串口标准包括8250或者pl01x。
15.在本发明一实施例中,其中,步骤s3中每个过程都实现为基于verilog语音的dpi-c接口的任务。
16.本发明提供的利用cpu和虚拟串口硬件实现交互仿真环境的芯片验证方法,与现有技术相比,通过提供了具有输入能力的控制台,使cpu的仿真执行与通过串口操作实际硬件具备相同的功效,解决了控制台没有输入能力的问题,且换硅后验证程序可直接用作硅前cpu仿真激励,从而实现测试用例的一次开发可在不同阶段直接复用,节省开发周期与成本。
附图说明
17.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1为本发明一实施例的流程图;
19.图2为本发明一实施例在实施时的速率与真实硬件的速率比较示意图。
具体实施方式
20.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.图1为
22.本实施例提供一种利用cpu和虚拟串口硬件实现交互仿真环境的芯片验证方法,其包括:
23.步骤s1:通过verilog语言实现虚拟串口硬件的总线接口,可例如为8250或者pl01x标准的串行接口,用以当cpu程序使用标准的虚拟串口硬件的串口驱动时,寄存器操作能够被该虚拟硬件截获;其中,verilog语言是一种硬件描述语言,其是用形式化方法(文本形式)来描述和设计数字电路和数字系统的高级模块化语言。例如若采用8250标准的寄存器接口,当读写到这些接口的时候其能够被虚拟硬件的rtl(register transfer level,寄存器传输级)捕获,因此可以利用cpu仿真的dpi接口(direct programming interface,
直接变成接口),使用主机的控制台实现输入输出。
24.步骤s2:通过c语言实现能够控制控制台的输入输出线程,该输入输出线程为不同于芯片仿真过程而独立存在的线程;芯片仿真本身执行的是仿真模拟器的主线程,输入输出线程的存在是为了异步化,实现的输入输出不会阻塞,因此这里用一个额外的线程是让输入输出过程能够完全异步化,操作输入时不会阻塞输出,操作输出时亦不会阻塞输入;
25.步骤s3:通过systemverilog语音与c语言的dpi接口向虚拟串口硬件提供以下五个过程:初始化、控制台可读、控制台可写、写控制台及读控制台,其中每个过程都实现为基于verilog语音的dpi-c接口的任务;由于每个过程都是一个dpi-c接口的任务,这五个过程相当于是控制台线程向rtl提供的控制台api(应用程序编程接口),能够通过在虚拟硬件的特定点调用以实现虚拟硬件的控制台功能;
26.步骤s4:将虚拟串口硬件的verilog部分的硬件标志位与dpi接口中的控制台可写/控制台可读的接口形成组合逻辑;
27.步骤s5:将cpu芯片对串口的输入输出端口(io端口)的读写(例如cpu芯片操作8250串口的rbr和thr寄存器)缓冲到虚拟硬件的fifo(first input first output)存储器中,使虚拟硬件实现时序逻辑,用以通过调用读控制台/写控制台的接口完成控制台的输入输出;
28.本实施例的组合逻辑和时序逻辑均为verilog的术语,其中,组合逻辑表达的是一种满足确定条件即可得到确定状态和时钟无关的永久连线的逻辑,实现的时序逻辑为fifo中的clock in/out串口数据。
29.步骤s6:在硅后验证程序中增加该虚拟串口硬件的驱动软件;
30.步骤s7:在仿真芯片的cpu中直接执行硅后验证程序。
31.通过步骤s1~s6的过程,在步骤s7执行硅后验证程序时,在仿真芯片上运行时相当于启动了一个测试目标设备dut的一个串口控制台,因此可以获得与真实硬件完全一样的验证交互体验,可以在该串口控制台内操作对应dut。当实现输入的时候,根据验证方法论将cpu测试机台当实际硬件的板子一样使用,通过执行命令行来控制测试机台的测试行为,实现多个测试同时反复执行,如此一来测试系统就成了一个测试操作系统(testos),而不是通过脚本执行的测试用例,测试中实际使用的是测试系统的shell命令(测试程序实现的测试命令,即测试串口的控制台)。这样硅前开发的测试用例(脚本)由于将dut当作实际硬件使用,其开发的测试用例(脚本)才能在硅后验证可以直接复用。
32.此外,注意到cpu通过总线接口对串口控制器的输入输出寄存器读写直接被转换成控制台读写,与波特率无关,被仿真的程序完全可以达到硅前仿真所需要的速度。图2为本发明一实施例在实施时的速率与真实硬件的速率比较示意图,如图2所示,其中a为本实施例采用8250标准串口的虚拟串口硬件,b为真实8250标准的硬件,cpu总线速度一般配置为cpu同频率,以仿真2ghz的cpu,总线报文损耗10%性能(一般远远低于10%)为例,a与b的速度比值是:1800000000bps:115200bps。
33.本发明提供的利用cpu和虚拟串口硬件实现交互仿真环境的芯片验证方法,通过提供了具有输入能力的控制台,使cpu的仿真执行与通过串口操作实际硬件具备相同的功效,解决了控制台没有输入能力的问题,且换硅后验证程序可直接用作硅前cpu仿真激励,从而实现测试用例的一次开发可在不同阶段直接复用,节省开发周期与成本。
34.本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
35.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献