麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

集成電路設計過程中的寄存器設計方法及裝置的制作方法

文檔序號:6362651閱讀:572來源:國知局
專利名稱:集成電路設計過程中的寄存器設計方法及裝置的制作方法
技術領域
本發明屬于半導體技術領域,尤其涉及一種集成電路(Integrated Circuit, IC) 設計過程中的寄存器設計方法及裝置。
背景技術
隨著集成電路(IC)的快速發展,芯片規模越來越大,其寄存器(或稱為系統寄存器)也不斷增多,通常集成電路上寄存器的數目往往達到成百上千各,有的片上系統 (System-0n-a-Chip, SoC)甚至高達好幾萬個。大量的寄存器設計很容易出現由于寄存器設計不正確而導致的芯片缺陷(bug)。 據統計,高達40 50%的芯片缺陷(bug)是寄存器設計不正確導致的。所導致的缺陷主要包括1)缺省值與文檔規范不一致,2)讀寫權限不正確,3)地址分配錯誤,4)位寬與文檔規范不一致,5)可配置的值配置錯誤等。而且,寄存器的設計規范在設計過程中也是不斷變化和修改的,甚至到IC驗證過程中也仍然在不斷地修改寄存器的設計信息。一旦在設計過程中增加或減少寄存器,或者修改寄存器字段的長度、位置、屬性、初始值等設計信息,寄存器的文檔、寄存器傳輸級 (Register Transfer Level, RTL)設計和測試平臺(testbench, TB)都需要進行相應的修改。而這些修改也很容易導致寄存器設計不正確,從而導致芯片缺陷。可見現有技術中,如何保證寄存器設計與文檔規范和后期驗證的一致性,是一個亟待解決的問題,尤其是針對大量寄存器的設計,其具體設計和設計后期的驗證維護都是十分困難和繁瑣的,這種非常繁瑣的維護工作,耗時長和出錯率高,也導致芯片缺陷增加, 設計成功率低。

發明內容
有鑒于此,本發明的一個目的是提供一種集成電路設計過程中的寄存器設計方法及裝置,用于解決現有技術中存在的大量寄存器的設計維護困難繁瑣,維護工作耗時長、出錯率高,導致芯片缺陷增加、設計成功率低的問題。為了對披露的實施例的一些方面有一個基本的理解,下面給出了簡單的概括。該概括部分不是泛泛評述,也不是要確定關鍵/重要組成元素或描繪這些實施例的保護范圍。其唯一目的是用簡單的形式呈現一些概念,以此作為后面的詳細說明的序言。本發明實施例提供一種集成電路設計過程中的寄存器設計方法,包括通過可擴展標記語言XML編輯器生成包括寄存器配置信息的XML文件;根據所述寄存器配置信息中包括的寄存器接口類型,獲取寄存器傳輸級設計RTL 模板庫中的RTL模板;根據獲取的RTL模板和所述寄存器配置信息,生成包括寄存器接口信息和參數聲明的RTL文件頭;以及遍歷所述XML文件中包括的各寄存器配置信息生成各寄存器的RTL
信息;
得到包括RTL文件頭和RTL信息的RTL設計文件。在一些可選的實施例中,所述寄存器配置信息包括下列信息之一或組合寄存器名稱、寄存器地址、缺省值、字段配置、訪問權限和寄存器接口信息。在一些可選的實施例中,所述寄存器接口類型包括下列類型中的至少一種先進外圍總線APB、先進高性能總線AHB、串行外設接口 SPI和內置集成電路I2C總線。在一些可選的實施例中,所述方法還包括將所述XML文件轉化為相應的RALF文件;根據所述RALF文件和寄存器抽象層RAL庫中存儲RAL基類,生成RAL測試平臺;對生成的RAL測試平臺和寄存器的RTL設計文件進行編譯仿真,并將編譯仿真后的寄存器的RTL設計文件與編譯仿真后的RAL測試平臺進行比較匹配;根據匹配結果判斷寄存器的RTL設計文件是否正確。在一些可選的實施例中,所述根據匹配結果判斷寄存器的RTL設計文件是否正確,具體包括比較編譯仿真后的RAL測試平臺中測試用例的仿真結果和寄存器的RTL設計文件中測試用例的仿真結果是否一致,當一致時,確定寄存器的RTL是正確的;或根據編譯仿真后的RAL測試平臺和編譯仿真后的寄存器的RTL設計文件,判斷所述寄存器的RTL設計文件所設計的寄存器的功能覆蓋率是否大于設定的覆蓋率閾值,當功能覆蓋率大于設定的覆蓋率閾值時,確定寄存器的RTL設計文件是正確的;或比較編譯仿真后的RAL測試平臺中測試用例的仿真結果和寄存器的RTL設計文件中測試用例的仿真結果是否一致;以及根據編譯仿真后的RAL測試平臺和編譯后的寄存器的RTL設計文件,判斷所述寄存器的RTL設計文件所設計的寄存器的功能覆蓋率是否大于設定的覆蓋率閾值,當均判斷為是時,確定寄存器的RTL設計文件是正確的。在一些可選的實施例中,所述XML文件中還包括功能文檔類型信息;所述方法還包括根據從所述XML文件中解析出的所述功能文檔類型信息,獲取文檔模板庫中的功能文檔模板;根據獲取的功能文檔模板,生成包括寄存器和寄存器地址映射關系的寄存器整體地址映射表;以及生成包括各寄存器功能信息的功能表;得到包含所述整體地址映射表和功能表的功能文檔。在一些可選的實施例中,所述功能文檔類型包括下列類型中的至少一種Word文檔、HTML文檔、Excel文檔和TXT文檔。本發明實施例還提供一種集成電路設計過程中的寄存器設計裝置,其特征在于, 包括XML文件生成模塊,用于通過可擴展標記語言XML編輯器生成包括寄存器配置信息的XML文件;RTL模板調用模塊,用于根據所述寄存器配置信息中包括的寄存器接口類型,獲取寄存器傳輸級設計RTL模板庫中的RTL模板;設計生成模塊,用于根據獲取的RTL模板和所述寄存器配置信息,生成包括寄存器接口信息和參數聲明的RTL文件頭;以及遍歷所述XML文件中包括的各寄存器配置信息生成各寄存器的RTL信息;得到包括RTL文件頭和RTL信息的RTL設計文件。在一些可選的實施例中,所述裝置還包括所述模型生成模塊,用于將所述XML文件轉化為相應的RALF文件;根據所述RALF 文件和寄存器抽象層RAL庫中存儲RAL基類,生成RAL測試平臺;所述匹配驗證模塊,用于對生成的RAL測試平臺和寄存器的RTL設計文件進行編譯仿真,并將編譯仿真后的寄存器的RTL設計文件與編譯仿真后的RAL測試平臺進行比較匹配;根據匹配結果判斷寄存器的RTL設計文件是否正確。在一些可選的實施例中,所述匹配驗證模塊,具體用于比較編譯仿真后的RAL測試平臺中測試用例的仿真結果和寄存器的RTL設計文件中測試用例的仿真結果是否一致,當一致時確定寄存器的RTL是正確的;或根據編譯仿真后的RAL測試平臺和編譯仿真后的寄存器的RTL設計文件,判斷所述寄存器的RTL設計文件所設計的寄存器的功能覆蓋率是否大于設定的覆蓋率閾值,當功能覆蓋率大于設定的覆蓋率閾值時,確定寄存器的RTL設計文件是正確的;或比較編譯仿真后的RAL測試平臺中測試用例的仿真結果和寄存器的RTL設計文件中測試用例的仿真結果是否一致;以及根據編譯仿真后的RAL測試平臺和編譯后的寄存器的RTL設計文件,判斷所述寄存器的RTL設計文件所設計的寄存器的功能覆蓋率是否大于設定的覆蓋率閾值,當均判斷為是時,確定寄存器的RTL設計文件是正確的。在一些可選的實施例中,所述裝置還包括文檔模板調用模塊和功能文檔生成模塊;所述XML文件生成模塊,還用于生成還包括功能文檔類型信息的XML文件;所述文檔模板調用模塊,用于根據從所述XML文件中解析出的所述功能文檔類型信息,獲取文檔模板庫中的功能文檔模板;所述功能文檔生成模塊,用于根據獲取的功能文檔模板,生成包括寄存器和寄存器地址映射關系的寄存器整體地址映射表;以及生成包括各寄存器功能信息的功能表;得到包含所述整體地址映射表和功能表的功能文檔。本發明實施例提供的集成電路設計過程中的寄存器設計方法及裝置,通過XML編輯器生成包括寄存器配置信息的XML文件;根據寄存器配置信息中包括的寄存器接口類型,獲取寄存器傳輸級設計RTL模板庫中的RTL模板;根據獲取的RTL模板和所述寄存器配置信息,生成包括寄存器接口信息和參數聲明的RTL文件頭;以及遍歷XML文件中包括的各寄存器配置信息生成各寄存器的RTL信息;得到包括RTL文件頭和RTL信息的RTL設計文件。從而實現集成電路中大量寄存器的自動化設計,自動生成寄存器的RTL設計文檔,避免了大量寄存器設計時存在的設計維護困難繁瑣的問題,減少了維護耗時和出錯率,減少了 IC或芯片設計缺陷,提高了設計成功率;有利于設計的重用,從而有利于加速IC或芯片的集成。為了上述以及相關的目的,一個或多個實施例包括后面將詳細說明并在權利要求中特別指出的特征。下面的說明以及附圖
詳細說明某些示例性方面,并且其指示的僅僅是各個實施例的原則可以利用的各種方式中的一些方式。其它的益處和新穎性特征將隨著下面的詳細說明結合附圖考慮而變得明顯,所公開的實施例是要包括所有這些方面以及它們的等同。說明書附I是本發明實施例中寄存器設計方法的整體原理示意圖;圖2是本發明實施例一中寄存器設計方法的流程圖;圖3是本發明實施例二中寄存器設計方法的流程圖;圖4是本發明實施例三中寄存器設計方法的流程圖;圖5是本發明實施例中寄存器設計裝置的結構示意圖;圖6是本發明實施例中實現RAL驗證的模塊的具體結構示意圖。
具體實施例方式以下描述和附圖充分地示出本發明的具體實施方案,以使本領域的技術人員能夠實踐它們。其他實施方案可以包括結構的、邏輯的、電氣的、過程的以及其他的改變。實施例僅代表可能的變化。除非明確要求,否則單獨的組件和功能是可選的,并且操作的順序可以變化。一些實施方案的部分和特征可以被包括在或替換其他實施方案的部分和特征。本發明的實施方案的范圍包括權利要求書的整個范圍,以及權利要求書的所有可獲得的等同物。在本文中,本發明的這些實施方案可以被單獨地或總地用術語“發明”來表示,這僅僅是為了方便,并且如果事實上公開了超過一個的發明,不是要自動地限制該應用的范圍為任何單個發明或發明構思。本發明實施例提供一種集成電路設計過程中的寄存器設計方法,該方法的整體實現原理如圖I所示,主要包括寄存器的RTL設計過程,該過程生成RTL設計文件;優選的,還包括寄存器抽象層(Register Abstraction Layer,RAL)測試平臺的生成過程,用于對生成的RTL設計文件進行驗證;優選的,還包括寄存器的功能文檔的生成,便于查看和了解所設計的寄存器的各種配置信息。如圖I所示的,采用可擴展標記語言(Extensible Markup Language,XML)編輯器描述寄存器,并將對寄存器的描述保存為XML文件。然后,調用XML2RTL工具,產生該XML文件所描述的RTL設計文件;以及調用XML2TB工具,產生該XML文件所描述的測試平臺(testbench,TB),并通過產生的測試平臺對RTL設計文件進行驗證。例如該測試平臺可以基于VMM-RAL(Verification Methodology Manual, VMM)實現,再通過仿真工具(如VCS)進行編譯仿真。此外,還可以調用XML2SPEC工具,產生該XML文件所描述的寄存器的功能文檔。下面通過具體實施例詳細說明上述各個過程的實現流程。實施例一本發明實施例一提供的集成電路設計過程中的寄存器設計方法,實現各寄存器的 RTL設計文件生成,以便實現寄存器的設計,該方法流程如圖2所示,包括如下步驟Sll :通過XML編輯器生成XML文件。具體是通過可擴展標記語言XML編輯器生成包括寄存器配置信息的XML文件。采用XML編輯器描述寄存器,并生成相應的XML文件,生成的XML文件中包括的寄存器配置信息可以包括寄存器接口類型等寄存器接口信息等,XML文件中包括的寄存器配置信息還包括下列信息之一或組合寄存器名稱、寄存器地址、缺省值、字段配置和訪問權限。寄存器接口類型包括下列類型中的至少一種先進外圍總線(Advanced Peripheral Bus, APB)、先進高性能總線(Advanced High-performance Bus, AHB)、串行外設接口 (Serial Peripheral Interface, SPI)和內置集成電路(Inter-Integrated Circuit, I2C)總線。生成的XML文件中還可以包括功能文檔類型信息等。S12 :根據XML文件中包括的寄存器接口類型,獲取寄存器傳輸級設計RTL模板庫中的RTL模板。具體是根據XML文件中的寄存器配置信息中包括的寄存器接口類型獲取。RTL模板庫中預先配置并存儲了針對各接口類型的RTL模板,當獲取到寄存器配置信息中包括的接口類型時,可以根據不同的接口類型獲取不同的RTL模板。S13 :根據獲取的RTL模板和寄存器配置信息,生成包括寄存器接口信息和參數聲明的RTL文件頭。RTL文件一般包括一個RTL文件頭部分,在該部分聲明所設計的寄存器的接口信息和配置的參數。例如可以通過XML2RTL工具實現,當然也可以通過其他類似的工具實現。S14 :遍歷XML文件中包括的各寄存器配置信息生成各寄存器的RTL信息。例如可以通過XML2RTL工具遍歷XML文件中的寄存器配置信息數組,獲取各寄存器的配置信息,生成RTL設計文件中的各寄存器的RTL信息,該部分信息構成RTL設計文件的主體部分,當然也可以通過其他類似的工具實現該過程。在完成各寄存器的RTL信息的生成之后,還可以生成一個RTL文件尾,來標記寄存器的RTL信息結束。S15 :得到包含RTL文件頭和RTL信息的RTL設計文件。由步驟S13中生成的RTL文件頭和步驟S14中生成的構成RTK主體部分的各寄存器的RTL信息共同構成RTL設計文件。當生成文件尾時,相應的,得到的RTL設計文件包括RTL文件頭、RTL信息和RTL文件尾。下面為步驟Sll中涉及到的XML文件的一個示例,具體可以包括如下內容
XML file:<spirit:component
xmlnsispirit-'httpV/www.spiritconsortium.orq/XMLSchema/SPIRIT/l .4"> <spirit:version>1.4</spirit:version>
<spirit:memoryMaps>
<spirit:memoryMap>
<spirit:name>apb_mm</spirit:name>
<spirit:addressBlock>
<spirit:name>apb_reg</spirit:name>
<spirit:baseAddress>0x1000</spirit:baseAddress>
<spirit: range>0x100</spi「it: range> <spirit:width>32</spirit:width>
<spirit:register>
<spirit:name>SYS_MODE_REG</spirit:name> <spirit:description>system mode register </spirit:description>
<spi rit: add ressOffset>Ox7 c</spi「it: add ressOffset> <spirit:size>8</spirit:size>
<spirit: access> RW</spi rit: access>
<spirit:reset>
<spirit:value>OxOO</spirit:value>
<spirit:mask>Oxff</spirit:mask>
</spirit:reset>
<spirit:field>
<spirit:name>sys_boot_mode</spirit:name> <spirit:bit0ffset>0</spirit:bit0ffset> <spirit:bitWidth>3</spirit:bitWidth> <spirit:description>system boot mode: 3'b000- from ROM;3七001- from USB;3'b010- from SD;3'b100- from UART </spirit:description>
</spirit:field>
<spirit:field><spirit:name>sys_cpu_freq</spirit:name>
<spirit:bitOffset>4</spirit:bitOffset>
〈spirit: bitWidth>2</spirit:bitWidth>CPU frequency mode: 2'bOO- 800MHz;2'b01-400MHz;2'b10- 200MHz.
<spirit:description>
</spirit:description>
</spirit:field>
<spirit:field>
<spirit:name>sys_bus_freq</spirit:name>
〈spirit: bitOffset>6</spi rit: bitOffset> <spirit:bitWidth>2</spirit:bitWidth>system bus frequency mode: 2'bOO- 400MHz;2'b01-200MHz;2'b10- 100MHz.
<spirit:description>
</spirit:description>
</spirit:field>
</spi rit: register〉
</spirit:addressBlock>
</spirit:memoryMap>
</spirit:memoryMaps>
</spirit:component>上述XML文檔中,指明了寄存器的名稱為“SYS_MODE_REG”,寄存器地址為“0x7c”, 訪問權限為“RW”等。下面為步驟S15中涉及到的RTL設計文件的一個示例,具體可以包括如下內容
XML2RTL: module apb_reg(
output [2:0]sys 一 boot一 mode,
output [1:0]sys 一 cpu 一 freq,
output [1:0]sys 一 bus 一 freq,
權利要求
1.一種集成電路設計過程中的寄存器設計方法,其特征在于,包括通過可擴展標記語言XML編輯器生成包括寄存器配置信息的XML文件;根據所述寄存器配置信息中包括的寄存器接口類型,獲取寄存器傳輸級設計RTL模板庫中的RTL模板;根據獲取的RTL模板和所述寄存器配置信息,生成包括寄存器接口信息和參數聲明的 RTL文件頭;以及遍歷所述XML文件中包括的各寄存器配置信息生成各寄存器的RTL信息; 得到包括RTL文件頭和RTL信息的RTL設計文件。
2.如權利要求I所述的方法,其特征在于,所述寄存器配置信息包括下列信息之一或組合寄存器名稱、寄存器地址、缺省值、字段配置、訪問權限和寄存器接口信息。
3.如權利要求I所述的方法,其特征在于,所述寄存器接口類型包括下列類型中的至少一種先進外圍總線APB、先進高性能總線AHB、串行外設接口 SPI和內置集成電路I2C總線。
4.如權利要求I所述的方法,其特征在于,還包括將所述XML文件轉化為相應的RALF文件;根據所述RALF文件和寄存器抽象層RAL庫中存儲RAL基類,生成RAL測試平臺;對生成的RAL測試平臺和寄存器的RTL設計文件進行編譯仿真,并將編譯仿真后的寄存器的RTL設計文件與編譯仿真后的RAL測試平臺進行比較匹配;根據匹配結果判斷寄存器的RTL設計文件是否正確。
5.如權利要求4所述的方法,其特征在于,所述根據匹配結果判斷寄存器的RTL設計文件是否正確,具體包括比較編譯仿真后的RAL測試平臺中測試用例的仿真結果和寄存器的RTL設計文件中測試用例的仿真結果是否一致,當一致時,確定寄存器的RTL是正確的;或根據編譯仿真后的RAL測試平臺和編譯仿真后的寄存器的RTL設計文件,判斷所述寄存器的RTL設計文件所設計的寄存器的功能覆蓋率是否大于設定的覆蓋率閾值,當功能覆蓋率大于設定的覆蓋率閾值時,確定寄存器的RTL設計文件是正確的;或比較編譯仿真后的RAL測試平臺中測試用例的仿真結果和寄存器的RTL設計文件中測試用例的仿真結果是否一致;以及根據編譯仿真后的RAL測試平臺和編譯后的寄存器的 RTL設計文件,判斷所述寄存器的RTL設計文件所設計的寄存器的功能覆蓋率是否大于設定的覆蓋率閾值,當均判斷為是時,確定寄存器的RTL設計文件是正確的。
6.如權利要求1-5任一所述的方法,其特征在于,所述XML文件中還包括功能文檔類型信息;所述方法還包括根據從所述XML文件中解析出的所述功能文檔類型信息,獲取文檔模板庫中的功能文檔模板;根據獲取的功能文檔模板,生成包括寄存器和寄存器地址映射關系的寄存器整體地址映射表;以及生成包括各寄存器功能信息的功能表;得到包含所述整體地址映射表和功能表的功能文檔。
7.如權利要求6所述的方法,其特征在于,所述功能文檔類型包括下列類型中的至少一種Word文檔、HTML文檔、Excel文檔和TXT文檔。
8.一種集成電路設計過程中的寄存器設計裝置,其特征在于,包括XML文件生成模塊,用于通過可擴展標記語言XML編輯器生成包括寄存器配置信息的 XML文件;RTL模板調用模塊,用于根據所述寄存器配置信息中包括的寄存器接口類型,獲取寄存器傳輸級設計RTL模板庫中的RTL模板;設計生成模塊,用于根據獲取的RTL模板和所述寄存器配置信息,生成包括寄存器接口信息和參數聲明的RTL文件頭;以及遍歷所述XML文件中包括的各寄存器配置信息生成各寄存器的RTL信息;得到包括RTL文件頭和RTL信息的RTL設計文件。
9.如權利要求8所述的裝置,其特征在于,還包括所述模型生成模塊,用于將所述XML文件轉化為相應的RALF文件;根據所述RALF文件和寄存器抽象層RAL庫中存儲RAL基類,生成RAL測試平臺;所述匹配驗證模塊,用于對生成的RAL測試平臺和寄存器的RTL設計文件進行編譯仿真,并將編譯仿真后的寄存器的RTL設計文件與編譯仿真后的RAL測試平臺進行比較匹配; 根據匹配結果判斷寄存器的RTL設計文件是否正確。
10.如權利要求9所述的裝置,其特征在于,所述匹配驗證模塊,具體用于比較編譯仿真后的RAL測試平臺中測試用例的仿真結果和寄存器的RTL設計文件中測試用例的仿真結果是否一致,當一致時確定寄存器的RTL是正確的;或根據編譯仿真后的RAL測試平臺和編譯仿真后的寄存器的RTL設計文件,判斷所述寄存器的RTL設計文件所設計的寄存器的功能覆蓋率是否大于設定的覆蓋率閾值,當功能覆蓋率大于設定的覆蓋率閾值時,確定寄存器的RTL設計文件是正確的;或比較編譯仿真后的RAL測試平臺中測試用例的仿真結果和寄存器的RTL設計文件中測試用例的仿真結果是否一致;以及根據編譯仿真后的RAL測試平臺和編譯后的寄存器的 RTL設計文件,判斷所述寄存器的RTL設計文件所設計的寄存器的功能覆蓋率是否大于設定的覆蓋率閾值,當均判斷為是時,確定寄存器的RTL設計文件是正確的。
11.如權利要求8-10任一所述的裝置,其特征在于,還包括文檔模板調用模塊和功能文檔生成模塊;所述XML文件生成模塊,還用于生成還包括功能文檔類型信息的XML文件;所述文檔模板調用模塊,用于根據從所述XML文件中解析出的所述功能文檔類型信息,獲取文檔模板庫中的功能文檔模板;所述功能文檔生成模塊,用于根據獲取的功能文檔模板,生成包括寄存器和寄存器地址映射關系的寄存器整體地址映射表;以及生成包括各寄存器功能信息的功能表;得到包含所述整體地址映射表和功能表的功能文檔。
全文摘要
本發明公開了一種集成電路設計過程中的寄存器設計方法,包括通過可擴展標記語言XML編輯器生成包括寄存器配置信息的XML文件;根據所述寄存器配置信息中包括的寄存器接口類型,獲取寄存器傳輸級設計RTL模板庫中的RTL模板;根據獲取的RTL模板和所述寄存器配置信息,生成包括寄存器接口信息和參數聲明的RTL文件頭;以及遍歷所述XML文件中包括的各寄存器配置信息生成各寄存器的RTL信息;得到包含RTL文件頭和RTL信息的RTL設計文件;減少了IC設計缺陷,提高了設計成功率。
文檔編號G06F17/50GK102592023SQ20121000391
公開日2012年7月18日 申請日期2012年1月6日 優先權日2012年1月6日
發明者鮑東山 申請人:廣東新岸線計算機系統芯片有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 海兴县| 华蓥市| 闽侯县| 青海省| 应用必备| 扶绥县| 喀什市| 沂水县| 山西省| 连平县| 商南县| 托克逊县| 西乌| 轮台县| 桃江县| 双城市| 南涧| 安阳市| 开原市| 察哈| 宾川县| 吉安县| 百色市| 江川县| 长汀县| 垦利县| 泰兴市| 抚松县| 酒泉市| 巴里| 余江县| 温宿县| 定西市| 仙桃市| 石屏县| 乡宁县| 沅江市| 印江| 天镇县| 自治县| 新源县|