国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的SDRAM控制器設(shè)計與實(shí)現(xiàn)

2014-12-05 02:01:40仵宗欽王曉曼張立媛
電子與封裝 2014年10期
關(guān)鍵詞:預(yù)充電時序時鐘

仵宗欽,王曉曼,劉 鵬,王 奇,張立媛

(1.長春理工大學(xué)電子信息工程學(xué)院,長春 130022;2.長春理工大學(xué)空地激光通信技術(shù)國防重點(diǎn)學(xué)科實(shí)驗(yàn)室,長春 130022)

1 引言

在很多圖像處理系統(tǒng)中,不同模塊的工作頻率往往不同,比如系統(tǒng)前端圖像數(shù)據(jù)流要比后端圖像處理的工作頻率低,系統(tǒng)既要保證數(shù)據(jù)流源源不斷地輸入系統(tǒng)中,還要保證數(shù)據(jù)流完整地被后端處理模塊處理,為此,不同工作頻率模塊之間必須加入數(shù)據(jù)緩沖模塊,以達(dá)到速度匹配的目的。

目前數(shù)據(jù)緩沖的存儲體有各種種類,SDRAM是一種動態(tài)隨機(jī)存儲器,它具有價格低廉、存儲容量大、工作頻率高等特點(diǎn)[1]。在眾多緩沖存儲體中是一個不錯的選擇,尤其在圖像處理領(lǐng)域,但是SDRAM不像SRAM的控制那么簡單,它的控制邏輯比較復(fù)雜,對時序的要求比較嚴(yán)格,因此有必要設(shè)計一個專門的SDRAM控制器,本文以FPGA為控制核心,利用其靈活性、并行性的特點(diǎn),設(shè)計了優(yōu)化的SDRAM控制器,使用戶能夠進(jìn)行簡單的移植使用,提高通用性。

2 系統(tǒng)總體方案設(shè)計

SDRAM控制器系統(tǒng)原理如圖1所示。系統(tǒng)包括時鐘管理器模塊、數(shù)據(jù)流模塊、SDRAM控制器模塊、外部SDRAM芯片。

圖1 SDRAM控制器系統(tǒng)原理圖

系統(tǒng)的工作過程為:外部系統(tǒng)采集到的數(shù)據(jù)流源源不斷地送到SDRAM控制器,SDRAM控制器中的時序控制、命令解析以及數(shù)據(jù)通路相互配合,通過系統(tǒng)控制接口完成對外部SDRAM芯片的控制[2],使得數(shù)據(jù)流完整地被緩存到SDRAM芯片中。數(shù)據(jù)流模塊的時鐘頻率工作在25 MHz,SDRAM控制器和外部SDRAM芯片的時鐘頻率工作在100 MHz,系統(tǒng)采用ALTERA公司生產(chǎn)的CYCLONE Ⅲ系列芯片EP3C5E144C8作為SDRAM緩存的控制和處理核心[3],該芯片內(nèi)部含有豐富的資源,通過內(nèi)部鎖相環(huán)PLL來產(chǎn)生不同的時鐘頻率,供各個模塊工作。

在控制器系統(tǒng)中時序控制部分是SDRAM控制器的核心,上電首先進(jìn)行初始化,主要完成芯片的準(zhǔn)備工作,包括輸入穩(wěn)定器、預(yù)充電、刷新周期和模式寄存器的設(shè)置;時序控制在不同的狀態(tài)需要發(fā)出命令請求信號cmd_req給命令解析模塊,解析模塊響應(yīng)命令后給時序控制模塊發(fā)送一個響應(yīng)信號cmd_ack;另外SDRAM需要不停地進(jìn)行刷新才能保持?jǐn)?shù)據(jù)不丟失,刷新周期最大不超過64 ms,因此時序控制模塊需要隔一定的時間發(fā)送刷新請求信號ref_req,同樣命令解析模塊響應(yīng)刷新請求后反饋回一個響應(yīng)信號ref_ack。

3 SDRAM內(nèi)部基本操作與工作時序

3.1 初始化

在SDRAM內(nèi)部集成了邏輯控制單元,通過模式寄存器的設(shè)置來控制。每次上電芯片首先對這個邏輯控制進(jìn)行初始化,初始化的過程如圖2所示。

圖2 SDRAM上電初始化過程

