PrimeTime指南——概述和基本流程

????????PrimeTime(PT)是Synopsys的sign-off quality的靜態時序分析工具。PrimeTime可以集成于邏輯綜合和物理綜合的流程,讓設計者分析并解決復雜的時序問題,并提高時序收斂的速度。

一、概述

? ? ? ? PT最大的兩個特點是:

  1. 基于時序路徑進行分析
  2. 由約束(constraint)驅動

????????PT可以進行一系列的時序檢查

????????有一些額外的檢查可以在庫中指定,例如:
????????clock separation:這是對主/從鎖存器的約束,在兩個時鐘之間的最小要求的時鐘間隔,以避免鎖存器成為transparent。
? ? ? ??nonsequential:這類似于兩個數據引腳之間的數據到數據的設置和保持檢查。

  • constraint check:由使用者指定的約束檢查(如 set_output_delay)
  • library check:由供應商在庫中為特定的子單元指定的檢查(如 setup/hold)

? ? ? ? STA是基于時序路徑進行檢查的,在STA中,對時序路徑的定義如下:

? ? ? ? 一共有四類路徑,我們使用report_global_timing命令就可以查看違例的時序路徑:

? ? ? ? 此外,我們可以使用report_analysis_coverage命令來查看一個簡單的匯總報告:

? ? ? ? PT具有非常多的功能,而在使用PT之前,我們首先要知道PT的使用要求,即其最基本的輸入要求:

?????????其中,SPEF 是 IEEE標準的寄生交換格式,GPD是synopsys公司寄生交換格式。

二、PT 的 Analysis Flow?

? ? ? ? PrimeTime的時序分析主要有以下幾步:

  1. 載入設計與相關庫文件
  2. 讀入相關寄生參數
  3. 載入約束文件,包括時序約束
  4. 進行分析并產生報告
  5. 保存session
  6. 退出
  7. 恢復session

? ? ? ? 這個STA流程需要反復迭代進行,直到達到sign off的要求。?

1、讀入設計與相關庫文件

? ? ? ? 使用read_verilog命令即可讀入設計文件,而current design命令是用來設置Top的。

? ? ? ? ?其中,list_designs的標識含義如下:

  • * :指明該design是current design
  • L:指明該design已經鏈接
  • N:指明該design不在memory中(未載入PT中)
  • l:指明該design部分鏈接

? ? ? ? 在PT讀入設計及相關庫文件之前,常常設置兩個路徑變量,以方便地解決文件查找的問題:

? ? ? ? 1、指定Prime Time搜索設計、邏輯庫和其他設計數據的目錄,如時序模型。通過設置search_path變量來完成此任務:

pt_shell> set_app_var search_path "目錄路徑"

????????Prime Time會按照你指定的順序搜索這些目錄。

? ? ? ? 2、通過設置 link_path 變量來指定 PrimeTme 在設計層次中尋找庫文件。

pt_shell> set_app_var link_path "目錄路徑"

????????該變量可以包含短線(-)、庫名和文件名。*指示PrimeTime在內存中搜索設計。Prime Tme按照你指定的順序搜索庫。主庫是link_path中的第一個庫。

? ? ? ? 使用link_design就可以讀入相關的庫文件:

?2、讀入相關寄生參數

? ? ? ? 利用read_parasitics命令即可讀入寄生參數相關文件,使用-format即可指定讀入的文件格式:

? ? ? ? PrimeTime支持以下格式的文件:

  1. Galaxy Parasitic Database(GPD)
  2. Standard Parasitic Exchange Format(SPEF)
  3. Detailed Standard Parasitic Format(DSPF)
  4. Reduced Standard Parasitic Format(RSPF)
  5. Milkyway(PARA)

???????? PrimeTime推薦使用GPD以及SPEF格式的文件。

? ? ? ? 在讀入寄生參數后,我們可以利用以report_annotated_parasitics命令來檢查寄生參數標記的情況:

? ? ? ? ?需要注意的是,read_parasitics命令會自動顯示該報告,我們也可以在read_parasitics時檢查PARA- RC-Warnings。

????????任何未被標記的pin to pin nets都需進一步檢查。Driveless 和Loadless nets 通常是未使用的pin造成的,這些未標記的nets一般來說是正常的。

3、讀入約束文件

? ? ? ? 使用read_sdc讀入設計約束文件:

? ? ? ? ?再讀入約束文件后,需要進行約束完整性的檢查,使用check_timing -verbose命令:

? ? ? ? ?最后,一些單周期靜態STA的例外情況有以下幾種,即需要單獨進行分析:

  1. False path
  2. Multi-cycle path
  3. set_max_delay and set_min_delay

? ? ? ? 而沒有正確指定的例外情況需要忽略,使用report_exceptions -ignore命令進行查看:

