Vivado開發工具熟悉之工具使用雜記

這兩天基本完成了實驗室工程從ISE向vivado的移植,包括了兩片FPGA的兩個工程,這兩個工程還算是比較大的工程,包括了內存,接口,embedded system,算法模塊等,在這過程中也很好的熟悉了vivado的開發流程,發現了一些很好用的工具。

首先從整體上對vivado這個工具有了更深入的認識,整個可以分爲源代碼的編輯(包括hdl代碼的編輯,IP core的添加),這裏有兩個獨立的工具,一個是IP integrator,其實就是生成block design用的,而這個block design往往是embedded system,採用圖形化界面,最後是一個bd源文件,加上hdl的頂層wrapper;還有一個是RTL analysis,這個雖然我沒有用,但是應該是和源代碼編譯相關的,這裏有一個叫DRC(Design Rule Checks),其實就相當於以前ISE的synth check。這裏因爲是移植工程沒有新的源代碼的編輯,所以不瞭解這個編譯器是否好用。

其次就是仿真,這裏仿真不再是Isim,Xilinx重新編寫了仿真工具,而且效率快很多,使用簡便,點擊對應testbench文件,run simulation就行。

再次就是synthesis步驟,這裏每次synthesis結束之後,可以打開synth,對應着open synthesized design,這時候發現主界面原來是project manager,就變成了synth_1(對應implementation也是一樣),synthesis結果打開之後,可以edit timing constraints,可以report timing summary,這個都是一個初步的結果,流程和implementation之後一致,這裏就不在介紹了,一般我們都看implementation的結果。

最後就是implementation步驟,implementation結束後也是會在原來project manager這裏出現一個impl_1,其實裏vivado設計是可以允許打開多個impl設計的,這樣可以方便對比不同設計的結果,並進行優化,提高優化的效率。

這裏重點覺得好用的是open implementation design下面的幾個小工具(前一篇文章都提到過用法),首先report clock network可以一目瞭然的看到都有哪些時鐘約束,這個我覺得應該是優化時序的時候首先要做的,或者說在編輯約束文件結束後,準備佈線是首先需要看的,保證時鐘約束沒有遺漏和問題;

report clock interaction,這個是爲跨時鐘域約束準備的工具,之前也給出了一個示例圖,其實感覺用處也不大,看起來費勁;

report timing summary,其實這個纔是常用的工具,他不僅可以查看靜態時序分析報告,這是最基本的功能,關鍵是他的時序分析中,列出了單時鐘的路徑,跨時鐘域的路徑,異步時鐘域跨時鐘域路徑,很清晰,這時候再看錯誤的路徑就很清楚的瞭解到其所在的位置,然後點擊錯誤的路徑,可以在device中打開,雙擊可以列出詳細的路徑描述(和ISE中裏面的static timing analysis一樣)。這裏device其實就是之前的plan ahead,其實可以根據此進行手動佈線(但是感覺真正還是用的少,還是得想辦法代碼優化);最後還可以右鍵點擊錯誤路徑直接添加約束,這個適合於單個false path沒有約束到,以及跨時鐘約束沒有約束到的情景。建議的使用方式是剪切其界面裏給出的tcl約束代碼,然後複製到xdc約束文件中,這樣快一些。

講了半天還是時序約束相關的多一點。畢竟這個是高級功能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章