做為FPGA的集成開發(fā)環(huán)境,不同的廠家其實大同小異。很多國產(chǎn)廠家,如安路,高云,會在軟件上貼近Xilinx和Intel,以節(jié)省客戶的軟件使用成本。而國產(chǎn)廠商的易靈思的集成開發(fā)環(huán)境Efinity似乎并不像大廠,顯得差異更大一些。但經(jīng)過一段時間的使用,我個人認為并不需要因為差異大些就過于排斥,Efinity在使用上并不會麻煩。 接下來我們來聊一下Efinity的一些功能及個人使用感受。主要包括以下幾個方面:
(1)軟件安裝;
(2)軟件界面;
(3)控制面板;
(4)預(yù)設(shè)置;
(5)工程編譯器;
(6)interface 與Core架構(gòu);
(7)在線調(diào)試;
(8)配置方式;
1、軟件安裝
這里以windows系統(tǒng)為例。Efinity的軟件安裝過程相對操作步驟多些,但是過程也很清晰。包括python的安裝、Efinity的安裝、驅(qū)動的安裝和在線調(diào)試工具的安裝。而且Efinity軟件比較小,只有1G左右,另外Efinity也沒有把器件庫單獨分離,整個安裝時間相對短很多。再者Efinity也沒有l(wèi)icense的限制,也就沒有因為license過期而需要等待重新申請的過程,這對于很多FPGA開發(fā)應(yīng)該說輕松不少。
2、軟件界面
打開Efinity界面如圖1,大致的框架與其它廠商也沒有多大差別,有控制面板,代碼編輯器,控制臺,信息欄等,畢竟都是FPGA集成開發(fā)環(huán)境,也不能差異大到哪兒去。 有些地方個人認為需要調(diào)整,比如編譯時沒有進度條,也沒有時間指示,不過左下方也有信息提示;另外項目路徑放在軟件最上方,各個窗口之間灰度空白縮小一點等小細節(jié)也可以稍做調(diào)整。但對于一個只開發(fā)了三年左右的FPGA集成環(huán)境,已經(jīng)非常不錯了。
圖1
3、控制面板
下面主要來聊下控制面板??刂泼姘宸殖伤牟糠郑毫鞒炭刂婆_、工程面板、網(wǎng)表面板,輸出面板。
流程控制臺:深藍色的dashboard部分就是流程控制臺,
如圖2。主要控制程序的編譯流程,包括綜合、布局、布線和生成燒寫文件。另外兩個是停止和單步流程運行。這與所有廠家都大同小異。
?
圖2 工程面板(Project):客戶可以在工程向?qū)е刑砑釉次募?,IP和仿真文件等。另外也可以查看選擇的器件、工程路徑及頂層文件等信息,如圖3所示。
圖3 網(wǎng)表面板(netlist):客戶可以在這里查看工程中生成的網(wǎng)表,包括hierarchy、Elaborated和Synthesized三種,如圖4所示。
圖4 輸出面板(Result):這里主要是工程編譯生成的各種報告及資源使用詳情,時序裕量、時鐘MAX值等,如圖5所示。 輸出面板(Result):這里主要是工程編譯生成的各種報告及資源使用詳情,時序裕量、時鐘MAX值等,如圖5所示。
圖5 總的來說,控制面板中工程編譯信息都是很詳細的,而且輸出信息以文件的形式給出在保存和發(fā)送上也是很方便的。
4、預(yù)設(shè)置(preferences)
在預(yù)設(shè)功能中這里主要提兩個功能,其余大家可以在使用中體會。如圖6所示,一個是外部編譯器,另一個是Auto-load Place and Route Data。當然其余功能也很重要。 一般來說軟件自帶編輯器功能有限,所以集成環(huán)境一般都支持指定外部編譯器。
Efinity同樣也支持外部編譯器件,并且操作上相對某些集成環(huán)境也更簡單,只需要在Preferences下面指定外部編譯器件的執(zhí)行文件路徑即可 如果雙擊Project下的Design或者在Hierarchy下面的文件,文件會以自帶的編輯器件打開。只有選擇文件右擊,并行選擇Open with user Editor時才會通過用戶設(shè)置的編譯器打開,看似麻煩一些,卻可以同時使用兩種編譯器件。
這一點在使用Quartusprame的自帶編輯器件insert功能時會有深刻體會到在某個時刻它的優(yōu)勢。 另外還有一個Auto-load Place and Route Data功能值的一提,該功能可能根據(jù)需要來選擇加載時是否可以加載布局布線的數(shù)據(jù)。如果不加載布局布線的數(shù)據(jù)可以節(jié)省打開軟件的時間以及節(jié)省編譯時間,還可以手動加載,也算比較靈活的一個功能。
圖6
5、工程編輯器(Project Editor)
軟件使用中的大部分功能都在Project Editor中,包括工作設(shè)置,工程文件的添加,器件的指定、綜合和布具布線的設(shè)置及優(yōu)化選項、位流文件的生成方式及在線調(diào)試文件的指定。
相對來說沒有大廠的功能豐富,但功能劃分比較清晰而都是在設(shè)計中用得到的。
下面來簡單聊下部分功能。
工程設(shè)置(Project):工程設(shè)置包括工程名、工程位置、器件家族及器件的型號和速度等級這些常用項。一目了然,毋需多言,如圖7所示。
圖7 設(shè)計文件添加:這里用于指定頂層文件,添加源文件及約束文件,如圖8所示。
圖8 除了可以單獨添加文件外,Efinity還可以添加整個文件夾的文件,如圖9所示。
另外還支持把外部文件導入到工程目錄下,如果不導入工程,也可以指定相對路徑或者全路徑。
這個功能比較靈活支持各種方式的文件添加,是比較方便的。
圖9 綜合(Synthesis):綜合頁面有關(guān)于綜合的優(yōu)化選項,添加參數(shù)和宏定義等,常用的功能都是存在的,如圖10所示。
圖10 布局布線(Place and Route):如圖11所示,布局布線功能相對簡單,有6個優(yōu)化策略和種子選擇。
另外也可以通過命令來掃描策略和控制種子運行數(shù)量,操作也非常簡單,另外結(jié)論會以文件的形式輸出,一目了然。
圖11 有關(guān)于位數(shù)據(jù)流和調(diào)試就不再展開,留給大家自己去親自體驗下。
我們可以來對比一個點,而別的廠家,比如xilinx和intel,頂層文件是在在Hierachy中指定,并把Hierachy擺放在一個主要的位置,顯得更一目了然。
而Efinity的工程的頂層文件需要手動輸入,如果沒有輸入會自動檢測,但是并不一定準確。
上面的網(wǎng)表中也講到Efinity也有Hierachy的功能,但感覺已經(jīng)弱化了它的重要性。
在應(yīng)用中只要稍加注意或者使用習慣之后,是不會存在任何問題的。
6、Inteface 與Core分析的架構(gòu)
Eifinty與別的器件廠商集成環(huán)境的一個很大不同之處在于,Eifinty采用的把邏輯資源和硬核資源分開的架構(gòu),如圖12所示。
代碼部分只針對邏輯資源,也就是我們這里提到的Core,而IO及其他硬核部分的配置在interface Designer工具中。
下圖是interface與Core的關(guān)系,它們之間通過被稱作Siganl Interface的連線資源實現(xiàn)互聯(lián)。
這里要提到的是因為習慣問題,使用者在最初一定會存在一些問題,但是習慣之后它也是有不少優(yōu)勢存在的。
比如說,在前期的硬件設(shè)計中,只需要在Interface Designer中添加已添加的IO及其他需要的硬件接口,并通過一鍵檢測就可以很清楚的知道與外設(shè)的連接是否合理,不需要考慮內(nèi)部因為沒有完整的程序而可能被優(yōu)化的風險。
當然,它也有不靈活之處。不如通過代碼復(fù)制來的簡單快捷,雖然也可以通過文件設(shè)置再導入,但是文件的編輯上也會相對麻煩一些。
圖12 這里以GPIO為例,如圖13所示,可以設(shè)置例化名,指定IO類型,設(shè)置電平標準,選擇是否支持寄存器,選擇是否支持DDR數(shù)據(jù)及信號驅(qū)動強度等。
這相對于在RTL文件直接用input或者output來定義信號來說,更有利于理解GPIO的內(nèi)部結(jié)構(gòu)及其使用規(guī)則。
整體來說這種interface和core分析的架構(gòu)優(yōu)勢很明顯。
圖13
7、在線調(diào)試
Efinity的在線調(diào)試工具名為Debbuger,如圖14所示,目前只支持post-map網(wǎng)表 elaborated(綜合前)網(wǎng)表,如圖3所示,如intel的signalTap一樣,用戶可以通過簡單的點擊信號來選擇,用戶可以通過選擇不同的時鐘域,把信號自動分到不同的界面,操作相對簡單。
另外在勾選了Capture Control選項之后,也可以支持任意觸發(fā)位置和分段觸發(fā)。這都是Efinity相對具有的優(yōu)點。
但由于軟件開發(fā)時間比較短,不足之處也是有的,Efinity的Debbuger工具占用資源相對多些,對時序也會有些影響。
并且目前也不支持上電觸發(fā)和多級觸發(fā)等功能。但是相應(yīng)的功能和優(yōu)化也已經(jīng)在迭代開發(fā)中,每個一新發(fā)布的版本都值得期待。
圖14
8、配置方式
目前Efinity支持的配置有AS模式,PS模式、jTAG模式和Jtag Bradge四種模式。
這幾種模式也是最常用的,各個廠家差異幾近相似。
大廠模式更多些,但這些模式在實際使用中——由其在中低端器件上——使用者寥寥無幾。
圖15是一個Programmer界面。Efinity的Programmer界面比較樸素,連進度條也沒有,不過通過打印信息可以看到配置進程。
????
另外Efinity仿真模型也都是能RTL代碼的形式存在,在通過第三方仿真時也不需要編譯庫等等。
Efinity也有通過指令控制之類一些軟件使用功能,這里不再一一列舉。
總結(jié)來說,Efinity是一個具備FPGA開發(fā)完整功能的集成開發(fā)環(huán)境,雖然相對大的廠商Xilinx和Intel的集成開發(fā)環(huán)境功能還有一段距離,但是只要存在的功能都顯示出了清晰明了的特征,相對都操作更簡單直接。并且在每一個版本的迭代上功能都越來越豐富。
我們也由衷期待易靈思在FPGA這個行業(yè)越做越好,為國產(chǎn)FPGA行業(yè)帶來更多創(chuàng)新和更長足的發(fā)展。
如果想快速上手易靈思的FPGA,可以選擇“XEM_T20”FPGA模塊快速上手,直接上手編程,實現(xiàn)您的idea在FPGA上。
審核編輯:劉清
-
FPGA
+關(guān)注
關(guān)注
1630文章
21769瀏覽量
604648 -
時鐘
+關(guān)注
關(guān)注
11文章
1740瀏覽量
131630 -
編譯器
+關(guān)注
關(guān)注
1文章
1638瀏覽量
49197
原文標題:國產(chǎn)FPGA應(yīng)用專題--易靈思Efinity軟件使用心得
文章出處:【微信號:gh_873435264fd4,微信公眾號:FPGA技術(shù)聯(lián)盟】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論