IP核

IP核

積體電路的可重用設計方法學中,IP核,全稱智慧產權核(英語:intellectual property core),是指某一方提供的、形式為邏輯單元、晶片設計的可重用模組。IP核通常已經通過了設計驗證,設計人員以IP核為基礎進行設計,可以縮短設計所需的周期。[1]IP核可以通過協定由一方提供給另一方,或由一方獨自佔有。IP核的概念源于產品設計的專利證書和原始碼的著作權等。設計人員能夠以IP核為基礎進行專用積體電路或現場可程式邏輯門陣列的邏輯設計,以減少設計周期。

IP核分為軟核、硬核和固核。軟核通常是與工藝無關、具有暫存器傳輸級硬體描述語言描述的設計代碼,可以進行後續設計;硬核是前者通過邏輯綜合、布局、布線之後的一些列工藝檔案,具有特定的工藝形式、物理實現方式;固核則通常介于上面兩者之間,它已經通過功能驗證、時序分析等過程,設計人員可以以邏輯門網表的形式獲取。

  • 中文名稱
    IP核
  • 外文名稱
    Intellectual Property core
  • 含義
    特定電路功能的硬體描述語言程式
  • 基本分類
    軟核、固核和硬核
  • 功能塊
    FIR濾波器、SDRAM控製器等
  • 技術套用
    數位到模擬轉換器等

概述

IP(智慧產權)核將一些在數位電路中常用,但比較復雜的功能塊,如FIR濾波器、SDRAM控製器、PCI接口等設計成可修改參數的模組。隨著CPLD/FPGA的規模越來越大,設計越來越復雜(IC的復雜度以每年55%的速率遞增,而設計能力每年僅提高21%),設計者的主要任務是在規定的時間周期內完成復雜的設計。調用IP核能避免重復勞動,大大減輕工程師的負擔,因此使用IP核是一個發展趨勢,IP核的重用大大縮短了產品上市時間。

利用IP核設計電子系統,引用方便,修改基本元件的功能容易。具有復雜功能和商業價值的IP核一般具有智慧產權,盡管IP核的市場活動還不規範,但是仍有許多積體電路設計公司從事IP核的設計、開發和行銷工作。

​基本分類

IP核心的三種類型

IP核有三種不同的存在形式:HDL語言形式,網表形式、版圖形式。分別對應我們常說的三類IP核心:軟核固核硬核。這種分類主要依據產品交付的方式,而這三種IP核心實現方法也各具特色。

軟核

軟核是用VHDL等硬體描述語言描述的功能塊,但是並不涉及用什麽具體電路元件實現這些功能。軟IP通常是以硬體描述語言HDL源檔案的形式出現,套用開發過程與普通的HDL設計也十分相似,隻是所需的開發硬軟體環境比較昂貴。軟IP的設計周期短,設計投入少。由于不涉及物理實現,為後續設計留有很大的發揮空間,增大了IP的彈性和適應性。其主要缺點是在一定程度上使後續工序無法適應整體設計,從而需要一定程度的軟IP修正,在性能上也不可能獲得全面的最佳化。由于軟核是以原始碼的形式提供,盡管原始碼可以採用加密方法,但其智慧產權保護問題不容忽視。

硬核

硬核提供設計階段最終階段產品:掩模。以經過完全的布局布線的網表形式提供,這種硬核既具有可預見性,同時還可以針對特定工藝或購買商進行功耗和尺寸上的最佳化。盡管硬核由于缺乏彈性而可移植性差,但由于無須提供暫存器轉移級(RTL)檔案,因而更易于實現IP保護。

固核

固核則是軟核和硬核的折中。大多數套用于FPGA的IP核心均為軟核,軟核有助于使用者調節參數並增強可復用性。軟核通常以加密形式提供,這樣實際的 RTL對使用者是不可見的,但布局和布線靈活。在這些加密的軟核中,如果對核心進行了參數化,那麽使用者就可通過頭檔案或圖形使用者接口(GUI)方便地對參數進行操作。對于那些對時序要求嚴格的核心(如PCI接口核心),可預布線特定信號或分配特定的布線資源,以滿足時序要求。這些核心可歸類為固核,由于核心是預先設計的代碼模組,因此這有可能影響包含該核心的整體設計。由于核心的建立(setup)、保持時間和握手信號都可能是固定的,因此其它電路的設計時都必須考慮與該核心進行正確地接口。如果核心具有固定布局或部分固定的布局,那麽這還將影響其它電路的布局。

