介紹
更詳細的信息參考IP核參考資料。表2.29給出了主FSL信號接口,表2.30給出了從FSL接口信號。表2.29主FSL信號接口
信號 | 功能 | VHDL類型 | 方向 |
FSLn_M_Clk | 時鐘 | std_logic | input |
FSLn_M_Write | 寫使能信號,表示數據正被寫到輸出FSL | std_logic | output |
FSLn_M_Data | 寫到輸出FSL的數據 | std_logic_vector | output |
FSLn_M_Control | 寫到輸出FSL的控制位 | std_logic | output |
FSLn_M_Full | 當設定時,表示輸出FSL的FIFO滿。 | std_logic | input |
接口
信號 | 功能 | VHDL類型 | 方向 |
FSLn_S_Clk | 時鐘 | std_logic | input |
FSLn_S_Read | 讀承認信號表示,數據已經從輸入FSL讀出 | std_logic | output |
FSLn_S_Data | 在輸入FSL的頂部的現在可用的數據 | std_logic_vector | input |
FSLn_S_Control | 控制比特,在輸入FSL的頂部的數據現在可用 | std_logic | input |
FSLn_S_Exists | 指示標誌,表明在輸入FSL中存在數據。 | std_logic | input |
操作方法
MicroBlaze使用put或putd指令,執行寫FSL的操作。寫FSL操作將暫存器的內容傳送到輸出FSL匯流排上。當FSL的FIFO非滿狀態時,在塊傳輸模式下只需要一個時鐘周期就能完成數據傳輸。如果FSL的FIFO滿時,處理器停下來等待,直到FSL的滿標誌變成低。非塊傳輸指令(prefixn)在一個時鐘周期下完成傳輸(即使FSL為滿)。如果FSL為滿時,寫操作被禁止,且MSR的進位標誌被置位。
匯流排
MicroBlaze使用get或getd指令,執行讀FSL的操作。讀FSL操作將輸入FSL匯流排的內容傳輸到通用暫存器中。當FSL的FIFO非滿狀態時,在塊傳輸模式下只需要2個時鐘周期就能完成數據讀傳輸。如果FSL的FIFO滿時,處理器停下來等待,直到FSL的滿標誌變成低。非塊傳輸指令(prefixn)在2個時鐘周期下完成傳輸(即使FSL為空)。如果FSL為空時,不產生讀數據傳輸,且MSR的進位標誌被置位。
連線
直接FSL連線用來去避免需要FSL匯流排。在沒有緩衝的情況下,比如兩個連線的IP核。
在直接FSL連線下不使用FSL的FIFO。無FIFO可以減少延遲和要求實現的資源。
MicroBlaze處理器的每一個FSL接口能使用FSL直接連線或FSL匯流排。
MicroBlaze的DWFSL接口是直接FSL連線的初始源,它只能連線到DWFSL目標。DWFSL的初始源和目標有同樣的信號名(與MFSL信號一樣)。MicroBlaze使用DWFSL接口通過put或putd命令寫數據到目標。
MicroBlaze的DRFSL接口是一個FSL連線的目標,它只能連線到DRFSL的初始源。DRFSL的初始源和目標有同樣的信號名(與SFSL信號一樣)。MicroBlaze使用DRFSL接口通過get或getd命令從初始源讀數據。
Xilinx的CacheLink(XCL)接口就是使用直接FSL連線實現的。