ISE時(shí)序約束筆記6——Timing Groups and OFFSET Constraints
回顧全局OFFSET約束
本文引用地址:http://cafeforensic.com/article/270620.htm在時(shí)鐘行中使用Pad-to-Setup和Clock-to-Pad列為所有出于該時(shí)鐘域的I/O路徑指定OFFSETs。
為大多數(shù)I/O路徑進(jìn)行約束的最簡(jiǎn)單方法——然而,這將會(huì)導(dǎo)致一個(gè)過約束的設(shè)計(jì)。
指定管腳的OFFSET約束
使用Pad-to-Setup和Clock-to-Pad列為每個(gè)I/O路徑指定OFFSETs。
這種約束方法適用于只有少數(shù)管腳需要不同的時(shí)序約束。
更常用的方法是:
1. 為Pads生成Groups
2. 對(duì)生成的指定Groups進(jìn)行OFFSET IN/OUT約束
雙沿時(shí)鐘的OFFSET約束
OFFSET約束指明了FPGA管腳的輸入數(shù)據(jù)和初始時(shí)鐘之間的關(guān)系。
初始時(shí)鐘沿在周期約束定義中出現(xiàn)關(guān)鍵詞“高”和“低”。
——高:初始時(shí)鐘上升沿(默認(rèn)),即上升沿鎖存數(shù)據(jù)
——低:初始時(shí)鐘下降沿
如果所有的I/O都由時(shí)鐘的一個(gè)沿控制,那么你可以使用這個(gè)關(guān)鍵字高或低進(jìn)行周期約束。
如果兩個(gè)沿都用到,你就必須進(jìn)行兩個(gè)OFFSET的約束。
——每個(gè)OFFSET對(duì)應(yīng)一個(gè)時(shí)鐘沿
——DDR寄存器也是這樣使用的一個(gè)例子
雙沿時(shí)鐘的OFFSET IN約束
輸入數(shù)據(jù)在上升沿或者下降沿之前3ns有效——周期約束為10ns,初始上升沿,占空比為50%。
為每個(gè)時(shí)鐘沿生成一個(gè)時(shí)鐘Groups
——輸入時(shí)鐘的上升沿,OFFSET = IN 3ns BEFORE CLK;
——輸入時(shí)鐘的下降沿,OFFSET = IN -2ns BEFORE CLK;(在初始時(shí)鐘的上升沿后2ns = 時(shí)鐘下降沿前3ns)
雙沿時(shí)鐘的OFFSET OUT約束
輸出數(shù)據(jù)必須在時(shí)鐘的上升沿或者下降沿后3ns內(nèi)有效——周期約束為10ns,初始上升沿,占空比為50%。
為每個(gè)時(shí)鐘沿生成一個(gè)時(shí)鐘Groups
——輸入時(shí)鐘的上升沿,OFFSET = OUT 3ns AFTER CLK;
——輸入時(shí)鐘的下降沿,OFFSET = OUT 8ns AFTER CLK;(在初始時(shí)鐘的上升沿后8ns = 時(shí)鐘下降沿后3ns)
問題思考
特定路徑時(shí)序約束如何改善了設(shè)計(jì)性能?
你如何約束這個(gè)設(shè)計(jì)使其內(nèi)部時(shí)鐘頻率達(dá)到100 MHz?
輸入(數(shù)據(jù))將在時(shí)鐘CLK的上升沿到達(dá)前3ns內(nèi)有效。輸出數(shù)據(jù)必須在時(shí)鐘CLK的下降沿后4ns內(nèi)穩(wěn)定下來。寫出合適的OFFSET約束?
問題解答
特定路徑時(shí)序約束如何改善了設(shè)計(jì)性能?
——它使得執(zhí)行工具更加靈活的達(dá)到你的時(shí)序要求。
你如何約束這個(gè)設(shè)計(jì)使其內(nèi)部時(shí)鐘頻率達(dá)到100 MHz?
——給時(shí)鐘信號(hào)CLK施加一個(gè)10ns的全局周期約束。
寫出合適的OFFSET約束?
——OFFSET = IN 3 ns BEFORE CLK; OFFSET = OUT 4 ns AFTER CLK;
評(píng)論