?

28 nm Polarfire FPGA單粒子瞬態脈沖寬度檢測技術研究

2023-03-11 10:26楊華錦郭曉強湯曉斌陳飛達張鳳祁
現代應用物理 2023年4期
關鍵詞:延時時鐘寬度

楊華錦,陳 偉,郭曉強,湯曉斌?,陳飛達,張鳳祁,王 坦

(1. 南京航空航天大學 材料科學與技術學院,南京211106;2. 強脈沖輻射環境模擬與效應全國重點實驗室,西安710024)

當空間環境中的高能輻射粒子(質子、α粒子、重離子等)入射集成電路后,可能誘發單粒子效應(single event effect,SEE)導致電路功能發生錯誤[1],影響集成電路系統的工作穩定性。

早期SEE關注最多的是單粒子翻轉(single event upset,SEU)效應,近年來隨著芯片工藝制程和集成電路工作頻率的大幅提升,單粒子瞬態(single event transient,SET)效應導致的軟錯誤在引發錯誤總數的占比逐漸上升[2-3]。有研究表明,當芯片的特征工藝處于28 nm時,SET導致的軟錯誤將有可能占據主導地位[4]。因此有效捕獲SET效應并明確其特征參數對分析SET傳播規律等有著重要意義。

最初檢測SET效應是通過在片外搭建測試系統,利用高精度示波器直接測量SET脈沖[5-6]。用這種方法可以得到SET脈沖波形等基本參數,但是SET脈沖在路徑傳輸中易發生失真[7];為此提出在片內設計檢測系統對SET效應進行分析研究,而SET脈沖寬度作為SET的重要參數[8-9],與SET在電路中向下傳播被時序電路捕獲造成電路故障密切相關[10-12]。故可利用時間-數字轉換電路(time to digital converter,TDC)進行SET脈沖寬度的分析,包含可變延時脈沖寬度檢測電路[13-17]和抽頭延時脈沖寬度檢測電路[18-19]。TDC電路可利用FPGA的可重復編程特性,在FPGA內部進行生成、調試及功能驗證。

伴隨著FPGA在空間中的廣泛應用,獲取FPGA中的SET脈沖寬度及其分布變得越來越重要。28 nm Polarfire FPGA是Microsemi第五代非易失性FPGA[20]。相比 SRAM型FPGA,Polarfire FPGA對SEU具有一定的免疫能力[21]。不同FPGA內部的布局設計存在很大的差異,同時FPGA內部的布線資源調用也有所不同。若忽略TDC電路布局設計而額外引入的布線資源延時,會對TDC電路的檢測精度、檢測閾值和分辨率等指標產生很大的影響。

本文依據Polarfire FPGA內部資源布局特點對上述兩種SET脈沖寬度檢測電路進行結構設計。以故障注入的方式,從時間分辨率、檢測精度、寬度測量閾值、死時間[22]以及資源占用這5個TDC電路功能指標出發,研究兩種SET脈沖寬度檢測電路的差異,并分析影響SET脈沖寬度檢測電路的因素,最終明確兩種SET脈沖寬度檢測電路在Polarfire FPGA中的適用條件。

1 電路設計

1.1 可變延時脈沖寬度檢測電路設計

可變延時脈沖寬度檢測電路如圖1所示,包括3個基本組件:(1)延時模塊tdelay,用來控制保護門兩個輸入端口之間的延時差;(2)保護門(guard gate,GG)[14],有兩個輸入、一個輸出,當兩個輸入值同時為1(0)時,輸出為1(0),兩個輸入不同時,輸出保持上一時刻的狀態不變;(3)異步鎖存器,捕獲并輸出保護門狀態,利用異步復位信號對鎖存器進行清零。

圖1 可變延時脈沖寬度檢測電路

當某一個SET脈沖輸入電路時,SET信號遍歷所有的檢測模塊。在可變延時脈沖寬度檢測電路輸出時:若SET脈沖寬度小于(N+1)·tdelay(N為觸發器狀態改變個數,tdelay為單元延時),脈沖信號不能通過保護門,鎖存器輸出為低電平;當SET脈沖寬度大于N·tdelay,鎖存器輸出狀態發生改變,判定該SET脈沖寬度Wpulse大于N·tdelay,則有

