加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

淺談時序約束之false path

09/29 09:15
8萬
閱讀需 12 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

RTL ?designer面臨的重大挑戰(zhàn)之一是預(yù)先識別完整的timing?exceptions。這成為復(fù)雜設(shè)計(jì)中的一個迭代過程,傳統(tǒng)是基于時序報告中的關(guān)鍵路徑或故障路徑分析來識別額外的timing?exceptions。這種方法會留下大量可能不是真實(shí)的時序路徑,但這些路徑永遠(yuǎn)不會被識別,因?yàn)樗鼈兛赡懿粫霈F(xiàn)在關(guān)鍵路徑報告中。然而,綜合和時序工具將在不需要時繼續(xù)消耗資源來優(yōu)化這些路徑。同時,它也會影響chip的面積和功耗。

什么是false?path

false path是設(shè)計(jì)中的那些時序弧,其中源寄存器的變化預(yù)計(jì)不會在特定時間間隔內(nèi)被目標(biāo)寄存器捕獲。false path可以歸類為以下類型。

Static False Path

Static False Path是在設(shè)計(jì)中源寄存器的激勵不會對目標(biāo)寄存器產(chǎn)生任何影響或改變的時序弧。即使源觸發(fā)器和目標(biāo)觸發(fā)器都在相同的時鐘域上運(yùn)行,這些時序路徑也不會被任何輸入向量改變狀態(tài)。

例1

下圖描述了Static False Path的示例。這里 D1.Q 的變化永遠(yuǎn)不會導(dǎo)致 D4.D 的任何變化。D4 flop 的值將始終由 D2 的值決定。因此,對于這個特定的電路,D1->D4 可以被視為False Path。

圖1?Static timing path

例2

在系統(tǒng)中定義了一個控制位,如果該位被設(shè)置,進(jìn)入 DMA 控制器的時鐘將在低功耗 (STOP) 模式下保持啟用,否則時鐘將在 STOP 模式下被gated。

圖2?DMA Clock gating

在上述電路中,當(dāng)系統(tǒng)處于 RUN 模式時,時鐘門控單元將始終保持啟用,并且 dma_en 控制寄存器的任何變化都不會影響時鐘門控使能生成邏輯。在進(jìn)入低功耗 STOP 模式之前,用戶應(yīng)該在 RUN 模式下寫入/更改此控制寄存器。一旦系統(tǒng)進(jìn)入停止模式,dma_en 寄存器的預(yù)編程值將控制時鐘門控單元的狀態(tài)。單周期時序路徑是從“stop_mode_reg -> CG_cell”生成的路徑。路徑“dma_en_reg -> CG_cell”是false path。即使觸發(fā)器 dma_en_reg->CG 單元之間的組合延遲非常小,這種拓?fù)渲械臅r鐘偏移和單元布局也可能導(dǎo)致時序問題。為時序分析工具提供正確的exceptions將有助于在第一次迭代中優(yōu)化單元布局。

例3

IO 輸出時序弧通常很關(guān)鍵,是決定同步協(xié)議接口的最大波特率支持的限制因素。識別正確的 REG->OUT 時序弧并通過將無效的 REG->OUT 路徑限制為false path來隔離它們變得很重要。它可以節(jié)省大量的迭代時間和時間和布局工具為滿足同步接口的 IO-Spec 而付出的努力。

通常,在開始任何數(shù)據(jù)傳輸之前,需要正確配置協(xié)議模塊。這些配置寄存器在任何數(shù)據(jù)傳輸都被認(rèn)為是靜態(tài)的。然而,從這些配置寄存器到output pad可能存在時序弧。這是另一個示例,其中前期設(shè)計(jì)約束有助于簡化時序工具的任務(wù)以滿足目標(biāo)頻率。

在下面給出的拓?fù)渲?,配置寄存器(config1、config2 和 config3)應(yīng)該在進(jìn)行任何數(shù)據(jù)傳輸之前使用特定值進(jìn)行編程。當(dāng)數(shù)據(jù)傳輸開始時,有效的時序弧為移位寄存器->combo3->IO 緩沖區(qū)->PAD。然而,源自 config1/2/3 并在 PAD 處終止的時序弧可以很容易地通過設(shè)置false path exceptions來禁用。

圖3?與configuration registers寄存器相關(guān)的3?I/O path

