新聞中心

        EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > FPGA系統(tǒng)設(shè)計(jì)的仿真驗(yàn)證之:SDRAM讀寫(xiě)控制的實(shí)現(xiàn)與Modelsim仿真

        FPGA系統(tǒng)設(shè)計(jì)的仿真驗(yàn)證之:SDRAM讀寫(xiě)控制的實(shí)現(xiàn)與Modelsim仿真

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

          (4)操作控制。

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

           的具體控制命令由一些專(zhuān)用控制引腳和地址線(xiàn)輔助完成。CS、RAS、CAS 和WR 在時(shí)鐘上升沿的狀態(tài)決定具體操作動(dòng)作,地址線(xiàn)和Bank選擇控制線(xiàn)在部分操作動(dòng)作中作為輔助參數(shù)輸入。

          由于特殊的存儲(chǔ)結(jié)構(gòu), 操作指令比較多,不像SRAM 一樣只有簡(jiǎn)單的讀寫(xiě),具體操作指令如表7.3所示。

          表7.3 命令真值表

          功 能命 令 字CSRASCASWEBAA10A[0:9]

          取消器件選擇DSELHXXXXXX

          無(wú)操作NOPLHHHXXX

          讀操作READLHLHVLV

          讀等待/自動(dòng)預(yù)充電READAPLHLHVHV

          續(xù)表

          功 能命 令 字CSRASCASWEBAA10A[0:9]

          寫(xiě)操作WRITELHLLVLV

          寫(xiě)等待/自動(dòng)預(yù)充電WRITEAPLHLLVHV

          Bank激活A(yù)CTLLHHVVV

          對(duì)指定Bank預(yù)充電PRELLHLVLX

          對(duì)所有Bank預(yù)充電PALLLLHLXHX

          自動(dòng)刷新CBRLLLHXXX

          加載模式寄存器MRSLLLLVVV

          由表7.3可以看到,雖然SDRAM的容量大、速度快,但是存在存儲(chǔ)操作困難的問(wèn)題。一般的解決方案有兩種,一是直接控制SDRAM的讀寫(xiě)時(shí)序?qū)崿F(xiàn)數(shù)據(jù)的存儲(chǔ)和讀取,二是編寫(xiě)一個(gè)SDRAM的讀寫(xiě)控制器,將SDRAM的讀寫(xiě)簡(jiǎn)化成SRAM形式,通過(guò)幾個(gè)命令完成SDRAM的讀寫(xiě)。

          3.SDRAM讀寫(xiě)控制器

          Xilinx、Altera、Lattice等較大的FPGA制造廠商都編寫(xiě)了自己的SDRAM接口控制器。讀者可以到官方網(wǎng)站去申請(qǐng)相關(guān)的控制器源代碼。下面簡(jiǎn)單介紹其中一種,如圖7.33所示是該SDRAM控制器總體設(shè)計(jì)框圖和外部接口信號(hào)。

          

         

          在圖7.33中,控制器右端接口信號(hào)均為直接與SDRAM 對(duì)應(yīng)管腳相連的信號(hào),在表7.2中已做介紹,不再重復(fù)。

          控制器左端的接口信號(hào)為與FPGA 相連的系統(tǒng)控制接口信號(hào),定義如下。

          · CLK:系統(tǒng)時(shí)鐘信號(hào)。

          · ADDR:系統(tǒng)給出的SDRAM 地址信號(hào)。

          · DATAIN:系統(tǒng)用于寫(xiě)入SDRAM 的數(shù)據(jù)信號(hào)。

          · DATAOUT:系統(tǒng)用于從SDRAM讀出的數(shù)據(jù)信號(hào)。

          · CMD[1:0]、CMDACK:系統(tǒng)和控制器的命令交互信號(hào),參見(jiàn)表7.3。

          · DM:數(shù)據(jù)Mask信號(hào)。

          一般來(lái)說(shuō),SDRAM的讀寫(xiě)控制時(shí)序可以分為初始化、寫(xiě)寄存器、自動(dòng)刷新、突發(fā)模式讀、突發(fā)模式寫(xiě)、整頁(yè)讀以及整頁(yè)寫(xiě)等主要操作。具體的時(shí)序圖可以查閱相關(guān)的器件數(shù)據(jù)手冊(cè),這里不再列出。

          SDRAM的讀寫(xiě)控制也可以由如圖7.34所示的讀寫(xiě)狀態(tài)機(jī)表示。

          在FPGA中,實(shí)現(xiàn)如圖7.34所示的狀態(tài)機(jī),再利用已有的SDR SDRAM控制器即可實(shí)現(xiàn)對(duì)SDRAM器件的控制。

          

         

          圖7.34 SDRAM讀寫(xiě)狀態(tài)機(jī)

          7.6.3 SDRAM控制器的仿真

          (1)打開(kāi)ModelSim軟件。

          (2)創(chuàng)建工程。

          如圖7.35所示,在中創(chuàng)建新工程,并設(shè)置工程的相關(guān)屬性。

          

         

          圖7.35 創(chuàng)建工程

          (3)添加設(shè)計(jì)輸入。

          若要?jiǎng)?chuàng)建新的文件就選擇【Create New File】圖標(biāo),若要添加已經(jīng)存在的文件就選擇【Add Existing File】圖標(biāo),如圖7.36所示。本實(shí)例中使用已經(jīng)存在的SDRAM控制器源文件作為設(shè)計(jì)輸入,添加后,在Workspace瀏覽器中可以看到如圖7.37的設(shè)計(jì)輸入列表。

          

         

          圖7.36 添加設(shè)計(jì)輸入 圖7.37 SDRAM設(shè)計(jì)輸入列表

          (4)編譯設(shè)計(jì)輸入。

          如圖7.38所示,在任意一個(gè)源文件上單擊右鍵,選擇“Compile”/“Compile All”,對(duì)所有的源文件進(jìn)行編譯。

          

         

          編譯后,若有錯(cuò)誤,會(huì)在信息欄中顯示出來(lái)。這時(shí)只要雙擊該錯(cuò)誤,ModelSim就會(huì)自動(dòng)打開(kāi)該錯(cuò)誤所在的文件,并定位到出現(xiàn)錯(cuò)誤所在的位置附近。若編譯正確通過(guò),源文件后面的藍(lán)色問(wèn)號(hào)就替換成為綠色的對(duì)號(hào),如圖7.39所示。



        關(guān)鍵詞: SDRAM Modelsim

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 康定县| 衡东县| 嵊泗县| 龙南县| 鄂州市| 铜山县| 玉田县| 广水市| 徐水县| 商河县| 桂平市| 高尔夫| 邳州市| 项城市| 昌都县| 香河县| 阿巴嘎旗| 且末县| 平凉市| 扎赉特旗| 沙坪坝区| 昭通市| 余庆县| 临沭县| 唐河县| 宿松县| 沅陵县| 平江县| 黄冈市| 鄂托克前旗| 芦溪县| 台东县| 曲靖市| 武强县| 凤山县| 白水县| 山西省| 阿拉善盟| 化州市| 南充市| 祁连县|