tdelay·N≤Wpulse≤tdelay·(N+1)

(1)

可變延時脈沖寬度檢測電路的檢測精度即為tdelay。在實際的電路布局設計中,因SET脈沖輸入的兩條路徑上都同時包含有布線延時,FPGA內部布局特點對可變延時脈沖寬度檢測電路的影響不大。

為實現可變延時脈沖寬度檢測電路的連續檢測,采用CLR時鐘信號進行控制,同時為避免檢測電路出現大的誤差,對可變延時脈沖寬度檢測電路的復位時鐘信號和采樣時鐘信號的頻率以及占空比進行設計:(1)采樣時鐘fs,保證采樣時對鎖存器捕獲輸出的輸出信號完成至少一次采樣;(2)復位時鐘fCLR,包含工作時間T0和復位時間T1。

因可變延時脈沖寬度檢測電路的工作狀態受復位時鐘調節,設復位時鐘為自變量,采樣時鐘和復位時鐘在設計時存在關聯。

SET最大脈沖寬度Wmax與電路對SET的容忍閾值相關,在設計可變延時脈沖寬度檢測電路復位時鐘信號時需保證電路能檢測到Wmax。同時基于對SET脈沖寬度的連續檢測,設電路在1 s內完成M次檢測任務,此時復位時鐘周期應滿足:

(2)

M與實際的采樣時鐘fs相關。

電路僅需要一個很短的時間即可完成復位,故在復位時鐘之內還需要調節時鐘占空比λ。根據Polarfire FPGA數據手冊可知,時鐘的建立保持時間最大為500 ps,故T1應大于500 ps。

圖2為可變延時脈沖寬度檢測電路復位時鐘設計時序圖。由圖2可見,pulse1,pulse2正處于復位電路高低電平轉折位置,pulse4處于復位時間內。此時的SET脈沖因為清零信號的出現,而不被檢測電路所捕獲分析。為避免SET因電路設計出現統計偏差,此時對該時間段內可能出現的SET脈沖數η進行統計,表示為

(3)

而理想采樣時鐘fs為匹配復位時鐘,其占空比與復位時鐘相同。但是其相位要相對于復位時鐘滯后。

圖2 可變延時脈沖寬度檢測電路復位時鐘設計時序圖

1.2 抽頭延時脈沖寬度檢測電路設計

抽頭延時脈沖寬度檢測電路[23]內部結構為由級聯的延時單元和觸發器。電路將每一個延時單元的狀態通過抽頭的方式引出,利用延時單元來量化SET脈沖寬度,其結構與時序如圖3所示。

圖3 抽頭延時脈沖寬度檢測電路的結構與時序

電路原理以檢測正脈沖為例,所有觸發器初始輸出狀態為低電平,SET信號由datain進入抽頭電路,在延時單元鏈內進行傳輸,當采樣時鐘Sample_clock的上升沿到來時刻t,每個D觸發器都會捕獲與之相連的延時單元狀態,通過計算SET在t時刻經過的延時單元個數,即可確定此時SET在電路中的位置及其脈沖寬度。

單個SET脈沖寬度Wpulse可表示為

Wpulse=N·tdelay(±0.5tdelay)

(4)

在抽頭延時脈沖寬度檢測電路中,實際的分辨率為t1+t2+tdelay(t1)為相鄰延時單元延時;t2為延時單元與觸發器之間的布線延時。

因在電路中抽頭延時脈沖寬度檢測電路中每一級延時單元與延時單元、延時單元與觸發器相互之間的布線延時保持一致,近似認為一個延時單元的延時就是三個延時的總和tdelay。抽頭延時脈沖寬度檢測電路的檢測精度由電路所選用的單級延時單元延時所決定,為±50%tdelay。延時單元的單級延時的大小和采樣時鐘的頻率共同決定了抽頭延時脈沖寬度檢測電路的級數。

在進行連續SET脈沖寬度檢測時,為避免SET脈沖發生遺漏或誤測,在確定電路級數n時要滿足式(3),保證SET脈沖在電路中的總延時大于系統采樣頻率,n可表示為

(5)

