|
玩轉Vivado之Timing Constraints 特權同學,版權所有 最近在熟悉Xilinx已經推出好幾年的Vivado,雖然特權同學之前已經著手玩過這個新開發工具,但只是簡單的玩玩,沒有深入,這回得以靜下心做些研究,并且純粹是在Vivado軟件的使用方面。最大的感受是,雖然大的框架,基本的流程和方法論上沒有任何大的變化,不過“換湯不換藥”。但是,在工具使用的一些細節上,即用戶體驗,尤其是易用性方面,能感受到Xilinx下功夫了。 這里就先拿Timing Contrasint方面來做點文章吧。首先是ConstraintsWizard,這里一步一步往下走,幾乎所有的Constraint遍歷一次,對于第一次做Constraint非常方便。
對于Constraints Wizard中input/output端口的約束,過去特權同學一到具體給定約束值時,老是范糊涂,因為Quartus II和ISE對IO端口的約束方式和計算公式略有不同,容易混淆。而老掉牙的ISE中也只是光禿禿的沒有任何提示,Vivado可好了,出現了標好了具體約束值的時序圖,一目了然,很容易就可以下手做約束了。
另外一點,Xilinx一直做得比Altera的TimeQuest好的是,對于IO端口約束過的和沒有約束過的,都能夠一目了然的分別列出來,讓設計者不至于遺漏。
當然了,除了ConstraintsWizard,還是有專門的Timing Constraints頁面可以查看、編輯所有的約束。與以前的UCF文件不一樣的是,Vivado用新的格式XDC用于存儲約束腳本。
另外,特權同學還發現了一個非常好的功能,即約束模版(Language Templates)中的XDC模版。
Language Templates中,ISE也有時序約束的模版,但是比較下來,發現Vivado中增加了很多實用的模型,比如圖8所示的Center-Aligned --> Single Data Rate(SDR),里面有時序示意圖,非常簡單清晰,對于這類常用接口不需要再去研究input/output端口時序約束公式了,直接上來就可以填時間,然后copy到工程的XDC文件中。
再說XDC文件的管理,它其實不光可以存儲時序約束腳本,所有相關的設計約束腳本都是存儲在XDC格式的文件中。而且可以有多個XDC文件同時存在一個工程中,它們可以Enable也可以Disable。對于一個難于收斂的時序設計,這個Enable和Disable功能就非常實用了。設計者通常會使用不同的約束策略,過去只能在一個文件里面改來改去,注釋來注釋去,極易混淆,但是這種多文件管理的支持,就非常便于管理和維護。
對于同一個工程,甚至可以同時查看不同約束策略下的時序報告,可以非常直觀的對比。這一點在過去的ISE上咱沒有試過,不知道可不可以,但是在Quartus II的TimeQuest中肯定不能,所以,這絕對又是一個亮點。
|