自計(jì)算機(jī)計(jì)算誕生以來,抽象化與自動(dòng)化已成為設(shè)計(jì)團(tuán)隊(duì)提高生產(chǎn)力的有力工具。我們細(xì)想一下世界上第一臺數(shù)字計(jì)算機(jī)ENIAC,這是1946年受美國軍方委托開發(fā)的項(xiàng)目,被預(yù)示為“超級大腦”。它能通過編程執(zhí)行復(fù)雜的運(yùn)算序列。然而,處理編程問題并將其映射至機(jī)器的這個(gè)過程十分復(fù)雜,通常需要數(shù)周才能完成。在紙上完成編程后,需要通過操控計(jì)算機(jī)的開關(guān)和線纜將程序輸入ENIAC中,這又需要數(shù)天甚至數(shù)周時(shí)間。然后輔以機(jī)器的“單步執(zhí)行”功能進(jìn)行驗(yàn)證和調(diào)試。
編程抽象化
像1972年Dennis Richie在貝爾實(shí)驗(yàn)室開發(fā)的C編程語言之類的創(chuàng)新,使實(shí)現(xiàn)一種獨(dú)立于機(jī)器但仍允許程序員對各個(gè)信息位行為進(jìn)行控制的高級編程技術(shù)成為可能。由于C語言具有強(qiáng)大的功能和高度的靈活性,最初采用匯編代碼編寫的UNIX操作系統(tǒng)幾乎可以直接用C語言進(jìn)行重寫。鑒于與UNIX密切相關(guān),加上C自動(dòng)編譯器的推出,C語言迅速得到推廣,1983年美國國家標(biāo)準(zhǔn)協(xié)會(ANSI) 對其進(jìn)行了標(biāo)準(zhǔn)化。
Bjarne Stroustrup 在1978年研究博士論文時(shí)就開始研究“C with Classes”,顧名思義就是一種C語言的父集。他的目標(biāo)是在C語言中加入面向?qū)ο蟮某绦蛟O(shè)計(jì),同時(shí)在不犧牲性能或低級可控性的前提下保持可移植性。1983年,這種語言更名為C++,并新增了一些功能以及更多編譯器支持。
硬件抽象化
差不多在相同的時(shí)期內(nèi),抽象化也正被引入硬件設(shè)計(jì)方法中。1981年,美國國防部正在開發(fā)VHSIC硬件描述語言(VHDL),用以“解決硬件設(shè)計(jì)生命周期危機(jī)”。所提出的要求是:這種語言要具有廣泛的描述功能,在任何仿真器上得出的結(jié)果應(yīng)該是相同的,而且要獨(dú)立于技術(shù)和設(shè)計(jì)方法。
與此同時(shí),Gateway Design Automation公司開發(fā)了一種名為Verilog-XL的邏輯仿真器,后來被Cadence Design Systems公司收購。該語言隨后向公眾推廣,使其他從事電子設(shè)計(jì)自動(dòng)化(EDA)公司都能夠用它構(gòu)建自動(dòng)化功能。隨著VHDL和Verilog標(biāo)準(zhǔn)化,設(shè)計(jì)自動(dòng)化接踵而至。
抽象化推動(dòng)設(shè)計(jì)自動(dòng)化發(fā)展
基于標(biāo)準(zhǔn)的自動(dòng)化
為了滿足市場要求,設(shè)計(jì)團(tuán)隊(duì)正在借助軟/硬件設(shè)計(jì)方法,并利用具有不同抽象化層次的異構(gòu)并行架構(gòu)來開發(fā)“更智能”系統(tǒng)。行業(yè)標(biāo)準(zhǔn)與開源社區(qū)的推廣使抽象化自動(dòng)化成為可能。就硬件加速而言,IP標(biāo)準(zhǔn)正在孕育著真正的即插即用型IP,并促進(jìn)IP集成自動(dòng)化發(fā)展,從而有助于提高設(shè)計(jì)人員的設(shè)計(jì)生產(chǎn)力。
對于針對賽靈思All Programmable FPGA和SOC設(shè)計(jì)的開發(fā)團(tuán)隊(duì)而言,這些抽象化成為了提高設(shè)計(jì)團(tuán)隊(duì)設(shè)計(jì)生產(chǎn)力的有力工具。Vivado™設(shè)計(jì)套件配合使用廣泛的第三方操作系統(tǒng)、工具和IP核,可加速All Programmable器件的集成與實(shí)現(xiàn)。
Vivado設(shè)計(jì)套件:IP集成器
最新發(fā)布的Vivado設(shè)計(jì)套件提供一種新型IP集成器(IPI),用于實(shí)現(xiàn)IP智能集成。IPI提供圖形化、腳本編寫(Tcl)、生成即保證正確(correct-by-construction)、及以IP和系統(tǒng)為中心的設(shè)計(jì)開發(fā)流程。IPI 建立在Vivado集成設(shè)計(jì)環(huán)境的基礎(chǔ)之上,同時(shí)具備器件感知與平臺感知功能。這種互動(dòng)環(huán)境支持關(guān)鍵IP接口的智能自動(dòng)連接、IP子系統(tǒng)一鍵式生成、實(shí)時(shí)DRC以及接口變更傳播功能,而且具備強(qiáng)大的調(diào)試功能。
IPI使設(shè)計(jì)可以通過“生成即保證正確”的方式完成。設(shè)計(jì)人員能夠進(jìn)行接口級抽象化(interface level of abstraction),并可利用廣泛的IP系列。這些IP通過AMBA® AXI4接口提供,存儲在一個(gè)開放的行業(yè)標(biāo)準(zhǔn)IP-XACT庫中。
設(shè)計(jì)團(tuán)隊(duì)現(xiàn)在可以使用IPI快速組裝復(fù)雜的系統(tǒng)。將該工具與其他Vivado功能配合使用,能夠確保設(shè)計(jì)和IP得到正確配置,因此利用VHDL或Verilog語言提高以上抽象化,從而改善生產(chǎn)力。此外,IPI的內(nèi)置自動(dòng)化器件驅(qū)動(dòng)程序以及地址映射生成功能可以消除軟件開發(fā)流程中的手動(dòng)操作步驟。
ALL PROGRAMMABLE 抽象化與自動(dòng)化
Vivado設(shè)計(jì)套件:高層次綜合
傳統(tǒng)的標(biāo)準(zhǔn)軟件抽象化現(xiàn)在也被用于硬件開發(fā)。很多開發(fā)團(tuán)隊(duì)將C和C的派生語言作為硬件開發(fā)的建模語言。主要原因有兩點(diǎn):這種方法的驗(yàn)證優(yōu)勢是RTL仿真的100倍;或者,開發(fā)團(tuán)隊(duì)需要對運(yùn)行在處理器上的算法進(jìn)行加速。Vivado高層次綜合能使賽靈思All Programmable器件充分滿足C、C++和System C規(guī)范要求,從而加速IP的創(chuàng)建。Vivado HLS無需手動(dòng)創(chuàng)建RTL,同時(shí)還能提供快速的設(shè)計(jì)空間探索。由于能夠提高生產(chǎn)力和設(shè)計(jì)重用性,這種工具正在得到廣泛應(yīng)用。
賽靈思通過推出最新的Vivado,為具有行業(yè)標(biāo)準(zhǔn)的OpenCV庫增添了有效支持。OpenCV可幫助優(yōu)化運(yùn)行在處理器(例如Zynq™-7000 All Programmable SoC上的處理)上的智能視頻算法移植到基于硬件的加速器上(該加速器可通過IPI快速集成到異構(gòu)系統(tǒng)中)。憑借Vivado IPI與HLS系統(tǒng),設(shè)計(jì)架構(gòu)師就可以更加快速地實(shí)現(xiàn)復(fù)雜的異構(gòu)系統(tǒng)。
VIVADO設(shè)計(jì)套件自動(dòng)化
自動(dòng)化而非指令性的設(shè)計(jì)流程
根據(jù)解決問題的要求不同,開發(fā)團(tuán)隊(duì)也會采用基于模型的抽象化。基于模型的流程可提供一系列面向智能視覺、智能網(wǎng)絡(luò)應(yīng)用及其它應(yīng)用的豐富模型庫。設(shè)計(jì)團(tuán)隊(duì)可以開發(fā)并改善算法,在更高的抽象化級別上充分滿足系統(tǒng)要求,且無需擔(dān)心具體的實(shí)現(xiàn)細(xì)節(jié)。然后,基于模型的流程會自動(dòng)從算法模型中生成用于處理器的C代碼以及RTL代碼。賽靈思與MathWorks®和National Instruments®展開緊密合作,以確保為Zynq-7000 AP SoC設(shè)計(jì)的實(shí)現(xiàn)提供高度自動(dòng)化和無縫的流程。
要想充分發(fā)揮All Programmable設(shè)計(jì)的優(yōu)勢,主要取決于自動(dòng)化水平和高層次的抽象化。今天,賽靈思率先推出各種設(shè)計(jì)方法,能充分應(yīng)對上述挑戰(zhàn)。賽靈思與其生態(tài)系統(tǒng)的聯(lián)盟成員共同開發(fā)并推出直觀的智能標(biāo)準(zhǔn)化設(shè)計(jì)流程,可支持開發(fā)工作實(shí)現(xiàn)自動(dòng)化(而非指令化),從而在確保性能、功耗或成本優(yōu)勢的前提下靈活地滿足開發(fā)團(tuán)隊(duì)的需求。
未來的自動(dòng)化:助力軟件和系統(tǒng)設(shè)計(jì)師
賽靈思致力于提供一款系統(tǒng)級異構(gòu)并行的編程環(huán)境,可靈活地利用C/C++等熟悉的當(dāng)前抽象化技術(shù),并不斷擴(kuò)展到包括開放計(jì)算語言(OpenCL)(基于Eclipse的綜合軟件開發(fā)環(huán)境)在內(nèi)的最新抽象化技術(shù)。這種環(huán)境可提供特定市場的庫,能夠通過采用賽靈思All Programmable器件顯著提高異構(gòu)系統(tǒng)的驗(yàn)證效率,并且理想適用于助力采用并行架構(gòu)的系統(tǒng)架構(gòu)師、軟件應(yīng)用開發(fā)人員以及嵌入式設(shè)計(jì)人員,從而提高系統(tǒng)性能,降低材料成本和總體功耗,并在開發(fā)時(shí)間上與ASSP、DSP和GPU保持一致。
系統(tǒng)級抽象化與自動(dòng)化