實時畫狀态圖 https://hifpga.com/fsm/
一個時鐘周期傳輸64bit
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiIXZ05WZj91YpB3IwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxSeZRlT0EFVOBTT6hVMSdVYopkMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL2QTN2QTNxMTMyEjNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
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信号