新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 基于數字移相的高精度脈寬測量系統及其FPGA實現

        基于數字移相的高精度脈寬測量系統及其FPGA實現

        作者: 時間:2009-08-06 來源:網絡 收藏

          2 系統實現

          系統實現的最關鍵部分是保證送入各計數器的時鐘相對延遲精度,即要保證計數時鐘之間的相位差.由于通常原始時鐘頻率已經相對較高(通常接近100MHz),周期在10~20ns之間,因此對時鐘的延遲時間只有幾ns,使用普通的延遲線芯片無法達到精度要求;同時為了避免電路板內芯片間傳送延遲的影響,保證測試系統的精度、穩定性和柔性.本文采用現場可編程門陣列()來實現所提出的測量方法.系統結構如圖3所示.晶振產生原始輸入時鐘,通過移相計數模塊后得到脈寬的測量值,測量結果送入FIFO緩存中,以加快數據處理速度,最后通過PCI總線完成與計算機的數據傳輸.邏輯控制用來協調各模塊間的時序,保證系統的正常運行.為提高測試系統的靈活性和方便性,系統建立了內部寄存器,通過軟件修改寄存器的值可以控制測試系統的啟動停止,選擇測量高電平或低電平等.移相計數模塊、FIFO緩沖以及邏輯控制均在芯片內實現,芯片使用XILINX公司的SpartanII系列.

          SpartanII系列是一款高性能、低價位的芯片,其最高運行頻率為200MHz,這里選用其中的XC2S15-6(-6為速度等級).芯片提供了四個片內數字延遲鎖定環路(Delay-Locked Loop,即DLL),可以保證芯片內時鐘信號的零傳送延遲和低的時鐘歪斜(Clock Skew);同時可以方便地實現對時鐘信號的常用控制,如移相、倍頻、分頻等.在HDL程序設計中,可以使用符號CLKDLL調用片內DLL結構,其管腳圖如圖4所示.主要管腳說明如下:

        基于數字移相的高精度脈寬測量系統及其FPGA實現

          CLKIN:時鐘源輸入,其頻率范圍為25~100MHz.

          CLKFB:反饋或參考時鐘信號,只能從CLK0或CLK2X反饋輸入.

          CLK?眼0|90|180|270?演:時鐘輸出,與輸入時鐘同頻,但相位依次相差90°.其內部定義了屬性DUTY_CYCLE_CORRECTION,可以用來調整時鐘的占空比,值為FALSE時,輸出時鐘占空比和輸入時鐘一致,值為TRUE時將占空比調整為50%.

          CLK2X:時鐘源倍頻輸出,且占空比自動調整為50%.

          CLKDV:時鐘源分頻輸出,由屬性 CLKDV_DIVIDE控制N分頻,N可以為1.5、2、2.5、3、4、5、8或16.

          LOCKED:該信號為低電平時,表示延遲鎖相環DLL還沒有鎖定信號,上述輸出時鐘信號未達到理想信號;當變為高電平時,表示鎖相環已經完成信號鎖定,輸出時鐘信號可用.若時鐘源輸入頻率大于60MHz,則系統鎖定時間大約需20μs.

          利用DLL功能可以非??焖俜奖愕貥嫿ㄒ葡嘤嫈的K,實現本文前面介紹的測量方法.移相計數模塊結構如圖5所示.原始時鐘通過CLKDLL處理后得到的相位依次相差90°的四路時鐘輸出為CLK0、CLK90、CLK180和CLK270,它們分別作為四個相同的16位計數器的計數時鐘,待測信號連接計數器的使能端,同時控制四個計數器的啟動和停止.有了各計數器的計數結果,再通過加法器得到累加的計數個數,最后計算出信號脈寬值.

          3 仿真和精度分析

          圖6給出了FPGA芯片內部布線后用Modelsim進行仿真的結果.在RESET后就啟動移相計數模塊,開始對待測信號進行測量,完成一次測量后產生READY信號,同時輸出測量結果,以供后續部分使用.仿真的結果證明測試系統達到設計目標.

        基于數字移相的高精度脈寬測量系統及其FPGA實現

          下面進一步對系統做深入的誤差分析.造成系統測量脈寬誤差的來源主要有系統原理誤差TS、時鐘相移誤差TP和信號延遲誤差Td以及計數時鐘抖晃TC,如圖7所示.

        基于數字移相的高精度脈寬測量系統及其FPGA實現



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 景洪市| 如皋市| 德钦县| 平武县| 镇远县| 郸城县| 卢龙县| 西林县| 武山县| 栾城县| 柳河县| 商河县| 织金县| 潼关县| 南涧| 普兰县| 桐柏县| 峡江县| 郓城县| 昌邑市| 厦门市| 旌德县| 塔河县| 玉溪市| 六安市| 白水县| 广丰县| 银川市| 湖北省| 石家庄市| 潞西市| 宜都市| 兴海县| 寿光市| 洛川县| 拜城县| 香河县| 五寨县| 灵宝市| 隆回县| 鹤山市|