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

技术编号:35992201 阅读:17 留言:0更新日期:2022-12-17 23:07
本发明专利技术公开一种利用CPU和虚拟串口硬件实现交互仿真环境的芯片验证方法,其包括:S1:通过Verilog语言实现虚拟串口硬件的总线接口;S2:通过C语言实现能够控制控制台的输入输出线程;S3:通过SystemVerilog语音与C语言的DPI接口向虚拟串口硬件提供五个过程;S4:将虚拟串口硬件的Verilog部分的硬件标志位与DPI接口中的控制台可写/控制台可读的接口形成组合逻辑;S5:将CPU芯片对串口的输入输出端口的读写缓冲到虚拟硬件的FIFO存储器中,使虚拟硬件实现时序逻辑;S6:在硅后验证程序中增加该虚拟串口硬件的驱动软件;S7:在仿真芯片的CPU中直接执行硅后验证程序。直接执行硅后验证程序。直接执行硅后验证程序。

【技术实现步骤摘要】
利用CPU和虚拟串口硬件实现交互仿真环境的芯片验证方法


[0001]本专利技术涉及CPU芯片验证领域,具体而言,涉及一种利用CPU和虚拟串口硬件实现交互仿真环境的芯片验证方法。

技术介绍

[0002]一般情况下,CPU芯片仿真时除了CPU芯片本身外还需要添加定时器(用于仿真进程调度)和打印控制台(用于方便调试)。但是现有的主流CPU芯片仿真环境提供的打印控制台都只有输出能力,没有输入能力,仅用作监控作用。例如:1)ARM发布的CPU测试机台,其实现的TBOX硬件只有输出没有输入;2)RISCV的OpenHW Group发布的CPU测试机台core

v

verif(参见https://github.com/openhwgroup/core

v

verif),其实现的硬件的PRINT寄存器只有输出没有输入。探究其根本原因主要为:若要实现输入则需要工程上有更强的输入输出异步编程能力;并且,CPU执行的测试程序也需要有更强的异步编程能力。
[0003]然而,在实际执行中,当不实现输入的时候,根据验证方法论通常是CPU测试机台执行完一个测试脚本就结束验证过程,如果需要同时执行多个测试时,则需要开发专门的测试用例(脚本)来实现同时运行多个测试过程,而在测试进行中缺乏控制测试行为的手段。例如在Synopsis环境下只能操作simv控制台的shell命令(只有仿真工具的命令),并没有DUT(Device Under Test,测试设备)的测试控制的shell命令,需要通过按键盘终端键才能唤起。这样硅前开发的测试用例(脚本)通常由于整合了一些仿真特有的控制手段,而无法在硅后验证时使用,测试用例(脚本)的可复用性低,验证同样的功能还需要重新开发测试用例(脚本),无疑增加了更多的工作量。
[0004]因此,需要一种能够提供输入能力的控制台以实现交互仿真环境的芯片验证方法,以实现测试用例开发一次即能复用到不同的阶段。

技术实现思路

[0005]为了解决上述问题,本专利技术提供一种利用CPU和虚拟串口硬件实现交互仿真环境的芯片验证方法,其通过提供具有输入能力的控制台,使CPU的仿真执行与通过串口操作实际硬件具备相同的功效,以能够运行交互性强且复杂的基于操作系统的测试用例,并能直接转换硅后验证程序到硅前用作CPU仿真激励,从而实现测试用例的一次开发可在不同阶段直接复用,节省开发周期与成本。
[0006]为达到上述目的,本专利技术提供了一种利用CPU和虚拟串口硬件实现交互仿真环境的芯片验证方法,其包括:
[0007]步骤S1:通过Verilog语言实现虚拟串口硬件的总线接口;
[0008]步骤S2:通过C语言实现能够控制控制台的输入输出线程,该输入输出线程为不同于芯片仿真过程而独立存在的线程;
[0009]步骤S3:通过SystemVerilog语音与C语言的DPI接口向虚拟串口硬件提供以下五个过程:初始化、控制台可读、控制台可写、写控制台及读控制台;
[0010]步骤S4:将虚拟串口硬件的Verilog部分的硬件标志位与DPI接口中的控制台可写/控制台可读的接口形成组合逻辑;
[0011]步骤S5:将CPU芯片对串口的输入输出端口的读写缓冲到虚拟硬件的FIFO存储器中,使虚拟硬件实现时序逻辑,用以通过调用读控制台/写控制台的接口完成控制台的输入输出;
[0012]步骤S6:在硅后验证程序中增加该虚拟串口硬件的驱动软件;
[0013]步骤S7:在仿真芯片的CPU中直接执行硅后验证程序。
[0014]在本专利技术一实施例中,其中,步骤S1中虚拟串口硬件的串口标准包括8250或者PL01X。
[0015]在本专利技术一实施例中,其中,步骤S3中每个过程都实现为基于Verilog语音的DPI

