• 正文
  • 相關推薦
申請入駐 產業(yè)圖譜

淺談時序約束之multi cycle path

2022/04/24
1749
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

同步設計的最大頻率由最長的時序路徑的延遲決定。然而,在復雜的高頻設計中,可能存在一些路徑,其傳播延遲大于最大工作時鐘頻率的周期。如果不要求信號在一個時鐘周期內傳播到下一個時序,則需要實施適當?shù)脑O計技術以使其成為有效的多周期路徑。時序電路中的多周期路徑是一種組合路徑,它不必在一個時鐘周期內完成信號沿的傳播。對于 N 的多周期路徑,設計應確保信號轉換在 N 個時鐘周期內從源端傳播到目的端。因此,如果系統(tǒng)的最長路徑是多周期路徑,則它不會限制系統(tǒng)的運行頻率。下面描述了一些常見的多循環(huán)路徑設計。

二倍多周期路徑(2倍MCP)

如果在高頻系統(tǒng)中,兩個相互通信的子模塊以 1:2 的時鐘比運行,并且不需要在更快時鐘的一個時鐘周期內捕獲源信號轉換,則可以實現(xiàn)二倍多周期處理情況。

 

在上述電路中,數(shù)據從觸發(fā)器 D1 啟動并由運行速度比啟動觸發(fā)器的時鐘快兩倍的觸發(fā)器捕獲,是 clk 的半周期路徑或 clk_2x 的單周期路徑。如果兩者之間的組合邏輯的傳播延遲很大,那么可能無法滿足這個半周期路徑的時序。如果不要求輸入數(shù)據在 2x 時鐘的下一個正沿捕獲,則需要引入適當?shù)碾娐穪矸艑挄r序要求。

 

在上述電路中,F(xiàn)3 的輸出用于啟用捕獲門復用器。捕獲門使能 (F3.Q) 確保 F1_reg->F2_reg 作為與 clk_fast(clk_2x) 相關的兩個多周期路徑。當數(shù)據信號從 clk_2x -> clk 交叉時,可以實現(xiàn)類似的電路。

在上述電路中,假設 clk_fast 和 clock_slow 的第一個上升沿總是同時發(fā)生并保持對齊。比例大于2:1時可設計復雜高效的“capture_gate enable”電路

N倍多周期路徑(N倍MCP)

 

上述電路是從 D1_reg->D2_reg 的 n-1 個周期的 Multi cycle 路徑。當輸入數(shù)據在 M1 多路復用器輸入處變?yōu)橛行r,狀態(tài)機 (FSM) 會在一個時鐘周期內生成一個脈沖。數(shù)據在下一個周期被 D1 觸發(fā)器捕獲。脈沖通過由“n”個觸發(fā)器組成的移位寄存器傳播,并且在“n-1”個時鐘周期之后,M2 多路復用器將使輸入數(shù)據到達 D2 觸發(fā)器。下一個周期它將被 D2 觸發(fā)器捕獲。這樣可以放寬時序以補償 D1 和 D2 觸發(fā)器之間存在的組合邏輯的巨大傳播延遲。

 

在上面的時序圖中,N 等于 3。因此從 D1_reg -> D2_reg 的路徑可以限制為 MCP 為 2。

外設讀/寫接口的多周期路徑

在一些低性能、低帶寬的外設寄存器讀/寫接口中,數(shù)據傳輸發(fā)生在兩個階段。此傳輸?shù)牡谝粋€周期稱為設置階段。在此階段,ADDR、DATA(寫入時)和其他控制信號在外設邊界處變?yōu)橛行?。在下一個時鐘沿,模塊使能信號被置位,指示讀/寫傳輸?shù)牡诙A段。地址和數(shù)據信號在 ENABLE 周期結束時被外設鎖存,因此為 ADDR 和 DATA 信號提供額外的一個周期余量以到達外設邊界。

 

寫周期

 

