機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
SOC設(shè)計(jì)中的軟硬件協(xié)同設(shè)計(jì)
SOC設(shè)計(jì)中的軟硬件協(xié)同設(shè)計(jì)
 更新時(shí)間:2008-8-18 14:50:03  點(diǎn)擊數(shù):30
【字體: 字體顏色

1 引言
 ---大規(guī)模集成電路的復(fù)雜度依照摩爾定律即每18個(gè)月單位元件數(shù)增加一倍的速度迅速發(fā)展,現(xiàn)在已經(jīng)能夠在單一硅芯片上集成MCU、MPU、DSP等模擬與數(shù)字混合電路,從而構(gòu)成一個(gè)完整的系統(tǒng),這就是片上系統(tǒng)(SOC)。SOC是21世紀(jì)集成電路發(fā)展的必然趨勢(shì),SOC系統(tǒng)將原來(lái)由許多芯片完成的功能,集中到一塊芯片中完成。但SOC不是各個(gè)芯片功能的簡(jiǎn)單疊加,而是從整個(gè)系統(tǒng)的功能和性能出發(fā),用軟硬結(jié)合的設(shè)計(jì)和驗(yàn)證方法,利用IP復(fù)用及深亞微米技術(shù),在一個(gè)芯片上實(shí)現(xiàn)復(fù)雜的功能。完成一個(gè)片上系統(tǒng)(SOC)對(duì)軟硬件協(xié)同設(shè)計(jì)的依賴性,如圖1所示。

2 軟硬件協(xié)同設(shè)計(jì)
2.1 軟硬件協(xié)同設(shè)計(jì)理論產(chǎn)生的背景
---SOC是微電子設(shè)計(jì)領(lǐng)域的一場(chǎng)革命,SOC主要有3個(gè)關(guān)鍵的支持技術(shù):①軟、硬件的協(xié)同設(shè)計(jì)技術(shù), 面向不同系統(tǒng)的軟件和硬件的功能劃分理論(Functional Partition Theory);②IP模塊庫(kù)問(wèn)題;③模塊界面間的綜合分析技術(shù)。其中軟硬件協(xié)同設(shè)計(jì)技術(shù)不僅是SOC的重要特點(diǎn),也是21世紀(jì)IT業(yè)發(fā)展的一大趨勢(shì)。HW-SW Co-design目的是為hardware和software的協(xié)同描述、驗(yàn)證和綜合提供一種集成環(huán)境。
---SOC與IC的設(shè)計(jì)原理是不同的,但它的設(shè)計(jì)不可能一切從頭開(kāi)始,要將設(shè)計(jì)建立在較高的基礎(chǔ)之上,利用已有的芯核進(jìn)行設(shè)計(jì)重用,設(shè)計(jì)方法從傳統(tǒng)的電路設(shè)計(jì)轉(zhuǎn)向系統(tǒng)設(shè)計(jì),設(shè)計(jì)的重心也從邏輯綜合、布局布線轉(zhuǎn)向系統(tǒng)的設(shè)計(jì)、軟硬結(jié)合的設(shè)計(jì)以及仿真。SOC是從整個(gè)系統(tǒng)的角度出發(fā),把處理機(jī)制、模型算法、軟件(特別是芯片上的嵌入式操作系統(tǒng))、芯片結(jié)構(gòu)、各層次電路直至器件的設(shè)計(jì)緊密結(jié)合起來(lái),在單個(gè)芯片上完成整個(gè)系統(tǒng)的功能。它的設(shè)計(jì)必須從系統(tǒng)行為級(jí)開(kāi)始自頂向下(Top-Down)。很多研究表明,與由IC組成的系統(tǒng)相比,由于SOC設(shè)計(jì)能夠綜合并全盤考慮整個(gè)系統(tǒng)的各種情況,可以在同樣的工藝技術(shù)條件下實(shí)現(xiàn)更高性能的系統(tǒng)指標(biāo)。而傳統(tǒng)的IC設(shè)計(jì)方法采用硬件先行的方法,即先設(shè)計(jì)硬件,再根據(jù)算法設(shè)計(jì)軟件。而在深亞微米設(shè)計(jì)中,硬件的費(fèi)用是非常大的,當(dāng)設(shè)計(jì)完成后,發(fā)現(xiàn)錯(cuò)誤進(jìn)行更改,要花費(fèi)大量的費(fèi)用和時(shí)間。在SOC設(shè)計(jì)中,為了既可縮短開(kāi)發(fā)周期,又能取得更好的設(shè)計(jì)效果,要求使用軟硬件協(xié)同設(shè)計(jì)技術(shù)。軟硬件協(xié)同的方法可以使軟件設(shè)計(jì)者在硬件完成之前接觸到硬件模塊,從而更好地設(shè)計(jì)硬件的驅(qū)動(dòng)、應(yīng)用程序、操作系統(tǒng)等軟件,同時(shí)可以使硬件設(shè)計(jì)者盡早接觸軟件,為軟件設(shè)計(jì)者提供高性能的硬件平臺(tái),減少了設(shè)計(jì)中的盲目性,如圖2所示。


 2.2 軟硬件協(xié)同設(shè)計(jì)技術(shù)發(fā)展過(guò)程
