靜態時序分析——多周期、半周期和偽路徑

一、多周期 multicycle paths

在一些情況下,如下圖所示,兩個寄存器之間的組合電路傳輸的邏輯延時超過一個時鐘周期。在這樣的情況下,這個組合路徑被定義為多周期路徑(multicycle path)。盡管后一個寄存器會在每一個的時鐘的上升沿嘗試捕獲(capture)數據,但我們會在STA中指定個時鐘周期后的上升沿(relevant capture edge)去捕獲數據。

以上圖為例,組合路徑的延時為三個周期,那么三個時鐘周期的多周期setup check可以用以下語句進行約束

cerate_clock -name CLKM -period 10 [get_ports CLKM] // 設置時鐘源
set_multicycle_path 3 -setup -from [get_pins UFF0/Q] -to [get_pins UFF1/D] //multicycle

這樣,我們就達成了下面的圖的效果,在第三個時鐘沿進行建立時間的檢查。

由于工具一般會在建立時間檢查時鐘沿(capture edge)的前一個時鐘沿進行保持時間檢查,而在多周期的情況下,這樣進行保持時間檢查較為嚴苛,以上圖為例,在2nd時鐘沿進行保持時間檢查,那么,數據需要保持到2nd時鐘之后才能變化。所以,在多時鐘周期的情況下,我們如果在N個周期后進行簡歷時間檢查,那么我們會將簡歷時間檢查提前N-1個時鐘周期。

同樣以上面的的電路為例,多周期hold check可以用以下語句進行約束:

cerate_clock -name CLKM -period 10 [get_ports CLKM] // 設置時鐘源
set_multicycle_path 2 -hold -from [get_pins UFF0/Q] -to [get_pins UFF1/D] //multicycle

?

二、半周期 half-cycle paths

如果一個電路設計中同時存在正時鐘沿觸發和負時鐘沿觸發的觸發器,那么在這種電路中需要進行半周期的檢查。

我們以下面的電路為例:

對其進行建立時間檢查,那么其檢查的時鐘沿如下圖:

其時序報告如下:

? ?

與一般的時序報告不同的是,需要注意startpoint和endpoint,其注明的觸發沿是不同的。

由于時序路徑中僅有半個時鐘周期用來進行建立時間檢查,那么我們有額外的半個時鐘周期來進行保持時間檢查,如下圖:

其保持時間檢查時序報告如下:

? ?

三、偽路徑 false paths

某些情況下,一些時序路徑可能在電路設計的真實功能中并不存在,我們會在STA中將將這些路徑設置為偽路徑,這樣,工具(prime time)會忽略這些路徑,不對其進行時序分析。

一般需要進行偽路徑的處理情況有:

1.? 從邏輯上考慮,與電路正常工作不相關的那些路徑,比如測試邏輯,靜態或準靜態邏輯。
2.? 從時序上考慮,我們在綜合時不需要分析的那些路徑,比如跨越異步時鐘域的路徑。

設置偽路徑可以減少工具的分析工作,讓工具更專注于分析真實的時序路徑,而且能減少分析時間。但是,設置過多的偽路徑會降低分析的效率,反而使分析速度減慢。

我們有以下幾種方法來設置偽路徑約束:

set_flase_path -from [get_clocks SCAN_CLK] -to [get_clocks CORE_CLK]
//任何從SCAN_CLK時鐘域到CORE_CLK時鐘域的時序路徑都是偽路徑set_false_path -through [get_pins UMUX0/S]
//所有通過這個pin的時序路徑都是偽路徑

建議減少使用-through,因為through命令會增加分析復雜度。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253853.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253853.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253853.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微信頭像單張圖片上傳

后臺配置 public function upload_img($img){import(ORG.Tencent.Weixin);$wx new Weixin(get_app_config());$media_data$wx->getMedia($img);$path./Uploads/.uniqid()..jpg;if(!file_put_contents($path,$media_data)){$this->error(圖片上傳失敗);}return $path;}前…

u-boot nand flash read/write cmd

支援的命令函數說明1. nand info/nand device功能:顯示當前nand flash晶片資訊。函數調用關係如下(按先後順序):static void nand_print(struct nand_chip *nand) ;2. nand erase 功能:擦除指定塊上的數據。 函數調用關係如下(按先後順序)&am…

APP測試瞎話

