時序約束高級進階使用詳解二:Set_Min_Delay

目錄

一、前言

二、設計示例

2.1 示例代碼

2.2 時序約束

三、Set_min_delay

3.1 start points

3.1.1 對象有效性

3.1.2 邊沿有效性

3.1.3 start point非有效起點

3.2 Through?points

3.2.1?約束對象為Cells

3.2.2 約束對象為Cell pin/Net

3.3 to points

3.4?rise/fall

3.5?Reset path

3.6?多對象設置

?3.7?Max_delay 與?Min_deay


一、前言

????關于Set_max_delay/Set_min_delay的基礎用法之前的文章已進行過簡單的介紹,主要作用就是修改時序路徑默認的setup/recovery或hold/removal時間要求,本章將對約束Set_min_delay的一些細節使用進行解釋。

二、設計示例

????以一個簡單的3個觸發器為例,包含同步時鐘路徑和異步時鐘路徑,以異步時鐘路徑為主

2.1 示例代碼

module MAX_MIN(d1,clk1,clk2,ce,ff3);
input d1,clk1,clk2,ce;
output ff3;
reg ff1,ff2,ff3;
wire bus;
always@(posedge clk1,negedge ce)
begin
if(!ce)
begin
ff1<=0;
end
else begin
ff1<=d1;end
endalways@(posedge clk2,negedge ce)
begin
if(!ce)
ff2<=0;
else begin
ff2<=ff1;
end
endassign bus=ff2+ff1;
always@(posedge clk2)
begin
if(!ce)ff3<=0;else beginff3<=bus;end
end
endmodule

連接關系如下圖,clk1中同步時序路徑下,ff1_reg到ff2_reg,clk1與clk2的異步時序路徑中,ff1_reg和ff2_reg邏輯運算后輸出到ff3_reg

2.2 時序約束

此處主要是主時鐘約束

create_clock -period 10.000 -name clk1 -waveform {0.000 5.000} -add [get_ports clk1]
create_clock -period 8.000 -name clk2 -waveform {0.000 4.000} -add [get_ports clk2]

三、Set_min_delay

Set_min_delay約束的設置中,不僅可以指定起點,中間點,終點,還可以設置對應單元生效的上升沿或下降沿,生成時序報告時建議將配置nworst和max path設大,可報告出所有路徑

3.1 start points

start points為set_mix_delay約束的時序路徑起點,需為時序路徑的有效起點,可為Clock,Cell,Cells pin,IO port

3.1.1 對象有效性

以clock為clk2為例,設置約束如下

set_min_delay -rise_from [get_clocks clk2] 1.111

只有以clk2為源時鐘,并且上升沿觸發的時序路徑約束才會生效

源時鐘為clk1,目的時鐘為clk2的不屬于約束范圍

3.1.2 邊沿有效性

對源時鐘為clk1,下降沿的路徑設置min_delay

set_min_delay -fall_from [get_clocks clk1] 1.111

下面ff1_reg到ff2_reg的路徑因為clk1為上升沿,因此min_delay約束不生效

將約束設置為clk1的上升沿有效

set_min_delay -rise_from [get_clocks clk1] 1.111

此時約束生效

3.1.3 start point非有效起點

將ff1_reg/D設置為min_delay的起點,因為ff1_reg/D不是有效的時序路徑起點,約束不會生效

set_min_delay -from [get_pins ff1_reg/D] 1.111

同時有對應的告警

如果將ff1_reg/C設置為max_delay的起點,同時上升沿有效

set_min_delay -rise_from [get_pins ff1_reg/C] 1.111

以path29的結果看出,符合上述約束條件,因此約束生效

3.2 Through?points

3.2.1?約束對象為Cells

約束對象為Cell時,設置的Transition邊沿是直接對該單元的相應邊沿生效,查看的路徑都是ff1_reg到ff3_reg的時序路徑

a)以經過中間的組合邏輯ff3_i_1(LUT2)為例,Transition默認為rise/fall,即上升沿下降沿都支持,在Transition為默認值時,約束命令如下

