熟女人妻水多爽中文字幕,国产精品鲁鲁鲁,隔壁的少妇2做爰韩国电影,亚洲最大中文字幕无码网站

技術頻道

娓娓工業
您現在的位置: 中國傳動網 > 技術頻道 > 技術百科 > 基于FPGA的SDRAM控制器設計

基于FPGA的SDRAM控制器設計

時間:2008-12-08 11:06:46來源:ronggang

導語:?介紹了SDRAM的特點和工作原理,提出了一種基于FPGA的SDRAM控制器設計方法,采用Verilog語言完成的控制器的設計,可以很方便地對SDRAM進行操作。控制器在大容量數據記錄儀擴展緩存得到了很好的應用
摘 要:介紹了SDRAM的特點和工作原理,提出了一種基于FPGA的SDRAM控制器設計方法,采用Verilog語言完成的控制器的設計,可以很方便地對SDRAM進行操作。控制器在大容量數據記錄儀擴展緩存得到了很好的應用。 關鍵字:FPGA;SDRAM;Verilog; 1 引 言   在進行高速數據記錄儀的開發中,由于硬盤固有的尋道延時,不能實現外部數據實時寫入。采用固態硬盤成本又比較高,所以在設計中考慮外加大容量數據緩存。在各種隨機存儲器件中,SRAM的價格低,設計簡單,但容量一般都不大;DDR速度快、容量大,但硬件和軟件設計都比較復雜。SDRAM具價格低、體積小、速度快、容量大的優點,是滿足高速數據記錄設計帶寬的理想器件。但是,與SRAM相比較,SDRAM的控制邏輯復雜,接口方式與普通的存儲器差異很大。為了解決這個矛盾,需要設計專用的SDRAM控制器,本文中提出了SDRAM控制器的FPGA設計,FPGA內部采用狀態機的方式。該設計采用了Altera公司的CycloneII系列EP2C35F484C8N作為主控芯片。系統工作時鐘為75M。 2 SDRAM工作原理簡介   本設計采用SDRAM芯片選用Winbond公司的W982516,4M×4BANKS×16BIT,兩片并成32位數據總線,突發讀寫速度可達到300Mbytes/s。 W982516采用了54引腳的TSOP封裝,工作電壓為3.3V,并且采用同步接口方式(所有的信號都是時鐘信號的上升沿觸發),與系統時鐘同步運行。W982516行地址數目是13,列地址數目是9。與各種SDRAM一樣,這種SDRAM具有以下幾個特點:(1)采取行列地址復用原則,SDRAM的地址線在不同的命令下提供不同的地址,行列地址復用13根地址線。(2)需要定時刷新。(3)在進行讀寫時,需先激活行。換頁讀寫時要預充關閉的行,然后再激活新的行進行讀寫。(4)SDRAM正常工作之前配置模式寄存器。SDRAM具有較多的控制命令,具體命令見表1。 [align=center] 表1 SDRAM命令[/align]   解析命令對應的Verilog代碼如下:   always @(cmd)    begin    case(cmd)    modeset:begin nCS<=1‘b0; nRAS<=1‘b0; nCAS<=1‘b0; nWE<=1‘b0;end    refr: begin nCS<=1‘b0; nRAS<=1‘b0; nCAS<=1‘b0; nWE<=1‘b1;end    prech: begin nCS<=1‘b0; nRAS<=1‘b0; nCAS<=1‘b1; nWE<=1‘b0;end    actv: begin nCS<=1‘b0; nRAS<=1‘b0; nCAS<=1‘b1; nWE<=1‘b1;end    wrt : begin nCS<=1‘b0; nRAS<=1‘b1; nCAS<=1‘b0; nWE<=1‘b0;end    read: begin nCS<=1‘b0; nRAS<=1‘b1; nCAS<=1‘b0; nWE<=1‘b1;end    nop : begin nCS<=1‘b1; nRAS<=1‘b1; nCAS<=1‘b1; nWE<=1‘b1;end    endcase   end 3 SDRAM控制器的設計   3.1 系統設計框圖 [align=center] 圖1 系統設計框圖[/align]   如圖1,兩片W982516并成32位數據總線的SDRAM。外部數據總線為32位,FIFO1為外部數據的一級緩沖,當FIFO1中的數據超過512時(SDRAM中一頁的數據量),SDRAM控制器將數據從FIFO1中讀出寫入W982516暫存,當FIFO2中的數據剩余空間大于512時,SDRMA控制器從W982516讀入一頁數據寫入FIFO2,硬盤控制器再將FIFO2中的數據寫入硬盤。   3.2 SDRAM控制器設計   3.2.1 復位初始化 [align=center] 圖2 SDRAM控制器設計框圖[/align]   如圖2,虛框內為初始化進程,SDRAM在上電后200us,由一個初始化操作來配置SDRAM的工作模式。在200us之內只能給SDRAM發NOP命令。初始化過程由啟動以下指令流完成:首先由一個預充所有BANK指令完成對所有BANK的預充,然后是八個周期的自動刷新指令,最后在模式配置指令下完成SDRAM內部模式設置寄存器的配置。模式寄存器指定了突發長度、突發類型、CAS延時等詳細的信息。為了方便靈活的應用,本設計中將SDRAM模式寄存器設置為0x027(突發長度為整頁,CAS Latency為2)。只有成功的完成初始化過程,SDRAM才可以正常工作。   3.3.2 刷新計數模塊   SDRAM要求在64ms之內對4096行進行刷新,也就是每15.6us刷新一行,由于系統時鐘周期為13ns,所以刷新計數模塊計數達到1170,就需要對SDRAM發出刷新命令。如圖3,刷新計數模塊計數到大于等于1170時,比較器輸出上升沿到D觸發器,D觸發器輸出高電平發出刷新請求,SDRAM控制器收到刷新請求后執行刷新命令。SDRAM控制器完成刷新命令后發出刷新應答信號將D觸發器的輸出端清零,同時將刷新計數器清零并重新計數。 [align=center] 圖3 刷新模塊[/align]   3.3.3 工作過程   FPGA完成對SDRAM芯片的初始化后,進入空閑狀態,然后根據外部信號做出相應的動作,如自動刷新、讀和寫數據。如果收到自動刷新請求,則控制器向SDRAM發出自動刷新命令,自動刷新的優先級最高;如果FIFO1中的數據超過512個(如圖1),則首先激活要寫的行,然后再將數據寫入SDRAM,最后經過預充電關閉這一行回到空閑狀態,用一個寄存器記錄SDRAM里有效數據的行數,此時有效數據的行數加1,行地址加1,寫操作的優先級第二;如果FIFO2中的剩余空間超過512個并且有效數據的行數大于0時則可執行讀操作,同寫操作一樣也需要首先激活要讀的行,然后再將數據從SDRAM里讀出寫入到FIFO2,并經過預充電關閉這一行回到空閑狀態,同時有效數據的行數減1, 行地址加1,讀操作的優先級最低。這樣就設計成一個64Mbytes的大容量循環緩沖。狀態機在空閑時的狀態轉移代碼如下:   work_idle:    begin    if(refresh)//收到刷新請求,優先級最高    work_state <= work_refresh;    else if(ff_halffull)//FIFO1緩沖半滿,先寫SDRAM    work_state <= work_write;    else if((wr_counter>0)&ff_halfempt) //FIFO2緩沖半空,讀SDRAM    work_state <= work_read;    else    work_state <= work_idle;    end 4 總結   本設計已經成功運用于某型雷達,可記錄大于40Mbytes/s的實時雷達信號。SDRAM控制器工作穩定,從而實現了低成本、大容量、高速度的設計目標。

標簽:

點贊

分享到:

上一篇:一種改進型零電壓開關PWM三電...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業自動化與智能制造的全媒體“互聯網+”創新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業執照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號

主站蜘蛛池模板: 巴中市| 平顺县| 江北区| 白朗县| 潜山县| 南部县| 库车县| 遂溪县| 武山县| 晋中市| 梧州市| 湖口县| 天祝| 株洲县| 南江县| 平乡县| 佛坪县| 砚山县| 岳普湖县| 闻喜县| 盐池县| 襄樊市| 台北市| 延庆县| 休宁县| 奎屯市| 简阳市| 皮山县| 西平县| 边坝县| 哈尔滨市| 綦江县| 金昌市| 聊城市| 株洲市| 义乌市| 金平| 灵武市| 台山市| 玉田县| 定兴县|