<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于IP核技術(shù)的SoC設(shè)計

          基于IP核技術(shù)的SoC設(shè)計

          作者: 時間:2012-11-23 來源:網(wǎng)絡(luò) 收藏

          1概述

          隨著集成電路(Integrated Circuit,IC)設(shè)計技術(shù)和工藝水平進入超深亞微米,集成電路規(guī)模越來越大,芯片設(shè)計規(guī)模和設(shè)計復(fù)雜度也急劇提高,工藝流程呈現(xiàn)專業(yè)化,EDA設(shè)計逐步發(fā)展和完善。九十年代出現(xiàn)了芯片,即可以在一個芯片上集成CPU、DSP、邏輯電路、模擬電路、射頻電路、存儲器和其它電路模塊以及嵌入軟件等,并相互連接構(gòu)成完整的系統(tǒng)。

          IP有軟核(soft IP)和硬核(hard IP)兩種類型。前者以可綜合的硬件描述語言(HDL)代碼的形式交付;后者則用制定的工藝進行了功耗、面積或者性能的優(yōu)化,以GDSII格式交付。軟IP在配置后可針對多種硅工藝,易于被開發(fā)環(huán)境采納,靈活性極高,但是成本也高。況且,軟IP不具備可預(yù)測性,每次使用后需要再次校驗。硬IP則恰恰相反,不僅具有可預(yù)測性,而且每次使用后也無需校驗,可是大量預(yù)設(shè)的硬IP設(shè)計參數(shù)限制了其靈活性。因此,融合軟IP的靈活性和硬IP的預(yù)測性無疑是支持基于設(shè)計的最佳選擇。

          成功地在開發(fā)中采用真正的結(jié)構(gòu),化解產(chǎn)品生產(chǎn)周期壓力,需要做到:·

          硬化:迅速優(yōu)化配置并使軟IP硬化;·

          建模:高度精確地為硬化的軟軟IP 自動建模;

          本文引用地址:http://www.ex-cimer.com/article/189755.htm

          ·集成: 將模型綜合到現(xiàn)有的SoC 設(shè)計流程中;

          ·驗證: IP 核是否符合設(shè)計者的想法。

          2 IP 核的硬化

          使軟IP 硬化成為IP 核的過程就是在標(biāo)準(zhǔn)規(guī)定的速度、功率和范圍內(nèi)以目標(biāo)工藝實現(xiàn)IP。該實現(xiàn)必須能夠提供準(zhǔn)確的建模、自動化方法、工藝易于移植,以及具有基于業(yè)界標(biāo)準(zhǔn)的電子設(shè)計自動化( EDA) 工具。硬化過程首先需要IP 供應(yīng)商提供高質(zhì)量RTL( 寄存器傳輸級) 描述,并且提供一套完整的GDSII 設(shè)計實現(xiàn)方案。鑒于軟IP 核固有的可配置性,必須對之予以妥善管理,為被授權(quán)者提供方便的目標(biāo)應(yīng)用IP 核配置。由于IP 核的實現(xiàn)是與整個芯片相對應(yīng)的,因此必須充分考慮實現(xiàn)IP 核硬化的方式及其擺放位置。

          3 IP 核的建模

          典型的SoC 設(shè)計流程包括: 功能模型、時序模型、測試模型、物理模型和功率模型。除了功能模型,其它模型都必須在一個物理執(zhí)行的核里構(gòu)建。功能模型可由RTL 或物理執(zhí)行設(shè)計構(gòu)建。

          3. 1 功能模型

          功能模型必須在IP 核硬化前向最終用戶提供,必須代表系統(tǒng)仿真中的IP 核周期特征,并且必須能夠在門級仿真中支持精確到比特的RTL 仿真和時序注釋。此外,功能模型還應(yīng)消除仿真器特殊結(jié)構(gòu)和接口,在仿真環(huán)境中便于移植。

          由于模型構(gòu)建過程實際上是C /HDL 設(shè)計的二進制目標(biāo)模型,因此只需極少的額外工程設(shè)計。由于最終用戶設(shè)計環(huán)境的不可測性,因此所有通過使用編譯器構(gòu)建的模型必須可以在仿真器、各種語言、硬件平臺和操作系統(tǒng)上充分移植。采用PLI 和SWIFT 接口后,這些模型可在編譯器和非平臺環(huán)境下移植。當(dāng)今大多數(shù)商業(yè)仿真器都支持SWIFT 接口,并提供有效的基于PLI 的接口。

          編譯模型不僅獨立于編譯器和平臺,還應(yīng)支持SoC 設(shè)計過程中任何時段的使用。為優(yōu)化仿真性能,在不同的設(shè)計時段里構(gòu)建模型的能力就十分重要。

          該模型的功能性和時序分開,因此只要提供正確的級別時序信息,就能在各種設(shè)計的抽象級別使用。

          3. 2 時序模型

          時序模型具備所有的時序特點,在邏輯綜合、物理綜合、測試綜合、靜態(tài)時序分析、時間驅(qū)動地點和路線等設(shè)計步驟中得到采用,可能是軟IP 核硬化在SoC 設(shè)計流程中應(yīng)用最廣泛的模型。因此,時序模型的準(zhǔn)確性就變得尤為重要,必須達(dá)到以下要求:

          ( 1) 黑匣子: 不得顯示IP 核的執(zhí)行細(xì)節(jié);

          ( 2) 獨立性: 時序模型必須獨立,并支持SoC 環(huán)境條件的變化;

          ( 3) 準(zhǔn)確性: 時序模型必須在錄制磁帶前為SoC提供完整的信號模型;

          ( 4) 業(yè)界標(biāo)準(zhǔn): 鑒于時序模型在系統(tǒng)設(shè)計過程中的大量應(yīng)用,因此必須采用業(yè)界標(biāo)準(zhǔn)的EDA 工具。

          3. 3 測試模型

          IEEE 規(guī)定了一個IP 核測試語言( CTL) ,定義了嵌入式IP 核和SoC 的測試接口。該語言通過訪問以及隔離機理推動了嵌入式IP 核的再利用,為SoC 互聯(lián)和邏輯提供了可測試性。此外,該語言支持即插即用協(xié)議的IP 核測試互用性。CTL 支持多種測試方式,如Scan ( 掃描) 和BIST( 內(nèi)建目測試) 等,并且不支配IP 核自身使用的測試方法。構(gòu)建測試IP 核的程序包括: ①對IP 核進行測試包裝; ②在包裝后的內(nèi)核上執(zhí)行多模型DRC( 設(shè)計規(guī)則檢測) ; ③為包裝后的IP 核內(nèi)指明CTL 種類; ④為包裝后的IP 核構(gòu)建測試模型。

          成功包裝IP 核以后,一個CTL 包裝IP 核即構(gòu)建成功。該CTL 將IP 核包裝為完全符合業(yè)界標(biāo)準(zhǔn)( IEEE P 1500) 的基于ASCII 的模型。因此,該模型可在支持P 1500 的所有EDA 工具中移植。

          3. 4 物理模型

          物理模型是IP 核具體物理實現(xiàn)的抽象,必須包含足夠的信息滿足以下IP 核系統(tǒng)設(shè)計實現(xiàn)的需要:平面布置; 置換( 包括物理合成) ; 具體線路安排。該模型必須準(zhǔn)確表述:·元件占用面積: IP 核本身的面積,長寬比和來源;
          ·接口引腳/端口數(shù)量: 每個IP 核I /0 端口的名稱、尺寸、形狀、位置、連接層和相應(yīng)引腳的數(shù)量;·線路障礙: IP 核上線路障礙的面積、形狀和影響層面等;·電源和接地: 每個電源連接的名稱、面積、形狀、位置和接線層;

          ·SI 作用: 每個IP 核的I /O 端口提供有關(guān)高級別天線的計算。采用二極管或?qū)用孀兓瘯r,可在IP核慎重處理這些作用;

          ·信令/標(biāo)志: 獨特的識別信號不僅提供IP 核,還可修訂和配置IP 核。

          3. 5 功率模型

          功率模型描述了IP 核功耗,必須忠實反映:

          ·靜態(tài)和動態(tài)功耗;

          ·I /O 端口和內(nèi)部節(jié)點的開關(guān)狀態(tài);

          ·I /O 端口和內(nèi)部節(jié)點的狀態(tài);

          ·運行方式( 如測試方式) ;

          ·運行、電壓和溫度等條件以及電容負(fù)載和輸入瞬變時間。

          4 IP 核的集成

          選擇IP 核時首要考慮的因素是IP 與目標(biāo)系統(tǒng)的配合程度。對于已有的IP 核,優(yōu)先選擇芯片面積最小、運行速度最快、功率消耗最低、工藝容差最大的IP 核。一般說來,在進行集成之前,最好選擇那些無需修改的IP 模塊。但大多數(shù)情況是設(shè)計人員在獲得IP 模塊后必須進行修改,修改的范圍包括各個設(shè)計層次上的IP 模型。為了使開發(fā)的IP 核能夠高效地集成到新的設(shè)計中去,設(shè)計復(fù)用( Design Reuse)和標(biāo)準(zhǔn)化是必由之路。在IP 集成之前,必須先解決下面幾個重要問題:

          第一,在系統(tǒng)結(jié)構(gòu)設(shè)計和模塊劃分時,必須考慮好系統(tǒng)芯片采用什么樣的片上總線結(jié)構(gòu),確定哪些模塊來自于IP 庫,哪些模塊需要購買IP, IP 模塊的對接需要增加哪些連接性設(shè)計。

          第二,模塊間的接口協(xié)議要盡可能簡單,模塊間的接口定義盡可能與國際上通用的接口協(xié)議一致。這雖然會造成芯片在時序、面積、功耗等方面的損耗,但對于加快系統(tǒng)芯片的上市速度很有利。

          第三,要注意積累集成的經(jīng)驗。一旦成功地集成了一個IP 到一個系統(tǒng)設(shè)計,就應(yīng)該進一步完善該IP; 同時,把集成該IP 的經(jīng)驗教訓(xùn)及時記錄下來形成技術(shù)文檔,這將對下一個IP 集成十分有利。

          第四,必須在時鐘分布,關(guān)鍵路徑的走線,電源、地線的走線,模塊支持的測試結(jié)構(gòu)等方面考慮與系統(tǒng)芯片保持一致。

          5 IP 核的驗證

          IP 核驗證技術(shù)和方法可按照表1 所示的體系進行分類,其中將驗證分為四大塊。

          表1 功能驗證分類


          5. 1 目的性驗證

          目的是驗證設(shè)計者所預(yù)想的功能是否在設(shè)計中得到正確實現(xiàn)。通常,目的性驗證在最高抽象層次上完成。其最終結(jié)果是建立一個所謂的“黃金模型”,該模型可以作為整個設(shè)計過程中各種更加詳細(xì)的設(shè)計視圖的參考基準(zhǔn)。

          5. 2 等效性驗證

          目的是驗證在設(shè)計過程中生成的不同層次的設(shè)計功能是否與“黃金模型”功能相一致。

          5. 3 IP 驗證

          指對單個lP 的功能進行驗證的過程,即單元測試。

          5. 4 集成驗證( SoC 驗證)

          指對包含一個或多個IP 的SoC 進行功能驗證的過程,即SoC 的系統(tǒng)級驗證。以上每項驗證任務(wù)所使用的技術(shù)和工具之間存在很大的重疊。雖然IP 的驗證和SoC 的驗證過程相同或者相似,但是驗證測試組件的模型和源代碼集則可能不同。對IP驗證,關(guān)鍵是驗證IP 內(nèi)部邏輯的詳盡功能以確保IP的正確實現(xiàn)。而SoC 驗證則是把重點放在I P 的連接和相互作用上,驗證所用模型應(yīng)能精確地仿效IP接口,而對IP 的內(nèi)部功能只需能夠近似地塑造即可。

          6 結(jié)束語

          SoC 設(shè)計方法已經(jīng)成為了IC 設(shè)計的主流。SoC可以充分利用已有的設(shè)計積累,顯著地提高ASIC的設(shè)計能力,縮短設(shè)計周期,縮小設(shè)計能力與IC 工藝能力的差距,而SoC 設(shè)計技術(shù)的關(guān)鍵是IP 及其復(fù)用技術(shù),如何利用經(jīng)過驗證的IP,成功地把IP 集成到SoC 系統(tǒng)中,是限制設(shè)計能力的瓶頸問題。



          關(guān)鍵詞: SoC IP核

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();