但是,需要正確審查上述exceptions情況,以避免任何未發(fā)現(xiàn)的極端情況。例如:在半雙工通信存儲器接口中,數(shù)據(jù)方向可以即時改變。所以可能需要滿足“數(shù)據(jù)方向寄存器->PAD”的時序,不能認(rèn)為是false path。

False Reset Timing Arc

在設(shè)備啟動期間,不需要設(shè)備的所有應(yīng)用程序模塊都保持啟用狀態(tài)。因此,默認(rèn)情況下,這些模塊的時鐘是門控的。在系統(tǒng)復(fù)位無效序列期間,這些模塊的復(fù)位無效發(fā)生在沒有時鐘的情況下。由于沒有時鐘,因此不會由于復(fù)位取消斷言時序違規(guī)而導(dǎo)致亞穩(wěn)態(tài)。因此,這些模塊的異步復(fù)位恢復(fù)/取消斷言路徑可以被視為false path。

Asynchronous False Path (CDC path)

如果源寄存器的時鐘域與目標(biāo)寄存器的時鐘域異步,則該路徑被視為異步或Clock Domain Crossing path(CDC)路徑。在這些路徑中不可能有任何時序相關(guān)性,因?yàn)樵趩佑蚝筒东@域的時鐘沿之間沒有定義的關(guān)系。這些路徑可以被視為時序分析的false path。在這種情況下,設(shè)計(jì)人員有責(zé)任避免在捕獲域寄存器時發(fā)生任何建立/保持沖突。有一些流行的同步技術(shù),這些技術(shù)有助于避免異步時鐘設(shè)計(jì)中出現(xiàn)亞穩(wěn)態(tài)。設(shè)計(jì)人員應(yīng)在綜合之前將這些異常提供給時序工具。有時可能會在 SOC 集成中將異步設(shè)計(jì)與同步時鐘一起使用。在這種情況下,這些exceptions特別有用,因?yàn)闀r序工具實(shí)際上并不需要優(yōu)化這些使用同步拓?fù)涞臅r序路徑。

雙觸發(fā)器同步技術(shù)(Two Flop Synchronizer?)

 

當(dāng)信號從一個時鐘域跨越到另一個時鐘域時,需要先同步,然后才能在目標(biāo)域中使用。目標(biāo)寄存器可能會遇到建立/保持沖突,因?yàn)閱雍筒东@時鐘域邊沿之間沒有關(guān)系。使用第二個觸發(fā)器阻止同步器第一個觸發(fā)器中的亞穩(wěn)態(tài)問題,假設(shè)第一個觸發(fā)器將在下一個時鐘沿到達(dá)第二個觸發(fā)器之前穩(wěn)定到一個值。兩個觸發(fā)器上出現(xiàn)亞穩(wěn)態(tài)的概率直接取決于時鐘源的頻率。違規(guī)情況下的建立時間取決于特定技術(shù)庫的觸發(fā)器特性,并且必須小于設(shè)計(jì)中支持的最快時鐘。

圖4?Two Flop Synchronizer

請注意,在亞穩(wěn)態(tài)期過后,DB1 信號沒有必要穩(wěn)定到一個高值。設(shè)計(jì)必須保證 DA 信號在目標(biāo)時鐘一個以上周期內(nèi)的穩(wěn)定性。如果設(shè)計(jì)不能保證穩(wěn)定性,那么同樣會導(dǎo)致目標(biāo)域中非預(yù)期的寄存器的信號發(fā)生變化。

Two Flop Synchronizer通常用于跨域同步控制信號。

多路同步器(Mux Synchronizer)

當(dāng)設(shè)計(jì)人員必須跨任何時鐘域傳輸多位數(shù)據(jù)總線時,通常使用基于多路復(fù)用器同步器的設(shè)計(jì)拓?fù)?。在此拓?fù)渲校瑪?shù)據(jù)總線的時鐘域交叉由多路復(fù)用器選擇信號控制,當(dāng)輸入數(shù)據(jù)在多路復(fù)用器輸入處變?yōu)橛行r,該信號將被啟用。這確保了目標(biāo)觸發(fā)器永遠(yuǎn)不會由于數(shù)據(jù)輸入的變化而處于亞穩(wěn)定狀態(tài)。

設(shè)計(jì)人員必須確保在多路復(fù)用器啟用其輸入路徑時輸入數(shù)據(jù)應(yīng)保持穩(wěn)定,并且僅在多路復(fù)用器選擇反饋路徑時才應(yīng)更改。