C接口的任务。
[0016]本专利技术提供的利用CPU和虚拟串口硬件实现交互仿真环境的芯片验证方法,与现有技术相比,通过提供了具有输入能力的控制台,使CPU的仿真执行与通过串口操作实际硬件具备相同的功效,解决了控制台没有输入能力的问题,且换硅后验证程序可直接用作硅前CPU仿真激励,从而实现测试用例的一次开发可在不同阶段直接复用,节省开发周期与成本。
附图说明
[0017]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018]图1为本专利技术一实施例的流程图;
[0019]图2为本专利技术一实施例在实施时的速率与真实硬件的速率比较示意图。
具体实施方式
[0020]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0021]图1为
[0022]本实施例提供一种利用CPU和虚拟串口硬件实现交互仿真环境的芯片验证方法,其包括:
[0023]步骤S1:通过Verilog语言实现虚拟串口硬件的总线接口,可例如为8250或者PL01X标准的串行接口,用以当CPU程序使用标准的虚拟串口硬件的串口驱动时,寄存器操作能够被该虚拟硬件截获;其中,Verilog语言是一种硬件描述语言,其是用形式化方法(文本形式)来描述和设计数字电路和数字系统的高级模块化语言。例如若采用8250标准的寄存器接口,当读写到这些接口的时候其能够被虚拟硬件的RTL(Register Transfer Level,寄存器传输级)捕获,因此可以利用CPU仿真的DPI接口(Direct Programming Interface,
直接变成接口),使用主机的控制台实现输入输出。
[0024]步骤S2:通过C语言实现能够控制控制台的输入输出线程,该输入输出线程为不同于芯片仿真过程而独立存在的线程;芯片仿真本身执行的是仿真模拟器的主线程,输入输出线程的存在是为了异步化,实现的输入输出不会阻塞,因此这里用一个额外的线程是让输入输出过程能够完全异步化,操作输入时不会阻塞输出,操作输出时亦不会阻塞输入;
[0025]步骤S3:通过SystemVerilog语音与C语言的DPI接口向虚拟串口硬件提供以下五个过程:初始化、控制台可读、控制台可写、写控制台及读控制台,其中每个过程都实现为基于Verilog语音的DPI

C接口的任务;由于每个过程都是一个DPI

C接口的任务,这五个过程相当于是控制台线程向RTL提供的控制台API(应用程序编程接口),能够通过在虚拟硬件的特定点调用以实现虚拟硬件的控制台功能;
[002本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种利用CPU和虚拟串口硬件实现交互仿真环境的芯片验证方法,其特征在于,包括:步骤S1:通过Verilog语言实现虚拟串口硬件的总线接口;步骤S2:通过C语言实现能够控制控制台的输入输出线程,该输入输出线程为不同于芯片仿真过程而独立存在的线程;步骤S3:通过SystemVerilog语音与C语言的DPI接口向虚拟串口硬件提供以下五个过程:初始化、控制台可读、控制台可写、写控制台及读控制台;步骤S4:将虚拟串口硬件的Verilog部分的硬件标志位与DPI接口中的控制台可写/控制台可读的接口形成组合逻辑;步骤S5:将CPU芯片对串口的输入输出端口的读写缓冲到虚拟硬...

【专利技术属性】
技术研发人员:郑律范东睿
申请(专利权)人:苏州睿芯集成电路科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1