組成TDC電路時,需保證相鄰延時單元的邏輯狀態能進行有效傳輸。但在Polarfire FPGA中,可編程邏輯資源并不總是滿足抽頭延時脈沖寬度檢測電路中相鄰延時單元的布線延時一致的條件,圖4為Polarfire FPGA中LC布局特點。Polarfire FPGA內部布局設計中,由12個可編程邏輯資源組成的logic_cluster(LC),其布線延時可保持一致,在相鄰的兩個LC之間存在兩個額外的短布線延時。

圖4 Polarfire FPGA中LC布局特點

TDC電路在Polarfire FPGA中進行布局設計時,會因為short_route_delay的存在導致Δdelay出現不均勻的情況。以圖3中抽頭延時脈沖寬度檢測電路為例,其單級延時基本組成t1,t2,tdelay一般保持一致,但是在橫向相鄰LC交界處進行布局布線時,抽頭延時脈沖寬度檢測電路中的t1會因布線延時的加入出現變大的情況,影響TDC電路整體的分辨率與檢測精度。因而需要對實際的測試電路進行結構上的調整,以滿足TDC電路對SET脈沖寬度的檢測需求。

設計了一種抽頭延時脈沖寬度檢測電路的新型電路結構,如圖5所示。利用FPGA內部豐富的邏輯資源,以一條SET信號傳輸鏈和多組SET脈沖信號檢測組合的方式,實現對PolarfireFPGA布局設計的適應調整。將圖4中一個LC作為一個子電路(12級)容器。子電路內部延時單元與觸發器相互之間可以忽略布局布線帶來的延時差異。構建N組串行抽頭延時子電路作為整個檢測電路的檢測模塊,子電路內部級數可以根據電路需求進行調整。同時為避免芯片自身因素導致延時單元出現延時不均的情況,將每個子電路的延時模塊配置為環形電路在實際使用前進行校準。此時,一個子電路容器中包含有11級檢測模塊和一個2輸入數據選擇器,多組子電路通過SET脈沖光信號傳輸模塊抽頭消除了LC之間的布線延時。

圖5 抽頭延時脈沖寬度檢測電路設計

SET脈沖信號傳輸設計:用一條長邏輯鏈進行SET脈沖信號傳輸,此邏輯鏈中的信號傳輸單元須保證其不會對SET脈沖寬度產生較大的影響,且不會屏蔽SET脈沖信號。利用identify工具對結構調整后的TDC電路進行分析,在特定SET檢測位置進行抽頭,將SET脈沖信號注入到每一個子電路中,且每一個子電路中的前后時間銜接完整。

2 檢測電路功能影響因素分析

2.1 SET脈沖寬度檢測電路單級延時

在Polarfire FPGA中的邏輯資源有兩種結構logic_element(LE)和interface_logic(IL):LE內部查找表為4LUT with carry chain,其可以實現任意四輸入邏輯運算或算法功能;IL內部為常規4LUT,用以鏈接特殊IP核與用戶邏輯。因二者功能上的差異性,對同一邏輯功能會表達出不同的延時狀態,進而影響TDC電路的功能。

為研究Polarfire FPGA中邏輯單元基本延時對TDC電路精度和分辨率的影響,利用周期性脈沖輸入數據量大的特點,驗證不同查找表結構、不同邏輯狀態下的邏輯延時。SET脈沖寬度檢測電路選用易于集成的抽頭延時脈沖寬度檢測電路對查找表基本延遲進行分析。

基于FPGA內部內置晶振提供時鐘,利用組合邏輯模塊實現信號延時,獲得兩個在路徑上具有延時差異的脈沖信號輸出,并進行邏輯運算,得到預期的周期性脈沖,脈沖生成原理與檢測結果。圖6為周期性脈沖信號生成電路及電路時序圖。

(a)Circuit

(b)Timing

通過在抽頭延時脈沖寬度檢測電路中換用不同的邏輯門(與門和或門等)來分析邏輯基本延時。結果表明,不同查找表單級延時并不會隨著邏輯門的變化發生改變。其最終結果如表1所列,4LUT with carry chain的基本延時要小于4LUT。

表1 不同查找表結構之間的延時信息

綜合表1結果,選取單級延時較小的4LUT with carry chain作為檢測電路的延時模塊。通過表1中的延時信息:為保證兩種SET脈沖寬度檢測電路技術指標對比的有效性,定義兩個SET脈沖寬度檢測電路的理論SET脈沖寬度檢測范圍為86~1 032 ps。

