一种现场可编程门阵列网表生成方法及装置的制造方法
【技术领域】
[0001]本发明涉及FPGA(现场可编程门阵列)领域,尤其涉及一种现场可编程门阵列网表生成方法及装置。
【背景技术】
[0002]随着信息与数据科技的发展需求,可编程芯片,特别是现场可编程门阵列凭借其编程灵活、系统稳定、资源丰富、集成度高等优点,其应用领域已经从原来通信领域扩展到航天、消费电子、工业控制、测试测量等广泛的领域,并且还有不断扩大的趋势。另一方面,随着工艺节点的不断攀升,使得对于可编程电路的系统集成度、可编程资源以及器件规模提出了更高的要求。现场可编程门阵列网表的生成是重要部分,现有的生成方案,需要处理大量数据,时间长、效率低,且生产的网表的正确性不高。
【发明内容】
[0003]本发明提供现场可编程门阵列网表生成方法及装置,解决现有现场可编程门阵列的网表生成方案不够完善的问题。
[0004]为解决上述技术问题,本发明采用以下技术方案:
[0005]—种现场可编程门阵列网表生成方法,包括:
[0006]生成至少一个实例化名,并建立实例化名与现场可编程门阵列中各个电路逻辑单元名之间的一一对应关系,以及生成现场可编程门阵列中各种电路逻辑单元的属性信息,所述属性信息包括硬件描述信息和连接关系信息;
[0007]根据所述实例化名与现场可编程门阵列中各个电路逻辑单元名之间的一一对应关系,以及各种电路逻辑单元的属性信息,生成现场可编程门阵列网表;所述网表包括各个实例化名、各种电路逻辑单元的属性信息,以及实例化名与电路逻辑单元的属性信息之间的对应关系。
[0008]在一些实施例中,所述生成至少一个实例化名具体为:使用脚本生成至少一个实例化名。
[0009]在一些实施例中,所述建立实例化名与现场可编程门阵列中各个电路逻辑单元名之间的一一对应关系具体为:使用哈希结构建立实例化名与现场可编程门阵列中各个电路逻辑单元名之间的一一对应关系。
[0010]在一些实施例中,所述生成现场可编程门阵列中各种电路逻辑单元的属性信息具体为:
[0011]使用预设的硬件描述信息和哈希结构,编写现场可编程门阵列中各种电路逻辑单元的硬件描述信息以及连接关系文件,所述连接关系文件中包括所述连接关系信息。
[0012]在一些实施例中,所述硬件描述信息包括:电路逻辑单元名、端口数量、端口名、端口类型中的至少一种。
[0013]在一些实施例中,上述任一项的现场可编程门阵列网表生成方法还包括:检查所述网表的正确性和/或电源地连接合法性。
[0014]—种现场可编程门阵列网表生成装置,包括:
[0015]实例化名生成单元,用于生成至少一个实例化名;
[0016]关系建立单元,用于建立实例化名与现场可编程门阵列中各个电路逻辑单元名之间的对应关系;
[0017]属性信息生成单元,用于生成现场可编程门阵列中各种电路逻辑单元的属性信息,所述属性信息包括硬件描述信息和连接关系信息;
[0018]网表生成单元,用于根据所述实例化名与现场可编程门阵列中各个电路逻辑单元名之间的一一对应关系,以及各种电路逻辑单元的属性信息,生成现场可编程门阵列网表;所述网表包括各个实例化名、各种电路逻辑单元的属性信息,以及实例化名与电路逻辑单元的属性信息之间的对应关系。
[0019]在一些实施例中,所述实例化名生成单元为脚本。
[0020]在一些实施例中,所述关系建立单元和/或属性信息生成单元为哈希结构生成单
J L ο
[0021]在一些实施例中,上述任一项所述的现场可编程门阵列网表生成装置,还包括网表检查单元,用于检查所述网表的正确性和/或电源地连接合法性。
[0022]本发明提出的生产方法及装置,只需要设计者提供现场可编程门阵列中各种电路逻辑单元的属性信息,所述属性信息包括硬件描述信息和连接关系信息,即可进行全芯片网表生成,无需等待设计部完成电路设计,可以与电路设计工作并行,最大程度上缩短顶层网表产生的时间,将大大节省千万门级FPGA网表生成时间,缩短FPGA芯片研发周期。非常适用于超大规模可编程集成电路设计领域。
【附图说明】
[0023]图1为本发明一实施例提供的现场可编程门阵列网表生成方法的流程图;
[0024]图2为本发明另一实施例提供的现场可编程门阵列网表生成方法的流程图;
[0025]图3为本发明一实施例提供的连接关系文件的示意图;
[0026]图4为本发明一实施例提供的现场可编程门阵列网表生成装置的示意图。
【具体实施方式】
[0027]本发明中,电路逻辑单元指的是FPGA中的各个功能电路模块,功能电路模块由实现一个或多个功能的电路组成。
[0028]下面通过具体实施例对本发明的构思进一步详细说明。
[0029]如图1所示,为本发明一实施例提供的现场可编程门阵列网表生成方法的流程图,主要包括以下步骤:
[0030]S101、生成至少一个实例化名,并建立实例化名与现场可编程门阵列中各个电路逻辑单元名之间的一一对应关系,以及生成现场可编程门阵列中各种电路逻辑单元的属性信息,所述属性信息包括硬件描述信息和连接关系信息。
[0031]优选的,可以使用脚本生成至少一个实例化名。具体的,根据现场可编程门阵列中电路逻辑单元的种类数量,使用编程语言生成与之一一对应的实例化名,一个实例化名对应一个电路逻辑单元名,同一种电路逻辑单元共一个电路逻辑单元名。
[0032]优选的,可以使用哈希结构建立实例化名与现场可编程门阵列中各个电路逻辑单元名之间的--对应关系,并保存。
[0033]优选的,使用预设的硬件描述信息编写现场可编程门阵列中各种电路逻辑单元的硬件描述信息以及连接关系文件。预设的硬件描述信息包括但不局限于verilog。
[0034]硬件描述信息包括:电路逻辑单元名、端口数量、端口名、端口类型中的至少一种。端口类型包括:输入、输出、双向inout。
[0035]连接关系文件中包括上述连接关系信息。连接关系信息指的是,对应电路逻辑单元中各端口的连接关系信息,包括但不局限于:对应电路逻辑单元中的各本端口名、与本端口电性连接的其他端口名,以及两者对应关系。
[0036]由于FPGA中,属于同一种类型的电路逻辑单元通常数量极大,如果对各个电路逻辑单元,仅生成其属性信息,则数据处理量大,且对存储空间造成负担,因此本步骤中,无需生成各个电路逻辑单元的属性信息,而仅需生成各种电路逻辑单元的属性信息,在步骤S102生成网表的过程中,可以通过脚本反复调用各种电路逻辑单元的属性信息,进而可以产生千万门级的网表。
[0037]S102、根据所述实例化名与现场可编程门阵列中各个电路逻辑单元名之间的一一对应关系,以及各种电路逻辑单元的属性信息,生成现场可编程门阵列网表。
[0038]所述网表包括各个实例化名、各个电路逻辑单元的属性信息,以及实例化名与电路逻辑单元的属性信息之间的对应关系。
[0039]在一些实施例中,在步骤102之后,还可以包括:
[0040]S103、检查所述网表的正确性和/或电源地连接合法性。
[0041]其中,检查网表的正确性可以具体包括:从网表中抽取每一个实例化名和每个电路逻辑单元的对应关系,检查电路逻辑单元的端口和网表实例化名的端口的一致性。
[0042]图2为本发明另一实施例提供的FPGA网表生成方法的流程图,主要包括以下步骤:
[0043]S201、使用脚本生成整个FPGA芯片中所有实例化名,如inst_A、inst_B,对inst_A的解释:FPGA包含A类型电路逻辑单元,使用A类型电路逻辑单元不只一次,每一次给个名字,这里丨仙匕六指的就是某一次给的名。并使用哈希结构建立和存储每一个实例化与FPGA中各个电路逻辑单元名(module_name)之间的--对应关系,如:
[0044]$hash{inst_A} {module_name} =A,
[0045]$hash{ inst_b) {module_name} =B0
[0046]该哈希结构描述实例化名inst_A对应module为A,实例化名inst_b对应module为B;
[0047]S202、使用veri log硬件描述信息和哈希结构,为FPGA中每种类型的电路逻辑单元编写相应的硬件描述信息,以及编写每种类型电路逻辑单元的端口连接关系文件。
[0048]假设A类型的电路逻辑单元,存在端口 porta和portb,除此之外存在电源vcc和vss。硬件描述信息和连接关系信息具体可以为:
[0049]$hash{A}{porta} = input;
[0050]$hash{A}{portb} = input;
[0051]$hash{A} {vcc} =3v3 ;
[0052]$hash{A} {vss} =g