《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技术 > 业界动态 > 软硬件协同设计时代到来

软硬件协同设计时代到来

2008-09-24
作者:David

? 以前曾有過(guò)系統(tǒng)設(shè)計(jì)完全串行化的時(shí)代。整個(gè)硬件平臺(tái)" title="硬件平臺(tái)">硬件平臺(tái)在經(jīng)過(guò)設(shè)計(jì)、原型創(chuàng)建、調(diào)試和全面完成后才開(kāi)始軟件的開(kāi)發(fā)。當(dāng)然,這種方法適合市場(chǎng)窗口很寬的年代。每每想起這種有趣的方法都能讓人暗自竊笑。


?? 如今情況有了很大的改變。市場(chǎng)窗口已經(jīng)變得很窄。硬件開(kāi)發(fā)一般都要落后于軟件,但沒(méi)人能夠忍耐等待硬件原型出來(lái)后才開(kāi)始考慮系統(tǒng)的驅(qū)動(dòng)程序、操作系統(tǒng)和總線協(xié)議。現(xiàn)在軟件開(kāi)發(fā)過(guò)程必須盡早開(kāi)始,以便軟件和硬件可以同時(shí)進(jìn)行驗(yàn)證。


?? 但在硅片還沒(méi)有出來(lái)、或者使用難度越來(lái)越大的情況下如何做到這一點(diǎn)呢?另外,在系統(tǒng)設(shè)計(jì)周期的早期階段,最終規(guī)范也是一個(gè)不斷變化的目標(biāo),很難為器件建立一個(gè)合適的測(cè)試平臺(tái)。而且你所賴(lài)于調(diào)試和性能分析的信息也不完整。除此之外,硬件平臺(tái)本身還包含了具有復(fù)雜互連、分級(jí)存儲(chǔ)器體系和多個(gè)相互依賴(lài)的軟件堆棧等特點(diǎn)的異類(lèi)多內(nèi)核。


?? 對(duì)設(shè)計(jì)團(tuán)隊(duì)來(lái)說(shuō)幸運(yùn)的是,針對(duì)不存在硬件平臺(tái)的情況下高效驗(yàn)證軟件的方法由來(lái)已久。當(dāng)然,解決方案的一部分需要極大地依賴(lài)于所謂的平臺(tái)系統(tǒng)級(jí)芯片(SoC),這是從已經(jīng)建立的、具有良好性能的IP庫(kù)中生成的通用硬件架構(gòu)。在進(jìn)行軟件開(kāi)發(fā)時(shí)這種方法可以為設(shè)計(jì)團(tuán)隊(duì)提供很大的幫助。


?? 但對(duì)于想要在定制的硬件平臺(tái)上開(kāi)發(fā)軟件的激進(jìn)者來(lái)說(shuō),軟硬件協(xié)同設(shè)計(jì)" title="軟硬件協(xié)同設(shè)計(jì)">軟硬件協(xié)同設(shè)計(jì)一般需要組裝一個(gè)高度抽象的硬件平臺(tái)模型。實(shí)現(xiàn)這種技術(shù)有多種方式。另外,模擬技術(shù)在最近幾年有了很大的發(fā)展,可以更輕松地用稍加詳細(xì)的模型運(yùn)行更多時(shí)鐘周期的仿真。另外,近來(lái)的標(biāo)準(zhǔn)化活動(dòng)也有助于設(shè)計(jì)行業(yè)用建模取得相同效果。


高層決策


?? 越來(lái)越流行的解決協(xié)同設(shè)計(jì)問(wèn)題的方式是從盡可能高的抽象層開(kāi)始。在這種方式下,硬件/軟件劃分問(wèn)題和哪種實(shí)現(xiàn)手段最適合初始算法可以得到同時(shí)處理。


?? MathWorks公司的模型設(shè)計(jì)概念采用的就是這類(lèi)方法,它可以自動(dòng)產(chǎn)生和驗(yàn)證嵌入式處理器的生產(chǎn)代碼。因此MathWorks的系列產(chǎn)品采用的是系統(tǒng)級(jí)流程,該流程包含了設(shè)計(jì)、仿真以及在Matlab和Simulink中的系統(tǒng)模型確認(rèn)(圖1)。


?? 借助于Real-Time Workshop和Real-Time Workshop Embedded Coder,設(shè)計(jì)人員" title="設(shè)計(jì)人員">設(shè)計(jì)人員可以自動(dòng)產(chǎn)生嵌入式處理器的生產(chǎn)代碼。這些工具提供C代碼產(chǎn)生功能,并且目標(biāo)代碼提供了特殊目標(biāo)的生成代碼擴(kuò)展。


