999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

多FIFO靈活定制SDRAM控制器設計

2014-03-16 05:51:38武漢輕工大學數學與計算機學院丁國棟劉昌華
電子世界 2014年7期
關鍵詞:信號設計

武漢輕工大學數學與計算機學院 丁國棟 劉昌華

1.引言

SDRAM常作為數據緩存應用于高速數據傳輸系統中。目前,許多嵌入式設備的大容量、高速度存儲器都采用SDRAM來實現,大多都是用專用芯片完成其控制,提高了設計成本,而且使系統的電路變得復雜。FPGA因其靈活,實時的特性很好的解決了SDRAM的控制問題,它能很好滿足SDRAM的時序要求。由于SDRAM的工作頻率可以達到100Mhz以上,但圖像數據傳輸速度卻較低,這使SDRAM數據傳輸效率很低,一般會使用多個異步FIFO來實現匹配。這就又需要設計控制部分,每次都這樣顯然太繁瑣。

本文以典型視頻圖像預處理的應用為背景,設計一個FIFO控制器內核,即利用FPGA的片上資源,開辟多路FIFO作為緩存,然后設計一些控制接口當面對不同設計時,只需要靈活搭配就行了。實驗結果表明,該控制器能輪流地從多個緩存端口向SDRAM進行數據存取,充分利用了SDRAM的帶寬,同時可以靈活定制FIFO控制接口,方便不同的設計需要。

2.SDRAM時序限制

SDRAM所有電源引腳必須同時加電,并且所有輸入和電源引腳上電電壓不得超過標稱值0.3V。SDRAM加電完成后應立即對所有BANK進行預充電,然后等待200ms以避免輸出總線上的數據沖突。等待期間要求DQM和CKE保持高電平。等待200ms以后需要發出模式寄存器設置(MRS)命令以初始化模式寄存器,并附加八個自動刷新周期(CBR)以保證后續操作正常。

SDRAM的存儲單元必須要有定時的刷新周期以避免數據丟失。刷新控制器決定刷新的時間間隔,刷新計數器保證每個單元都能被刷新,SDRAM可以采用自動刷新或自刷新。預充作用是對BANK預充電或者關閉已激活的BANK。

SDRAM的基本讀、寫操作需要控制線和地址線相配合地發出一系列命令來完成,先發出BANK激活命令,并鎖存相應的BANK地址和行地址,等待數據出現在數據線上。在讀、寫操作的最后要向SDRAM發出預充電命令,以關閉已經激活的頁。

3.SDRAM控制器結構

SDRAM控制器的總體框架如圖1所示,主要包括八塊片上異步FIFO模塊、FIFO控制器模塊、地址產生模塊、SDRAM狀態機模塊、時鐘模塊。其中八塊異步FIFO分為四塊讀,四塊寫;由于SDRAM讀寫數據共用一個數據線所以FIFO控制器模塊主要負責保證同一時間內最多只有一塊FIFO與SDRAM進行數據交換,并且所有異步FIFO都要按序進行,同時給SDRAM狀態機模塊發出指令,其次要保證寫入讀出數據能夠按照設定的length來進行分次準確地進出;地址產生模塊主要是當寫入讀出數據時產生對應的地址,另一個作用就是根據應用需要來靈活分配SDRAM內存的空間及實現數據的靈活讀出;SDRAM狀態機模塊負責接收指令再結合地址線產生SDRAM需要的時序控制信號,如刷新、預充電、讀寫使能、指令應答等;時鐘模塊負責產生異步FIFO,SDRAM和其它系統的時鐘;片上FIFO模塊負責對輸入輸出數據進行緩存,實現設計的跨時鐘域通信;地址產生模塊負責輸入輸出數據的地址的產生,同時根據實際需要來定制不同數量的FIFO,靈活分配SDRAM空間。

圖1 SDRAM控制器結構框架圖

在整個SDRAM控制器設計中最重要的就是片上FIFO的控制,SDRAM狀態機的正確實現,而地址分配則是實現實際應用的關鍵。

3.1 控制器的狀態機

