<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于FPGA與外部SRAM的大容量數據存儲

基于FPGA與外部SRAM的大容量數據存儲

作者: 時(shí)間:2012-01-19 來(lái)源:網(wǎng)絡(luò ) 收藏

3.3 控制邏輯電路設計

  如圖三所示,控制邏輯由來(lái)實(shí)現。主要包括讀地址產(chǎn)生器、寫(xiě)地址產(chǎn)生器、讀寫(xiě)時(shí)鐘信號產(chǎn)生器及讀寫(xiě)控制等幾部分。下面分別加以講述。

  

基于FPGA與外部SRAM的大容量數據存儲

  (1)寫(xiě)地址產(chǎn)生器:由于設計時(shí)采用256K×16的,故有18位地址,寫(xiě)地址產(chǎn)生器用18位計數器實(shí)現??客獠繒r(shí)鐘驅動(dòng),每進(jìn)行一次寫(xiě)操作后,讀寫(xiě)控制單元產(chǎn)生計數脈沖,使其增1,直到18位計數器計滿(mǎn)再循環(huán)寫(xiě)入地址為0的空間。

  (2)讀地址產(chǎn)生器同上,也采用18位計數器實(shí)現,根據系統要求,每隔一定的采樣周期將讀地址指針偏移一定偏移量,并從該位置讀取數據。

  (3)讀寫(xiě)地址選擇器由于讀寫(xiě)地址復用管腳,因此在讀寫(xiě)操作時(shí),必須選通相應的地址。這就需要由控制芯片上的等控制信號來(lái)對進(jìn)行讀寫(xiě)的操作。

  (4)此外,由于讀寫(xiě)之間的切換,數據線(xiàn)上的數據在切換瞬間如不加處理會(huì )出現混亂現象。因此,為避免讀、寫(xiě)操作發(fā)生沖突,數據線(xiàn)呈三種狀態(tài),讀數據、寫(xiě)數據及高阻態(tài)。在從寫(xiě)到讀的過(guò)程中需給數據線(xiàn)上送高阻態(tài)。

  

基于FPGA與外部SRAM的大容量數據存儲

  (5)當需要對進(jìn)行寫(xiě)操作時(shí),由控制產(chǎn)生寫(xiě)地址選通信號,該選通信號為一單脈沖形式,如圖四中該脈沖下降沿觸發(fā)SRAM,告知開(kāi)始對RAM進(jìn)行寫(xiě)操作,使FPGA輸出寫(xiě)地址,同時(shí)給數據線(xiàn)上送數據。在寫(xiě)操作期間,片選信號始終保持低電平,而寫(xiě)地址選通信號上升沿到來(lái)時(shí)使寫(xiě)地址計數器增1。以此類(lèi)推,通過(guò)寫(xiě)地址選通信號高低電平變化完成對數據依次寫(xiě)入。需要注意的是,地址線(xiàn)和數據線(xiàn)在為高時(shí)可同時(shí)賦新值,但只有在變低后賦予數據線(xiàn)上的新值才有效。

  

基于FPGA與外部SRAM的大容量數據存儲

  對SRAM進(jìn)行讀操作相對較簡(jiǎn)單,在進(jìn)行讀操作期間,始終為低電平,始終為高電平。每進(jìn)行一次讀操作,地址按系統要求變化一次。同時(shí)注意,地址的變化時(shí)刻總要先于數據的變化時(shí)刻。圖五為RAM讀操作時(shí)序。

  以下是一段用VHDL語(yǔ)言描述的控制RAM的讀寫(xiě)操作時(shí)序的程序代碼:

  

基于FPGA與外部SRAM的大容量數據存儲

  程序中,在進(jìn)行讀寫(xiě)操作時(shí),片選使能信號CE_SRAM及輸出使能信號OE_SRAM始終為低電平。

  第0時(shí)刻到第2時(shí)刻在進(jìn)行寫(xiě)操作:第0時(shí)刻地址線(xiàn)addr_SRAM和數據線(xiàn)data_SRAM同時(shí)賦新值,控制線(xiàn)WE_SRAM、LB_SRAM、UB_SRAM要經(jīng)歷一個(gè)窄脈沖的變化過(guò)程,RAM在獲取到此控制線(xiàn)下降沿信息后,便知開(kāi)始進(jìn)行寫(xiě)操作。需要注意的是,雖然數據在第0時(shí)刻已賦到數據線(xiàn)上,但因為寫(xiě)操作是控制線(xiàn)低電平有效,所以數據線(xiàn)上真正發(fā)生數據更新是在控制線(xiàn)變?yōu)榈碗娖街?,因此,數據線(xiàn)上的實(shí)際更新時(shí)刻是在第2個(gè)時(shí)刻。

  第3、4狀態(tài)是進(jìn)行讀操作:在讀寫(xiě)轉換時(shí)刻,也就是在第3時(shí)刻如前所述需給數據線(xiàn)上送高阻態(tài)。這樣,讀取數據的時(shí)序關(guān)系由系統時(shí)鐘進(jìn)行控制,在第3時(shí)刻給地址線(xiàn)上送要讀取的地址,第4時(shí)刻將數據端口上的數據送出。這里需注意的是,讀取數據要比讀取地址晚一個(gè)時(shí)刻。從而,完成了對外部RAM的讀寫(xiě)操作控制。

  4結論

  該系統已應用在羅蘭—c導航接收機的信號處理中。實(shí)驗證明,此設計可靠穩定地完成了大容量高速異步數據存儲,進(jìn)一步提高了系統的性能。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: FPGA SRAM

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>