---軟硬件協(xié)同設(shè)計(jì)早期,主要是針對(duì)一個(gè)特定的硬件如何進(jìn)行軟件開(kāi)發(fā)或根據(jù)一個(gè)已有的軟件實(shí)現(xiàn)具體的硬件結(jié)構(gòu)。前者是一個(gè)經(jīng)典的軟件開(kāi)發(fā)問(wèn)題,軟件性能的好壞不僅僅取決于軟件開(kāi)發(fā)人員的技術(shù)水平,更有賴于所使用的硬件平臺(tái);后者是一個(gè)軟件固化的問(wèn)題,實(shí)現(xiàn)的途徑可以是采用一個(gè)與原有軟件平臺(tái)相同的硬件處理器,并將軟件代碼存儲(chǔ)于存儲(chǔ)器當(dāng)中,也可以是在充分理解軟件的內(nèi)在功能之后完全用硬件來(lái)實(shí)現(xiàn)軟件的功能。早期的這種設(shè)計(jì)缺少統(tǒng)一的軟硬件表示方法,軟硬件劃分僅憑先驗(yàn)定義,不能夠驗(yàn)證整個(gè)系統(tǒng),通過(guò)HW/SW 邊界時(shí)很難發(fā)現(xiàn)不兼容問(wèn)題,缺少成熟的設(shè)計(jì)流程。在現(xiàn)代的SOC設(shè)計(jì)中,對(duì)軟硬件的劃分要從系統(tǒng)的角度,將軟硬件完成的功能作均衡,以想要達(dá)到的目標(biāo)為設(shè)計(jì)標(biāo)準(zhǔn),在系統(tǒng)的復(fù)雜度一定時(shí),使軟硬件結(jié)合達(dá)到更高的性能。軟硬件劃分好以后,軟件和硬件的設(shè)計(jì)一直是保持并行的,在設(shè)計(jì)過(guò)程中兩者交織在一起,互相支持,互相提供開(kāi)發(fā)的平臺(tái)。
2.3 軟硬件協(xié)同設(shè)計(jì)理論
---面向SOC的軟硬件協(xié)同設(shè)計(jì)理論應(yīng)該是從一個(gè)給定的系統(tǒng)任務(wù)描述著手,首先是系統(tǒng)的描述方法。目前廣泛采用的硬件描述語(yǔ)言是否仍然有效?如何來(lái)定義一個(gè)系統(tǒng)級(jí)的軟件功能描述或硬件功能描述?迄今為止,尚沒(méi)有一個(gè)大家公認(rèn)的且可以使用的系統(tǒng)功能描述語(yǔ)言可供設(shè)計(jì)者使用。其次是這一全新的設(shè)計(jì)理論與已有的集成電路設(shè)計(jì)理論之間的接口?梢灶A(yù)見(jiàn),這種全新的設(shè)計(jì)理論應(yīng)該是現(xiàn)有集成電路設(shè)計(jì)理論的完善,是建立在現(xiàn)有理論之上的一個(gè)更高層次的設(shè)計(jì)理論,它與現(xiàn)有理論一起組成了更為完善的理論體系。在這種假設(shè)下,這種設(shè)計(jì)理論的輸出就應(yīng)該是現(xiàn)有理論的輸入。第三,這種全新的軟硬件協(xié)同設(shè)計(jì)理論將如何確定最優(yōu)性原則。顯然,沿用以往的最優(yōu)性準(zhǔn)則是不夠的。除了芯片設(shè)計(jì)師們已經(jīng)熟知的速度、面積等硬件優(yōu)化指標(biāo)外,與軟件相關(guān)的如代碼長(zhǎng)度、資源利用率、穩(wěn)定性等指標(biāo)也必須由設(shè)計(jì)者認(rèn)真地加以考慮。第四,如何對(duì)這樣的一個(gè)包含軟件和硬件的系統(tǒng)的功能進(jìn)行驗(yàn)證。除了驗(yàn)證所必須的環(huán)境之外,確認(rèn)設(shè)計(jì)錯(cuò)誤發(fā)生的地方和機(jī)理將是一個(gè)不得不面對(duì)的課題。最后,功耗問(wèn)題。傳統(tǒng)的集成電路在功耗的分析和估計(jì)方面已有一整套理論和方法。但是,要用這些現(xiàn)成的理論來(lái)分析和估計(jì)含有軟件和硬件兩部分的SOC將是遠(yuǎn)遠(yuǎn)不夠的。簡(jiǎn)單地對(duì)一個(gè)硬件設(shè)計(jì)進(jìn)行功耗分析是可以的,但是由于軟件運(yùn)行引起的動(dòng)態(tài)功耗則只能通過(guò)軟硬件的聯(lián)合運(yùn)行才能知道。其實(shí),還可以舉出很多新理論要涉及的問(wèn)題,它們一起構(gòu)成了面向SOC的軟硬件協(xié)同設(shè)計(jì)的理論體系。
---軟硬件協(xié)同設(shè)計(jì)所涉及到的內(nèi)容有:HW-SW 協(xié)同設(shè)計(jì)流程、HW-SW 劃分、HW-SW 并行綜合、HW-SW 并行仿真。
---軟件硬件協(xié)同設(shè)計(jì)的設(shè)計(jì)流程:第一步,用HDL語(yǔ)言和C語(yǔ)言進(jìn)行系統(tǒng)描述并進(jìn)行模擬仿真和系統(tǒng)功能驗(yàn)證;第二步,對(duì)軟硬件實(shí)現(xiàn)進(jìn)行功能劃分,分別用語(yǔ)言進(jìn)行設(shè)計(jì)并將其綜合起來(lái)進(jìn)行功能驗(yàn)證和性能預(yù)測(cè)等仿真確認(rèn)(協(xié)調(diào)模擬仿真);第三步,如無(wú)問(wèn)題則進(jìn)行軟件和硬件詳細(xì)設(shè)計(jì);第四步,最后進(jìn)行系統(tǒng)測(cè)試。圖3即為典型的軟硬件協(xié)同設(shè)計(jì)流程。


 ---軟硬件劃分是SOC設(shè)計(jì)中的一個(gè)重要課題。其基本原則應(yīng)該遵循高速、低功耗由硬件實(shí)現(xiàn);多品種、小批量由軟件對(duì)應(yīng);處理器和專用硬件并用以提高處理速度和降低功耗。劃分的方法應(yīng)該從兩個(gè)方面著手:A.面向SW:從SW到HW 滿足時(shí)序要求;B.面向HW: 從HW到 SW降低成本。軟硬件并行綜合相比IC設(shè)計(jì)綜合又增加了許多約束和限制,特別對(duì)于嵌入式系統(tǒng)來(lái)說(shuō)限制更多。還有各種接口之間的綜合,現(xiàn)在面臨最大的問(wèn)題就是SOC與眾多IP核之間接口的綜合。所謂軟硬件并行仿真就是用軟件控制硬件的仿真,把運(yùn)行在一個(gè)可編程的處理器硬件上的虛弱的可編程(或固定)硬件子系統(tǒng)和仿真軟件聯(lián)結(jié),要求在不同結(jié)構(gòu)下能夠快速測(cè)試輸入的不同激勵(lì),快速改變結(jié)構(gòu)參數(shù),容易分析結(jié)果和調(diào)試原理圖接口。在系統(tǒng)級(jí)芯片上,幾乎都要用到微處理器以及專門的軟件和硬件。硬件和軟件之間是密切相關(guān)的。但在系統(tǒng)被做出之前,軟硬件之間的相互作用通常是很難精確測(cè)出的。一些設(shè)計(jì)錯(cuò)誤也不會(huì)明顯表現(xiàn)出來(lái)。為了解決這一問(wèn)題,必須采用硬件/軟件協(xié)同驗(yàn)證技術(shù)。

