本发明涉及使用协议分层实现mipicsivip技术领域,具体来说,涉及使用协议分层实现mipicsivip方法及装置。
背景技术:
mipi(mobileindustryprocessorinterface,移动产业处理器接口)是mipi联盟发起的为移动应用处理器制定的开放标准和一个规范。mipi联盟定义了一套接口标准,把移动设备内部的接口如摄像头、显示屏、基带、射频接口等标准化,从而增加设计灵活性,同时降低成本、设计复杂度、功耗和emi。目前mipi接口协议已经在芯片开发soc设计特别是手机和平板电脑等领域广泛使用。mipi接口协议可以满足各种子系统独特的带宽要求。高带宽的子系统如图像子系统(摄像头和显示器)、存储子系统、无线子系统、电源管理子系统等,低带宽子系统如音频、键盘、鼠标、蓝牙等。
由于mipi接口在芯片开发中的广泛使用,作为芯片开发的重要环节,验证经常需要面向mipi协议的接口发送/接收数据。这时,能够帮助芯片验证向该接口发送或者接收该协议数据信息的装置就叫mipivip(verificationintellectualproperty)。可见mipivip的需求非常广泛,各大soc芯片开发公司经常需要使用。
针对mipi接口验证收发数据,早期就有基于各种验证语言(如e语言,specman等)和验证方法学(如vmm,ovm等)的vip,有的甚至直接采用verilog模块。随着sv(systemverilog)语言和通用验证方法学(uvm,universalverificationmethodology)的广泛流行和使用,各大工具厂商都推出了基于sv&uvm的mipivip。
一般公司芯片验证使用的mipivip都是使用芯片开发eda工具厂商提供的vip包。其中一般都包含mipivip。但是工具厂商的mipivip只做了数据包(packet)的下发过程,至于数据包的生成过程,则需要用户自己实现。这对于那些对mipi协议不够熟悉的用户就非常麻烦。而且工具厂商的mipivip对用户只开放一些类的成员(members)和方法(methods)说明,用户经常使用其提供的回调(callback)函数对vip的行为和形态做一些干预和扩充。
芯片eda工具厂商提供的mipivip常常是只实现了从数据包到mipi接口时序的过程,没有实现包的形成过程。用户需要自己将要发送的命令或数据打包,然后通过工具厂商的mipivip发送给验证对象。如果用户对mipi协议熟悉程度不够使用起来就会非常不方便。
因为mipi接口应用最广泛的有两个领域,一个是摄像头接口(csi,cameraserialinterface),一个是显示屏接口(dsi,displayserialinterface),这两种接口主要都是跟图像传输相关,本发明专门针对mipicsi接口解决如何将图像自动发送给验证对象的方法。
针对相关技术中的问题,目前尚未提出有效的解决方案。
技术实现要素:
针对相关技术中的问题,本发明提出使用协议分层实现mipicsivip方法及装置,基于systemverilog语言和uvm方法学开发,用户只需要将图像数据一帧一帧地赋予mipicsivip,而不必关心图像是如何被打包成mipicsi数据包以及mipicsi数据包是如何发送给验证对象的,以克服现有相关技术所存在的上述技术问题。
为此,本发明采用的具体技术方案如下:
根据本发明的一个方面,提供了一种使用协议分层实现mipicsivip方法及。
该使用协议分层实现mipicsivip方法包括以下步骤:
使用预先配置的uvm分层序列发生器(layeredsequencer)将mipicsi协议分成底层和上层;
所述上层采用预设方法将图像项目按照图像发送的特点打包成单独的mipicsi数据包(mipicsipacket);
所述上层配置有图像序列发生器(imagesequencer),所述底层配置有摄像头接口图像序列发生器(image2csisequencer);且所述图像序列发生器对应配置有图像序列(imagesequence),所述摄像头接口图像序列发生器对应配置有摄像头接口图像序列(image2csisequence);
所述摄像头接口图像序列通过预先配置的关键部件牵引端口(seq-item-pull-port)向所述图像序列发生器请求项目(item),并获取所述图像项目(imageitem);
将所述图像项目发送至所述图像序列发生器并启动所述图像序列;
根据所述摄像头接口图像序列包含的图像数据、摄像头信息内容等将所述图像项目拆分成单独的mipicsi数据包;
通过所述摄像头接口图像序列发生器将所述mipicsi数据包发送到对应的csi驱动程序;
所述csi驱动程序按照mipi时序将所述mipicsi数据包发送给被验证对象(dut,designundertest)。
进一步的,所述上层采用预设方法将图像项目按照图像发送的特点打包成单独的mipicsi数据包的步骤包括:
将所述图像项目中每行的图像数据进行同步处理;
将同步处理后的图像数据通过预设方式确定行间距和帧间距。
进一步的,所述同步处理包括帧头同步处理、帧尾同步处理、行头同步处理及行尾同步处理。
进一步的,所述预设方式包括定时器等待方式、发空包方式或无效包方式中的至少一种。
进一步的,所述mipicsi数据包的格式包括包头和负载数据,包头包括包虚拟通道、包数据类型、包的负载字数、ecc校验值、负载数据和负载数据的crc校验值。
进一步的,所述摄像头接口图像序列通过预先配置的关键部件牵引端口向所述图像序列发生器请求项目,并获取所述图像项目的步骤包括:
在摄像头接口图像序列发生器中例化所述关键部件牵引端口并在mipicsivip的顶层将所述关键部件牵引端口与所述图像序列发生器内的seq-item-export连接;
在摄像头接口图像序列中使用所述关键部件牵引端口中内嵌的get-next-item函数向图像序列发生器发起图像项目请求。
进一步的,所述图像项目包括图像数据、摄像头信息、虚拟通道(vc,virtualchannel)信息、高动态范围(hdr,highdynamicrange)信息及多曝光(multi-exposure)信息等。
进一步的,根据所述摄像头接口图像序列包含的图像数据、摄像头信息内容等将所述图像项目拆分成单独的mipicsi数据包的步骤包括:
将所述图像项目中的每一帧图像拆分成、帧同步包、行同步包及行数据包。
进一步的,通过所述摄像头接口图像序列发生器将所述mipicsi数据包发送到对应的csi驱动程序(driver)的发送方式包括短包发送、长包发送、低速发送或高速发送中的至少一种。
根据本发明的另一方面,提供了一种电子装置。
所述电子装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的使用协议分层实现mipicsivip程序,所述使用协议分层实现mipicsivip程序被所述处理器执行时实现如下步骤:
使用预先配置的uvm分层序列发生器将mipicsi协议分成底层和上层;
所述上层采用预设方法将图像项目按照图像发送的特点打包成单独的mipicsi数据包;
所述上层配置有图像序列发生器,所述底层配置有摄像头接口图像序列发生器;且所述图像序列发生器对应配置有图像序列,所述摄像头接口图像序列发生器对应配置有摄像头接口图像序列;
所述摄像头接口图像序列通过预先配置的关键部件牵引端口向所述图像序列发生器请求项目,并获取所述图像项目;
将所述图像项目发送至所述图像序列发生器并启动所述图像序列;
根据所述摄像头接口图像序列包含的图像数据、摄像头信息内容等将所述图像项目拆分成单独的mipicsi数据包;
通过所述摄像头接口图像序列发生器将所述mipicsi数据包发送到对应的csi驱动程序;
所述csi驱动程序按照mipi时序将所述mipicsi数据包发送给被验证对象。
本发明的有益效果为:
1、用户可以非常方便地对验证对象的mipicsi接口发送摄像头头像,而不必关心打包和发送的过程,将使得验证环境非常简单而整洁。
2、本发明将mipicsi协议的实现分成两层,底层负责图像分包并发送给验证对象,上层是将摄像头图像封装成图像项目并发送给底层,使用此方法如果用户自己实现mipicsivip也将会非常方便。
3、本发明使用uvm分层序列发生器技术,实现摄像头图像通过两层分发给mipicsi接口。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的使用协议分层实现mipicsivip方法的流程图。
图2是根据本发明实施例的mipicsivip架构框图。
具体实施方式
为进一步说明各实施例,本发明提供有附图,这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理,配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点,图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
根据本发明的实施例,提供了使用协议分层实现mipicsivip方法及装置。
现结合附图和具体实施方式对本发明进一步说明,如图1-2所示,根据本发明实施例的使用协议分层实现mipicsivip方法。
该使用协议分层实现mipicsivip方法包括以下步骤:
步骤s101,使用预先配置的uvm分层序列发生器将mipicsi协议分成底层和上层;
具体的,上层负责将摄像头的图像以及各种采样信息等按照mipicsi数据包的格式派发成一个个的mipicsi数据包,底层负责按照mipicsi协议将上层送过来的包发送到mipicsi接口上。
步骤s102,所述上层采用预设方法将图像项目按照图像发送的特点打包成单独的mipicsi数据包;
具体的,上述mipicsi数据包包括行同步包和帧同步包。
步骤s103,所述上层配置有图像序列发生器,所述底层配置有摄像头接口图像序列发生器;且所述图像序列发生器对应配置有图像序列,所述摄像头接口图像序列发生器对应配置有摄像头接口图像序列;
步骤s104,所述摄像头接口图像序列通过预先配置的关键部件牵引端口向所述图像序列发生器请求项目,并获取所述图像项目;
具体的,也就是说,可以通过牵引端口方法,摄像头接口图像序列发生器可以从上层图像序列发生器取得图像项目;请求机制就是uvm方法学里的关键部件牵引端口手段。
请求发起以后,只要用户向图像序列发生器启动一个图像序列,就会有一个图像项目通过牵引端口向摄像头接口图像序列发送,摄像头接口取得了一个图像项目。
步骤s105,将所述图像项目发送至所述图像序列发生器并启动所述图像序列;
具体的,图像项目里要包含虚拟通道信息,如果是带高动态范围、多曝光以及其它摄像头信息等,则这些信息都要随图像项目附带给入。
步骤s106,根据所述摄像头接口图像序列包含的图像数据、摄像头信息内容等将所述图像项目拆分成单独的mipicsi数据包;
步骤s107,通过所述摄像头接口图像序列发生器将所述mipicsi数据包发送到对应的csi驱动程序;
步骤s108,所述csi驱动程序按照mipi时序将所述mipicsi数据包发送给被验证对象。
在一个实施例中,所述上层采用预设方法将图像项目按照图像发送的特点打包成单独的mipicsi数据包的步骤包括:
将所述图像项目中每行的图像数据进行同步处理;
将同步处理后的图像数据通过预设方式确定行间距和帧间距。
在一个实施例中,所述同步处理包括帧头同步处理、帧尾同步处理、行头同步处理及行尾同步处理。
在一个实施例中,所述预设方式包括定时器等待方式、发空包方式或无效包方式中的至少一种。
在一个实施例中,所述mipicsi数据包的格式包括包头和负载数据,包头包括包虚拟通道、包数据类型、包的负载字数、ecc校验值、负载数据和负载数据的crc校验值。
在一个实施例中,所述摄像头接口图像序列通过预先配置的关键部件牵引端口向所述图像序列发生器请求项目,并获取所述图像项目的步骤包括:
在摄像头接口图像序列发生器中例化所述关键部件牵引端口并在mipicsivip的顶层将所述关键部件牵引端口与所述图像序列发生器内的seq-item-export连接;
在摄像头接口图像序列中使用所述关键部件牵引端口中内嵌的get-next-item函数向图像序列发生器发起图像项目请求。
在一个实施例中,所述图像项目包括图像数据、摄像头信息、虚拟通道信息、高动态范围信息及多曝光信息等。
具体的,虚拟通道是mipi协议包格式里一个重要的内容,一般是用来区分多个摄像头。
在一个实施例中,根据所述摄像头接口图像序列包含的图像数据、摄像头信息内容等将所述图像项目拆分成单独的mipicsi数据包的步骤包括:
将所述图像项目中的每一帧图像拆分成、帧同步包、行同步包及行数据包。
在一个实施例中,通过所述摄像头接口图像序列发生器将所述mipicsi数据包发送到对应的csi驱动程序的发送方式包括短包发送、长包发送、低速发送或高速发送中的至少一种。
本发明实施例还提供一种电子装置。
所述电子装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的使用协议分层实现mipicsivip程序,所述使用协议分层实现mipicsivip程序被所述处理器执行时实现如下步骤:
使用预先配置的uvm分层序列发生器将mipicsi协议分成底层和上层;
所述上层采用预设方法将图像项目按照图像发送的特点打包成单独的mipicsi数据包;
所述上层配置有图像序列发生器,所述底层配置有摄像头接口图像序列发生器;且所述图像序列发生器对应配置有图像序列,所述摄像头接口图像序列发生器对应配置有摄像头接口图像序列;
所述摄像头接口图像序列通过预先配置的关键部件牵引端口向所述图像序列发生器请求项目,并获取所述图像项目;
将所述图像项目发送至所述图像序列发生器并启动所述图像序列;
根据所述摄像头接口图像序列包含的图像数据、摄像头信息内容等将所述图像项目拆分成单独的mipicsi数据包;
通过所述摄像头接口图像序列发生器将所述mipicsi数据包发送到对应的csi驱动程序;
所述csi驱动程序按照mipi时序将所述mipicsi数据包发送给被验证对象。
为了方便理解本发明的上述技术方案,以下就本发明在实际过程中的工作原理或者操作方式进行详细说明。
在实际应用时,使用本mipicsivip非常简单,首先将本mipicsivip在用户的验证环境里实例化,然后将vip的接口和被验证对象的接口连接,接下来就可以将图像序列在图像序列发生器上执行即可,如果用户需要对图像项目进行特殊处理,比方说,要加入特殊的摄像头信息或者图像格式,只需要图像项目扩展成自己想要的用户图像项内容,再通过uvm重载技术,将用户图像序列送给图像序列发生器即可。
综上所述,借助于本发明的上述技术方案,用户可以非常方便地对验证对象的mipicsi接口发送摄像头头像,而不必关心打包和发送的过程,将使得验证环境非常简单而整洁。本发明将mipicsi协议的实现分成两层,底层负责图像分包并发送给验证对象,上层是将摄像头图像封装成图像项目并发送给底层,使用此方法如果用户自己实现mipicsivip也将会非常方便。本发明使用uvm分层序列发生器技术,实现摄像头图像通过两层分发给mipicsi接口。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.一种使用协议分层实现mipicsivip方法,其特征在于,该使用协议分层实现mipicsivip方法包括以下步骤:
使用预先配置的uvm分层序列发生器将mipicsi协议分成底层和上层;
所述上层采用预设方法将图像项目按照图像发送的特点打包成单独的mipicsi数据包;
所述上层配置有图像序列发生器,所述底层配置有摄像头接口图像序列发生器;且所述图像序列发生器对应配置有图像序列,所述摄像头接口图像序列发生器对应配置有摄像头接口图像序列;
所述摄像头接口图像序列通过预先配置的关键部件牵引端口向所述图像序列发生器请求项目,并获取所述图像项目;
将所述图像项目发送至所述图像序列发生器并启动所述图像序列;
根据所述摄像头接口图像序列包含的图像数据、摄像头信息内容等将所述图像项目拆分成单独的mipicsi数据包;
通过所述摄像头接口图像序列发生器将所述mipicsi数据包发送到对应的csi驱动程序;
所述csi驱动程序按照mipi时序将所述mipicsi数据包发送给被验证对象。
2.根据权利要求1所述的使用协议分层实现mipicsivip方法,其特征在于,所述上层采用预设方法将图像项目按照图像发送的特点打包成单独的mipicsi数据包的步骤包括:
将所述图像项目中每行的图像数据进行同步处理;
将同步处理后的图像数据通过预设方式确定行间距和帧间距。
3.根据权利要求2所述的使用协议分层实现mipicsivip方法,其特征在于,所述同步处理包括帧头同步处理、帧尾同步处理、行头同步处理及行尾同步处理。
4.根据权利要求2所述的使用协议分层实现mipicsivip方法,其特征在于,所述预设方式包括定时器等待方式、发空包方式或无效包方式中的至少一种。
5.根据权利要求2所述的使用协议分层实现mipicsivip方法,其特征在于,所述mipicsi数据包的格式包括包头和负载数据,包头包括包虚拟通道、包数据类型、包的负载字数、ecc校验值、负载数据和负载数据的crc校验值。
6.根据权利要求1所述的使用协议分层实现mipicsivip方法,其特征在于,所述摄像头接口图像序列通过预先配置的关键部件牵引端口向所述图像序列发生器请求项目,并获取所述图像项目的步骤包括:
在摄像头接口图像序列发生器中例化所述关键部件牵引端口并在mipicsivip的顶层将所述关键部件牵引端口与所述图像序列发生器内的seq-item-export连接;
在摄像头接口图像序列中使用所述关键部件牵引端口中内嵌的get-next-item函数向图像序列发生器发起图像项目请求。
7.根据权利要求1所述的使用协议分层实现mipicsivip方法,其特征在于,所述图像项目包括图像数据、摄像头信息、虚拟通道信息、高动态范围信息及多曝光信息等。
8.根据权利要求1所述的使用协议分层实现mipicsivip方法,其特征在于,根据所述摄像头接口图像序列包含的图像数据、摄像头信息内容等将所述图像项目拆分成单独的mipicsi数据包的步骤包括:
将所述图像项目中的每一帧图像拆分成、帧同步包、行同步包及行数据包。
9.根据权利要求1所述的使用协议分层实现mipicsivip方法,其特征在于,通过所述摄像头接口图像序列发生器将所述mipicsi数据包发送到对应的csi驱动程序的发送方式包括短包发送、长包发送、低速发送或高速发送中的至少一种。
10.一种电子装置,其特征在于,所述电子装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的使用协议分层实现mipicsivip程序,所述使用协议分层实现mipicsivip程序被所述处理器执行时实现如下步骤:
使用预先配置的uvm分层序列发生器将mipicsi协议分成底层和上层;
所述上层采用预设方法将图像项目按照图像发送的特点打包成单独的mipicsi数据包;
所述上层配置有图像序列发生器,所述底层配置有摄像头接口图像序列发生器;且所述图像序列发生器对应配置有图像序列,所述摄像头接口图像序列发生器对应配置有摄像头接口图像序列;
所述摄像头接口图像序列通过预先配置的关键部件牵引端口向所述图像序列发生器请求项目,并获取所述图像项目;
将所述图像项目发送至所述图像序列发生器并启动所述图像序列;
根据所述摄像头接口图像序列包含的图像数据、摄像头信息内容等将所述图像项目拆分成单独的mipicsi数据包;
通过所述摄像头接口图像序列发生器将所述mipicsi数据包发送到对应的csi驱动程序;
所述csi驱动程序按照mipi时序将所述mipicsi数据包发送给被验证对象。
技术总结