一種ip生成方法及工具的制作方法
【專利摘要】本發明公開了一種IP生成方法及工具,該方法首先解析IP結構描述文件,然后解析用戶配置參數文件,并根據所述用戶配置參數文件配置目的IP,最后產生并輸出所述目的IP的IP描述文件。本發明提供了一個靈活的IP自動產生框架和平臺,IP開發者可以按照既有的框架和協議,開發出IP模型,無縫內嵌到IP?Builder中,供系統設計者和電路開發者使用,快速便捷。
【專利說明】
一種IP生成方法及工具
技術領域
[0001] 本申請涉及微電子領域中的集成電路設計和電子設計自動化領域,尤其涉及一種 IP生成方法及工具。
【背景技術】
[0002] 由于芯片設計的復雜性和產品面市時間對于保證終端市場的成功率至關重要,因 此設計師不斷尋求縮短設計周期的方法,以及更有效的設計方式。與此同時,伴隨著步入系 統級芯片時代,利用IP內核和可編程邏輯進行設計復用顯得日趨重要。
[0003] 基于FPGA(Field Programmable Gate Array,現場可編程邏輯門陣列)片上系統 開發已成為目前FPGA應用的一個熱點。但是基于FPGA片上系統對使用者的知識要求比較 高,使用流程比較復雜,參考資料不多,成為目前開發者應用的瓶頸。因此,現有的解決方式 是通過使用高度參數化的IP可以來提高FPGA的開發應用。
[0004] 但是目前還沒有針對IP自動產生工具技術實現的公開發表。
【發明內容】
[0005] 本發明了提供了一種IP生成方法及工具,以解決目前沒有針對IP自動產生工具技 術實現的公開發表的問題。
[0006] 為解決上述技術問題,本發明提供了一種IP生成方法,應用于IP生成工具中,所述 方法包括:解析IP結構描述文件,其中,所述IP結構描述文件采用IP描述標準(IP-XACT)進 行描述;解析用戶配置參數文件,并根據所述用戶配置參數文件配置目的IP;產生并輸出所 述目的IP的IP描述文件。
[0007] 優選的,所述解析IP結構描述文件具體為:解析所述IP結構描述文件,并建立第一 數據結構(IP-XACTcomp),其中,所述第一數據結構和所述IP描述標準對應。
[0008] 優選的,所述解析用戶配置參數文件,并根據所述用戶配置參數文件配置IP包括: 解析用戶配置參數文件,獲得配置參數值;將所述配置參數值對應嵌入到所述第一數據結 構中,以獲得第二數據結構,其中,所述第二數據結構具體是包含了所述配置參數值的數據 結構。
[0009] 優選的,當所述用戶配置參數文件包含有表達式的參數,所述解析用戶配置參數 文件,獲得配置參數值,具體為:通過lex&yacc解析器,解析并計算出參數被配置后的數值, 獲得所述配置參數值。
[0010]優選的,所述產生并輸出所述目的IP的IP描述文件具體包括:采用靜態產生方式 產生所述IP描述文件;采用動態產生方式產生所述IP描述文件。
[0011] 優選的,所述采用靜態產生方式產生所述IP描述文件,具體為:基于采用VHDL描述 的IP內核描述文件,按照所述第二數據結構,具體化IP內核描述以及IP的接口,產生所述IP 描述文件。
[0012] 優選的,所述采用動態產生方式產生所述IP描述文件,具體為:基于采用腳本語言 描述的IP內核描述文件,按照所述第二數據結構,具體化IP內核描述以及IP的接口,產生所 述IP描述文件。
[0013] 優選的,所述IP描述文件包含行為級IP描述文件或者結構級IP描述文件。
[0014] 本發明提供了一種IP生成工具,包括第一解析單元,用于解析IP結構描述文件,其 中,所述IP結構描述文件采用IP描述標準(IP-XACT)進行描述;第二解析單元,用于解析用 戶配置參數文件,并根據所述用戶配置參數文件配置目的IP;輸出單元,用于產生并輸出所 述目的IP的IP描述文件。
[0015] 優選的,所述IP生成工具還包括:接收單元,用于接收用戶的指令,獲取該關于所 述IP生成工具的基本參數。
[0016] 通過本發明的一個或者多個技術方案,本發明具有以下有益效果或者優點:
[0017] 本發明提供了一種IP生成方法及工具,該方法首先解析IP結構描述文件,然后解 析用戶配置參數文件,并根據所述用戶配置參數文件配置目的IP,最后產生并輸出所述目 的IP的IP描述文件。本發明提供了一個靈活的IP自動產生框架和平臺,IP開發者可以按照 既有的框架和協議,開發出IP模型,無縫內嵌到IP-Builder中,供系統設計者和電路開發者 使用,快速便捷。
【附圖說明】
[0018] 圖1為本發明實施例中IP生成方法的設計思路圖;
[0019] 圖2為本發明實施例1P生成方法的流程圖;
[0020] 圖3為本發明實施例輸出實施過程圖;
[0021] 圖4為本發明實施例1P生成工具的示意圖。
【具體實施方式】
[0022] 為了使本申請所屬技術領域中的技術人員更清楚地理解本申請,下面結合附圖, 通過具體實施例對本申請技術方案作詳細描述。
[0023] 實施例一:
[0024]在本發明實施例中,提供了一種I P生成方法,本發明實施例涉及的I P (Intellectual Property,知識產權)指的是某些設計好的模塊,即:用于產品應用專用集 成電路(ASIC)或者可編輯邏輯器件(FPGA)的邏輯塊或數據塊,其可以分為軟件模塊和硬件 模塊。而本發明設計的IP生成方法便是針對這些模塊所做的設計。請參看圖1,是本發明的 主要設計思路。其中,在獲得IP結構描述文件之后,便對IP結構描述文件解析,而IP結構描 述文件主要采用IP描述標準(IP-XACT)進行描述。然后配置目的IP,并會使用到IP配置文 件、第一數據結構(ΙΡ-XACTcomp)。最后輸出IP,此處使用了 IP內核描述文件。在輸出時,通 過設定選項可以供用戶輸出Veirlog Hdl、IP實例化、VHDUEDIF形式的文件,同時可以指 定-res的參數,用于設定IP輸出結果存放位置。
[0025] 以上是本發明的主要設計思路,下面請看具體的實施步驟。
[0026] 下面請參看圖2,是本發明提供的IP生成方法的流程圖。
[0027] Sl,解析IP結構描述文件。
[0028] 一般來說,IP結構描述文件采用了 IP描述標準(IP-XACT)進行描述,便于無縫嵌入 第三方IP提供商提供的IP。IP結構描述文件命名為component .xml,包含了 IP相關的各種信 息,例如:IP的Interface、Model、Parameter、fiIeset等等說明。
[0029] XML文件的C++/C解析器有LibXml、XMLBooster、squashXML、tinyXML等,其中 tinyXML使用方法也比較簡單,是一個開源的解析XML解析庫,用于C++,支持Windows和 Linux,因此本專利采用tinyXML解析器來解析IP結構描述文件。而在解析IP結構描述文件 之后,還會建立第一數據結構(IP-XACTcomp ),第一數據結構(ΙΡ-XACTcomp)是和IP描述標 準對應建立的。
[0030] 第一數據結構組成的關系如下所示。
[0031] 第一數據結構的頂層數據結構定義為IP-XACTcomp。IP-XACTcomp與IP-XACT相對 應,包括IP的庫、版本、名稱、接口、配置參數、實現模式、相關文件關系、支持的器件等。另 外,第一數據結構除了包含IP結構的描述外,還包含有文件屬性,這些文件用來說明與IP產 生相關的文件組成、文件的類型、文件的功能、文件如何在IP產生過程使用等信息。
[0032]此外,第一數據結構還可以分為兩層數據結構,即已配置層和可配置層。其中,庫、 版本、名稱、接口屬于已配置層,配置參數、實現模式屬于可配置層。
[0033] S2,解析用戶配置參數文件,并根據所述用戶配置參數文件配置目的IP。
[0034] 具體來說,用戶配置參數文件是用來描述IP可配置參數值的文件,主要用來配置 一個可配置的IP。
[0035] 在具體的配置IP的過程中,首先,需要解析用戶配置參數文件,以獲得配置參數 值。
[0036]而如果用戶配置參數文件中包含有表達式,還需要借助lex&yacc解析器,解析并 計算出參數被配置后的數值,獲得所述配置參數值。
[0037] 如表達式"MODELPARAM_VALUE. C_PORTA_WIDTH&apos",這類表達式包括各種算數 運算、布爾運算、比較運算等。因此本實施例采用lex&yacc解析此類表達式,并得出表達式 對應的配置參數值。以下面的代碼為例。
[0038] <spirit:port> <spirit:namc>A <spirit:pon> <sp i r i t: n ame> A </sp i r i t: name> <spiril:wire> <spi rit; d i ??〇??·〇??>?η</8ρ?π?: direction> <spirit:vector> <spirit:left spirit:format=,ilong,r Spiritresolve=fiCiepeiidentif spirit:dependency=M(spirit:decode(id('MODELPARA M_VAI.,UF.C_PORTA_WiDTH'))-l)n>17</spiritleft> <spiril:righ spirit: fbnruil_''long" spirit;rcsoIvc=',iimnediate!l>0</spMt:rigW </spirit:vector> </spiril:wire> </spirit;p〇n>
[0039] 其次,在獲得配置參數值之后,便會按照配置的要求把IP-XACTcomp變成包含配置 參數值的數據結構(即第二數據結構,第二數據結構就是包含了所述配置參數值的數據結 構)。具體來說,是將配置參數值按照要求對應嵌入到所述第一數據結構中,以此來進行配 置并獲得第二數據結構,第二數據結構便是目的IP的數據結構。
[0040] 在獲得了第二數據結構之后,便會執行下面的步驟。
[0041 ] S3,產生并輸出目的IP的IP描述文件。
[0042] 在本發明的實施過程中,可以采用兩種方式來產生目的IP的IP描述文件:靜態產 生方式和動態產生方式。
[0043] 下面分別介紹這兩種方式。
[0044] 靜態產生方式,是調用采用VHDL(Very-High_Speed Integrated Circuit Hardware Description Language,硬件描述語言)描述的IP內核描述文件,按照SI、S2產生 的已配置IP數據結構,具體化該IP內核描述以及IP的接口,產生IP描述文件。具體而言,在 第二數據結構中已經明確了要實現的IP工作模式和接口結構,因此在動態產生的過程中, 按照第二數據結構中接口的特征(接口寬度和接口組成),產生接口并輸出;按照第二數據 結構中描述的IP工作模式,調用IP內核描述文件,并輸出。
[0045] 動態產生方式,是調用采用腳本語言描述的IP內核描述文件,按照S1、S2產生的已 配置IP數據結構(即第二數據結構),具體化該IP內核描述以及IP的接口,產生IP描述文件。 具體而言,在第二數據結構中已經明確了要實現的IP實現方式和接口結構,因此在動態產 生的過程中,按照第二數據結構中接口的特征(接口寬度和接口組成),產生接口并輸出;按 照第二數據結構中描述的IP實現方式,比如乘法器實現方式是行為級的同步乘法器,就可 以產生行為級乘法器的內核,并輸出。
[0046]優選的,IP描述文件包含結構級的IP描述文件或者行為級IP描述文件。行為級IP 描述文件是指類似C語言的一種電路表達方式,而結構級的IP描述文件則是面向于某個 FPGA器件,采用該器件內單元結構描述的一種電路方式。
[0047] IP描述文件還可以加密。
[0048] 優選的,在上述生成IP的基礎上,本實施例的IP生成工具還可以接收用戶的指令 獲取有關于IP生成工具的相關信息,這些相關信息包括:本申請實施例涉及的IP工具支持 的所有的IP;本申請實施例涉及的IP工具支持的各IP使用權限;本申請實施例涉及的IP工 具支持的各IP所支持的器件。
[0049] 下面以產生'Verilog HDL'格式的IP描述文件為例進行整體說明。Verilog HDL是 目前應用最為廣泛的硬件描述語言。Verilog HDL可以用來進行各種層次的邏輯設計,也可 以進行數字系統的邏輯綜合,仿真驗證和時序分析等。
[0050] 事先準備:接收用戶定義的輸出命令ip. output-res〈輸出結果位置>-v-i VO-Vhd- edf,并接收用戶的設定,確定輸出Veirlog HDL,然后接收用戶指定-res的參數,以設定IP 輸出結果存放位置。當然,本發明在此使用Veirlog HDL進行舉例說明,并不是限制只能為 Veirlog HDL。在實際應用中,還可以通過設定選項選擇輸出IP實例化、VHDUEDIF形式等文 件。
[0051] 下面請參看圖3,是具體的實施過程。
[0052] 步驟S3.1、啟動輸出Verilog HDL命令。
[0053]步驟S3. 2、基于第一數據結構,建立IP各配置參數名和參數值的映射表一 ParamMap0
[0054]步驟S 3.3、輸出IP的頂層信息,包括產生IP的名稱、IP的端口、以及端口的 direct ion、位寬、屬性等。
[0055]步驟S3.4、輸出IP的內核。
[0056]本文提出的輸出IP內核分為兩種實現方式,即靜態方式和動態方式,其中動態方 式是優先選擇的。
[0057]靜態方式的實現過程:
[0058] 前期準備:已經準備好IP源描述文件(如Verilog HDL)。
[0059] 按照用戶配置的IP內核實現方式,產生一個IP源描述文件的實例化,該實例化包 含了 parameter的配置值、IP內核實現的接口等信息,把該實例化結構描述內嵌到IP描述文 件中。最后拷貝IP源描述文件到本IP產生的路徑下。
[0060] 動態方式的實現過程:
[0061 ]前期準備:已經準備好IP內核產生的腳本文件(如TcUperl等)。
[0062] 按照用戶配置的IP內核實現方式和IP屬性,動態產生一個IP內核描述文件一 core. V,然后把core. V內嵌到bigmult. V中,并刪除core. V。
[0063] 步驟S3.5、輸出IP的實例化描述文件。
[0064] 輸出IP的實例化描述文件,便于系統設計用戶直接內嵌實例化網表到系統描述 中,其產生過程主要確定兩類信息:
[0065] IP端口:包括所具有的端口名、端口位寬。
[0066] IP屬性參數。
[0067] 以上便是本實施例提供的IP生成方式的介紹,而基于同一發明構思,下面的實施 例還介紹了一種IP生成工具。
[0068] 實施例二:
[0069] 本實施例的IP生成工具命名為IP-Builder。
[0070] 請參見圖4,本申請實施例的IP生成工具具體包括:
[0071] 第一解析單401,用于解析IP結構描述文件,其中,所述IP結構描述文件采用IP描 述標準(IP-XACT)進行描述。
[0072] 一般來說,IP結構描述文件采用了 IP描述標準(IP-XACT)進行描述,便于無縫嵌入 第三方IP提供商提供的IP。IP結構描述文件命名為component .xml,包含了 IP相關的各種信 息,例如:IP的Interface、Model、Parameter、fiIeset等等說明。
[0073] XML文件的C++/C解析器有LibXml、XMLBooster、squashXML、tinyXML等,其中 tinyXML使用方法也比較簡單,是一個開源的解析XML解析庫,用于C++,支持Windows和 Linux,因此本專利采用tinyXML解析器來解析IP結構描述文件,因此,在實際情況中,第一 解析單401可用tinyXML解析器來來代替。而在解析IP結構描述文件之后,還會建立第一數 據結構(ΙΡ-XACTcomp ),第一數據結構(ΙΡ-XACTcomp)是和IP描述標準對應建立的。
[0074] 第二解析單元402,用于解析用戶配置參數文件,并根據所述用戶配置參數文件配 置目的IP。
[0075] 具體來說,用戶配置參數文件是用來描述IP可配置參數值的文件,主要用來配置 一個可配置的IP。
[0076] 在具體的配置IP的過程中,首先,需要解析用戶配置參數文件,以獲得配置參數 值。
[0077]而如果用戶配置參數文件中包含有表達式,還需要借助lex&yacc解析器,解析并 計算出參數被配置后的數值,獲得所述配置參數值。
[0078] 其次,在獲得配置參數值之后,便會按照配置的要求把IP-XACTcomp變成包含配置 參數值的數據結構(即第二數據結構,第二數據結構就是包含了所述配置參數值的數據結 構)。具體來說,是將配置參數值按照要求對應嵌入到所述第一數據結構中,以此來進行配 置并獲得第二數據結構,第二數據結構便是目的IP的數據結構。
[0079] 輸出單元403,用于產生并輸出所述目的IP的IP描述文件。
[0080] 在本發明的實施過程中,可以采用兩種方式來產生目的IP的IP描述文件:靜態產 生方式和動態產生方式。
[0081] 下面分別介紹這兩種方式。
[0082] 靜態產生方式,是調用采用VHDL(Very-High_Speed Integrated Circuit Hardware Description Language,硬件描述語言)描述的IP內核描述文件,按照SI、S2產生 的已配置IP數據結構,具體化該IP內核描述以及IP的接口,產生IP描述文件。
[0083]動態產生方式,是調用采用腳本語言描述的IP內核描述文件,按照S1、S2產生的已 配置IP數據結構(即第二數據結構),具體化該IP內核描述以及IP的接口,產生IP描述文件。 [0084]優選的,IP描述文件包含結構級的IP描述文件或者行為級IP描述文件。行為級IP 描述文件是指類似C語言的一種電路表達方式,而結構級的IP描述文件則是面向于某個 FPGA器件,采用該器件內單元結構描述的一種電路方式。
[0085] IP描述文件還可以加密。
[0086]除此之外,本申請實施例涉及的IP生成工具還提供了搜索功能,8卩:IP生成工具還 包括:接收單元,能夠接收用戶的指令,獲取該關于所述IP生成工具的基本參數,例如:獲取 該關于該工具所支持的IP品類、IP的狀態以及支持該IP的所有器件等等信息。
[0087]本申請的IP生成工具定義ip.query命令實現信息,即:
[0088] ip.query<-all><IP name><-license><-family><-status>
[0089] ip·query〈IP name>〈-license>〈-family>〈-status>
[0090] (列出某個IP的使用權限、支持的器件、對于某支持器件本IP的使用狀態等信息。) [0091 ]其中 ip · query-all是列車所有的IP和IP所有信息,如Iicense、famiiIy、status 等。
[0092] 通過本發明的一個或者多個實施例,本發明具有以下有益效果或者優點:
[0093] 本發明提供了一種IP生成方法及工具,該方法首先解析IP結構描述文件,然后解 析用戶配置參數文件,并根據所述用戶配置參數文件配置目的IP,最后產生并輸出所述目 的IP的IP描述文件。本發明提供了一個靈活的IP自動產生框架和平臺,IP開發者可以按照 既有的框架和協議,開發出IP模型,無縫內嵌到IP-Builder中,供系統設計者和電路開發者 使用,快速便捷。
[0094]盡管已描述了本申請的優選實施例,但本領域內的普通技術人員一旦得知了基本 創造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包 括優選實施例以及落入本申請范圍的所有變更和修改。
[0095]顯然,本領域的技術人員可以對本申請進行各種改動和變型而不脫離本申請的精 神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權利要求及其等同技術的范圍 之內,則本申請也意圖包含這些改動和變型在內。
【主權項】
1. 一種IP生成方法,應用于IP生成工具中,其特征在于,所述方法包括: 解析IP結構描述文件,其中,所述IP結構描述文件采用IP描述標準(IP-XACT)進行描 述; 解析用戶配置參數文件,并根據所述用戶配置參數文件配置目的IP; 產生并輸出所述目的IP的IP描述文件。2. 如權利要求1所述的方法,其特征在于,所述解析IP結構描述文件具體為: 解析所述IP結構描述文件,并建立第一數據結構(IP-XACTcomp),其中,所述第一數據 結構和所述IP描述標準對應。3. 如權利要求2所述的方法,其特征在于,所述解析用戶配置參數文件,并根據所述用 戶配置參數文件配置IP包括: 解析用戶配置參數文件,獲得配置參數值; 將所述配置參數值對應嵌入到所述第一數據結構中,以獲得第二數據結構,其中,所述 第二數據結構具體是包含了所述配置參數值的數據結構。4. 如權利要求3所述的方法,其特征在于,當所述用戶配置參數文件包含有表達式的參 數,所述解析用戶配置參數文件,獲得配置參數值,具體為: 通過lex&yacc解析器,解析并計算出參數被配置后的數值,獲得所述配置參數值。5. 如權利要求3所述的方法,其特征在于,所述產生并輸出所述目的IP的IP描述文件具 體包括: 采用靜態產生方式產生所述IP描述文件; 采用動態產生方式產生所述IP描述文件。6. 如權利要求5所述的方法,其特征在于,所述采用靜態產生方式產生所述IP描述文 件,具體為: 基于采用VHDL描述的IP內核描述文件,按照所述第二數據結構,具體化IP內核描述以 及IP的接口,產生所述IP描述文件。7. 如權利要求5所述的方法,其特征在于,所述采用動態產生方式產生所述IP描述文 件,具體為: 基于采用腳本語言描述的IP內核描述文件,按照所述第二數據結構,具體化IP內核描 述以及IP的接口,產生所述IP描述文件。8. 如權利要求1所述的方法,其特征在于,所述IP描述文件包含行為級IP描述文件或者 結構級IP描述文件。9. 一種IP生成工具,其特征在于,包括 第一解析單元,用于解析IP結構描述文件,其中,所述IP結構描述文件采用IP描述標準 (IP-XACT)進行描述; 第二解析單元,用于解析用戶配置參數文件,并根據所述用戶配置參數文件配置目的 IP; 輸出單元,用于產生并輸出所述目的IP的IP描述文件。10. 如權利要求9所述的一種IP生成工具,其特征在于,所述IP生成工具還包括: 接收單元,用于接收用戶的指令,獲取該關于所述IP生成工具的基本參數。
【文檔編號】G06F17/50GK105843993SQ201610153446
【公開日】2016年8月10日
【申請日】2016年3月17日
【發明人】李艷, 張東曉
【申請人】中國科學院微電子研究所