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