在初始化過程中最關(guān)鍵的是模式寄存器的設(shè)置,它用來指定SDRAM的工作方式,包括突發(fā)方式、潛伏期和突發(fā)長度等。突發(fā)(Burst)是指在同一行中相鄰的存儲單元連續(xù)進(jìn)行數(shù)據(jù)傳輸?shù)姆绞?,連續(xù)傳輸所涉及到存儲單元(列)的數(shù)量就是突發(fā)長度,潛伏期是指在發(fā)出行地址和列地址后仍要經(jīng)過一定的時間才能有數(shù)據(jù)輸出,從列地址有效與讀取命令發(fā)出到第一筆數(shù)據(jù)輸出的這段時間,被定義為CL(CAS Latency,CAS潛伏期),模式寄存器的設(shè)置通過A11~A10地址線進(jìn)行配置,其配置參數(shù)如圖3所示。

潛伏期只發(fā)生在讀數(shù)據(jù)的時候,發(fā)送讀取命令之后,數(shù)據(jù)不是立即出現(xiàn)在數(shù)據(jù)總線上,而是經(jīng)過一定的周期才出現(xiàn)在數(shù)據(jù)總線上,這個周期就是我們說的潛伏期CL[4,5],潛伏期只發(fā)生在讀取數(shù)據(jù)時,在寫數(shù)據(jù)時無潛伏期CL,因此又稱讀取潛伏期,大小為時鐘周期的倍數(shù)。在讀取數(shù)據(jù)時為了提高讀取速度,芯片內(nèi)部設(shè)計了突發(fā)讀寫設(shè)置,突發(fā)讀寫只需指定突發(fā)長度和起始列地址,尋址與數(shù)據(jù)的讀寫自動進(jìn)行,只要控制好兩段突發(fā)讀寫命令的時間間隔即可做到連續(xù)的突發(fā)傳輸。而突發(fā)的長度不是任意值,對應(yīng)圖像數(shù)據(jù)的緩存,我們一般把突發(fā)長度設(shè)為全頁,以幀來進(jìn)行緩存。

3.2 SDRAM基本內(nèi)部操作

圖3 模式寄存器配置參數(shù)

系統(tǒng)采用美國鎂光公司生產(chǎn)的SDRAM芯片MT48LC8M8A2TG,芯片主要分為3類信號:數(shù)據(jù)信號、地址信號和控制信號。數(shù)據(jù)信號線為DQ15~DQ0,是雙向數(shù)據(jù)信號,可配置輸出4位、8位、16位數(shù)據(jù),輸出數(shù)據(jù)是否有效由數(shù)據(jù)掩碼DQM控制;地址信號線分為行地址和列地址,它們分時復(fù)用一組地址總線,由A11~A0組成,讀寫操作時,首先發(fā)送行地址有效,行地址為A11~A0,再發(fā)送列地址有效,列地址為A8~A0,另外2位L-BANK用于選擇不同的邏輯塊,共分4塊存儲容量相等的邏輯塊;控制信號是SDRAM的關(guān)鍵信號,包括時鐘使能信號cke,芯片片選信號cs,行地址選通信號ras,列地址選通信號cas,寫允許信號we。常用操作指令見表1(表中H表示高電平,L表示低電平,X表示高低電平均沒影響)。

表1 SDRAM常用操作指令

3.3 工作時序

時序控制部分使SDRAM按照一定的時序工作,主要包括SDRAM的初始化、讀寫控制和自動刷新。為便于時序的控制,采用有限狀態(tài)機(jī)[6,7],如圖4所示。

需要注意的是在進(jìn)行讀寫操作之后必須進(jìn)行預(yù)充電,預(yù)充電的本質(zhì)是對所有存儲體進(jìn)行數(shù)據(jù)的重寫并復(fù)位行地址,對于那些長時間沒有工作過的存儲體也要進(jìn)行預(yù)充電,以免因具有存儲作用的電容受干擾而影響實(shí)際值,預(yù)充電可通過輔助設(shè)置讓芯片每次進(jìn)行讀寫操作之后自動進(jìn)入預(yù)充電狀態(tài),也可以通過專有命令來控制。

3.4 讀寫控制邏輯

數(shù)據(jù)的讀寫遵循嚴(yán)格的時序,控制器的工作時鐘和SDRAM芯片的工作時鐘都為100 MHz,為了保證SDRAM在上升沿能穩(wěn)定地鎖存數(shù)據(jù),通常SDRAM芯片要進(jìn)行一定的相移(相對控制器的工作時鐘),使SDRAM在鎖存數(shù)據(jù)時有充分的采用余量和保持余量,本系統(tǒng)的時鐘周期為10 ns,相移設(shè)為3 ns。下面介紹突發(fā)讀寫的控制過程,突發(fā)讀寫狀態(tài)機(jī)如圖5所示。

圖4 SDRAM控制器狀態(tài)機(jī)圖