APP測試 一、功能性 1、APP的安裝、卸載 2、APP中業務功能 二、性能測試 1、高、中、低端機上運行效果 2、APP安裝過程、卸載過程的耗時 3、APP運行時,手機的CPU、內存、耗電量、流量、FPS(畫面每…

網絡七層協議之物理層

我們以一個非常簡單的例子開始: 兩服務器通訊問題 如上圖,有兩臺服務器,分別是 Server 1 和 Server 2 。 我們先做一個假設:計算機網絡現在還沒有被發明出來, 作為計算機科學家的你,想在這兩臺服務器間傳遞…

靜態時序分析——On-chip Variation

OCV(on-chip variation)是指在同一個芯片上, 由于制造工藝和環境等原因導致芯片上各部分特征不能完全一樣,從而造成偏差,對時序分析造成影響。這些偏差對互聯線和cell的延時都是有影響的。 由于OCV對延時有影響,那么我…

Exception和RuntimeException的區別

1.Exception表示程序運行過程中可能出現的非正常狀態 RuntimeException表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤。 Java編譯器要求方法必須聲明拋出可能發生的費運行異常,但是并不要求必須聲明拋出未被捕獲的運行時異常, 即…

[轉載]IIS7報500.23錯誤的解決方法

原文出處: 原文作者:pizibaidu 原文鏈接:http://pizibaidu.blog.51cto.com/1361909/1794446 背景:今天公司終端上有一個功能打開異常,報500錯誤,我用Fiddler找到鏈接,然后在IE里打開&#xff0c…

關于用戶空間和內核空間

當一個任務(進程)執行系統調用而陷入內核代碼中執行時,我們就稱進程處于內核運行態(內核態)。在內核態下,CPU可執行任何指令。當進程在執行用戶自己的代碼時,則稱其處于用戶運行態(用…

kaggle中zillow比賽中模型融合的方法及其代碼

在機器學習這個領域,尤其是做多媒體(聲音、圖像、視頻)相關的機器學習方法研究,會涉及很多特征、分類模型(分類任務)的選擇。以聲音識別為例,常見的特征有MFCC、LPCC、spectrogram-like feature…

靜態時序分析——Timing borrow

Timing Borrow技術又稱為cycle stealing技術,主要是利用latch的電平敏感特性,通過有效電平獲取數據,通過無效電平保持被鎖存的數據,主要用于解決路徑時序不滿足電路要求的情況。 通過TimingBorrow可以對電路進行加速,當路徑延遲較…

homebrew 常用命令

安裝(需要 Ruby):ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/Go/install)" 搜索:brew search MySQL 查詢:brew info mysql 主要看具體的信息,比如目前的版本&#xff0c…

從Mysql某一表中隨機讀取n條數據的SQL查詢語句

若要在i ≤ R ≤ j 這個范圍得到一個隨機整數R ,需要用到表達式 FLOOR(i RAND() * (j – i 1))。例如, 若要在7 到 12 的范圍(包括7和12)內得到一個隨機整數, 可使用以下語句: SELECT FLOOR(7 (RAND() * 6)); 以上摘…

基于MTD的NAND驅動開發(二)

基于MTD的NAND驅動開發(二) 基于MTD的NAND驅動開發(三) http://blog.csdn.net/leibniz_zsu/article/details/4977853 http://blog.csdn.net/leibniz_zsu/article/details/4977869 四、基于MTD的NAND 驅動架構 1 、platform_device 和platform_driver 的定義和注冊 對于我們的…

靜態時序分析——Data to data check

setup和hold的檢查也有可能發生在任意兩個數據端口,其中不包括時鐘端口。 我們將其中一個端口(pin)設置為約束端口(constrainted pin),就像觸發器中的數據端口;將另一個一個端口(pin…

開源數據庫中間件-MyCa初探與分片實踐

如今隨著互聯網的發展,數據的量級也是撐指數的增長,從GB到TB到PB。對數據的各種操作也是愈加的困難,傳統的關系性數據庫已經無法滿足快速查詢與插入數據的需求。這個時候NoSQL的出現暫時解決了這一危機。它通過降低數據的安全性,減…

【JAVA設計模式】外觀模式(Facade Pattern)

一 定義 為子系統中的一組接口提供一個一致的界面。Facade模式定義了一個高層的接口,這個接口使得這一子系統更加easy使用。二 案例 一個子系統中擁有3個模塊。每一個模塊中都有3個方法。當中一個為client調用方法,其它兩個則為各子模塊間互相調用方法…

return的用處

#include "stdio.h" main() {int a,b1,c0;for(a1;a<5;a){ cca;}printf("%d",c);return ;printf("hello word"); } 輸出結果是10并沒有hello word&#xff1b;return將不會執行下面的語句。轉載于:https://www.cnblogs.com/doublekai/p/6148…

靜態時序分析——Clock Gating check

門控時鐘是RTL級進行低功耗設計的最常用方法&#xff0c;能夠有效降低動態功耗。在實際使用中&#xff0c;一般用ICG&#xff08;集成門控時鐘單元&#xff09;來完成clock gating。ICG電路和時序如下&#xff1a; 通常來說&#xff0c;工藝庫已經集成了ICG&#xff0c;在做門控…

U-boot中TFTP 解釋

http://www.cnblogs.com/heaad/archive/2009/08/10/1542538.html

BlackHat Arsenal USA 2018 ToolsWatch黑客工具庫

原文鏈接&#xff1a;https://medium.com/hack-with-github/black-hat-arsenal-usa-2018-the-w0w-lineup-7de9b6d32796 Black Hat Arsenal USA 2018?—?The w0w lineup After the huge success of Black Hat Arsenal USA 2017, toolswatch has now announced the list of too…