1. 程式人生 > >xilinx7系列FPGA之IO_FIFO篇簡介

xilinx7系列FPGA之IO_FIFO篇簡介

前3篇咱們介紹了 SelectIO 邏輯資源,本篇咱們就聊一聊與SelectIO 邏輯資源水乳交融、相得益彰的另一個概念——IO_FIFO。

 

1個IO_FIFO包括1個IN_FIFO 和1個OUT_FIFO,它是7系列FPGA新設計的IO專用FIFO,主要用於IOLOGIC(例如ISERDES、IDDR、OSERDES或ODDR)邏輯功能的擴充套件。

 

FPGA的每個BANK有4個IN_FIFO和4個OUT_FIFO,相當於每12個IO對應1個IN_FIFO和1個OUT_FIFO。

 

IN_FIFO從ILOGIC接收4bit位寬的輸入資料,但卻可以輸出4bit或者8bit位寬的資料到FPGA內部SLICE。OUT_FIFO正好相反,從OLOGIC接收4bit或者8bit位寬的輸入資料,但卻輸出4bit位寬資料。

 

每一個IO_FIFO的儲存大小為768bit,可以配置成12組4X4位寬資料的FIFO,也可以配置成10組4X8bit位寬資料的FIFO。每個IO_FIFO的深度為9。如圖1所示為IO_FIFO的結構示意圖:

                       

圖1:IO_FIFO的結構示意圖

 

如圖2所示為IN_FIFO的原語框圖:

 

圖2:IN_FIFO的原語框圖

 

正如前面所說,當配置成12組的4bit位寬輸入,4bit位寬輸出時,輸入D0[3:0]~ D9[3:0]對應輸出Q0[3:0]~ Q9[3:0];輸入D10[3:0]即為輸入D5[7:4],對應輸出Q5[7:4];輸入D11[3:0]即為輸入D6[7:4],對應輸出Q6[7:4]。

 

當配置成10組4bit位寬輸入,8bit位寬輸出時,D0[3:0]~D9[3:0]對應輸出Q0[7:0]~ Q9[7:0],此時寫時鐘頻率是讀時鐘頻率的2倍。OUT_FIFO和IN_FIFO操作過程正好相反,咱們這裡就不羅嗦了。

 

總的來說,IO_FIFO其實就是儲存深度比較小、位寬固定為4/8bit的普通FIFO ,7系列FPGA單獨設計了這樣的FIFO,更適用於IO介面處的位元組\半位元組資料快取。