新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > Xilinx 開源TCL庫正式發(fā)布

Xilinx 開源TCL庫正式發(fā)布

作者: 時間:2016-10-18 來源:網(wǎng)絡(luò) 收藏

用于共享工具命令語言腳本的開源庫已發(fā)布在GitHub.com上。

本文引用地址:http://www.butianyuan.cn/article/201610/308463.htm

在過去五年里,賽靈思把戰(zhàn)略重點放在設(shè)計方法和工具上,通過提供業(yè)界最先進(jìn)、最全面的開發(fā)環(huán)境,解決生產(chǎn)力問題,加快設(shè)計周期,促使產(chǎn)品更快上市。

即便新一代Vivado設(shè)計套件和綜合全面的UltraFast設(shè)計方法可以提高生產(chǎn)力,但使用當(dāng)今的All Programmable器件開展設(shè)計工作仍然面臨諸多挑戰(zhàn)。設(shè)計人員必須將數(shù)百個高度參數(shù)化的IP核、數(shù)十萬個可放置的對象和數(shù)百萬個邏輯單元與賽靈思All Programmable FPGA、3D IC和SoC完美集成。隨著設(shè)計人員不斷拓寬復(fù)雜設(shè)計的疆域,需要應(yīng)對的情況也千變?nèi)f化。

隨著今年4月份Vivado 2014.1版本的發(fā)布,賽靈思正在籌備一個用于共享工具命令語言(TCL)代碼的開源庫,這一舉措無疑在進(jìn)一步提升設(shè)計人員生產(chǎn)力方面又前進(jìn)了一大步。這個名為“賽靈思TCL庫”的開源庫能夠顯著簡化查找和共享其他工程人員開發(fā)的TCL(發(fā)音為“tickle”)腳本。借助Tcl,這些腳本能夠擴(kuò)展Vivado設(shè)計套件強(qiáng)大的核心功能,進(jìn)而提升生產(chǎn)力,簡化使用。“Tcl庫”對用戶社區(qū)開放,通過發(fā)布對他人可能有用的Tcl代碼,讓所有設(shè)計人員受益。

日趨復(fù)雜的設(shè)計

Vivado設(shè)計套件建立在開放的可擴(kuò)展數(shù)據(jù)模型上。作為一種開源系統(tǒng),要想提高生產(chǎn)力,其中一個關(guān)鍵就是提高工具的智能化水平,提供更多定制選項和分析功能,以便設(shè)計人員更全面了解并充分運(yùn)用工具,實現(xiàn)最佳設(shè)計。

自2012年Vivado設(shè)計套件推出以來,用于執(zhí)行各種規(guī)模任務(wù)的Tcl腳本呈現(xiàn)出爆炸性發(fā)展。Tcl是Vivado XDC約束語言的基礎(chǔ),因此掌握和運(yùn)用Tcl對設(shè)計人員來說越發(fā)重要。

使用Tcl命令可以交互式地開發(fā)和優(yōu)化時序約束,節(jié)省編譯時間,減少調(diào)試工作量。其核心命令可進(jìn)行對象查詢,并據(jù)以提供定制報告和完成極為精細(xì)的工具控制。使用Vivado設(shè)計工具還可以開發(fā)自己的DRC和Lint檢查,配合高度定制化的流程即可實現(xiàn)更優(yōu)異的結(jié)果質(zhì)量或是更快的運(yùn)行時間。設(shè)計人員使用Tcl還可以通過工程變更命令(ECO)操作進(jìn)行針對性的設(shè)計變更。

TCL帶來的生產(chǎn)力改善,代碼創(chuàng)建的便捷性和代碼的易讀性,使之成為共享有用代碼的理想選擇。到目前這種共享還主要處于自發(fā)階段,采用電子郵件和用戶論壇方式。部分企業(yè)也已經(jīng)在內(nèi)部建立自己的TCL庫,供自己項目使用。

現(xiàn)在賽靈思通過自己全新的“賽靈思Tcl庫”,讓Tcl共享邁上新的臺階。

歡迎使用Tcl庫

賽靈思Tcl庫提供多種樣例,用于示范如何編寫定制報告,控制特定工具行為,進(jìn)行定制網(wǎng)表變更,與仿真、綜合、時序與功耗分析及l(fā)int工具等第三方電子設(shè)計自動化(EDA)工具集成。

