一种基于UVM的AHCI验证系统与验证方法与流程

摘要: 本技术涉及ahci验证,具体而言,涉及一种基于uvm的ahci验证系统与验证方法。背景技术:1、随着服务器、存储设备、嵌入式系统及高性能计算平台的快速发展,ah...
一种基于UVM的AHCI验证系统与验证方法与流程

本技术涉及ahci验证,具体而言,涉及一种基于uvm的ahci验证系统与验证方法。

背景技术:

1、随着服务器、存储设备、嵌入式系统及高性能计算平台的快速发展,ahci(advanced host controller interface,高级主机控制器接口)作为存储控制的主流接口标准,广泛应用于各类芯片产品中。在芯片设计流程中,功能验证是确保设计正确性的关键环节,基于uvm(universal verification methodology,通用验证方法学)的标准化验证已成为行业主流实践。

2、目前,ahci协议的功能验证通常采用基于uvm的验证环境,通过商业sata(serialadvanced technology attachment,串行高级技术附件) vip(verificationintellectual property,验证知识产权)模块模拟存储设备行为,与待测设计进行交互,以完成协议合规性检查与数据传输验证。验证环境的基本架构通常包含测试激励生成、寄存器配置、协议检查、数据比对及覆盖率收集等功能模块。此类验证方案在实际项目中被广泛采用,是当前芯片验证流程中的重要组成部分。

3、然而,现有ahci验证方案普遍存在以下技术缺陷:第一,验证环境与特定厂商的sata vip深度耦合,不同厂商vip在接口定义、时序流程、数据封装格式上存在显著差异,更换vip时需大量重构代码,复用性差;第二,验证组件与主机接口总线协议紧密绑定,仅支持axi或pcie单一接口,跨平台移植困难。

4、综上,现有的ahci验证方案存在无法兼容不同厂商vip及无法适配多主机接口的问题。

技术实现思路

1、本技术的目的在于提供一种基于uvm的ahci验证系统与验证方法,以解决现有技术中ahci验证方案存在的无法兼容不同厂商vip及无法适配多主机接口的问题。

2、为了实现上述目的,本技术实施例采用的技术方案如下:

3、第一方面,本技术实施例提供了一种基于uvm的ahci验证系统,所述系统包括:

4、ahci通用验证组件,连接待测模块,独立于厂商vip模块与主机接口总线协议,用于实现ahci协议核心逻辑;

5、ahci通用验证平台,连接所述ahci通用验证组件,用于提供验证环境,以对所述待测模块进行ahci验证;

6、多厂商vip适配模块,分别连接所述ahci通用验证组件和多个不同类型的厂商vip模块,用于对所述ahci通用验证组件屏蔽各厂商vip模块的接口差异;

7、多接口适配模块,分别连接所述ahci通用验证组件和多种不同类型的主机接口总线,用于对所述ahci通用验证组件屏蔽各主机接口总线的协议差异;

8、所述ahci通用验证组件通过所述多厂商vip适配模块与设备侧的厂商vip模块进行交互,并通过所述多接口适配模块与主机侧的不同类型的主机接口总线进行交互。

9、可选地,所述ahci通用验证组件包括:

10、ahci寄存器模型子模块,用于实现ahci主机总线适配器的寄存器空间的寄存器复位、读写镜像、访问权限检查以及寄存器域自动校验,并提供寄存器读写抽象应用程序编程接口;

11、ahci命令构建子模块,用于生成ahci命令头和命令表;

12、fis帧收发解析子模块,用于对各类帧信息结构类型进行编码发送和接收解码;

13、中断处理子模块,用于模拟hba中断状态机,处理设备中断、dma完成中断、错误中断和ncq异步中断,并维护中断状态/中断使能对应的中断掩码;

14、ncq队列管理子模块,用于实现多深度ncq命令循环队列的派发、乱序完成、队列重排序、异步通知、队列溢出保护和命令超时检测;

15、pio/dma传输控制子模块,用于分离pio寄存器传输通路与dma内存批量传输通路,并执行prd链表遍历、数据搬运和传输长度匹配校验;

16、错误检测与协议检查子模块,用于内置ahci协议合规检查规则集,依据所述规则集进行违规检测。

17、可选地,所述多厂商vip适配模块包括:

18、统一调用接口,与所述ahci通用验证组件连接,并供所述ahci通用验证组件调用;

