專利名稱:一種測試ddr3數(shù)據(jù)有效窗口的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及DDR3內(nèi)存控制器領(lǐng)域,具體涉及一種測試DDR3數(shù)據(jù)有效窗口的方法
和裝置。
背景技術(shù):
在DDR3硬件設(shè)計(jì)中,由于PCB走線的差異,時鐘到達(dá)各個數(shù)據(jù)線的時刻并不一致, 這可能導(dǎo)致在同一時鐘對各個數(shù)據(jù)線進(jìn)行采樣時會出現(xiàn)偏差的問題。在用fpga設(shè)計(jì)DDR3 控制器時,都是通過fpga自帶的延時模塊調(diào)整采樣時鐘與數(shù)據(jù)之間的相位關(guān)系使時鐘與數(shù)據(jù)線保持對齊。由于數(shù)據(jù)線較多,需要耗費(fèi)大量的邏輯資源用于相位對齊以及數(shù)據(jù)有效窗口的查找,但是在fpga邏輯資源緊張的情況下,會出現(xiàn)設(shè)計(jì)時序無法滿足對多個數(shù)據(jù)有效窗口查找的要求的問題。在專利號為ZL200780041136. 5、名稱為“用于在FPGA上的DDR3應(yīng)用的讀取對準(zhǔn)實(shí)現(xiàn)”的發(fā)明中,披露了一種在DDR3中使采樣時鐘與數(shù)據(jù)之間的相位相一致的方法,該方法利用fpga自帶的延遲單元對DQ信號進(jìn)行延遲采樣,根據(jù)采樣的結(jié)果,計(jì)算出窗口的大小。 但是使用該方法會占用較多的fpga邏輯資源,在fpga工程較大、邏輯資源緊張的情況下會導(dǎo)致邏輯資源緊張,進(jìn)而會造成布局布線困難,工程時序難以滿足的問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種測試DDR3數(shù)據(jù)有效窗口的方法,其改進(jìn)之處在于, 所述方法包括計(jì)算DDR3的數(shù)據(jù)有效窗口大小,根據(jù)窗口大小設(shè)置DDR3控制器讀數(shù)據(jù)采樣時鐘的相位,一般取公共窗口的中間值。記錄Pmin和Pmax ;其中,所述Pmin為數(shù)據(jù)匹配采樣時鐘最小相位;所述Pmax為數(shù)據(jù)匹配采樣時鐘最大相位。本發(fā)明提供的優(yōu)選技術(shù)方案中,所述方法包括如下步驟1.向DDR3內(nèi)存段存儲區(qū)域預(yù)寫數(shù)據(jù);2.設(shè)置讀采樣時鐘初始值;3.回讀比較數(shù)據(jù),判斷所述回讀比較數(shù)據(jù)是否與寫入的數(shù)據(jù)格式一致,根據(jù)判斷的結(jié)果分別記錄Pmin和pmax。本發(fā)明提供的第二優(yōu)選技術(shù)方案中,所述DDR3內(nèi)存讀寫操作以burst為單位,所述步驟1中預(yù)寫的數(shù)據(jù)塊的數(shù)目至少為一個burst。本發(fā)明提供的第三優(yōu)選技術(shù)方案中,所述步驟2中調(diào)整相位初始值的方式為自動調(diào)整或手動調(diào)整。本發(fā)明提供的第四優(yōu)選技術(shù)方案中,所述DDR3數(shù)據(jù)的窗口大小按照如下公式進(jìn)行計(jì)算(Pmax-Pmin) X5ns,其中,采樣時鐘頻率為200MHz。本發(fā)明提供的第五優(yōu)選技術(shù)方案中,所述裝置包括預(yù)寫-預(yù)讀比較單元,所述預(yù)寫-預(yù)讀比較單元基于預(yù)寫-預(yù)讀比較的方式,計(jì)算出DDR3的數(shù)據(jù)有效窗口大小,根據(jù)窗口大小設(shè)置讀數(shù)據(jù)采樣時鐘的相位,記錄Pmin和Pmax ;其中,所述Pmin為數(shù)據(jù)匹配采樣時鐘最小相位;所述Pmax為數(shù)據(jù)匹配采樣時鐘最大相位。本發(fā)明提供的第六優(yōu)選技術(shù)方案中,所述預(yù)寫-預(yù)讀比較單元包括依次連接的數(shù)據(jù)預(yù)寫入模塊、采樣時鐘設(shè)置模塊和相位記錄模塊;所述數(shù)據(jù)寫入模塊用于向DDR3內(nèi)存某段存儲區(qū)域預(yù)寫數(shù)據(jù);所述采樣時鐘設(shè)置模塊用于設(shè)置讀采樣時鐘初始值;所述相位記錄模塊用于回讀比較數(shù)據(jù),判斷所述回讀比較數(shù)據(jù)是否與寫入的數(shù)據(jù)格式一致,根據(jù)判斷的結(jié)果分別記錄Pmin和Pmax。本發(fā)明提供的第七優(yōu)選技術(shù)方案中,所述預(yù)寫-預(yù)讀比較單元以burst為單位對 DDR3內(nèi)存進(jìn)行讀寫操作。本發(fā)明提供的第八優(yōu)選技術(shù)方案中,所述采樣時鐘設(shè)置模塊調(diào)整相位初始值的方式為自動或手動。與現(xiàn)有技術(shù)比,本發(fā)明提供的一種測試DDR3數(shù)據(jù)有效窗口的方法和裝置,在不使用延時單元的情況下就可以完成數(shù)據(jù)有效窗口的測試,節(jié)省了 fpga的邏輯資源,進(jìn)一步保證了 fpga工程設(shè)計(jì)的時序要求;而且不占用任何的I0DELAY邏輯單元及邏輯資源;可在對 DDR3內(nèi)存的硬件設(shè)計(jì)之前,通過所述測試DDR3數(shù)據(jù)有效窗口的方法和裝置測試出數(shù)據(jù)有效窗口大小,然后在對DDR3的硬件設(shè)計(jì)中直接根據(jù)測試得到的窗口大小設(shè)置DDR3控制器讀時鐘采樣點(diǎn)位置,提高了硬件設(shè)計(jì)的效率,降低了 PCB的布局布線難度。
圖1為本發(fā)明所述的DDR3數(shù)據(jù)有效窗口測試方法的流程圖。
具體實(shí)施例方式如圖1所示,測試DDR3數(shù)據(jù)有效窗口的方法,不占用fpga任何邏輯資源,可以直接測試計(jì)算出DDR3的數(shù)據(jù)有效窗口范圍,再根據(jù)窗口大小設(shè)置讀數(shù)據(jù)采樣時鐘的相位。所述測試DDR3數(shù)據(jù)有效窗口的方法的具體過程如下將讀數(shù)據(jù)采樣時鐘的初始相位固定為 0°,向DDR3內(nèi)存某段存儲空間預(yù)寫一段有規(guī)律的數(shù)據(jù),然后回讀比較數(shù)據(jù)是否與寫入的數(shù)據(jù)格式一致,若不一致,則將讀數(shù)據(jù)采樣時鐘相位增加一個步進(jìn)幅度,以200MHz時鐘為例,鎖相環(huán)的步進(jìn)幅度為9°,將讀數(shù)據(jù)采樣時鐘相位固定為9°,再回讀比較數(shù)據(jù)是否與寫入的數(shù)據(jù)格式一致,若仍不一致則繼續(xù)調(diào)整讀采樣時鐘相位,直到第一次找到讀寫數(shù)據(jù)格式一致,記下此時的相位并將此時的相位標(biāo)記為數(shù)據(jù)匹配采樣時鐘最小相位Pmin ;繼續(xù)增加采樣時鐘的相位,直到找到下一個讀寫數(shù)據(jù)格式不一致的相位點(diǎn),記下此時的相位并將此時的相位標(biāo)記為數(shù)據(jù)匹配采樣時鐘最大相位Pmax ;其中,DDR3數(shù)據(jù)的窗口大小按照如下公式進(jìn)行計(jì)算(Pmax-Pmin) X 5ns (以200MHz時鐘頻率為例);其中,對所述DDR3內(nèi)存的讀寫操作是以burst為單位,在所述方法中預(yù)寫的數(shù)據(jù)塊至少是一個burst,而且所述方法中調(diào)整相位初始值的方式可以選擇自動調(diào)整或者手動調(diào)整。所述測試DDR3數(shù)據(jù)有效窗口的方法不占用任何的I0DELAY邏輯單元及邏輯資源,可在對DDR3內(nèi)存的硬件設(shè)計(jì)之前,通過所述測試DDR3數(shù)據(jù)有效窗口的方法和裝置測試出數(shù)據(jù)有效窗口大小,然后在對DDR3的硬件設(shè)計(jì)中直接根據(jù)測試得到的窗口大小設(shè)置DDR3控制器讀時鐘采樣點(diǎn)位置。其中,所述預(yù)寫數(shù)據(jù)的過程為向DDR3內(nèi)存某段存儲區(qū),比如地址0 地址511,發(fā)送DDR3寫命令,寫入有固定格式的數(shù)據(jù),向地址0寫數(shù)據(jù)0,向地址1寫數(shù)據(jù)1,向地址2 寫數(shù)據(jù)2,地址N寫入數(shù)據(jù)N,向地址511寫入數(shù)據(jù)511。所述比較數(shù)據(jù)的過程為待預(yù)寫數(shù)據(jù)過程結(jié)束后,向預(yù)寫數(shù)據(jù)的該段存儲區(qū)發(fā)送 DDR3讀命令,并比較讀回的數(shù)據(jù)是否與寫入的數(shù)據(jù)格式一致。即從地址0讀回的數(shù)據(jù)應(yīng)該為0,地址1讀回的數(shù)據(jù)應(yīng)該是數(shù)據(jù)1,地址N讀回的數(shù)據(jù)應(yīng)該是N,地址511讀回的數(shù)據(jù)應(yīng)該是511,若讀數(shù)據(jù)采樣時鐘相位設(shè)置正確,則回讀數(shù)據(jù)應(yīng)該與預(yù)寫數(shù)據(jù)格式一致,即從地址N讀回的數(shù)據(jù)應(yīng)該是N,若不是N,表示需要調(diào)整讀數(shù)據(jù)采樣時鐘相位。所述burst是“猝發(fā)”的意思,DDR3的讀寫以burst為單位,burst長度為4或者 8,burst為4表示向DDR3的地址M發(fā)起一次讀或?qū)懖僮鲿r,DDR3內(nèi)部會以地址M為初始地址連續(xù)發(fā)起4次讀或?qū)懖僮?,依次向地址Μ,?1,Μ+2,Μ+3進(jìn)行讀或?qū)?;burst為8表示在向 DDR3的地址M發(fā)起一次讀或?qū)懖僮鲿r,DDR3內(nèi)部會以地址M為初始地址連續(xù)發(fā)起8次讀或?qū)懖僮鳎来螌Φ刂稭,M+l,M+2,M+3,M+4,M+4,M+5,M+6,M+7進(jìn)行讀或?qū)懖僮?。以下為測試DDR3數(shù)據(jù)有效窗口的方法的具體舉例在開始判斷數(shù)據(jù)窗口時,設(shè)置一個讀采樣時鐘初始相位Pmin,假如為0°,即Pmin = 0°,數(shù)據(jù)預(yù)寫過程結(jié)束后回讀比較發(fā)現(xiàn)回讀的數(shù)據(jù)與預(yù)寫的數(shù)據(jù)格式不匹配,這時需要修改Pmin,將Pmin相位進(jìn)行調(diào)整,比如從0°調(diào)整到9°,再回讀比較數(shù)據(jù)是否與預(yù)寫的數(shù)據(jù)格式一致,若仍然不匹配,再將相位步進(jìn)到18°時比較數(shù)據(jù)匹配成功,記錄此時的相位Pmin = 18°,在18°的基礎(chǔ)上再步進(jìn)相位,找到最大相位點(diǎn)Pmax,比如在90°時比較數(shù)據(jù)格式匹配成功,但是99°時匹配失敗,記錄此時相位Pmax = 90°。則數(shù)據(jù)有效窗口為90° -18° = 72°,以系統(tǒng)工作時鐘為200MHz計(jì)算,換算成時間計(jì)算為(72° /360° )X5ns=lns,即數(shù)據(jù)有效窗口為Ins。測試DDR3數(shù)據(jù)有效窗口的裝置,包括預(yù)寫_預(yù)讀比較單元,所述預(yù)寫_預(yù)讀比較單元,基于預(yù)寫-預(yù)讀比較的方式,先測試計(jì)算出DDR3的數(shù)據(jù)有效窗口大小,再根據(jù)窗口大小設(shè)置讀數(shù)據(jù)采樣時鐘的相位。所述預(yù)寫-預(yù)讀比較單元包括數(shù)據(jù)預(yù)寫入模塊、采樣時鐘設(shè)置模塊、相位記錄模塊;所述數(shù)據(jù)寫入模塊用于向DDR3內(nèi)存某段存儲區(qū)域預(yù)寫數(shù)據(jù);所述采樣時鐘設(shè)置模塊用于設(shè)置讀采樣時鐘初始值;所述相位記錄模塊用于回讀比較數(shù)據(jù), 判斷所述回讀比較數(shù)據(jù)是否與寫入的數(shù)據(jù)格式一致,如果一致,則記下此時的采樣時鐘相位并標(biāo)記為Pmin,如果不一致,則調(diào)整讀采樣時鐘相位,直到第一次找到與讀寫數(shù)據(jù)格式一致的,記下此時的采樣時鐘相位并標(biāo)記為Pmin ;之后繼續(xù)增加采樣時鐘的相位,直到找到下一個讀寫數(shù)據(jù)格式不一致的時鐘相位點(diǎn),記下此時的采樣時鐘相位并標(biāo)記為Pmax并退出。所述預(yù)寫-預(yù)讀比較單元以burst為單位對DDR3內(nèi)存進(jìn)行讀寫操作。所述采樣時鐘設(shè)置模塊調(diào)整相位初始值的方式可以選擇自動調(diào)整或者手動調(diào)整。需要聲明的是,本發(fā)明內(nèi)容及具體實(shí)施方式
意在證明本發(fā)明所提供技術(shù)方案的實(shí)際應(yīng)用,不應(yīng)解釋為對本發(fā)明保護(hù)范圍的限定。本領(lǐng)域技術(shù)人員在閱讀本申請說明書后,在其精神和原理啟發(fā)下,可作各種修改、等同替換、或改進(jìn)。但這些變更或修改均在申請待批的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種測試DDR3數(shù)據(jù)有效窗口的方法,其特征在于,所述方法包括計(jì)算DDR3的數(shù)據(jù)有效窗口大小,根據(jù)窗口大小設(shè)置讀數(shù)據(jù)采樣時鐘的相位,記錄Pmin和Pmax ;其中,所述Pmin 為數(shù)據(jù)匹配采樣時鐘最小相位;所述Pmax為數(shù)據(jù)匹配采樣時鐘最大相位。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法包括如下步驟1.向DDR3內(nèi)存段存儲區(qū)域預(yù)寫數(shù)據(jù);2.設(shè)置讀采樣時鐘初始值;3.回讀比較數(shù)據(jù),判斷所述回讀比較數(shù)據(jù)是否與寫入的數(shù)據(jù)格式一致,根據(jù)判斷的結(jié)果分別記錄Pmin和pmax。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述DDR3內(nèi)存讀寫操作以burst為單位, 所述步驟1中預(yù)寫的數(shù)據(jù)塊的數(shù)目至少為一個burst。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟2中調(diào)整相位初始值的方式為自動調(diào)整或手動調(diào)整。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述DDR3數(shù)據(jù)的窗口大小按照如下公式進(jìn)行計(jì)算(Pmax-Pmin) X5ns,其中,采樣時鐘頻率為200MHz。
6.一種測試DDR3數(shù)據(jù)有效窗口的裝置,其特征在于,所述裝置包括預(yù)寫-預(yù)讀比較單元,所述預(yù)寫-預(yù)讀比較單元基于預(yù)寫-預(yù)讀比較的方式,計(jì)算出DDR3的數(shù)據(jù)有效窗口大小,根據(jù)窗口大小設(shè)置讀數(shù)據(jù)采樣時鐘的相位,記錄Pmin和Pmax ;其中,所述Pmin為數(shù)據(jù)匹配采樣時鐘最小相位;所述Pmax為數(shù)據(jù)匹配采樣時鐘最大相位。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述預(yù)寫-預(yù)讀比較單元包括依次連接的數(shù)據(jù)預(yù)寫入模塊、采樣時鐘設(shè)置模塊和相位記錄模塊;所述數(shù)據(jù)寫入模塊用于向DDR3內(nèi)存某段存儲區(qū)域預(yù)寫數(shù)據(jù);所述采樣時鐘設(shè)置模塊用于設(shè)置讀采樣時鐘初始值;所述相位記錄模塊用于回讀比較數(shù)據(jù),判斷所述回讀比較數(shù)據(jù)是否與寫入的數(shù)據(jù)格式一致,根據(jù)判斷的結(jié)果分別記錄Pmin和Pmax。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述預(yù)寫-預(yù)讀比較單元以burst為單位對DDR3內(nèi)存進(jìn)行讀寫操作。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述采樣時鐘設(shè)置模塊調(diào)整相位初始值的方式為自動或手動。
全文摘要
本發(fā)明提供了一種測試DDR3數(shù)據(jù)有效窗口的方法,先計(jì)算出DDR3的數(shù)據(jù)有效窗口大小,再根據(jù)窗口大小設(shè)置讀數(shù)據(jù)采樣時鐘的相位。本發(fā)明提供的測試DDR3數(shù)據(jù)有效窗口的方法,可在對DDR3內(nèi)存的硬件設(shè)計(jì)之后,通過所述測試DDR3數(shù)據(jù)有效窗口的方法和裝置測試出數(shù)據(jù)有效窗口大小,然后在對DDR3控制器設(shè)計(jì)中直接根據(jù)測試得到的窗口大小設(shè)置讀時鐘采樣點(diǎn)位置,提高了硬件設(shè)計(jì)的效率,降低了PCB的布局布線難度。
文檔編號G11C29/56GK102426861SQ201110384060
公開日2012年4月25日 申請日期2011年11月28日 優(yōu)先權(quán)日2011年11月28日
發(fā)明者劉朝輝, 張磊, 張英文, 李旭, 李靜, 白宗元, 竇曉光, 紀(jì)奎 申請人:曙光信息產(chǎn)業(yè)(北京)有限公司