關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于VHDL的SDRAM控制器的實現

        基于VHDL的SDRAM控制器的實現

        作者: 時間:2012-10-29 來源:網絡 收藏

        在高速實時或者非實時信號處理系統當中,使用大容量存儲器數據緩存是一個必不可少的環節,也是系統中的重點和難點之一。(同步動態隨機訪問存儲器)具有價格低廉、密度高、數據讀寫速度快的優點,從而成為數據緩存的首選存儲介制裁。但是存儲體結構與RAM有較大差異,其控制時序和機制也較復雜,限制了的使用。目前,雖然一些能家長微處理器提供了和SDRAM的透明接口,但其可擴展性和靈活性不夠,難以滿足現實系統的要求,限制了SDRAM的使用。

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

          在詳細闡讀SDRAM數據文檔的前提下,參考ALTERA公司的IP core,利用可編程器件(CPLD,FPGA)設計了一種通用的SDRAM。它具有很高的靈活性,可以方便地和其它數據采集分析系統中,如圖1所示。在該系統中,以SDRAM存儲陣列緩存中頻來的高速數據。存滿后,數據被慢速讀出至數據處理模塊。下面將對SDRAM控制模塊的設計進行詳細的描述。

        采集原理圖

          1 SDRAM內存條的結構

          SDRAM內存條由SDRAM內存芯片構成,根據內存條的容量大小決定內存條上內存芯片的個數。現以MICRON公司生產的TIM16LSDT6464A型SDRAM內存條為例,簡要介紹SDRAM的結構。

          MIT16LSDT6464A內存條容量為512M Byte,由16片容量為32M Byte的內存芯片MT46LC32M8A2構成。16片內存芯片被分為兩級,每個芯片的數據位寬為8bit.8片一組,64bit數據寬度。每個內存芯片的數據線和控制均是復用的。對內存條的讀寫操作,是以內存芯片組為單位的,通過內存條的片選信號S0、S1、S2、S3決定組號。S0、S2控制芯片組1,S1、S3控制芯片組2.

          SDRAM內存芯片的主要信號有控制信號、控制信號、數據信號,均為工作時鐘同步輸入、輸出信號。

          控制信號主要有:CS(片選信號),CKE(時鐘使能信號),DQM(輸入、輸出使能信號),CAS、RAS、WE(讀寫控制命令字)。通過CAS、RAS、WE的各種邏輯組合,可產生各種控制命令。

          地址信號有:BA0和BA1頁地址選擇信號,A0~A12地址信號,行、列地址選擇信號。通過分時復用決定地址是行地址還是列地址。在讀寫操作中,在地線上依次給出頁地址、行地址、列地址,最終確定存儲單元地址。

          數據信號有:DQ0~DQ7,雙向數據。其使能受DQM控制。

          SDRAM的工作模式通過LOAD MODE REGISTER命令對工作模式寄存器進行設置來選擇。設置參量有Reserved(備用的人)Write Burst Mode(WB,寫突發模式)、Operation Mode(Op Mode,工作模式)、CAS Latency(CAS延遲)、Burst Type(BT,突發類型)、Burst Length(突發長度)。

          2 SDRAM的基本讀寫操作

          SDRAM的基本讀操作需要控制線和地址線相配合地發出一系列命令來完成。先發出BANK激活命令(ACTIVE),并鎖存相應的BANK地址(BA0、BA1給出)和行地址(A0~A12給出)。BANK激活命令后必須等待大于tRCD(SDRAM的RAS到CAS的延遲指標)時間后,發出讀命令字。CL(CAS延遲值)個工作時鐘后,讀出數據依次出現在數據總線上。在讀操作的最后,要向SDRAM發出預充電(PRECHARGE)命令,以關閉已經激活的頁。等待tRP時間(PRECHARGE)命令,以關閉已經激活的頁。等待tRP時間(PRECHAREG命令后,相隔tRP時間,才可再次訪問該行)后,可以開始下一次的讀、寫操作。SDRAM的讀操作只有突發模式(Burst Mode),突發長度為1、2、4、8可選。

          SDRAM的基本寫操作也需要控制線和地址線相配合地發出一系列命令來完成。先發出BANK激活命令(ACTIVE),并鎖存相應的BANK地址(BA0、BA1給出)和行地址(A0~A12給出)。BANK激活命令后必須等待大于tRCD的時間后,發出寫命令字。寫命令可以立即寫入,需寫入數據依次送到DQ(數據線)上。在最后一個數據寫入后延遲tWR時間。發出預充電命令,關閉已經激活的頁。等待tRP時間后,可以展開下一次操作。寫操作可以有突發寫和非突發寫兩種。突發長度同讀操作。

          tRCD、tRP、tWR的具體要求,詳見SDRAM廠家提供的數據手冊。所等待的工作時鐘個數由tRCD、tRP、tWR的最小值和工作時鐘周期共同決定。

          由以上介紹可以得出,SDRAM的讀、寫操作均由一系列命令組成,因此讀、寫操作是有時鐘損耗的,工作時鐘速率不等于SDRAM能達到的讀、寫速率。但是由于SDRAM有突發讀、寫模式,也就是說可以讀出和寫入一串地址連續的數據,從而提高了效率。當突發長度為整頁時,讀、寫速度達到最快。隨機讀、寫速度的計算公式為:

          furite/read=工作時鐘頻率(HzHzHhdkkdk ss dkkdkdkd,,,m,mddddd)×數據寬度(bytes)×突發讀寫長度/操作所需的時鐘數

          為了提高存儲密度,SDRAM采用硅片電容存儲信息。電容總會有漏電流流過,所以為了不使信息丟失,必須定期地給電容刷新充電。外部控制邏輯必須按要求定期向內存條發出刷新命令,保證在規定的時間內對每一個單元都進行刷新。

          3 初始化操作

          SDRAM在上電以后必須對其進行初始化操作,具體操作如下:

          (1)系統在上電后要等待100~200μs.在待時間到了以后至少執行一條空操作或者指令禁止操作。

          (2)對所有芯片執行PRECHARGE命令,完成預充電。

          (3)向每組內存芯片發出兩條AUTO REFRESH命令,使SDRAM芯片內部的刷新計數器可以進入正常運行狀態。

          (4)執行LOAD MODE REGISTER命令,完成對SDRAM工作模式的設定。

          完成以上步驟后,SDRAM進入正常工作狀態,等待對其進行讀、寫和刷新等操作。

          4 SDRAM設計

          4.1 功能說明

          在以SDRAM作為緩存的系統中,使用可編程器件對其進行控制具有很強的靈活性。為了使設計具有模塊化和可重復使用的優點,設計了一個簡化的SDRAM接口電路。這樣就屏蔽掉了SDRAM操作的復雜性,而其它邏輯模塊可通過接口電路對SDRAM進行訪問。此外,由于整個SDRAM控制器用語言編寫,只要對其進行簡單的修改就可以滿足不同的需求,具有很強的靈活性。

          參照圖2,SDRAM控制器完成的主要功能是對CMD[2:0]的命令字和ADDR端的地址進行解析,產生相應的SDRAM的控制時序。

        SDRAM的控制時序

          CLK為輸入的工作時鐘端口。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 崇明县| 区。| 洛南县| 临夏县| 安国市| 太保市| 台江县| 北票市| 清涧县| 普兰店市| 贵港市| 宁河县| 扬中市| 五家渠市| 丰原市| 昔阳县| 桃园市| 沙田区| 贡嘎县| 宜宾市| 洞口县| 海盐县| 朝阳区| 治多县| 莒南县| 松江区| 渭源县| 洪江市| 吕梁市| 黔西县| 扎兰屯市| 长春市| 阆中市| 体育| 福鼎市| 通江县| 湟源县| 南开区| 台州市| 郯城县| 黄山市|