對于異步時(shí)鐘有四種方法進(jìn)行約束。本文介紹了每種方法的優(yōu)缺點(diǎn):
1、set_false_path
這是最原始的方法,在時(shí)序分析設(shè)計(jì)早期比較流行。
這種方法有兩個(gè)缺點(diǎn):
a.兩個(gè)方向都需要約束:clock1->clock2 以及 clock2->clock1
b.該路徑?jīng)]有時(shí)序要求,因此理論上路徑延遲完全依賴于所使用的工具。而且這兩種路徑可能導(dǎo)向不同的節(jié)點(diǎn),因?yàn)槲覀儧]有辦法規(guī)范它們來滿足任何具體的要求。
2、set_clock_groups
該方法已被引入 SDC 中,與方法 1 相比有以下三個(gè)主要優(yōu)點(diǎn):
a.只需要指定源時(shí)鐘與目的時(shí)鐘,盡量減少 XDC/SDC 文件的長度
b.與set_false_path方法相同,這里的路徑也沒有時(shí)序要求。但是它考慮到了信號(hào)完整性方面的問題,而set_false_path方法并沒有
c.在基于 FPGA 設(shè)計(jì)領(lǐng)域,可以說這是不重要的,因?yàn)樵谠O(shè)計(jì) FPGA 器件時(shí)信號(hào)完整性方面已經(jīng)被考慮到了
d.這種方法帶點(diǎn)哲學(xué)思辯的方法論
e.當(dāng)我們使用set_false_path方法時(shí),只是指定了這條路徑是錯(cuò)誤的,但是并沒有明確的解釋路徑錯(cuò)誤的原因
f.拿異步時(shí)鐘來舉例,在實(shí)際情況下,路徑并不是錯(cuò)誤,所以時(shí)鐘信號(hào)會(huì)通過這條路徑,set_false_path則可作為一種機(jī)制來告知工具,時(shí)鐘信號(hào)不約束走這條路徑。
在set_clock_groups這種方法中,我們指定了準(zhǔn)確的原因,即為什么每個(gè)時(shí)鐘信號(hào)組是不同的。實(shí)際上它們不能進(jìn)行時(shí)序約束的原因完全是由你的意圖決定的。因此這也可以作為一個(gè)注意事項(xiàng),可以更加容易理解具體約束設(shè)計(jì)的原因。
通常情況下方法 2 要優(yōu)于方法 1,主要是因?yàn)橐陨系?b 和 c 因素,其次 a 因素也是比較重要的。
3、set_multicycle_path
大約在21世紀(jì)中期的時(shí)候,設(shè)計(jì)者開始從set_false_path方法轉(zhuǎn)向set_multicycle_path方法。方法 1 和方法 2 并沒有約束一個(gè)路徑 —— 每條路徑的延遲是任意的。這種方法提供了跨越某個(gè)節(jié)點(diǎn)的路徑的延遲上限規(guī)定。
4、set_max_delay
這種方法的效果與方法 3 相同。Vivado工具里面有‘-datapath_only’選項(xiàng),這讓設(shè)計(jì)者操作起來更簡單,不用擔(dān)心時(shí)鐘偏移情況的發(fā)生。同時(shí)與set_multicycle_path方法相比,set_max_delay方法更能表現(xiàn)出設(shè)計(jì)者的意圖。
如果你想選一種方法,我建議的順序是:4>2>3>1,有時(shí)我更傾向于選擇方法 2。
舉個(gè)例子,如果我正在進(jìn)行一個(gè)局部的模塊設(shè)計(jì),這個(gè)模塊還可以用于其他不同的應(yīng)用,而且我不清楚這個(gè)部分會(huì)在什么外部設(shè)備或者器件上實(shí)現(xiàn)。這種情況下我也不確定max_delay值具體是多少合適,那么處于安全起見我會(huì)選擇方法2而不是方法4。
如果使用 Xilinx 提供的工具,我們可以借助 Vivado 來設(shè)置時(shí)鐘周期,在這個(gè)例子中我會(huì)根據(jù)時(shí)鐘周期來設(shè)置具體的延遲,因此我可能更希望采用方法 4。
然而,根據(jù)個(gè)人的選擇/需求/熟悉程度,不同的人可能有不同的選擇。
關(guān)于作者:Sanjay Churiwala
賽靈思公司工具與方法學(xué)應(yīng)用專家,1993年畢業(yè)于印度理工學(xué)院電子工程專業(yè),一直從事 VLSI 和 EDA 相關(guān)領(lǐng)域的工作。2011年加入賽靈思公司,專攻庫特性描述與建模,HDL,仿真與綜合,靜態(tài)時(shí)序分析以及跨時(shí)鐘域(CDC)與同步相關(guān)內(nèi)容。
-
賽靈思
+關(guān)注
關(guān)注
33文章
1797瀏覽量
132316 -
約束
+關(guān)注
關(guān)注
0文章
82瀏覽量
12965 -
異步時(shí)鐘
+關(guān)注
關(guān)注
0文章
17瀏覽量
9509
發(fā)布評論請先 登錄
FPGA時(shí)序約束之衍生時(shí)鐘約束和時(shí)鐘分組約束
時(shí)序約束之時(shí)鐘組約束
xilinx時(shí)序分析及約束
同步和異步時(shí)鐘之間是如何聯(lián)系_如何正確的約束時(shí)鐘
硬件設(shè)計(jì)中教你如何正確的約束時(shí)鐘
多時(shí)鐘域的同步時(shí)序設(shè)計(jì)和幾種處理異步時(shí)鐘域接口的方法

簡述FPGA時(shí)鐘約束時(shí)鐘余量超差解決方法

時(shí)鐘周期約束詳細(xì)介紹
詳解數(shù)字設(shè)計(jì)中的時(shí)鐘與約束

同步時(shí)鐘和異步時(shí)鐘詳解

時(shí)序約束---多時(shí)鐘介紹

約束、時(shí)序分析的概念

異步電路中的時(shí)鐘同步處理方法
時(shí)序約束一主時(shí)鐘與生成時(shí)鐘

評論