FPGA顶层网表的创建方法、装置、计算机设备及介质与流程

文档序号:14249763阅读:378来源:国知局
FPGA顶层网表的创建方法、装置、计算机设备及介质与流程

本发明涉及现场可编程门阵列fpga技术领域,特别是涉及一种fpga顶层网表的创建方法、装置、计算机设备及介质。



背景技术:

fpga(field-programmablegatearray)现场可编程门阵列是在pal(programmablearraylogic,可编程阵列逻辑)、cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路asic领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

fpga的研发分为芯片硬件研发和软件开发工具的研发,芯片硬件研发过程中,涉及到硬件全芯片功能网表的生成以及验证等工作,而软件开发工具的研发包含布局布线以及位流文件生成等过程,软件开发工具的研发前提是需要有正确的软件网表。

由于在传统技术中,软件网表的创建是在硬件设计完成之后定义的,对于硬件设备和软件网表功能一致性难以保证,当软件网表的设计与硬件设备不一致时,问题的发现及调整都比较费时费力,降低了研发效率。



技术实现要素:

本发明实施例提供一种fpga顶层网表的创建方法、装置、计算机设备及介质,可以保证硬件设备和软件网表功能的一致性,从而提高研发效率。

本发明解决上述技术问题所采用的技术方案如下:

根据本发明的一个方面提供的一种fpga顶层网表的创建方法,该方法包括:

根据预先定义的划分标准,将若干个单元电子器件划分为同一模块;

将划分的该模块映射到格点单元;

根据该单元电子器件的实际连线及功能,验证该格点单元中的模块与该若干个单元电子器件的对等性;

当验证的该对等性为完全对等时,将所有该格点单元定义为顶层网表。

在其中的一个实施例中,该将所有该格点单元定义为顶层网表的步骤包括:

定义该顶层网表的表名及每个该格点单元的坐标。

在其中的一个实施例中,在该将若干个单元电子器件划分为同一模块的步骤之后,该方法还包括:

将划分的同一模块通过不同层级的表述分别进行定义;

该将划分的该模块映射到格点单元的步骤包括:

将划分的该模块映射到对应层级下的格点单元;

验证不同层级中该格点单元中的同一模块的对等性;

当不同层级中该格点单元中的同一模块的对等性为完全对等时,分别将每个层级下的该所有格点单元定义为顶层网表。

在其中的一个实施例中,该验证该格点单元中的模块与该若干个单元电子器件的对等性的步骤包括:

按照层级由低到高的顺序,分别验证相邻层级中同一模块的对等性,该不同层级中的最低层级为该单元电子器件所对应的层级。

在其中的一个实施例中,在该分别将每个层级下的该所有格点单元定义为顶层网表的步骤之后,该方法还包括:

验证不同层级中的该顶层网表中的同一模块的对等性。

在其中的一个实施例中,该同一模块中的若干个单元电子器件包括寄存器,还包括与非门或或非门中的至少一种。

根据本发明的另一个方面提供的一种fpga顶层网表的创建装置,该装置包括:

划分模块,用于根据预先定义的划分标准,将若干个单元电子器件划分为同一模块;

映射模块,用于将划分的该模块映射到格点单元;

验证模块,用于根据该单元电子器件的实际连线及功能,验证该格点单元中的模块与该若干个单元电子器件的对等性;

网表定义模块,用于当验证的该对等性为完全对等时,将所有该格点单元定义为顶层网表。

在其中的一个实施例中,该网表定义模块具体用于:

定义该顶层网表的表名及每个该格点单元的坐标。

根据本发明的又一个方面提供的一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现上述fpga顶层网表的创建方法。

根据本发明的再一个方面提供的一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述fpga顶层网表的创建方法中的步骤。

本发明通过将若干个单元电子器件划分为同一模块,再将划分的该模块映射到格点单元,然后根据该单元电子器件的实际连线及功能,验证该格点单元中的模块与该若干个单元电子器件的对等性,当验证的该对等性为完全对等时,最后将所有该格点单元定义为顶层网表,可以保证软件层面的顶层网表与硬件上的电子器件的一致性,减少了后期使用时由于软件网表的设计与硬件设备不一致消耗的调整时间,提高了整体的研发效率。

附图说明

图1为根据本发明的一个实施例的fpga顶层网表的创建方法的流程图;

图2为根据本发明的一个实施例的使用场景流程图;

图3为根据本发明的一个实施例的验证关系示意图;

图4为根据本发明的一个实施例的单元电子器件的布线示意图;

图5为根据本发明的一个实施例的格点单元的示意图;

图6为根据本发明的一个实施例的顶层网表的示意图;

图7为根据本发明的一个实施例的fpga顶层网表的创建装置的示范性结构框图;

图8为根据本发明的一个实施例的计算机设备的内部结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为根据本发明的一个实施例的fpga顶层网表的创建方法的流程图,下面结合图1来详细描述根据本发明的一个实施例的一种fpga顶层网表的创建方法,如图1所示,该方法包括以下步骤s101至s104。

s101、根据预先定义的划分标准,将若干个单元电子器件划分为同一模块。

根据本实施例的一个示例,该同一模块中的若干个单元电子器件包括寄存器,还包括与非门或或非门中的至少一种。例如。一个模块可以包含十个与非门及一个寄存器,也可以包括十个或非门及一个寄存器。

根据本实施例的一个示例,预先定义的划分的标准以提高各个电子器件的利用率作为目的,具体需要将哪些单元电子器件划分到同一模块可以根据用户的实际需求来设计,此处不做限制。

s102、将划分的该模块映射到格点单元。

s103、根据该单元电子器件的实际连线及功能,验证该格点单元中的模块与该若干个单元电子器件的对等性。

s104、当验证的该对等性为完全对等时,将所有该格点单元定义为顶层网表。

在其中的一个实施例中,上述步骤s104中该将所有该格点单元定义为顶层网表的步骤包括:

定义该顶层网表的表名及每个该格点单元的坐标。

在其中的一个实施例中,在该将若干个单元电子器件划分为同一模块的步骤之后,该方法还包括:

将划分的同一模块通过不同层级的表述分别进行定义;

该将划分的该模块映射到格点单元的步骤包括:

将划分的该模块映射到对应层级下的格点单元;

验证不同层级中该格点单元中的同一模块的对等性;

当不同层级中该格点单元中的同一模块的对等性为完全对等时,分别将每个层级下的该所有格点单元定义为顶层网表。

在其中的一个实施例中,上述步骤s103中验证该格点单元中的模块与该若干个单元电子器件的对等性的步骤包括:

按照层级由低到高的顺序,分别验证相邻层级中同一模块的对等性,该不同层级中的最低层级为该单元电子器件所对应的层级。

在其中的一个实施例中,在上述步骤s104的步骤之后,该方法还包括:

验证不同层级中的该顶层网表中的同一模块的对等性。

根据本实施例的一个示例,上述步骤s101~s104的标号并不用于限定本实施例中各个步骤的先后顺序,各个步骤的编号只是为了使得描述各个步骤时可以通用引用该步骤的标号进行便捷的指代,只要各个步骤执行的顺序不影响本实施例的逻辑即表示在本申请请求保护的范围之内。

为实现本实施例中的方法采用的一种技术方案如下:

将fpga的架构划分成以下各种层次的器件,以层次化的方式组建而成。从底层到顶层器件的种类包括:最底层逻辑单元,命名为primdevice;基本逻辑单元,命名为griddevice;一种特殊的基本逻辑单元,和普通的griddevice不同,它不包含用户可编程资源,主要用来存放配置点,命名为cramdevice;介于基本逻辑单元和顶层结构模型之间的一个层次,由若干个griddevice以及cramdevice组成,命名为tiledevice;顶层结构模型,命名为architecturedevice,只包含tiledevice及其之间的互联。

对于各层次器件的研发,如图3所示,对应图3中左侧的设备,根据抽象层次从顶到底包括了:黄金功能模型(goldenmodel:gbm),行为级模型(behavioralmodel:bma),电路晶体管级实现,以及版图物理级实现,图3左侧中的设备从上之下与这四个层次分别对应。

由于架构逻辑网表的复杂性,搭建过程不但非常繁琐,而且很容易出错,于是构建格点系统(gridsystem)来规范各器件的排布。所谓的格点系统就是在器件的层次,利用架构的规整性,均匀的划分2-d的逻辑格点系统,各种器件都被分配放置在独一无二逻辑格点上。

规整的器件排布加上器件之间的连接,即构成了逻辑网表全部内容。