技術套用

數位到模擬轉換器(DACs)將一個二進位數轉換為與之對應的電壓值,常用的D/A轉換器都是由電阻或電容加權網路、受碼元控製的開關和基準電壓或電流源組成。當D/A轉換器需要轉換的信號每次取樣字長很長時,對這些電路的精度要求很高,並且還必須在整個溫度範圍和整個使用壽命期間內保持電路參數的穩定。例如,一個16位的D/A轉換器,其MSB的精度必須在1/2 16以內,這是很困難的。所以,需尋求一種中保持高解析度又可降低對電路精度和穩定度要求的方法。

可綜合的Delta-Sigma DAC(術語Delta-Sigma分別指算術差與和,即Δ-∑DAC),是Xilinx公司提供的免費IP核,可從網上下載得到。

數位技術

Delta-Sigma DAC使用數位技術,因而它不受溫度的影響,並且能在一片可程式邏輯器件中實現。避免在D/A轉換器中使用匹配電阻,不僅能更便宜,而且,其轉換是線性的。Delta-Sigma DAC實際上是高速單個位的DAC,用數位反饋技術,在輸出端產生一串脈沖。脈沖串中信號為高電平的時間部分與二進位輸入成比例,當這個脈沖串通過一個模擬低通濾波器後就得到一個模擬輸出信號。

圖1

是一個典型的可程式邏輯器件實現的DAC的頂層電路圖,輸入信號有復位信號、時鍾信號以及二進位資料匯流排。輸出DACoutDrvr驅動一個外部的低通濾波器Vout能從0V~Vcco。這裏Vcco是FPGA I/O塊的供電電壓。輸入/輸出詳細說明如表1所列。

表1 輸入輸出描述表

信號 方向 描 述

DACOUT 輸出 驅動外部低通濾波器的脈沖串(通過一個輸出驅動器)

DACIN 輸入 數位輸入匯流排,值必須設定成鍾的正沿

clk 輸入 正沿有效

Reset 輸入 復位信號初始化SigmaLatch和輸出D觸發器

DAC的二進位輸入是一個無符號數。"0"代表最低電壓,輸出的模擬電壓也隻有正的。"0"輸入產生0V輸出,輸入端全"1",則輸出近似達到Vcco。

圖2

是Delta-Sigma DAC的原理框圖,二進位輸入的位寬是可變的。為簡單起見,電路原理圖描述了一個8位二進位輸入的DAC。

在這個器件中,二進位加法器用來產生和,也用來產生差。盡管Delta Adder的輸入是無符號數,兩個加法器的輸出卻都是有符號數。Delta Adder計算DAC輸入和當前DAC輸出的差,並用一個二進位數表示。因為DAC的輸出是一個單個的位,因此它不是1就是0。如圖2所示,當輸入加上由Sigma Latch的輸出的兩個拷貝與0構成的10位數,就產生差值,這也補償了DACIN是無符號數的事實。Sigma Adder將它原來的輸出(儲存在Sigma Latch中)與當前的Delta Adder的輸出相加。

圖1中輸出電壓與輸入電壓的關系為

VOUT=(DACIN/(2MSBI+1))×VCCO

式中單位為V。

例如,對于一個8位DAC(MSBI=7),最後的輸出是這樣:DACIN輸入是0,則輸出也是0;DACIN輸入是十六進位數FF時,輸出值為最大(255/256)×Vcco。

阻容低通濾波器適合多數套用需要,一個簡單的阻容低通濾波器就能工作得很好。

Vs的定義是:DAC輸入增加或減少時,在Vout端產生變化的絕對值。對一個8位DAC,Vs等于(1/256)×Vcco。

Vout能夠產生在0V~Vcco之間可變的電壓,具體的值由DACIN的位寬和輸入的數值決定。

