当前位置:网站首页>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长度有问题
边栏推荐
- torch.autograd.grad求二阶导数
- [230]连接Redis后执行命令错误 MISCONF Redis is configured to save RDB snapshots
- 2022牛客多校训练第二场 H题 Take the Elevator
- gorm joint table query - actual combat
- E - Many Operations (bitwise consideration + dp thought to record the result after the operation
- MongoDB construction and basic operations
- node使用redis
- tensor.nozero(), mask, [mask]
- 主库预警日志报错ORA-00270
- leetcode:269. 火星词典
猜你喜欢

翁恺C语言程序设计网课笔记合集

Mysql_13 事务

OPENWIFI实践1:下载并编译SDRPi的HDL源码

redis可视化管理软件Redis Desktop Manager2022

gorm联表查询-实战
![[FreeRTOS] FreeRTOS and stm32 built-in stack occupancy](/img/33/3177b4c3de34d4920d741fed7526ee.png)
[FreeRTOS] FreeRTOS and stm32 built-in stack occupancy

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

CNI(Container Network Plugin)

Redis visual management software Redis Desktop Manager2022

leetcode: 266. All Palindromic Permutations
随机推荐
关于我仔细检查审核过关于工作人员页面,返回一个所属行业问题
Software testing interview questions: the difference and connection between black box testing, white box testing, and unit testing, integration testing, system testing, and acceptance testing?
【Unity编译器扩展之进度条】
About I double-checked and reviewed the About staff page, returning an industry question
tiup update
2022多校第二场 K题 Link with Bracket Sequence I
canvas 高斯模糊效果
tiup telemetry
翁恺C语言程序设计网课笔记合集
tiup status
could not build server_names_hash, you should increase server_names_hash_bucket_size: 32
[230] Execute command error after connecting to Redis MISCONF Redis is configured to save RDB snapshots
tensor.nozero(),面具,面具
数据类型及输入输出初探(C语言)
oracle create tablespace
MongoDB搭建及基础操作
2022杭电多校第一场 1004 Ball
主库预警日志报错ORA-00270
日志(logging模块)
倒计时1天!8月2日—4日与你聊聊开源与就业那些事!