在數(shù)據寫入周期地址線和寫入數(shù)據總線在第 2 個時鐘沿(T2 周期開始)生效,并且在第 4 個時鐘沿(T4 周期開始)由外設寫入。讓我們考慮源寄存器的命名為 PERIPH_BUS_CONTROLLER_ADDR_reg , PERIPH_BUS_CONTROLLER_WDATA_reg 和目標寄存器是 PERIPH_WDATA_CAPT_reg。

寫入周期為 2 的 MCP 可應用于以下路徑:

 PERIPH_BUS_CONTROLLER_ADDR_reg -> PERIPH_WDATA_CAPT_reg PERIPH_BUS_CONTROLLER_WDATA_reg -> PERIPH_WDATA_CAPT_reg

PERIPH_BUS_CONTROLLER_SEL_reg -> PERIPH_WDATA_CAPT_reg

讀周期

類似地,對于讀取傳輸,外設的地址在第 2 個時鐘沿變?yōu)橛行?,并且外設在 T3 周期將有效數(shù)據放在讀取數(shù)據總線上,因此讀取數(shù)據在第 4 個時鐘沿變?yōu)橛行?。這里源寄存器是PERIPH_BUS_CONTROLLER_ADDR_reg,目的寄存器是PERIPH_BUS_CONTROLLER_RDATA_CAPT_reg。

讀取周期的 MCP 為 2:

PERIPH_BUS_CONTROLLER_ADDR_reg -> PERIPH_BUS_CONTROLLER_RDATA_CAPT_reg。

PERIPH_BUS_CONTROLLER_SEL_reg -> PERIPH_BUS_CONTROLLER_RDATA_CAPT_reg。

Amba 外設總線就是這樣一種接口,它有兩個周期訪問外設。

多周期訪問慢速外設

在高性能外圍總線中,數(shù)據讀/寫訪問發(fā)生在一個周期內。然而,在該系統(tǒng)中,如果某些外圍設備不需要像整個系統(tǒng)那樣運行得更快,它可以通過向外圍總線控制器斷言等待狀態(tài)來創(chuàng)建每個讀/寫訪問作為多周期訪問。

 

在上面的示例中,外圍設備以該系統(tǒng)時鐘頻率的一半運行。已放置一個墊片,以便為每個讀/寫訪問為外圍總線控制器生成一個循環(huán)等待狀態(tài)。在沒有任何等待狀態(tài)(用于快速訪問)的情況下,總線控制器將在 sys_clk 的一個周期內保持地址、控制和數(shù)據信號(用于寫入)有效。在對慢速外設進行讀/寫訪問期間,墊片生成一個周期的等待狀態(tài)(圖中的“transfer_wait”),該周期將 ADDR、DATA 和控制信號擴展為 sys_clk 的另一個周期。

 地址和寫入數(shù)據在外設邊界處的 sys_clk 的第 3 個邊沿變?yōu)橛行?。?periph_module_en 被墊片斷言時,外設在 sys_clk 的第 5 個邊沿(periph clk 的第 3 個邊沿)鎖存地址和寫入數(shù)據總線。因此,對該外設的寫訪問相對于系統(tǒng)時鐘 (sys_clk) 的 MCP 為 2。

在讀操作期間,外設將有效數(shù)據放在讀數(shù)據總線上,在系統(tǒng)時鐘的第 5 個有效時鐘沿由主設備捕獲。因此,從 bus_controller_address_reg 生成并終止于“bus_controller_read_data_capt_reg”的路徑的 MCP 為 2。

路徑源自 periph_module_en 生成寄存器并終止于外設。

寫入數(shù)據捕捉寄存器或bus_controller_read_data捕捉寄存器仍然是periph_clk的半周期路徑或sys_clk的單周期路徑。同樣從transfer_wait生成寄存器到bus_controller的路徑也是periph_clk的半周期路徑或sys_clk的單周期路徑。

設計正確的錯誤或多周期路徑并在時序分析期間使用約束有助于關閉高頻系統(tǒng)的時序。同時,提供錯誤的約束可能導致設備的災難性故障。設計人員在為綜合或時序分析設計或提供約束時應該非常小心。

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

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

微信公眾號