控制器狀態機的主要作用就是按照SDRAM物理時序要求,使用cmd信號同時結合地址信號產生正確的控制時序包括上電初始化、數據傳遞等。由于SDRAM的控制比較復雜,具有多種突發(burst)讀、寫方式和工作模式,考慮嵌入式預處理圖像數據特點,其控制僅實現基本的讀、寫、突發、刷新、充電等狀態。控制器狀態轉移圖如圖2所示,上電后對內存芯片進行初始化,初始化結束后,內存條進入Idel狀態,刷新計數器開始工作,每當刷新計數器值減為0,便向內存芯片組發出刷新命令。刷新請求是內存請求,讀和寫操作是外部請求。在Idel狀態中有請求仲裁邏輯,當內部和外部請求同時出現時,優先保證內部請求,狀態轉移至刷新操作。當刷新操作結束時,重新返回Idel狀態,開始響應外部讀寫等請求。響應讀、寫請求后,狀態從Idel轉移到讀、寫狀態。同時讀、寫地址和寫入的數據鎖存至控制器。控制器由讀寫地址解析出CS信號、頁地址、行地址、列地址,等待某個周期后數據寫入或讀出。,芯片初始化結果如圖3所示。

圖2 SDRAM控制器狀態

圖3 SDRAM芯片的初始化

3.1.1 控制命令

狀態控制模塊主要完成預充電,刷新,工作模式設定,空操作,基本的讀寫等,由于SDRAM沒有單獨的預充電,刷新控制線且地址線也只有一根。所以這些狀態的產生要結合地址控制信號片選信號CS,行地址選通信號RAS_N,列地址選通信號CAS_N,寫使能信號WE_N。

3.1.2 數據讀入讀出

地址信號中BA0和BA1為頁地址選擇信號,A0~A12為地址信號,通過分時復用決定地址是行地址還是列地址。在讀寫操作中,在地址線上依次給出頁地址、行地址、列地址,最終確定存儲單元地址。其中發出讀命令字后要經過CL個工作時鐘后,讀出數據才依次出現在數據總線上。在讀操作的最后,要向SDRAM發出預充電命令,以關閉已經激活的頁。等待tRP時間后,可以開始下一次操作。而發出寫命令字后寫命令可以立即寫入,需寫入的數據依次送到數據線上。在最后一個數據寫入后延遲tWR時間發出預充電命令,關閉已經激活的頁。等待tRP時間后,可以開始下一次操作。

3.1.3 刷新和預充電

Refresh狀態用于刷新,SDRAM要求有定時刷新。當刷新控制信號有效時,狀態轉向Refresh,同時設置刷新周期數為1。刷新狀態的控制還需要一個計數器,它是一個獨立的進程。刷新計數器的初值由內存芯片要求、內存條個數和控制器工作頻率共同決定。

SDRAM在讀寫操作后要求關閉激活的BANK,而在讀寫操作前要激活要使用的BANK。預充是對BANK預充電或者關閉已激活的BANK。SDRAM既可分別預充特定BANK也可同時作用于所有BANK,設計中對預充操作采用Precharge All對所有BANK進行預充。

3.1.4 地址分配

給控制器設定不同的起始地址addr、最大地址max_addr及FIFO深度length可以實現不同的用途和功能。在圖像預處理中,如果要分離奇偶場數據,則寫數據時設定為一幀圖像的地址空間,讀數據時用兩個片上FIFO分別讀出一半地址空間數據則可。而在向SDRAM中寫數據時,則根據寫FIFO讀完成標志wr_done來判斷是否已寫入一個FIFO深度。如果wr_done有效,則將rWR1_ADDR加length,直到寫入數據達到設定的最大地址max_addr為止。同理,從SDRAM中讀出數據時,可根據讀FIFO寫完成標志rd_done來判斷是否讀出一個FIFO深度,如果rd_done有效,則rRD1_ADDR加length,直到讀出數據達到設定的最大地址max_addr。這樣就實現了數據在SDRAM里的有序準確進出。不用的FIFO,不對其設定起始地址和最大地址及深度。

3.2 片上FIFO功能及控制

片上FIFO實現了數據的異步通信,靈活地控制片上FIFO可以實現不同的功能。

3.2.1 片上FIFO引腳功能

異步FIFO是一個緩沖存儲器件,用于在兩個不同時鐘域之間進行數據交換。數據在一個時鐘域寫入FIFO,然后從另外的時鐘域讀出,并被使用。它解決了不同時鐘域數據的傳輸,給設計帶來了極大的便利,得到了廣泛的應用。本設計中采用的異步FIFO主要是由雙端口存儲器、空滿標志rdempty、wrfull、讀寫數據計數rdusedw、wrusedw、讀寫請求及時鐘、數據輸入和輸出接口組成。寫有效時在寫時鐘下向FIFO依次寫入數據,rdusedw開始加計數,當FIFO中數據存滿時wfull置高,這時寫入使能無效。讀有效時在讀時鐘下向SDRAM依次讀出數據,rdusedw開始減計數數據讀空時rdempty置高,這時讀使能無效。

