发明名称 一种基于文本树形结构模型的FPGA拓扑信息的获取方法
摘要 本发明一种基于文本树形结构模型的FPGA拓扑信息的获取方法,首先设定功能模块的格式,然后以功能模块为最小单位对FPGA工程进行分割,建立描述例化模块间拓扑关系的文本树形结构模型;之后基于文本树形结构模型从顶层模块开始逐层地确定例化模块间的父子关系,得到了FPGA工程的顶层模块和所有例化模块间的层级关系,并完成文本信息的抽象。最终以文本文件的形式存储并输出拓扑信息。本方法实现对FPGA工程模块拓扑关系图的文本信息抽象,完成由图论信息到可读写的文本信息转化,实现了复杂多层次的FPGA工程模块拓扑关系划分和文本信息提取,提高了模块拓扑关系划分效率。
申请公布号 CN105069204A 申请公布日期 2015.11.18
申请号 CN201510442273.6 申请日期 2015.07.24
申请人 西安空间无线电技术研究所 发明人 龚科;郭宝龙;贾亮;闫允一;张国霞
分类号 G06F17/50(2006.01)I 主分类号 G06F17/50(2006.01)I
代理机构 中国航天科技专利中心 11009 代理人 陈鹏
主权项 一种基于文本树形结构模型的FPGA拓扑信息的获取方法,其特征在于步骤如下:一:划分FPGA工程的功能模块步骤1:建立功能模块,所述功能模块的代码段格式包括三个部分,即第一部分为以关键字library为标志的库引用部分,第二部分为以关键字entity为标志的实体部分,第三部分为以关键字architecture为标志的结构体部分;步骤2:以建立的功能模块为最小单位依次对FPGA工程进行划分;依次将划分后的功能模块代码保存于对应的子FPGA工程中,子FPGA工程以功能模块代码段中实体部分的名称命名;二:建立文本树形结构模型步骤3:建立描述FPGA工程模块间拓扑关系的模型,命名为“文本树形结构模型”;步骤3‑1:划分文本树形结构的顶点,分别为top顶点和common顶点;步骤3‑2:设定top顶点代表FPGA工程的顶层模块,设定common顶点代表例化模块;设定top顶点为第一层顶点,common顶点为第m层顶点,m>1;步骤3‑3:设定一个例化模块A在对应的功能模块代码中例化另一个例化模块B,则上述两个例化模块之间的关系为父子例化模块关系,其中例化模块A为父例化模块,例化模块B为子例化模块;则第n层顶点为上一层某顶点的子例化模块,n>2;步骤3‑4:设定文本树形结构格式,其中top顶点存储的信息为顶层模块名称,第二层common顶点存储的信息为该顶点对应的例化模块名称、该顶点对应的功能模块名称、该层模块名称;第n层common顶点存储的信息为该顶点对应的例化模块名称、该顶点对应的功能模块名称、该例化模块的父例化模块名称、该父例化模块对应的功能模块名称;三:基于文本树形结构模型查找指定模块的可变层拓扑信息步骤4:基于步骤2生成的子FPGA工程,查找所有功能模块内的例化信息;步骤4‑1:查找并记录子FPGA工程中某一个功能模块内的例化信息;步骤4‑1‑1:查找例化语句,具体如下;读功能模块代码,在结构体下的关键字“begin”和关键字“end”之间查找以“:”为标志的语句,将“:”后的词和步骤2建立的功能模块名称一一比对,如果有相同名称则停止比对,该条语句为关于其他功能模块的例化语句;“:”前为例化模块名称,“:”后为对应的功能模块名称;存储例化模块名称、对应的功能模块名称;如果没有相同名称则执行步骤4‑1‑2;其中所述的词为一串连续的不包括空格和“:”的字符;步骤4‑1‑2:按步骤4‑1‑1的方法查找下一个例化语句,直到分析过该功能模块的所有例化语句后执行步骤4‑1‑3;步骤4‑1‑3:为该功能模块创建与它同名的文本文件,用于保存功能模块内的例化信息;步骤4‑2:使用步骤4‑1的方法,查找并存储所有功能模块内的例化信息;步骤5:查找并存储功能模块的可变层拓扑信息;基于文本树形结构模型以步骤4生成的文本文件为资源,获取一个功能模块的任意层拓扑信息;步骤5‑1:指定待查找的功能模块的名称和层数;假设功能模块名称为T,层数为k;步骤5‑2:基于步骤3建立的文本树形结构模型查找功能模块T的k层拓扑信息;步骤5‑2‑1:确定并记录文本树形结构的第一层顶点;设功能模块T为顶层模块,则T对应文本树形结构中的top顶点,按步骤3建立的文本树形结构获取top顶点的相关信息;步骤5‑2‑2:查找并记录文本树形结构的第二层顶点;基于步骤4生成的与top顶点同名的文本文件确定第二层顶点;该文本文件内记录的全部例化模块为第二层的全部顶点;根据该文本文件内存储的例化模块名称、对应的功能模块名称、top顶点名称,确定第二层全部顶点的相关信息;步骤5‑2‑3:查找并记录文本树形结构的第p层顶点,2<p≤k;依次读取上一层顶点相关信息中“父例化模块对应的功能模块”信息对应的同名文本文件;文本文件内记录的全部例化模块为第p层的顶点;根据文本文件内存储的例化模块名、对应的功能模块名称、被读取的文本文件名称、被读取文本文件对应的上一层顶点名称,确定第p层顶点的相关信息;步骤5‑2‑4:重复步骤5‑2‑3,直到p=k或全部第p层顶点相关信息中“p层顶点对应的功能模块名称”信息的同名文本文件都为空;步骤5‑3:若最终p=k,则表明功能模块T的实际拓扑信息层数大于等于k,最终输出文件内的拓扑信息有k层;若最终p<k,则表明功能模块T的实际拓扑信息层数小于k,最终输出文本文件内的拓扑信息为指定功能模块的可变层拓扑信息。
地址 710100 陕西省西安市长安区西街150号