set_min_delay -through [get_cells ff3_i_1] 1.111

查看對應的時序報告結果,此時ff3_i_1使用為上升沿時約束生效

查看ff3_i_1為下降沿時的路徑,約束依舊生效

b)修改約束,指定Transition為下降沿fall_through

set_min_delay -fall_through [get_cells ff3_i_1] 1.111

此時時序路徑中ff3_i_1為下降沿的4條路徑,約束生效

ff1_reg到ff3_reg的另外4條路徑中因為ff3_i_1為上升沿,故約束不生效

3.2.2 約束對象為Cell pin/Net

當through point的對象更加具體,如為pin時,此時Transition是體現在對應對象的時序邊沿上

a)修改約束對象為pin,指定ff3_i_1/I0為下降沿fall_through

set_min_delay -fall_through [get_pins ff3_i_1/I0] 1.111

時序報告中,ff2_reg到ff3_reg中約束生效的4條路徑中,ff3_i_1前面連接的ff2_reg都為下降沿觸發

對于另外4條ff2_reg到ff3_reg約束未生效的的時序路徑中,ff2_reg為上升沿觸發,故不屬于約束生效的范圍

3.3 to points

to points的與start points的使用相同,可參見start piont的介紹

3.4?rise/fall

在options中勾選Only rising/falljing path delays are to be constrained,下拉框中選擇rising/falling可對約束路徑設置邊沿生效,邊沿為終點數據端口的邊沿

以下列約束rise為例

set_min_delay -rise -from [get_clocks clk1] 2.222

第29號路徑生效,對應data path中ff2_reg/D的邊沿為上升沿

第17號路徑中,data path中 ff2_reg/D的邊沿為下降沿,故不生效

3.5?Reset path

Set min?delay約束中存在一個配置項"Remove existing path exceptions before setting path delays",即約束的路徑上如果已存在max_delay時序約束時是否被新的覆蓋

以如下兩條約束為例,

set_min_delay -from [get_clocks clk1] -to [get_clocks clk2] 1.111
set_min_delay -from [get_clocks clk1] 2.222

第二條max_delay無reset_path時,盡管第二條是后加的,但生效的是第一條約束1.111

如果第二條約束添加-reset_path,則會覆蓋第一條的約束

set_min_delay -from [get_clocks clk1] -to [get_clocks clk2] 1.111
set_min_delay -reset_path -from [get_clocks clk1] 2.222

報告結果如下圖

3.6?多對象設置

????start/through/to中也可以同時設置多個對象,將同時生效。如下圖中對from為ff1_reg/C和ff2_reg/C的時序路徑都設置max delay為2.222ns

set_min_delay -from [get_pins {ff1_reg/C ff2_reg/C}] 2.222

相關路徑都將生效

?3.7?Max_delay 與?Min_deay

set_max_delay和set_min_delay的使用較多共同之處,下面對其它們的特點進行總結

1)set_max_delay為約束setup/recovery的requirement時間,set_min_delay為約束hold/removal的requirement時間,二者相互獨立

2)set_max_delay支持通過設置datapath only只考慮發起時鐘的數據路徑延遲,set_min_delay不支持

3)set_max_delay如果設置了datapath only,則不會對對應的路徑進行hold分析,即不存在hold路徑

4)set_max_delay如果設置了datapath only,必須設置from對象

5)set_max_delay/set_min_delay不適合用于輸入端口/輸出端口到對應時序單元的路徑約束,輸入端口/輸出端口的約束應使用set_input_delay/set_output_delay

6)set_max_delay/set_min_delay如果約束的不是有效的起點或終點,會出現時序分段現象,即該位置的前面(from)或后面(to)的時序傳播會斷開,使約束的位置稱為有效的起點或終點,其他經過約束位置的路徑全部受影響

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

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

相關文章

2025-4-12-C++ 學習 XOR 三元組 異或 急轉彎問題