Tcl庫可從Vivado集成設(shè)計環(huán)境(IDE)本地訪問,便于用戶直接從工具內(nèi)部選擇和安裝稱為“應(yīng)用程序”(app)的Tcl腳本集。安裝完成后,這些應(yīng)用程序的命令如同Vivado設(shè)計套件內(nèi)置的命令一樣,可通過幫助命令查看其用法。Vivado設(shè)計套件使用Tcl的標(biāo)準(zhǔn)封裝工具支持不同版本的應(yīng)用程序,故即便有更新的版本發(fā)布,只需單擊鼠標(biāo)即可選擇升級。

賽靈思Tcl庫的目的是使用與Linux開發(fā)環(huán)境相同的方式,簡化由用戶社區(qū)開發(fā)和支持的優(yōu)質(zhì)Tcl腳本的查找和使用。Tcl腳本編寫與選擇IDE按鈕相比稍微高級一些。但它易于學(xué)習(xí)和掌握。有大量技術(shù)文檔和用戶指南詳細(xì)介紹Tcl API提供的具體命令,詳情請訪問china.xilinx.com/support。

下面詳細(xì)介紹從賽靈思Tcl庫安裝和使用Tcl應(yīng)用程序的方式。

image001.jpg

圖1:Vivado IDE中的Tcl庫對話框為安裝應(yīng)用程序和瀏覽命令提供方便。

安裝和使用

在首次啟動Vivado IDE時,設(shè)計人員可以通過“Getting Started”頁面上的圖標(biāo)訪問賽靈思Tcl庫。設(shè)計人員也可以轉(zhuǎn)到工具菜單(Tools Menu),選擇“Xilinx Tcl Store”菜單選項。此時會彈出庫對話框,提供可供安裝的應(yīng)用程序清單(圖1)。

瀏覽應(yīng)用程序清單時,可以看到每個應(yīng)用程序下又有一個命令清單(Tcl中稱為“procs(進(jìn)程)”),列出了可供執(zhí)行的命令??梢圆榭疵總€應(yīng)用程序及每個應(yīng)用程序中每個進(jìn)程的介紹,了解其功能。點擊安裝按鈕就可以安裝和注冊應(yīng)用程序,隨后可以如同Vivado設(shè)計套件本地命令一樣顯示和使用。應(yīng)用程序安裝完畢后,每次啟動Vivado設(shè)計套件它都會自動加載,無需每打開一個新的界面都安裝一次應(yīng)用程序。

進(jìn)程有命名規(guī)則,使用Tcl中名為“命名空間”的工具。命令的名稱看似比正常的Tcl命令稍顯復(fù)雜,同時內(nèi)嵌有“::”字符。例如xilinx::ultrafast::check_pll_connectivity用于對賽靈思器件中的時鐘修改模塊進(jìn)行連接檢查。該命名法則的目的是確保Tcl代碼的唯一性以及一個應(yīng)用程序中的某個進(jìn)程不會與另一個應(yīng)用程序中的同名進(jìn)程發(fā)生沖突。命名空間是Tcl的標(biāo)準(zhǔn)特性。

運(yùn)行應(yīng)用程序命令的方法是鍵入包括命名空間在內(nèi)的進(jìn)程的完整合法名稱,并有選擇地輸入任何要求的命令行參數(shù),就和其它Tcl命令一樣。由于這些命令使用標(biāo)準(zhǔn)命名空間,也可選擇導(dǎo)入命令到全局空間中。如果不和任何其他命令名稱發(fā)生沖突,這個方法是適用的。這樣可以略去命名空間限定符,只使用進(jìn)程名稱。在上面的例子中,如果把UltraFast應(yīng)用程序?qū)肴置臻g,無需命名空間限定符即可直接調(diào)用check_pll_connectivity命令。

設(shè)計人員只需單點應(yīng)用程序詳細(xì)介紹部分中的“Uninstall App”超鏈接,就可以卸載應(yīng)用程序。另外,點擊“Refresh”按鈕便可更新應(yīng)用程序目錄。Tcl庫目錄由第三方網(wǎng)站托管,與Vivado版本無關(guān),因此可隨時更新應(yīng)用版本。目錄更新后,Vivado工具會占用少許資源執(zhí)行應(yīng)用程序清單同步。如果有更新后的已安裝應(yīng)用程序可用,請使用“Update”按鈕來取得。Vivado設(shè)計套件會復(fù)制并同步該應(yīng)用程序的最新版本,完成其安裝。為避免發(fā)生配置控制問題,更新只根據(jù)設(shè)計人員的要求安裝。對在意安全性,不愿意讓Vivado設(shè)計套件隨時從自己的網(wǎng)絡(luò)防火墻外同步的用戶,可以使用一個參數(shù)禁用目錄同步功能。

