靜態時序分析:SDC約束命令set_case_analysis詳解

相關閱讀

靜態時序分析icon-default.png?t=N7T8https://blog.csdn.net/weixin_45791458/category_12567571.html?spm=1001.2014.3001.5482


目錄

指定值

指定端口/引腳列表

簡單使用


? ? ? ? set_case_analysis命令用于對電路進行特定模式的設定,例如對于一個工作在正常模式下的芯片,其掃描觸發器的測試引腳應該設定為0;對于一個時鐘選擇器的選擇引腳,在特定模式工作時應該為確定值。這個命令很有用,因為它可以幫助減少很多不必要的時序路徑分析。

????????set_case_analysis指令的BNF范式(有關BNF范式,可以參考以往文章)為:

set_case_analysisvalue port_or_pin_list//注:該命令的port_or_pin_list參數一定要放在value參數后

? ? ? ? 該命令可以指定端口或引腳處是恒定的1或0,或者端口或引腳處僅允許上升沿或下降沿。

指定值

? ? ? ? 參數value指定了端口或引腳處的確定值或轉換方向。對于確定值,它可以是1、0、one或zero。對于轉換方向,它可以是rising、falling、rise或fall。

指定端口/引腳列表

????????指定一個端口/引腳列表,包含端口對象或引腳對象,如果有多于一個對象,需要使用引號或大括號包圍。

簡單使用

? ? ? ? 首先我們可以解決靜態時序分析:SDC約束命令create_clock詳解一文中出現的時序路徑混亂問題,原文的圖7如本文圖1所示,首先在輸入端口clk_1和clk_2定義兩個時鐘。

create_clock -period 10 [get_port clk_1]
create_clock -period 15 [get_port clk_2]

圖1?有兩個時鐘驅動的電路單元

? ? ? ? 對于上面的電路,本意是b_reg觸發器和c_reg觸發器同時受時鐘clk_1或時鐘clk_2之一觸發,但如果不使用set_case_analysis命令,在使用report_timing命令后會出現時鐘clk_2和時鐘clk_1之間的時序分析報告,如圖2、圖3所示,我們真正需要的是圖4的時序報告。

圖2 發射時鐘是clk_2,捕獲時鐘時clk_1

圖3?發射時鐘是clk_2,捕獲時鐘時clk_1

圖4?發射時鐘是clk_2,捕獲時鐘是clk_2

? ? ? ? 下面我們使用set_case_analysis命令,固定選擇端sel的信號為0,時序分析結果如圖5和圖6所示。

set_case_analysis 0 [get_port sel]

圖5 發射時鐘和捕獲時鐘都是clk_2

圖6?發射時鐘和捕獲時鐘都是clk_2

????????下面我們使用set_case_analysis命令,固定選擇端sel的信號為1,時序分析結果如圖7和圖8所示。?

set_case_analysis 1 [get_port sel]

圖7?發射時鐘和捕獲時鐘都是clk_1

圖8?發射時鐘和捕獲時鐘都是clk_1

? ? ? ? set_case_analysis命令還會導致設定的值沿著時序路徑向后傳播,從而打斷某些時序路徑(使這些路徑不能出現信號翻轉),例如對于圖9所示的電路圖。

圖9 一個簡單的例子

????????首先在輸入端口clk定義一個時鐘。

create_clock -period 10 [get_port clk]

? ? ? ? ?此時如果直接使用report_timing命令,則t_reg和data_out_reg之間的時序路徑會正常報告,如圖10所示。

圖9 兩個觸發器間的時序報告

? ? ? ? 現在我們使用set_case_analysis命令固定使能信號enable為0,這就使得與門U4的輸出固定為0,無法翻轉,因此t_reg和data_out_reg之間的時序路徑被打斷了,如圖10所示。

圖10?兩個觸發器間的時序路徑被打斷了

? ? ? 這就相當于編寫Verilog代碼時,直接將與門的一個輸出引腳固定為0,這也會打斷時序路徑(假設電路沒有被邏輯優化),如圖11所示的電路圖。

圖11 編寫代碼時指定引腳值為0

? ? ? ? 在圖11中,我們設法使得某些器件不被優化掉,并構造了一個奇怪的電路圖。此時在邏輯上講,與門的輸出是一個固定值0,此時使用report_timing命令無法看到t_reg和data_out_reg之間的時序路徑,如圖12所示。

圖12?兩個觸發器間的時序路徑被打斷了