?4、進行分析

?????????PBA: Path Based Analysis

? ? ? ? 在save_session前運行PBA選項可以避免在恢復session后重新計算。

? ? ? ? ?而使用report_timing命令,配合其選項可以產生更詳盡的報告:

?????????GBA:Graph Based Analysis

5、保存session

? ? ? ? 使用save_session可以保存session

pt_shell>save_session $session_directory

????????一個保存好的session包含以下信息用于恢復。

  1. 鏈接的設計和加載的庫
  2. 時鐘、時序例外和其他約束條件
  3. 操作條件
  4. 反標SDF的延遲和寄生參數
  5. 變量設置
  6. 網表編輯(insert buffer、size cell、swap cell)。
  7. 分析數據
  8. 交叉耦合(cross-coupled)的延遲數據和噪聲數據

? ? ? ? 其目錄格式如下(以orca項目為例):

6、退出

? ? ? ? 一般使用以下命令完成退出

?????

? ? ? ? 當然,也可以單獨使用這兩個指令:

7、恢復session????????

????????使用restore_session可以保存session

pt_shell>restore_session $session_directory

三、配置文件及腳本

? ? ? ? setup file是PrimeTime的配置文件,其文件名為 .synopsys_pt.setup,當PT運行時會自動執行,完成配置工作。

? ? ? ? setup file一共有三個層級,其優先級如下:

? ? ? ? 可以使用synopsys提供的RMgen(reference methodology generate)工具生成PT運行腳本的模板:

? ? ? ? 其中,pt.tcl就是PT的運行腳本,其內容如下:

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

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

相關文章

yuv和yCbCr的差異

yuv和yCbCr的差異 一、和rgb之間換算公式的差異 yuv<-->rgb Y 0.299*R 0.587*G 0.114*B U -0.147*R - 0.289*G 0.436*B 0.492*(B- Y) V 0.615*R - 0.515*G - 0.100*B 0.877*(R- Y) R Y 1.140*V G Y - 0.394*U - 0.581*V B Y 2.032*U yCbCr<-->rgb Y’ 0…

配置zentaophp

原理&#xff1a; 首先&#xff0c;我們要明白為什么訪問localhost就可以訪問到我們的apache主頁。 解析域名的時候&#xff0c;首先是從本地的hosts文件開始的。 如果查不到&#xff0c;才會去DNS服務器查詢。 如果你在這里面寫一行&#xff1a;127.0.0.1 www.baidu.com 百…

Android開發——RecyclerView特性以及基本使用方法(二)

0. 前言隨著Android的發展&#xff0c;雖然ListView依舊重要&#xff0c;但RecyclerView確實越來越多的被大家使用。但顯然并不能說RecyclerView就一定優于ListView&#xff0c;而是應該根據不同的需求選擇最合適的進行使用。本篇將介紹我們為什么要使用RecyclerView&#xff…

pycharm中使用scrapy命命

2019獨角獸企業重金招聘Python工程師標準>>> 這篇博客寫的不錯&#xff0c;親測 https://blog.csdn.net/MAOZEXIJR/article/details/80678133 轉載于:https://my.oschina.net/u/2511906/blog/1934993

PrimeTime指南——合理設置約束

完整的STA需要滿足以下兩點&#xff1a; 完整的設計約束&#xff08;完整并不意味著正確&#xff09;運行所有需要的時序檢查可以用以下兩條命令來進行完整性的檢查&#xff1a; check_timing // 檢查是否缺少了約束條件 report_analysis_cove…

Matlab增加塊注釋

1&#xff09;方法一選中你要加注釋的內容&#xff0c;然后選擇工具菜單“text|comment”就可以了&#xff0c;如果要把注釋變為語句&#xff0c;同樣選中要轉變的語句&#xff0c;然后用鼠標選擇“text|uncomment”就可以了。用鍵盤的快捷鍵是"CtrlR".或者選中你要加…

理解正向代理和反向代理

首先&#xff0c;大家可以看一下這里https://www.zhihu.com/question/24723688 其實答復的非常清楚了。 知乎網友阿笠碩士圖畫的很形象&#xff0c;地址為https://www.zhihu.com/question/24723688/answer/48369770 其次&#xff0c;我自己根據專家的解釋&#xff0c;總結如下…

tablayout支持改變選中文字大小,支持左右滑動,支持viewpager,支持三角可移動指示器...