圖5 SDRAM突發(fā)讀寫狀態(tài)機(jī)圖

突發(fā)寫:首先選通行,使之處于有效狀態(tài),在這之前要進(jìn)行L-BANK選定和片選有效,也可和行選通同時操作,行地址12位,共有4096個行地址(212=4096);行選通之后有一個等待時間t[8,9],

RCD稱為行選通周期,為時鐘周期的倍數(shù),具體時間以實(shí)際芯片而定;確定了行地址,下一狀態(tài)就要選通列地址,列地址和行地址共用一組地址總線,此時設(shè)置A10=1,讀寫結(jié)束后則自動進(jìn)入預(yù)充電狀態(tài);發(fā)出寫命令后無須等待,立即進(jìn)入突發(fā)寫模式,系統(tǒng)為頁突發(fā),一次讀寫512字節(jié)數(shù),在全頁寫滿時,必須發(fā)出一個突發(fā)傳輸終止命令以結(jié)束寫操作,若不是頁突發(fā),可不發(fā)突發(fā)傳輸終止命令;最后進(jìn)行的就是寫回操作和預(yù)充電,寫回操作是為了讓數(shù)據(jù)能可靠地寫入,預(yù)充電是防止所有數(shù)據(jù)丟失。

突發(fā)讀操作和突發(fā)寫操作過程基本相同,不同的是在發(fā)出讀取命令后,數(shù)據(jù)并不是立即出現(xiàn)在數(shù)據(jù)總線上,需要經(jīng)過一個潛伏期后數(shù)據(jù)才能出現(xiàn)在數(shù)據(jù)總線上。另外,在讀寫過程中有不需要讀寫的數(shù)據(jù)可以通過DQM的設(shè)置進(jìn)行屏蔽。

3.5 刷新

SDRAM是一種動態(tài)隨機(jī)存儲器,它需要不斷地刷新才能保持?jǐn)?shù)據(jù)的不丟失。刷新和預(yù)充電不同,預(yù)充電是不定期地對L-BANK中的行操作,而刷新有固定的周期,是對所有行刷新操作,來保證很久沒有重寫的存儲體中的數(shù)據(jù)完整。刷新分為自動刷新和自刷新,自刷新主要用于低功耗模式下,無論哪種刷新,都是自動的操作,無需外接操作。刷新周期是一定的,時間不能太長,目前,刷新周期公認(rèn)不超過64 ms。

4 驗(yàn)證與分析

4.1 時序分析

要想SDRAM能穩(wěn)定地讀寫數(shù)據(jù),SDRAM的管腳信號必須滿足建立和保持時間。同樣從SDRAM進(jìn)入FPGA的數(shù)據(jù)信號也必須滿足FPGA的建立保持時間。時序分析模型如圖6所示。

圖6 SDRAM時序分析模型

結(jié)合技術(shù)手冊和PCB走線延時,可以計算出建立和保持余量的最小值,通過調(diào)節(jié)鎖相環(huán)PLL輸出的SDRAM時鐘相移來達(dá)到充足的余量值,以保障讀寫SDRAM數(shù)據(jù)的準(zhǔn)確性。

4.2 時序仿真與驗(yàn)證

本文采用Altera公司的CYCLONE Ⅲ系列芯片EP3C25Q240C8作為SDRAM控制器的主控核心,使用Altera公司的FPGA集成開發(fā)環(huán)境Quartus Ⅱ作為本系統(tǒng)的開發(fā)環(huán)境,該開發(fā)環(huán)境自帶仿真功能和在線邏輯分析儀,仿真驗(yàn)證時序的控制是否正確,在線邏輯分析儀觀察的是程序下載到芯片后芯片的實(shí)際工作狀態(tài),可驗(yàn)證所設(shè)計的系統(tǒng)是否真正可靠和穩(wěn)定。實(shí)驗(yàn)中SDRAM工作在頁突發(fā)模式下[10],一次寫入512個字節(jié),接著對寫入的數(shù)據(jù)進(jìn)行連續(xù)的讀操作,通過寫入與讀出的時間是否一致來驗(yàn)證設(shè)計的正確性,SDRAM仿真時序圖如圖7所示。

從圖7可以看出系統(tǒng)完成初始化后接著發(fā)送行選通命令,3個行選通周期后發(fā)送寫命令,同時數(shù)據(jù)總線上出現(xiàn)要寫的數(shù)據(jù)0~511。從圖中可以看出時序完全正確,為進(jìn)一步分析數(shù)據(jù)是否真正寫入SDRAM,系統(tǒng)利用在線邏輯分析儀采樣得到的圖形如圖8所示。

