xilinx pcie ep pio

本文介绍了PCIe接口中RX和TX状态机的工作原理,详细解析了如何处理64bit TLP传输。RX状态机在接收到写内存的TLP时,直接启用BRAM模块进行读改写操作;而对于读请求,信号会传递到TX模块,通过与BRAM交互并发送完成信号。TX状态机则描述了从初始化到发送CPLD的流程。
摘要由CSDN通过智能技术生成

实时画状态图 https://hifpga.com/fsm/

一个时钟周期传输64bit在这里插入在子啊图片描述

tlp格式在这里插入图片描述
RX状态机
digraph pcie_pio_rx {
PIO_RX_RST_STATE
PIO_RX_MEM_RD32_DW1DW2
PIO_RX_MEM_WR32_DW1DW2
PIO_RX_MEM_RD64_DW1DW2
PIO_RX_MEM_WR64_DW1DW2
PIO_RX_MEM_WR64_DW3
PIO_RX_WAIT_STATE
PIO_RX_RST_STATE -> PIO_RX_MEM_WR32_DW1DW2
PIO_RX_MEM_WR32_DW1DW2 -> PIO_RX_WAIT_STATE

     PIO_RX_RST_STATE -> PIO_RX_MEM_RD32_DW1DW2
     PIO_RX_MEM_RD32_DW1DW2 -> PIO_RX_WAIT_STATE
     
     PIO_RX_RST_STATE ->  PIO_RX_MEM_RD64_DW1DW2
     PIO_RX_MEM_RD64_DW1DW2 -> PIO_RX_WAIT_STATE
     
     PIO_RX_RST_STATE -> PIO_RX_MEM_WR64_DW1DW2
     PIO_RX_MEM_WR64_DW1DW2 -> PIO_RX_MEM_WR64_DW3
     PIO_RX_MEM_WR64_DW3 -> PIO_RX_WAIT_STATE
     
     PIO_RX_WAIT_STATE -> PIO_RX_RST_STATE[label = "!wr_busy | compl_done"]
     subgraph cluster_sgh {     
     }
  }

在这里插入图片描述

tx状态机:

在这里插入图片描述
digraph pcie_pio_tx {

     PIO_TX_RST_STATE     
     PIO_TX_CPLD_QW1_FIRST
     PIO_TX_CPLD_QW1_TEMP 
     PIO_TX_CPLD_QW1    
     
     PIO_TX_RST_STATE -> PIO_TX_CPLD_QW1_FIRST -> PIO_TX_CPLD_QW1_TEMP ->PIO_TX_CPLD_QW1
     PIO_TX_CPLD_QW1 -> PIO_TX_RST_STATE 
     
     subgraph cluster_sgh {

     
     }


    }

rx模块接收tlp 如果是写mem tlp 则直接使能bram模块,在bram模块中将要写的地址数据读出来做读改写操作 再将数据写入
如果是读请求模块 则将信号发往tx模块 tx模块与bram模块交互 然后将cpld发送出去 再发送complete信号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值