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