C的學習必須更加精進一些&#xff0c;對于好多的函數和庫的了解必須深入一些。 文章目錄 3513. 不同 XOR 三元組的數目 I題解代碼 3514. 不同 XOR 三元組的數目 II題解代碼 晚上&#xff0c;10點半&#xff0c;參加了LC的競賽&#xff0c;ok了一道&#xff0c;哈哈~ ??第二道…

圖像形態學操作對比(Opencv)

形態學基于圖像的形狀進行操作&#xff0c;用于處理二值化圖像&#xff0c;主要包括腐蝕和膨脹兩種基本操作。這些操作通常用于去除噪聲、分隔或連接相鄰的元素以及尋找圖像中顯著的最大點和最小點。 1. 形態學操作 import cv2 import numpy as np import matplotlib.pyplot …

sql 向Java的映射

優化建議&#xff0c;可以在SQL中控制它的類型 在 MyBatis 中&#xff0c;如果返回值類型設置為 java.util.Map&#xff0c;默認情況下可以返回 多行多列的數據

excel中的VBA指令示例(一)

示例注釋&#xff1a; Sub 宏1() sub是宏開頭&#xff0c;宏1是宏的名稱&#xff0c;自定義&#xff0c;在按鈕中可指定用某個宏 后面是注釋 Sheets("裝配材料").Select ‘選擇表 裝配材料 Ce…

【Linux C】簡單bash設計

主要功能 循環提示用戶輸入命令&#xff08;minibash$&#xff09;。創建子進程&#xff08;fork()&#xff09;執行命令&#xff08;execlp&#xff09;。父進程等待子進程結束&#xff08;waitpid&#xff09;。關鍵問題 參數處理缺失&#xff1a;scanf("%s", buf)…

【vue】基礎

一、vi-if 1.1基本使用 必須綁定大盒子包住的代碼&#xff0c;使用id或者class都可以進行綁定 new Vue({ el:"#id" el:".class" }) 1.2v-if和v-show的區別 v-show會渲染&#xff0c;但是不顯示&#xff0c;v-if不渲染不顯示 1.3vue實例的作用范圍 必須包…

【數據結構_5】鏈表(模擬實現以及leetcode上鏈表相關的題目)

書接上文&#xff0c;繼續編寫鏈表的功能 4.鏈表的中間插入 在鏈表中&#xff0c;本身是沒有下標這樣的概念的&#xff0c;不像順序表&#xff0c;順序表根據下標訪問元素&#xff0c;O(1)復雜度。鏈表需要遍歷之后找到正確的位置才能進行插入&#xff0c;為O&#xff08;N&a…

C語言的發展史

一、起源 C語言的起源可以追溯到20世紀60年代末期。其前身是BCPL&#xff08;Basic Combined Programming Language&#xff09;語言&#xff0c;由劍橋大學的Martin Richards于1967年在CPL語言的基礎上簡化而來。1970年&#xff0c;美國貝爾實驗室的Ken Thompson以BCPL語言為…

深入解析棧式虛擬機與反向波蘭表示法

1.1 什么是虛擬機&#xff1f; 虛擬機&#xff08;Virtual Machine, VM&#xff09;是一種軟件實現的計算機系統&#xff0c;提供與物理計算機相類似的環境&#xff0c;但在軟件層面運行。虛擬機的存在簡化了跨平臺兼容性、資源管理以及安全隔離等問題。 1.2 棧式虛擬機的架構…

ubuntu 系統安裝Mysql

安裝 mysql sudo apt update sudo apt install mysql-server 啟動服務 sudo systemctl start mysql 設置為開機自啟 sudo systemctl enable mysql 查看服務狀態 &#xff08;看到類似“active (running)”的狀態信息代表成功&#xff09; sudo systemctl status mysql …

《前端面試題之 CSS篇(第一集)》

目錄 1、CSS的盒模型2、CSS選擇器及其優先級3、隱藏元素的方法有那些4、px、em、rem的區別及使用場景5、重排、重繪有什么區別6、水平垂直居中的實現7、CSS中可繼承與不可繼承屬性有哪些8、Sass、Less 是什么&#xff1f;為什么要使用他們&#xff1f;9、CSS預處理器/后處理器是…

