• 
    

    
    

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

      基于FPGA 的DDR2 PHY 層控制器設(shè)計(jì)

      2013-07-30 04:08:04魏騰飛
      電子測(cè)試 2013年10期
      關(guān)鍵詞:命令時(shí)鐘器件

      魏騰飛

      (西安電子科技大學(xué),西安,710000)

      0 引言

      目前由于DDR2 成本低,PCB 設(shè)計(jì)和信號(hào)完整性設(shè)計(jì)的相對(duì)容易,所以仍廣泛使用。DDR2 和以前傳統(tǒng)的SDRAM 不同,DDR2 采用雙倍數(shù)據(jù)速率接口,也就是說(shuō)在相同的系統(tǒng)時(shí)鐘頻率下DDR2 的接口數(shù)據(jù)速率是SDRAM 的兩倍。而且由于DDR2 接口工作頻率較高,所以DDR2 的數(shù)據(jù)線一般是每8bit 就有一位獨(dú)立的數(shù)據(jù)采樣信號(hào)DQS。這樣就能較好的滿足數(shù)據(jù)采樣的建立和保持時(shí)間。而且DDR2顆粒的工作時(shí)鐘使用差分時(shí)鐘線,能夠減少共模干擾和時(shí)鐘的抖動(dòng),提高了時(shí)鐘信號(hào)的質(zhì)量。

      在一般的工程應(yīng)用中,基本使用的是xilinx 或Altear 公司的FPGA。各自都提供有DDR2 控制器的IP CORE,其使用也比較簡(jiǎn)便。但是在一些特定的應(yīng)用環(huán)境下,并不能達(dá)到最優(yōu)的效果。而且IP CORE 內(nèi)部代碼是不可見的。由此考慮到,設(shè)計(jì)一個(gè)DDR2 PHY 層控制器,把和DDR2 控制相關(guān)的邏輯,全都放在PHY 層。而最底層的DDIO 和上層的應(yīng)用邏輯,則可以根據(jù)實(shí)際情況來(lái)設(shè)計(jì)。這樣,使得邏輯的代碼修改量減小,提高了重用性。下面就Altera 的Cyclone系列的FPGA 來(lái)介紹設(shè)計(jì)的相關(guān)重點(diǎn)。

      1 DDR2 PHY 層控制器的整體結(jié)構(gòu)分析和設(shè)計(jì)

      DDR2 PHY 層控制器主要由命令解釋邏輯,DDR2 控制邏輯和DDIO 邏輯三部分構(gòu)成。其中DDIO 邏輯,由于各個(gè)系列的IOB 結(jié)構(gòu)有所不同,需要根據(jù)器件,并由工具生成。在Altera 的Cyclone 系列中DDIO 邏輯的IP CORE 使用是免費(fèi)的。本著使用簡(jiǎn)便,和接口信號(hào)少的原則,DDR2 PHY 層控制器的整體結(jié)構(gòu)如圖1。

      控制器的信號(hào)介紹,整個(gè)系統(tǒng)的時(shí)鐘由clk 和clk_90 輸入,clk 和clk_90 同頻,但是clk_90 的相位超前clk 相位為90 度。一般有FPGA 內(nèi)的PLL 鎖相環(huán)提供這兩路時(shí)鐘信號(hào)。Cmd 信號(hào)是控制整個(gè)邏輯的命令線由3bit 組成,命令包括:NOP,BANK_ACTIVE,DDR2_INIT,AUTO_REFRESH,WRITE,READ 和PRECHARGE_ALL。具體的對(duì)應(yīng)關(guān)系見表1。address 是控制器的地址輸入線,位數(shù)由 DDR2 顆粒的容量決定。input_data 是數(shù)據(jù)的輸入端。init_valid 信號(hào)輸出高電平表示DDR2 顆粒初始化完成可以進(jìn)行其他操作。data_valid 信號(hào)輸出高電平表示output_data 輸出數(shù)據(jù)線上的數(shù)據(jù)有效。cmd_ack 信號(hào)為高表示控制器正在執(zhí)行當(dāng)前命令。為低表示當(dāng)前命令完成,并進(jìn)入到NOP 狀態(tài)。

      2 DDR2 PHY 層控制器的設(shè)計(jì)與實(shí)現(xiàn)

      2.1 DDR2 PHY 層控制器的DDIO 實(shí)現(xiàn)

      DDIO 接口邏輯是連接FPGA 和DDR2 之間的橋梁。它完成如下功能:數(shù)據(jù)輸入,通過(guò)特有的DQS 信號(hào)采樣。數(shù)據(jù)輸出,并產(chǎn)生相應(yīng)的DQS 信號(hào)。實(shí)現(xiàn)數(shù)據(jù)速率的轉(zhuǎn)換。因?yàn)樵谙到y(tǒng)時(shí)鐘頻率和DDR2顆粒數(shù)據(jù)位寬一定的情況下,F(xiàn)PGA 內(nèi)部一般是單沿?cái)?shù)據(jù)處理的,而DDR2 是雙沿采樣,所以如果DDR2 顆粒的數(shù)據(jù)位寬為16bit 的情況下,那么轉(zhuǎn)換到FPGA 內(nèi)部就形成了一拍32bit 的數(shù)據(jù)位寬。

      在Altera 的Quartus 中的MegaWizard Plug 先生成8bit 的DDIO 和1bit 的DDIO_OUT 的例化模塊。具體結(jié)構(gòu)如圖2。

      其 中 的Clock delay control circuitry 是Cyclone 系 列FPGA 內(nèi)部的一個(gè)固件邏輯。固定連接在一個(gè)PIN 上面,所以在分配PIN 的時(shí)候,要把DQS 分配在有延時(shí)功能的PIN 上面。Cyclone系列構(gòu)成的高數(shù)據(jù)速率的DDIO 接口,在寫周期時(shí),其DQS 信號(hào)是由DDR2 PHY 控制器產(chǎn)生的,而DQS 的邊沿和DQ 數(shù)據(jù)組的中心對(duì)齊。在讀周期時(shí),其DQS 信號(hào)是由DDR2 顆粒產(chǎn)生的,而DQS 的邊沿和DQ 數(shù)據(jù)組的邊沿對(duì)齊。這個(gè)要特別注意。因此在讀周期時(shí),DQS通過(guò)FPGA 內(nèi)部的Clock delay control circuitry 模塊,將DQS的邊沿和DQ 數(shù)據(jù)組的中心對(duì)齊,實(shí)現(xiàn)DQ 數(shù)據(jù)組的采樣。在寫周期時(shí),DQS 的邊沿和DQ 數(shù)據(jù)組的邊沿相差90 相位移,所以要用超前90 度的Clk_90 來(lái)打DQ 數(shù)據(jù),而用clk 來(lái)輸出DQS,這樣就實(shí)現(xiàn)了DQS 的邊沿和DQ 數(shù)據(jù)組的中心對(duì)齊。

      2.2 DDR2 PHY 層控制器的邏輯實(shí)現(xiàn)

      本邏輯是整個(gè)DDR2 PHY 層控制器的核心,所有操作DDR2 顆粒的工作,都由其完成。在應(yīng)用本控制器前,需要根據(jù)DDR2 顆粒器件的數(shù)據(jù)手冊(cè),來(lái)設(shè)置一些合適的參數(shù)才能正常工作。包括上電延時(shí),用來(lái)等待時(shí)鐘信號(hào)穩(wěn)定POWER_UP_DELAY 延時(shí),空操作到預(yù)充電的NOP_TO_PRE_DELAY 延時(shí),tRCD,tRP,tMRD,tRFC,MRS,EMRS 等。由于本控制器使用了verilog 的parameter 來(lái)定義。使得參數(shù)可以任意修改,來(lái)應(yīng)用在多種DDR2 器件上面。DDR2 大部分的不同器件的參數(shù)是一樣的,有時(shí)只是,不同廠家的參數(shù)稍有不同而已。從而使得模塊的靈活性增強(qiáng)。參數(shù)的設(shè)置如下:

      以上參數(shù)都是參考DDR2 芯片手冊(cè)設(shè)定的,本例參考MT46V16M16 的器件手冊(cè)設(shè)置的。在使用過(guò)程當(dāng)中如果想將tRFC改為90ns 而系統(tǒng)時(shí)鐘改為125MHz,其他不變時(shí),那么只需這樣例化即可:

      這樣根據(jù)具體的DDR2 的器件,來(lái)例化一個(gè)可用的PHY 層控制器。

      DDR2 PHY 層控制器是由一個(gè)狀態(tài)機(jī)來(lái)控制運(yùn)行的,通過(guò)當(dāng)前的命令和當(dāng)前的狀態(tài)來(lái)決定下一步的操作。而且為了提高時(shí)鐘頻率和滿足時(shí)序要求,控制器中用了流水線。當(dāng)在連續(xù)讀或連續(xù)寫的時(shí)候,流水線內(nèi)部邏輯的處理速度達(dá)到時(shí)鐘頻率。但是單次操作時(shí)效率會(huì)有所降低,所以因盡量多使用連續(xù)的讀寫操作來(lái)達(dá)到較高的數(shù)據(jù)吞吐速率。下圖介紹了DDR2 PHY 層控制器的狀態(tài)跳轉(zhuǎn)圖3,表2 為各狀態(tài)的描述表。

      如圖3 所示,這里主要介紹NOP,AUTO_REFRESH,READ 和WRITE。NOP 是控制器的空閑狀態(tài)。在沒有其他操作的時(shí)候,應(yīng)該給出NOP 命令使控制器跳入空閑狀態(tài)。好處是在NOP 狀態(tài)下,DDR2 顆粒的nCS 為高,沒有選中DDR2 顆粒,這樣可以降低部分功耗。在READ 和WRITE 時(shí),控制器輸入或輸出的數(shù)據(jù)長(zhǎng)度,由READ和WRITE 命令給定的時(shí)鐘周期個(gè)數(shù)決定。例如READ 命令給出的2個(gè)時(shí)鐘周期,那么就會(huì)執(zhí)行2個(gè)讀命令,WRITE 命令同理。唯一的區(qū)別是在READ 命令中,由于使用了流水線,所以讀出的數(shù)據(jù)有效必須由data_valid 信號(hào)來(lái)指示。即在發(fā)出READ 命令后,當(dāng)data_valid 信號(hào)為高時(shí)表示控制器的輸出數(shù)據(jù)線的數(shù)據(jù)是有效的,可以進(jìn)行采樣。AUTO_REFRESH 為刷新命令,最好跟據(jù)具體的應(yīng)用情況來(lái)安排AUTO_REFRESH 命令的發(fā)出周期和發(fā)起時(shí)間。但是在某些應(yīng)用中甚至可以不用AUTO_REFRESH 命令。比如在一些視頻圖像數(shù)據(jù)緩沖的應(yīng)用中,數(shù)據(jù)只是在DDR2 中臨時(shí)存儲(chǔ),但很快就會(huì)被取走,寫入和取走的間隔小于64ms。在這樣的應(yīng)用中,就可以不用AUTO_REFRESH 命令。這樣不但簡(jiǎn)化了DDR2 的操作,也使得DDR2 的數(shù)據(jù)吞吐的可用帶寬提高。

      下面介紹DDR2 PHY 層控制器的讀寫時(shí)序。仿真是在modelsim6.0 下進(jìn)行的行為仿真。DDR2 用的是Micron SDRAM DDR2 的BFM(MT46V16M16),此BFM 帶有狀態(tài)命令打印,可以實(shí)時(shí)的在命令行里看到BFM 的狀態(tài),比較方便。在進(jìn)行讀寫時(shí),提前要激活BANK。圖省略了BANK 的激活。

      3 結(jié)論

      本文介紹的DDR2 PHY 層控制器,在Cyclone II 系列的FPGA 上使用,占用的資源情況和性能如下表3:

      可以看出它的資源占用率是比較少的,而且工作頻率也較高。而Altear 的DDR and DDR2 SDRAM Controller 9.0 版本的IP CORE 在Cyclone II 系列上使用頻率為167MHz。在實(shí)際的項(xiàng)目應(yīng)用中,操作簡(jiǎn)便,性能良好。應(yīng)用在不同的DDR2 器件上只需修改參數(shù)即可應(yīng)用。加快了項(xiàng)目的進(jìn)度。

      [1] Altera.Cyclone III Device Handbook,2010.

      [2] Altera.Quartus II 12.0 手冊(cè),2012.

      [3] XILINX.針對(duì)Spartan-3 FPGA 的DDR22 SDRAM 存儲(chǔ)器接口,2011.

      [4] Micron.Double Data.Rate SDRAM,2010

      猜你喜歡
      命令時(shí)鐘器件
      只聽主人的命令
      別樣的“時(shí)鐘”
      古代的時(shí)鐘
      移防命令下達(dá)后
      有趣的時(shí)鐘
      時(shí)鐘會(huì)開“花”
      這是人民的命令
      旋涂-蒸鍍工藝制備紅光量子點(diǎn)器件
      面向高速應(yīng)用的GaN基HEMT器件
      一種加載集總器件的可調(diào)三維周期結(jié)構(gòu)
      迁安市| 恭城| 江达县| 运城市| 长沙县| 比如县| 麦盖提县| 疏附县| 新巴尔虎右旗| 上饶县| 固阳县| 三河市| 嘉定区| 辉南县| 长乐市| 明光市| 镇江市| 平阳县| 饶阳县| 精河县| 陇西县| 什邡市| 高密市| 宿迁市| 隆化县| 马龙县| 云梦县| 平顶山市| 马山县| 大埔县| 大邑县| 遂川县| 西贡区| 信宜市| 万年县| 贺兰县| 南乐县| 邵武市| 南和县| 罗田县| 九江市|