19、多个差异化适配驱动接口,分别对接不同的厂商vip模块,各所述差异化适配驱动接口针对对应厂商vip模块的操作进行适配转换;

20、所述多厂商vip适配模块通过所述统一调用接口和所述多个差异化适配驱动接口,将所述ahci通用验证组件与底层各厂商vip模块进行双向隔离与翻译。

21、可选地,所述多厂商vip适配模块用于实现以下流程:

22、vip统一初始化流程,用于接收所述ahci通用验证组件下发的链路配置参数,并根据当前绑定的厂商vip模块类型,将所述链路配置参数自动映射转换为对应厂商vip模块所需的私有初始化序列、寄存器配置时序、复位流程和链路训练触发逻辑,完成厂商vip模块上电复位、寄存器配置和物理链路使能;

23、fis双向转发处理流程,用于将所述ahci通用验证组件下发的标准结构化fis数据包转译为当前厂商vip模块可识别的内部数据结构后送入vip发送通路,以及将各厂商vip模块侧上行返回的设备fis帧剥离厂商私有封装头后转换为统一标准fis结构体并向上透传给所述ahci通用验证组件;

24、事件同步处理流程,用于实时轮询和注册回调监听各厂商vip模块内部的dma完成事件、ncq命令完成事件、设备应答事件和链路建立事件,并将各厂商自定义事件归一化为协议层定义的事件枚举类型;

25、硬件状态统一上报流程,用于周期性同步各厂商vip模块内部的hba运行状态、sata链路在线状态、队列占用状态、传输错误计数和中断挂起状态,并将各厂商差异化的状态寄存器和状态标志位统一封装为状态结构体向上输出。

26、可选地,所述多接口适配模块包括:

27、统一主机访问抽象接口,供所述ahci通用验证组件调用,以执行主机内存访问与状态交互操作;

28、axi总线适配通路,用于对接axi主机接口总线;

29、pcie总线适配通路,用于对接pcie主机接口总线;

30、所述多接口适配模块根据当前验证平台的硬件配置和总线工作模式,自动识别生效的主机接口类型,并在所述axi总线适配通路与所述pcie总线适配通路之间自动完成总线通路切换与适配逻辑加载。

31、可选地,所述多接口适配模块用于执行以下至少一种功能:

32、统一地址映射适配机制,用于构建全局统一地址映射模型,自动完成axi物理地址、pcie总线地址与ahci控制器本地地址的双向翻译与对齐转换,以统一所述ahci通用验证组件的地址读写、prd链表地址解析和dma寻址访问逻辑;

33、总线事务双向转换功能,用于将所述ahci通用验证组件下发的内存读事务、内存写事务、寄存器配置事务、dma发起事务和传输终止事务自动解析并转换为axi总线或pcie总线的标准事务报文与时序操作,以及将axi总线和pcie总线上报的完成事务、响应状态和传输结束信号归一化为事务反馈结构并传递至所述ahci通用验证组件;

34、跨总线中断信号同步与时序兼容单元,用于针对axi电平式中断上报机制与pcie消息中断和msi中断上报机制的差异,统一中断识别、同步和上报逻辑,完成不同总线中断信号的采样校准、边沿同步、去抖动与事件归一化处理,将底层异构总线的中断信号统一封装为标准ahci中断事件上报给所述ahci通用验证组件;

35、多总线时序兼容校准单元,用于针对axi总线时序与pcie总线时序的不同握手逻辑、传输延迟和同步机制,自动完成时序适配、跨时钟域同步、数据采样对齐和传输延时补偿。

36、可选地,所述ahci通用验证平台包括寄存器配置模块,所述寄存器配置模块用于依据设定规范执行hba控制器初始化流程、端口使能流程、命令启动流程、中断配置流程和实时状态读取流程;

37、所述hba控制器初始化流程包括:完成hba全局硬件复位与软复位操作,自动解析hba能力寄存器以识别硬件能力参数,并基于所述硬件能力参数完成全局控制寄存器的配置;

38、所述端口使能流程包括:针对各独立物理端口逐端口执行端口链路复位、端口状态清零、传输模式配置、sata链路协商使能、ncq队列功能使能、pio传输通路与dma传输通路使能操作,并初始化对应端口的命令列表基地址、fis接收缓冲区基地址和队列深度配置;

39、所述命令启动流程包括:自动构建并加载ahci标准命令表与prd链表,自动完成命令参数合法性校验、传输地址对齐校验和传输长度合规校验,并按照ahci协议时序置位端口命令启动寄存器;