? 同時(shí),MathWorks公司的Link產(chǎn)品,如Link for Code Composer Studio或Link for Tasking,可以幫助工程師直接參考原始可執(zhí)行規(guī)范對(duì)嵌入式軟件進(jìn)行測(cè)試、調(diào)試和驗(yàn)證。在硬件側(cè),工程師同樣可以參考原始可執(zhí)行規(guī)范使用Link for ModelSim驗(yàn)證在FPGA上實(shí)現(xiàn)的HDL代碼或ASIC代碼。


模型生成


? 軟硬件協(xié)同設(shè)計(jì)已經(jīng)成為電子系統(tǒng)級(jí)工具和方法的主要應(yīng)用之一。多家EDA公司已經(jīng)為創(chuàng)建特定架構(gòu)的平臺(tái)模型開(kāi)發(fā)了相當(dāng)成熟的流程。


? Carbon設(shè)計(jì)系統(tǒng)公司提供的一類(lèi)工具可以直接從設(shè)計(jì)的“黃金”RTL描述生成周期精確模型。這種RTL可以用Verilog、VHDL或混合語(yǔ)言的風(fēng)格編寫(xiě)。這種所謂的“Carbon化”模型針對(duì)高性能進(jìn)行過(guò)優(yōu)化,因此仿真速度比RTL本身要快許多。


? 對(duì)于模型確認(rèn),Carbon公司的流程允許用戶(hù)通過(guò)參考原始HDL測(cè)試平臺(tái)的調(diào)試來(lái)驗(yàn)證單獨(dú)硬件模型。用Carbon的Model Studio創(chuàng)建的模型可以很容易集成進(jìn)現(xiàn)有的參考測(cè)試套件中以驗(yàn)證接口的周期精確性。所有業(yè)界標(biāo)準(zhǔn)的仿真器都可以使用,包括明導(dǎo)的Questa、新思的VCS和Cadence的NC-Sim。


?? 在需要將單獨(dú)的模型集成進(jìn)平臺(tái)時(shí),Carbon的模型可以與系統(tǒng)級(jí)集成環(huán)境(如CoWare的Platform Architect及其它)集成在一起。它們也可以很容易地與周期級(jí)的傳統(tǒng)RTL IP集成在一起。在Carbon流程中的這個(gè)點(diǎn)上,用戶(hù)可以用從實(shí)際RTL編譯生成的精確周期模型代替早期的系統(tǒng)模型。


?? 在組裝好平臺(tái)后,Carbon化模型允許分析和研究硬件架構(gòu)本身。它們?cè)试S使用實(shí)際的RTL開(kāi)展架構(gòu)分析,并使用現(xiàn)有的系統(tǒng)建模環(huán)境確認(rèn)架構(gòu)方面的假設(shè)。用戶(hù)可以研究設(shè)計(jì)實(shí)現(xiàn)的性能參數(shù),并驗(yàn)證使用高層系統(tǒng)模型作出的折衷是否值得。

?

?? 最后,該流程通過(guò)在硅片可用之前實(shí)現(xiàn)軟件調(diào)試來(lái)完成固件確認(rèn)。Carbon流程中的固件確認(rèn)可以充分發(fā)揮Carbon化周期級(jí)模型的精度優(yōu)勢(shì),而且有利于虛擬平臺(tái)" title="虛擬平臺(tái)">虛擬平臺(tái)向多個(gè)設(shè)計(jì)團(tuán)隊(duì)和第三方軟件開(kāi)發(fā)人員的推廣。

?

虛擬平臺(tái)


? 通過(guò)從硬件模型創(chuàng)建虛擬平臺(tái)可以解決多種軟件開(kāi)發(fā)問(wèn)題。與潛在不穩(wěn)定的首遍成功的硅片原型相比,虛擬系統(tǒng)可以給設(shè)計(jì)師提供對(duì)系統(tǒng)的更多控制。這樣,設(shè)計(jì)師可以工作在更加具有確定性的情況下。另外,他們能夠根據(jù)需要任意修改平臺(tái),通過(guò)增加或減少功能模型和/或改變速度來(lái)確定對(duì)架構(gòu)和系統(tǒng)性能的影響。


? 虛擬硬件在存儲(chǔ)器、處理器寄存器和器件狀態(tài)方面提供了很好的可視性。當(dāng)你同步處理器時(shí),你可以立即同步所有器件。虛擬化還可以提供對(duì)系統(tǒng)執(zhí)行更強(qiáng)的控制能力。當(dāng)調(diào)試要求全局系統(tǒng)停止時(shí),所有處理器會(huì)同時(shí)停止,不存在“剎車(chē)”效應(yīng)。當(dāng)某個(gè)處理器正在執(zhí)行指令時(shí),可以讓其它處理器原地等待。內(nèi)核速度可以慢下來(lái),或完全停止,通信延時(shí)可以增加,而來(lái)自斷點(diǎn)的時(shí)序干擾將不復(fù)存在。


