采用FPGA的高速數據采集系統
2.2 高速存儲與讀取在FPGA里的邏輯實現
在第一節中我們已說到A/D轉換器的數據率是125M,16BIT,而本設計中用的HY57V641620的最高時鐘可達200M,因此完全可以滿足A/D轉換器的速率要求。A/D轉換器的數字輸出已經被我們直接存儲到了FPGA的內部FIFO當中,FIFO是一種先進先出的存儲器,被讀出的數據就不會在FIFO中存在了。因此,這個FIFO在使用的時候,A/D轉換器的數據一邊以125M的速度往FIFO寫數據,一邊用一個速度更高的時鐘,150M的速度往外讀數據,這樣讀的速度大于寫,因為FIFO有滿和空的標志,因此我們用空的標志來控制讀FIFO的操作,即空的時候就不讀,這樣,在FIFO端,我們可以保證A/D采集的數據無丟失的以150M的速度被讀出。我們用這個150M的時鐘來驅動一個地址計數器,如圖4所示。
SYS_CLK就是那個150M的時鐘,地址計數器的位數就決定了本次存儲的深度,我們把這個地址計數器的輸出SD_ADA[22..1]直接接到SDRAM控制器的AVALON的地址端,把FIFO讀出的數據直接接到AVALON的數據端,把WAIT線接到地址計數器的使能端來控制,忙的時候就不讓地址計數器計數,當地址計數器從0計到SDRAM的最高地址的時候,我們就實現了FIF0的數據到SDRAM的傳輸,從而最終實現了A/D轉換器的結果到SDRAM的存儲。至此,我們已完成了高速數據到SDRAM的存儲。讀取相對與存儲的過程操作比較簡單,用戶想要調用SDRAM里的數據,只需要把自己的處理器的總線接到FPGA的引腳上,在內部掛載到SDRAM控制器的AVALON讀取端,圖3中的中間部分,按照總線的操作方式即可讀取相應地址里的數據。
3 結束語
本文介紹了一種基于高速A/D轉換器,FPGA,SDRAM來實現的控制高速數據采集的數字系統,詳細的介紹了各部分的實現方法。該系統具有速度高,存儲容量大等優點,能夠適應高速數據采集的諸多場合。
評論