時序約束和綜合+跨時鐘產生的問題+spyglass的使用+SOC設計問題

大浪淘沙、發表於2024-10-19

時序約束和綜合

時脈頻率

# 時鐘單位為ns,2ns對應500M時脈頻率
create_clock -period 2 [get ports clk]

skew

# 設定時鐘的skew,即上升沿之間的誤差,當前設定為0.3ns
set_clock_uncertainty -setup 0.3 [get_clocks CLK]

image

transition

# 設定時鐘上升沿的轉化時間
set_clock_transition -max 0.15 [get_clocks CLK]

image

latency

# 設定晶振源到時鐘輸入端的延時
set_clock_latency -max 0.7 [get clocks CLK]

image

input delay

# 0.6的值為電路M的最大時間,從FF1的Q端到到下一個設計的A埠需要的時間
以Ck的上升沿作為計算的起點。
M和N為兩塊電路,總延時不變的情況下,M給定約束,則綜合工具儘可能減少N部分的時間。
set_input_delay -max 0.6 -clock Clk [getports A]

image

output delay

# 給定了外部電路FF4中的T的延時總為0.8。
以CLk作為時鐘參考,上升沿開始計算,訊號從S到T的的總時間一定,T已知,那麼S最大值可由綜合工具得出

set_output_delay -max 0.8 -clock Clk [getports B]

image

input transition

輸入的充電時間,從低電平到高電平需要的時間
set_input_transition 0.12 [get_ports A]

image

set load

# 設定電容負載最大值,當前設定為0.03
set load [expr{30.0/1000}] [get ports B]

image

輸出sdc

# 輸出sdc
write_sdc xxxx.sdc(新思約束檔案資訊)
# 輸出網表和sdc檔案
write -f ddc -hier -output xxxx.ddc(網表和sdc檔案資訊)
# 輸出網表
write -f verilog -hier -output xxxx.gv(網表檔案,額外的sdf標準延時檔案用於反標到gv檔案上,做後模擬)

design_version內的約束和輸出設定

如設定線載模型
image
如輸出報告
image

綜合的等級

編譯劃分為三個部分,

  1. 架構級別的調整
  2. 級別的最佳化,即使用什麼型別的邏輯單元完成功能,與門還是異或門?
  3. 確定好使用的邏輯單元后,使用什麼樣的器件完成功能,使用型號1的與門,還是型號2的與門?
    編譯有兩種方式
compile 預編譯,普通編譯
compile_ultra 超級編譯,儘可能最佳化

跨時鐘產生的問題

手冊:SpyGlass® CDC Submethodology (for GuideWare 2.0 xxxx)

亞穩態產生

亞穩態產生的根本原因是建立保持時間不夠。設計時不可控的外界因素,則是工藝、溫度、電壓、電磁波等的影響。

設計問題主要是時鐘取樣頻率、取樣位置、復位釋放時機等不合適,導致無法滿足建立保持時間。緩解亞穩態的方法主要是訊號打拍。
image
對於多bit訊號,採用握手。
image

Reconvergence問題

在多個bit出現反轉的時候,從X4到Y4的資訊,可能出現多bit取樣時候,無法完全同步得到取樣,使用格雷碼可以解決問題
https://www.elecfans.com/d/2077894.html
image

資料丟失的問題

從快時鐘到慢時鐘,傳遞資訊,慢時鐘取樣的時間短,需要額外增補資料保持的時間,即使用與門,或者或門,增加低電平或高電平的持續時間
image

設計意圖產生的問題

在一些需要做出跨時鐘的設計意圖時候,需要採用fifo或者單bit握手方式,實現握手。

image

復位問題

復位需要非同步復位,同步釋放。果復位是非同步釋放,則導致非同步的資料送出到各種組合邏輯,而時鐘取樣這些組合邏輯,容易導致亞穩態。同步復位的設計是使用兩級同步實現。
image

CDC典型問題

image

時脈頻率切換問題

頻率切換使用以下方法,可以安全切換
image

spyglass的使用

使用spyglass提前發現CDC的問題,可以減少返工,提高效率,spyglass還可以檢查STA

讀入檔案和型別

spyglass可以讀入的檔案型別有很多

read_file -type <type> <file-name>

image

選擇要檢查的位置,使用外部控制

spyglass -batch project Project-1.prj-goal G1

下述程式碼選擇了第一個選項,即set_parameter fa_modulelist {M1 M2}

set_option top T1

current_goal Gl -top T1
set_parameter fa_modulelist {M1 M2}

current_goal G1 -top T2
set_parameter fa_modulelist {M3 M4}

current_goal G1 -alltop
set_parameter fa_modulelistk {Ml M2 M3 M4}

spyglass cdc工具功能

SpyGlass® Constraints Submethodology (for GuideWare 2.0 and 2015.12) 手冊
image

SOC設計問題

設計重點

SOC設計的三個重點內容:時鐘、介面、復位。稱為CIR檔案。

DFT功能

SOC有正常工作狀態和DFT工作狀態。DFT主要用於矽後的檢查,良率控制。
DFT對邏輯閘的開路和短路進行檢查,透過PinMux外部的PAD切換工作狀態。
最優的DFT/BIST策略保證產品測試錯誤覆蓋率最大,測試時間最短
image

MBIST

記憶體內建的自檢電路,是DFT的一種實現例項,用於檢查記憶體是否正確。檢查錯誤時立馬退出,送出fail訊號。
image
March演算法是一種較為高效的記憶體檢查演算法,其步驟存在變體,一種情況如下:
image

PIN和PAD

PIN是內部的晶片送出訊號,外部到PCB板上是PAD
image

FloorPlan

用於規劃各個模組的位置
image

電源分佈

物理設計部分
image

Layout版圖

送入晶片生產前的最後步驟
image

SRAM的大小含義

比如大小為8K*8,則其深度為8K,寬度為8bit。劃分為兩個bank,每個bank獨立的選通訊號,一個bank最終的大小是8K*32,。
image

相關文章