PCIe AVIP架构

验证工程师可以用C语言接口快速实现仿真加速。C++实现的仿真文件testbench可以直接访问AVIP,与总线功能模块BFM交换数据。PCIe AVIP的C++接口就是一组C++类;C++程序或工具可以调用这些类的方法。C++类可以实现如下功能:

  • 与BFM建立通信;
  • 向BFM发送事务报文;
  • 接收来自BFM的事务报文。

cdn_pcie_cpp_proxy类表示PCIe 代理模型,可以与BFM进行通信,并向BFM发送事务报文,等待时钟等等。

事务对象描述了收发事务报文的细节:用于send_txn()方法的参数;也用于从BFM中接收事务报文。对于PCIe而言,事务对象就是pci_express_cpp_tr类的对象。

PCIe AVIP C++接口的使用过程分如下几步:

  1. 创建代理模型,并将其与BFM绑定;
  2. 创建事务对象;
  3. 对事务对象进行初始化;
  4. 用代理模型的方法,将事务对象向BFM发送;
  5. 从BFM中接收响应报文。

PCIe AVIP C++接口使用回调函数从BFM中接收数据。回调函数类似验证过程中的中断。回调过程如下:

  1. 回调函数的编写,主要描述了当BFM返回数据给代理模型时,应该做些什么。
  2. 在验证启动时,必须先注册好回调函数。
  3. BFM返回数据给代理模型时,自动执行回调函数。

示例cdn_pcie_avip_dpi_test中有回调函数编写和注册。

相关推荐
她的男孩17 小时前
数据权限为什么不能只靠注解?Forge 的 Mapper 层 SQL 改写源码拆解
java·后端·架构
小爷毛毛_卓寿杰18 小时前
我把 397B 的「Agentic 大脑」塞进了 Xinference,一键部署 Nex-N2
人工智能·架构·github
柒和远方19 小时前
从一次工程审查看 AI 学习产品的边界兜底:RAG 资料链路一致性实战
前端·后端·架构
raindesound19 小时前
Android+QC modem手机通信模块技术分析 (2)
架构
raindesound20 小时前
Android+QC modem手机通信模块技术分析 (4)
架构
raindesound20 小时前
Android+QC modem手机通信模块技术分析 (1)
架构
程序员cxuan1 天前
读懂 Claude Code 架构分析系列,第一篇,开始!
人工智能·后端·架构
Yeats_Liao1 天前
14:Servlet中的页面跳转-Java Web
java·后端·架构
raindesound1 天前
计算机基础:ADT(Abstract Data Type)抽象数据类型 (2)
架构
武子康1 天前
调查研究-201 Rust 里的 dev build 和 release build:为什么同一份代码性能差这么多?
后端·架构·rust