单元建模可以通过verilog语言来实现,而顶层结构级的建模由自定义语言实现,具有这二者之后,硬件研发人员可以完成硬件逻辑网表的研发。形成了硬件网表之后,再借助相应的编译工具,刨除非用户可编程资源,保留用户可编程资源,将硬件网表解析成软件网表。

图2为根据本发明的一个实施例的使用场景流程图,图2示出了fpga硬件网表研发流程,其研发流程以下步骤1至步骤7:

1.制定设计规范:系统架构工程师根据模块设计规格,以及fpga软件设计流程提供的软件模型设计规范,制定符合本项目中硬件内部使用的模型设计规范。

2.模块设计:根据模块设计规格,以及软硬件共同讨论决定的模型设计规范文件,系统架构工程师和模块设计工程师共同进行模块设计,具体包括了各层次器件各抽象层次的模型设计。

3.模块验证:验证工程师根据模块设计规格的描述,对模型文件进行功能验证,对模型文件和设计规格不一致的地方,和模块设计人员进行沟通反馈,并在bug系统发出bug,模型设计人员进行必要的修改调整,直至所有验证通过,最终形成模型验证总结文件。

4.顶层设计:系统架构工程师根据全芯片设计规格,利用自定义语言,将tiledevice放置在定义好的格点系统上,并进行互连设计,形成最终的全芯片顶层网表。

5.验证设计:验证工程师根据电路模块规格制定验证计划,规划验证用例,并通过项目内评审。

6.顶层验证:验证工程师根据顶层设计规格,对verilog顶层网表进行功能验证。

7.数据传输和检查:研发工程师将通过验证的模块模型文件以及顶层模型设计文件,经过基本的语法检查后,传输到软件研发系统。

图3为根据本发明的一个实施例的验证关系示意图,图3示出了涉及到个各个功能层次的器件研发方式,以及各个抽象层次模型的验证。

器件命名缩写如下:

1、griddevice的缩写为gd,对应图3中的硬件设备;

2、tiledevice的缩写为td,对应图3中的格点单元;

3、architecturedevice的缩写为ad,对应图3中的顶层网表,也称顶层结构模型。

验证说明:

1.单向箭头表示子集的验证。箭头端是子集。

2.双向箭头表示等同性验证,两端的功能或者网表结构必须等同。

具体的验证以'v'来标示。比如,在gd之间的验证,标示为gdv_。以此类推,tdv_,adv_。

3.gdv_12以动态仿真来验证gd_2的正确性,gdv_23以形式验证来验证gd_2与gd_3是等价的,gdv_34以版图vs电路(lvs:layoutvsschematic)来验证gd_3与gd_4是等价的。

4.tdv_21是单向的验证。确保td_1的连接关系依然存在于td_2,tdv_23是双向的验证,用形式验证方式保证二者功能一致性,tdv_34是双向的lvs。

5.adv_21是单向的验证。确保ad_1的连接关系依然存在于ad_2,adv_23是双向的验证,用形式验证方式保证二者功能一致性,adv_34是双向的lvs。

图4为根据本发明的一个实施例的单元电子器件的布线示意图,示出了各个单元电子器件的实际连接关系。

图5为根据本发明的一个实施例的格点单元的示意图,该格点单元由若干个普通的基本逻辑单元(griddevice),特殊的基本逻辑单元(cramdevice)以及各自之间的互连组成。cramdevice主要用来存储配置点资源,其它基本逻辑单元(griddevice)为用户可用的可编程资源。格点单元(tiledevice)为硬件模块化所做的一个层次,为一个虚拟的层次,便于位流文件的生成。

图6为根据本发明的一个实施例的顶层网表的示意图,如图6所示,在硬件网表中,由若干个格点单元及其之间的互连组成,在顶层结构模型层次,格点单元在格点系统的规范下,呈现出2d排布。编译工具在解析硬件网表时,会自动去掉格点单元层次,提取可编程信息,生成软件网表。因此,软件网表的顶层结构模型,由若干个用户可编程的griddevice及其之间的互连组成。

格点单元和顶层网表都有自己的格点系统。格点单元和顶层结构模型(architecturedevice)处于不同的层次,虽然他们分别定义各自独立的,但是两个格点系统必须保证是完全重合的,这样就可以保证顶层结构模型下,格点单元和基本逻辑单元(griddevice)完全重合,不会存在偏移的情况,减少不必要的操作,减少人为理解的障碍。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

本实施例中软件层面的顶层网表是基于硬件设备自动解析而来,并借助特殊的器件建模方法,通过自定义的语言实现的顶层结构级的连接以及相应的编译工具,极大的实现了自动化,剔除人工因素,因此可保证软件网表和硬件网表的一致性。同时,软硬件也可以同时进行研发,所有的版本更新可以统一进行管理,减少了版本上的沟通成本,加快了研发效率。

图7为根据本发明的一个实施例的fpga顶层网表的创建装置的示范性结构框图,下面结合图7来详细描述根据本发明的一个实施例的fpga顶层网表的创建装置,如图7所示,该fpga顶层网表的创建装置100包括:划分模块11、映射模块12、验证模块13及网表定义模块14。

划分模块11,用于根据预先定义的划分标准,将若干个单元电子器件划分为同一模块。

根据本实施例的一个示例,该同一模块中的若干个单元电子器件包括寄存器,还包括与非门或或非门中的至少一种。例如。一个模块可以包含十个与非门及一个寄存器,也可以包括十个或非门及一个寄存器。

根据本实施例的一个示例,预先定义的划分的标准以提高各个电子器件的利用率作为目的,具体需要将哪些单元电子器件划分到同一模块可以根据用户的实际需求来设计,此处不做限制。

映射模块12,用于将划分的该模块映射到格点单元。

验证模块13,用于根据该单元电子器件的实际连线及功能,验证该格点单元中的模块与该若干个单元电子器件的对等性。

网表定义模块14,用于当验证的该对等性为完全对等时,将所有该格点单元定义为顶层网表。

在其中的一个实施例中,该网表定义模块14具体用于:

定义该顶层网表的表名及每个该格点单元的坐标。

在其中的一个实施例中,该装置还包括:

层级定义模块,用于将划分的同一模块通过不同层级的表述分别进行定义;

该映射模块12还用于将划分的该模块映射到对应层级下的格点单元;

该验证模块13还用于验证不同层级中该格点单元中的同一模块的对等性;

网表定义模块14还用于当不同层级中该格点单元中的同一模块的对等性为完全对等时,分别将每个层级下的该所有格点单元定义为顶层网表。

在其中的一个实施例中,该验证模块13具体用于按照层级由低到高的顺序,分别验证相邻层级中同一模块的对等性,该不同层级中的最低层级为该单元电子器件所对应的层级。

在其中的一个实施例中,该验证模块13还用于验证不同层级中的该顶层网表中的同一模块的对等性。

在其中的一个实施例中,上述同一模块中的若干个单元电子器件包括寄存器,还包括与非门或或非门中的至少一种。

需要说明的是,上述装置实施例与方法实施例属于同一构思,其具体实现过程详见方法实施例,且方法实施例中的技术特征在装置实施例中均对应适用,这里不再赘述。

根据本实施例提供的一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现上述fpga顶层网表的创建方法。

图8为一个实施例中计算机设备的内部结构示意图,该计算机设备可以为服务器。参照图8,该计算机设备包括通过系统总线连接的处理器、存储器、输入装置、显示屏和网络接口。其中,该存储器包括非易失性存储介质和内存储器,该计算机设备的非易失性存储介质可存储操作系统和计算机可读指令,该计算机可读指令被执行时,可使得处理器执行本申请各实施例的一种fpga顶层网表的创建方法,该方法的具体实现过程可参考图1至6各实施例的具体内容,在此不再赘述。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该内存储器中可储存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种fpga顶层网表的创建方法。计算机设备的输入装置用于各个参数的输入,计算机设备的显示屏用于进行显示,计算机设备的网络接口用于进行网络通信。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

根据本发明实施例提供的一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述fpga顶层网表的创建方法中的步骤。

根据本实施例的一个示例,上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于一计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。该存储介质包括但不限于磁碟、优盘、光盘、只读存储记忆体(read-onlymemory,rom)等。

本实施例提供的一种fpga顶层网表的创建方法、装置、计算机设备及介质,通过将若干个单元电子器件划分为同一模块,再将划分的该模块映射到格点单元,然后根据该单元电子器件的实际连线及功能,验证该格点单元中的模块与该若干个单元电子器件的对等性,当验证的该对等性为完全对等时,最后将所有该格点单元定义为顶层网表,可以保证软件层面的顶层网表与硬件上的电子器件的一致性,减少了后期使用时由于软件网表的设计与硬件设备不一致消耗的调整时间,提高了整体的研发效率。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1