NVMe高速传输之摆脱XDMA设计13:PCIe请求模块设计(下)
在接收到请求总线接口的请求事务后,当请求类型的值为0时,表示通过PCIE硬核的配置管理接口发送请求,由于请求接口的接口和时序与配置管理接口基本一致,因此此时直接将请求接口信号驱动到配置管理接口完成请求的发送,请求读数据和响应也通过选通器连接到配置管理接口。当请求类型值不为0时,则需要将请求转换为TLP以axis接口形式发送,这一过程通过请求状态机实现,请求状态机的状态转移图如图1所示。各状态说明如下:
图1 PCIe请求状态转移图
IDLE:空闲状态,复位后的初始状态。当请求写有效或请求读有效,且请求类型值不为0时,如果请求写有效跳转到WR_HEAD状态,如果请求读有效或读写同时有效跳转到RD_HEAD状态,否则保持IDLE状态。实际的上层设计中读写请求不会同时发生,这里的状态跳转条件增加了读优先设计,从而避免异常情况的出现。
WR_HEAD:请求写TLP头发送状态。该状态下根据请求类型、请求地址组装写请求的TLP报头,并将报头通过axis_rq接口发送。当axis_rq接口握手时跳转到WR_DATA状态。
WR_DATA:请求写TLP数据发送状态。该状态下将请求写的数据通过axis_rq接口发送,当axis_rq接口握手时跳转到DONE状态。
RD_HEAD:请求读TLP头发送状态。该状态下组装读请求TLP报头通过axis_rq接口发送,当接口握手时跳转到RD_DATA状态。
RD_DATA:请求读CPLD接收状态。该状态下监测axis_rc接口信号,当出现数据传输有效时,启动握手并接受数据,然后跳转到DONE状态。
DONE:请求完成状态。该状态下使能req_ack请求响应信号,如果是读请求同时将RD_DATA状态下接收的数据发送到req_rdata请求读数据接口。一个时钟周期后回到IDLE状态。
B站已给出相关性能的视频,如想进一步了解,请搜索B站用户:专注与守望
链接:https://space.bilibili.com/585132944/dynamic?spm_id_from=333.1365.list.card_title.click
审核编辑 黄宇
- NVMe高速传输之摆脱XDMA设计13:PCIe请求模块设计(下)
- 芯海科技:BMS芯片出货超亿颗,系列新品强势夯筑第二增长曲线
- 赛思NTP服务器选型推荐,赛思NTP服务器云端助力“数智伊利”步入现实!
- 光伏发电用不掉,充电成本下不来?园区光储充协同策略解决方案
- 虹科干货 | 信用整形机制Qav:如何平衡流量整形和缓存大小?
- 安科瑞分布式光伏监控系统:赋能园区企业光伏用电智能化管理
- 零成本建站!使用树莓派在家搭建网站:分步指南!
- Robot之身---机械臂总 “罢工”?电磁干扰的隐形坑,雷卯这套方案帮解决!
- 船闸液压缸磁致伸缩位移传感器故障排查
- 新一代 UWB 前端定位模块,满足更多复杂应用
- 信号发生器在新能源发电机频率控制中的应用及优化
- 安科瑞智慧能源管理系统:光储充协调控制的应用场景与解决方案
- 什么是Modbus RTU协议
- EasyGo DeskSim软件的核心实用工具
- 安森美为AI数据中心构建全链路电源解决方案
- RK3568开发板暗藏32位兼容开关?飞凌嵌入式带你一键解锁!