TabLayout [簡書地址] (https://www.jianshu.com/p/2c3f868266e8) 基于大神的FlycoTabLayout [傳送地址和基本用法](https://github.com/H07000223/FlycoTabLayout) 用法和屬性和這個庫一樣 效果圖如下 主要添加一個屬性 tl_text_select_size 控制選中文字大小 看代碼截圖 然后…

Design Compiler指南——概述和基本流程

綜合是前端模塊設計中的重要步驟之一&#xff0c;綜合的過程是將行為描述的電路、RTL級的電路轉換到門級的過程&#xff1b;Design Compiler是Synopsys公司用于做電路綜合的核心工具&#xff0c;它可以方便地將HDL語言描述的電路轉換到基于工藝庫的門級網表。本文將簡單介紹綜合…

linux常用網絡命令

關鍵詞&#xff1a;linux網絡命令、ifconfig、route、ip、netstat、socket flag 引言&#xff1a; 想成為真正的高手&#xff0c;必須要熟練掌握linux系統的命令行操作&#xff0c;今天就回顧一下linux在網絡上的常用命令相關知識&#xff0c; 另外&#xff0c;實踐才是最終的方…

圖像增強匯總

1、 圖像增強技術包括 1&#xff09; 圖像灰度變換方法 2&#xff09; 直方圖修正方法 3&#xff09; 圖像平滑處理 4&#xff09; 圖像尖銳化處理 5&#xff09; 彩色處理技術 2、 圖像增強技術基本上分為兩大類&#xff1a;頻域處理法和時域處理法。 3、 頻…

javaweb(三十八)——mysql事務和鎖InnoDB(擴展)

MySQL/InnoDB的加鎖分析&#xff0c;一直是一個比較困難的話題。我在工作過程中&#xff0c;經常會有同事咨詢這方面的問題。同時&#xff0c;微博上也經常會收到MySQL鎖相關的私信&#xff0c;讓我幫助解決一些死鎖的問題。本文&#xff0c;準備就MySQL/InnoDB的加鎖問題&…

Design Compiler指南——預綜合過程

預綜合過程是指在綜合過程之前的一些為綜合作準備的步驟&#xff0c;包括Design Compiler的啟動、設置各種庫文件、創建啟動腳本文件、讀入設計文件、DC中的設計對象、各種模塊的劃分以及Verilog的編碼等等。 一、Design Compiler的啟動 目前&#xff0c;DC的啟動方式有三種&a…

KAFKA介紹(分布式架構)

2019獨角獸企業重金招聘Python工程師標準>>> 介紹 Kafka是一個分布式的、可分區的、可復制的消息系統。它提供了普通消息系統的功能&#xff0c;但具有自己獨特的設計。這個獨特的設計是什么樣的呢&#xff1f; 首先讓我們看幾個基本的消息系統術語&#xff1a; Kaf…

jquery 回車事件

簡單地記下jquery實現回車事件&#xff0c;代碼如下&#xff1a;全局&#xff1a; $(document).keydown(function(e){if(e.keyCode13){$(".login-li input[typebutton]").trigger("click");} });某個控件&#xff1a; $("body").keydown(functio…

Three.js 詳細解析(持續更新)

1、簡介&#xff1b; Three.js依賴一些要素&#xff0c;第一是scene&#xff0c;第二是render&#xff0c;第三是carmea npm install --save three import * as THREE from "three"; import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js&quo…

[js高手之路]構造函數的基本特性與優缺點

上文,通過基本的對象創建問題了解了構造函數&#xff0c;本文&#xff0c;我們接著上文繼續了解構造函數的基本特性&#xff0c;以及優缺點. 每個對象上面都有一個constructor屬性( 嚴格意義上來說&#xff0c;是原型上的&#xff0c;對象是通過查找到原型找到 constructor屬性…

Design Compiler指南——施加設計約束

Design Compiler是一個約束驅動(constrain-driven)的綜合工具&#xff0c;它的結果是與設計者施加的約束條件密切相關的。在本文里&#xff0c;我們主要討論怎樣給電路施加約束條件&#xff0c;這些約束主要包括——時序和面積約束、電路的環境屬性、時序和負載在不同模塊之間的…

Python:eval的妙用和濫用

時間 2014-07-08 13:05:24 CSDN博客 原文 http://blog.csdn.net/zhanh1218/article/details/37562167主題 Python eval()函數十分強大&#xff0c;官方demo解釋為&#xff1a;將字符串str當成有效的表達式來求值并返回計算結果。 so&#xff0c;結合math當成一個計算器很好用…

程維柳青發布道歉聲明:滴滴順風車業務將無限期下線

雷鋒網(公眾號&#xff1a;雷鋒網)消息&#xff0c;8 月 28 日晚間&#xff0c;滴滴創始人兼 CEO 程維和滴滴總裁柳青正式發出道歉聲明&#xff0c;向受害者和受害者家屬道歉——這已經離本次滴滴順風車悲劇的發生整整四天的時間。 聲明表示&#xff0c;滴滴不再以規模和增長作…