天天看點

xilinx pcie ep pio

實時畫狀态圖 https://hifpga.com/fsm/

一個時鐘周期傳輸64bit

xilinx pcie ep pio

tlp格式

xilinx pcie ep pio

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 {     
     }
  }
           
xilinx pcie ep pio

tx狀态機:

xilinx pcie ep pio

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信号