一种电子硬件芯片的获得方法和装置的制作方法

文档序号:6464511阅读:142来源:国知局
专利名称:一种电子硬件芯片的获得方法和装置的制作方法
技术领域
本发明涉及电子硬件领域,尤其涉及一种电子硬件芯片的设计技术。
背景技术
电子硬件芯片的设计过程中,设计人员通常会首先使用硬件描述语言
(Hardware Definition Language, HDL) 乂于正在i殳计的电子石更件芯片进4亍凄t字 化建模,目前最常用的两种HDL语言是Verilog和VHDL。通过建才莫得到的芯 片模型由一个或多个用HDL语言定义的模块组成,每个HDL模块均使用HDL 语句定义该模块的端口种类、数量以及内部线路连接。模块之间的连接关系同 样使用HDL语句定义,以组成一个完整的电子石更件系统。
对于一些常用的电子硬件芯片及其对应的HDL模块,可重用性是一个很 重要的要求,可重用性是指在一个系统的不同部分中或多个系统中重复使用已 有的芯片及对应的HDL模块,可以大幅度节省设计成本,简化系统构造,提 高系统的可靠性。但是由于不同的使用环境所需要的芯片端口种类和端口数量 可能不同,对芯片的功能要求也可能不同,为了使芯片及对应的HDL模块能 够适应不同使用环境的需要,以达到能够被重复使用的目的,在设计时通常采 用以下四种设计方法来提高电子硬件芯片及其对应的HDL模块的可重用性
冗余端口,为芯片对应的HDL ;f莫块定义各种使用环境下可能用到的不同 端口类型,使端口数量大于某个实际应用环境所需的端口数量;例如在一个解 码模块中同时定义多种信号格式的输入端口 ,即使该解码模块在该系统中只能 配置为对一种信号格式进行解码,但是为了使该解码模块能在其他使用环境下 被重复使用,需要在该解码模块的定义中为所有可能会用到的信号格式定义相 应类型的输入端口;
冗余功能,在芯片对应的HDL模块中定义各种使用环境下有可能用到的所有功能;这些冗余功能包括设置冗余端口后,冗余端口自身带来的附加功能 定义,以及在HDL模块内部提供所有该模块可能使用的功能定义;例如在一 个解码模块中同时提供多种格式信号的解码功能,即使该解码模块所处的系统 只能处理一种特定格式的信号,但是为了使该解码模块能在其他系统中被重复 使用,需要在模块中为尽可能多的信号格式提供相应的解码功能;
条件编译,即当通过编译HDL模块以获得对应的电子硬件芯片时,按照 设置条件只编译HDL模块文件的一部分,这样就可以在HDL模块中提供多段 HDL代码,每段代码都分别根据一种使用环境的需求定义端口和功能,在编译 时根据使用环境的不同,选择编译相应的HDL代码段。
手动修改,即针对特定使用环境的需求,由设计人员手动修改模块文件中 对应的HDL代码段,以使该模块及其对应的电子硬件芯片能够被应用于此特 定使用环境。
采用上述四种方法虽然可以提高电子硬件芯片及其对应的HDL模块的可 重用性,但是也会带来以下问题冗余端口和冗余功能会导致电子硬件芯片中 包含不必要的冗余逻辑和电路,浪费了最终获得的芯片电路中宝贵的空间资 源;条件编译会使模块代码过于繁瑣,为设计人员阅读和调试代码带来了很大 的困难,并可能因此导致设计中出现潜在的错误;手动修改会耗费设计人员很 大的精力,并且在代码量较多时极易导致设计中出现错误。

