• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于FPGA的雙端口SDRAM控制器的實(shí)現(xiàn)

      2013-12-14 07:40:06康磊雒明世
      電氣自動(dòng)化 2013年4期
      關(guān)鍵詞:預(yù)充電端口時(shí)鐘

      康磊,雒明世

      (西安石油大學(xué) 計(jì)算機(jī)學(xué)院,陜西 西安 710065)

      0 引言

      在視頻圖像實(shí)時(shí)處理系統(tǒng)中,在數(shù)據(jù)的采集和顯示環(huán)節(jié)需要實(shí)現(xiàn)快速的大量數(shù)據(jù)訪問(wèn),因而就需要大容量高速度的存儲(chǔ)設(shè)備進(jìn)行數(shù)據(jù)存取,SDRAM具有容量大、速度快、價(jià)格低的特點(diǎn),同時(shí)還具有較低的功耗,因此目前已經(jīng)廣泛地應(yīng)用于實(shí)時(shí)系統(tǒng)中。目前采用嵌入式技術(shù)開(kāi)發(fā)的實(shí)時(shí)系統(tǒng)很多,由于SDRAM除了正常的數(shù)據(jù)讀寫(xiě)操作,還需要進(jìn)行預(yù)充電、刷新及地址更新等狀態(tài),因此,為了在嵌入式系統(tǒng)中使用SDRAM存儲(chǔ)器就需要有SDRAM的控制器模塊,雖然目前有許多通用的SDRAM控制接口模塊,但是都不能使SDRAM的帶寬得到充分利用,影響到了數(shù)據(jù)的實(shí)時(shí)處理效果。這里設(shè)計(jì)了一種可以充分利用了SDRAM的帶寬的SDRAM控制器接口,該接口使SDRAM工作在整頁(yè)猝發(fā)式讀寫(xiě)模式,并用四個(gè)FIFO作為數(shù)據(jù)緩沖區(qū),采用Verilog HDL硬件描述語(yǔ)言實(shí)現(xiàn)。

      1 SDRAM的工作模式簡(jiǎn)介

      設(shè)計(jì)中采用的SDRAM芯片是ISSI公司的IS42S16160B,該芯片是由4個(gè)存儲(chǔ)模塊(bank)構(gòu)成的容量為256 Mb,最高工作時(shí)鐘可達(dá)到166 MHz的高速CMOS存儲(chǔ)器,其中每個(gè)存儲(chǔ)模塊的內(nèi)部結(jié)構(gòu)是8192(行)×512(列)×16(位)。SDRAM芯片的訪問(wèn)采用猝發(fā)式讀取,所謂猝發(fā)讀取是指在給出訪問(wèn)控制信號(hào)和首地址信息后,數(shù)據(jù)可以連續(xù)傳輸,連續(xù)傳輸?shù)臄?shù)據(jù)長(zhǎng)度是可編程的,長(zhǎng)度可以是1,2,4,8和全頁(yè)。猝發(fā)存取雖然帶寬很高,但是控制方式比較復(fù)雜,在其工作過(guò)程中除了正常的數(shù)據(jù)存取外,還需要完成初始化、工作方式設(shè)置、預(yù)充電、刷新等操作[1]7。

      圖1是實(shí)時(shí)視頻顯示系統(tǒng)的構(gòu)成框圖,該系統(tǒng)可以將實(shí)時(shí)采集的圖像數(shù)據(jù)送顯示器顯示,圖像數(shù)據(jù)存放在 SDRAM中,對(duì)SDRAM的操作控制是由雙端口SDRAM控制器來(lái)實(shí)現(xiàn)的。該控制器是在Altra公司的FPGA芯片EP2C70896C6上實(shí)現(xiàn)的。本文主要介紹雙端口SDRAM控制器的設(shè)計(jì)和實(shí)現(xiàn)方法。

      圖1 實(shí)時(shí)視頻顯示系統(tǒng)框圖

      2 雙端口SDRAM控制器的工作原理及構(gòu)成

      SDRAM芯片要求在上電后必須首先完成初始化過(guò)程。初始化過(guò)程要求在上電至少等待200 μS后,所有Bank首先必須完成一次預(yù)充電的操作,然后至少執(zhí)行8次的刷新操作,最后設(shè)置模式寄存器[1]24。模式寄存器的作用是定義 SDRAM的工作模式,用于控制猝發(fā)讀寫(xiě)的方式和數(shù)據(jù)長(zhǎng)度等。

      圖2 雙端口SDRAM控制器內(nèi)部結(jié)構(gòu)框圖

      完成初始化工作后,SDRAM就進(jìn)入了正常工作模式,在正常模式下還有許多的工作狀態(tài),這些工作狀態(tài)在控制信號(hào)的作用下進(jìn)行轉(zhuǎn)換或根據(jù)所處的模式自動(dòng)進(jìn)行狀態(tài)轉(zhuǎn)換。在視頻系統(tǒng)中數(shù)據(jù)的讀出和寫(xiě)入往往是連續(xù)的,因此若要使SDRAM的帶寬最大化,應(yīng)當(dāng)使SDRAM工作全頁(yè)模式下,SDRAM芯片的主要工作狀態(tài)有:空閑、行激活、自動(dòng)讀和自動(dòng)寫(xiě)和預(yù)充電等幾個(gè)狀態(tài)。

      按照SDRAM芯片的初始化、刷新及數(shù)據(jù)存取的時(shí)序要求,SDRAM 控制器的構(gòu)成如圖2所示[2-3]。

      (1)FIFO讀寫(xiě)端口

      為了能夠讓多個(gè)設(shè)備同時(shí)實(shí)現(xiàn)存儲(chǔ)器數(shù)據(jù)的訪問(wèn),需要增加數(shù)據(jù)緩存區(qū),這里采用FIFO作緩存器。寫(xiě)端口1/2(WR_FIFO1/2)的輸入數(shù)據(jù)是圖像傳感器的數(shù)據(jù),而其輸出數(shù)據(jù)是寫(xiě)入到SDRAM中的,其輸入時(shí)鐘頻率由圖像傳感器的數(shù)據(jù)傳輸率決定,輸出時(shí)鐘頻率采用120 MHz。讀端口1/2(RD_FIFO1/2)的輸入數(shù)據(jù)來(lái)自SDRAM,輸入時(shí)鐘頻率為120 MHz,而且其輸入數(shù)據(jù)送往VGA顯示器,輸出頻率有顯示模式?jīng)Q定。

      接收的圖像數(shù)據(jù)存入一個(gè)WR_FIFO1/2中,端口仲裁器會(huì)將其寫(xiě)入到SDRAM中,并在適當(dāng)?shù)臅r(shí)候?qū)D像數(shù)據(jù)送往RD_FIFO1/2,這樣VGA顯示所需的數(shù)據(jù)就可以從 RD_FIFO中讀取了。當(dāng)然,這要求SDRAM的存取數(shù)據(jù)要能夠滿(mǎn)足數(shù)據(jù)數(shù)據(jù)采集和顯示的速度。

      讀、寫(xiě)端口是采用Altera的IP核dcfifo,使用FPGA的片上存儲(chǔ)器實(shí)現(xiàn)的,這里分別采用了兩個(gè)讀端口和寫(xiě)端口用于實(shí)現(xiàn)對(duì)兩幅圖像的存儲(chǔ)和顯示。為了與SDRAM的全頁(yè)模式相對(duì)應(yīng),實(shí)現(xiàn)的FIFO的容量是512字 ×16位,具有獨(dú)立的讀、寫(xiě)時(shí)鐘和讀寫(xiě)請(qǐng)求信號(hào)輸入,同時(shí)具有FIFO的緩存數(shù)據(jù)計(jì)數(shù)輸出。

      (2)端口仲裁器

      端口仲裁器的作用是接收兩個(gè)讀端口和寫(xiě)端口對(duì)SDRAM的讀寫(xiě)請(qǐng)求,并對(duì)FIFO的數(shù)據(jù)個(gè)數(shù)進(jìn)行判斷后,選擇一個(gè)可以對(duì)SDRAM進(jìn)行操作的端口,并產(chǎn)生讀請(qǐng)求(READA_REQ)或?qū)懻?qǐng)求(WRITEA_REQ)信號(hào),并將兩個(gè)請(qǐng)求信號(hào)送到狀態(tài)控制器。在一個(gè)時(shí)刻只能對(duì)SDRAM進(jìn)行讀或?qū)懖僮?,只有?dāng)一個(gè)端口的操作完成后才能選擇另一個(gè)操作的端口。

      其關(guān)鍵代碼如下所示。

      (3)時(shí)鐘信號(hào)發(fā)生器

      時(shí)鐘信號(hào)發(fā)生器用于產(chǎn)生SDRAM控制模塊、VGA驅(qū)動(dòng)器和圖像傳感器的時(shí)鐘信號(hào),VGA驅(qū)動(dòng)器時(shí)鐘信號(hào)的頻率由顯示模式而定,圖像傳感器的時(shí)鐘頻率則取決于圖像傳感器的數(shù)據(jù)傳輸率。

      (4)初始化及刷新控制器

      SDRAM芯片要求在加電后必須進(jìn)行初始化操作,在正常工作時(shí)還需要完成存儲(chǔ)單元的定時(shí)刷新工作。

      加電或復(fù)位后進(jìn)行的初始化過(guò)程要求在等待200 μs后先使芯片進(jìn)行一次預(yù)充電操作,然后再給出8個(gè)刷新命令,最后對(duì)芯片的模式控制寄存器進(jìn)行設(shè)置。初始化過(guò)程的操作控制是通過(guò)一個(gè)初始化計(jì)數(shù)器Initial_timer實(shí)現(xiàn)的,根據(jù)該計(jì)數(shù)器的計(jì)數(shù)值依次給出復(fù)位等待(INIT_REQ)、預(yù)充電(PRCHARGE)、刷新(REFRESH)和模式設(shè)置(LOAD_MODE)四個(gè)請(qǐng)求信號(hào)。

      IS42S16160B芯片要求在64 ms內(nèi)對(duì)所有bank的8192行數(shù)據(jù)進(jìn)行刷新,其刷新間隔為64 ms/8 192=7812.5 ns,刷新定時(shí)是由Refresh_timer計(jì)時(shí)器實(shí)現(xiàn)的,其時(shí)鐘信號(hào)為120 Mhz,周期為,因此 Refresh_timer的計(jì)數(shù)值應(yīng)為 7812.5/8.3=941,考慮到其它操作需要的時(shí)間,取值為800就可以滿(mǎn)足刷新周期的要求。定時(shí)刷新時(shí)間到時(shí)給出刷新請(qǐng)求信號(hào)REF_REQ,使SDRAM進(jìn)入刷新操作狀態(tài)[4]。

      (5)狀態(tài)控制器

      狀態(tài)控制器是根據(jù)端口仲裁器和初始化及刷新控制器的請(qǐng)求,確定SDRAM芯片的當(dāng)前的工作狀態(tài),工作狀態(tài)可以是空閑(NOP)、讀操作(READA)、寫(xiě)操作(WRITEA)、定時(shí)刷新(REF_REQ,)以及在完成初始化時(shí)產(chǎn)生的復(fù)位等待200 μs(INIT_WAIT),預(yù)充電(PRECHARG)、刷新(REFRESH)和模式設(shè)置(LOAD_MODE)共八個(gè)狀態(tài)[5-6]。為 了 保證SDRAM的刷新請(qǐng)求能夠及時(shí)得到響應(yīng),采用FIFO讀寫(xiě)端口的數(shù)據(jù)長(zhǎng)度不能過(guò)長(zhǎng),刷新定時(shí)器的定時(shí)常數(shù)選擇也要適當(dāng)減小。圖3是IS42S16160B 的狀態(tài)轉(zhuǎn)換圖,圖中的行激活狀態(tài)是SDRAM進(jìn)行讀寫(xiě)操作之前必須給出行地址A0~A12和bank選擇BA0、BA1的狀態(tài)。

      (6)SDRAM接口信號(hào)發(fā)生器

      SDRAM接口信號(hào)發(fā)生器的作用是根據(jù)狀態(tài)控制器給出的狀態(tài)控制信號(hào),如初始化、刷新、讀、寫(xiě)、預(yù)充電、模式設(shè)置等輸出SDRAM的片選、行列選擇、地址、讀寫(xiě)控制及數(shù)據(jù)等端口信號(hào)。

      圖3 IS42S16160B的狀態(tài)轉(zhuǎn)換圖

      3 SDRAM控制器的仿真結(jié)果

      圖4是SDRAM控制器的功能仿真結(jié)果,圖中顯示了初始化和讀操作時(shí),SDRAM芯片各控制信號(hào)的狀態(tài)。該控制器應(yīng)用于圖像采集和顯示系統(tǒng)中,完全能夠滿(mǎn)足實(shí)時(shí)數(shù)據(jù)存儲(chǔ)和處理的要求。

      圖4 SDRAM控制器的仿真圖

      4 結(jié)束語(yǔ)

      采用FAGA設(shè)計(jì)的雙端口SDRAM控制器,與傳統(tǒng)的SDRAM控制器相比較,采用模塊化的自頂向下的設(shè)計(jì)方法,可移植性號(hào),同時(shí)由于支持雙端口的數(shù)據(jù)存取,能夠滿(mǎn)足實(shí)時(shí)數(shù)據(jù)采集和數(shù)據(jù)處理系統(tǒng)對(duì)存儲(chǔ)器的要求。該控制器已成功應(yīng)用于實(shí)時(shí)圖像處理系統(tǒng)中。

      [1]Integrated Silicon Solution,Inc.42S83200B - 16160B.pdf[Z].Rev.C.MARCH,2007.

      [2]高子旺,顧美康.一種基于FPGA的低復(fù)雜度SDRAM控制器實(shí)現(xiàn)方法[J].計(jì)算機(jī)與數(shù)字工程,2010,38(01):194-196.

      [3]趙欣博,陳星.DDR SDRAM與FPGA的高速接口設(shè)計(jì)[J].電子測(cè)量技術(shù),2008,31(11):182-183.

      [4]劉云清,佟首峰,姜會(huì)林.利用FPGA實(shí)現(xiàn)SDRAM控制器的設(shè)計(jì)[J].長(zhǎng)春理工大學(xué)學(xué)報(bào),2005,28(04):47-50.

      [5]段然,樊曉椏,張盛兵,等.基于狀態(tài)機(jī)的SDRAM控制器的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2005,42(17):110-112.

      [6]朱文斌,劉春平,黃振.基于FPGA的高可靠性SDRAM控制器設(shè)計(jì)與實(shí)現(xiàn)[J].電訊技術(shù),2011,51(10):113-116.

      猜你喜歡
      預(yù)充電端口時(shí)鐘
      動(dòng)力電池預(yù)充設(shè)計(jì)及溫升特性研究
      電動(dòng)汽車(chē)預(yù)充電保護(hù)設(shè)計(jì)
      別樣的“時(shí)鐘”
      一種端口故障的解決方案
      電動(dòng)汽車(chē)分級(jí)預(yù)充電回路及預(yù)充電阻選型匹配方法研究
      古代的時(shí)鐘
      端口阻塞與優(yōu)先級(jí)
      有趣的時(shí)鐘
      時(shí)鐘會(huì)開(kāi)“花”
      初識(shí)電腦端口
      電腦迷(2015年6期)2015-05-30 08:52:42
      兖州市| 元江| 当雄县| 南漳县| 萨嘎县| 连南| 化德县| 皮山县| 乌拉特后旗| 嘉鱼县| 宝兴县| 北碚区| 聂拉木县| 华阴市| 府谷县| 景泰县| 高尔夫| 涞水县| 正蓝旗| 阳曲县| 务川| 沙雅县| 来安县| 广宗县| 苗栗县| 祥云县| 南召县| 玉环县| 昭苏县| 安宁市| 永春县| 耿马| 梓潼县| 阿巴嘎旗| 甘孜县| 黑山县| 永德县| 秦皇岛市| 阜阳市| 南溪县| 云安县|