亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        多FIFO靈活定制SDRAM控制器設(shè)計(jì)

        2014-03-16 05:51:38武漢輕工大學(xué)數(shù)學(xué)與計(jì)算機(jī)學(xué)院丁國棟劉昌華
        電子世界 2014年7期
        關(guān)鍵詞:預(yù)充電狀態(tài)機(jī)時(shí)鐘

        武漢輕工大學(xué)數(shù)學(xué)與計(jì)算機(jī)學(xué)院 丁國棟 劉昌華

        1.引言

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

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

        2.SDRAM時(shí)序限制

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

        SDRAM的存儲(chǔ)單元必須要有定時(shí)的刷新周期以避免數(shù)據(jù)丟失。刷新控制器決定刷新的時(shí)間間隔,刷新計(jì)數(shù)器保證每個(gè)單元都能被刷新,SDRAM可以采用自動(dòng)刷新或自刷新。預(yù)充作用是對(duì)BANK預(yù)充電或者關(guān)閉已激活的BANK。

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

        3.SDRAM控制器結(jié)構(gòu)

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

        圖1 SDRAM控制器結(jié)構(gòu)框架圖

        在整個(gè)SDRAM控制器設(shè)計(jì)中最重要的就是片上FIFO的控制,SDRAM狀態(tài)機(jī)的正確實(shí)現(xiàn),而地址分配則是實(shí)現(xiàn)實(shí)際應(yīng)用的關(guān)鍵。

        3.1 控制器的狀態(tài)機(jī)

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

        圖2 SDRAM控制器狀態(tài)

        圖3 SDRAM芯片的初始化

        3.1.1 控制命令

        狀態(tài)控制模塊主要完成預(yù)充電,刷新,工作模式設(shè)定,空操作,基本的讀寫等,由于SDRAM沒有單獨(dú)的預(yù)充電,刷新控制線且地址線也只有一根。所以這些狀態(tài)的產(chǎn)生要結(jié)合地址控制信號(hào)片選信號(hào)CS,行地址選通信號(hào)RAS_N,列地址選通信號(hào)CAS_N,寫使能信號(hào)WE_N。

        3.1.2 數(shù)據(jù)讀入讀出

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

        3.1.3 刷新和預(yù)充電

        Refresh狀態(tài)用于刷新,SDRAM要求有定時(shí)刷新。當(dāng)刷新控制信號(hào)有效時(shí),狀態(tài)轉(zhuǎn)向Refresh,同時(shí)設(shè)置刷新周期數(shù)為1。刷新狀態(tài)的控制還需要一個(gè)計(jì)數(shù)器,它是一個(gè)獨(dú)立的進(jìn)程。刷新計(jì)數(shù)器的初值由內(nèi)存芯片要求、內(nèi)存條個(gè)數(shù)和控制器工作頻率共同決定。

        SDRAM在讀寫操作后要求關(guān)閉激活的BANK,而在讀寫操作前要激活要使用的BANK。預(yù)充是對(duì)BANK預(yù)充電或者關(guān)閉已激活的BANK。SDRAM既可分別預(yù)充特定BANK也可同時(shí)作用于所有BANK,設(shè)計(jì)中對(duì)預(yù)充操作采用Precharge All對(duì)所有BANK進(jìn)行預(yù)充。

        3.1.4 地址分配

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

        3.2 片上FIFO功能及控制

        片上FIFO實(shí)現(xiàn)了數(shù)據(jù)的異步通信,靈活地控制片上FIFO可以實(shí)現(xiàn)不同的功能。

        3.2.1 片上FIFO引腳功能

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

        圖4 寫入數(shù)據(jù)時(shí)狀態(tài)圖波形圖

        由于異步FIFO工作在不同時(shí)鐘領(lǐng)域,其關(guān)鍵是如何正確設(shè)計(jì)空滿判斷邏輯,從而使FIFO不會(huì)溢出,不會(huì)產(chǎn)生數(shù)據(jù)丟失。筆者使用讀寫計(jì)數(shù)rdusedw、wrusedw來判斷何時(shí)讀寫。圖4,5為單路異步FIFO的讀寫數(shù)據(jù)仿真波形。

        圖5 讀出數(shù)據(jù)狀態(tài)圖波形圖

        3.2.2 多路數(shù)據(jù)交換控制

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

        3.2.3 讀寫狀態(tài)控制

        寫FIFO的讀使能是由wrusedw信號(hào)控制wr_mask和計(jì)數(shù)使能的相與來實(shí)現(xiàn)的,當(dāng)rd_mask有效時(shí)等待SC_CL個(gè)周期開始讀出數(shù)據(jù)。讀FIFO的寫使能則由rdusedw信號(hào)控制wr_mask,因?yàn)镾DRAM的BANK激活命令后必須等待大于RCD時(shí)間后發(fā)出讀命令字,所以當(dāng)wr_mask有效時(shí),等待SC_CL+SC_RCD個(gè)周期,SDRAM的數(shù)據(jù)才能開始寫入FIFO中。多路異步FIFO控制流程圖如圖6所示。

        圖6 多路異步FIFO控制狀態(tài)圖

        3.3 異步FIFO靈活應(yīng)用控制

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

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

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

        (3)接下來就是分配地址空間,它是實(shí)現(xiàn)奇偶場分離的關(guān)鍵。給將要寫入的數(shù)據(jù)數(shù)據(jù)分配一幀像素?cái)?shù)據(jù)空間,然后給兩路讀分別分配一場數(shù)據(jù)空間,那么當(dāng)兩路讀FIFO輸出的數(shù)據(jù)就是讀入SDRAM中的那幀圖像奇偶場的數(shù)據(jù),分配地址空間的示意圖如圖8所示。

        圖7 單路FIFO判斷圖

        圖8 圖像處理應(yīng)用頂層

        4.結(jié)論

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

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

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

        [3]楊海濤,蘇濤,巫幪.基于FPGA的SDRAM控制器的設(shè)計(jì)和實(shí)現(xiàn)[J].電子技術(shù),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接口設(shè)計(jì)[J].電子技術(shù)應(yīng)用,28(9):19-23.

        [9]夏宇聞.Verilog高級(jí)數(shù)字系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2001.

        猜你喜歡
        預(yù)充電狀態(tài)機(jī)時(shí)鐘
        動(dòng)力電池預(yù)充設(shè)計(jì)及溫升特性研究
        電動(dòng)汽車預(yù)充電保護(hù)設(shè)計(jì)
        別樣的“時(shí)鐘”
        電動(dòng)汽車分級(jí)預(yù)充電回路及預(yù)充電阻選型匹配方法研究
        汽車電器(2021年2期)2021-03-05 07:12:04
        古代的時(shí)鐘
        基于有限狀態(tài)機(jī)的交會(huì)對(duì)接飛行任務(wù)規(guī)劃方法
        有趣的時(shí)鐘
        時(shí)鐘會(huì)開“花”
        基于變頻器的新型預(yù)充電電路的研究
        電測與儀表(2015年2期)2015-04-09 11:29:18
        FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
        亚洲福利网站在线一区不卡 | 精品国产a一区二区三区v| а天堂中文在线官网在线| 国产成人无码精品久久久免费| 国产精品久久久久久人妻无| 国偷自产一区二区免费视频| 99久久久无码国产精品免费砚床| 国内精品一区二区三区| 亚洲免费一区二区三区视频| AV在线中出| 综合中文字幕亚洲一区二区三区| 丰满人妻中文字幕一区三区| 精品精品国产自在97香蕉| 色偷偷偷久久伊人大杳蕉| 国产情侣久久久久aⅴ免费| 国产成人美女AV| 综合久久青青草免费观看视频| 伊人狼人激情综合影院| 久久精品av在线观看| 久久亚洲精品情侣| 狠狠色成人综合网| 国产美女69视频免费观看| 国产日产免费在线视频| 亚洲乱码中文字幕视频| 老熟妇乱子交视频一区| 五月综合激情婷婷六月色窝| 无码久久流水呻吟| 亚洲黄色官网在线观看| 亚洲av成熟国产一区二区| 免费无码av一区二区三区| 亚洲日韩∨a无码中文字幕| 人妻丰满熟妇av一区二区| 日韩精品免费在线视频一区| 国产精品一区二区性色| 国产免费av片无码永久免费| 特黄a级毛片免费视频| 亚欧乱色束缚一区二区三区| 国产亚洲日本精品二区| 久久精品99国产精品日本| 四虎影视4hu4虎成人| 99精品视频69v精品视频免费|