CN111414725A - 一种针对fpga可动态扩展的软件布线结构建模方法和装置 - Google Patents

一种针对fpga可动态扩展的软件布线结构建模方法和装置 Download PDF

Info

Publication number
CN111414725A
CN111414725A CN202010176545.3A CN202010176545A CN111414725A CN 111414725 A CN111414725 A CN 111414725A CN 202010176545 A CN202010176545 A CN 202010176545A CN 111414725 A CN111414725 A CN 111414725A
Authority
CN
China
Prior art keywords
information
tile
connection
module
fpga
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010176545.3A
Other languages
English (en)
Other versions
CN111414725B (zh
Inventor
王鑫楠
刘洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ehiway Microelectronic Technology Suzhou Co ltd
Original Assignee
Ehiway Microelectronic Technology Suzhou Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ehiway Microelectronic Technology Suzhou Co ltd filed Critical Ehiway Microelectronic Technology Suzhou Co ltd
Priority to CN202010176545.3A priority Critical patent/CN111414725B/zh
Publication of CN111414725A publication Critical patent/CN111414725A/zh
Application granted granted Critical
Publication of CN111414725B publication Critical patent/CN111414725B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

一种针对FPGA可动态扩展的软件布线结构建模方法和装置,其有效地解决了当FPGA器件规模扩大时其结构信息占用软件内存过大的问题,同时省去了依据排布信息“拼接”产生FPGA整体布线资源图的时间,提高了结构建模的性能。方法包括:(1)建立FPGA系列Series信息;(2)建立FPGA器件Device信息。

Description

一种针对FPGA可动态扩展的软件布线结构建模方法和装置
技术领域
本发明涉及可编程逻辑器件的软件设计的技术领域,尤其涉及一种针对FPGA可动态扩展的软件布线结构建模方法,以及一种针对FPGA可动态扩展的软件布线结构建模装置。
背景技术
目前,全球FPGA(Field-Programmable Gate Array,现场可编程门阵列)的市场和技术领域都处于被美国公司垄断的状态,国内FPGA厂商大多处于艰难发展阶段,市场份额低,基本分布在中低端市场,技术水平也与国外厂家有很大差距,并且少有自主研发,大多是逆向工程的产物,今年爆发的中美贸易战以及中兴事件让我们更加看清了在核心技术方面受制于人的巨大隐患。近年来,一方面国家及各地政府对集成电路产业尤其FPGA产业大力支持,对国产芯片的投入也有目共睹。另一方面,本土的AI、大数据、物联网、无人驾驶在内的新兴行业的快速发展对极具灵活性、可重构的FPGA产品将有很大的需求,构成庞大的增量市场,因此对FPGA厂商确实是一个历史性的机遇。
对于FPGA而言,制约其发展的因素有成本、功耗以及软件开发工具等,其中软件工具的作用举足轻重,软件工具的研发水平决定了所支持的硬件最大规模以及性能所能达到的高度,一定程度上决定了FPGA的发展水平。FPGA的软件布线结构建模作为软件流程的开端,其数据架构的好坏一方面也决定了软件工具的后续流程的访问性能。国内部分FPGA厂商经过不断尝试,目前已经具有自主知识产权的大规模FPGA开发软件,接下来将致力于更大规模的器件,力图进一步突破,其中对FPGA软件布线结构的性能优化是必不可少的一环。国内企业已经意识到软件工具自主化的重要意义,并逐步加大研发投入力度。
发明内容
为克服现有技术的缺陷,本发明要解决的技术问题是提供了一种针对FPGA可动态扩展的软件布线结构建模方法,其有效地解决了当FPGA器件规模扩大时其结构信息占用软件内存过大的问题,同时省去了依据排布信息“拼接”产生FPGA整体布线资源图的时间,提高了结构建模的性能。
本发明的技术方案是:这种针对FPGA可动态扩展的软件布线结构建模方法,其包括以下步骤:
(1)建立FPGA系列Series信息,Series信息包含FPGA芯片所能调用的全部基本模块Tile的信息集合,建立Series信息等同于构建一个Tile库信息,以便通过Tile名在Tile库中搜索得到对应的Tile对象信息;
(2)建立FPGA器件Device信息,器件都有从属的系列属性,在系列信息确定的前提下,选择器件所属系列,使用系列下基本模块集合信息创建器件数据;提供定制FPGA器件的排布信息来建立定制器件的结构信息,排布信息包括芯片规模以及每个坐标位置下放置的Tile的类型信息。
本发明通过建立系列信息、建立FPGA器件信息,将构成FPGA器件的组件提取为基本模块的集合,用于存储FPGA的各个基本模块的内部结构以及基本模块之间互连信息,作为布线搜索时动态扩展产生布线路径的依据,也就是说并不需要产生描述整个FPGA器件的布线结构的布线资源图(Routing Resource Graph,RRG)对应的有向图,有效地解决了当FPGA器件规模扩大时其结构信息占用软件内存过大的问题,同时省去了依据排布信息“拼接”产生FPGA整体布线资源图的时间,提高了结构建模的性能。
优选地,所述步骤(1)包括以下分步骤:
(1.1)提取Tile内部组件所映射的布线资源图中对应有向图的有效点集合;
(1.2)建立Tile布线结构内部有效点的连接信息,将Tile内部有效点的连接信息划分内部连接和外部连接两个方面,内部连接指有效点与所属Tile结构内部其他有效点的连接,外部连接指有效点与所属Tile之外的其他Tile的有效点的连接。
优选地,所述步骤(1.1)中,由对应的硬件设计人员分别提供的Tile的层次化的verilog格式网表文件作为输入文件,每个Tile对应一个verilog格式网表文件来描述Tile的内部硬件结构;采用iverilog开源程序进行解析,解析得到Tile对象内部所有模块与模块调用实例的层次化分布的结果信息,该结果信息是每个Tile包含一个顶层模块以及顶层模块下的调用模块的实例信息,而每个调用模块实例又包含模块定义信息以及模块内部实例调用信息,解析直至得到最底层的模块定义以及实例信息。
优选地,所述步骤(1.1)中,提取Tile内部有效点集合借助arc_guide.xml辅助建模文件,文件依据Tile内部模块的功能性对所有模块定义一个布线属性标签,并且定义每个模块需要建立有效点列表信息,其中包含每个有效点的类型及名字信息,将所有Tile内部模块属性定义全部存放在arc_guide.xml文件中,文件从属于当前系列。
优选地,所述步骤(1.1)中,通过iverilog开源库解析得到Tile内部模块和调用信息以及通过解析arc_guide文件得到Tile内部各个模块的布线属性标签以及有效点定义列表信息后,提取Tile内部全部有效点集合信息:从Tile顶层模块的调用模块实例开始遍历,分别取得每个调用模块的标签属性,依据标签属性判断是继续遍历模块实例内部调用的实例还是直接获取实例模块在arc_guide文件中定义的有效点信息并将有效点集合加入Tile的有效点集合信息中,如果是继续遍历,对调用实例采取相同的操作,在arc_guide信息中搜索模块对应的有效点集合信息,并同样加入Tile的有效点集合信息中,直至Tile的顶层模块调用实例全部遍历完成,获得Tile全部有效点集合信息。
优选地,所述步骤(1.2)中,建立Tile有效点的内部连接信息来源于有效点所属Tile的硬件结构描述文件,其为verilog文件,通过iverilog开源库解析除了得到Tile顶层模块以及调用模块实例信息外,同时得到当前Tile内部的线网Wire集合以及调用实例的端口连接信号信息,将之转化为调用实例之间的连接关系,进而转化为调用实例对应的有效点之间连接关系。
优选地,所述步骤(1.2)中,Tile有效点的外部连接信息为描述Tile之间的连接信息的一组输入文件,采用一组xml格式、以Tile名命名的一组输入文件,每个文件描述当前Tile的与布线相关的输出端口与当前系列下其他Tile的输入端口之间连接关系,每组连接关系包含连接Tile的类型信息、距离连接Tile的相对坐标信息、连接输入端口名信息以及端口宽度信息;解析文件得到当前系列下的每个Tile对象的文件内定义的输出端口的一组连接信息,依据这些连接信息,得到描述系列下当前Tile内部有效点与其他Tile内部有效点的连接信息,连接包括距离连接有效点所属Tile的相对坐标信息、连接有效点所属Tile类型信息以及连接有效点在所属Tile的有效点索引信息,以上构成了有效点的外部连接信息。
优选地,所述步骤(2)中,采用xml格式描述器件排布信息,文件名为arrangement.xml,解析arrangement.xml文件得到每个坐标下的Tile类型,依据Tile类型搜索系列信息中的Tile库信息得到对应的Tile对象,建立坐标和Tile对象的映射关系;当布线搜索到芯片的任意一个坐标位置,根据该映射关系得到该坐标下的Tile对象,再利用布线搜索中的端口或者实例信息定位到Tile对象的有效点对象,取有效点对象中存储的内部连接及外部连接信息,通过内部连接信息向当前有效点所属Tile对象内部进行路径搜索,该路径搜索是当前坐标位置的内部路径的搜索;通过外部连接信息向当前有效点所属Tile对象除外的Tile对象内的有效点进行路径搜索,该路径搜索是当前坐标位置之外的外部路径的扩展;以上构成可动态扩展的布线结构建模。
还提供了一种针对FPGA可动态扩展的软件布线结构建模装置,其包括:
FPGA系列信息建立模块,Series信息包含FPGA芯片所能调用的全部基本模块Tile的信息集合,建立Series信息等同于构建一个Tile库信息,以便通过Tile名在Tile库中搜索得到对应的Tile对象信息;
FPGA器件信息建立模块,器件都有从属的系列属性,在系列信息确定的前提下,选择器件所属系列,使用系列下基本模块集合信息创建器件数据;提供定制FPGA器件的排布信息来建立定制器件的结构信息,排布信息包括芯片规模以及每个坐标位置下放置的Tile的类型信息。
附图说明
图1为本发明的描述基本模块硬件结构的verilog格式输入文件示意图。
图2为本发明的在建立系列信息过程中提取Tile内部有效点所需辅助文件——arc_guide.xml输入文件格式示意图。
图3为本发明在创建基本模块的有效点集合示意图。
图4为本发明建立基本模块有效点内部连接信息示意图。
图5为本发明建立基本模块有效点外部连接信息示意图。
图6为本发明的描述器件排布信息文件示意图。
图7为根据本发明的针对FPGA可动态扩展的软件布线结构建模方法的流程图。
图8为根据本发明的针对FPGA可动态扩展的软件布线结构建模装置的结构示意图。
具体实施方式
如图7所示,这种针对FPGA可动态扩展的软件布线结构建模方法,其包括以下步骤:
(1)建立FPGA系列Series信息,Series信息包含FPGA芯片所能调用的全部基本模块Tile的信息集合,建立Series信息等同于构建一个Tile库信息,以便通过Tile名在Tile库中搜索得到对应的Tile对象信息;
(2)建立FPGA器件Device信息,器件都有从属的系列属性,在系列信息确定的前提下,选择器件所属系列,使用系列下基本模块集合信息创建器件数据;提供定制FPGA器件的排布信息来建立定制器件的结构信息,排布信息包括芯片规模以及每个坐标位置下放置的Tile的类型信息。
本发明通过建立系列信息、建立FPGA器件信息,将构成FPGA器件的组件提取为基本模块的集合,用于存储FPGA的各个基本模块的内部结构以及基本模块之间互连信息,作为布线搜索时动态扩展产生布线路径的依据,也就是说并不需要产生描述整个FPGA器件的布线结构的布线资源图(Routing Resource Graph,RRG)对应的有向图,有效地解决了当FPGA器件规模扩大时其结构信息占用软件内存过大的问题,同时省去了依据排布信息“拼接”产生FPGA整体布线资源图的时间,提高了结构建模的性能。
优选地,所述步骤(1)中,建立每个Tile数据信息可拆分为两个过程,分别为提取Tile内部组件所映射的布线资源图中对应有向图的有效点集合和建立有效点集合的连接信息过程,具体如下:
(1)提取基本模块(Tile)布线结构内部有效点集合
当前主流的FPGA芯片结构都是由重复的Tile组合拼接而成,所以硬件设计方面基本也是以Tile为单位交由不同的硬件设计人员负责,本发明选择由对应的硬件设计人员分别提供的Tile的层次化的verilog格式网表文件作为输入文件,每个Tile对应一个verilog格式网表文件描述Tile的内部硬件结构。verilog语言可以说是世界上最流行的硬件描述语言,有很多开源程序提供解析方法,本发明采用iverilog开源程序进行解析,由于Tile采用层次化的网表文件进行描述,同样可以解析得到Tile对象内部所有模块与模块调用实例的层次化分布的结果信息,即每个Tile包含一个顶层模块以及顶层模块下的调用模块的实例信息,同理,每个调用模块实例又包含模块定义信息以及模块内部实例调用信息,直至最底层的模块定义以及实例信息。
提取Tile内部有效点集合仍需要借助另一个外部输入文件——arc_guide.xml辅助建模文件,文件依据Tile内部模块的功能性对所有模块定义一个布线属性标签,并且定义每个模块需要建立有效点列表信息,其中包含每个有效点的类型及名字信息,为减少文件维护的数量将所有Tile内部模块属性定义全部存放在arc_guide.xml文件中,文件从属于当前系列。需要说明的是arc_guide文件内容需要由硬件设计人员和软件建模人员共同完成,由硬件人员提供各个模块功能性以及后续流程是否需要布线、是否需要配置等特点对各个模块的有效点集合信息进行定义,软件建模人员依据各个模块的功能性以及在verilog网表文件中所处层次对模块布线属性进行定义方便后续建模使用。
通过iverilog开源库解析得到Tile内部模块和调用信息以及通过解析arc_guide文件得到Tile内部各个模块的布线属性标签以及有效点定义列表信息后,即可以提取Tile内部全部有效点集合信息了。首先,从Tile顶层模块的调用模块实例开始遍历,分别取得每个调用模块的标签属性,依据标签属性判断是继续遍历模块实例内部调用的实例还是直接获取实例模块在arc_guide文件中定义的有效点信息并将有效点集合加入Tile的有效点集合信息中,如果是继续遍历,同理,对调用实例采取相同的操作,在arc_guide信息中搜索模块对应的有效点集合信息,并同样加入Tile的有效点集合信息中,直至Tile的顶层模块调用实例全部遍历完成则可以获得Tile全部有效点集合信息。
(2)建立基本模块(Tile)布线结构内部有效点的连接信息
将Tile内部有效点的连接信息划分内部连接和外部连接两个方面,内部连接指有效点与所属Tile结构内部其他有效点的连接,外部连接指有效点与所属Tile之外的其他Tile的有效点的连接。
建立Tile有效点的内部连接信息来源于有效点所属Tile的硬件结构描述文件(verilog文件),通过iverilog开源库解析除了得到Tile顶层模块以及调用模块实例信息外,同时得到当前Tile内部的线网(Wire)集合以及调用实例的端口连接信号信息,可以将之转化为调用实例之间的连接关系,进而转化为调用实例对应的有效点之间连接关系。
Tile有效点的外部连接信息相比内部连接要复杂一些,需要硬件人员提供额外的描述Tile之间的连接信息的一组输入文件。本发明采用一组xml格式、以Tile名命名的一组输入文件,每个文件描述当前Tile的与布线相关的输出端口(Outport)与当前系列下其他Tile的输入端口(Inport)之间连接关系,每组连接关系包含连接Tile的类型信息、距离连接Tile的相对坐标信息、连接输入端口名信息以及端口宽度信息等。解析文件得到当前系列下的每个Tile对象的文件内定义的输出端口的一组连接信息,依据这些连接信息,得到描述系列下当前Tile内部有效点与其他Tile内部有效点的连接信息,连接包括距离连接有效点所属Tile的相对坐标信息、连接有效点所属Tile类型信息以及连接有效点在所属Tile的有效点索引信息,以上构成了有效点的外部连接信息。
优选地,所述步骤(2)中,器件都有从属的系列属性,在系列信息确定的前提下,选择器件所属系列,就可以使用系列下基本模块集合信息创建器件数据。需提供定制FPGA器件的排布信息则可以建立定制器件的结构信息,排布信息包括芯片规模以及每个坐标位置下放置的基本模块(Tile)的类型信息。本发明采用xml格式描述器件排布信息,文件名为arrangement.xml。解析arrangement.xml文件得到每个坐标下的Tile类型,依据Tile类型搜索系列信息中的Tile库信息得到对应的Tile对象,建立坐标和Tile对象的映射关系,以便在布线搜索路径信息,例如,布线搜索到芯片的任意一个坐标位置,根据映射关系得到该坐标下的Tile对象,再利用布线搜索中的端口或者实例信息定位到Tile对象的有效点对象(Tile类提供的接口函数),取有效点对象中存储的内部连接及外部连接信息,通过内部连接信息可以向当前有效点所属Tile对象内部进行路径搜索,即当前坐标位置的内部路径的扩展,同理,通过外部连接信息可以向当前有效点所属Tile对象除外的Tile对象内的有效点进行路径搜索,及当前坐标位置之外的外部路径的扩展。以此类推,可以达到在FPGA器件全部坐标位置进行路径搜索的功能,满足FPGA器件全部坐标位置布线搜索的需求。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括上述实施例方法的各步骤,而所述的存储介质可以是:ROM/RAM、磁碟、光盘、存储卡等。因此,与本发明的方法相对应的,本发明还同时包括一种针对FPGA可动态扩展的软件布线结构建模装置,该装置通常以与方法各步骤相对应的功能模块的形式表示。如图8所示,该装置包括:
FPGA系列信息建立模块,Series信息包含FPGA芯片所能调用的全部基本模块Tile的信息集合,建立Series信息等同于构建一个Tile库信息,以便通过Tile名在Tile库中搜索得到对应的Tile对象信息;
FPGA器件信息建立模块,器件都有从属的系列属性,在系列信息确定的前提下,选择器件所属系列,使用系列下基本模块集合信息创建器件数据;提供定制FPGA器件的排布信息来建立定制器件的结构信息,排布信息包括芯片规模以及每个坐标位置下放置的Tile的类型信息。
下面结合附图对本发明方法进行更详细的说明。
图1为本发明的描述基本模块硬件结构的verilog格式输入文件示意图,如图描述的是可配置逻辑块(ConfigurableLogic Block,CLB)提取的verilog格式的硬件结构描述文件的部分内容,文件中代表CLB整体硬件结构的顶层模块(module)名为“BLK_CELL_LIB”,位于文件中最后一个module定义的位置,verilog文件中module定义自下而上是包含的关系,上文同样是一些module定义,由顶层模块直接或者间接调用。以顶层模块“BLK_CELL_LIB”的定义为例进行说明,可知图中列出的CLB的定义包含输出端口(output)“blk_cout,blk_rcascout”,线网(wire)包含“Icb_cout0,Icb_cout1,Icb_led,Icb_lec,Icb_leb,Icb_lea”等,调用的实例(Instance)包含“Ile_S0,Ile_S1,Ile_S2,Ile_S3,Ile_S4,Ile_S5,Ile_S6,Ile_S7,Ile_S8,Ile_S9,Ictrl_S10,Itiehi,Itielo,Ires”。
图2为本发明的arc_guide.xml输入文件的文件格式及内容,文件定义了当前系列下所有模块(module)的布线属性及有效点的定义规则。文件中用MODULE语句说明单个module的布线属性以及有效点定义规则,MODULE语句下的“name”属性用于指定模块名,“route_type”属性用于指定布线属性,MODULE语句下的ROUTING语句用来描述该模块需要创建的一组有效点信息,可用多个ROUTING语句指定多组有效点定义,ROUTING语句中的“key”属性描述当前有效点类型及有效点的id,“value”属性描述当前有效点对应的端口列表。下面将对module的布线属性及有效点类型详细展开说明。
本发明将布线属性依据模块功能划分成四种,分别为:“HIE”用于标识网表(netlist)顶层模块;“FUNCTION”用于描述具有功能性模块,例如高低电平模块、逻辑块(LE)等模块;“CONNECTION”用于描述可编程连接性质模块,例如开关盒(SwitchBox,SB)、连接盒(ConnectionBox,CB)等模块;“BRIDGE”用于描述表示直接连接作用模块,例如电阻、反相器、缓冲器等模块。
本发明将有效点按类型划分为五种,分别是SOURCE类型、SINK类型、CONSTHIGH类型、CONSTLOW类型以及CHAN类型。有效点类型与所处模块的布线属性以及硬件结构相关。其中,SOURCE类型有效点为布线路径的起点,可将FUNCTION类型模块的输出端口定义成此类型;SINK类型有效点为布线路径的终点,可将FUNCTION类型模块的输入端口定义成此类型;CONSTHIGH类型有效点专指固定高电平,为布线路径的起点,将高电平模块的输出端口定义成此类型;CONSTLOW类型,专指固定低电平,为布线路径的终点,将低电平模块的输出端口定义成此类型;CHAN类型有效点为布线路径上的中间节点,将CONNECTION类型模块定义为一个CHAN类型有效点。
以可配置逻辑块(ConfigurableLogic Block,CLB)中部分module定义为例进行说明,其中BLK_CELL_LIB模块的“route_type”属性为“HIE”,代表为顶层模块;LE_CELL_LIB模块的“route_type”属性为“FUNCTION”,定义了两个SOURCE类型有效点,分别对应两个输出端口“cout0,cout1”,定义四个SINK类型有效点,分别对应四个输入端口“lea,leb,lec,led”;TIEHI_CELL_LIB模块的“route_type”属性为FUNCTION,定义了一个CONSTHIGH类型有效点,对应输出端口“y”;TIELO_CELL_LIB模块的“route_type”属性为FUNCTION,定义了一个CONSTLOW类型有效点,对应输出端口“y”;CTRL_CELL_LIB模块的“route_type”属性为CONNECTION,定义了一个CHAN类型有效点,对应输入端口“le9cout0,le9cout1”到输出端口“labcout”的一组连接;对于RES_CELL_LIB模块并建立虚拟有效点,类型为VIR。
图3为本发明在创建基本模块的有效点集合示意图,图中以图1描述的是可配置逻辑块(ConfigurableLogic Block,CLB)提取的verilog格式的硬件结构描述文件的部分内容为依据建立的有效点集合,可见图中包含五种类型有效点,分别是“LE_CELL_LIB”类型实例对应的“SOURCE”“SINK”类型有效点,“CTRL_CELL_LIB”类型实例对应的“CHAN”类型有效点,“TIEHI_CELL_LIB”类型实例对应的“CONSTHIGH”类型有效点以及“TIELO_CELL_LIB”类型实例对应的“CONSTLOW”类型有效点,图中还列出了有效点ID、PIN等属性。
图4为本发明建立基本模块有效点内部连接信息示意图。如图以可配置逻辑块(ConfigurableLogic Block,CLB)部分有效点内部连接为例,展示了图三中列举的有效点集合及部分连接,分别列举了CLB内部调用的实例及建立的有效点的对应关系,建立有效点内部连接需依据信号的连接信息,一条信号分别连接一个输出端口(output)和多个输入端口(input),连接的输出端口代表信号的起始点,连接的输入端口(input)代表信号的终点,以信号“Icb_cout0[9]”为例,起始点为实例“Ile_S9”的输出端口“cout0”,终点为实例“Icb_lab_Ilab_Ictlgic_S10”的输入端口“le9cout0”,进而转化成有效点之间连接,即实例“Ile_S9”的输出端口“cout0”对应的source类型有效点和实例“Icb_lab_Ilab_Ictlgic_S10”对应的CHAN类型有效点的连接。同理,由信号“Icb_cout1[9]”的连接信息得到实例“Ile_S9”的输出端口“cout1”对应的source类型有效点和实例“Icb_lab_Ilab_Ictlgic_S10”对应的CHAN类型有效点的连接;由信号“Icb_ctl”的连接信息得到实例“Icb_lab_Ilab_Ictlgic_S10”对应的CHAN类型有效点和实例“Ires”对应的VIR虚拟类型有效点的虚拟连接,并通过“Ires”实例的连接将信号送到BLK_CELL_LIB模块的输出端口,此信息将会用在建立基本模块的有效点的外部连接信息部分。
图5为本发明建立基本模块有效点外部连接信息示意图。系列下Tile集合之间的端口连接信息用一组xml格式文件描述,图中以可配置逻辑块(ConfigurableLogic Block,CLB)模块与其他模块(包含CLB本身)的部分连接信息为例。其中TILE语句的“name”属性用于指定当前基本模块类型,如图可知为BLK(即CLB)。OUTPORT语句的“name”属性为“channel_bottomlink”,表明描述的是CLB的“channel_bottomlink”输出端口与当前系列其他Tile的连接信息,“width”属性为“9:0”描述的是“blk_cout”输出端口的位宽总数为10,分别为channel_bottomlink[9:0]。当前OUTPORT语句下的多条CONNEXION子语句,描述在当前系列下,CLB的“channel_bottomlink”输出端口与与其他模块的多组连接信息。CONNEXION语句的“type”属性指定连接的Tile的类型,“delta_x,delta_y”属性分别指定连接BLK模块与当前模块的在芯片坐标系中的相对坐标,“port_name”属性指定连接的输入端口名。因此,当前三条CONNEXION语句表明在当前系列(Series)内共有三组连接信息,分别是与相对坐标为(0,-1)位置的CLB的输入端口“toplink”的连接,与相对坐标为(0,-1)位置的IOB_B的输入端口“dlink”的连接以及与相对坐标为(-1,-1)位置的IOB_B的输入端口“rdlink”的连接。需要注意的是此处描述的的连接信息只是当前系列(Series)的所有可能连接的情况,实际使用哪儿组连接信息根据实际器件排布而定。解析得到基本模块的端口连接信息后,依据如图6中的基本模块端口与有效点的对应关系,将端口连接信息转化为有效点的连接信息,进而可以获得基本模块有效点的外部连接信息。
图6为本发明的描述器件排布信息文件示意图。DEVICE语句用于描述FPGA器件相关属性信息,其中,“series”属性指定器件所属FPGA系列(Series),“name”属性指定定制的FPGA器件名,“size_x”属性指定器件水平方向规模,“size_y”属性指定器件垂直方向规模。DEVICE语句下的包含多个TILE语句用于描述器件所调用的Tile类型。TILE语句包含一个“name”属性用于指定所使用的基本模块(Tile)类型。TILE语句下包含多个TILE_INS语句用于描述基本模块的实例信息。TILE_INS语句的“loc_x,loc_y”属性用于指定Tile实例的在芯片上的坐标位置。如图以一个规模为32*32的器件排布文件为例,文件包含一个DEVICE语句,通过DEVICE语句的属性值得到器件所属系列为“GodNeedle6”,器件名为“EQ6GL9”,器件规模为32*32。DEVICE语句下共包含五个TILE语句,可知当前器件包含的Tile类型分别为“BLK”(配置逻辑块)、“IOB_T”(上部输入输出模块)、“IOB_B”(下部输入输出模块)、“IOB_L”(左部输入输出模块)、“IOB_R”(右部输入输出模块)。其中BLK对应的TILE语句下包含一个TILE_INS语句,TILE_INS语句的“loc_x”“loc_y”属性值都为“1:32”,以芯片左下角为坐标原点,表示X方向及Y方向的坐标范围都为1到32,描述了一个区域性的坐标范围,共实例化了1024个BLK实例。IOB_T对应的TILE语句下包含一个TILE_INS语句,TILE_INS语句的“loc_x”属性值为“1,3,5,7”,表示X方向的坐标值包括1、3、5、7,Y方向的坐标值为9,描述了多个离散的坐标位置,共实例化了(1,9),(3,9),(5,9),(7,9)四个坐标位置的Tile实例。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本发明技术方案的保护范围。

Claims (9)

1.一种针对FPGA可动态扩展的软件布线结构建模方法,其特征在于:其包括以下步骤:
(1)建立FPGA系列Series信息,Series信息包含FPGA芯片所能调用的全部基本模块Tile的信息集合,建立Series信息等同于构建一个Tile库信息,以便通过Tile名在Tile库中搜索得到对应的Tile对象信息;
(2)建立FPGA器件Device信息,器件都有从属的系列属性,在系列信息确定的前提下,选择器件所属系列,使用系列下基本模块集合信息创建器件数据;提供定制FPGA器件的排布信息来建立定制器件的结构信息,排布信息包括芯片规模以及每个坐标位置下放置的Tile的类型信息。
2.根据权利要求1所述的针对FPGA可动态扩展的软件布线结构建模方法,其特征在于:所述步骤(1)包括以下分步骤:
(1.1)提取Tile内部组件所映射的布线资源图中对应有向图的有效点集合;
(1.2)建立Tile布线结构内部有效点的连接信息,将Tile内部有效点的连接信息划分内部连接和外部连接两个方面,内部连接指有效点与所属Tile结构内部其他有效点的连接,外部连接指有效点与所属Tile之外的其他Tile的有效点的连接。
3.根据权利要求2所述的针对FPGA可动态扩展的软件布线结构建模方法,其特征在于:所述步骤(1.1)中,由对应的硬件设计人员分别提供的Tile的层次化的verilog格式网表文件作为输入文件,每个Tile对应一个verilog格式网表文件来描述Tile的内部硬件结构;采用iverilog开源程序进行解析,解析得到Tile对象内部所有模块与模块调用实例的层次化分布的结果信息,该结果信息是每个Tile包含一个顶层模块以及顶层模块下的调用模块的实例信息,而每个调用模块实例又包含模块定义信息以及模块内部实例调用信息,解析直至得到最底层的模块定义以及实例信息。
4.根据权利要求3所述的针对FPGA可动态扩展的软件布线结构建模方法,其特征在于:所述步骤(1.1)中,提取Tile内部有效点集合借助arc_guide.xml辅助建模文件,文件依据Tile内部模块的功能性对所有模块定义一个布线属性标签,并且定义每个模块需要建立有效点列表信息,其中包含每个有效点的类型及名字信息,将所有Tile内部模块属性定义全部存放在arc_guide.xml文件中,文件从属于当前系列。
5.根据权利要求4所述的针对FPGA可动态扩展的软件布线结构建模方法,其特征在于:所述步骤(1.1)中,通过iverilog开源库解析得到Tile内部模块和调用信息以及通过解析arc_guide文件得到Tile内部各个模块的布线属性标签以及有效点定义列表信息后,提取Tile内部全部有效点集合信息:从Tile顶层模块的调用模块实例开始遍历,分别取得每个调用模块的标签属性,依据标签属性判断是继续遍历模块实例内部调用的实例还是直接获取实例模块在arc_guide文件中定义的有效点信息并将有效点集合加入Tile的有效点集合信息中,如果是继续遍历,对调用实例采取相同的操作,在arc_guide信息中搜索模块对应的有效点集合信息,并同样加入Tile的有效点集合信息中,直至Tile的顶层模块调用实例全部遍历完成,获得Tile全部有效点集合信息。
6.根据权利要求5所述的针对FPGA可动态扩展的软件布线结构建模方法,其特征在于:所述步骤(1.2)中,建立Tile有效点的内部连接信息来源于有效点所属Tile的硬件结构描述文件,其为verilog文件,通过iverilog开源库解析除了得到Tile顶层模块以及调用模块实例信息外,同时得到当前Tile内部的线网Wire集合以及调用实例的端口连接信号信息,将之转化为调用实例之间的连接关系,进而转化为调用实例对应的有效点之间连接关系。
7.根据权利要求6所述的针对FPGA可动态扩展的软件布线结构建模方法,其特征在于:所述步骤(1.2)中,Tile有效点的外部连接信息为描述Tile之间的连接信息的一组输入文件,采用一组xml格式、以Tile名命名的一组输入文件,每个文件描述当前Tile的与布线相关的输出端口与当前系列下其他Tile的输入端口之间连接关系,每组连接关系包含连接Tile的类型信息、距离连接Tile的相对坐标信息、连接输入端口名信息以及端口宽度信息;解析文件得到当前系列下的每个Tile对象的文件内定义的输出端口的一组连接信息,依据这些连接信息,得到描述系列下当前Tile内部有效点与其他Tile内部有效点的连接信息,连接包括距离连接有效点所属Tile的相对坐标信息、连接有效点所属Tile类型信息以及连接有效点在所属Tile的有效点索引信息,以上构成了有效点的外部连接信息。
8.根据权利要求7所述的针对FPGA可动态扩展的软件布线结构建模方法,其特征在于:所述步骤(2)中,采用xml格式描述器件排布信息,文件名为arrangement.xml,解析arrangement.xml文件得到每个坐标下的Tile类型,依据Tile类型搜索系列信息中的Tile库信息得到对应的Tile对象,建立坐标和Tile对象的映射关系;当布线搜索到芯片的任意一个坐标位置,根据该映射关系得到该坐标下的Tile对象,再利用布线搜索中的端口或者实例信息定位到Tile对象的有效点对象,取有效点对象中存储的内部连接及外部连接信息,通过内部连接信息向当前有效点所属Tile对象内部进行路径搜索,该路径搜索是当前坐标位置的内部路径的搜索;通过外部连接信息向当前有效点所属Tile对象除外的Tile对象内的有效点进行路径搜索,该路径搜索是当前坐标位置之外的外部路径的扩展;以上构成可动态扩展的布线结构建模。
9.一种针对FPGA可动态扩展的软件布线结构建模装置,其特征在于:其包括:
FPGA系列信息建立模块,Series信息包含FPGA芯片所能调用的全部基本模块Tile的信息集合,建立Series信息等同于构建一个Tile库信息,以便通过Tile名在Tile库中搜索得到对应的Tile对象信息;
FPGA器件信息建立模块,器件都有从属的系列属性,在系列信息确定的前提下,选择器件所属系列,使用系列下基本模块集合信息创建器件数据;提供定制FPGA器件的排布信息来建立定制器件的结构信息,排布信息包括芯片规模以及每个坐标位置下放置的Tile的类型信息。
CN202010176545.3A 2020-03-13 2020-03-13 一种针对fpga可动态扩展的软件布线结构建模方法和装置 Active CN111414725B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010176545.3A CN111414725B (zh) 2020-03-13 2020-03-13 一种针对fpga可动态扩展的软件布线结构建模方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010176545.3A CN111414725B (zh) 2020-03-13 2020-03-13 一种针对fpga可动态扩展的软件布线结构建模方法和装置

Publications (2)

Publication Number Publication Date
CN111414725A true CN111414725A (zh) 2020-07-14
CN111414725B CN111414725B (zh) 2023-10-31

Family

ID=71491061

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010176545.3A Active CN111414725B (zh) 2020-03-13 2020-03-13 一种针对fpga可动态扩展的软件布线结构建模方法和装置

Country Status (1)

Country Link
CN (1) CN111414725B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112541310A (zh) * 2020-12-18 2021-03-23 广东高云半导体科技股份有限公司 逻辑综合控制方法及装置
CN114282474A (zh) * 2021-11-16 2022-04-05 山东芯慧微电子科技有限公司 一种fpga布线资源数据压缩办法
CN116894424A (zh) * 2023-06-25 2023-10-17 广东高云半导体科技股份有限公司 一种fpga的布线方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105740520A (zh) * 2016-01-25 2016-07-06 深圳市同创国芯电子有限公司 Fpga建模方法及装置
CN108509725A (zh) * 2018-04-02 2018-09-07 中国科学院电子学研究所 可定制逻辑器件版图和网表的自动生成方法
CN110472340A (zh) * 2019-08-16 2019-11-19 中科亿海微电子科技(苏州)有限公司 一种布线结构的建模方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105740520A (zh) * 2016-01-25 2016-07-06 深圳市同创国芯电子有限公司 Fpga建模方法及装置
CN108509725A (zh) * 2018-04-02 2018-09-07 中国科学院电子学研究所 可定制逻辑器件版图和网表的自动生成方法
CN110472340A (zh) * 2019-08-16 2019-11-19 中科亿海微电子科技(苏州)有限公司 一种布线结构的建模方法和装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112541310A (zh) * 2020-12-18 2021-03-23 广东高云半导体科技股份有限公司 逻辑综合控制方法及装置
CN112541310B (zh) * 2020-12-18 2021-10-29 广东高云半导体科技股份有限公司 逻辑综合控制方法及装置
CN114282474A (zh) * 2021-11-16 2022-04-05 山东芯慧微电子科技有限公司 一种fpga布线资源数据压缩办法
CN116894424A (zh) * 2023-06-25 2023-10-17 广东高云半导体科技股份有限公司 一种fpga的布线方法及装置
CN116894424B (zh) * 2023-06-25 2024-05-17 广东高云半导体科技股份有限公司 一种fpga的布线方法及装置

Also Published As

Publication number Publication date
CN111414725B (zh) 2023-10-31

Similar Documents

Publication Publication Date Title
CN111414725A (zh) 一种针对fpga可动态扩展的软件布线结构建模方法和装置
CN102136218B (zh) 一种计算机地图制图中的地图注记自动配置方法
CN104317864B (zh) 一种基于iec61850逻辑节点的信息模型自动识别的方法
CN106528937B (zh) 一种基于pdms出图避免标注信息重叠的系统和方法
CN104484419B (zh) 一种测试用例文档的转换系统和方法
CN108509725A (zh) 可定制逻辑器件版图和网表的自动生成方法
CN106294572B (zh) 一种基于AutoCAD数据源和ArcGIS工具的高程图快速生成方法
CN109446689A (zh) 直流换流站二次系统图纸识别方法及系统
CN104484166A (zh) 一种自动化测试系统图形化建模装置及方法
CN102693340B (zh) 基于多水平划分法和赋权超图的大规模集成电路划分方法
US20240281579A1 (en) Incremental segmentation processing method and apparatus, computer device, and storage medium
CN109857885A (zh) 基于scd文件的智能变电站主接线图自动生成方法
CN102968539A (zh) 一种格式图纸的批量快速生成方法
CN106709143A (zh) 基于atp自动建模的vfto批量仿真分析方法及系统
CN110795835A (zh) 一种基于自动同步建模的三维工序模型逆向生成方法
CN107391596A (zh) 一种配电网海量数据融合方法及装置
CN116151324A (zh) 基于图神经网络的rc互连延时预测方法
CN113807043B (zh) 时钟树综合和布局混合优化方法和装置、存储介质和终端
CN101980218B (zh) 一种基于模板的集成设计平台
CN101625712A (zh) 标牌制作计算机绘图系统及绘图方法
CN112733345A (zh) 一种航空螺栓自动三维标注方法及系统
CN116681029A (zh) 一种亿门级fpga互联资源智能测试方法
CN106229974A (zh) 一种基于图数据库的电力网络快速拓扑分析的方法
CN105551069A (zh) 一种索引图像的实时快速生成方法及系统
CN106557601A (zh) 一种输电线路仿真方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant