新聞中心

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

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

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

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

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

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

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

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

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

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

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

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

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

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

歡迎使用Tcl庫(kù)

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

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

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

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

image001.jpg

圖1:Vivado IDE中的Tcl庫(kù)對(duì)話框?yàn)榘惭b應(yīng)用程序和瀏覽命令提供方便。

安裝和使用

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

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

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

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

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

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

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

向Tcl庫(kù)提供代碼

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

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

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

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

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

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

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

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

GITHUB上的TCL庫(kù)

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

用戶(hù)注冊(cè)得到GitHub賬號(hào)后,就可以按下列步驟向Tcl庫(kù)提供代碼:

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

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

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

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

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

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

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

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

image002.jpg

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

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

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

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

此外由于該項(xiàng)目使用GitHub進(jìn)行托管,提交人在注冊(cè)賬號(hào)時(shí)必須同意GitHub的服務(wù)條款,因?yàn)檫@屬于第三方服務(wù)。

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

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

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

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

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

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



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

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