<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 網(wǎng)絡(luò)與存儲(chǔ) > 設(shè)計(jì)應(yīng)用 > DDR硬件設(shè)計(jì)要點(diǎn)都在這里

          DDR硬件設(shè)計(jì)要點(diǎn)都在這里

          作者: 時(shí)間:2018-07-30 來源:網(wǎng)絡(luò) 收藏

            硬件設(shè)計(jì)要點(diǎn)

          本文引用地址:http://www.ex-cimer.com/article/201807/389732.htm

            1. 電源 的電源可以分為三類:

            a主電源VDD和VDDQ,主電源的要求是VDDQ=VDD,VDDQ是給IO buffer供電的電源,VDD是給但是一般的使用中都是把VDDQ和VDD合成一個(gè)電源使用。

            有的芯片還有VDDL,是給DLL供電的,也和VDD使用同一電源即可。電源設(shè)計(jì)時(shí),需要考慮電壓,電流是否滿足要求,電源的上電順序和電源的上電時(shí)間,單調(diào)性等。電源電壓的要求一般在±5%以內(nèi)。電流需要根據(jù)使用的不同芯片,及芯片個(gè)數(shù)等進(jìn)行計(jì)算。由于的電流一般都比較大,所以設(shè)計(jì)時(shí),如果有一個(gè)完整的電源平面鋪到管腳上,是最理想的狀態(tài),并且在電源入口加大電容儲(chǔ)能,每個(gè)管腳上加一個(gè)100nF~10nF的小電容濾波。

            b參考電源Vref,參考電源Vref要求跟隨VDDQ,并且Vref=VDDQ/2,所以可以使用電源芯片提供,也可以采用電阻分壓的方式得到。由于Vref一般電流較小,在幾個(gè)mA~幾十mA的數(shù)量級(jí),所以用電阻分壓的方式,即節(jié)約成本,又能在布局上比較靈活,放置的離Vref管腳比較近,緊密的跟隨VDDQ電壓,所以建議使用此種方式。需要注意分壓用的電阻在100~10K均可,需要使用1%精度的電阻。 Vref參考電壓的每個(gè)管腳上需要加10nF的點(diǎn)容濾波,并且每個(gè)分壓電阻上也并聯(lián)一個(gè)電容較好。



            C、用于匹配的電壓VTT(Tracking Termination Voltage)

            VTT為匹配電阻上拉到的電源,VTT=VDDQ/2。DDR的設(shè)計(jì)中,根據(jù)拓?fù)浣Y(jié)構(gòu)的不同,有的設(shè)計(jì)使用不到VTT,如控制器帶的DDR器件比較少的情況下。如果使用VTT,則VTT的電流要求是比較大的,所以需要走線使用銅皮鋪過去。并且VTT要求電源即可以吸電流,又可以灌電流才可以。一般情況下可以使用專門為DDR設(shè)計(jì)的產(chǎn)生VTT的電源芯片來滿足要求。

            而且,每個(gè)拉到VTT的電阻旁一般放一個(gè)10Nf~100nF的電容,整個(gè)VTT電路上需要有uF級(jí)大電容進(jìn)行儲(chǔ)能。

            在華為的設(shè)計(jì)中,在使用DDR顆粒的情況下,已經(jīng)基本全部不使用VTT電源,全部采用電阻上下拉的戴維南匹配,只有在使用內(nèi)存條的情況下才使用VTT電源。

            一般情況下,DDR的數(shù)據(jù)線都是一驅(qū)一的拓?fù)浣Y(jié)構(gòu),且DDR2和DDR3內(nèi)部都有ODT做匹配,所以不需要拉到VTT做匹配即可得到較好的信號(hào)質(zhì)量。DDR2的地址和控制信號(hào)線如果是多負(fù)載的情況下,會(huì)有一驅(qū)多,并且內(nèi)部沒有ODT,其拓?fù)浣Y(jié)構(gòu)為走T型的結(jié)構(gòu),所以常常需要使用VTT進(jìn)行信號(hào)質(zhì)量的匹配控制。DDR3可以采用Fly-by方式走線:

            一個(gè)DDR3設(shè)計(jì)案例,來分析對(duì)比采用高阻抗負(fù)載走線和采用主線和負(fù)載走線同阻抗兩種情況的差異。

            如上圖,Case1采用的是從內(nèi)層控制器到各個(gè)SDRAM均為50ohm的阻抗設(shè)計(jì)。Case2則采用了主線40ohm,負(fù)載線60ohm的設(shè)計(jì)。對(duì)此通過仿真工具進(jìn)行對(duì)比分析。

            從以上仿真波形可以看出,使用較高阻抗負(fù)載走線的Case2在信號(hào)質(zhì)量上明顯優(yōu)于分支主線都采用同一種阻抗的Case1設(shè)計(jì)。而且對(duì)靠近驅(qū)動(dòng)端的負(fù)載影響最大,遠(yuǎn)離驅(qū)動(dòng)端的最末端的負(fù)載影響較小。這個(gè)正是前面所分析到的,負(fù)載的分布電容導(dǎo)致了負(fù)載線部分的阻抗降低,如果采用主線和負(fù)載線同阻抗設(shè)計(jì),反而導(dǎo)致了阻抗不連續(xù)的發(fā)生。把負(fù)載走線設(shè)計(jì)為較高的阻抗,用于平衡負(fù)載引入的分布電容,從而可以達(dá)到整條走線阻抗平衡的目的。

            通過提高負(fù)載走線阻抗來平衡負(fù)載電容的做法,其實(shí)在以往的菊花鏈設(shè)計(jì)中是經(jīng)常用到的方法。DDR3稱這種拓?fù)錇閒ly-by,其實(shí)是有一定的含義的,意在強(qiáng)調(diào)負(fù)載stub走線足夠的短。

            2. 時(shí)鐘

            DDR的時(shí)鐘為差分走線,一般使用終端并聯(lián)100歐姆的匹配方式,差分走線差分對(duì)控制阻抗為100ohm,單端線50ohm。需要注意的是,差分線也可以使用串聯(lián)匹配,使用串聯(lián)匹配的好處是可以控制差分信號(hào)的上升沿緩度,對(duì)EMI可能會(huì)有一定的作用。

            3. 數(shù)據(jù)和DQS

            DQS信號(hào)相當(dāng)于數(shù)據(jù)信號(hào)的參考時(shí)鐘,它在走線時(shí)需要保持和CLK信號(hào)保持等長。DQS在DDR2以下為單端信號(hào),DDR2可作為差分信號(hào),也可做單端,做單端時(shí)需要將DQS-接地,而DDR3為差分信號(hào),需要走線100ohm差分線。由于內(nèi)部有ODT,所以DQS不需要終端并聯(lián)100ohm電阻。每8bit數(shù)據(jù)信號(hào)對(duì)應(yīng)一組DQS信號(hào)。

            DQS信號(hào)在走線時(shí)需要與同組的DQS信號(hào)保持等長,控制單端50ohm的阻抗。在寫數(shù)據(jù)時(shí),DQ和DQS的中間對(duì)齊,在讀數(shù)據(jù)時(shí),DQ和DQS的邊沿對(duì)齊。DQ信號(hào)多為一驅(qū)一,并且DDR2和DDR3有內(nèi)部的ODT匹配,所以一般在進(jìn)行串聯(lián)匹配就可以了。

            4. 地址和控制

            地址和控制信號(hào)速度沒有DQ的速度快,以時(shí)鐘的上升沿為依據(jù)采樣,所以需要與時(shí)鐘走線保持等長。但如果使用多片DDR時(shí),地址和控制信號(hào)為一驅(qū)多的關(guān)系,需要注意匹配方式是否適合。

            5. 布局注意事項(xiàng)

            布局時(shí),需要把DDR顆粒盡量靠近DDR控制器放置。每個(gè)電源管腳需要放置一個(gè)濾波電容,整個(gè)電源上需要有10uF以上大電容放在電源入口的位置上。電源最好使用獨(dú)立的層鋪到管腳上去。串聯(lián)匹配的電阻最好放在源端,如果是雙向信號(hào),那么要統(tǒng)一放在同一端。如果是一驅(qū)多的DDR匹配結(jié)構(gòu),VTT上拉電阻需要放在最遠(yuǎn)端,注意芯片的排布需要平衡。下圖是幾種DDR的拓?fù)浣Y(jié)構(gòu),首先,一驅(qū)二的情況下分為樹狀結(jié)構(gòu),菊花鏈和Fly-by結(jié)構(gòu),F(xiàn)ly-by是一種STUB很小的菊花鏈結(jié)構(gòu)。DDR2和DDR3走菊花鏈結(jié)構(gòu)都是比較適合的。走樹狀結(jié)構(gòu)可以把兩片芯片貼在PCB的正反兩面,對(duì)貼減小分叉的長度。一驅(qū)多的DDR拓?fù)浣Y(jié)構(gòu)比較復(fù)雜,需要仔細(xì)進(jìn)行仿真。

            6. PCB布線注意事項(xiàng)

            PCB布線時(shí),單端走線走50ohm,差分走線走100ohm阻抗。

            注意控制差分線等長±10mil以內(nèi),同組走線根據(jù)速度的要求也有不同,一般為±50mil。

            控制和地址線及DQS線和時(shí)鐘等長,DQ數(shù)據(jù)線和同組的DQS線等長。

            注意時(shí)鐘及DQS和其他的信號(hào)要分開3W以上距離。

            組間信號(hào)也要拉開至少3W寬的距離。

            同一組信號(hào)最好在同一層布線。

            盡量減少過孔的數(shù)目。

            7. EMI問題

            DDR由于其速度快,訪問頻繁,所以在許多設(shè)計(jì)中需要考慮其對(duì)外的干擾性,在設(shè)計(jì)時(shí)需要注意一下幾點(diǎn)

            原理有性能指標(biāo)要求的,易受干擾的電路模塊和信號(hào),如模擬信號(hào),射頻信號(hào),時(shí)鐘信號(hào)等,防止DDR對(duì)其干擾,影響指標(biāo)。

            DDR的電源和不要與其他易受干擾的電源模塊使用同一電源,如必須使用同一電源,要注意使用電感、磁珠或電容進(jìn)行濾波隔離處理。

            在時(shí)鐘及DQS信號(hào)線上,預(yù)留一些可以增加的串聯(lián)電阻和并聯(lián)電容的位置,在EMI超出標(biāo)準(zhǔn)時(shí),在信號(hào)完整性允許的范圍內(nèi)增大串聯(lián)電阻或?qū)Φ仉娙荩蛊湫盘?hào)上升延變緩,減少對(duì)外的輻射。

            進(jìn)行屏蔽處理,使用金屬外殼的屏蔽結(jié)構(gòu),屏蔽對(duì)外輻射。

            注意保持地的完整性。

            8. 測(cè)試方法

            注意示波器的探頭和示波器本身的帶寬能夠滿足測(cè)試要求。

            測(cè)試點(diǎn)的選擇要注意選到盡量靠近信號(hào)的接受端。

            由于DDR信令比較復(fù)雜,因此為了能快速測(cè)試、調(diào)試和解決信號(hào)上的問題,我們希望能簡(jiǎn)單地分離讀/寫比特。此時(shí),最常用的是通過眼圖分析來幫助檢查DDR信號(hào)是否滿足電壓、定時(shí)和抖動(dòng)方面的要求。

            觸發(fā)模式的設(shè)置有幾種,首先可以利用前導(dǎo)寬度觸發(fā)器分離讀/寫信號(hào)。根據(jù)JEDEC規(guī)范,讀前導(dǎo)的寬度為0.9到1.1個(gè)時(shí)鐘周期,而寫前導(dǎo)的寬度規(guī)定為大于0.35個(gè)時(shí)鐘周期,沒有上限。第二種觸發(fā)方式是利用更大的信號(hào)幅度觸發(fā)方法分離讀/寫信號(hào)。通常,讀/寫信號(hào)的信號(hào)幅度是不同的,因此我們可以通過在更大的信號(hào)幅度上觸發(fā)示波器來實(shí)現(xiàn)兩者的分離。

            測(cè)試中要注意信號(hào)的幅度,時(shí)鐘的頻率,差分時(shí)鐘的交叉點(diǎn),上升沿是否單調(diào),過沖等。

            時(shí)序中最重要,最需要注意的就是建立時(shí)間和保持時(shí)間。



          關(guān)鍵詞: DDR PCB

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();