HTTP:四.HTTP連接

HTTP(Hypertext Transfer Protocol)是一種用于傳輸超文本數據的應用層協議。它是互聯網上最常用的協議,用于在客戶端和服務器之間傳輸數據。HTTP協議通常用于從Web服務器傳輸網頁和文件到客戶端瀏覽器,并支持其他用途,如傳輸API數據和傳輸文件。 HTTP連接是指客戶端向服務…

opencv 識別運動物體

import cv2 import numpy as npcap cv2.VideoCapture(video.mp4) try:import cv2backSub cv2.createBackgroundSubtractorMOG2() except AttributeError:backSub cv2.bgsegm.createBackgroundSubtractorMOG()#形態學kernel kernel cv2.getStructuringElement(cv2.MORPH_REC…

要查看 ??指定 Pod 的資源限制(CPU/內存)

要查看 指定 Pod 的資源限制&#xff08;CPU/內存&#xff09;&#xff0c;可以通過以下 kubectl 命令實現&#xff1a; 1. 快速查看某個 Pod 的資源限制 kubectl get pod <pod-name> -o jsonpath{.spec.containers[*].resources} | jq輸出示例&#xff1a; {"lim…

信息安全管理與評估廣東省2023省賽正式賽題

任務1&#xff1a;網絡平臺搭建(60分) 題號 網絡需求 1 根據網絡拓撲圖所示&#xff0c;按照IP地址參數表&#xff0c;對DCFW的名稱、各接口IP地址進行配置。&#xff08;10分&#xff09; 2 根據網絡拓撲圖所示&#xff0c;按照IP地址參數表&#xff0c;對DCRS的名稱進…

IBM Rational Software Architect安裝感受及使用初體驗

1 安裝感受 最近準備用UML 2.0繪制模型圖。在讀UML創始人之一Grady Booch寫的書《Object-Oriented Analysis and Design with Applications》&#xff08;第3版&#xff09;1時&#xff0c;發現書中用的UML工具之一為IBM Rational Software Architect&#xff08;RSA&#xff…

接聽電話,手機靠近耳朵后拿開,掛斷電話,設備自動鎖屏

目錄 一、問題分析/需求分析 二、解決方案 一、問題分析/需求分析 先說一下大致流程: 首先是打電話過程會啟動PROXIMITY(接近光傳感器)用于監聽手機是否到耳邊,當手機到耳邊時進行滅屏處理,滅屏過程中會調用到鎖屏,所以最終會導致鎖屏 詳細流程分析: 首先根據日志看…

21天Python計劃:零障礙學語法(更新完畢)

目錄 序號標題鏈接day1Python下載和開發工具介紹https://blog.csdn.net/XiaoRungen/article/details/146583769?spm1001.2014.3001.5501day2數據類型、字符編碼、文件處理https://blog.csdn.net/XiaoRungen/article/details/146603325?spm1011.2415.3001.5331day3基礎語法與…

Honor of Kings (S39) 13-win streak

Honor of Kings (S39) 13-win streak S39賽季13連勝&#xff0c;莊周&#xff0c;廉頗硬輔助&#xff0c;對面有回血就先出紅蓮斗盆&#xff0c;有遇到馬克沒帶凈化的&#xff0c;出【冰霜沖擊】破他大招 S39&#xff0c;莊周廉頗前排硬輔助全肉全堆血13連勝_嗶哩嗶哩bilibi…

AI技術實戰:從零搭建圖像分類系統全流程詳解

AI技術實戰&#xff1a;從零搭建圖像分類系統全流程詳解 人工智能學習 https://www.captainbed.cn/ccc 前言 本文將以圖像分類任務為切入點&#xff0c;手把手教你完成AI模型從數據準備到工業部署的全鏈路開發。通過一個完整的Kaggle貓狗分類項目&#xff08;代碼兼容PyTorch…