40、所述中断配置流程包括:支持全局中断与端口局部中断的分层配置,通过配置全局中断掩码与端口ie中断使能寄存器,独立完成dma传输完成中断、设备fis应答中断、链路连接/断开中断、ncq命令完成中断、传输错误中断和超时异常中断的使能与屏蔽配置;

41、所述实时状态读取流程包括:通过周期性寄存器采样与事件回调结合的方式,实时获取hba全局运行状态、物理端口链路状态、命令队列占用情况、当前命令执行进度、数据传输完成状态、中断挂起状态和协议错误统计状态。

42、可选地,所述ahci通用验证平台还包括:

43、激励生成模块,连接所述ahci通用验证组件,用于基于不同场景生成激励,所述激励包括读写命令、ncq命令、异常、超时、错误响应和热插拔中的至少一种;

44、计分板与数据检查模块,连接所述ahci通用验证组件,用于自动比对写入数据与读出数据、寄存器状态、中断信号和fis帧正确性,并在比对不一致时实时报错并定位问题;

45、覆盖率统计模块,连接所述ahci通用验证组件,用于统计命令类型覆盖率、寄存器访问覆盖率、接口切换覆盖率、异常场景覆盖率、数据长度覆盖率和事务类型覆盖率中的至少一种;

46、复位及时钟控制模块,连接所述ahci通用验证组件,用于控制系统复位、时钟频率和多时钟域同步。

47、另一方面,本技术实施例还提供了一种基于uvm的ahci验证方法,应用于上述的基于uvm的ahci验证系统,所述方法包括:

48、所述ahci通用验证平台根据待测模块的配置信息,选择主机侧的主机接口总线类型以及设备侧的厂商vip模块类型,所述主机接口总线类型为axi总线或pcie总线;

49、所述ahci通用验证平台启动验证环境,通过所述多接口适配模块建立与主机侧的通信链路,并通过所述多厂商vip适配模块建立与设备侧的通信链路;

50、所述ahci通用验证平台通过所述ahci通用验证组件,经由所述多接口适配模块向待测模块发送标准化配置事务,以完成待测模块中ahci控制器的寄存器初始化、端口使能和中断配置;

51、所述ahci通用验证平台向所述ahci通用验证组件下发测试任务指令;所述ahci通用验证组件根据所述测试任务指令生成符合ahci协议规范的标准化协议数据包;所述标准化协议数据包中的主机侧事务经由所述多接口适配模块转换为对应主机接口总线协议的总线事务后发送至待测模块,所述标准化协议数据包中的设备侧fis帧经由所述多厂商vip适配模块转换为对应厂商vip模块可识别的私有格式后发送至厂商vip模块;

52、所述ahci通用验证组件通过所述多接口适配模块接收待测模块返回的主机侧响应,并通过所述多厂商vip适配模块接收厂商vip模块返回的设备侧响应,分别将两侧响应归一化为标准化反馈数据;

53、所述ahci通用验证组件将所述标准化反馈数据上报至所述ahci通用验证平台,所述ahci通用验证平台根据所述标准化反馈数据判断当前测试命令的执行结果。

54、可选地,所述标准化协议数据包中的设备侧fis帧经由所述多厂商vip适配模块转换为对应厂商vip模块可识别的私有格式后发送至厂商vip模块的步骤包括:

55、所述ahci通用验证组件根据当前执行的测试任务,生成标准化的设备侧fis帧发送请求;

56、所述ahci通用验证组件通过所述多厂商vip适配模块的统一调用接口,将所述标准化的设备侧fis帧发送请求下发至所述多厂商vip适配模块;

57、所述多厂商vip适配模块根据当前绑定的厂商vip模块类型,将所述标准化的设备侧fis帧转换为对应厂商vip模块可识别的私有格式数据;

58、所述多厂商vip适配模块将所述私有格式数据通过对应厂商vip模块的驱动接口发送至所述厂商vip模块。

59、相对于现有技术,本技术具有以下有益效果:

60、本技术通过构建独立于厂商vip模块与主机接口的ahci通用验证组件作为协议核心,并分别设置多厂商vip适配模块和多接口适配模块作为两个独立的隔离层,对上层核心组件屏蔽底层厂商vip接口差异和主机总线协议差异,从而实现一套验证环境无需修改核心代码即可兼容多家厂商vip并适配axi和pcie等多种主机接口。

61、为使本技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。