? ESL2.0工具集是CoWare公司推出的一個(gè)平臺(tái)創(chuàng)建工具。借助于CoWare公司的這些工具,SoC設(shè)計(jì)師可以在周期精確的抽象等級(jí)調(diào)試和衡量IP及子系統(tǒng)RTL的平臺(tái)級(jí)性能。


? CoWare公司聲稱(chēng)利用虛擬平臺(tái)技術(shù)可以獲得30%到50%的周期時(shí)間減少。該技術(shù)將加快編輯-編譯-調(diào)試周期。虛擬平臺(tái)可以提供包括處理器、總線、外設(shè)和環(huán)境在內(nèi)的整個(gè)平臺(tái)的完全可視化和可控制能力,并且具有確定性。


?? 用于協(xié)同設(shè)計(jì)目的的虛擬平臺(tái)的另外一個(gè)優(yōu)點(diǎn)是消除了對(duì)硬件可達(dá)性的依賴(lài)。就象軟件包一樣,虛擬平臺(tái)是全球可訪問(wèn)的-只需幾分鐘的時(shí)間,而且上千個(gè)單元都有一致的確定性行為。


? 虛擬平臺(tái)還有助于軟件開(kāi)發(fā)人員回避由于不斷演變的硬件規(guī)范而導(dǎo)致的重復(fù)工作。CoWare的虛擬平臺(tái)可以用硬件架構(gòu)師和開(kāi)發(fā)人員使用的相同技術(shù)進(jìn)行創(chuàng)建。因此,當(dāng)作出修改時(shí),它們可以立即提供給軟件開(kāi)發(fā)人員。

?

建立基礎(chǔ)架構(gòu)


? 虛擬平臺(tái)路線有其優(yōu)勢(shì),但在成功道路上有也障礙。建立虛擬平臺(tái)是一個(gè)十分費(fèi)力的過(guò)程,而且必須與設(shè)計(jì)過(guò)程本身同時(shí)進(jìn)行,這樣就帶來(lái)了硬件模型在各種商用流程之間的互操作性問(wèn)題。


? Imperas是虛擬平臺(tái)領(lǐng)域的一家新創(chuàng)企業(yè),今年初該公司作出了巨大的技術(shù)貢獻(xiàn),承諾為虛擬平臺(tái)提供開(kāi)源基礎(chǔ)架構(gòu)" title="基礎(chǔ)架構(gòu)">基礎(chǔ)架構(gòu)。發(fā)現(xiàn)缺少寬泛的調(diào)試基礎(chǔ)架構(gòu)后,公司在其開(kāi)放虛擬平臺(tái)(OVP)網(wǎng)站www.ovpworld.org和SourceForge網(wǎng)站上免費(fèi)推出了三種技術(shù)組件。


?? 第一種組件由用于處理器、外設(shè)和平臺(tái)建模的C語(yǔ)言建模應(yīng)用編程接口(API)組成,可以幫助設(shè)計(jì)師建立平臺(tái)驗(yàn)證基礎(chǔ)架構(gòu)并創(chuàng)建行為與處理器模型。第二個(gè)組件是寫(xiě)入API的開(kāi)源模型庫(kù)。這些模型能夠以預(yù)編譯對(duì)象代碼或源代碼文件的形式獲得。最初的庫(kù)由ARM、MIPS和OpenRISC OR1K器件的處理器模型組成,今后還會(huì)增加其它的處理器。


? 在上個(gè)月舉行的第45屆設(shè)計(jì)自動(dòng)會(huì)議上,Imperas發(fā)布了與Tensilica公司的合作伙伴關(guān)系,允許Tensilica公司的Xtensa和Diamond Standard處理器的快速功能、指令精確模型在基于OVP的虛擬平臺(tái)上運(yùn)行。特別是,允許集成Tensilica處理器模型的打包文件現(xiàn)在就可以從www.ovpworld.org上免費(fèi)下載。這些模型將與Tensilica的TurboXim快速功能仿真器一起運(yùn)行。TurboXim仿真器的運(yùn)行速度比傳統(tǒng)的指令集仿真器快40到80倍。


? 三個(gè)免費(fèi)組件中的最后一個(gè)是OVP參考仿真器,能夠以高達(dá)500MIPS的速度運(yùn)行處理器模型。名為OVPsim的這個(gè)仿真器提供GDB接口供設(shè)計(jì)師調(diào)試選擇。OVPsim可以通過(guò)C/C++/SystemC封包器在其它仿真器中調(diào)用。它還能容納現(xiàn)有的指令集仿真器(ISS)處理器模型(圖3)。


