PrimeTime指南——合理設置約束

? ? ? ? 完整的STA需要滿足以下兩點:

  • 完整的設計約束(完整并不意味著正確)
  • 運行所有需要的時序檢查

? ? ? ? 可以用以下兩條命令來進行完整性的檢查:

check_timing? ? ? ? ? ? ? ? ? ? ? ? ????????// 檢查是否缺少了約束條件

report_analysis_coverage? ? ? ? ? ? // 檢查是否是否對時序進行check? ? ? ? ??

一、檢查約束的完整性

????????check_timing 這一命令會檢查設計中的每個現有約束,如果有缺失的約束,則會發出警告,我們可以根據警告對設置的約束進行檢查。

????????check_timing的完整檢查項目如下,粗體表示默認選項:

? ? ? ? 我們以下圖所示電路為例,對check_timing的檢查內容進行說明。

1、No input delay

????????這類警告是默認關閉的,你需要設置變量:

pt_shell>set_app_var timing_input_port_default_clock true

????????收到這種警告信息,我們需要知道:這個輸入引腳和什么相連?哪條路徑會受到這條警告的影響(或者此case缺少輸入端口的分析)?

????????我們需要檢查是否有必要約束這個port,一些情況下,是不需要為input port添加約束的

  1. 假設這個端口應該由set_case_analysis 命令設置,驅動一個固定的信號比如
  2. 假設以這個port為起點的路徑在當前模式的分析中是不存在的;

?2、No output delay

????????收到這類警告需要去知道:輸出端口連接的是什么,寄存器還是輸入端口?這條警告所影響的路徑是哪一條,他是否是一個輸出的時鐘端口?

? ? ? ? 輸出端口必須被output delay 所約束

????????如果這個端口是一個輸出的時鐘端口,我們不需要為端口定義output_delay,創建所需要的generate_clock 然后忽略這條警告;

3、No clock

????????收到這類警告需要去知道:哪里需要創建一個時鐘去驅動受影響的端口;

????????檢查時鐘信號是否由于某些時序弧的禁用或用戶使用set_sense命令手動停止信號而在時鐘端口的扇出中被阻斷。

?二、檢查執行的完整性

????????report _ analysis _coverage 這一命令會檢查設計中的每個現有時序檢查,如果有任何未執行,則會發出警告和原因。我們需要決定這個時序檢查是否有必要,還有檢查什么原因導致時序檢查沒有被執行。

? ? ? ? 導致時序檢查未執行的原因由下面這些:

? ? ? ? 我們以下圖為例,對這些原因進行具體的說明。

1、False path

????????false_path一般是用戶使用set_false_paths指定,異步或者專用的時鐘組;

????????收到此類的警告,我們需要去知道:1.這條時序路徑包含哪個時鐘?2.F1的上一級觸發器是什么?3.哪條false_path的命令或者clock_group的命令與此warning相關

? ? ? ? 設置false path使用的命令為

pt_shell > set_false_path -from F2/CLK -to F1/D

2、user disabled

????????出現此類的warning,我們需要去知道:這個時序檢查只是對指定cell(F1)無效還是定義在cell庫中,對所有instance都無效?這兩者在命令的書寫上是不同的:

pt_shell > set_disable_timing -from CLK -to D F1
pt_shell > set_disable_timing -from CLK -to D {get_lib_cell core_slow.db/fdesf2a15}

3、constant_disable

????????這種警告一般出現在:

  1. 用戶指定 set_case_analysis
  2. 信號固定為高電平或低電平;

? ? ? ? 出現此警告我們需要確認,這個timing的disable是不是由于用戶指定的case或者恒高或者恒低電平的信號導致的;用戶哪條約束導致了 timing的disable。

pt_shell > set_case_analysis 0 scan_en

三、Debug命令

? ? ? ? 當使用check_timing 和 report_analysis_coverage 命令對約束進行檢查時,按上文所述,有可能出現一些warning,這時我們需要對出現的warning進行檢查,最常用的debug命令如下圖:

? ? ? ? 這些命令可以讓我們快速定位問題所在。

1、all_fanin

????????

? ? ? ? ?如上圖,當F1的clk端發出no clock warning,我們可以使用以下命令

pt_shell > all_fanin ?-startpoints -flat -to F1/CLK

? ? ? ? 即可以找到CLK的起始點,溯源問題發生的原因。

? ? ? ? all_fanin的用法如下:

? ? ? ? 如例子中的圖所示,all_fanin會追蹤時序弧,最后在三種端口停下:

  • 輸入端口(input port)
  • CLK flop pins ,鎖存器的G和D pins
  • 時序弧被disable或missing的cell 的輸出pins

2、report_cell

? ? ? ? 如果我們定位到了問題的所在,可以使用report_cell命令查看該單元的詳細信息。

? ? ? ? report_cell的用法如下:

3、get_attribute

? ? ? ? PrimeTime中,針對每一個設計對象(design objects)的信息都存儲在attribute中,我們可以利用get_attribute命令來獲取單獨的設計對象的信息。

? ? ? ? 上圖中,指定的clocks這一attribute存儲了所有穿過該pin的時鐘信息。

4、report_disable_timing

??????????report_disable_timing這一命令會檢查disable的時序弧,并給出原因。

? ? ? ? 其具體用法如下:

5、report_case_propagation

? ? ? ? 我們可以使用?report_case_propagation命令來查找用戶定義的值。

? ? ? ? 其用法如下

6、all_fanout

? ? ? ? 這一命令與all_fanin類似:

? ? ? ? 用法也基本一致:

?

? ? ? ? 合理利用PT提供的命令,我們可以很快地找到問題的所在,快速修改時序約束不合理的地方。

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

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

相關文章

Matlab增加塊注釋

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

理解正向代理和反向代理

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

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

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

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

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

linux常用網絡命令

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

圖像增強匯總

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

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

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

Design Compiler指南——預綜合過程

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

KAFKA介紹(分布式架構)

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

jquery 回車事件

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

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

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

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

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

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

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

Python:eval的妙用和濫用

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

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

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

MATLAB圖像增強程序舉例

1.灰度變換增強程序: % GRAY TRANSFORM clc; Iimread(pout.tif); imshow(I); Jimadjust(I,[0.3 0.7],[0 1],1); %transforms the walues in the %intensity image I to values in J by linealy mapping %values between 0.3 and 0.7 to values between 0 and 1. fi…

Design Compiler指南——設計綜合過程

在前面一章介紹完施加約束之后,接下來要做的工作就是將設計進行綜合編譯(compile),本文我們將主要討論綜合編譯的過程。主要分為這樣幾個部分: 優化的三個階段及其特點編譯的策略編譯層次化的設計 一、優化的三個階段 這一節我們介紹Design …

How to find Material based on Sales Organization and Distribution Channel

Fetch data from Database View /BEV1/RBEA_V Fields: VKORG - Sales Organization VTWEG - Distribution Channel MATNR - Material Number 轉載于:https://www.cnblogs.com/JulietLV/p/7436028.html

iOS開發 iOS10兼容訪問http

添加NSAppTransportSecurity的字典會自動變成 AppTransportSecurity再添加 allow Arbitary Loads Boolean YES轉載于:https://www.cnblogs.com/diweinan/p/6233052.html

django 利用PIL 保存圖片

在使用django時不知道怎么保存圖片,又不想用它的form ,在網上找了許久,終于找到個解決方案,利用PIL.image 將POST上來的圖片保存到media目錄下,然后再修改models from PIL import Imagescreen_name request.POST.get(…