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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于FPGA的外部存儲器設(shè)計

          基于FPGA的外部存儲器設(shè)計

          作者: 時間:2011-08-17 來源:網(wǎng)絡(luò) 收藏

          2 存儲電路軟件設(shè)計
          2.1 SDRAM控制器設(shè)計
          SDRAM具有空間存儲量大、讀/寫速度快、價格相對便宜的特點,因此許多嵌入式設(shè)備的大容量、高速度存儲器都采用SDRAM來實現(xiàn),但其控制邏輯復(fù)雜,需要周期性刷新操作、行列管理、不同延時和命令序列等。目前,大多都采用專用芯片完成它的控制電路,這不但提高了設(shè)計成本,而且使系統(tǒng)的硬件電路變得復(fù)雜。隨著在嵌入式系統(tǒng)中的廣泛應(yīng)用,管腳設(shè)計靈活,結(jié)合具體的需要,利用來設(shè)計一個滿足雷達(dá)信號處理專用的SDRAM控制器,就可以極大地增加設(shè)計的靈活性,且硬件規(guī)模小,又可以滿足實時信號處理需求。本文就是基于這種處理方法來設(shè)計一個SDRAM控制器。
          在SDRAM控制器的FPGA實現(xiàn)方案中,采用FPGA的自底向上模塊化設(shè)計思想。首先分析頂層模塊所要完成的功能,之后再將其功能分類細(xì)化,分配到不同的子模塊去實現(xiàn),然后從底層向頂層的先逐步完成各個子模塊的設(shè)計,最后將子模塊相互連接生成所需的頂層模塊。設(shè)計SDRAM控制器是為了更好地滿足SDRAM與FPGA的通信而設(shè)計的。下面將具體介紹SDRAM控制器的設(shè)計方法。圖3為參考Altera公司SDRAM控制器的而設(shè)計的接口框圖。

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

          c.jpg


          下面對接口信號進(jìn)行介紹:與主機(jī)接口信號有CLK:系統(tǒng)時鐘信號;RESET:系統(tǒng)復(fù)位信號;CMD[2:0]:譯碼指令;CMDACK:指令應(yīng)答信號,通知主機(jī)命令已被SDRAM執(zhí)行;ADDR:地址線,該設(shè)計中為22位,A21,A20代表頁地址BA1,BA0;A19~A8代表行地址;A7~A0代表列地址;DATAIN/DATAOUT:輸入、輸出數(shù)據(jù)總線;DM:數(shù)據(jù)掩碼。與SDRAM接口信號有RADDR:12位地址線,在讀/寫操作時,地址線時復(fù)用為行地址和列地址;BA0,BA1頁地址選擇;CS:片選信號;CKE:時鐘使能信號;RAS,CAS,WE:命令控制信號;DQM:SDRAM數(shù)據(jù)掩碼;DQ:雙向數(shù)據(jù)線。SDRAM控制器作為頂層模塊,內(nèi)部由3個主要模塊構(gòu)成:系統(tǒng)控制接口模塊、命令生成模塊和數(shù)據(jù)路徑模塊。系統(tǒng)控制接口模塊用于接收系統(tǒng)的控制信號,進(jìn)而產(chǎn)生不同的CMD命令組合;命令用于接收CMD命令并解碼成操作指令并產(chǎn)生SDRAM的操作動作;數(shù)據(jù)通路模塊則用于控制數(shù)據(jù)的有效輸入/輸出。
          使用SDRAM的目的是進(jìn)行數(shù)據(jù)傳輸,即要求能正確地讀寫數(shù)據(jù)。因此,在SDRAM操作過程中,最重要是就是初始化、讀和寫的操作,因此,本文完成了SDRAM初始化在QuailtusⅡ仿真下的時序波形圖,如圖4所示。

          d.jpg



          關(guān)鍵詞: FPGA 外部存儲器

          評論


          相關(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); })();