国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于片上Loopback的FPGA DDR模塊串行測試方法?

2019-03-01 02:51張大宇
關(guān)鍵詞:端口時(shí)鐘分組

王 賀 張大宇 汪 悅 張 松

(中國空間技術(shù)研究院 北京 100094)

1 引言

FPGA器件具有高性能、低成本、資源豐富、可重復(fù)編程等優(yōu)點(diǎn),利用FPGA片上資源設(shè)計(jì)DDR(Double Data Rate)控制器來實(shí)現(xiàn)雙倍速率數(shù)據(jù)傳輸控制,是高速通信、數(shù)據(jù)壓縮與信號處理等領(lǐng)域中的常用方法。DDR控制器一般通過FPGA片上的專用DDR模塊和部分通用可編程資源實(shí)現(xiàn),其中DDR模塊是實(shí)現(xiàn)雙倍速率數(shù)據(jù)傳輸?shù)年P(guān)鍵電路。傳統(tǒng)的DDR模塊測試方法是通過FPGA的IO端口對每個(gè)DDR模塊分別施加測試向量并輸出測試結(jié)果,因此需要使用大量的測試通道資源,對測試儀器的硬件配置要求較高。

Loopback是高速SERDES(串行器/解串器)電路測試中的常用技術(shù),其原理是將SERDES的輸出端口與輸入端口短接形成反饋回路[11],以實(shí)現(xiàn)高速信號的自發(fā)自收測試(如圖1所示)。

從實(shí)現(xiàn)方式上看,Loopback分為片外的Loopback與片上的loopback兩種形式。其中片外Loopback需要通過測試 DIB(Device Interface Board)硬件上的物理線路實(shí)現(xiàn)Loopback環(huán)路(圖1中實(shí)線)[13]。相比而言,片上Loopback對DIB硬件設(shè)計(jì)幾乎沒有要求,但需要電路在設(shè)計(jì)時(shí)內(nèi)部預(yù)留了Loopback環(huán)路(圖1中虛線)[12]。

IOB電路是FPGA上的雙向可編程IO端口模塊,其信號傳輸方向可通過程序進(jìn)行控制。利用IOB中的IOBUF可以構(gòu)建DDR模塊的片上Loopback環(huán)路,將大量DDR模塊在FPGA器件內(nèi)部串聯(lián)成鏈進(jìn)行測試,從而有效減少測試所需配置次數(shù)及IO通道數(shù)量。

2 DDR模塊特點(diǎn)

DDR模塊位于Virtex FPGA的Select IO資源中,數(shù)量與FPGA的IO端口數(shù)量相同,每個(gè)DDR模塊包括IDDR與ODDR兩部分[2]。

2.1 IDDR模塊

IDDR是用于FPGA輸入的雙倍數(shù)據(jù)速率模塊,其原語的原理圖如圖2所示[3]。

圖2 IDDR原語原理圖

對于IDDR模塊端口功能的說明如表1所示。

表1 IDDR端口功能說明

為適應(yīng)不同應(yīng)用接口需求,IDDR模塊支持三種工作模式,分別是反相模式(OPPOSITE_EDGE),同相模式(SAME_EDGE)與流水線模式(SAME_EDGE_PIPELINED),三種模式的主要區(qū)別在于Q1、Q2端口輸出數(shù)據(jù)的時(shí)序存在一定差異。其中,OPPOSITE_EDGE模式是在時(shí)鐘C的上升沿與下降沿分別進(jìn)行數(shù)據(jù)采樣,輸出信號Q1與Q2與時(shí)鐘C的上升沿與下降沿同步變化;SAME_EDGE模式則通過增加額外的下降沿采樣觸發(fā)器將Q1、Q2的輸出都與時(shí)鐘C的上升沿同步起來,但Q1、Q2之間存在一個(gè)時(shí)鐘周期的相位差;SAME_EDGE_PIPELINED則通過增加額外的流水線寄存器將Q1、Q2的數(shù)據(jù)輸出進(jìn)行同步,且都對應(yīng)于時(shí)鐘C的上升沿[5]。

IDDR模塊3種工作模式的具體時(shí)序差異如圖3所示。

圖3 IDDR三種模式功能示意圖

2.2 ODDR模塊

ODDR(Output DDR)是用于FPGA輸出的雙倍數(shù)據(jù)速率模塊,其原語的原理圖如圖4所示。

圖4 ODDR原語的原理圖

對于ODDR模塊端口功能的說明如表2所示。

表2 ODDR端口功能說明

與IDDR模塊不同,ODDR模塊僅支持反相(OPPOSITE_EDGE)與同相模式(SAME_EDGE)2種工作模式,具體輸出信號時(shí)序特點(diǎn)與IDDR類似,如圖5所示。

