理解FPGA 中的壓穩態(tài)
3
為消除異步信號傳送時(shí)壓穩態(tài)導致的失敗,電路設計人員通常在目的時(shí)鐘域中使用多個(gè)串聯(lián)寄存器( 同步寄存器鏈或者同步器),將信號重新同步到新時(shí)鐘域上。采用這些寄存器,在設計中的其他部分使用壓穩態(tài)信號之前,該信號能夠有更多的時(shí)間轉換到確定狀態(tài)。同步寄存器至寄存器通路上的時(shí)序余量是壓穩態(tài)信號穩定所需要的時(shí)間,被稱(chēng)為壓穩態(tài)穩定時(shí)間。
同步寄存器鏈或者同步器是滿(mǎn)足以下要求的寄存器序列:
■ 鏈上的寄存器都由相同的或者相位相關(guān)的時(shí)鐘進(jìn)行同步
■ 鏈上的第一個(gè)寄存器由不相關(guān)的時(shí)鐘域進(jìn)行驅動(dòng),即異步驅動(dòng)。
■ 每個(gè)寄存器只扇出連接一個(gè)寄存器,鏈上的最后一個(gè)寄存器除外。
同步寄存器鏈的長(cháng)度是滿(mǎn)足以上要求的同步時(shí)鐘域中的寄存器數量。圖3 是長(cháng)度為2 的同步鏈的例子,假設輸出信號被送入多個(gè)目的寄存器。
圖 3. 同步寄存器鏈實(shí)例
注意,異步輸入信號,或者在不相關(guān)時(shí)鐘域之間傳輸的信號,會(huì )在相對于采集寄存器時(shí)鐘沿的任意點(diǎn)進(jìn)行轉換。因此,設計人員無(wú)法預測數據轉換前的信號轉換順序或者目的時(shí)鐘邊沿數量。例如,如果在時(shí)鐘域之間傳送異步總線(xiàn)信號,并進(jìn)行同步,數據信號會(huì )在不同的時(shí)鐘沿進(jìn)行轉換。結果,會(huì )接收到不正確的總線(xiàn)數據。
設計人員必須適應這種電路工作方式,例如,雙時(shí)鐘 FIFO (DCFIFO) 邏輯存儲信號或者握手邏輯等。FIFO邏輯使用同步器在兩個(gè)時(shí)鐘域之間傳送控制信號,然后,數據被寫(xiě)入雙端口存儲器,或者讀出。Altera 為這一操作提供DCFIFO 宏功能,它包括各種級別的延時(shí),為控制信號提供亞穩態(tài)保護。如果異步信號被用作兩個(gè)時(shí)鐘域之間的部分握手邏輯,控制信號會(huì )指出數據什么時(shí)候才能在時(shí)鐘域之間進(jìn)行傳輸。在這種情況下,采用同步寄存器以確保亞穩態(tài)不會(huì )影響控制信號的接收,在任何亞穩態(tài)條件下,數據都有足夠的建立時(shí)間,在使用數據之前達到穩定。在設計比較好的系統中,每一信號在被使用之前都能達到穩定狀態(tài),設計可以正常工作。
計算亞穩態(tài)MTBF
亞穩態(tài)平均故障間隔時(shí)間MTBF 大致估算了亞穩態(tài)導致出現兩次設計失敗之間的平均時(shí)間。較大的MTBF( 例如亞穩態(tài)失敗間隔數百甚至數千年) 表明非??煽康脑O計。所需要的MTBF 取決于系統應用。例如,急救醫療設備需要的MTBF 要比消費類(lèi)視頻顯示設備長(cháng)得多。增大亞穩態(tài)MTBF 能夠減小信號傳輸導致設備出現亞穩態(tài)問(wèn)題的概率。
可以使用設計信息以及器件特征參數來(lái)計算設計中某些信號傳輸或者所有信息傳輸的亞穩態(tài)MTBF。采用下面的公式和參數來(lái)計算同步器鏈的MTBF:
C1 和C2 常數取決于器件工藝和工作條件。
4
在fCLK 和fDATA 參數取決于設計規范: fCLK 是接收異步信號時(shí)鐘域的時(shí)鐘頻率, fDATA 是異步輸入數據信號的觸發(fā)頻率。較快的時(shí)鐘頻率以及觸發(fā)數據能夠降低( 或者劣化) MTBF。
tMET 參數是亞穩態(tài)信號達到確切狀態(tài)的亞穩態(tài)建立時(shí)間,即,超出寄存器tCO 的時(shí)序余量。同步鏈的 tMET 是鏈上每一寄存器輸出時(shí)序余量之和。
設計中每一同步器鏈的MTBF 確定了總的設計MTBF。同步器的失效率是1/MTBF,將每一同步器鏈的失敗概率相加得到整個(gè)設計的失敗概率,如下所示:
設計亞穩態(tài)MTBF 為1/failure_ratedesign。
設計人員使用Altera® FPGA 時(shí),不需要手動(dòng)完成這些計算,這是因為Altera Quartus® II 軟件將亞穩態(tài)參數集成到了工具中。
確定亞穩態(tài)常數
FPGA供應商可以通過(guò)FPGA的亞穩態(tài)特性來(lái)確定MTBF方程中的常數。確定特性的難點(diǎn)在于典型FPGA設計的MTBF 一般在幾年以上,因此,使用真實(shí)設計,在實(shí)際工作條件下測量亞穩態(tài)事件之間的時(shí)間間隔是不可行的。為確定器件亞穩態(tài)常數, Altera 使用了測試電路,設計的這一電路具有較短的可測量MTBF,如圖4 所示。
圖 4. 亞穩態(tài)特性參數測試電路結構
在這一設計中, clka 和clkb 是兩路不相關(guān)的時(shí)鐘信號。同步器輸入數據在每一時(shí)鐘周期進(jìn)行觸發(fā)( 較大的fDATA)。同步器長(cháng)度為1,這是因為一個(gè)同步寄存器連接了兩個(gè)目的寄存器。目的寄存器在一個(gè)時(shí)鐘周期后以及一個(gè)半時(shí)鐘周期后采集同步器輸出。如果信號在下一時(shí)鐘沿到達之前進(jìn)入亞穩態(tài),電路探測到采樣信號出現了不同,輸出一個(gè)錯誤信號。這一電路能夠探測到半時(shí)鐘周期內出現的大部分亞穩態(tài)事件。
評論