若采樣時鐘選擇125 MHz,則抽頭延時脈沖寬度檢測電路的延時級數設置在115級,可變延時檢測電路檢測級數設置為12級,依據電路復位信號設計,復位時鐘采用100 MHz。

2.2 組合邏輯SET展寬因子

SET脈沖產生并向下傳播時,會出現脈沖展寬效應(propagation induced pulse broadening,PIPB),這會直接影響到抽頭延時脈沖寬度檢測電路的檢測結果。不同的LUT結構,其SET脈沖展寬效應[24]的表現也有所不同。為降低SET脈沖寬度測試的不確定度,開展組合邏輯的單元脈沖寬度展寬因子測試工作[25-26],驗證LE和IL各自的SET展寬因子。

SET脈沖產生是連續隨機離散事件,周期性脈沖無法代表SET脈沖事件進行分析,在驗證SET展寬因子時需用單脈沖故障注入的方式來進行,其脈沖生成電路可參考圖6(a)。

在SET脈沖寬度檢測電路中選用抽頭延時脈沖寬度檢測電路進行SET展寬因子分析。28 nm的芯片在輻射環境下產生的SET脈沖寬度約為百皮秒量級[27-29],故在注入脈沖時,每百皮秒選取一個脈沖值進行故障注入,Polarfire FPGA中SET脈沖傳播極限如圖7所示。為避免測量偏差,利用納秒級脈沖進行補充修正。通過統計分析SET脈沖在邏輯長鏈中的傳播極限[24],得出:4LUT的SET脈沖展寬因子σ1約為1.45 ps每級;4LUT with carry chainSET脈沖展寬因子σ2約為3.35 ps每級(±0.1 ps每級)。

圖7 Polarfire FPGA中SET脈沖傳播極限

基于二者延時情況(如表1所列)及脈沖展寬壓縮因子的差異,抽頭延時脈沖寬度檢測電路中的SET信號傳輸模塊選取4LUT。并且基于SET展寬因子,可對延時抽頭脈沖寬度檢測電路得到的每一個SET脈沖寬度檢測值進行初步的補償,得到偏差相對較小的Wture,表示為

(6)

其中,Mi為SET脈沖信號的在長邏輯鏈中的傳播級數,與SET在子電路中所處的位置有關。當SET脈沖寬度足夠寬時,會橫跨n個邏輯長鏈,此時n>1。

2.3 扇出負載特性

電路的扇出負載特性[30-31]會影響FPGA邏輯門的驅動能力,直接影響到可變延時檢測電路對SET脈沖的檢測。為此需調節可變延時脈沖寬度檢測電路的輸出級數,通過可變延時脈沖寬度檢測電路對SET脈沖寬度的檢測閾值,分析扇出負載特性與可變延時檢測電路的關系,如表2所列。

表2 扇出負載特性與可變延時檢測電路的關系

由表2可知,隨著扇出數目的增加,可變延時脈沖寬度檢測電路的檢測閾值不斷升高;當可變延時檢測電路滿足對1 ns寬度的SET脈沖檢測能力時(此時的輸出級數為12),對于344 ps以下的SET脈沖并無很好的檢測能力;且隨著扇出數目的變化,電路的檢測閾值呈正相關變化趨勢;當設置3或4級扇出時,可變延時脈沖寬度檢測電路可實現對窄脈沖(<344 ps)的測量,但此時的可變延時脈沖寬度檢測電路的上限會非常小,約為344 ps;在實際的電路布局時,可變延時脈沖寬度檢測電路資源占用會很小,優勢非常明顯。

3 脈沖注入結果分析

在實際的SET檢測電路功能指標的驗證上,同樣以單脈沖注入的方式,來分析檢測電路對SET脈沖寬度的檢測結果與功能指標。

兩種脈沖寬度檢測電路脈沖注入結果如圖8所示。

(a)Tap delay circuit test results

(b)Variable temporal pulse-width detection circuit test results

由圖8可見,可變延時脈沖寬度檢測電路與抽頭延時脈沖寬度檢測電路的分辨率基本保持一致,為86 ps。但可變延時脈沖寬度檢測電路無法很好地兼顧寬脈沖(>344 ps)與窄脈沖的測量。對窄脈沖而言,理論檢測范圍在86~1 000 ps的可變延時脈沖寬度檢測電路對脈沖寬度小于344 ps的脈沖檢測能力并不強,伴隨有明顯的偏差。

