最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

FPGA設(shè)計時序約束七、設(shè)置時鐘不確定約束

2023-10-26 21:44 作者:行中悟_悟中行  | 我要投稿

一、背景

????在之前的時序分析中,通常是假定時鐘是穩(wěn)定理想的,即設(shè)置主時鐘周期后按照周期精確的進(jìn)行邊沿跳動。在實際中,時鐘是非理想存在較多不確定的影響,存在時延和波形的變化,要準(zhǔn)確分析時序也需將其考慮進(jìn)來,下面將對其進(jìn)行介紹。

二、時鐘例外

????Vivado的時序約束中,考慮時鐘不穩(wěn)定影響的約束包括set_clock_latency,

set_clock_uncertainty,set_input_jitter,set_system_jitter,這些約束可分為兩類:clock latency和clock uncertainty

2.1 clock latency

????信號從外部傳輸?shù)紽PGA內(nèi)部后,時鐘到達(dá)內(nèi)部的目的地存在確定的時延,該時延包括源點的延時(source latency)和網(wǎng)絡(luò)延時(network latency,也稱為插入時延)。source latency表示時鐘信號從波形的起點傳輸?shù)叫酒袋c引腳的時延,時鐘網(wǎng)絡(luò)時延表示時鐘信號從芯片源點引腳到芯片寄存器時鐘引腳的時延。

????網(wǎng)絡(luò)延時在預(yù)布線階段會分析工具自動的估算,在完成布線后可以精確的計算。在許多非賽靈思的時序分析工具中,要求設(shè)置set_propagated_clock約束來計算時鐘樹上的傳輸延時。vivado不需要該命令,會默認(rèn)自動考慮所有時鐘的傳輸時延,對于生成時鐘的時延,包含主時鐘的插入時延和自身的網(wǎng)絡(luò)時延。

????賽靈思器件使用set_clock_latency約束主要是約束器件外部的時鐘時延,約束命令設(shè)置界面如圖

Relative clocks:設(shè)置與指定對象objects相關(guān)聯(lián)的時鐘時延,為可選項。

Latency type:選擇時延類型,可以是Source或Network,未進(jìn)行設(shè)置時,默認(rèn)為Network

Latency value:設(shè)置時延值應(yīng)用的分析類型,min為hold,max為setup,不勾選時,對setup/hold分析都有效。

Source latency variation bound:在latency type選Source才能設(shè)置該項,設(shè)置時鐘延時是早于early還是晚于late時鐘邊沿到達(dá),early表示應(yīng)用于hold分析,late應(yīng)用于setup分析,不設(shè)置時對setup/hold分析都有效

Operating condition:設(shè)置延時

Clock rise latency/Clock fall latency:設(shè)置時延是針對上升沿觸發(fā),下降沿觸發(fā),還是對兩者都觸發(fā)的場景

Object:時鐘時延約束的對象,可以是clocks,cell pins,I/O port

2.2 clock uncertainty

clock uncertainty包含clock jitter,input jitter,system jitter

2.2.1 clock jitter

對于ASIC器件來說,時鐘抖動clock jitter通常表示時鐘不確定的特征,但對于FPGA來說,時鐘抖動是可預(yù)知的,時序分析工具會自動計算時鐘抖動。

2.2.2 input jitter

輸入抖動input jitter是指與理想的連續(xù)時鐘到達(dá)時間相比,連續(xù)的時鐘邊沿到達(dá)時間存在變化,輸入抖動是一個絕對值,代表了每一個時鐘沿的變動。使用set_input_jitter約束可以設(shè)置每一個主時鐘的輸入抖動,但不能直接對生成時鐘設(shè)置時鐘抖動,時序分析工具會自動的根據(jù)主時鐘的輸入抖動計算生成時鐘的時鐘抖動。

a)對于來自于MMCM或PLL的生成時鐘,將用一個獨立的抖動值來替代時鐘抖動

b)對于來自組合邏輯的生成時鐘,生成時鐘的時鐘抖動和主時鐘相同

set_input_jitter設(shè)置方式簡單,對象只能為clock。


系統(tǒng)抖動system jitter是由于電源供電噪聲,板級噪聲,或其他系統(tǒng)的抖動一起引起的抖動,使用約束命令set_system_jitter設(shè)置的抖動是針對整個設(shè)計,所有的時鐘。

以經(jīng)過主時鐘的時鐘輸入端口clkin設(shè)置%5Cpm%20100ps的時鐘抖動為例

2.2.3 additional clock uncertainty

使用set_clock_uncertainty可以對不同的場景,延時或者是需要的時鐘關(guān)系設(shè)置時鐘不確定性,對于設(shè)置中的部分添加時序裕量是一種很方便的方式。

Clock uncertainty type:有兩種設(shè)置不確定性方式,simple uncertainty和interclock uncertainty。simple uncertainty是針對同步時鐘,objects可以是Cell pins,clocks,I/O port,interclock uncertainty針對異步時鐘,需設(shè)置-from和-to參數(shù)

跨時鐘間的不確定性總是優(yōu)于簡單的時鐘不確定性,不受約束順序的影響。以下面約束為例,盡管第二條簡單的不確定約束放在后面,從clk1到clk2的時序路徑不確定性依舊為2ns

當(dāng)在跨時鐘域的兩個時鐘間設(shè)置了不確定約束時,需確保約束了兩個時鐘域間所有的跨時鐘域路徑,如clk1到clk2,clk2到clk1。

三、工程設(shè)計

?工程代碼

a)無時鐘不確定約束時,路徑中clock uncertainty也存在,時序分析工具會自動計算Total system jitter,此處為0.071,按照公式(Tsj^2+Tij^2+DJ)/2+PE的值為0.035。

b) 設(shè)置set_clock_latency約束

時序分析報告,setup分析中source clock path路徑的clock source latency為0.8

c) 設(shè)置set_clock_uncertainty值為2.660,因為設(shè)計中clk1和clk2為異步時鐘域,Clock uncertainty type選擇interclock uncertainty。

查看時序路徑中setup或hold路徑的Clock uncertainty為2.695ns,該值的計算可以看右側(cè)中的計算公式(Tsj^2+Tij^2+DJ)/2+PE+UU。UU為用戶約束的不確定值,即為2.66ns,和約束值一致。

同理,查看路徑的clock path skew,通過clock path skew equation可以知道計算方式,DCD-SCD-CPR

d) 設(shè)置set_input_jitter為1.66ns

查看setup路徑中clock uncertainty值為0.831ns,查看計算使用值中total input jitter為1.66ns,和約束值一致

四、參考資料

用戶手冊:ug903-vivado-using-constraints-en-us-2022.2.pdf

鏈接:https://pan.baidu.com/s/17AK_-J4wRXiFLtLTorlrwg?pwd=mylt?

提取碼:mylt??


FPGA設(shè)計時序約束七、設(shè)置時鐘不確定約束的評論 (共 條)

分享到微博請遵守國家法律
祥云县| 浑源县| 梅州市| 闻喜县| 顺义区| 长治县| 抚松县| 景德镇市| 永寿县| 光山县| 平谷区| 裕民县| 七台河市| 温州市| 微山县| 娱乐| 教育| 库车县| 甘孜| 民丰县| 静海县| 马公市| 深水埗区| 凤山市| 娱乐| 商城县| 仁怀市| 理塘县| 神农架林区| 昔阳县| 玛曲县| 镇远县| 长垣县| 唐河县| 丰顺县| 玛多县| 汝南县| 阳信县| 六安市| 朝阳县| 昂仁县|