時序分析與CDC

以三選一題型確認建立時間與保持時間的餘裕計算、OCV、多週期路徑等靜態時序分析,以及使用同步器與非同步FIFO的跨時脈域設計。

練習10題從本領域隨機抽取10題 · 約5分鐘 練習這個領域以隨機順序出題,涵蓋這個領域的所有題目 弱項題目只重做最近答錯的題目

時序分析與CDC的重點

同步電路要正確運作,在正反器之間的所有路徑上,資料都必須滿足建立時間與保持時間到達。靜態時序分析(STA)依據以SDC給定的時脈與輸入輸出延遲等限制,計算各路徑的餘裕(slack),並將時脈偏移、抖動與製造變異納入考量,找出違規。

另一方面,非同步的時脈之間無法保證時序,也無法避免亞穩態。透過2級正反器的同步器、交握、使用格雷碼指標的非同步FIFO等方式安全傳遞訊號的跨時脈域(CDC)設計與驗證,也是邏輯設計的基礎。

時序分析與CDC的題目列表(50題)

  1. 在時脈週期為 2.0 ns 的同步電路中,發送端正反器的時脈→輸出延遲為 0.2 ns,組合電路的延遲為 1.4 ns,接收端正反器的建立時間為 0.1 ns。若時脈偏移為0,建立時間的餘裕是多少?
  2. 在正反器之間的路徑上,時脈→輸出延遲為 0.15 ns,組合電路的最大延遲為 2.2 ns,建立時間為 0.15 ns。忽略時脈偏移與時脈不確定性時,此路徑可運作的最大時脈頻率是多少?
  3. 關於STA報告中出現的WNS與TNS,下列說明何者正確?
  4. 有一條時脈週期 1.0 ns、時脈→輸出延遲 0.1 ns、組合電路延遲 0.85 ns、建立時間 0.08 ns 的路徑。當接收端正反器的時脈比發送端晚 0.05 ns 到達時,建立時間的餘裕是多少?
  5. 接收端正反器的時脈比發送端晚到達(正的時脈偏移)時,對建立時間與保持時間的影響,下列何者正確?
  6. 發送端的時脈→輸出延遲最小為 0.08 ns,組合電路的最小延遲為 0.02 ns,接收端的保持時間為 0.05 ns。當接收端的時脈比發送端晚 0.1 ns 到達時,保持時間的餘裕是多少?
  7. 在以同一時脈的上升邊緣進行送出與取入的一般路徑上,發現了保持時間違規(餘裕 −0.03 ns)。將時脈頻率降為一半時,關於此違規的敘述何者正確?
  8. 為了修正保持時間違規,在資料路徑中插入延遲用的緩衝器。此時最重要的確認事項是哪一項?
  9. 在時脈週期 1.25 ns(800 MHz)的路徑上,時脈→輸出延遲與組合電路延遲的總和為 1.05 ns,建立時間為 0.05 ns,建立時間用的時脈不確定性設定為 0.05 ns。建立時間的餘裕是多少?
  10. 在時脈不確定性的設定中,建立時間用的通常會納入週期抖動,保持時間用的則多半不納入。其理由何者正確?
  11. 在STA中,建立時間與保持時間分別主要在哪種角落(corner)條件下確認,下列組合何者正確?
  12. 作為OCV降額(derating),在建立時間分析中將發送端時脈路徑與資料路徑的延遲乘以1.1倍,接收端時脈路徑的延遲乘以0.9倍。當發送端時脈路徑為 1.0 ns、資料路徑(含時脈→輸出)為 1.5 ns、接收端時脈路徑為 1.0 ns(無共同部分)、週期為 3.0 ns、建立時間為 0.1 ns 時,建立時間的餘裕是多少?
  13. 在使用OCV降額的STA中,當發送端與接收端的時脈路徑在中途之前為共同路徑時,所進行的CRPR(共同路徑悲觀消除)的說明何者正確?
  14. 在以週期 2.0 ns 的時脈運作的電路中,有一條資料到達時間(時脈→輸出延遲與組合電路延遲的總和)為 3.3 ns、建立時間為 0.1 ns 的路徑。此路徑只需每2個週期取入一次,因此將建立時間的多週期路徑設為2。建立時間的餘裕是多少?
  15. 將建立時間的多週期路徑設為 N(N ≥ 2)時,保持時間通常也要將多週期路徑設為 N − 1。其理由何者正確?
  16. 適合設定偽路徑(set_false_path)的路徑是哪一條?
  17. 在週期 2.0 ns、工作週期50%的時脈下,有一條在上升邊緣送出、在下降邊緣取入的路徑。若建立時間為 0.1 ns、時脈偏移為0,時脈→輸出延遲與組合電路延遲的總和容許的最大值是多少?
  18. 在週期 2.0 ns 的時脈下,有一條從在時刻0的上升邊緣輸出資料的正反器,到在時刻 1.0 ns 開啟(變為透通)、在時刻 2.0 ns 關閉之鎖存器的路徑。當資料在時刻 1.4 ns 到達鎖存器時,此鎖存器借用的時間(時間借用)是多少?
  19. 在以時脈與致能訊號的2輸入AND閘停止時脈的電路中,STA的時脈閘控檢查所確認的內容何者正確?
  20. 在週期 2.0 ns 的時脈下,輸入端子設定了 set_input_delay 0.6 ns。若內部正反器的建立時間為 0.1 ns,並忽略時脈的延遲與時脈偏移,從輸入端子到正反器的晶片內部路徑容許的最大延遲是多少?
  21. set_output_delay 所指定的值代表什麼,下列何者正確?
  22. 在週期 2.5 ns(400 MHz)的時脈下,輸出端子設定了 set_output_delay 0.8 ns。驅動輸出端子之正反器的時脈→輸出延遲為 0.2 ns 時,從正反器到輸出端子的組合電路與繞線容許的最大延遲是多少(忽略時脈的延遲)?
  23. 在週期 1.0 ns 的時脈下,有一條由正反器A→B→C連接的路徑。A→B包含時脈→輸出延遲與建立時間需要 1.2 ns,B→C則 0.8 ns 即足夠。若要刻意利用時脈偏移使兩者的建立時間都滿足,B的時脈應如何調整(假設A與C的時脈同時到達)?
  24. 將時脈以除頻電路二除頻後用於其他電路時,在SDC中的處理方式何者正確?
  25. 在帶非同步重設的正反器中,以STA檢查重設解除是否太接近時脈邊緣的是哪一項?
  26. 在兩個時脈域之間的路徑中,需要同步器的是哪一種?
  27. 將2級正反器的同步器增加為3級時,因亞穩態造成之故障的平均間隔(MTBF)如何變化,下列何者正確?
  28. 提高同步器接收端的時脈頻率,MTBF就會縮短。其理由何者正確?
  29. 關於2級正反器同步器的第1級與第2級之間,下列注意事項何者正確?
  30. 不可將發送端時脈域中組合電路的輸出直接送入接收端同步器的理由,何者正確?
  31. 對4位元資料的各位元分別加上2級同步器,傳到另一個時脈域。當資料從 0111 變為 1000 時,可能發生的問題何者正確?
  32. 將多位元資料安全地傳到另一個時脈域的方法,何者正確?
  33. 將在 500 MHz 時脈域中只有1個週期(2 ns)為1的脈衝,以2級同步器傳到 100 MHz 時脈域。可能發生的問題何者正確?
  34. 為了以同步器將位準訊號確實從 400 MHz 時脈域傳到 100 MHz 時脈域,希望訊號寬度達到接收端時脈週期的1.5倍以上。以發送端的時脈計算,最少應為幾個週期的寬度?
  35. 在翻轉同步(每當脈衝到來時,在發送端產生反相的位準訊號並傳遞的方式)中,在接收端取回原本脈衝的方法何者正確?
  36. 以翻轉同步將脈衝從快速時脈域傳到慢速時脈域時,下列限制何者正確?
  37. 在使用req與ack的4相交握中,傳遞1筆資料時訊號的順序何者正確?
  38. 以交握進行時脈域間資料傳輸的缺點,何者正確?
  39. 在非同步FIFO中,將寫入指標與讀取指標轉換為格雷碼後,再同步化到對方時脈域的理由何者正確?
  40. 將4位元二進位 0110(十進位的6)轉換為格雷碼的結果是哪一個?
  41. 在深度16字組的非同步FIFO中,讓寫入指標與讀取指標比位址多1位元、成為5位元的理由,何者正確?
  42. 在使用5位元格雷碼指標、深度16字組的非同步FIFO中,寫入端判定滿(full)的條件何者正確?
  43. 非同步FIFO是將對方的指標同步化後使用,因此看到的指標值會舊2~3個週期。這個延遲對full/empty判定的影響,何者正確?
  44. 在寫入端 100 MHz、讀取端 80 MHz 的非同步FIFO中,寫入端以每個週期1字組的方式寫入100字組的突發,讀取端每個週期讀出1字組。突發之間有足夠的間隔。為了不溢位,所需的最小深度是多少(忽略同步化造成的延遲)?
  45. 寫入端以 200 MHz、每個週期1字組寫入120字組的突發。讀取端以 150 MHz 的時脈,每3個週期中只有2個週期各讀出1字組。為了不溢位,所需的最小深度是多少(忽略同步化造成的延遲)?
  46. 寫入端 250 MHz、讀取端 200 MHz,兩者都每個週期傳輸1字組。接收64字組突發的FIFO,在計算上所需的最小深度是多少(忽略同步化造成的延遲,小數無條件進位)?
  47. 從低態有效的外部重設,產生「非同步確立、同步解除」之內部重設的重設同步器,其構成何者正確?
  48. 將來自同一發送端時脈域的2條控制訊號,分別以不同的2級同步器接收,並在接收端做AND後使用。此設計的問題點何者正確?
  49. 即使已進行STA與RTL模擬,仍需要以CDC驗證工具確認的理由,何者正確?
  50. 對非同步FIFO中將格雷碼指標傳到對方時脈域的路徑,若因為是非同步就不加限制(偽路徑),可能產生問題的理由何者正確?

設計與產業的其他領域