圖6?Mux Synchronizer

FIFO(First In, First Out)

FIFO 通常用于將數(shù)據(jù)從一個時鐘域安全地傳遞到另一個異步時鐘域。使用 FIFO 將數(shù)據(jù)從一個時鐘域傳遞到另一個時鐘域需要多異步時鐘設(shè)計(jì)技術(shù)。

圖7?Asynchronous Fifo

寫指針指向數(shù)據(jù)寫入的下一個內(nèi)存位置。讀取指針指向要讀取的當(dāng)前 FIFO 位置。寫指針值隨寫時鐘變化,讀指針值隨讀時鐘變化,但是兩個指針都跨時鐘域來確定 fifo 滿/空邏輯。因此,在使用 FIFO 滿/空邏輯之前,在目標(biāo)時鐘域中同步它們很重要。對于多位信號,在跨時鐘域之前首選格雷編碼。

握手(Handshaking)

將數(shù)據(jù)從一個時鐘域發(fā)送到另一個時鐘域的流行方法之一是使用握手協(xié)議,其中發(fā)送方通過請求發(fā)送數(shù)據(jù),接收方通過發(fā)送確認(rèn)來確認(rèn)數(shù)據(jù)。在目標(biāo)域狀態(tài)機(jī)內(nèi)部使用之前,請求和確認(rèn)信號都在目標(biāo)時鐘域中同步。

圖8?Handshaking scheme

偽異步false?path(Pseudo Asynchronous False Path)

偽異步false?path是指源寄存器和目標(biāo)寄存器都由相同時鐘或源自同一源的時鐘提供時鐘,但它們的設(shè)計(jì)方式仍然無法滿足時序規(guī)范,可以忽略不計(jì)。源寄存器和目標(biāo)寄存器之間的時鐘和數(shù)據(jù)偏差差異使得幾乎不可能滿足時序要求。在這種情況下,設(shè)計(jì)人員需要確保這些路徑不應(yīng)有任何嚴(yán)格的時序要求。

圖9?Pseudo Async False Path

在上述設(shè)計(jì)中,PLL 時鐘與其他片上/片外時鐘源一起用于生成 system_clk。盡管 system_clk 源自 PLL,但由于功能和測試時鐘多路復(fù)用器、后分頻器和時鐘門控單元存在于時鐘路徑中,因此 PLL 輸出和系統(tǒng)時鐘之間存在一條巨大的非普通路徑。

工作在 PLL 輸出上的電路可以與系統(tǒng)時鐘中存在的邏輯通信。由于系統(tǒng)時鐘來自 PLL,因此兩個時鐘都被視為同步。工具將嘗試滿足相同的時間要求。然而,巨大的非普通時鐘路徑有時會成為計(jì)時工具遇到的噩夢。這種偽異步路徑可以被視為False Path。然而,處理False Path并不能阻止“capture_intc_reg”變得亞穩(wěn)定,因?yàn)闆]有確保可能導(dǎo)致任何功能故障的時序。

在上述設(shè)計(jì)中,放置了一個 2 觸發(fā)器同步器,它阻止亞穩(wěn)態(tài)傳播到整個系統(tǒng)?,F(xiàn)在,只需將“D1_reg->Sync1_reg”路徑視為False Path。

在上述電路中,設(shè)計(jì)人員應(yīng)確保延遲,因?yàn)殡p觸發(fā)器同步器不會導(dǎo)致設(shè)計(jì)中的任何協(xié)議或功能問題。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
MMZ1005S601CTD25 1 TDK Corporation Ferrite Chip, 1 Function(s), 0.3A, HALOGEN FREE AND ROHS COMPLIANT, EIA STD PACKAGE SIZE 0402, 2 PIN

ECAD模型

下載ECAD模型
$0.07 查看
ADV7179BCPZ 1 Rochester Electronics LLC COLOR SIGNAL ENCODER, QCC40, 6 X 6 MM, ROHS COMPLIANT, MO-220VJJD-2, LFCSP-40
$15.54 查看
BSP742RIXUMA1 1 Infineon Technologies AG Buffer/Inverter Based Peripheral Driver, 1.2A, MOS, PDSO8, GREEN, PLASTIC, SOP-8
$1.83 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

前華為海思工程師;與非網(wǎng)2022年度影響力創(chuàng)作者;IC技術(shù)圈成員。

微信公眾號