使用賽靈思Tcl庫的Tcl應(yīng)用程序簡單且方便。賽靈思的目標(biāo)是鼓勵世界各地的開發(fā)團(tuán)隊使用和共享Tcl庫,提升生產(chǎn)力。庫中只顯示任何給定應(yīng)用程序的最新版本,設(shè)計人員只能安裝或升級到所支持的最新版本。當(dāng)然充分利用的最好方式是保證有豐富的有用代碼庫。賽靈思在庫中植入了一整套非常有用的實用工具和集成腳本,可供用戶當(dāng)作范本研究,掌握如何構(gòu)建自己的可重用Tcl腳本。

使用賽靈思Tcl庫的Tcl應(yīng)用程序簡單且方便。賽靈思的目標(biāo)是鼓勵世界各地的開發(fā)團(tuán)隊使用和共享Tcl庫,提升生產(chǎn)力。

向Tcl庫提供代碼

有兩種途徑可向Tcl庫提供代碼,讓腳本供所有的Vivado設(shè)計套件用戶使用。第一個途徑是修改現(xiàn)有的應(yīng)用程序。第二個途徑是開發(fā)新應(yīng)用程序,然后提交新應(yīng)用程序申請。要提供代碼給Tcl庫,用戶需要對用于版本控制的軟件開發(fā)工具有一定熟悉,或至少有學(xué)習(xí)意愿。

每個應(yīng)用程序都由一個人控制,一般是編寫大部分代碼的人,也稱為“應(yīng)用程序負(fù)責(zé)人”。賽靈思庫在整體上由賽靈思控制,且賽靈思公司負(fù)責(zé)維護(hù)把應(yīng)用程序發(fā)布到公共域的流程,以保持各應(yīng)用程序之間的基本一致性。賽靈思員工起著質(zhì)量保障“守門員”的作用。

想要修改現(xiàn)有應(yīng)用程序或添加新應(yīng)用程序的“提供人”可與“守門員”和應(yīng)用程序責(zé)任人合作,遵循與其他開源項目一樣的流程,完成提交工作。在代碼托管網(wǎng)站上有個維基(wiki)用于把這個流程形成文檔。

所有代碼提交都應(yīng)滿足基本要求。賽靈思盡量讓隨時可能發(fā)生變化的基本要求項目保持簡潔,同時確保合理的用戶體驗。下面是用戶需要遵循的基本應(yīng)用程序要求:

遵循基本的編碼方法指南,把進(jìn)程與不使用或訪問全局變量的命令行參數(shù)配合使用。

在進(jìn)程內(nèi)包含基本文檔,用于描述進(jìn)程的功能、使用的命令行參數(shù)和返回的結(jié)果。

確保代碼通過語法檢查和Vivado設(shè)計套件提供的lint工具的檢查。

對每個進(jìn)程至少進(jìn)行一次基本測試,確保代碼的運(yùn)行和行為基本符合預(yù)期。

GITHUB上的TCL庫

賽靈思Tcl庫托管在名為GitHub.com的第三方網(wǎng)站上。該庫使用版本控制工具來保證分布開發(fā)工作以可控方式進(jìn)行。這個過程的關(guān)鍵就是Git,一種常見的開源分布式版本控制工具,常用于Linux。如果要訪問Tcl庫以提交和測試代碼,可以在GitHub.com上注冊一個免費(fèi)賬號,安裝和設(shè)置Git。GitHub提供供Windows PC機(jī)使用的Git工具安裝版本。Linux機(jī)器一般已經(jīng)安裝有,或是可通過標(biāo)準(zhǔn)軟件包安裝。GitHub提供輔導(dǎo)資料,幫助用戶入門Git。

用戶注冊得到GitHub賬號后,就可以按下列步驟向Tcl庫提供代碼:

1. 復(fù)制賽靈思Tcl庫主庫。這樣可以在用戶的測試環(huán)境(Sandbox)中創(chuàng)建一個本地復(fù)本,便于用戶在本地開發(fā)和測試,避免給其他應(yīng)用程序造成影響。

2. 遵循按照應(yīng)用程序名稱及企業(yè)或GitHub名稱確立的指引,把自己的新代碼放在正確的目錄中。使用標(biāo)準(zhǔn)Git添加命令。

3. 使用本地庫中的Vivado設(shè)計套件,調(diào)用注冊代碼和生成Catalog.xml文件所需的命令。這是用戶所需的三個文件之一。另兩個是軟件包索引文件和Tcl索引文件。

4. 在另一個位置打開Vivado設(shè)計套件,轉(zhuǎn)到本地庫,然后測試自己的應(yīng)用程序。運(yùn)行Linter和本地測試,直至對所有運(yùn)行情況滿意為止。

