FAE講堂:提升創(chuàng)造力的數(shù)字設(shè)計(jì)工具 FPGA Editor
Block視圖的按鈕條包含許多其它選項(xiàng)。值得一提的是 F= button 按鈕,其功能是顯示邏輯片中使用的項(xiàng)目的完整配置。例如,如果使用了一個(gè)LUT6和一個(gè)觸發(fā)器,按下 F= 按鈕將會(huì)給出LUT的布爾議程以及觸發(fā)器的配置模式。
本文引用地址:http://m.butianyuan.cn/article/119298.htm閱讀賽靈思用戶(hù)指南是一回事,而從計(jì)算機(jī)屏幕上展開(kāi)的視圖上探察所有邏輯、開(kāi)關(guān)和參數(shù)則是另一回事。一旦熟悉了FPGA構(gòu)造及所有資源,那么在編寫(xiě)和驗(yàn)證設(shè)計(jì)時(shí)獲得的幫助將會(huì)令人感到驚奇。
在設(shè)計(jì)流程中記錄生成補(bǔ)丁腳本
當(dāng)用戶(hù)在GUI環(huán)境中編輯設(shè)計(jì)時(shí),FPGA Editor能夠記錄用戶(hù)動(dòng)作。用戶(hù)不僅可以保存記錄動(dòng)作流程,還可在以后重新使用記錄的腳本并加以重復(fù)。當(dāng)無(wú)法更改RTL,但又需要在設(shè)計(jì)過(guò)程中對(duì)設(shè)計(jì)進(jìn)行修改時(shí),這一功能特別有用。
假設(shè)設(shè)計(jì)采用了第三方 IP 或賽靈思加密IP,其中包括一個(gè)全局時(shí)鐘和一個(gè)DCM來(lái)生成稱(chēng)為interface_clk的時(shí)鐘。然后
再假設(shè)接口所連接的ASIC出現(xiàn)問(wèn)題,無(wú)法在預(yù)定的interface_clk的上升沿接收數(shù)據(jù)。如何修正這一問(wèn)題?
當(dāng)然,你可以改變PCB,更換出現(xiàn)問(wèn)題的ASIC或者讓第三方IP小組來(lái)修改時(shí)鐘輸出邏輯以提供90度相移的interface_clk。所有這些解決方案都既耗費(fèi)時(shí)間又成本高昂。一個(gè)更簡(jiǎn)單的建議是利用FPGA Editor來(lái)記錄修改動(dòng)作,
對(duì)interface_clk邏輯進(jìn)行必要的更改,從而為出現(xiàn)問(wèn)題的ASIC提供正確的時(shí)鐘相位。一旦有了相關(guān)修改的FPGA Editor腳本,就可以回放這些命令行腳本記錄的修改步驟,而你也可以正常繼續(xù)你的FPGA設(shè)計(jì)流程。當(dāng)出現(xiàn)問(wèn)題的ASIC修復(fù)正常以后,你只需要將FPGA Editor 腳本從編譯腳本中移除就可以,而interface_clk也會(huì)恢復(fù)其正常的行為。
要想對(duì)設(shè)計(jì)進(jìn)行手動(dòng)編輯,首先需要在FPGA Editor中開(kāi)啟讀/寫(xiě)(read/write)權(quán)限。在菜單條中點(diǎn)擊 File →Main Properties在此菜單下,可以調(diào)整編輯模式(從No logic Change到Read/Write)。點(diǎn)擊Apply,現(xiàn)在就可以開(kāi)始對(duì)設(shè)計(jì)進(jìn)行編輯了。在下一步利用FPGA Editor記錄對(duì)設(shè)計(jì)進(jìn)行的所有修改時(shí),只需要簡(jiǎn)單地從菜單條中點(diǎn)擊Tools → Scripts →Begin Recording。FPGA Editor將會(huì)提示輸入一個(gè)腳本名字(如patch.scr)。輸完腳本名字,就可以對(duì)設(shè)計(jì)進(jìn)行必要的修改了。
在設(shè)計(jì)中運(yùn)行設(shè)計(jì)規(guī)則檢查(DRC)來(lái)看一下是否有規(guī)則沖突的紅色標(biāo)志是一個(gè)很好的方式。在我的設(shè)計(jì)例子中,有14條警告,但都可以忽略。下一步我們將需要定位 interface_clk 使用的DCM,并為此DCM的90度相移輸出創(chuàng)建另一個(gè)稱(chēng)為DCM_clk90_out的時(shí)鐘。這需要利用全局時(shí)鐘布線(xiàn)資源將時(shí)鐘連接到BUFG。要增加一個(gè)BUFG,先在FPGA構(gòu)造中找到一個(gè)未用的BUFG位置,右擊并選擇Add(添加)。然后,工具會(huì)提醒你為 BUFG 命名(clk90_bufg)并確定其類(lèi)型:BUFG(參見(jiàn)圖1)。
創(chuàng)建了新的BUFG,就需要將其輸入和輸出連接到適當(dāng)?shù)奈恢?。在本例中,DCM的9 0度相移輸出將驅(qū)動(dòng)BUFG。在窗口A(yíng)rray1中,點(diǎn)擊DCM的90度輸出端衰減器,在窗口A(yíng)rray2中,點(diǎn)擊BUFG的輸入端衰減器,同時(shí)按住Ctrl鍵,可實(shí)現(xiàn)連接。然后釋放Ctrl鍵,點(diǎn)擊鼠標(biāo)右鍵并選擇Add。工具會(huì)提示為新網(wǎng)絡(luò)連接輸入名字。這樣就將DCM和BUFG通過(guò)新網(wǎng)絡(luò)連接到一起了(參看圖2)。
clk90_bufg 的輸出要代替由原interface_clk驅(qū)動(dòng)的IOB上的時(shí)鐘。要將IOB從原來(lái)的時(shí)鐘域中移開(kāi),需要定位IOB,標(biāo)注時(shí)鐘輸入端衰減器并按下Delete鍵移除這一連接。這樣我們就可以將新的clk90_bufg時(shí)鐘連接到這兒,從而完成整個(gè)補(bǔ)丁。要連接BUFG(clk90_bufg)的輸出,按住Ctrl鍵不放,在窗口A(yíng)rray2中標(biāo)注BUFG的輸出端衰減器并在A(yíng)rray1窗口中選擇IOB的時(shí)鐘輸入。松開(kāi)Ctrl鍵,點(diǎn)擊鼠標(biāo)右鍵顯示選項(xiàng)菜單并選擇Add。這樣就最終完成了BUFG輸出和IOB之間的連接,而IOB則用來(lái)驅(qū)動(dòng)下游ASIC的新建接口,利用interface_clk90時(shí)鐘就可以正確地捕獲傳輸?shù)臄?shù)據(jù)。
評(píng)論