<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 基于CPLD的高速存儲設(shè)計

          基于CPLD的高速存儲設(shè)計

          作者: 時間:2009-12-11 來源:網(wǎng)絡(luò) 收藏
          4 軟件設(shè)計
          對于高速RAM的讀寫控制,可采用狀態(tài)機的方法實現(xiàn)。狀態(tài)機有多種分類方法。根據(jù)輸出是否與輸入信號同步,狀態(tài)機可以劃分為同步和異步狀態(tài)機。而根據(jù)輸出是否與輸入信號有關(guān),則可分為Mealy型和Moore型狀態(tài)機。對于Mealy型狀態(tài)機,其時序邏輯輸出不僅取決于狀態(tài),還取決于輸入。通常輸出是當(dāng)前狀態(tài)值、當(dāng)前輸出值和當(dāng)前輸入值的函數(shù);而Moore型狀態(tài)機時序邏輯電路輸出只取決于當(dāng)前狀態(tài),其輸出只是當(dāng)前狀態(tài)值的函數(shù)。
          在單片SRAM的讀寫設(shè)計中,可采用計數(shù)器控制SRAM讀寫信號的產(chǎn)生,并設(shè)置SRAM地址計數(shù)器,同時采用狀態(tài)機來實現(xiàn)空閑、讀狀態(tài)、寫狀態(tài)等不同狀態(tài)的相互轉(zhuǎn)換。其程序仿真結(jié)果如圖4所示。

          本文引用地址:http://www.ex-cimer.com/article/195593.htm

          圖4中,_RST_N為復(fù)位信號,S_ADDR為SRAM地址,S_WR_N為寫信號,低電平有效,S_DATA為SRAM數(shù)據(jù)。
          有一些數(shù)據(jù)采集系統(tǒng)對速度有較高要求,而對于資源要求則相對寬松一些。此時可以考慮采用兩片SRAM進行數(shù)據(jù)交替存儲。對于兩片SRAM,可以進行乒乓操作來對數(shù)據(jù)存儲區(qū)進行輪流讀寫。這種方式在EDA設(shè)計中比較常見,是控制數(shù)據(jù)流的一種方法,是以面積換取速度的典型操作。其基本思路是通過存儲器選擇單元,在數(shù)據(jù)流控制的第一個周期,將數(shù)據(jù)寫入第一塊存儲器;然后在第二個周期,將數(shù)據(jù)寫入第二塊存儲器,同時通過存儲器選擇,將第一塊存儲器的數(shù)據(jù)流讀出,送到相關(guān)處理單元,如cpu等;最后,在第三個周期,則再次切換數(shù)據(jù)讀寫,將前次的數(shù)據(jù)輸入與輸出模塊交換。數(shù)據(jù)流讀寫交替次數(shù)可以根據(jù)實際情況設(shè)定。
          兩片SRAM的系統(tǒng)程序可使用自頂向下的方法設(shè)計??蓪⑾到y(tǒng)劃分為若干個子模塊,再將子模塊向下劃分為若干個基本單元。本系統(tǒng)的結(jié)構(gòu)層次如圖5所示。

          對于低速cpu如單片機等,可以考慮采用DMA的方式進行存儲;而對于中高速cpu,則可以考慮采用總線技術(shù)及流水線方式。而且存儲器還可以采用dram、flash、FIFO、雙端口RAM甚至硬盤。在實際設(shè)計時,要綜合考慮各方面因素,從而給出最適合的方案。

          5 結(jié)束語
          采用作為主控制器,并結(jié)合存儲器芯片IC61LV2568―8T設(shè)計的單片及兩片乒乓操作方案,具有設(shè)計電路結(jié)構(gòu)簡單,可靠性高,軟件較易移植,通用性強等優(yōu)點。


          上一頁 1 2 下一頁

          關(guān)鍵詞: CPLD 高速存儲

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();