Synopsys PCIe VIP 是基于 UVM 的协议验证方案支持 PCIe 2.1至6.0 规范可配置为 Root Complex 或 Endpoint 模式并完整实现了事务层、数据链路层和物理层。VIP 提供灵活的配置接口、状态监控和序列控制能力支持多通道应用传输。本文围绕该 VIP 的环境类展开简要介绍以下五个核心组件svt_pcie_device_agent设备顶层类对应 RC/EP 设备发起 TLP/DLLP 和响应接收。svt_pcie_device_configuration配置顶层类包含各子层配置参数并控制 VIP 的工作模式。svt_pcie_device_status状态顶层类记录设备各层的传输计数和链路状态信息。svt_pcie_driver_app_transaction传输类定义传输的数值、类型、地址等关键字段。svt_pcie_device_virtual_sequencer序列器顶层类用于配置状态、发送 TLP/DLLP 。通过对这些类的梳理可以快速理解Synopsys PCIe VIP的架构层次为后续验证环境搭建和测试开发奠定基础。设备类svt_pcie_device_agentsvt_pcie_device_agent 作为 VIP 的顶层类对应 1 个 RC 或 EP。其中 driver_app 用于发起TLP传输requester_app 用于大量 memory 访问传输target_app 用于接收响应 TLP 包再下层 svt_pcie_agent 又包含对应协议 TL、DL、PL 层的子类。VIP 支持同时进行多组应用传输所以 driver_app 和 target_app 为数组形式VIP 定义数组索引为 application id。VIP doc 目录中 pcie_layers.pdf 有详细层级数据流图包含 analysis_port 和callback 点下面逐层说明。svt_pcie_driver_appdriver_app 用于发起 TLP 传输可以将接口和环境进行连接图中可以看到 driver_app 包含发送 TLP 和接收 Cpl、CplD 两个通路接收结束处还有 callback 点。通常和 driver_app 交互即可实现一般传输功能一些错误注入等特殊场景才会用到下层。svt_pcie_target_apptarget_app 用于应答和 driver_app 平级。图中可以看到 target_app 同样包含发送应答 Clp、ClpD 和接收存储、IO、配置类型 TLP 两个通路其实在发之前和收之后有两处 callback 点只不过图中没标出。svt_pcie_tlsvt_pcie_tl 对应协议的 TL 层。也可以不使用 driver_app 层定义用户 application id需要 ≥0x20前面数值 VIP 自己会使用直接给本层发送 svt_pcie_tlp 包传输然后从 rx_tlp_peek_port 端口接收 svt_pcie_tlp 包传输。svt_pcie_dlsvt_pcie_dl 对应协议的DL层可以传递来自 svt_pcie_tl 的 TLP 包同时添加序号和 LRCR 也可以直接传递来自端口的 DLLP 包接收通道为逆处理过程同样包含 port 和 callback 点。svt_pcie_plsvt_pcie_pl 对应协议的PL层在本层会实现建链TS1、TS1 等有序集生成同时传递来自 svt_pcie_dl 的 TLP、DLLP 包。配置类和 pcie_device_agent 对应device_configuration 也包含 driver、 requester 和 target 子类用于事务的配置此外还包含协议的 TL、DL和PL 层配置。svt_pcie_device_configuration |--- driver_cfg[$] (typesvt_pcie_driver_app_configuration) |--- requester_app (typesvt_pcie_requester_app_configuration) |--- target_cfg[$] (typesvt_pcie_target_app_configuration) |--- pcie_cfg (typesvt_pcie_configuration) | |--- tl_cfg (typesvt_pcie_tl_configuration) |--- dl_cfg (typesvt_pcie_dl_configuration) |--- pl_cfg (typesvt_pcie_pl_configuration)svt_pcie_device_configurationsvt_pcie_device_configuration 参数包括例化模式配置下篇文章会说明unified VIP 定义。unified_if值为null指示agent对应single instance model非null指示对应unified model后面小节会介绍unified。unified_vip1指示unified VIP模式0指示single instantiation模式svt_pcie_vif unified_if; bit unified_vip 1b0;参数还包括使能、RC/EP 和协议版本等基本配置。此外 VIP 包含 HDL module需要通过 model_instance_scope 指定 module 的 hierarchical 路径。bit is_active 1; string model_instance_scope; rand bit device_is_root 1b1; rand pcie_spec_ver_enum pcie_spec_ver PCIE_SPEC_VER_2_1; rand pipe_spec_ver_enum pipe_spec_ver PIPE_SPEC_VER_2;svt_pcie_configurationsvt_pcie_configuration 和 pcie_agent 对应包含TL、DL、PL层子类。rand svt_pcie_tl_configuration tl_cfg; rand svt_pcie_dl_configuration dl_cfg; rand svt_pcie_pl_configuration pl_cfg; rand svt_pcie_mpl_phy_configuration mpl_cfg;参数包括使能传输和 symbol log 打印。enable_transaction_logging 1; transaction_log_filename pcie_trans.logenable_symbol_logging 1b1; symbol_log_filename symbol.log;参数还包括使能 fsdb 存储 trans 信息可以在 verdi 的 protocol debug mode查看每一包传输。使能还需要再vcs编译步骤defineSVT_PCIE_INCLUDE_AC_PA。bit enable_tl_xml_gen 1b0; bit enable_dl_xml_gen 1b0; bit enable_pl_xml_gen 1b0; svt_xml_writer::format_type_enum pa_format_type;svt_pcie_pl_configurationsvt_pcie_pl_configuration 参数包括链路信息还有很多链路时序参数不再列举。link_widthlink的lane的数量。rand int unsigned link_number 0; int unsigned link_width 1;还支持跳过部分建链步骤skip_polling_active 为略过 Polling.Active 态本应发送1024个TS1skip_initial_link_training 为略过整个建链过程复位后直接 L0 态。rand bit skip_initial_link_trainingSVT_PCIE_SKIP_INITIAL_LINK_TRAINING_DEFAULT; rand bit skip_polling_active SVT_PCIE_SKIP_POLLING_ACTIVE_DEFAULT;状态类svt_pcie_device_statussvt_pcie_device_status 同样和 pcie_device_agent 对应除子类外无其他变量tl/dl/pl 状态类常会用到包含各种传输的计数值此外 pl 子类中还有链路状态。svt_pcie_device_status |--- driver_cfg [$] (typesvt_pcie_driver_app_status) |--- io_target_status (typesvt_pcie_io_target_status) |--- mem_target_status (typesvt_pcie_mem_target_status) |--- requester_app (typesvt_pcie_requester_app_status) |--- target_status [$] (typesvt_pcie_target_app_status) |--- pcie_status (typesvt_pcie_status) | |--- tl_status (typesvt_pcie_tl_status) |--- dl_status (typesvt_pcie_dl_status) |--- pl_status (typesvt_pcie_pl_status)sequencer类svt_pcie_device_virtual_sequencersvt_pcie_device_virtual_sequencer 同样和 svt_pcie_device_agent 对应。带 service 的 sequencer 一般用于配置和状态控制不带的一般用于 TLP/DLLP 传输此外还有 svt_pcie_device_system_virtual_sequencer 类包含2个 svt_pcie_device_virtual_sequencer 和1个 svt_pcie_global_shadow_service_sequencer 成员对应 1个 RC、1个 EP 和 1 个 shadow memory 的典型系统。传输类svt_pcie_driver_app_transaction参数包括传输类型和 TLP 包信息。payload传输的数据对于传输类型 IO_WR、CFG_WR 长度为 1。blockdriver_app 传输队列的 block 控制配置为 1 时当前传输完成 driver 才会传输下一数据进队列。其余参数可以参照协议 TLP 定义不再说明。rand bit [31:0] payload[]; rand transaction_type_enum transaction_type MEM_RD; rand bit [63:0] address 64h0; rand bit [9:0] length 10h0; rand bit [3:0] first_dw_be 4b0000; rand bit [3:0] last_dw_be 4b1111; rand bit [2:0] traffic_class h0; rand bit [1:0] address_translation h0; rand bit ep 1b0; rand bit block 1b0;interfacesvt_pcie_vifphy_interface_type对应 PIPE、SERDES、PMA、APP 三种接口模式。device_is_root1 表示 RC0 表示 EP 设备。reg [7:0] link_id; reg [3:0] port_id; real pcie_spec_ver; real pipe_spec_ver; reg [5:0] num_physical_lanes; reg [5:0] num_pma_interface_bits; reg [5:0] num_pipe_interface_bits; reg [3:0] phy_interface_type; reg device_is_root; svt_pcie_serdes_if ser_if(clkreq_n, wake_n); svt_pcie_pma_if pma_if(clkreq_n, wake_n); svt_pcie_pipe_if pipe_if(clkreq_n, wake_n); svt_pcie_app_if app_if(); svt_pcie_ext_clk_if ext_clk_if();
企业数字化 ERP 产品动态
相关推荐
050-刻意练习的休息与恢复 刻意练习系列 050:刻意练习的休息与恢复 肌肉在休息时生长,大脑在休息时整合——真正的进步,发生在上一次练习结束之后。 一、“肌肉在休息时生长”——从身体到大脑的类比
你去健身房举铁,练得精疲力竭,肌肉纤维被撕裂、充血、发胀。但你第二天并不会变得更强——事实上… · 2026/10/14 11:35:38
如何用1个开源模型+3天时间上线付费AI功能?(实测ROI>4.8的轻量级SaaS变现框架) 更多请点击:
https://kaifayun.com
第一章:如何用1个开源模型3天时间上线付费AI功能?(实测ROI>4.8的轻量级SaaS变现框架)
无需训练大模型,不依赖GPU集群——我们基于 Llama 3-8B-Instruct&… · 2026/9/1 19:40:56
049-如何设计有效的反馈系统 刻意练习系列 049:如何设计有效的反馈系统 没有反馈的训练,只是重复。有反馈的训练,才是精进。 一、飞行模拟器的馈赠
为什么飞行模拟器被公认为世界上最有效的训练工具之一?
想象一下:一个新手飞行员坐在造价数千万美元的全动模拟器里,座舱每一个按钮、每一块仪表都与… · 2026/9/22 12:47:15
电工证有哪些系列复审延期多少钱一办 电工证有哪些系列复审延期多少钱一办 证书过期了不知道怎么复审延期?别急,今天就带你搞清楚电工证有哪些系列,以及怎么花钱省事地把证续上。特别是郑州金水区做公路工程的朋友们,这个信息你绝对用得上。 电工证有哪些系列?别搞混了 先说清楚,… · 2026/11/14 21:35:34
汕头电工证可以拿钱吗全国通用证书过期了不知道怎么复审延期 汕头电工证可以拿钱吗全国通用证书过期了不知道怎么复审延期 证书过期了不知道怎么复审延期,你是不是也遇到过这种情况?别急,这篇文章就是为了帮你解决这个问题,还顺带告诉你汕头电工证可以拿钱吗,全国通用的证书到底值不值得考。… · 2026/11/14 21:35:34
电工证证办必须有电子证书吗?别再被中介坑了 电工证证办必须有电子证书吗?别再被中介坑了 不知道去哪报名怕被中介坑?现在办理电工证证办,很多人第一反应就是去找中介,但一不小心就踩坑。其实,现在通过官方渠道,比如河南政务服务网,你完全可以自己操作,还能拿到正规的电子证书,省心又省钱。… · 2026/11/14 21:35:34
温州那里可以学电工证报名入口与办理流程,全国通用证怎么考不踩坑 温州那里可以学电工证报名入口与办理流程,全国通用证怎么考不踩坑 怕考不过白交培训费?温州那边学电工证真的靠谱吗?很多准备考电工证的兄弟都担心,花了几千块培训费,结果考试挂了,钱白交了,时间也浪费了。但只要选对机构,准备得当, 全国通用… · 2026/11/14 21:35:34
南京市电工证价格真实经历:应届生找工作靠它翻盘 南京市电工证价格真实经历:应届生找工作靠它翻盘 你是不是也像我一样,刚毕业就碰上找工作难?电工证成了我进工地、进工厂的“入场券”,也让我知道【南京市电工证价格】不是个小事。今天我就从南阳卧龙区一个应届工程类毕业生的真实经历,讲讲这证怎么考、… · 2026/11/14 21:35:34
电工证丢失还能补吗?千万别踩坑,丢了证等于失业 电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/13 22:30:50
电力电缆作业证直播报名入口与办理流程良心建议 电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/14 13:23:47
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/14 13:20:59
有初级电工证怎么工作 2026河南最新政策怎么应对 有初级电工证怎么工作 2026河南最新政策怎么应对 之前考的证在外省能不能转过来?这个问题我每天被问上百次。2026年河南最新政策对证书跨省转移有了明确说明,特别是南阳市的从业者,需要特别关注。… · 2026/11/14 0:00:31
电工证过期了不知道怎么复审?考电工证自学书+官方报名入口全攻略 电工证过期了不知道怎么复审?考电工证自学书+官方报名入口全攻略 证书过期了不知道怎么复审延期?很多人遇到这种情况,要么是工作太忙没时间处理,要么是不知道具体流程,导致证书失效,影响工作和项目进展。其实复审并不难,关键是要找准官方报名入口,掌… · 2026/11/14 0:00:31
为什么要低压电工证实操考试考什么 为什么低压电工证值不值得考?别再被中介骗了 你是不是也经常看到网上有人在问“低压电工证到底值不值得考”?或者在找报名点时,担心被中间人骗钱?这些问题,我懂,我也经历过。作为一名在应急管理行业摸爬滚打多年的从业者,我深知低压电工证不仅是一个从… · 2026/11/14 0:00:31
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/13 6:12:21
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/13 6:11:51
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/13 22:31:30