3 目前支持軟硬件協(xié)同設(shè)計(jì)的工具
---CadenceVirtual Component Co-design (VCC) 是第一個(gè)為IP復(fù)用所設(shè)計(jì)的工業(yè)系統(tǒng)級(jí)HW/SW co-design開(kāi)發(fā)平臺(tái)環(huán)境。Cadence VCC使設(shè)計(jì)師在早期設(shè)計(jì)第一代產(chǎn)品和相關(guān)產(chǎn)品時(shí),就可以確認(rèn) HW/SW劃分的臨界體系結(jié)構(gòu)。Cadence VCC通過(guò)電子供給鏈進(jìn)行交流和交換設(shè)計(jì)信息,為系統(tǒng)庫(kù)和SOC提供必要的框架。
---System C是一種通過(guò)類對(duì)象擴(kuò)展的基于C/C++建模平臺(tái),支持系統(tǒng)級(jí)軟硬件協(xié)同設(shè)計(jì)仿真和驗(yàn)證。System C是一個(gè)開(kāi)發(fā)硬件的面向?qū)ο蟮男滦徒7椒?建立在C++基礎(chǔ)上,是為了方便系統(tǒng)級(jí)設(shè)計(jì)和IP交換。在System C語(yǔ)言描述中最基本的構(gòu)造塊是進(jìn)程,一個(gè)完整的系統(tǒng)描述包含幾個(gè)并發(fā)進(jìn)程,進(jìn)程之間通過(guò)信號(hào)互相聯(lián)系,而且可以通過(guò)外在時(shí)鐘確定事件的順序和進(jìn)程的同步,所有的構(gòu)造塊都是System C的類對(duì)象,而對(duì)硬件進(jìn)行建模所需的特別的數(shù)據(jù)類型在System C庫(kù)中也有提供,圖4為System C建模的實(shí)例。System C源碼可以用來(lái)綜合硬件,把System C寫的硬件描述綜合成門級(jí)網(wǎng)表以便IC實(shí)現(xiàn)或綜合成一個(gè)Verilog HDL或VHDL的RTL描述以便FPGA綜合。用System C開(kāi)發(fā)的硬件模型可以用標(biāo)準(zhǔn)的C++編譯器來(lái)編譯,經(jīng)編譯后形成一個(gè)可執(zhí)行的應(yīng)用程序,設(shè)計(jì)人員可以通過(guò)console來(lái)觀察系統(tǒng)的行為,驗(yàn)證系統(tǒng)功能和結(jié)構(gòu)。 作為一個(gè)新建立的系統(tǒng)級(jí)IC設(shè)計(jì)標(biāo)準(zhǔn)System C表現(xiàn)出將C/C++ 與HDL的特點(diǎn)揉合在一起的趨勢(shì)。System C將能完成所有HDL語(yǔ)言定義的硬件設(shè)計(jì),以后的IC設(shè)計(jì)可以在System C的基礎(chǔ)上實(shí)現(xiàn)軟硬件設(shè)計(jì)間的無(wú)縫協(xié)調(diào)。

