劉慶良,盧榮軍,李建清
(東南大學(xué) 儀器科學(xué)與工程學(xué)院,AMS研究中心,江蘇 南京 210096)
FPGA廣泛應(yīng)用于通信、數(shù)字信號處理、工業(yè)控制、航天航空等領(lǐng)域。FPGA作為應(yīng)用中的基礎(chǔ)或核心模塊,密切監(jiān)測其片上以及周圍的物理環(huán)境。Xilinx Virtex-5 FPGA系列器件自帶系統(tǒng)監(jiān)測器模塊。設(shè)計人員可利用該監(jiān)測器模塊設(shè)計能方便監(jiān)測其片上溫度和供電電壓的監(jiān)測系統(tǒng);另外,外部傳感器與其外部模擬輸入通道互聯(lián),該監(jiān)測系統(tǒng)能夠監(jiān)測多達17個外部物理參數(shù)。
在數(shù)字多普勒接收機中,利用Xilinx Virtex-5系列XC5VSX50T器件內(nèi)置的系統(tǒng)監(jiān)測器(System Monitor)模塊設(shè)計一個系統(tǒng)監(jiān)測器,用于監(jiān)測板上器件工作時的溫度和供電電壓。Virtex-5 FPGA器件中的系統(tǒng)監(jiān)測器模塊提供報警、自動定序和數(shù)據(jù)平均等常規(guī)功能,因此,根據(jù)實際需要就可輕松設(shè)計滿足要求的系統(tǒng)監(jiān)測器。
圖1 Virtex-5系統(tǒng)監(jiān)測器模塊結(jié)構(gòu)圖
圖1給出Virtex-5系統(tǒng)監(jiān)測器模塊[1]的結(jié)構(gòu)。它主要由A/D轉(zhuǎn)換器、片上傳感器、寄存器文件接口、通信端口等組成[2]。
圖1中,10位,200 kS/s的A/D轉(zhuǎn)換器是該系統(tǒng)監(jiān)測器模塊的核心,其模擬輸入范圍為0~1 V,10位分辨率下,該A/D轉(zhuǎn)換器能夠處理精度約為1 mV的輸入電壓。系統(tǒng)監(jiān)測器模塊內(nèi)置溫度傳感器和供電傳感器,用于監(jiān)測器件溫度和電壓。溫度傳感器產(chǎn)生與器件溫度成比例的電壓輸出,供應(yīng)傳感器獲得系統(tǒng)監(jiān)測器的電源信息,它們通過模擬多路復(fù)用器與A/D轉(zhuǎn)換器相連。A/D轉(zhuǎn)換器將這些傳感器上的測量值轉(zhuǎn)換為數(shù)字量,然后把轉(zhuǎn)換后的測量結(jié)果寫入對應(yīng)的狀態(tài)寄存器。 此外,VP,VN,VAUXP[15:0],VAUXN[15:0]17 對外部模擬輸入通道,經(jīng)多路復(fù)用器接入,輸入測量值經(jīng)A/D轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字量后,轉(zhuǎn)換結(jié)果寫入到狀態(tài)寄存器。這17個外部模擬通道外接相應(yīng)傳感器后,可用于監(jiān)測片外的物理參數(shù),如板上其他器件的溫度。
該系統(tǒng)監(jiān)測器模塊共有128個16位的寄存器 (00h~7Fh),前 64 個為狀態(tài)寄存器(00h~3Fh),后 64個為控制寄存器(40h~7Fh)。狀態(tài)寄存器存儲片上傳感器和外部模擬輸入通道所監(jiān)測的物理參數(shù)經(jīng)A/D轉(zhuǎn)換器轉(zhuǎn)換的數(shù)字量,狀態(tài)寄存器只能讀操作,不能初始化。狀態(tài)寄存器還能存儲器件最近一次上電或系統(tǒng)監(jiān)測器模塊最近一次復(fù)位后片上傳感器所監(jiān)測物理參數(shù)的最大值或最小值。A/D轉(zhuǎn)換器轉(zhuǎn)換后的10位數(shù)字量存放在寄存器的最高10位。而控制寄存器用于設(shè)置系統(tǒng)監(jiān)測器的操作模式、操作功能以及所監(jiān)測參數(shù)的閾值。控制寄存器通過通信端口讀寫操作,控制寄存器主要分為配置寄存器,測試寄存器,順序寄存器和警告寄存器。
系統(tǒng)監(jiān)測器模塊的通信端口由動態(tài)再配置端口(DRP)、JTAG TAP端口以及狀態(tài)和控制端口組成。通過FPGA的架構(gòu)接口,即DRP訪問系統(tǒng)監(jiān)測器模塊的狀態(tài)寄存器和控制寄存器,而且可在任何時刻動態(tài)配置和讀取相應(yīng)寄存器。另外,Virtex-5系統(tǒng)監(jiān)測器模塊還具有另一個功能,即通過JTAG TAP訪問系統(tǒng)監(jiān)測器模塊所有功能。系統(tǒng)監(jiān)測器模塊允許通過JTAG TAP控制器和DRP雙重訪問,并提供相應(yīng)的仲裁方案管理可能出現(xiàn)的競爭現(xiàn)象。狀態(tài)端口指示A/D轉(zhuǎn)換器的工作狀態(tài)和報警輸出,如BUSY信號為高電平時,A/D轉(zhuǎn)換器進行數(shù)據(jù)采集轉(zhuǎn)換;ALARM[2],ALARM[1]和 ALARM[0]分別對應(yīng)VCCAUX,VCCINT和溫度報警輸出。控制端口為相關(guān)操作模式提供控制信號。
系統(tǒng)監(jiān)測器模塊的核心A/D轉(zhuǎn)換器可工作在連續(xù)采樣或事件驅(qū)動的時序模式下[3]。連續(xù)采樣模式指A/D轉(zhuǎn)換器在當前轉(zhuǎn)換周期結(jié)束時自動開始新的轉(zhuǎn)換;事件驅(qū)動模式指在當前轉(zhuǎn)換周期結(jié)束后,用戶必須通過相關(guān)的控制端口提供的控制信號初始化下一個轉(zhuǎn)換操作。通過設(shè)置配置寄存器0(40h)設(shè)定A/D轉(zhuǎn)換器的工作模式。
系統(tǒng)監(jiān)測器的模擬輸入為單端信號或差分信號。A/D轉(zhuǎn)換器專用輸入VP和VN以及輔助模擬輸入VAUXP[15:0]和VAUXN[15:0]都由單端源或差分源驅(qū)動。由于輔助模擬輸入帶寬較低,因此必須在差分模式下,差分源才能驅(qū)動模擬輸入。設(shè)定配置寄存器0(40h)可選擇模擬輸入模式。在嘈雜的數(shù)字環(huán)境中,A/D轉(zhuǎn)換器采用差分采樣的模擬輸入能夠減少共模噪聲信號的影響,進而改善A/D轉(zhuǎn)換器性能[4]。
系統(tǒng)監(jiān)測器模塊包含通道定序器,測量平均、最大值和最小值,內(nèi)部傳感器自動報警以及傳感器和A/D轉(zhuǎn)換器校準等功能。根據(jù)設(shè)計應(yīng)用的要求設(shè)置相應(yīng)的寄存器,選取所需的系統(tǒng)監(jiān)測器模塊功能。
系統(tǒng)監(jiān)測器模塊通過模擬多路復(fù)用器將片上或外部的監(jiān)測對象信息輸入到A/D轉(zhuǎn)換器,A/D轉(zhuǎn)換器再將測量值轉(zhuǎn)換為數(shù)字量,并輸入到相應(yīng)的寄存器。同時,與相應(yīng)最大最小值狀態(tài)寄存器的值相比較,該測量值若大于最大值或小于最小值,則更新最大最小值狀態(tài)寄存器的值。當最大最小值狀態(tài)寄存器的值大于相應(yīng)控制寄存器所設(shè)置的閾值時,觸發(fā)其對應(yīng)警告輸出。另外,當片上的溫度大于出廠設(shè)定的125℃時,則產(chǎn)生過熱警告。
系統(tǒng)監(jiān)測器模塊的A/D轉(zhuǎn)換器需要一個5 MHz范圍內(nèi)的時鐘源,該時鐘源可由內(nèi)部時鐘或外部時鐘提供。外部時鐘提供時鐘源是通過時鐘控制端口DCLK接入。由于內(nèi)部時鐘可分頻,因此,8~200 MHz范圍內(nèi)的時鐘都可作為時鐘源。當未檢測到外部時鐘源時,系統(tǒng)監(jiān)測器模塊為DCLK提供一個50 MHz的內(nèi)部時鐘晶振,用作時鐘源。
該系統(tǒng)監(jiān)測器用于監(jiān)測片上溫度和VCCAUX。片上溫度的上限值為85℃,警告復(fù)位觸發(fā)溫度是60℃;VCCAUX的閾值范圍是2.375~2.625 V。圖2為該系統(tǒng)監(jiān)測器設(shè)計原理圖。
圖2 系統(tǒng)監(jiān)測器設(shè)計原理圖
該設(shè)計采用一個20 MHz的外部時鐘作為系統(tǒng)監(jiān)測器的時鐘源。 CHANNEL[4:0]總線連至 DADDR[4:0],DADDR[6:5]連至邏輯0;DEN連至EOC輸出;DRP寫使能信號DWE和系統(tǒng)監(jiān)測器復(fù)位信號RESET連至邏輯0。BUSY信號用于指示A/D轉(zhuǎn)換器狀態(tài),監(jiān)測A/D轉(zhuǎn)換器轉(zhuǎn)換率。ALM[2]和ALM[0]信號用于監(jiān)測片上溫度和VCCAUX的狀態(tài)。當片上溫度或VCCAUX超出設(shè)定閾值時,與其對應(yīng)的tem_alarm和vccaux_alarm將產(chǎn)生高電平警告。溫度或VCCAUX的測量值可在輸出result[9:0]上檢測。
該設(shè)計中將通道CHANNEL[4:0]連接到DRP的地址端口DADDR[4:0],作為DRP的地址輸入。EOC連接到 DRP的使能輸入端口DEN。當EOC變?yōu)楦唠娖綍r,DEN有效,鎖定DADDR地址,即為當前通道的地址,將當前監(jiān)測的測量值輸出到DO總線。該設(shè)計中的系統(tǒng)監(jiān)測器的工作狀態(tài)機如圖3所示,各工作狀態(tài)按配置順序自動切換。
圖3 系統(tǒng)監(jiān)測器的工作狀態(tài)機
根據(jù)設(shè)計要求,計算系統(tǒng)監(jiān)測器的控制寄存器的參數(shù)值,對其控制寄存器進行初始化。具體參數(shù)設(shè)置和描述見表1。
表1 系統(tǒng)監(jiān)測器的控制寄存器初始化值
該設(shè)計選用Virtex-5系列中的XC5VSX50T器件,開發(fā)平臺為Xilinx ISE10.1i[5]。在ISE中可用System Monitor模塊進行設(shè)計,也可采用基于System Monitor CORE Generator進行圖形化參數(shù)設(shè)計。這里采用前一種方法。根據(jù)設(shè)計要求,用Verilog HDL以及ISE提供的系統(tǒng)監(jiān)測器模塊編寫描述設(shè)計行為的硬件描述語言代碼[6],并按上述初始值初始化對應(yīng)的控制寄存器。
根據(jù)系統(tǒng)監(jiān)測器提供的激勵文件格式,為設(shè)計編寫模擬激勵文件,然后在ModelSim平臺中對該設(shè)計進行仿真,其仿真結(jié)果如圖4所示。
圖4 設(shè)計仿真結(jié)果
圖4中,channel顯示通道按設(shè)定的順序進行監(jiān)測。第1個轉(zhuǎn)換是校準通道08,占31.2 μs;第2個轉(zhuǎn)換是溫度傳感器通道00,占 10.4 μs;第 3 個轉(zhuǎn)換是 VCCAUX傳感器通道 02,占 10.4 μs。在每次轉(zhuǎn)換結(jié)束時eoc輸出一個時鐘周期的高電平,該高電平使DRP的使能端口有效,此時鎖定地址,將對應(yīng)狀態(tài)寄存器值輸出到DO總線,最高10位為A/D轉(zhuǎn)換器轉(zhuǎn)化數(shù)字量,輸出到result上。當通道處在校準通道08時,DO總線對應(yīng)輸出值是前一通道對應(yīng)寄存器的值,在該設(shè)計中為VCCAUX傳感器通道02對應(yīng)的控制寄存器的值。當檢測到對應(yīng)監(jiān)測對象的測量值超出設(shè)定的閾值,tem_alarm或vccaux_alarm輸出為高電平警告。如圖4中Cursor5光標指示的00通道,此時測量值為2B4h,大于初始化的警告復(fù)位觸發(fā)溫度 (60℃)對應(yīng)的值2A4h,所以此時tem_alarm為高電平警告輸出。
通過JTAG TAP訪問系統(tǒng)監(jiān)測器的所有功能,實現(xiàn)模擬測試和訪問。ChipScope分析器可訪問系統(tǒng)監(jiān)測器,而且這種訪問功能還能集成到其他JTAG測試和編程環(huán)境中。圖5為器件上電在未下載任何設(shè)計前監(jiān)測到的溫度和供應(yīng)電壓的數(shù)據(jù)以及下載DDR2存儲器接口設(shè)計并運行后,不同時段監(jiān)測到的溫度和供應(yīng)電壓的數(shù)據(jù)。圖5(a)中未下載任何設(shè)計之前,器件溫度和供應(yīng)電壓都比較穩(wěn)定。圖5(b)中在運行DDR2存儲器接口后,器件功耗增加,溫度不斷升高且供應(yīng)變壓隨著溫度的升高波動越來越大;對器件散熱處理,觀測到溫度降低后,電壓波動變??;取消散熱處理后,溫度升高,電壓波動變大。監(jiān)測器件的溫度和供應(yīng)電壓等有重要意義。
在應(yīng)用設(shè)計實現(xiàn)之后,將生成的位流文件載入器件中,配置器件。然后,通過ChipScope觀測系統(tǒng)監(jiān)測器的內(nèi)部信號的值。圖6顯示器件在下載DDR2存儲控制器接口設(shè)計并運行后,ChipScope中采集到的溫度和VCCAUX數(shù)值。首先設(shè)置溫度警告有效觸發(fā),即溫度警告為高電平時,開始采集數(shù)據(jù),圖6(a)采集到溫度傳感通道監(jiān)測值為2D9,大于警告溫度上限2D7;然后設(shè)置溫度警告為低電平觸發(fā),即復(fù)位警告溫度有效后開始采集數(shù)據(jù),對器件降溫,圖6(b)采集到溫度傳感通道監(jiān)測到值為2A9,小于警告溫度上限2D7。而供應(yīng)電壓在監(jiān)測范圍內(nèi),故無警告輸出,vauxcc_alarm恒為低電平。
圖5 XC5VSX50T器件的溫度和供應(yīng)電壓監(jiān)測
圖6 實例設(shè)計的內(nèi)部信號監(jiān)測
FPGA作為應(yīng)用設(shè)計的基礎(chǔ)或核心模塊,監(jiān)測與其相關(guān)的物理參數(shù)非常重要,如通過監(jiān)測片上溫度,確保FPGA工作在器件允許的溫度范圍內(nèi),避免器件因過熱而損壞[7]。在數(shù)字多普勒接收機中設(shè)計系統(tǒng)監(jiān)測器,用于監(jiān)測接收機工作時FPGA器件(XC5VSX50T)的溫度和供應(yīng)電壓,使其工作在允許的溫度和供應(yīng)電壓范圍。另外,通過外部傳感器,系統(tǒng)監(jiān)測還可用于監(jiān)測17個外部的物理參數(shù)。Virtex-5 FPGA系列的器件集成了系統(tǒng)監(jiān)測器模塊,為該系列器件在實際應(yīng)用中實現(xiàn)內(nèi)外部物理對象的監(jiān)測提供一種簡單而高效的解決方案。
[1]Xilinx公司.Virtex-5 FPGA system monitor[DB/OL].2009.http://www.xilinx.com/support/documentation/user_guides/ug192.pdf.
[2]Xilinx 公司.Virtex-5 FPGA user guide[DB/OL].2009.http://www.xilinx.com/support/documentation/user_guides/ug190.pdf.
[3]Anthony Collins.利用Virtex-5系統(tǒng)監(jiān)控器加強系統(tǒng)管理和診斷[J].半導(dǎo)體器件應(yīng)用,2008(12):111-112.
[4]田 耘.無線通信FPGA設(shè)計[M].北京:電子工業(yè)出版社,2008.
[5]孫 航,胡靈博,于聯(lián)鋒.Xilinx可編程邏輯器件應(yīng)用與系統(tǒng)設(shè)計[M].北京:電子工業(yè)出版社,2008.
[6]Samir PalnitKar.Verilog HDL數(shù)字設(shè)計與綜合[M].北京:電子工業(yè)出版社,2004.
[7]Clive“Max”Maxfield.FPGA設(shè)計指南[M].北京:人民郵電出版社,2007.