? ? ? ? 但是我們再來看一下圖13所示的電路圖(假設電路沒有被邏輯優化),可以看出與門U2的輸出是一個固定值0,但是此時使用report_timing命令可以看到t_reg和data_out_reg之間的時序路徑,如圖14所示。這代表了,即使DC會考慮某些情況下電路的邏輯情況,但不是所有。

圖13?與門U2的輸出引腳值為0

圖14?兩個觸發器間的時序報告

? ? ? ? 如果此時在編寫Verilog代碼時又將enable信號固定為1(假設電路沒有被邏輯優化),則時序路徑又會被打斷,如圖15所示。

圖15?編寫代碼時指定引腳值為0

? ? ? ? ?這代表著,如果在寫Verilog時固定了某個電路中某個引腳或端口的信號值,則這個確定值也會沿著時序路徑傳播,并可能打斷路徑,但推薦使用set_case_analysis命令來完成這一目標。

? ? ? ? 最后要注意的是,確定值的傳播會在到達時序路徑終點而停止,并不會繼續傳播下去,比如圖15中的data_out_reg到輸出端口的時序路徑并不會因為與門U2的輸出為確定值0而被打斷。

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

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

相關文章

HTML5新特性:為Web帶來的翻天覆地變化

隨著互聯網的發展,HTML5作為Web開發的重要里程碑,為我們帶來了一系列令人興奮的新特性和功能。本文將帶領大家探索HTML5的新特性,揭示其對Web技術的巨大影響。 一、介紹 HTML5作為HTML的最新版本,不僅強化了網頁結構與內容&#…

Android 解決引入的三方庫中類名沖突問題

參考: Android開發——如何解決三方庫中的類名沖突問題_android 類沖突-CSDN博客 Android 解決 jar/aar 包類名沖突 - 簡書 實操步驟 1.提前安裝好unzip-5.51-bin,proguard-7.4.0,jarjar-1.4軟件 2.解壓包名沖突的 AAR 文件 進入到需要修…

reach功能的使用

1.reach添加后 1.reach添加后2 2.拷貝reach最后一幀的動作 3.刪除reach(注意畫選時如果reach延長不能直接刪否則以前的動畫也會刪掉,要縮短reach后再刪另外這兩個灰原點也要刪掉否則影響后邊新加clip的對齊會出現亂七八糟的事情) 4.刪除reach后,光標移到…

收藏:數據防泄漏系統推薦,數據防泄漏系統有哪些?

一金融機構在近期發生了一起數據泄露事件。 經過調查,發現是由于一名員工將包含客戶敏感信息的文件通過電子郵件發送給了未經授權的第三方。 這一事件導致客戶數據泄露,給該機構帶來了嚴重的聲譽損失和信任危機。 這一案例凸顯了數據防泄漏系統的重要性…

Neo4j aura 官方網站快速入門新手教精讀-從官方教程學習知識圖譜

Neo4j 官方網站快速入門新手教精讀 本文旨在為Neo4j新手提供一份全面的入門指南。除了基礎的文本解釋,我在里面還插入了每一步驟的詳細截圖或者自己畫的圖,從官方了解知識肯定比自己亂看要權威一些,有看不懂的不要糾結了解大概意思即可&#…

Java中心校智慧校園智慧班牌物聯網平臺源碼

目錄 智慧班牌 班牌首頁 班級信息 課表信息 視頻 圖片 進離校管理 人臉登錄頁 學生個人中心 請假管理 成績管理 家長留言 學生綁卡 學生評價 系統設置 通知管理 值日管理 倒計時 班級德育 班牌模式 1.課堂授課模式 2.家長會簽到模式 3.考場模式 4.班級…

React富文本編輯器開發(一)

這是一個系統的完整的教程,每一節文章的內容都很重要。這個教程學完后自己可以開發出一個相當完美的富文本編輯器了。下面就開始我們今天的內容: 安裝 是的,我們的開發是基于Slate的開發基礎,所以要安裝它: yarn ad…

【貪心算法】Leetcode 122. 買賣股票的最佳時機 II

【貪心算法】Leetcode 122. 買賣股票的最佳時機 II 122. 買賣股票的最佳時機 II貪心算法:整體利潤拆為每天的利潤,只收集每天的正利潤 122. 買賣股票的最佳時機 II ---------------🎈🎈122. 買賣股票的最佳時機 II 題目鏈接&…

【Excel PDF 系列】EasyExcel + iText 庫實現 Excel 轉換 PDF

你知道的越多,你不知道的越多 點贊再看,養成習慣 如果您有疑問或者見解,歡迎指教: 企鵝:869192208 文章目錄 前言轉換前后效果引入 pom 配置代碼實現定義 ExcelDataVo 對象主方法EasyExcel 監聽器 前言 最近遇到生成 …

