集成电路设计过程中的寄存器设计方法及装置的制作方法

文档序号:6362651阅读:571来源:国知局
专利名称:集成电路设计过程中的寄存器设计方法及装置的制作方法
技术领域
本发明属于半导体技术领域,尤其涉及一种集成电路(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