当前位置:网站首页>4. PCIe 接口时序
4. PCIe 接口时序
2022-08-05 00:41:00 【jjinl】
在上一篇中,大致介绍IPcore接口。总的来说接口如下图

数据的接收和发送通过 transmit TLP interface和Receive TLP interface。收发数据的时序也只是描述这几个接口的关系。从手册上截取PCIe x1的接口时序
数据发送

上图是x4接口,我们使用的5G的IP,时序和这个差不多,只是tx_val会间隔有效。上述时序
EP发送数据之前,首先发送tx_req_vc0为高,表示请求发送,等待tx_rdy_vc0为高表示可以开始发送,当tx_rdy_vc0为高时,在下一个时钟的上升沿在yx_data_vc0上放置数据,并拉高tx_st_vc0信号. tx_rdy_vc0一致保持高电平,直到TLP包的最后一个数据,所以这个tx_rdy_vc0信号可以作为一个读使能信号使用,用于非流水的fifo。
tx_end_vc0,指示数据线上是TLP最后一个数据。
tx_ca_*h_vc0 和 tx_ca_*d_vc0在每次发送请求之前必须检查,发送完成后对应的值会减一,这两个类型的标志是指示上端口是否有资源转发你的发送数据

上图是发送两个数据的时序

上图发送时序是只有头,不存在数据对应tx_ca_*d_vc0没有变化

上图发送的数据最后一个不够64bit,此时dwen信号指示63:32位有效

burst模式,发送两个TLP包,req信号保持到最后一个TLP包发送rdy信号有效

作废TLP包,在任何时候拉高 tx_nlfy信号,作废此TLP包,不需要再发tx_end信号

上图x4降级为x1的时候时序图,我们工程使用的x1,时序图和上面一样。此图中tx_val为高的时候,信号才发生变化
数据接收
当一个TLP数据包发送过来时,rx_st_vc0会被拉高,此时第一个数据会出现在数据线上,每一个时钟一个数据,当rx_end_vc0为高时,表示此时数据线上是最后一个数据。如果出现ECRC错误,则在最后一个数据时刻rx_ecrc_err_vc0会被拉高;如果TLP的长度有问题,则rx_malf_tlp_vc0会被拉高

tlp接收数据

接收ECRC错误

TLP长度有问题
边栏推荐
- D - I Hate Non-integer Number (count of selected number dp
- Mysql_14 存储引擎
- 软件测试面试题:软件验收测试的合格通过准则?
- E - Distance Sequence (prefix and optimized dp
- 克服项目管理中恐惧心理
- 数据类型-整型(C语言)
- "No title"
- canvas 高斯模糊效果
- 软件测试面试题:软件测试类型都有哪些?
- Software testing interview questions: Have you used some tools for software defect (Bug) management in your past software testing work? If so, please describe the process of software defect (Bug) trac
猜你喜欢

Will domestic websites use Hong Kong servers be blocked?

TinyMCE disable escape

英特尔WiFi 7产品将于2024年亮相 最高速度可达5.8Gbps

Countdown to 1 day!From August 2nd to 4th, I will talk with you about open source and employment!

典型相关分析CCA计算过程

ora-01105 ora-03175
![[230] Execute command error after connecting to Redis MISCONF Redis is configured to save RDB snapshots](/img/fa/5bdc81b1ebfc22d31f42da34427f3e.png)
[230] Execute command error after connecting to Redis MISCONF Redis is configured to save RDB snapshots

"WEB Security Penetration Testing" (28) Burp Collaborator-dnslog out-band technology

刘润直播预告 | 顶级高手,如何创造财富

简单的顺序结构程序(C语言)
随机推荐
leetcode:269. 火星词典
oracle创建表空间
SV class virtual method of polymorphism
刘润直播预告 | 顶级高手,如何创造财富
软件测试面试题:做好测试计划的关键是什么?
主库预警日志报错ORA-00270
oracle create user
MAUI Blazor 权限经验分享 (定位,使用相机)
leetcode: 269. The Martian Dictionary
The method of freely controlling concurrency in the sync package in GO
软件测试面试题:黑盒测试、白盒测试以及单元测试、集成测试、系统测试、验收测试的区别与联系?
GO中sync包自由控制并发的方法
TinyMCE禁用转义
数据类型-整型(C语言)
canvas 高斯模糊效果
Raw and scan of gorm
2022 Hangzhou Electric Multi-School Training Session 3 1009 Package Delivery
[idea] idea configures sql formatting
E - Distance Sequence (prefix and optimized dp
软件测试面试题:软件都有多少种分类?