圖論 - 最小生成樹(Prime、Kruskal)

文章目錄 前言Part 1:Prim算法求最小生成樹1.題目描述輸入格式輸出格式數據范圍輸入樣例輸出樣例 2.算法 Part 2:Kruskal算法求最小生成樹1.題目描述輸入格式輸出格式數據范圍輸入樣例輸出樣例 2.算法 前言 本篇博客介紹兩種求最小生成樹的方法&#xff…

遼寧博學優晨教育視頻:引領安全可靠的學習新風尚

在數字化時代,隨著信息技術的飛速發展,線上教育已成為越來越多人提升自我、拓寬視野的重要選擇。遼寧博學優晨教育視頻憑借其安全可靠的特質,在眾多在線教育平臺中脫穎而出,成為廣大學子信賴的學習伙伴。 一、遼寧博學優晨教育視頻…

MagiskHideProps 使用 props 開啟 android 手機的 ro.debuggable =1 的方法

因為 CDSN 一直不給對舊的文章(特別是邊幅比較長的文章)一直都無法修改,保存,重新發布 一直都是操作超時 我這里是補全 這邊文章中 unity shader - 圣斗士星矢 人物 shader 還原 - GPA 抓幀提取資源、shader,ROOT權…

python 使用curl_cffi 繞過jax3指紋-Cloudflare 5s盾

現在越來越多的網站已經能夠通過JA3或者其他指紋信息,來識別你是不是爬蟲了。傳統的方式比如換UA,加代理是沒有任何意義了,所以這個時候我們就需要使用到curl_cffi 了。 1.TLS 指紋是啥? 在絕大多數的網站都已經使用了 HTTPS&am…

構造pop鏈

反序列化視頻筆記 第一步:找到目標觸發echo調用$flag 第二步:觸發_invoke函數調用appeng函數$varflag.php(把對象當成函數) 第三步:給$p賦值為對象,即function成為對象Modifier卻被當成函數調用&#xff…

加密與安全_探索口令加密算法(PBE)

文章目錄 概述疑問PBE 算法 ( Password Based Encryption)CodePOM實現 小結 概述 加密與安全_探索對稱加密算法中我們提到AES加密密鑰長度是固定的128/192/256位,而不是我們用WinZip/WinRAR那樣,隨便輸入幾位都可以。 這是因為對…

2024最新算法:斑翠鳥優化算法(Pied Kingfisher Optimizer ,PKO)求解23個基準函數

一、斑翠鳥優化算法 斑翠鳥優化算法(Pied Kingfisher Optimizer ,PKO),是由Abdelazim Hussien于2024年提出的一種基于群體的新型元啟發式算法,它從自然界中觀察到的斑翠鳥獨特的狩獵行為和共生關系中汲取靈感。PKO 算法圍繞三個不…

【Ubuntu操作系統】講解

Ubuntu操作系統 1. 前言2. 系統更新3. 安裝編譯工具4. 安裝文本編輯器4.1 Vim4.2 Visual Studio Code 5. 安裝開發庫6. 安裝版本控制系統6.1 Git 7. 安裝數據庫7.1 MySQL7.2 PostgreSQL 8. 安裝編程語言環境8.1 Python8.2 Node.js 9. 安裝其他常用軟件9.1 Chrome瀏覽器9.2 Dock…

MySQL數據庫引擎,以及常用引擎的區別

先看圖: mysql常用引擎包括:MYISAM、Innodb、Memory、MERGE MYISAM: 全表鎖,擁有較高的執行速度,不支持事務,不支持外鍵,并發性能差,占用空間相對較小,對事務完整性沒有…

SpringBoot整合rabbitmq-主題交換機隊列(四)

說明:Topic主題交換機它的大致流程是交換機和一個或者多個隊列綁定,這個綁定的Routingkey是包含通配符的,滿足通配符的隊列會接收到消息。 通配符規則: #:匹配一個或多個詞 *:匹配一個詞 例如&#xff…

2024洗地機深度測評推薦,洗地機哪款值得入手?新手入門必看洗地機選購技巧

洗地機是近年來備受矚目的智能家居產品,它能夠有效地幫助我們節省勞動時間,高效清潔地面,從而減輕我們的勞動負擔。洗地機實現了掃地和拖地的一體化功能,在掃地的同時還能順便完成地面的拖洗工作。配備水箱的設計使得不再需要頻繁…