圖4 寫入數據時狀態圖波形圖

由于異步FIFO工作在不同時鐘領域,其關鍵是如何正確設計空滿判斷邏輯,從而使FIFO不會溢出,不會產生數據丟失。筆者使用讀寫計數rdusedw、wrusedw來判斷何時讀寫。圖4,5為單路異步FIFO的讀寫數據仿真波形。

圖5 讀出數據狀態圖波形圖

3.2.2 多路數據交換控制

由于同一時間只能有一路異步FIFO與SDRAM進行數據交換,在Verilog HDL設計中選擇使用if-else語句進行分路控制。當某路寫FIFO有效時,利用WR_MASK來控制數據進入SDRAM;當某路讀FIFO有效時,利用RD_MASK來控制數據進入FIFO。由于SDRAM只有一根數據線所以該端口必須是inout類型,它需要加個控制信號,作為輸入時要置高阻狀態,否則將導致數據出現紊亂。

3.2.3 讀寫狀態控制

寫FIFO的讀使能是由wrusedw信號控制wr_mask和計數使能的相與來實現的,當rd_mask有效時等待SC_CL個周期開始讀出數據。讀FIFO的寫使能則由rdusedw信號控制wr_mask,因為SDRAM的BANK激活命令后必須等待大于RCD時間后發出讀命令字,所以當wr_mask有效時,等待SC_CL+SC_RCD個周期,SDRAM的數據才能開始寫入FIFO中。多路異步FIFO控制流程圖如圖6所示。

圖6 多路異步FIFO控制狀態圖

3.3 異步FIFO靈活應用控制

設計的基本思路就是嵌入多路異步FIFO以方便在不同的應用中靈活的使用。當面臨不同的需求而不需要全部的FIFO時,對不使用的FIFO可以設計一個頂層文件將其直接例化掉,還可以不用做任何處理直接不用其接口就行了。需要使用的只需按正常的要求加載上讀寫時鐘clk,數據dq,分配好地址空間包括起始addr和終止地址max_addr即可,方便易行給后續設計帶來了極大的便利。下面以圖像預處理中分離奇偶場數據的應用為例,說明定制控制的基本流程。

(1)由于控制器有多路的FIFO,所以第一步就要根據設計明確要用幾路讀、寫異步FIFO,其中單路FIFO的使用判斷如圖7。

(2)本例確定要使用一路讀FIFO兩路寫FIFO來實現圖像數據的分離,然后給其加載時鐘,讀、寫使能等控制信號。

(3)接下來就是分配地址空間,它是實現奇偶場分離的關鍵。給將要寫入的數據數據分配一幀像素數據空間,然后給兩路讀分別分配一場數據空間,那么當兩路讀FIFO輸出的數據就是讀入SDRAM中的那幀圖像奇偶場的數據,分配地址空間的示意圖如圖8所示。

圖7 單路FIFO判斷圖

圖8 圖像處理應用頂層

4.結論

本設計軟件平臺為QuartusII,Modelsim6.5,硬件平臺為友晶DE2_70開發板,PC機一臺。文中詳細分析了SDRAM芯片的特性、SDRAM控制器的時序要求、數據的輸入輸出,針對控制器使用的復雜不便性,集中設計了FIFO控制器部分,使得控制器的使用更加具有通用性。同時SDRAM的控制機制比較復雜,具有多種突發讀寫的工作模式,我們可以根據實際應用中的需求情況來編寫程序,實現基本的讀寫和刷新操作,而不需要顧全到每一種情況,從而降低系統的復雜性。在后續圖像預處理中需要用到SDRAM控制器時,按照第三部分應用控制中講述的方法調用該設計即可。從而實現了高速數據緩存,充分利用了SDRAM的有效帶寬,提高了存取速度,達到實時視頻預處理的要求,而且加快了整體設計的進度。

[1]胡昌順,高嵩,吳春瑜,張文婧.SOC設計中多bits數據跨時鐘域的解決方法[J].遼寧大學學報(自然科學版),2011(1).

