ISE時序約束筆記6——Timing Groups and OFFSET Constraints
回顧全局OFFSET約束
本文引用地址:http://m.ptau.cn/article/270620.htm在時鐘行中使用Pad-to-Setup和Clock-to-Pad列為所有出于該時鐘域的I/O路徑指定OFFSETs。
為大多數(shù)I/O路徑進行約束的最簡單方法——然而,這將會導致一個過約束的設計。
指定管腳的OFFSET約束
使用Pad-to-Setup和Clock-to-Pad列為每個I/O路徑指定OFFSETs。
這種約束方法適用于只有少數(shù)管腳需要不同的時序約束。
更常用的方法是:
1. 為Pads生成Groups
2. 對生成的指定Groups進行OFFSET IN/OUT約束
雙沿時鐘的OFFSET約束
OFFSET約束指明了FPGA管腳的輸入數(shù)據(jù)和初始時鐘之間的關系。
初始時鐘沿在周期約束定義中出現(xiàn)關鍵詞“高”和“低”。
——高:初始時鐘上升沿(默認),即上升沿鎖存數(shù)據(jù)
——低:初始時鐘下降沿
如果所有的I/O都由時鐘的一個沿控制,那么你可以使用這個關鍵字高或低進行周期約束。
如果兩個沿都用到,你就必須進行兩個OFFSET的約束。
——每個OFFSET對應一個時鐘沿
——DDR寄存器也是這樣使用的一個例子
雙沿時鐘的OFFSET IN約束

輸入數(shù)據(jù)在上升沿或者下降沿之前3ns有效——周期約束為10ns,初始上升沿,占空比為50%。
為每個時鐘沿生成一個時鐘Groups
——輸入時鐘的上升沿,OFFSET = IN 3ns BEFORE CLK;
——輸入時鐘的下降沿,OFFSET = IN -2ns BEFORE CLK;(在初始時鐘的上升沿后2ns = 時鐘下降沿前3ns)
雙沿時鐘的OFFSET OUT約束

輸出數(shù)據(jù)必須在時鐘的上升沿或者下降沿后3ns內(nèi)有效——周期約束為10ns,初始上升沿,占空比為50%。
為每個時鐘沿生成一個時鐘Groups
——輸入時鐘的上升沿,OFFSET = OUT 3ns AFTER CLK;
——輸入時鐘的下降沿,OFFSET = OUT 8ns AFTER CLK;(在初始時鐘的上升沿后8ns = 時鐘下降沿后3ns)
問題思考
特定路徑時序約束如何改善了設計性能?
你如何約束這個設計使其內(nèi)部時鐘頻率達到100 MHz?
輸入(數(shù)據(jù))將在時鐘CLK的上升沿到達前3ns內(nèi)有效。輸出數(shù)據(jù)必須在時鐘CLK的下降沿后4ns內(nèi)穩(wěn)定下來。寫出合適的OFFSET約束?

問題解答
特定路徑時序約束如何改善了設計性能?
——它使得執(zhí)行工具更加靈活的達到你的時序要求。
你如何約束這個設計使其內(nèi)部時鐘頻率達到100 MHz?
——給時鐘信號CLK施加一個10ns的全局周期約束。
寫出合適的OFFSET約束?
——OFFSET = IN 3 ns BEFORE CLK; OFFSET = OUT 4 ns AFTER CLK;
評論