當兩個SET脈沖寬度檢測電路的檢測范圍處于86~1 000 ps時,可變延時脈沖寬度檢測電路的測量閾值要比抽頭延時脈沖寬度檢測電路更大,即對于小于344 ps的SET脈沖而言,可變延時脈沖寬度檢測電路并沒有很好的檢測能力。綜和扇出負載對可變延時脈沖寬度檢測電路的影響,因電路每一級檢測模塊均處于并行狀態,一個SET脈沖信號遍歷每一級檢測模塊,多個電路模塊同時作為一個脈沖信號的輸入負載,導致整個可變延時脈沖寬度檢測電路無法兼顧窄脈沖與寬脈沖的檢測。

對寬脈沖(>344 ps)檢測而言, SET脈沖展寬因子會影響到抽頭延時脈沖寬度檢測電路中捕獲的SET脈沖寬度Wpulse,導致實際輸出的SET脈沖寬度與在輻射環境條件下產生的SET脈沖寬度存在差異,且σi也會在一定程度上限制抽頭延時脈沖寬度檢測電路的長度以及采樣頻率?;赟ET展寬因子,可對檢測電路得到的每一個SET脈沖寬度檢測值進行補償,得到誤差值相對小的Wture。

表3為兩種脈沖寬度檢測電路功能指標對比。在進行資源占用情況對比時,為便于直觀,資源占用以1個logic_cluster為單位進行對比分析。由表3可知,可變延時脈沖寬度檢測電路檢測精度比抽頭延時脈沖寬度檢測電路低約43 ps,檢測閾值高約200 ps,且存在有1.4 ns的死時間。

表3 兩種脈沖寬度檢測電路功能指標對比

當兩個檢測電路的理論脈沖寬度檢測范圍為86~1 000 ps時,抽頭延時脈沖寬度檢測電路的邏輯資源占用約20個邏輯長鏈,而可變延時脈沖寬度檢測電路資源占用13個邏輯長鏈(不包括復位時鐘模塊)。但當兩種檢測電路擴大電路檢測范圍時,可變延時脈沖寬度檢測電路的資源占用增幅要比抽頭延時脈沖寬度檢測電路大。當可變延時脈沖寬度檢測電路的檢測上限上升至1 376 ps時,占用的LC數目將上升至32個,而抽頭延時脈沖寬度檢測電路的資源占用為22個。

4 結論

基于Polarfire FPGA布局特點對兩種SET脈沖寬度檢測電路進行設計,通過對比二者的技術指標得出,它們對SET脈沖檢測的適用范圍各有不同:對于脈沖寬度大于344 ps的SET脈沖,可選用抽頭延時脈沖寬度檢測電路進行檢測,此時的抽頭延時脈沖寬度檢測電路在檢測精度和測量閾值的優勢非常明顯,并且抽頭延時脈沖寬度檢測電路的輸出結果可利用SET展寬因子對SET脈沖寬度進行補償;但對于脈沖寬度小于344 ps的SET脈沖,可變延時脈沖寬度檢測電路對SET脈沖的檢測能力優于抽頭延時脈沖寬度檢測電路,此時可變延時脈沖寬度檢測電路的資源占用以及檢測閾值優勢都非常明顯。本文明確了在FPGA中集成SET脈沖寬度檢測電路所需要考慮的FPGA自身的設計特點,需基于不同的FPGA設計結構對不同的SET脈沖寬度檢測電路進行適應性結構調整。Polarfire FPGA中的SET脈沖寬度檢測電路設計思路,可為SET脈沖寬度檢測電路在其他系列FPGA中的實現提供參考。

猜你喜歡
延時時鐘寬度
別樣的“時鐘”
基于級聯步進延時的順序等效采樣方法及實現
古代的時鐘
有趣的時鐘
時鐘會開“花”
Two-dimensional Eulerian-Lagrangian Modeling of Shocks on an Electronic Package Embedded in a Projectile with Ultra-high Acceleration
紅細胞分布寬度與血栓的關系
孩子成長中,對寬度的追求更重要
桑塔納車發動機延時熄火
光控觸摸延時開關設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合