最近在邊學邊開發乙個lattice fpga 專案,需要使用時序約束。
發現 關於lattice fpga io介面的時序約束資料太少了,弄了好久才弄出點眉目這裡先拋磚引玉希望能有高手給指點指點。首先請大家先看一下altera fpga 的時序約束分析
我們會發現由altera的無論input的max delay還是min delay,output的max與min delay 其實一部分是設定的fpga外部器件(包括fpga走線) 的值一部分是設定fpga內部的值,這裡就是altera與lattice的io約束設定不同的地方了。lattice的設定值則是針對fpga 的設定。這是弄了好久才發現的原來是同乙個思路乙個設定外部值(altera),乙個設定內部值(lattice)。這裡就不說明altera的設定了參看上邊引用的**。下面說一下lattice 當然在這之間你是要看明白altera那個的誰讓lattice的資料少呢!那篇是神文呀!嚴重推薦。
好了言歸正傳:
首先設定input_seup
input _setp 的time 值設定實際上就是fpga的io輸入端的tsu_f
tsu_f=tclk-tpcb(max)-tco_d(max)-(tclk_d-tclk_f);
在不考慮時鐘偏斜的基礎上(tclk_d-tclk_f)=0;
tsu_f=tclk-tpcb(max)-tco_d(max)
tclk 時鐘頻率 tco_d外設的輸出最大延時;發現沒(tpcb(max)+tco_d(max))這個就是altera的輸入最大延時(不考慮偏斜的)
hold time 就是th_f;
th_f<=tco_d(min)+tpcb(min);這個和altera是一樣的。tco_d(min) 就是外部器件的to_h_d(輸出hold值)
下面是關於這個的時序分析:
可以看到在時序分析中,可以看出time就是setup值:tsu_f就是data required 4ns;時間寬容=req(必須時間)-arrival(到達時間),可以這樣理解 required 是給fpga 資料傳送的最大時間限制 而arrival時間是資料輸入到fpga要是用該資料的各個模組中暫存器的時間 必須保證有這個時間資料才能傳送到。所以時間寬容就=給定的必須完成資料穩定輸入的時間req-到達使用該資料路徑消耗的時間。
th_f就更沒什麼說的了理解的方式一樣 slack=req-arri。
再來說說clock_to_out
這裡的time 其實就是fpga的tco(max)的最大允許值。mintime 其實就是fpga輸出的th_of(輸出hold值)
tco(max)=tclk-tco_d(max)-tpcb(max);不考慮偏斜的;
tco_d(max)+tpcb(max) 眼熟不 這有是alera的設定值。
th_of+tpcb>=tco(min)_d
th_of>=tco(min)_d-tpcb;
下面是關於這個的時序分析:
首先我們看到輸入的time其實就是tco_f 也是一種逆向的setup呵呵。
slack(時間寬鬆)=req(必須時間tco_f最大值time)-arrival。這樣理解資料需要通過的各個模組路徑要arrival時間才能輸出
而規定的最晚輸出時間是req ,因此slack(時間寬鬆)=req(必須時間tco_f最大值time)-arrival。
再看保持時間th_of
我們看到關於min time 其實就是th_of 就req. slack=arri-req.
可以這樣理解,系統設計要求的fpga保持時間最小值(th_of
MySQL 檢視約束,增添約束,刪除約束
mysql 檢視約束,新增約束,刪除約束 檢視表的字段資訊 desc 表名 檢視表的所有資訊 show create table 表名 新增主鍵約束 alter table 表名 add constraint 主鍵 形如 pk 表名 primary key 表名 主鍵字段 新增外來鍵約束 alter...
XML約束 DTD約束
xml語法 規範的 xml檔案的基本編寫規則。有 w3c組織制定的 xml約束 規範 xml檔案資料內容格式的編寫規則。由開發者自定義 dtd約束 語法相對簡單,功能相對簡單,學習成本相對低 schema約束 語法相對複雜,功能相對複雜,學習成本相對高 命名空間 1 匯入dtd方式 a 內部匯入 x...
XML約束 schema約束
1.什麼是schema約束?優勢在哪?xml的約束有兩種,分別是dtd約束和schema約束。因為dtd約束有很大的侷限性,所以我們通常都使用schema約束。優勢 2.xml schema約束開發 xml schema 檔案自身就是xml檔案,但他的副檔名通常為.xsd。和xml檔案一樣,xml ...