圖5 ODDR兩種模式功能示意圖

3 DDR模塊測試電路設(shè)計(jì)

3.1 并行測試結(jié)構(gòu)問題分析

傳統(tǒng)的DDR模塊一般采用并行測試結(jié)構(gòu),如圖6所示[15]。

圖6 并行測試方案

并行測試電路的特點(diǎn)是對每一個(gè)IO端口的DDR模塊功能分別進(jìn)行檢測,代價(jià)是需要使用大量的測試儀通道來覆蓋FPGA的全部IO端口。此外,IDDR模塊測試需要使用2倍于被測DDR模塊數(shù)量的FPGA IO來輸出測試結(jié)果(Q1[0..n]、Q2[0..n]),造成每次配置只能完成不足1/3的IDDR模塊測試。

以具有850個(gè)IO的某Virtex FPGA為例[4],覆蓋IDDR與ODDR的全部工作模式測試需要850個(gè)測試通道并進(jìn)行至少16次配置[10],具體分布如表3所示。

表3 某FPGA DDR測試所需配置數(shù)量

3.2 基于片上Loopback的串行測試電路設(shè)計(jì)

從功能上看,DDR模塊實(shí)際等價(jià)于簡化的SERDES電路,其中ODDR相當(dāng)于2并1的串行器,IDDR相當(dāng)于1分2的解串器,因此可以將ODDR與IDDR組合起來按照Loopback的思路進(jìn)行測試。但是,由于ODDR的輸出與IDDR的輸入端口在物理上不存在可編程互聯(lián)線路,因此無法在HDL程序設(shè)計(jì)時(shí)直接連接,必須借助IOB模塊來實(shí)現(xiàn)Loopback。

圖7 IOB基本結(jié)構(gòu)

某Virtex系列FPGA的IOB模塊基本結(jié)構(gòu)如圖7所示,其中輸入端口O與ODDR的輸出Q相連,輸出端口I與IDDR的輸入D相連。因此,通過圖7中加粗的線路(包括2兩個(gè)驅(qū)動(dòng)器IBUF與OBUF)可以實(shí)現(xiàn)ODDR與IDDR的片上Loopback環(huán)路。

圖8 片上Loopback測試電路結(jié)構(gòu)

基于IOB構(gòu)建的DDR模塊片上Loopback串行測試電路結(jié)構(gòu)如圖8所示,對其說明如下:

1)串聯(lián)測試線路由“位于鏈?zhǔn)椎腄in端口IDDR、位于鏈中的n個(gè)Select IO和位于鏈尾的Dout端口ODDR”組成,串接的Select IO數(shù)量由具體器件的封裝引腳數(shù)量決定;

2)每個(gè)Select IO內(nèi)部形成一條Loopback環(huán)路,n個(gè)Select IO在FPGA內(nèi)部串聯(lián)成鏈,上一級Select IO IDDR的兩個(gè)輸出端口(Q1[i]和Q2[i])連到下一個(gè)Select IO ODDR的對應(yīng)輸入端口上;

3)全部IDDR與ODDR模塊的時(shí)鐘clk_iddr、clk_oddr、使能CE、復(fù)位R(或置位S)由FPGA IO統(tǒng)一提供,Din與Dout各占用一個(gè)IO端口。

4)每條片上Loopback串行測試鏈路需要6個(gè)FPGA IO作為測試輔助端口,覆蓋全部DDR模塊至少需要12個(gè)FPGA IO并進(jìn)行6次配置[8],如表4所示(仍以850個(gè)IO的Virtex FPGA為例)。

表4 某FPGA DDR測試所需配置數(shù)量

由于Loopback串行測試電路交叉使用了IDDR與ODDR兩種模塊,因此每個(gè)測試電路都需要進(jìn)行3次配置,以覆蓋IDDR與ODDR的不同工作模式,具體組合方式按表5進(jìn)行。

表5 串行測試組合方案

由于IDDR的SAME_EDGE與SAME_EDGE_PIPELINED兩種模式僅在Q1端口輸出信號上相差一個(gè)時(shí)鐘周期,因此在進(jìn)行SAME_EDGE(分組3)測試時(shí),可以將圖8測試電路中的IDDR與ODDR之間插入一個(gè)D觸發(fā)器(如圖9所示,其中IDDR與DFF共用時(shí)鐘信號),這樣就可將其轉(zhuǎn)化為SAME_EDGE_PIPELINED(分組2)模式進(jìn)行測試。

圖9 IDDR SAME_EDGE測試電路

3.3 功能仿真驗(yàn)證

綜合分析圖8串行Loopback測試電路結(jié)構(gòu)與表5中DDR模塊工作模式組合可以得出:

