
193、PCIE测试用例设计:从一次诡异的链路降速说起去年调试一块自研的FPGA板卡,PCIE Gen3 x4链路在Linux下突然降速成Gen1 x1。lspci -vv显示“Link downgraded”,但Windows下却一切正常。熬了两个通宵,最后发现是Linux内核的ASPM电源管理策略和FPGA侧LTSSM状态机配合失误——这种问题靠常规的“枚举-读写-速率测试”三板斧根本抓不到,必须设计针对链路状态跃迁的专项测试用例。今天就来聊聊,PCIE测试用例该怎么设计才不漏坑。一、测试用例设计的三个维度PCIE测试不能只盯着带宽跑分。完整的测试体系要覆盖协议层、事务层、链路层、物理层,还得考虑异常场景和边界条件。我习惯把用例分成三类:基础功能用例:枚举测试:上电后RC能否正确识别EP的BAR空间、Class Code、Capability结构配置空间读写:特别是MSI/MSI-X Capability的配置流程DMA读写验证:EP发起DMA,RC发起MMIO,双向数据校验中断测试:MSI/MSI-X是否准确触发,共享中断能否正确处理// 示例:简单的配置空间读写测试(伪代码)