- 博客(16)
- 收藏
- 关注
原创 PCIE controller 和VIP结构简介
PCIE协议将PCIE分为三层TL/DL/PL 事务层、链路层、物理层。设计将PCIE分为controller、PHY两部分。controller为数字电路,PHY存在数字和模拟两部分,controller和PHY 通过标准的PIPE接口连接。由于PIPE标准的接口,Controller可以与不同厂商的PHY连接。实际验证过程中PHY使用模型替代,验证过程主要聚焦Conterller。PCIe VIP 是 PCIe 协议的软件参考模型和验证工具。
2025-09-04 15:27:07
1326
原创 PCIE_复位介绍
摘要: PCIe总线定义了四种复位机制:Cold Reset(冷复位)、Warm Reset(热复位)、Hot Reset(热启动复位)和FLR(功能级复位)。传统复位方式(Cold/Warm/Hot)通过PERST#信号或TS1/TS2序列实现,FLR则通过配置寄存器触发。复位机制的选择影响设备初始化时间和范围,Cold Reset最彻底但耗时最长,FLR最快但保留部分链路状态。
2025-08-27 18:24:59
1118
原创 PCIE_电源管理
PCIe 总线的电源管理包含 ASPM 和软件电源管理两方面内容。所谓ASPM 是指 PCIe 链 路在没有系统软件参与的情况下,由 PCIe 链路自发进行的电源管理方式。而软件电源管理指 PCI PM 机制,PCIe 总线的软件电源管理与 PCI 总线兼容。PCIe 总线为 PCIe 设备提供了几种低功耗模式。在一个处理器系统中, PCIe 设备的低功 耗模式需要与处理器的低功耗模式协调工作, 以最优化整个处理器系统的功耗。本文将重点说明。
2025-08-20 21:54:47
1391
原创 PCIE_链路训练过程_LTSSM状态机介绍
前言:PCIe链路训练过程,本文详细介绍了PCIe总线链路训练过程中使用的特殊字符序列及其状态机转换机制。主要内容包括:(1)三种关键字符序列:TS1/TS2用于链路检测和配置确认,Idle序列用于低功耗状态转换,FTS序列用于时钟同步;(2)LTSSM状态机的11个状态及其转换逻辑,重点分析了Detect、Polling、Configuration和Recovery等核心状态的运作机制;(3)链路训练的具体流程,从初始检测到正常工作状态的转换过程。主要参考的是王奇编写的《PCI Express体系结构与导
2025-08-18 19:04:24
1491
原创 PCIE controller与common interface概念介绍_databook学习
CXPL Module实现了PCI Express物理层、链路层和事务层的基本功能。该模块实现了大部分事务层逻辑、所有数据链路层逻辑和物理层的MAC部分,包括链路训练和状态状态机(LTSSM)。RADM维护接收完成查找表(LUT),用于完成跟踪和完成超时监视Tx未发布的请求。传输应用程序相关模块(XADM)实现用于数据包传输的PCI Express事务层的应用程序特定功能。接收应用程序相关模块(RADM)实现特定于应用程序的功能。❑ 将接收到的TLP路由到控制器的接收接口。❑ 接收TLP的缓冲和排队。
2025-08-11 20:07:17
1050
原创 PCIE_事务层(TL)_TLP包结构
PCIe TLP(事务层包)是PCIe协议的核心传输单元,负责设备间数据、配置和控制信息的传输。TLP由头部、数据载荷和可选校验等部分组成,支持多种事务类型,包括存储器读写、配置操作和消息传输等。
2025-08-11 17:50:35
1344
原创 PCIE_数据链路层(DLL)_数据链路控制与管理状态机DLCMSM
摘要:PCIe数据链路层(DLL)通过DLCMSM状态机实现链路管理与流控制,主要包含DL_Inactive、DL_Init、DL_Active和DL_Feature四种状态。核心功能包括:1)在DL_Init状态通过InitFC1/InitFC2协议完成VC0流控初始化;2)GEN4引入的DL_Feature状态支持可选的ScaledFlowControl功能,通过信用放大提升高速链路性能;3)状态机与LTSSM协同工作,确保链路可靠性。其中,流控初始化协议(FCI)是建立链路的关键过程。
2025-08-09 20:58:33
883
原创 PCIE寄存器类型以及访问方式
类别访问机制关键寄存器示例属性标准配置头ECAM / 0xCF8端口RO / RW扩展能力寄存器ECAM遍历访问RW1C / ROSPHY控制寄存器MMIO(PHY CSR接口)RW / RW1CATU映射寄存器MMIO(RC内部映射)RW厂商自定义ECAM或MMIO调试状态寄存器厂商定义PCIe寄存器体系以配置空间为核心,扩展至PHY物理层及RC专用控制层,形成四级架构:基础配置。
2025-07-17 14:34:33
1162
原创 PCIE知识点笔记
PCIe拓扑结构以根复合体(RC)为核心,负责连接CPU/内存与PCIe设备。RC具有事务处理、路由转发和资源管理功能,提供热插拔、电源管理等服务。PCIe事务分为非转发类(读/IO/配置)和转发类(写/消息),前者采用请求-完成机制,后者仅发送请求包以提高性能。枚举过程中,RC仅发送Type1配置请求,由下游桥设备转换为Type0请求以探测端点设备,这种机制确保了拓扑探测的高效性和可靠性。RC通过递归扫描为每个设备分配资源并初始化配置空间。
2025-07-16 15:13:08
565
原创 关于fork join 启动多个循环体使用的误区
在给激励的过程中,fork join 似乎时一个万能的公式,他能将多个进程同时启动并执行完进程后退出当前fork join语句。假设你的1、2、3进程中均出现需要执行循环体,那么该如何写此段激励。原因:在fork join启动进程,使用wait作为判断条件进入循环体后,循环体执行后无法退出,即便后面出发B、C条件后,b、c进程也不会执行。错误做法:使用 fork join 启动a、b、c三个循环体,并使用wait作为判断条件。现需要实现一种激励在不同的条件下,给出不同的脉冲宽度该激励还需循环执行。
2025-07-09 13:48:29
420
原创 关于变量声明的低级错误
SystemVerilog中变量声明位置错误导致仿真报错的分析:在调试过程中发现错误并非由数据类型int引起,而是变量声明位置不当导致。SystemVerilog要求块内的局部变量声明必须置于begin-end块的最开头,任何可执行语句(如$display)都不得出现在变量声明之前。正确的做法是将所有变量声明移到对应块的最前端。需注意虽然同名变量在不同分支块中可以重复声明(作用域独立),但必须遵循声明前置规则。同时要确认使用的仿真工具支持SystemVerilog标准,因为传统Verilog不支持块内局部变
2025-07-09 11:19:25
255
原创 PCIE中RC、axi、axi_apb桥、pcie设备之间的桥接关系
本文摘要: PCIe系统验证涉及多协议层连接与转换,核心包括:1)AXI主设备与根复合体(RC)的交互,RC将AXI请求转为PCIe TLP包;2)RC通过TLP与端点设备(EP)通信,EP内部处理地址转换和DMA;3)低速外设需AXI-APB桥接协议转换。UVM验证平台通过AXI/PCIe VIP和APB Agent监控协议合规性、地址映射及数据一致性,重点验证垂直协议栈(AXI→TLP→APB)转换正确性和异常处理能力。典型场景如CPU读写EP寄存器时,需确保跨协议层的端到端数据完整性。验证关键在于构建
2025-07-05 20:45:27
1341
原创 如何调试和解决UVM中uvm_do_with宏的约束失败问题
UVM在使用VIP过程中,我们常常需要根据验证场景去修改VIP提供transaction。而VIP对自己的tr都会做一些constraint(使其符合相应模块的协议),我们在使用VIP tr的过程中,如果在某个seq修改了相关的配置,或是在virtual seq 中自己设置了一些constraint,那么很有可能会使得两种constaint产生冲突。特别是使用了`uvm_do_with宏启动seq,会使得调试场景较为复杂,且不好定位问题。
2025-06-26 17:42:59
1071
原创 UVM中uvm_do系列宏的定义、底层实现及其优缺点
摘要: UVM的uvm_do系列宏(如uvm_do、uvm_do_on、uvm_do_with)通过封装事务创建、随机化和发送流程(依赖start_item()和finish_item())简化测试代码,提升开发效率。其优点包括代码简洁、自动时序管理和低错误率,但灵活性不足(无法在发送流程中插入定制操作)、约束可能失效且调试困难。建议在简单场景使用宏以提高效率,复杂场景改用底层方法实现精细控制。宏适用于标准化测试生成,而手动调用更适合需动态调整事务的场合。
2025-06-25 11:19:17
832
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