硬件的參與
存在用硬件實(shí)現(xiàn)模擬中的軟硬件協(xié)同設(shè)計(jì)的情況?;谀M的方法可以極大地幫助對(duì)硬件-軟件交互行為的檢查,因?yàn)樗确抡婵煸S多倍,并能使用硬件監(jiān)視和跟蹤功能,還能詳細(xì)檢查問(wèn)題。
? 另外,模擬系統(tǒng)可以鏈接進(jìn)虛擬平臺(tái),從而有助于實(shí)現(xiàn)完整的系統(tǒng)驗(yàn)證。例如,當(dāng)諸如CoWare公司Platform Architect的工具通過(guò)總線事務(wù)處理器的方式連接到ZeBu系統(tǒng)時(shí),EVE公司的ZeBu系列模擬系統(tǒng)就可以在ESL模擬環(huán)境中使用(圖4)。


? EVE的ZeBu模擬器允許設(shè)計(jì)人員以1MHz以上的速度執(zhí)行嵌入式軟件,這個(gè)速度被許多開(kāi)發(fā)人員認(rèn)為是確認(rèn)軟件的最低可接受速度。借助于ZeBu技術(shù),設(shè)計(jì)人員可以通過(guò)一個(gè)JTAG事務(wù)處理器將調(diào)試器連接至待測(cè)設(shè)計(jì)(DUT)模式下的處理器進(jìn)行軟件調(diào)試,然后停止/開(kāi)始和逐步運(yùn)行調(diào)試器,中間不會(huì)丟失連接。


? “這是通過(guò)物理的JTAG電纜/插座無(wú)法實(shí)現(xiàn)的。”EVE-USA公司營(yíng)銷(xiāo)副總裁兼總經(jīng)理Lauro Rizzatti表示。ZeBu系列產(chǎn)品同樣可以讓所有寄存器和存儲(chǔ)器對(duì)設(shè)計(jì)人員完全可視,無(wú)需編譯探測(cè)電路或?qū)UT應(yīng)用儀器。


?? 所有這些開(kāi)發(fā)成果允許開(kāi)發(fā)人員執(zhí)行軟件、運(yùn)行調(diào)試器,并在發(fā)生錯(cuò)誤時(shí)停止運(yùn)行,查看硬件內(nèi)部,并詳細(xì)了解可能是軟件缺陷或硬件缺陷的問(wèn)題。通過(guò)保持對(duì)軟件調(diào)試器、硬件寄存器/存儲(chǔ)器及兩者之間切換的可視性,錯(cuò)誤通??梢栽谙鄬?duì)很短的時(shí)間內(nèi)捕捉到。


不斷演進(jìn)的標(biāo)準(zhǔn)


?? EVE的ZeBu技術(shù)采用的事務(wù)處理器是從標(biāo)準(zhǔn)的協(xié)同模擬建模接口(SCEMI)改編而來(lái)的,它改進(jìn)了不同硬件和硬件仿真及模擬系統(tǒng)之間的高速、事務(wù)級(jí)驗(yàn)證性能。SCE-MI標(biāo)準(zhǔn)是在推進(jìn)EDA相關(guān)標(biāo)準(zhǔn)化工作的行業(yè)組織Accellera的支持下創(chuàng)建的。


? 最近,Accellera的董事會(huì)批準(zhǔn)了2.0版本的SCE-MI標(biāo)準(zhǔn)。據(jù)該組織表示,這是向提供在仿真、模擬和快速原型建立環(huán)境之間連接和移植事務(wù)處理器模型的便利方法邁出的重要一步。


?? “Accellera的SCE-MI接口試圖在模型執(zhí)行工具(如仿真器、模擬器和測(cè)試平臺(tái))之間形成基礎(chǔ)性軟硬件接口,并且盡可能做到統(tǒng)一。”Accellera的接口技術(shù)委員會(huì)(ITC)主席、擬制SCE-MI 2.0規(guī)范的Brian Bailey表示,“2.0版本還參考了SystemVerilog直接編程接口(DPI)標(biāo)準(zhǔn),確保在已經(jīng)有合適標(biāo)準(zhǔn)的地方不會(huì)創(chuàng)建多余的標(biāo)準(zhǔn)。”

?

? 除了在SystemVerilog DPI子集基礎(chǔ)上建立的新使用模型外,SCEMI 2.0如今還兼容Open SystemC Initiative(OSCI)的事務(wù)級(jí)建模(TLM)定義。SCE-MI 2.0保持了與以前1.1版的后向兼容性,它還增加了具有數(shù)據(jù)整形功能的流接口用于優(yōu)化模擬速度,增加了仿真與模擬之間的雙向模型移植功能,并增加了更加簡(jiǎn)化的事務(wù)處理器建模功能。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。

相關(guān)內(nèi)容