[2]徐海銘,程月東.高速異步FIFO設計[J].電子與封裝,2009(6):14-16.

[3]楊海濤,蘇濤,巫幪.基于FPGA的SDRAM控制器的設計和實現[J].電子技術,2007,1:8-12.

[4]Liu Z W,Xie M.An effective AS-FIFO design formultiple asynchronous clock data transmission[C].Proceedings of International Conference on Communications,Circuits and Systems.Piscataway:IEEE Computer Society Press,2008:960-963.

[5]Apperson R W.Yu Z Y,Meeuwsen M J,et al.A scalable dual-clock FIFO for data transfers between arbitrary and haltable clock domains[J].IEEE Transactions on Very Large Scale Integration Systems,2007,15(10):1125-1134.

[6]KennimentDJ.Synchronization and arbitration in digital systems[M].San Francisco Wiley, 2008:14-38.

[7]Wooyoung Jang,David Z.Pan,An SDRAM-aware router for Networks-on-Chip,Proceedings of the 46th Annual Design Automation Conference,July 26-31,2009.

[8]趙丕鳳,徐元欣,趙亮,等.多路讀寫的SDRAM接口設計[J].電子技術應用,28(9):19-23.

[9]夏宇聞.Verilog高級數字系統設計[M].北京:北京航空航天大學出版社,2001.

猜你喜歡
信號設計
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
孩子停止長個的信號
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
基于LabVIEW的力加載信號采集與PID控制
一種基于極大似然估計的信號盲抽取算法
主站蜘蛛池模板: 亚洲人成亚洲精品| 国产成人一区免费观看| 五月婷婷丁香综合| 国产精品亚洲五月天高清| 国产视频 第一页| 亚洲综合中文字幕国产精品欧美| 毛片一区二区在线看| 亚洲国产精品日韩欧美一区| 美女视频黄频a免费高清不卡| 99精品福利视频| 国产成本人片免费a∨短片| 久久公开视频| 国产日韩久久久久无码精品| 91久久性奴调教国产免费| 97久久超碰极品视觉盛宴| 色偷偷av男人的天堂不卡| 成人精品午夜福利在线播放| 亚洲热线99精品视频| 国产男女免费完整版视频| 青青青亚洲精品国产| 狂欢视频在线观看不卡| 亚洲人成网站在线观看播放不卡| 欧美日韩精品综合在线一区| 中文字幕在线视频免费| 精品伊人久久久大香线蕉欧美| 丁香婷婷综合激情| 欧美一区二区三区欧美日韩亚洲 | 丁香婷婷久久| 精品偷拍一区二区| 日本三区视频| 国产屁屁影院| 露脸一二三区国语对白| 亚洲精品天堂自在久久77| 色综合久久综合网| 最新加勒比隔壁人妻| 五月激激激综合网色播免费| 日本三级精品| 国产欧美专区在线观看| 国产一区二区福利| 国产色伊人| 亚洲无码高清免费视频亚洲 | 一级一毛片a级毛片| 亚洲精品视频在线观看视频| 国产视频你懂得| 国产高清在线观看91精品| 2020国产在线视精品在| 亚洲人成网址| 亚洲婷婷在线视频| 亚洲av无码片一区二区三区| 精品视频第一页| 全部无卡免费的毛片在线看| 69综合网| 国产高清在线精品一区二区三区| 国产00高中生在线播放| 久久不卡精品| 伦伦影院精品一区| 免费国产黄线在线观看| 最新无码专区超级碰碰碰| 亚洲精品第一页不卡| 91区国产福利在线观看午夜| 成年网址网站在线观看| 国产精品夜夜嗨视频免费视频| 亚洲成A人V欧美综合| 日韩欧美一区在线观看| 婷婷色在线视频| 精品少妇人妻av无码久久| 97国产精品视频自在拍| 国产视频一区二区在线观看| 日韩午夜片| 小说区 亚洲 自拍 另类| 国产香蕉一区二区在线网站| 国产成人啪视频一区二区三区| 国产精品亚洲天堂| 午夜视频在线观看区二区| 亚洲美女高潮久久久久久久| 99视频在线免费看| 国产午夜精品鲁丝片| 伊人久久婷婷| 美女一区二区在线观看| 午夜丁香婷婷| 91成人免费观看| 国产亚洲精品无码专|