新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的高速實時數據采集系統設計

        基于FPGA的高速實時數據采集系統設計

        作者: 時間:2012-06-01 來源:網絡 收藏

        2.2.1 A/D模塊
        本文A/D控制模塊主要就是為了控制ADS8364芯片,提供各個控制信號,以便ADS8364芯片能夠正常進行模數轉換、A/D轉換芯片轉換后的數字信號的接收并將這些數字信號寫入對應的FIFO中進行緩存。
        輸入引腳:din(15:0):16位A/D模數轉換器轉換后的數字信號的輸入引腳;full(5:0):6路FIFO的滿標識引腳,如果該引腳有效則停止往FIFO中寫入數據,如果該引腳無效則可繼續向FIFO中寫入數據,直到該引腳有效為止;ad:開始結束采集引腳;clk:5 MHz時鐘輸入引腳;rst:復位引腳。
        輸出引腳:dout(1 5:0):16位的數字信號輸出引腳;wr_en(5:0):6路FIFO的寫使能引腳;xa(2:0):ADS8364的數據讀取模式選擇引腳,單通道讀取模式為本設計系統的讀取數據模式;ad clk:5 MHz的ADS8364的時鐘引腳;cs clk:開關模塊時鐘引腳;hold:控制AD芯片開始采集引腳;wr_clk:FIFO寫時鐘引腳;xcs0:ADS8364芯片片選引腳;xr:ADS8364讀使能引腳;xrs:ADS8364芯片復位引腳;xw:ADS8 364芯片寫使能引腳,A/D模塊在Modelsim中的仿真圖如圖6所示。

        本文引用地址:http://www.104case.com/article/190326.htm

        d.JPG


        從Modelsim仿真圖可以看出,當ADS8364的讀使能信號即xr為上升沿時,則表示通過A/D轉換后的數字信號就轉入到相應的FIFO中,從而達到數字信號的緩存作用,為后續信號實時、大量地傳輸到DSP進行處理做好了準備。
        2.2.2 FIFO模塊
        FIFO(先入先出)既是最先寫入的數據也是最先讀出的數據的一個堆棧。FIFO具有兩個單一方向的端口,然而沒有像其他存儲器那樣,沒有地址的輸入:一個用于寫,另一個用于讀。FIFO中的數據是列隊結構,因此,會出現上溢和下溢現象。當向一個滿的FIFO中再寫入數據時,就會出現上溢,同時如果對一個空的FIFO進行操作時,就會出現下溢。
        FIFO由一個雙端口存儲器塊、一個讀端口、一個寫端口和一個控制邏輯模塊組成,存儲器模塊通常采用的是SRAM,但是對某些應用也可以使用DRAM。它的結構示意圖如圖7所示。

        j.JPG


        FIFO是把存儲器結成一個環,用內部的兩個指針來尋址的。FIFO的狀態并不是看兩個指針的絕對大小,而是根據他們的相對大小來進行判斷的。一個空的FIFO開始時把讀的指針和寫的指針生成相同的值,寫數據時,寫指針增加;讀地址時,讀指針增加。因此,當讀指針和寫指針相等時,可能存在兩種情況,即空狀態和滿狀態。在不同時鐘域里對FIFO空或滿狀態的判斷必須遵守的一個原則就是必須保證FIFO為滿的情況下,不能再進行寫操作,在FIFO為空的狀態下,就不能再進行讀操作,這就是異步FIFO設計的關鍵點同樣也是難點。
        本文用的是指針附加位比較法,這種方法是給每一個指針的前面多加一個附加位。寫指針:當存儲完最后一個數據單元后,將向最高位即附加位進位,除最高位外的所有位都將變為零;讀指針:當讀完最后一個數據單元后,也將向最高位進一位。如果兩個地址指針除了最高位外其余位相同時,則表明寫指針比讀指針多循環了一次,此時馬上停止向FIFO里面再寫入數據,FIFO存儲器為滿狀態。如果兩個地址指針所有位完全相同,則表示寫指針和讀指針具有相同的循環次數,此時,說明FIFO存儲器為空狀態,此時,就會馬上停止讀取數據。
        FIFO模塊的輸入端:wdata(15:0):來自A/D的16位寫數據端;rclk:瀆數據時鐘端;rreq:讀數據允許端;rrst_n:讀復位端;wcl k:寫數據時鐘端;wreq:寫數據允許端;wrst_n:寫數據復位端。輸出端:rdata(15:0):寫入數據總線的讀數據端;rempty:讀空端;wfull:寫滿端。本文采用的每一個FIFO的模塊圖如圖8所示。

        e.JPG



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 溧水县| 望都县| 资中县| 宁化县| 康乐县| 沂源县| 金阳县| 甘谷县| 周宁县| 阆中市| 长顺县| 德庆县| 永福县| 新郑市| 蕲春县| 襄城县| 岱山县| 肥乡县| 曲阳县| 伊宁市| 子洲县| 安化县| 巴彦淖尔市| 沾益县| 安龙县| 禄劝| 安陆市| 灵丘县| 天等县| 搜索| 宜君县| 敦化市| 灵武市| 灌云县| 盐亭县| 安顺市| 石渠县| 迭部县| 鹤庆县| 赤城县| 彰化市|