4 軟硬件協(xié)同設(shè)計(jì)在實(shí)際設(shè)計(jì)中應(yīng)用
4.1采用軟硬件協(xié)同設(shè)計(jì)方法實(shí)現(xiàn)語(yǔ)音識(shí)別
---采用軟硬件協(xié)同設(shè)計(jì)方法實(shí)現(xiàn)語(yǔ)音識(shí)別是軟硬件協(xié)同設(shè)計(jì)的成功例證。以下是驗(yàn)證期間軟件(SW)與硬件(HW)之間交互的一個(gè)例子。首先由本設(shè)計(jì)(HW)中的協(xié)處理器計(jì)算樣本能量并把結(jié)果通過(guò)中斷方式發(fā)送給ARM7內(nèi)核,如圖5所示。中斷喚醒終點(diǎn)檢測(cè)例程(SW),該例程執(zhí)行相關(guān)算法以判斷接收的樣本中有無(wú)單詞。當(dāng)檢測(cè)到一個(gè)單詞時(shí),軟件例程就開(kāi)始啟動(dòng)捕獲控制邏輯(HW),該邏輯電路再以固定的時(shí)序讀取樣本并把它們存入緩沖區(qū)。自相關(guān)器(HW)接著讀取緩沖的每個(gè)幀(用戶定義的語(yǔ)音段),并在另外一個(gè)緩沖區(qū)存儲(chǔ)自相關(guān)向量。在每個(gè)幀持續(xù)時(shí)間內(nèi),從自相關(guān)器內(nèi)部邏輯電路中產(chǎn)生的中斷會(huì)給內(nèi)核發(fā)信號(hào),表示新的自相關(guān)值已準(zhǔn)備好。這時(shí),中斷處理器(SW)再讀取這個(gè)緩存,并把讀到的值送給LPC函數(shù)。