发明内容
本发明提供一种电子硬件芯片的获得方法,用于提高电子硬件芯片及对应 的硬件描述语言模块的可重用性,同时减少冗余端口和冗余功能所带来的芯片 电路空间的浪费。
本发明提供的方法包括以下步骤
获得电子硬件芯片的第一硬件描述语言模块文件,所述第一硬件描述语言 模块文件包含所述电子硬件芯片的端口标识信息;
获得包含所述电子硬件芯片在设定环境使用时的端口数量以及各端口定义的配置文件;
解析所述第一硬件描述语言模块文件,将所述端口标识信息替换为配置文 件中描述的各端口定义后获得第二硬件描述语言模块文件;
根据所述第二硬件描述语言模块文件获得所述在:^殳定环境使用的电子硬 件芯片。
本发明还提供一种电子硬件芯片的获得装置,包括以下部分 第一获得模块,用于获得电子硬件芯片的第一硬件描述语言模块文件,所
述第 一硬件描述语言模块文件包含所述电子硬件芯片的端口标识信息和/或功
能的标识信息;
第二获得模块,用于获得所述电子硬件芯片在设定环境使用时的端口和/ 或功能的配置文件,所述配置文件中描述了所述端口标识信息对应的电子硬件 芯片各端口定义,和/或所述功能标识信息对应的芯片功能定义;
解析模块,用于解析所述第一硬件描述语言模块文件,将所述端口标识信 息替换为配置文件中描述的各端口定义、和/或将所述功能标识信息替换为配置 文件中描述的芯片功能定义后获得第二硬件描述语言模块文件;
第三获得模块,用于根据所述第二硬件描述语言模块文件获得所述在设定 环境使用的电子硬件芯片。
根据本发明提出的技术方案,基于一个包含标识信息和替换操作控制信息 的第一硬件描述语言模块文件和一个包含对应一种设定环境的端口和功能实 际定义的配置文件,^使用脚本控制计算机进行解析和替换操作以获得适应所述 设定环境的第二硬件描述语言模块文件,再基于所述第二硬件描述语言模块文 件最终获得对应的电子硬件芯片。所述第二硬件描述语言模块文件中不包含任 何冗余端口或冗余功能代码,避免了对应的电子硬件芯片中空间资源的浪费; 同时,所述第二硬件描述语言模块文件也不包括任何用于条件编译的多余代 码,方便设计人员调试和阅读;最后,所述第二硬件描述语言模块文件由使用 脚本控制的计算机自动生成,针对一种设定环境的需求,设计人员只需要编写
7和修改一个配置文件中的端口和功能的实际定义即可,避免了手动修改模块文 件时耗费大量人力和易于出错的问题,并提高了第一硬件描述语言模块文件的
可重用性。