1)圖8測試電路的輸出Dout應(yīng)落后輸入Din n個(gè)信號傳遞周期,并在第n+1個(gè)信號傳遞周期的clk_oddr上升沿開始變化,其中n為測試電路中串聯(lián)的Select IO數(shù)量。

2)表5分組1(OPPOSITE_EDGE模式)的每個(gè)信號傳遞周期由1個(gè)clk_iddr脈沖與1個(gè)clk_oddr脈沖組成;分組2(SAME_EDGE_PIPELINED模式)的每個(gè)信號傳遞周期由2個(gè)clk_iddr脈沖與1個(gè)clk_oddr脈沖組成;分組3按圖9設(shè)計(jì)后功能同分組2。

為便于分析,仿真中設(shè)定測試電路中串接的Select IO數(shù)量為10,分組1仿真波形如圖10所示;分組2、3仿真波形如圖11所示[6]。從波形狀態(tài)可以看出,仿真結(jié)果與設(shè)計(jì)功能一致。

圖10 OPPOSITE_EDGE模式仿真波形

圖11 SAME_EDGE_PIPELINED模式仿真波形

4 基于ATE的自動(dòng)化測試

DDR模塊測試需要對FPGA進(jìn)行6次配置,為提高效率,本文基于ATE搭建自動(dòng)化測試平臺,ATE型號為美國Teradyne的UltraFLEX系統(tǒng)[7]。

基于ATE的FPGA自動(dòng)化測試包括位流配置與功能測試兩部分,分別需要使用配置向量與測試向量[14]。其中測試向量可以參考圖10與圖11仿真波形編寫,配置向量則需要通過軟件轉(zhuǎn)換產(chǎn)生,具體方法如下[9]:

UltraFLEX系統(tǒng)使用“*.pat”格式的二進(jìn)制向量文件,它是由“*.atp”格式的文本向量文件經(jīng)Pattern Complier軟件編譯后產(chǎn)生,而“*.atp”文件可由ISE軟件生成的“*.rbt”文本位流文件經(jīng)轉(zhuǎn)換后得到。

圖12 rbt位流文件

“*.rbt”位流文件內(nèi)容如圖12所示,從第8行開始為FPGA有效配置位流,每行由32個(gè)數(shù)據(jù)組成,對應(yīng)SelectMap x32的數(shù)據(jù)總線D[31:0],但順序并非按從高到低排列,而是以字節(jié)為單位按從低到高順序排列,因此需要按Xilinx配置指南中要求進(jìn)行“Bit定序”轉(zhuǎn)換后才能使用[1],轉(zhuǎn)換方法如表6所示。

表6 Bit定序?qū)?yīng)關(guān)系(SelectMap x32)

此外,“*.rbt”文件中只提供了SelectMap配置所需的數(shù)據(jù)總線信號,用于ATE配置還需在向量文件中補(bǔ)充必要的控制信號(CCLK、CSI_B、PROGRAM_B與RDWR_B)及TimeSet信息。最終轉(zhuǎn)換出的“*.atp”向量文件如圖13所示。

圖13 atp向量文件

5 結(jié)語

本文利用FPGA IOB中的IOBUF資源構(gòu)建了測試環(huán)路,設(shè)計(jì)了一種結(jié)構(gòu)簡潔、占用資源少、便于移植的DDR模塊片上Loopback串行測試方法,并在ATE上進(jìn)行了測試驗(yàn)證。與傳統(tǒng)并行測試方法相比,本文所述方法僅需使用12路測試儀通道與FPGA IO端口,同時(shí)將覆蓋全部DDR模塊測試所需的配置次數(shù)從16次減少到6次,可用于Virtex系列或其他類似結(jié)構(gòu)FPGA的DDR模塊測試。

猜你喜歡
端口時(shí)鐘分組
一種有源二端口網(wǎng)絡(luò)參數(shù)計(jì)算方法
一種端口故障的解決方案
古代的時(shí)鐘
多按鍵情況下,單片機(jī)端口不足的解決方法
現(xiàn)有網(wǎng)絡(luò)架構(gòu)及遷移方案
分組搭配
這個(gè)時(shí)鐘一根針
怎么分組
分組
有趣的時(shí)鐘
木兰县| 杭锦旗| 德格县| 洱源县| 越西县| 高州市| 邯郸市| 富民县| 基隆市| 阿城市| 常宁市| 思茅市| 昌吉市| 抚顺市| 南城县| 吉隆县| 贡觉县| 屏东县| 娄烦县| 新宾| 旺苍县| 怀宁县| 台湾省| 临高县| 东山县| 翁源县| 绥芬河市| 唐海县| 马山县| 吉林省| 本溪| 镶黄旗| 孝昌县| 云阳县| 西贡区| 肃北| 呼玛县| 芜湖县| 平定县| 阿拉善右旗| 汉川市|