4.2 采用協(xié)同驗(yàn)證技術(shù)對(duì)VxWorks操作系統(tǒng)進(jìn)行早期測(cè)試
---美國(guó)In-System Design公司的開(kāi)發(fā)人員使用協(xié)同驗(yàn)證技術(shù)對(duì)噴墨打印機(jī)控制器(一個(gè)系統(tǒng)級(jí)芯片)用的VxWorks操作系統(tǒng)進(jìn)行早期測(cè)試,測(cè)試使用Mentor Graphics的無(wú)縫協(xié)同驗(yàn)證環(huán)境(Seamless CVE)和其他工具驗(yàn)證硬件-軟件接口(圖6 VxWorks協(xié)同驗(yàn)證測(cè)試)。協(xié)同驗(yàn)證技術(shù)將一個(gè)專用處理器模型和一個(gè)運(yùn)行于邏輯模擬器中的嵌入式系統(tǒng)模型結(jié)合在一起。硬件開(kāi)發(fā)人員使用硬件描述語(yǔ)言(HDL)創(chuàng)建嵌入式系統(tǒng)模型,然后將可執(zhí)行目標(biāo)-系統(tǒng)軟件的鏡像文件加載到嵌入式系統(tǒng)模型存儲(chǔ)器中,就像在實(shí)際系統(tǒng)樣機(jī)上那樣運(yùn)行,也就是把軟件放在一個(gè)“虛擬”的在線電路模擬器上運(yùn)行,這樣就能在得到物理樣機(jī)以前對(duì)軟件進(jìn)行測(cè)試。協(xié)同驗(yàn)證中的嵌入式處理器模型有三個(gè)主要功能:首先當(dāng)然是在執(zhí)行指令時(shí)它必須能夠模擬出處理器的動(dòng)作,做到這一點(diǎn)最常用的方法是使用指令集模擬器;其次,它應(yīng)使軟件設(shè)計(jì)人員能夠觀察和改變硬件和軟件的狀態(tài),一般是通過(guò)圖形化調(diào)試器;最后,它要能夠與硬件進(jìn)行交流,總線接口模型可提供這一功能?偩接口模型將處理器總線周期活動(dòng)轉(zhuǎn)換成引腳狀態(tài)變更序列,在邏輯模擬器中模仿處理器總線的動(dòng)作,總線接口模型還要能處理硬件設(shè)計(jì)中產(chǎn)生的復(fù)位、中斷和其他異步事件。

 

5 結(jié)論
---軟硬件協(xié)同設(shè)計(jì)作為SOC的支持技術(shù),理論上、技術(shù)上還在不斷地發(fā)展和完善中,研究開(kāi)發(fā)軟硬件協(xié)同設(shè)計(jì)平臺(tái),是這一技術(shù)逐漸走向成熟的標(biāo)志。System C 就是一種基于C/C++軟硬件協(xié)同設(shè)計(jì)平臺(tái),它支持系統(tǒng)級(jí)軟硬件協(xié)同設(shè)計(jì)仿真和驗(yàn)證。在北京大學(xué)計(jì)算機(jī)系楊芙清院士和程旭教授等人經(jīng)過(guò)3年的努力,終于開(kāi)發(fā)成功國(guó)內(nèi)第一個(gè)微處理器軟硬件協(xié)同設(shè)計(jì)平臺(tái),包括自主創(chuàng)新的匯編器生成器、可重定目標(biāo)的ANSIG編譯器、微處理器性能測(cè)評(píng)環(huán)境等。研究、開(kāi)發(fā)功能強(qiáng)大、性能優(yōu)良的軟硬件設(shè)計(jì)平臺(tái),將是微電子設(shè)計(jì)師們面臨的新的挑戰(zhàn)。

參考文獻(xiàn)
1 魏少軍. SoC設(shè)計(jì)方法學(xué)
2 連冰,邸娜,李兵兵. 基于平臺(tái)的SoC技術(shù)
3 宋廷強(qiáng),劉川來(lái),李思昆. SoC設(shè)計(jì)中的IP核復(fù)用技術(shù)研究

  • 上一篇: 數(shù)字視頻刻錄應(yīng)用的理想選擇 —— 具備DV解碼功能的DVD編碼器
  • 下一篇: 消費(fèi)類和工業(yè)電子產(chǎn)品廣泛適用的高性能ARM9處理器
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1