图1是本发明实施例中脚本控制的计算机、第一Verilog模块、配置文件 及第二 Verilog模块之间的关系图2是本发明实施例中包含标识信息及替换操作控制信息的第一 Verilog 模块的文件结构示意图3是本发明实施例中第二 Verilog模块的文件结构示意图4是本发明实施例中脚本控制的计算机基于第一 Verilog模块以及配置 文件,获得第二 Verilog模块的流程图5是本发明实施例中电子硬件芯片获得装置的结构示意图。
具体实施例方式
本发明实施例以Verilog语言这一具有代表性的石更件描述语言(Hardware Description Language, HDL)为例,提供一种基于第一硬件描述语言模块文件和 一个配置文件,获得满足其他设定环境需求的第二硬件描述语言模块文件,并 最终获得能够应用于其他设定环境中的电子硬件芯片的方法。
用Verilog语言定义一个模块时, 一个Verilog文件(文件扩展名为".v") 即代表一个模块,因此在本发明实施例中为了便于说明和理解,将Verilog语 言编写的Verilog文件统称为"Verilog模块"。 一个典型的Verilog模块可以包 括端口定义和功能定义两部分,并且可以通过编译直l^得到对应的芯片电3各 图。因此,如果一个Verilog模块满足在一种设定环境的要求,那么通过编译 该Verilog模块获得的对应的电子芯片电路以及最终获得的电子芯片实体就能 够在此种设定环境中使用。
本发明提供的基于一个第一 Verilog模块及一个配置文件,获得一个第二Verilog模块的方法中,通过在计算机上执行脚本,由该脚本控制的计算机解析 一个第一 Verilog模块,并解析一个包含满足特定使用环境要求的端口和/或功 能实际定义的配置文件,并由该脚本控制的计算机基于该第一 Verilog模块和 配置文件,向一个第二 Verilog模块文件中替换写入所述端口和/或功能的实际 定义,并拷贝第一 Verilog模块中原有的端口和/或功能定义,从而生成一个满 足设定环境要求的第二 Verilog模块,并进而通过编译该第二 Verilog模块,获 得符合需要的电子硬件芯片。
本发明提供的基于第一 Verilog模块和配置文件生成满足特定使用环境要 求的第二 Verilog模块的实现方法具体为
步骤1 、获得电子硬件芯片的第一 Verilog模块;第一 Verilog模块中包含 标识信息,该标识信息包括代表芯片端口的端口标识4言息以及代表芯片功能的 功能标识信息,用于标出芯片端口和功能定义在第一 Verilog模块中的位置以 及识别这些端口和功能定义;较佳地,第一 Verilog模块中还包含对应标识信 息的替换操作控制信息,该控制信息可以是典型的程序流程控制语句,例如循 环语句和条件判断语句;
下面是第一 Verilog模块中用标识信息标出端口定义的具体例子
在这个端口标识信息中,"^w5"是用特殊字符作为前缀的变量, "—,e—"《"是端口名称的后半部分,前半部分为变量幼w的值;
下面是第一 Verilog模块中用标识信息标出功能定义的具体例子
<formula>formula see original document page 9</formula>
在这段包含功能标识信息的代码中,1/y/ e一cow"r是循环变量,"sw是代
表"we选择结构选项的标识信息,1W; e "是功能标识信息,"S/or"和"^"^ ^" 是循环控制语句;替换搡作控制信息用于提示脚本控制的计算机向第二 Verilog模块中替换 写入端口和功能定义的具体流程和方法,例如连续写入多个并列的端口或功能 定义,或者根据条件选择写入不同的端口或功能定义;例如,可以用以下的控 制信息提示脚本控制的计算机向一个第二 Verilog模块中写入多个并列的端口 定义
脉r ^M一加,f〉, 幼附L^we—r邻
循环开始,生成(更新)索引号; 判断是否符合条件;
替换写入索引号对应的端口定义;
判断结束;
循环结束
包含标识信息及替换操作控制信息的第一 Verilog模块的一种文件结构如 图2所示,其中普通端口定义部分201和普通功能定义部分203是第一 Verilog 模块原有的端口和功能定义,202是端口标识信息和相关的替换操作控制信息, 204是功能标识信息和相关的替换操作控制信息;202和204均用特殊字符前 缀,其形式与代码示例206的形式相似;
步骤2、获得包含电子硬件芯片在设定环境使用时的端口数量、各端口定 义、以及所需的功能定义的配置文件;
该配置文件包含芯片在此种设定环境中使用时所需的端口和功能的实际 定义,并且可以被脚本控制的计算机读取和解析;如果需要包含多个并列的实 际定义,则需要使用某种数据结构,例如数组或列表,来保存多个并列的实际 定义,并且为每个实际定义分配索引号,以便在解析时按照索引号依次提取;
例如,如果一种特定使用环境需要8个端口 w"W/, w"W^
^W, m^》,/p,则对应的配置文件内容可以包4舌
■yeZ /7/WMar〃 worf2 waW3 5p/0 ,7做Wo妒_/
10上述配置文件内容中,第1行是端口定义总数,第2行是端口定义的序号,
第3行是对应S6附这个端口标识信息的端口定义;这样,基于该配置文件内容, 端口标识信息"化z^、 —gwe—re《',通过"^~个与图2中^f^码示例206相似的循环4£ 制结构就可在第二 Verilog模块中被替换为图3中示例306中的8个端口定义;
又例如,如果一种特定使用环境要求第二 Verilog模块及其对应芯片能够 根据条件(例如N的取值)从堆栈(stack )、队列(queue)、优先级队列(priority queue)三种数据结构中选择一种,则对应的配置文件内容可以包括
《e/妙e—cowW 3
犯/1妙e /7/W/V7》"'(y—《wewe/
上述配置文件中,第一行是可选的数据结构类型总数,第二行是选择条件
#的取值,第三行是对应^vpe这个功能标识信息的实际定义;这样,基于该 配置文件内容,通过解析步骤1中功能标识信息的例子,脚本控制的计算机就 可以在第二 Verilog模块中替换写入如下的根据条件选择数据结构的功能定义
<5.- (^ato一欣wC =《we w
步骤3、在计算机上执行脚本,由该脚本控制计算机解析第一 Verilog模块, 并根据第一 Verilog模块中的替换^喿作控制信息,将标识信息替换为配置文件 中描述的实际定义后获得第二 Verilog模块;
图l是脚本控制的计算机、第一 Verilog模块、配置文件及第二 Verilog模 块之间的交互关系,其中箭头的方向为数据流向;如图l所示,脚本控制的计 算机102从第一 Verilog模块101中读取一段内容;如果该段内容是不含特殊 字符的普通内容,则脚本控制的计算机102直接向第二 Verilog模块104中拷 贝该段内容;如果该段内容包含以特殊字符为前缀的标识信息,则脚本控制的 计算机102解析该标识信息,并根据解析结果从配置文件103中查找并读取对应的端口或功能定义,然后向第二 Verilog模块104中替换写入此端口或功能 定义;
步骤4、根据第二 Verilog模块获得适合在设定环境中使用的电子硬件芯 片;通过编译第二 Verilog模块,可以直接获得对应的芯片电路图,并可由此 获得适合设定环境的电子硬件芯片;编译第二 Verilog模块时需使用Verilog编 译器,例如Super FinSim编译器。
图4是上述方法中步骤3的具体流程
步骤S401 、脚本控制的计算机读取第一 Verilog模块;
步骤S402、判断读取的内容是否是使用特殊字符作为前缀的字符串,当读 取的内容不是使用特殊字符作为前缀的字符串时,执行步骤S403,否则执行步 骤S405;
步骤S403、向第二 Verilog模块中拷贝读取的内容;
步骤S404、从第一 Verilog模块中读取下一段内容,当前流程结束;
步骤S405、脚本控制的计算机用正则表达式解析该字符串;
步骤S406、判断该字符串除了包含标识信息以外是否还包含替换操作控制
信息,若是则执行步骤S420,否则执行步骤S410;
步骤S410、脚本控制的计算机进一步读取并解析配置文件;
步骤S411、在配置文件中查找对应此标识信息的端口或功能定义,如果配
置文件中包含对应此标识信息的端口或功能定义,则执行步骤S412,否则执行
步骤S413;
步骤S412、在第二 Verilog模块的相应位置写入此端口或功能定义,执行 步骤S430;
步骤S413、脚本控制的计算机向第二 Verilog模块的相应位置拷贝此标识 信息,执行步骤S430;
步骤S420、脚本控制的计算机进入相应的替换操作控制结构,例如循环 (for)或选择(if-dse);步骤S421、脚本控制的计算机进一步读取并解析配置文件;
步骤S422、在配置文件中查找对应此标识信息的端口或功能定义,如果配
置文件中包含对应此标识信息的端口或功能定义,则执行步骤S423,否则执行
步骤S424;
步骤S423、根据替换操作控制结构的特性向第二 Verilog模块中写入端口 或功能定义,例如,循环结构中基于循环索引连续写入多个端口或功能定义, 选择结构中基于条件判断结果选择写入端口或功能定义;执行步骤S425;
步骤S424、根据替换操作控制结构特性向第二 Verilog模块中拷贝标识信 息,例如,循环结构中基于循环索引连续拷贝多个标识信息,选择结构中基于 条件判断结果选择拷贝标识信息;执行步骤S425;
步骤S425、判断是否应该跳出替换4喿作控制结构,如果不跳出(例如,循 环未结束),则返回步骤S421,否则跳出替换操作控制结构并执行步骤S430;
步骤S430、从第一 Verilog模块中读取下一段内容,当前流程结束。
新生成的第二 Verilog模块的一种文件结构如图3所示,其中普通端口定 义部分301和普通功能定义部分303是第一 Verilog模块中原有的端口和功能 定义,由脚本控制的计算机写入的端口定义302及功能定义304则是为了使第 二 Verilog模块适应特定使用环境要求而新加入的实际定义,其中端口定义302 的形式与代码示例306的形式相似。第二 Verilog模块保留了第一 Verilog模块 的原有端口和功能,同时又根据配置文件的内容加入了满足另 一种使用环境需 求的新端口和新功能的实际定义,因此通过编译第二 Verilog模块所得到的芯 片电路模块,既具备了第一 Verilog模块的全部功能,又能够被应用在另一种 不同的设定环境中。
本发明还提供了 一种控制计算机的控制脚本,该控制脚本可以使用工具命 令语言(Tool Command Language, TCL )或其他脚本语言编写;在此控制脚本 中实现了循环和选择两种控制结构,可以分段读取第一 Verilog模块中的内容, 并用正则表达式解析这些内容和配置文件,根据这些内容中所含的标识信息在配置文件中查找对应的实际定义,以及根据这些内容中所包含的替换操作控制
信息,向第二 Verilog ^t块的相应位置替换写入标识信息所对应的实际定义。 上述控制脚本的具体执行流程与图4中所示的流程类似。
本发明实施例还4是供一种电子硬件芯片的获得装置,如图5所示,该装置 包括
第一获得模块501,用于获得电子硬件芯片的第一 Verilog模块,该第一 Verilog模块包含电子硬件芯片的端口标识信息和/或功能标识信息;
第二获得模块502,用于获得包含该电子硬件芯片在设定环境中使用时所 需的端口和/或功能的配置文件,该配置文件中描述了标识信息对应的电子碩_件 芯片各端口定义,和/或芯片功能定义;
解析模块503,用于解析第一 Verilog模块,将端口标识信息替换为配置文 件中描述的各端口定义、和/或将功能标识信息替换为配置文件中描述的芯片功 能定义后获得第二 Verilog模块;
第三获得模块504,用于根据第二 Verilog模块获得适合在设定环境使用的 电子硬件芯片。
明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1、一种电子硬件芯片的获得方法,其特征在于,包括步骤获得电子硬件芯片的第一硬件描述语言模块文件,所述第一硬件描述语言模块文件包含所述电子硬件芯片的端口标识信息;获得包含所述电子硬件芯片在设定环境使用时的端口数量以及各端口定义的配置文件;解析所述第一硬件描述语言模块文件,将所述端口标识信息替换为配置文件中描述的各端口定义后获得第二硬件描述语言模块文件;根据所述第二硬件描述语言模块文件获得所述在设定环境使用的电子硬件芯片。
2、 如权利要求1所述的方法,其特征在于,所述第一硬件描述语言模块 文件还包含所述电子硬件芯片的功能标识信息;以及解析所述第一硬件描述语言模块文件时,还将所述功能标识信息替换为配 置文件中描述的芯片功能定义后获得第二硬件描述语言;f莫块文件。
3、 如权利要求1或2所述的方法,其特征在于,所述将所述端口标识信 息替换为配置文件中描述的各端口定义具体包括解析所述第一硬件描述语言 模块文件,当解析到所述端口标识信息时,根据端口标识信息在所述配置文件 中查找对应此端口标识信息的各端口定义;所述将所述功能标识信息替换为配置文件中描述的芯片功能定义具体包 括解析所述第一硬件描述语言模块文件,当解析到所述功能标识信息时,根 据功能标识信息在所述配置文件中查找对应的功能定义,并将所述功能标识信 息替换为功能定义。
4、 如权利要求3所述的方法,其特征在于,所述第一硬件描述语言模块 文件还包含,端口标识信息对应的替换操作控制语句描述信息,用于在解析所 述第 一硬件描述语言模块文件过程中,控制所述端口标识信息的替换操作过 程;和/或所述第一硬件描述语言模块文件还包含,功能标识信息对应的替换操作控 制语句描述信息,用于在解析所述第一硬件描述语言模块文件过程中,控制所 述功能标识信息的替换操作过程。
5、 如权利要求1所述的方法,其特征在于,使用脚本对所述第一硬件描 述语言模块文件进行解析,并获得所述第二硬件描述语言模块文件。
6、 一种电子硬件芯片的获得方法,其特征在于,包括步骤 获得电子硬件芯片的第一硬件描述语言模块文件,所述第一硬件描述语言模块文件包含所述电子硬件芯片的功能标识信息;获得包含所述电子硬件芯片在设定环境使用时所具备的功能定义的配置 文件;解析所述第一硬件描述语言;f莫块文件,将所述功能标识信息替换为配置文 件中描述的芯片功能定义后获得第二硬件描述语言模块文件;根据所述第二硬件描述语言模块文件荻得所述在设定环境使用的电子硬 件芯片。
7、 如权利要求6所述的方法,其特征在于,所述将所述功能标识信息替 换为配置文件中描述的芯片功能定义具体包括解析所述第一硬件描述语言模 块文件,当解析到所述功能标识信息时,根据功能标识信息在所述配置文件中 查找对应的功能定义,并将所述功能标识信息替换为功能定义。
8、 如权利要求6或7所述的方法,其特征在于,所述第一硬件描述语言 模块文件还包含,功能标识信息对应的替换操作控制语句描述信息,用于在解 析所述第一硬件描述语言模块文件过程中,控制所述功能标识信息的替换操:作 过程。
9、 如权利要求6所述的方法,其特征在于,使用脚本对所述第一硬件描 述语言模块文件进行解析,并获得所述第二硬件描述语言模块文件。
10、 一种电子硬件芯片的获得装置,其特征在于,包括 第一获得模块,用于获得电子硬件芯片的第一硬件描述语言模块文件,所述第 一硬件描述语言模块文件包含所述电子硬件芯片的端口标识信息和/或功 能标识信息;第二获得模块,用于获得所述电子硬件芯片在设定环境使用时的端口和/ 或功能的配置文件,所述配置文件中描述了所述端口标识信息对应的电子硬件芯片各端口定义,和/或所述功能标识信息对应的芯片功能定义;解析模块,用于解析所述第一硬件描述语言模块文件,将所述端口标识信 息替换为配置文件中描述的各端口定义、和/或将所述功能标识信息替换为配置文件中描述的芯片功能定义后获得第二硬件描述语言模块文件;第三获得模块,用于根据所述第二硬件描述语言模块文件获得所述在设定 环境使用的电子硬件芯片。
全文摘要
本发明涉及一种电子硬件芯片的设计技术,提出了一种电子硬件芯片的获得方法,解决了如何方便快捷地获得能够在设定环境中使用的电子硬件芯片的问题。该方法包括步骤获得电子硬件芯片的第一硬件描述语言模块文件,该第一硬件描述语言模块文件包含电子硬件芯片的端口标识信息;获得包含该电子硬件芯片在设定环境使用时的各端口定义的配置文件;解析第一硬件描述语言模块文件,将其中的端口标识信息替换为配置文件中描述的各端口定义后获得第二硬件描述语言模块文件;根据第二硬件描述语言模块文件获得在设定环境使用的电子硬件芯片。本发明还提出了一种获得装置,包括第一获得模块、第二获得模块、解析模块以及第三获得模块。
文档编号G06F17/50GK101320401SQ200810116180
公开日2008年12月10日 申请日期2008年7月4日 优先权日2008年7月4日
发明者李晓强 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1