新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > SoC設計方法學(二)

        SoC設計方法學(二)

        作者: 時間:2006-05-07 來源:網絡 收藏

        SoC設計方法學

        本文引用地址:http://www.104case.com/article/226426.htm

        SoC設計方法學的內容可以簡單的歸納為如下三點:軟硬件協同設計技術,IP核生成及復用技術和超深亞微米IC設計技術(有時又稱納米級電路設計技術)。它們又分別包含一系列的子課題(圖5)。

        在這些子課題中有些是我們已經十分熟悉的,但是這并不意味著它們是已經解決的問題。恰恰相反,這些課題在融入SoC設計方法學的框架之后,已經在內涵上產生了很大的變化。

        軟硬件協同設計技術

        首先探討一下軟硬件協同設計。軟硬件協同設計課題的提出已有多年的歷史,但是早期的研究多集中在針對一個特定的硬件如何進行軟件開發或根據一個已有的軟件實現具體的硬件結構。前者是一個經典的軟件開發問題,軟件性能的好壞不僅僅取決于軟件開發人員的技術水平,更有賴于所使用的硬件平臺,后者是一個軟件固化的問題,實現的途徑可以是采用一個與原有軟件平臺相同的軟件處理器,并將軟件代碼存儲于存儲器當中,也可以是在充分理解軟件的內在功能之后完全用硬件來實現軟件的功能。采用存儲器固化軟件代碼的作法一般來說可以比較快地實現芯片設計,且芯片具有一定的二次開發可能,但是由于考慮到實現所需的硬件平臺的一致性,芯片的性能將受到較大的限制,大多應用在性能比較低的場合。除此之外,有時候要找到一個可用的、與軟件開發時所使用的硬件平臺兼容的處理器也是一件十分困難的事情。將軟件功能全部由硬件來實現的作法具有較大的風險,一般需要比較長的時間和比較大的人力、物力和財力的投入,特別是進入市場的時間較為苛刻的時,這種做法有其局限性。但是一旦成功,則芯片具有較高的性能。從上述介紹不難發現,早期的軟硬件協同設計方法研究還是一種面向目標的(Object Oriented)軟硬件設計方法,研究的內容和結果與所要實現的目標和已具備的條件密切相關,形不成具有普遍適用性的理論體系。

        面向SoC的軟硬件協同設計理論應該是從一個給定的系統任務描述著手,通過有效地分析系統任務和所需的資源,采用一系列變換方法并遵循特定的準則自動生成符合系統功能要求的,符合實現代價約束的硬件和軟件架構。這種全新的軟硬件協同設計思想需要解決許多以前沒有碰到的問題。首先是系統的描述方法。目前廣泛采用的硬件描述語言(HDL)是否仍然有效?如何來定義一個系統級的軟件功能描述或硬件功能描述?等等。至今天為止,尚沒有一個大家公認的且可以使用的系統功能描述語言可供設計者使用。

        其次是這一全新的設計方理論與已有的IC設計理論之間的接口。可以預見,這種全新的設計理論應該是現有IC設計理論的完善,是建筑在現有理論之上的一個更高層次的設計理論,它與現有理論一起組成了更為完善的理論體系。在這種假設下,這種設計理論的輸出就應該是現有理論的輸入。

        第三,這種全新的軟硬件協同設計理論將如何確定最優性原則。顯然沿用以往的最優性準則是不夠的。除了芯片設計師們已經熟知的速度、面積等硬件優化指標外,與軟件相關的如代碼長度、資源利用率、穩定性等指標也必須由設計者認真地加以考慮。

        第四,如何對這樣的一個包含軟件和硬件的系統的功能進行驗證。除了驗證所必須的環境之外,確認設計錯誤發生的地方和機理將是一個不得不面對的課題。

        最后,功耗問題。傳統的IC在功耗的分析和估計方面已有一整套理論和方法。但是,要用這些現成的理論來分析和估計含有軟件和硬件兩部分的SoC將是遠遠不夠的。簡單地對一個硬件設計進行功耗分析是可以的,但是由于軟件運行引起的動態功耗則只能通過軟硬件的聯合運行才能知道。其實,還可以舉出很多新理論要涉及的問題,它們一起構成了面向SoC的軟硬件協同設計的內容。

        IP核生成及復用技術

        其次來看一下設計重用技術。正如前面所討論的,今天在單個芯片上已可以集成上千萬乃至上億只晶體管。芯片變得如此復雜,它實現了以前需要許多塊印制電容板(PCB)甚至機架才能完成的功能。在這樣高的集成度下,設計的難度已變得非常高,設計代價事實上主導了芯片的代價。這不僅要求設計者必須具備系統和芯片兩方面的知識,同時也必須充分考慮市場競爭的壓力,最大限度地縮短設計周期。凡事從零做起的思路顯然不能適應這種新情況,而采用前人成功的設計經驗和設計資料是解決這個問題的明智選擇。

        所謂設計重用實際上包含兩個方面的內容,涉及設計資料重用技術和如何生成可被他人重用的設計資料。前者通常被稱為IP重用(IP Reuse),因為可以補反復使用的設計資料通常具備比較復雜的功能,且經過驗證。設計資料內不僅僅包含一些物理功能和技術特性,更重要的是包含了設計者的創造性思維,具有很強的知識內涵。這些資料因而也被稱為具有知識產權的內核(IP Core),簡稱IP核。后者則涉及到如何去生成IP核。

        (1)IP核的生成

        先討論一下IP核的生成。所謂IP核實際上就是一個經過驗證的IC設計,從其實現的形式和應用層次上來看,IP核可以有三種不同的表現形式:軟核(Soft-Core)、固核(Firm-Core)和硬核(Hard-Core)。

        軟核以HDL的方式提交,其性能通過時序模擬進行驗證。由于軟核不依賴于任何實現工藝或實現技術,具有很大的靈活性。使用者可以方便地將其映射到自己所使用的工藝上去,可復用性很高。軟核的另外一個重要的優點是使用者擁有全部源代碼。使用者可以通過修改源代碼,方便地生成同樣功能且自有版權的新軟核,從而避免向原有軟核作者支付版稅。同時聰明的軟核使用者還可以通過增加自己的知識和經驗,產生出遠比原始軟核廣泛得多的新的軟核。正是由于軟核的上述優點,它的價格不菲,且提供者寥寥無幾。

        但是軟核也有自身的弱點。由于軟核的載體是硬件描述語言且與實現的工藝無關,使用者在最終將其嵌入自己的設計時就要對從描述到版圖的轉換的全過程負責。雖然這要涉及經曲IC設計的全部內容,IC設計人員必須具備相當的風險意識。另外,工藝映射和系統的性能有著一定的內在關系,是否可以不加修改地將一個軟核映射到任何一個工藝上仍然是需要探討的一個問題。

        硬核以IC版圖的形式提交,并經過實際工藝流片驗證。顯然,硬核強列地依賴于某一個特定的實現工藝,而且在具體的物理尺寸,物理形態及性能上具不可更改性。

        這些特點對使用者來說有喜有憂。喜的是硬核已經過驗證并具有最優的面積代價和性能的設計,使用者不需考慮與上相關的優化問題。憂的是硬核與工藝的強相關性迫使使用也只能使用核工藝完成電路其它部分的設計,而且要在布局布線遵守注意固核的物理限制。顯然,固核的特點決定了使用者進行電路設計時的靈活性很小,希望通過獲得固核以生成其它固核的可能基本上沒有。即使有,受到加工工藝、經費和知識產權等方面的限制,也會失去意義。從另外一個角度看,正是因為固核的這些缺點,的使用價格在軟核、固核和硬核三種IP核中,是最低的。

        處于軟核和硬核之間的固核以電路網表的形式提交并通常采用硬件進行驗證。硬件驗證的方式有很多種,比如可以采用可編程器件(如FPGA,EPLD)進行驗證,采用硬件仿真器進行驗證等。

        固核往往對應于某一個特定的實現工藝,在該實現工藝的條件下固核具有最優的面積和性能特性。對于使用者來說不需要對固核的功能給于過多地關注,可以減少許多相關的設計工作,同時由于固核的時序特性是經過嚴格檢驗的,設計者只要保證在布局布線過程中電路關鍵路徑的分布參數不會引起時序混亂就可以保證芯片的設計成功。

        但是固核也有其自身的缺點,那就是它與實現工藝的相關性及網表的難讀性。與實現工藝的相關性限制了固核的使用范圍,網表的難讀性則使得布局布線后發生的時序違反的排除變得比較困難。由于固核在使用的方便程序上和開放程序上均介于軟核和硬核之間,其價格也處于它們的價格之間。

        (2)IP核與常規IC不同的地方

        IP核的生成具有與常規的IC設計不同的特點。例如時序,測試和低功耗等雖然是IC設計中的經典問題,但是直接將已有的設計方法應用到IP核的設計中就會出現許多意想不到的困難。看一個簡單的例子(圖6)。

        圖6的右上角給出了一個簡單的邏輯表達式,下方給出了該表達式的邏輯實現,這個邏輯實現對應的時序圖也在圖中給出。顯然,時序圖的最下邊的一個波形是邏輯表達式所定義的,但是由于在異或門的輸入端引入了一個非門,其時延將會影響到電路的輸出,實際的波形將會類似于倒數第二個波形,包含有若干個毛剌。盡管有這些毛剌,但是就一個特定的應用來說,只要確定好輸出端的采樣時間,仍然可以保證輸出信號的正確性。但是要將這樣一個帶有時序毛刺的電路當作IP核提供給他人使用則是絕對錯誤的。由于不知道具體應用環境對信號采樣的位置,很可能采到的信號恰恰是毛刺所在地,從而導致輸出錯誤。為了獲得沒有毛不剌的、時序干凈的設計,可以對邏輯表達式進行一系列變換(圖7)最終獲得圖7給出的邏輯實現方式。

        這個例子說明了設計人員今天熟悉的電路設計理論和方法必須要有所發展以適應面向SoC的IP核生成,簡單地照搬是不行的。

        (3)IP核面臨的新問題

        IP核的使用也面臨許多新問題。由于IP核的特殊性和IC開發的高風險性,IP核的使用決不是這些IP核的簡單堆砌,使用過程中不僅僅要考慮它們的功能,更要使它們溶入芯片。以為有了IP核就可以進行SoC設計的想法不免過于天真。可以看一下圖8中給出的一個有關可測性設計的例子。

        根據可測性設計理論,一個時序電路的可測性與其時序路徑上的長度有關,而測試復雜度與環路長度成正比。環路長度越長測試復雜度越高,且這種關系成指數形式變化。一個IP核經過精心設計可以具有很好的可測性,但是在具體被嵌入使用時,外部配套電路設計不當會引入環路,使電路的可測向下降。從圖8可知,即使所使用的IP核內部沒有任何環路、具有很高的可測性,但是在引入了外圍電路之后,也會產生不止一條穿過IP核的環路。這個例子說明IP核的使用需要綜合考慮諸多因素,而不是幾個IP核的簡單堆砌。

        另外一個例子涉及低功耗,即使所使用的所有IP核均是精心設計并具有低功耗的特點,也會由于IP核的提供者不同,在接口的時序上存在一些差異。為了同步這些時序上的差異,就需要IP核之外的電路工作在一個較高的頻率上。顯然,芯片的開關功耗會因此大大提高,眾而部分抵肖IP核低功耗帶來的好處。

        (4)超深亞微米IC設計技術

        最后來探討一下超深亞微米IC設計技術。超深亞微米IC設計技術是深亞微米IC設計技術的延伸。除了傳統的連線延遲問題之外,IC設計人員還要考慮信號完整性等其它的問題。人們在跨入超深亞微米時代的時候,實際上尚未徹底解決深亞微米階段的關鍵課題。連線延遲大于單元延遲引起的一系列問題仍然困擾著設計人員。所以要探討超深亞微米IC的設計,就有必要對這個經典的問題作一個仔細的分析。

        設計迭代

        以布爾代數為基本理論基礎的現代數字IC設計技術面向的是系統的功能設計(Logic Oriented)布爾代數定義的各種基本邏輯運算所描述的是一個系統的輸出對輸入的邏輯關系。這種邏輯關系以一組包含“0”和“1”兩個基本邏輯值的邏輯向量來表示。現代IC設計的核心問題就是解決如何準確地實現這種用二值邏輯確定的系統功能,或者說找到一組正確描述系統功能的邏輯表達式。顯然,在具體實現中采取哪種實現方法在邏輯表達式中沒有表示。理論工作的貢獻在布爾代數上得到了巨大的體現。如果沒有布爾代數,今天我們賴以生布的IC工業也就失去了這的理論基礎。

        信號完整性問題

        在超深亞微米IC設計技術的研究中,除了要克服由于連線延遲引起的設計迭代之外,設計人員還要克服由于特征尺寸縮小后,信號延遲變小,工作頻率提高帶來的所謂信號完整性的問題。圖9給出了特征尺寸與芯片內部最高工作頻率的關系。

        在芯片內部工作頻率提高的同時,由于集成度的大幅度上升,單個芯片中的連線長度也隨之大幅度升高。單個芯片中的連線總長將達到十幾~幾十公里,其中不乏有些連線的長度達到十幾米~幾十米。根據物理學的基本定律,頻率與波長成反比。當芯片的內部工作時鐘達到幾千兆赫的時候,相應的波長只有若干米。再考慮到電磁場的有關理論,可以知道當連線長度達到波長的幾倍時,連線將成為向外界發射電磁波的天線,同樣這些連線也會成為接收電磁波的天線。考慮到IC芯片內部連線密布,在很高的工作頻率下,信號的干擾將成為一個不容忽視的問題,信號的完整性將成為設計得面對的另外一個嚴重的挑戰。所以傳統的基于布爾代數的數字IC設計理論必須要從簡單的面向邏輯,轉向吸引其它相關領域的理論,形成新的理論體系。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阿尔山市| 昌乐县| 乌拉特后旗| 吉水县| 嫩江县| 兰坪| 迭部县| 登封市| 千阳县| 离岛区| 安顺市| 界首市| 凤冈县| 宜章县| 陕西省| 西藏| 印江| 开阳县| 阳信县| 寿光市| 卫辉市| 洞头县| 阳曲县| 门源| 安徽省| 敦煌市| 九龙县| 开化县| 镇原县| 伊春市| 游戏| 西吉县| 辽阳市| 长寿区| 延长县| 金塔县| 和田市| 五家渠市| 茌平县| 永新县| 枣强县|