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