• 
    

    
    

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

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

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

      王 賀 張大宇 汪 悅 張 松

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

      1 引言

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

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

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

      IOB電路是FPGA上的雙向可編程IO端口模塊,其信號(hào)傳輸方向可通過(guò)程序進(jìn)行控制。利用IOB中的IOBUF可以構(gòu)建DDR模塊的片上Loopback環(huán)路,將大量DDR模塊在FPGA器件內(nèi)部串聯(lián)成鏈進(jìn)行測(cè)試,從而有效減少測(cè)試所需配置次數(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ù)速率模塊,其原語(yǔ)的原理圖如圖2所示[3]。

      圖2 IDDR原語(yǔ)原理圖

      對(duì)于IDDR模塊端口功能的說(shuō)明如表1所示。

      表1 IDDR端口功能說(shuō)明

      為適應(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ù)采樣,輸出信號(hào)Q1與Q2與時(shí)鐘C的上升沿與下降沿同步變化;SAME_EDGE模式則通過(guò)增加額外的下降沿采樣觸發(fā)器將Q1、Q2的輸出都與時(shí)鐘C的上升沿同步起來(lái),但Q1、Q2之間存在一個(gè)時(shí)鐘周期的相位差;SAME_EDGE_PIPELINED則通過(guò)增加額外的流水線寄存器將Q1、Q2的數(shù)據(jù)輸出進(jìn)行同步,且都對(duì)應(yīng)于時(shí)鐘C的上升沿[5]。

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

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

      2.2 ODDR模塊

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

      圖4 ODDR原語(yǔ)的原理圖

      對(duì)于ODDR模塊端口功能的說(shuō)明如表2所示。

      表2 ODDR端口功能說(shuō)明

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

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

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

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

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

      圖6 并行測(cè)試方案

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

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

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

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

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

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

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

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

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

      1)串聯(lián)測(cè)試線路由“位于鏈?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)成鏈,上一級(jí)Select IO IDDR的兩個(gè)輸出端口(Q1[i]和Q2[i])連到下一個(gè)Select IO ODDR的對(duì)應(yīng)輸入端口上;

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

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

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

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

      表5 串行測(cè)試組合方案

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

      圖9 IDDR SAME_EDGE測(cè)試電路

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

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

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

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

      為便于分析,仿真中設(shè)定測(cè)試電路中串接的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)化測(cè)試

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

      基于ATE的FPGA自動(dòng)化測(cè)試包括位流配置與功能測(cè)試兩部分,分別需要使用配置向量與測(cè)試向量[14]。其中測(cè)試向量可以參考圖10與圖11仿真波形編寫(xiě),配置向量則需要通過(guò)軟件轉(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行開(kāi)始為FPGA有效配置位流,每行由32個(gè)數(shù)據(jù)組成,對(duì)應(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ù)總線信號(hào),用于ATE配置還需在向量文件中補(bǔ)充必要的控制信號(hào)(CCLK、CSI_B、PROGRAM_B與RDWR_B)及TimeSet信息。最終轉(zhuǎn)換出的“*.atp”向量文件如圖13所示。

      圖13 atp向量文件

      5 結(jié)語(yǔ)

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

      猜你喜歡
      端口時(shí)鐘分組
      別樣的“時(shí)鐘”
      一種端口故障的解決方案
      古代的時(shí)鐘
      分組搭配
      怎么分組
      端口阻塞與優(yōu)先級(jí)
      分組
      有趣的時(shí)鐘
      時(shí)鐘會(huì)開(kāi)“花”
      初識(shí)電腦端口
      電腦迷(2015年6期)2015-05-30 08:52:42
      弥勒县| 越西县| 漳平市| 醴陵市| 城步| 浪卡子县| 马尔康县| 常德市| 平江县| 全椒县| 成武县| 康保县| 雷山县| 四平市| 信丰县| 昭通市| 昌图县| 临沭县| 巴东县| 手游| 乾安县| 新巴尔虎右旗| 宁都县| 江阴市| 葫芦岛市| 乌海市| 柞水县| 通江县| 普定县| 克东县| 清原| 北流市| 益阳市| 镇巴县| 彰化县| 大荔县| 渝中区| 壤塘县| 淳安县| 湄潭县| 大港区|