提升創(chuàng)造力的數(shù)字設(shè)計(jì)工具:FPGA Editor(08-100)
一旦了解了最基本的概念和操作,就可以開始察看FPGA構(gòu)造。通常都從時(shí)鐘邏輯開始。這包括數(shù)字時(shí)鐘管理器(DCM)、鎖相環(huán)(PLL)、全局時(shí)鐘緩沖器(BUFG)、區(qū)域時(shí)鐘緩沖器(BUFR)、I/O緩沖器(BUFIO)以及不同的時(shí)鐘區(qū)域。(要想按字母列出項(xiàng)目表,可以到LIST窗口點(diǎn)擊Type來排序。)點(diǎn)擊一個(gè)DCM并按F11。ARRAY窗口會定位到選擇的DCM并放大顯示它。繼續(xù)點(diǎn)擊DCM并觀察GUI底部的Console窗口,其中會顯示與下面類似的內(nèi)容:
本文引用地址:http://m.butianyuan.cn/article/91696.htmcomp “DCM_BASE_inst_star”, site “DCM_ADV_X0Y9”, type = DCM_ADV
(RPM grid X73Y202)
這是有用的數(shù)據(jù)。 拷貝并粘貼上述內(nèi)容到UCF文件中,并作如下更改以鎖定這一DCM邏輯:
INST “DCM_BASE_inst_star”
LOC=DCM_ADV_X0Y9;
利用這一方法,幾乎可以鎖定FPGA中的任何項(xiàng)目。 下面是BUFG鎖定的另一個(gè)例子:
comp “BUFG_inst_star”, site “BUFGCTRL_X0Y20”, type = BUFG (RPM grid X73Y124)
INST “BUFG_inst_star”
LOC=BUFGCTRL_X0Y20;
再次回到List窗口并標(biāo)注同一DCM。 雙擊之后將會在Block視圖中顯示該DCM以及所有設(shè)置和參數(shù)。這是一項(xiàng)非常強(qiáng)大的功能,可用于FPGA構(gòu)造中的任何邏輯項(xiàng)目。如果選擇一個(gè)邏輯片并雙擊它,就可以看到邏輯片是如何布線連接的,以及是否使用了進(jìn)位鏈或本地觸發(fā)器。
Block視圖的按鈕條包含許多其它選項(xiàng)。值得一提的是 F= button按鈕,其功能是顯示邏輯片中使用的項(xiàng)目的完整配置。例如,如果使用了一個(gè)LUT6和一個(gè)觸發(fā)器,按下F= 按鈕將會給出LUT的布爾方程以及觸發(fā)器的配置模式。
閱讀賽靈思用戶指南是一回事,而從計(jì)算機(jī)屏幕上展開的視圖上探察所有邏輯、開關(guān)和參數(shù)則是另一回事。一旦熟悉了FPGA構(gòu)造及所有資源,那么在編寫和驗(yàn)證設(shè)計(jì)時(shí)獲得的幫助將會令人感到驚奇。
在設(shè)計(jì)流程中記錄生成補(bǔ)丁腳本
當(dāng)用戶在GUI環(huán)境中編輯設(shè)計(jì)時(shí),FPGA Editor能夠記錄用戶動作。用戶不僅可以保存記錄動作流程,還可在以后重新使用記錄的腳本并加以重復(fù)。當(dāng)無法更改RTL,但又需要在設(shè)計(jì)過程中對設(shè)計(jì)進(jìn)行修改時(shí),這一功能特別有用。假設(shè)設(shè)計(jì)采用了第三方IP或賽靈思加密IP,其中包括一個(gè)全局時(shí)鐘和一個(gè)DCM來生成稱為 interface_clk的時(shí)鐘。然后再假設(shè)接口所連接的ASIC出現(xiàn)問題,無法在預(yù)定的interface_clk的上升沿接收數(shù)據(jù)。如何修正這一問題?
當(dāng)然,你可以改變PCB,更換出現(xiàn)問題的ASIC或者讓第三方IP小組來修改時(shí)鐘輸出邏輯以提供90度相移的interface_clk。所有這些解決方案都既耗費(fèi)時(shí)間又成本高昂。一個(gè)更簡單的建議是利用FPGA Editor來記錄修改動作,對interface_clk邏輯進(jìn)行必要的更改,從而為出現(xiàn)問題的ASIC提供正確的時(shí)鐘相位。一旦有了相關(guān)修改的FPGA Editor腳本,就可以回放這些命令行腳本記錄的修改步驟,而你也可以正常繼續(xù)你的FPGA設(shè)計(jì)流程。當(dāng)出現(xiàn)問題的ASIC修復(fù)正常以后,你只需要將FPGA Editor腳本從編譯腳本中移除就可以,而interface_clk也會恢復(fù)其正常的行為。
評論