談談我對Lattice Diamond 的感受
剛開始接觸到diamond,感覺界面與ISE和Quartus還都差不多吧,記下一些以防不常用而忘記。
1.Tools->spread sheet view進行時序約束、物理約束。
2.diamond有一個自動生成的時序約束文件,.prf文件,這個是在兩個前提下可以自動生成,第一個就是在project->active strategy,在map trace settings選項里有一個auto timing,這個要是true才可以,第二個就是你不能手動的設置任何一點timing preferences,這樣的話直接運行map trace,打開prf文件就能看到自動生成的約束,它是約束了時鐘網絡所能跑到的最大的頻率,你可以用這個文件來自己編輯lpf文件,這樣的話你remap以后,rpf的文件也會被你重新編輯的lpf文件所覆蓋了。
3.lattice的pll可以進行分頻和倍頻,而dll只可以進行分頻。
4.生成IP核的時候注意選import IPX to diamond project,否則的話還得手動加。雙擊.ipx文件進行已存在IP核的編輯。
5.tools下有reveal inserter和reveal analyzer,分別用來建立文件和抓波形。
文件建好以后,保存為.rvl文件,然后debug->insert debug,就將rvl文件加入到工程中去。在工程欄里debug files下可以看到。
6.看ECP3的datasheet,時鐘包括PLL、DLL和CLKDIV,PLL是通過PFD(phase frequency detect)檢測reference clk和feedback clk的頻率和相位,然后產生控制vco的信號,來產生新的時鐘;DLL呢是通過phase detect以后,經ALU計算出一個數來控制delay chain,從而得到新的時鐘信號,所以呢可以說PLL是模擬的,DLL是數字的。從DLL的生成原理來看,它不適合頻率太低的應用,因為delay chain是有限的。
7.lattice有primary clock,secondary clock和edge clock三種時鐘資源,按器件不同有不同數目的secondary clock region,比方說-17有16個。
8.修改已存在的IP,直接打開ipx文件即可。但是記得例化ip核以后打勾insert ipx to project,這樣往后修改ipx之后工程才會自動更新。
9.好想rvl的采樣頻率低了以后會提示出錯,還不知道怎么回事。
10.有一個fpga里進行時鐘切換的問題,xilinx里好像有核來做,lattice里沒找到直接切換的,我用了一個動態的PLL,它有4bit的輸入用來定義相移,然后在邏輯里就可以通過改變這個輸入來進行時鐘的切換,實踐證明效果還不錯。
11.找到ddr3_controller user guide的方法,在官網上直接搜索ddr3 controller,點開DDR3 SDRAM CONTROLLER進去,在documentation->user manuall下可以看到。
12.對于位寬大于1的IO,lattice的管腳約束是用下滑杠,而不是[],不知道害死人呀!!
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















