Tsu/Tco 在Quartus II 的報告中有兩種不同含義.
1. 片內的Tsu/Tco 是指前級觸發(fā)器的Tco 和后級觸發(fā)器的Tsu, 一般來說都是幾百ps 級別的. 可以通過“List Paths”命令查看。這里的Tsu/Tco 主要由器件工藝決定, 工作時在受到溫度,電壓的影響略有變化.(如下圖所示)
2. 管腳上的Tsu/Tco 它是保證系統(tǒng)Famx 重要的Timing 元素(如下圖示). 比如: 兩個芯片之間工作在100MHZ, 因為100M 的周期為10ns, (現(xiàn)忽略PCB 走線的延遲), 如果某信號對FPGA 來說是輸入, 那么前級芯片的Tco 加上FPGA 的Tsu 就不能夠超過10ns. 如果某信號對于FPGA 來說是輸出,那么FPGA 的Tco 加上后級芯片的Tsu 也不能夠超過10ns. 只有這樣,才能夠保證片間通信正常。因此對FPGA 的管腳進行適當?shù)腡co/Tsu 的時序約束,是至關重要的Timing 設計技巧.
管腳上的Tsu/Tco 分為以下三個部分.
1) IOE 走線的延遲. 這個延遲在管腳的Tsu/Tco 延遲中占有相當?shù)谋壤?Altera 的器件為了降低Tsu/Tco 在IOE 上的延遲, 專門在IOE 中設置了兩種類型的觸發(fā)器, 即 : Fast Input register(FPGA 的管腳為輸入時,優(yōu)化Tsu), Fast Output Register(FPGA 的管腳為輸出時,用于優(yōu)化Tco)
2) 內部邏輯走線的延遲。在Altera 的FPGA 中, 由若干個基本資源LE 構成一個LAB,比如: Stratix Gx 是10 個LE 組成一個LAB. LAB 橫向和縱向排列形成陣列. 在FPGA 中,以LAB 為基本單元, 根據(jù)走線長度的不同,分為C4(表示橫跨4 個LAB 的走線資源),C8,C16,R4,R8,16,R24 等不同的走線資源,不同的器件支持不同的走線資源。
3) 觸發(fā)器的Tsu/Tco 的需求,這里的Tsu/Tco, 這是由器件工藝決定的,最小的Tsu/Tco 的要求. 在實際的工作環(huán)境中,受溫度,電壓的變化有微小的變化.
前面提到:對FPGA 的管腳進行適當?shù)腡co/Tsu 的時序約束,是至關重要的Timing 設計技巧.關鍵是在出了問題的時候,怎么去解決?
Quartus II 有四處可以對Tsu/Tco 進行約束.
1. 全局時序約束. 在Quartus II 中執(zhí)行Assignments..Timing Setting 彈出如下界面.設計者可以根據(jù)系統(tǒng)Fmax 的要求去約束Tsu/Tco.
2. 執(zhí)行Assignments..Assignment Editor 命令,得到如下界面.設計者可以根據(jù)本設計的要求,對輸入/輸出管腳設置Tsu/Tco 的約束;也可以約束內部觸發(fā)器的Tsu/Tco 的值。(如下圖所示)
3.執(zhí)行Assignments.. Assignment Editor 命令,選擇”All”或者”Logic Options” ,對管腳進行Tsu/Tco 的約束.
在”To” 選擇對應的管腳,在Assignment Name 中選擇”Fast Input Register” 來約束Tsu, 選擇”Fast Output Register” 來約束Tco. 這也是邏輯工程師通常說的: 為減少Tsu/Tco 的值,放到IOE 中.
4. 修改布線后的底層電路.
執(zhí)行Processing..Compilation Report 命令. 在Resource Section..Input Pins/Output Pins 中
選中對應的輸入輸出管腳(如下圖所示).
執(zhí)行Locate..Locate to Chip Editor 命令.得到如下界面.
選中的管腳在Chip Editor 中已經(jīng)被HighLight( 如上圖所示). 雙擊Highlight 的的管腳,得到下圖界面.
這里的參數(shù)就是該管腳在布線后所有的參數(shù),并不是每個參數(shù)都可以修改.比如: 對LVDS 電平標準,Current Strength 就不能夠修改等.對于LVTTL 電平標準,Current Strength 就有2,4,8,16,24mA 可以修改.
設計者可以根據(jù)設計的需求來Enable 或者Disable Fast Input Register/Fast Output Register 屬性,可以修改輸入管腳到邏輯陣列的延遲和輸出管腳到邏輯陣列的延遲等.
修改完成后,這時不能夠再編程工程,只需要執(zhí)行Processing..Start..Start Assembler 更新編程sof 文件和pof 文件即可。