從圖8可以看出系統(tǒng)發(fā)出讀取命令后,經(jīng)過潛伏期,數(shù)據(jù)從SDRAM中讀出到數(shù)據(jù)總線上,讀出的數(shù)據(jù)為0~511,結(jié)合圖7可以看出,讀出的數(shù)據(jù)與寫入的數(shù)據(jù)完全一致,驗(yàn)證了系統(tǒng)設(shè)計完全正確。

圖7 SDRAM仿真時序圖

圖8 SDRAM在線邏輯分析儀采樣圖形

5 結(jié)論

整個系統(tǒng)采用分模塊化的思想,把復(fù)雜的SDRAM控制時序分成不同的模塊進(jìn)行控制,各個模塊分工明確,相互聯(lián)系,優(yōu)化了SDRAM控制器的設(shè)計。本文介紹了SDRAM的初始化、基本內(nèi)部操作、工作時序、讀寫控制邏輯及自動刷新,并給出了相應(yīng)模塊需要注意的地方,充分利用了QuartusⅡ自動的仿真功能和在線邏輯分析儀,驗(yàn)證了本系統(tǒng)設(shè)計的正確性。該控制器提高了系統(tǒng)的靈活性,通用性強(qiáng),可應(yīng)用于不同的高性能系統(tǒng)中。

[1] 項力領(lǐng),劉智,楊陽,胡智慧.單片SDRAM的數(shù)據(jù)讀寫乒乓操作設(shè)計[J].長春理工大學(xué)學(xué)報(自然科學(xué)版),2013,05∶140-143.

[2] 陳雨,陳科,安濤. 高速圖像處理系統(tǒng)中DDR2-SDRAM接口的設(shè)計[J].現(xiàn)代電子技術(shù),2011,12∶104-107,110.

[3] ALTERA CORPORATION. Cyclone Device Handbook[EB/OL]. (2008-08-28). [2013-03-15]. http∶//www.altera.com/

[4] SDRAM性能標(biāo)準(zhǔn)[J].電子科技,2001, 06∶45.

[5] 孟曉東.基于FPGA的DDR3控制器設(shè)計與驗(yàn)證[D].國防科學(xué)技術(shù)大學(xué),2012.

[6] 劉小平,何云斌,董懷國.基于VerilogHDL的有限狀態(tài)機(jī)設(shè)計與描述[J].計算機(jī)工程與設(shè)計,2008, 04∶958-960.

[7] 衛(wèi)一然,甄國涌,單彥虎. FPGA設(shè)計中狀態(tài)機(jī)穩(wěn)定問題的研究[J].電視技術(shù),2012, 23∶47-49.

[8] 石振明,王成,陳蜀宇. 基于FPGA的DDR SDRAM控制器設(shè)計[J]. 微處理機(jī),2008, 06∶22-24.

[9] 楊海濤,蘇濤,巫幪.基于FPGA的SDRAM控制器的設(shè)計和實(shí)現(xiàn)[J]. 電子科技,2007, 01∶8-12.

[10] 徐永剛.基于FPGA與DDR2-SDRAM的高速數(shù)據(jù)緩沖器的設(shè)計與實(shí)現(xiàn)[D]. 南京郵電大學(xué),2012.

猜你喜歡
預(yù)充電時序時鐘
基于時序Sentinel-2數(shù)據(jù)的馬鈴薯遙感識別研究
動力電池預(yù)充設(shè)計及溫升特性研究
基于Sentinel-2時序NDVI的麥冬識別研究
電動汽車預(yù)充電保護(hù)設(shè)計
別樣的“時鐘”
電動汽車分級預(yù)充電回路及預(yù)充電阻選型匹配方法研究
汽車電器(2021年2期)2021-03-05 07:12:04
古代的時鐘
有趣的時鐘
一種毫米波放大器時序直流電源的設(shè)計
電子制作(2016年15期)2017-01-15 13:39:08
時鐘會開“花”
枝江市| 涪陵区| 黄梅县| 曲水县| 盈江县| 青铜峡市| 侯马市| 金溪县| 德安县| 梅河口市| 五大连池市| 嘉鱼县| 浑源县| 宁陕县| 大余县| 麟游县| 闽侯县| 顺平县| 剑河县| 宁河县| 罗源县| 北海市| 阿拉尔市| 岑溪市| 昂仁县| 乌鲁木齐县| 平邑县| 喜德县| 大新县| 华亭县| 崇礼县| 买车| 巍山| 剑川县| 盐池县| 元阳县| 壤塘县| 揭西县| 教育| 绥宁县| 宽城|