Delta-Sigma DAC適合需要相對高精度的低頻套用。在這種套用中,電壓不會很快地變化,因此,RC的時間常數可以很大,以減小噪聲。

這種DAC最廣泛的套用就是產生通常直流電壓。這包括電壓控製振蕩器、電壓控製運算放大器、I/O參數電壓、可程式電壓源、波形發生器(正弦、三角等)、A/D轉換中的參考電壓等。

Delta-Sigma DAC是一個例子,說明高速可程式邏輯器件能用于混合信號系統,以減少元件的數量。可程式邏輯器件的速度和密度使它們成為模擬信號產生和處理方面理想的元件。

語言程式

用VHDL語言編寫的程式

library ieee;

use ieeestd_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity dac_ds is

port(reset :in std_logic;

clk :in std_logic;

din :in std_logic_vector(7 downto 0);--Signed integer

dout :out std_logic;

);

end dac_ds;

architecture arch_dac_ds of dac_ds is

signal error :std_logic_vector(9 downto 0);--Error accumulator is 2 bits larger

constant zeros:std_logic_vector(7 downto 0):=(others=>'0');

begin

process(reset,clk,din)

variable val :std_logic_vector(9 downto 0);

begin

if reset='1'then

error<=(others=>'0');

dout<='0';

elsif clk'event and clk='1' then

--val:=din+error;din is sign extended to nbits+2

val:=(din(din'high)&din(din'high)&din)+error;