5. 確認(rèn)修改,并提供信息簡要介紹所做的改動。

6. 發(fā)送申請允許提交代碼到tclstore@xilinx.com的電子郵件。說明是否想要創(chuàng)建新應(yīng)用程序,準(zhǔn)備如何命名該新應(yīng)用程序。如果想要修改現(xiàn)有應(yīng)用程序或是把代碼提供給現(xiàn)有應(yīng)用程序,應(yīng)明確說明。另外需要取得應(yīng)用程序負(fù)責(zé)人的許可。

7. 使用Web瀏覽器轉(zhuǎn)到GitHub.com,發(fā)出拉請求。這樣會正式啟動把用戶提供的代碼合并到庫中的流程。應(yīng)適當(dāng)與“守門員”和應(yīng)用程序負(fù)責(zé)人合作,通過GitHub和電子郵件解決任何問題。

8. 恭喜!幫助大家是一件快樂的事情。

image002.jpg

圖2:賽靈思Tcl庫提交應(yīng)用程序的工作流程歷經(jīng)幾個非連續(xù)步驟

圖2所示的是提交應(yīng)用程序的工作流程示意圖。

細(xì)枝末節(jié)

賽靈思Tcl庫屬于開源庫,沒有為商業(yè)化提供的代碼或用提供的代碼收費(fèi)提供機(jī)制。提交給Tcl庫的應(yīng)用程序可以通過開源項目中常用的BSD許可證,供各類衍生作品免費(fèi)使用。為便于提供的代碼被大家接受和發(fā)布,向Tcl庫提供的代碼應(yīng)包含BSD許可證的版本。如果有企業(yè)或用戶不想把自己的知識產(chǎn)權(quán)發(fā)布到公共域,Vivado設(shè)計套件也可照搬發(fā)出拉請求前測試工作所采用的機(jī)制,為本地版本的Tcl庫提供支持。

此外由于該項目使用GitHub進(jìn)行托管,提交人在注冊賬號時必須同意GitHub的服務(wù)條款,因為這屬于第三方服務(wù)。

應(yīng)用程序庫中的應(yīng)用程序由用戶社區(qū)開發(fā)和支持。這意味著賽靈思技術(shù)支持部未接受過與該功能有關(guān)的培訓(xùn),無法回答與Tcl代碼有關(guān)的問題。請直接把這些應(yīng)用程序的支持性問題提交到賽靈思用戶論壇上。如果發(fā)現(xiàn)代碼段中存在的缺陷或問題,可以直接在GitHub.com項目中備案并跟蹤。由于這屬于開源開發(fā)模式,我們鼓勵用戶修改這些問題,改善代碼質(zhì)量,為所有用戶造福,就如同Linux一樣。

發(fā)展規(guī)劃

Vivado 2014.1版本推出Tcl庫只是一個開始。賽靈思今年將不斷改進(jìn)Tcl庫,落實其搜索應(yīng)用程序和進(jìn)程的能力,簡化功能查找工作。賽靈思將提供一種無需安裝應(yīng)用程序即可瀏覽和查看源代碼的途徑。此外賽靈思還考慮提供一種評價機(jī)制,用戶可評定一星到五星等級,并可選擇提供書面評語。這樣便于人們?yōu)檩^受歡迎的代碼留下反饋意見。

賽靈思還準(zhǔn)備根據(jù)應(yīng)用類別提供篩選功能,實現(xiàn)更好的分類。例如按仿真、綜合、實現(xiàn)、項目和網(wǎng)表實用工具分類。隨著庫規(guī)模越來越大,賽靈思可能會增加分類數(shù)量,豐富應(yīng)用程序門類,以體現(xiàn)提交的代碼的多樣性。

賽靈思希望盡量簡化應(yīng)用程序的提交工作,因此可能會探索讓用戶通過電子郵件提交Tcl腳本的途徑,從而盡量減少支持工作量,避免繞道GitHub。這個過程的無控性質(zhì)與目前的安裝方案不對接,故只是作為例子介紹。

世界各地有成千上萬的用戶在使用Vivado設(shè)計套件,有數(shù)以百計的企業(yè)已經(jīng)采用UltraFast設(shè)計方法。賽靈思Tcl庫提供了一個新的開源項目,旨在讓賽靈思、賽靈思合作伙伴和客戶之間共享Tcl腳本,從而可以進(jìn)一步提高設(shè)計人員生產(chǎn)力。



關(guān)鍵詞: TCL Vivado UltraFast

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