本发明涉及网络芯片设计的软硬协同仿真和验证,特别涉及一种网络芯片设计软硬协同仿真和业务验证的软件框架及方法。
背景技术:
1、随着现代信息技术和通信网络的快速发展,交换网络的应用场景日趋复杂化,功能需求日益增多,对此类交换芯片的功能开发以及验证周期提出了更高的要求。
2、在目前的芯片开发流程中,常见的软硬件协同验证平台如下:
3、(1)c-模型验证:c-模型即采用c++高级语言,通过建模的方式,模拟出报文在芯片中的处理逻辑;芯片开发早期通过完成对c-模型的功能测试,指导基于硬件描述语言(hdl)的功能实现。
4、(2)rtl(register-transfer level)仿真环境验证:rtl仿真环境验证贯穿整个芯片开发周期,提供更全面的功能验证,属于硬件语言寄存器级别的验证仿真,运行速度相对较慢。
5、(3)加速仿真器(emulator)验证:加速仿真器的验证,往往在芯片的开发中后期,通过将待验证的硬件设计逻辑加载到加速仿真器上,对芯片的功能及性能进行测试验证,其相对rtl仿真速度更快。
6、(4)asic(application specific integrated circuit)验证:asic验证即对完成生产制造的原型样片进行板级测试,验证芯片设计的功能、性能,以及完备的系统级需求测试。
7、上述的四个验证平台,其验证环境、流程以及验证阶段,测试方法各不相同,一般需要各自设计一套软硬件协同仿真的软件框架,以及测试用例集,整个设计验证流程冗长复杂;伴随着网络通信的复杂化,智能化的发展趋势,这一弊端将会更加明显,往往需要针对各验证阶段进行大量反复的功能代码以及测试用例集的开发,芯片的验证收敛周期加长,开发进度滞后。
技术实现思路
1、为了解决上述问题,本发明第一实施例,提供了一种网络芯片设计软硬协同仿真和业务验证的软件框架,包含:
2、应用层,应用层内设置有sonic网络操作系统,sai-thrift测试用例集服务套件,抽象api-ipython命令行工具;
3、网络适配层,网络适配层内设置有sai抽象接口和co-sim业务功能api;
4、芯片适配层,芯片适配层内设置有芯片各个子模块的功能api,以及表项资源的管理模块;
5、芯片/模型接入层,芯片或模型接入层内设置有c-模型接入,rtl仿真环境的api/dpi接入,以及加速仿真器,asic的pcie/dma的访问接入。
6、进一步,软件框架用于网络交换芯片设计中。
7、根据本发明又一实施例,提供了一种软硬协同仿真的方法,包含以下步骤:
8、s1、基于sonic网络系统的协议组网验证;
9、s2、基于sai-thrift服务套件的业务验证;
10、s3、基于ipython命令行工具的功能验证。
11、进一步,s1步骤包含以下过程:
12、步骤101、启动sonic服务;
13、步骤102、建立协议组网;
14、步骤103、启动测试;
15、步骤104、记录验证结果。
16、进一步,s2步骤包含以下过程:
17、步骤201、启动co-sim服务端;
18、步骤202、启动co-sim客户端,连接到ipython console,初始化待测平台硬件模块资源,初始化sai-thrift服务端;
19、步骤203、执行sai-thrift测试用例集;
20、步骤204、记录验证结果。
21、进一步,s3步骤包含以下过程:
22、步骤301、启动co-sim服务端;
23、步骤302、启动co-sim客户端,连接到ipython console,初始化待测平台硬件模块资源,初始化软件co-sim api;
24、步骤303、执行测试脚本;
25、步骤304、产生报文激励;
26、步骤305、记录验证结果。
27、进一步,将s1、s2、s3的验证结果以文件的形式输出并保存。
28、本发明的有益效果:
29、利用层级化抽象api处理逻辑,对不同的验证平台进行归一化处理,对测试用例集进行统一化设计,即此软件架构可以应用在不同的验证阶段,设计的功能代码以及测试用例集支持不同的验证环境,缩短了验证的收敛周期,提高了芯片开发效率,同时降低了设计成本。
30、要理解的是,前面的一般描述和下面的详细描述两者都是示例性的,并且意图在于提供要求保护的技术的进一步说明。
1.一种网络芯片设计软硬协同仿真和业务验证的软件框架,其特征在于,包含:
2.如权利要求1所述的网络芯片设计软硬协同仿真和业务验证的软件框架,其特征在于,所述软件框架用于网络交换芯片设计中。
3.一种软硬协同仿真的方法,其特征在于,包含以下步骤:
4.如权利要求3所述的软硬协同仿真的方法,其特征在于,所述s1步骤包含以下过程:
5.如权利要求3所述的软硬协同仿真的方法,其特征在于,所述s2步骤包含以下过程:
6.如权利要求3所述的软硬协同仿真的方法,其特征在于,所述s3步骤包含以下过程:
7.如权利要求3所述的软硬协同仿真的方法,其特征在于,将所述s1、s2、s3的验证结果以文件的形式输出并保存。