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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > FPGA開發(fā)之IP核:軟核、硬核以及固核概念

          FPGA開發(fā)之IP核:軟核、硬核以及固核概念

          作者: 時間:2018-08-08 來源:網(wǎng)絡 收藏

          IP(Intelligent Property)核是具有知識產(chǎn)權核的集成電路芯核總稱,是經(jīng)過反復驗證過的、具有特定功能的宏模塊,與芯片制造工藝無關,可以移植到不同的半導體工藝中。到了SOC階段,設計已成為ASIC電路設計公司和提供商的重要任務,也是其實力體現(xiàn)。對于開發(fā)軟件,其提供的越豐富,用戶的設計就越方便,其市場占用率就越高。

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

          IP(Intellectual Property)就是常說的知識產(chǎn)權。美國Dataquest咨詢公司將半導體產(chǎn)業(yè)的IP定義為用于ASIC、ASSP和PLD等當中,并且是預先設計好的電路模塊。模塊有行為(Behavior)、結構(Structure)和物理(Physical)三級不同程度的設計,對應描述功能行為的不同分為三類,即軟核(Soft IP Core)、完成結構描述的固核(Firm IP Core)和基于物理描述并經(jīng)過工藝驗證的硬核(Hard IP Core)。

          從IP 核的提供方式上,通常將其分為軟核、硬核和固核這3 類。從完成IP 核所花費的成本來講,硬核代價最大;從使用靈活性來講,軟核的可復用使用性最高。

          軟核 (Soft IP Core)

          軟核在 EDA 設計領域指的是綜合之前的寄存器傳輸級 (RTL) 模型 ;具體在 設計中指的是對電路的硬件語言描述,包括邏輯描述、網(wǎng)表和幫助文檔等。軟核只經(jīng)過功能仿真,需要經(jīng)過綜合以及布局布線才能使用。其優(yōu)點是靈活性高、可移植性強,允許用戶自配置 ;缺點是對模塊的預測性較低,在后續(xù)設計中存在發(fā)生錯誤的可能性,有一定的設計風險。軟核是 IP 核應用最廣泛的形式。

          固核 (Firm IP Core)

          固核在 EDA 設計領域指的是帶有平面規(guī)劃信息的網(wǎng)表;具體在 FPGA 設計中可以看做帶有布局規(guī)劃的軟核,通常以 RTL 代碼和對應具體工藝網(wǎng)表的混合形式提供。將 RTL 描述結合具體標準單元庫進行綜合優(yōu)化設計,形成門級網(wǎng)表,再通過布局布線工具即可使用。和軟核相比,固核的設計靈活性稍差,但在可靠性上有較大提高。

          硬核 (Hard IP Core)

          硬核在EDA設計領域指經(jīng)過驗證的設計版圖 ;具體在 FPGA 設計中指布局和工藝固定、經(jīng)過前端和后端驗證的設計,設計人員不能對其修改。不能修改的原因有兩個 :首先是系統(tǒng)設計對各個模塊的時序要求很嚴格,不允許打亂已有的物理版圖 ;其次是保護知識產(chǎn)權的要求,不允許設計人員對其有任何改動。IP 硬核的不許修改特點使其復用有一定的困難,因此只能用于某些特定應用,使用范圍較窄。



          關鍵詞: FPGA IP核 固核概念

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();