用于 PCI Express* 的 英特尔® FPGA R-tile Avalon® Streaming IP设计实例用户指南

ID 683544
日期 4/10/2023
Public
文档目录

2.4. Root Port BFM(根端口BFM)

基本Root Port BFM提供基于Verilog HDL任务的接口,以请求在PCI Express链路上发布事务。Root Port BFM还处理从PCI Express链路接收到的请求。下图显示了Root Port BFM中的主要模块。

图 26. Root Port BFM(根端口BFM)

这些模块实现了以下功能:

  • BFM Log Interface(altpcietb_g3bfm_log.valtpcietb_bfm_rp_gen5_x16.sv):BFM Log Interface提供将常规格式化消息写入仿真器标准输出和选择性写入日志文件的例程。还提供停止仿真错误的控件。
  • BFM Read/Write Request Functions, altpcietb_bfm_rp_gen5_x16.sv:这些函数为PCI Express读和写请求提供基本BFM调用。
  • BFM Configuration Functions, altpcietb_g3bfm_configure.v:这些函数提供BFM调用以请求对PCI Express链路和Endpoint Configuration Space寄存器的配置。
  • BFM共享存储器,altpcietb_g3bfm_shmem.v:该模块提供Root Port BFM共享存储器。它实现以下功能:
    • 为TX写操作提供数据
    • 为RX读操作提供数据
    • 接收用于RX写操作的数据
    • 为接收到的完成接收数据。
  • BFM Request Interface,altpcietb_g3bfm_req_intf.v :此接口提供altpcietb_g3bfm_rdwraltpcietb_g3bfm_configure处理过程或函数与Root Port RTL模型之间的底层接口。该接口存储一个写保护数据结构,该数据结构包含在Endpoint的BAR寄存器中编程的尺寸和值。它还存储用于内部BFM管理的其他关键数据。
  • altpcietb_g3bfm_rdwr.v:该模块包含底层读和写任务。
  • Avalon‑ST Interfaces, altpcietb_g3bfm_vc_intf_ast_common.v:这些接口模块处理Root Port接口模型。它们从BFM请求接口获得请求并生成需要的PCI Express事务。它们处理从PCI Express链路接收到的完成(completion)信息,并在请求完成时通知BFM请求接口。另外,它们处理从PCI Express链路接收到的任何请求,并在生成所需完成(completion)之前,先从共享存储器中存储或获取数据。

PIO设计实例中,apps_type_hwtcl参数设置为3。在该参数值下运行的测试被定义为ebfm_cfg_rp_ep_rootportfind_mem_bardownstream_loop

函数ebfm_cfg_rp_ep_rootportaltpcietb_g3bfm_configure.v中描述。该函数执行配置链路上根端口和端点所需要的步骤。其包括:
  • 根端口存储器分配
  • 根端口配置空间(基础限制,总线数目等。)
  • Endpoint配置(BAR,Bus Master使能,maxpayload大小等。)

altpcietb_bfm_rp_gen5_x16.sv中的函数find_mem_bardownstream_loop回送实现的BAR并分别执行对BAR的存储器Write和Read访问。