if val(val'high)='0'then

dout<='1';

error<=val+("11"& zeros);

else

dout<='0';

error<=val+("01"&zeros);

end if;

end if;

end process;

end arch_dac_ds;

選擇和配置

選擇MAX7000S系列可程式邏輯器件,編譯後由MAX+PLUS II軟體自動配置進EMP7032SLC44晶片,將生成的目標檔案通過編程電纜對器件進行編程。

將該IP核實現的D/A轉換器用于新型智慧型電阻爐溫度控製儀中,因為調節爐溫的信號不要求變化很快,因此DAC的輸入二進位信號為緩變信號。對于這種低頻套用,可以將RC時間常數取得較大,以減小噪聲。這樣,可綜合的VHDL語言Delta-Sigma DAC模組配置進EMP7032晶片後,達到了預期的效果。

註意事項

智慧產權(IP)的再使用是設計組贏得迅速上市時間的主要策略,因為留給設計者完成諸如蜂窩電話和Internet路由器等熱門IC設計的周期隻有3個月。設計者還需面對這樣一個嚴酷的現實,即IC的復雜度以每年55%的速率遞增,而設計能力每年僅提高21%。

為系統設計者專門製作的再使用IP彌補了這方面的不足。再使用既為IP建立者,也為系統設計者提供一種共享最佳IP核和主導模組的方法。系統設計者的主要任務是在規定的周期時間內研發出復雜的設計。這隻有採用新設計方法和完全不同的晶片設計理念才能完成。IP再使用已經成為系統設計方法的關鍵所在。

標準選擇

標準是再使用的基礎。在設計一個系統時,可供工程人員考慮的工業標準很多,比如半導體再使用標準(SRS),它是對各種工業再使用創議標準的補充,提出這些創議標準的組織包括"虛插座接口聯盟VSIA"等。再使用標準為IP設計流程中的各階段提供規則、指南和接口方法。它是高效設計方法的一個裏程碑,讓可再用IP快捷地、即插即用地集成到系統解決方案成為可能。

再使用標準通常涉及到許多方面,如系統級設計、結構、實現、驗證以及檔案編製和可交付清單等與IP有關的事項。例如,結構分類目錄解決片上或片外的接口。實現分類目錄通過HDL代碼標準、物理表示、單元庫以及模擬子單元集中解決如何建立IP的問題。功能驗證及可測試設計(DFT)標準則包含在驗證分類目錄中。

選擇

根據IP使用的劃分,IP建立者可按下列三種形式設計IP:可再用、可重定目標以及可配置。可再用IP是著眼于按各種再使用標準定義的格式和快速集成的要求而建立的,便于移植,更重要的是有效集成。可重定目標IP是在充分高的抽象級上設計的,因而可以方便地在各種工藝與結構之間轉移。可配置IP是參數化後的可重定目標IP,其優點是可以對功能加以裁剪以符合特定的套用。這些參數包括匯流排寬度、存儲器容量、使能或禁止功能塊。硬IP與軟IP的意圖不同,因而對IP的開發和在這之後的IP的集成採用不同的方法。

硬IP

硬IP對功率、體積和性能進行了最佳化,並對應至特定的工藝。具體實例包括已完成布局布線的網表,以特定工藝庫或全定製物理布圖,或兩者之組合。硬IP是特定工藝來實現的,通常用GDSII格式表示。硬IP可以再使用,且由于它已處于設計表示的最底層,因而最容易集成。硬IP已完全用目標工藝實現是按十分接近于標準單元庫元件的形式交付的,故而允許設計者將IP快速地集成在衍生產品中。硬IP最大的優點是確保性能,如速度、功耗等。然而難以轉移到新工藝或集成到新結構中,是不可重配置的。

軟IP

軟IP是以綜合形式交付的,因而必須在目標工藝中實現,並由系統設計者驗證。其優點是原始碼的彈性,它可重定目標于多種製作工藝,在新功能級中重新配置。

由于設計以高層次表示,因而軟IP是可再用的,易于重定目標和重配置,然而預測軟IP的時序、面積與功率諸方面的性能較困難。為了實現最高效率的再使用並減少集成時間,IP應從軟體原始碼開始;而為了確保性能,復雜IP應以硬IP的形式共享。

軟插接

軟插接是開發符合再使用標準IP的過程,它應成為建立新IP設計流程的組成部分。過程需要有關IP深層的知識,因此隻有IP建立者最熟知IP塊,有能力建立這些些概念,在時序分析時去除假通路,並最終確定結果的正確性。與DFT一樣,軟插接會修改現有的設計流程來適應再使用設計和生成附加可交付項,因此在設計流程中應及早考慮再使用事項。

提供獲取

IP資源庫為IP建立者和系統設計者提供共享和使用IP的基礎設施。這個系統應讓IP建立者和系統設計者共享硬和軟兩方面的可再用IP。資源庫提供多場所的全方位訪問,系統集成的全方位開發。它也是設計師搜尋、選擇、將再使用塊集成到自己系統中的快捷而又簡便的途徑。

資源庫基礎設施還應開闢一個區域,讓系統開發者提供反饋、出錯報告、錯誤改正及資源庫中任何有關IP塊的註解。反饋信息塊建立者對錯誤的修復與改進說明一起是塊資料庫列表的一部分。

技術識別

識別

識別能確定IP塊是否符合相關的再使用標準。它提供一把表征塊再使用質量的尺度,應在IP進入資源庫前完成。由于IP建立者熟知IP,他應測試塊概念間的一致性以及與工具、庫以及硬體平台的兼容性。一個獨立的識別小組通過對可交付性、再使用性以及出錯歷史記錄的隨機抽樣,預測IP核的質量和可靠性,定出IP的分類等級。這個等級讓設計者有一個整體概念,如IP符合標準的準確性有多好,再使用需多大的軟插接工作量。

集成最佳化

對IP核的再使用,建立者需軟插接IP、進行識別、將它存放在系統設計者能訪問的資源庫中。自動化工具提供多種手段,加速軟插接和資源庫的操作,識別和集成過程的部分自動化。工具製造商力爭實現更多的自動化。在理想情況下,全部IP塊可從資源庫中按需供給。

周期加速

設計者幾乎沒有能力在三個月設計周期內開發出合乎規格的新產品。如果對每個產品族建立一個設計平台,設計組就能充分發揮平台的作用,開發出產品的衍生品種。一種有效的再使用方法應讓可再使用IP的開發作為平台的一部分,並將IP塊快速地集成到衍生品種。

基礎設施

一旦IP開始普遍使用,提供該IP的支持是必要的。建立者繼續擁有IP,因為支持它需要深層的知識。建立者負責IP的更新,將最新版本放置在資源庫中。IP由為系統設計者服務的識別組重新識別。此外,建立者還應在系統設計者集成IP遇到困難時提供必需的支持。

相關詞條

其它詞條