[发明专利]一种基于图的HDL编译优化方法有效
申请号: | 202310434999.X | 申请日: | 2023-04-21 |
公开(公告)号: | CN116149670B | 公开(公告)日: | 2023-07-11 |
发明(设计)人: | 王彦鹏 | 申请(专利权)人: | 湖南泛联新安信息科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F16/901 |
代理公司: | 长沙市护航专利代理事务所(特殊普通合伙) 43220 | 代理人: | 莫晓齐 |
地址: | 410005 湖南省长沙市开福区伍家岭街道*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 hdl 编译 优化 方法 | ||
本发明涉及编译优化技术领域,具体为一种基于图的HDL编译优化方法,包括如下步骤:步骤S1、获取或者构建HDL文件;步骤S2、对HDL文件进行词法、语法分析,并通过词法、语法分析结果构建抽象语法树;步骤S3、依据抽象语法树构建图;步骤S4、在图上实施多种优化算法,得到优化后的图;步骤S5、将优化后的图转换为目标无关的中间代码;步骤S6、调用编译后端程序将中间代码转为目标机器上的可执行文件。本发明旨在解决在编译过程中优化HDL代码和硬件设计的问题,通过在编译过程中添加图优化的步骤,能够很容易的发掘出原始HDL设计中可被优化的地方,并通过在图上实施,从而达到很好的优化效果。
技术领域
本发明涉及编译优化技术领域,特别涉及一种基于图的HDL编译优化方法。
背景技术
硬件设计通常都是由一系列硬件编程语言(HDL)所写的文件构成,对硬件设计的仿真方法有很多种,其中最常用的方法之一就是将其编译为可以在通用计算机上运行的可执行文件,通过运行这个可执行文件对硬件设计中描述的行为进行模拟仿真。因此,生成的可执行文件的“好”“坏”就直接影响了仿真的速度:如果生成的可执行文件中包含很多大量消耗CPU的逻辑,就会导致仿真速度变得很慢。因此,在将硬件设计编译为可执行文件的过程中,如何尽可能的消除这些大量消耗CPU的逻辑就变的极其重要。
经过几十年的发展,针对通用CPU编程语言,已经形成了大量成熟可靠的编译优化手段,如死代码消除、常量替换、循环展开等等。由于HDL自身的特殊性,如HDL的并发性、四值特点等,这些手段中有很多是不能直接应用到HDL的编译过程中的。另外,也由于HDL自身的特殊性,往往仅仅采用通用的编译优化手段不能够达到很好的优化效果。
发明内容
本发明提供了一种基于图的HDL编译优化方法,以解决现有编译优化方法优化效果不佳的技术问题。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种基于图的HDL编译优化方法,包括如下步骤:
步骤S1、获取或者构建HDL文件;
步骤S2、对HDL文件进行词法、语法分析,并通过词法、语法分析结果构建抽象语法树;
步骤S3、遍历抽象语法树,创建多个变量节点和多个语句节点,在多个变量节点和/或多个语句节点之间添加有向边,得到需要构建的图;
步骤S4、对图进行优化,得到优化后的图;
步骤S5、将优化后的图转换为目标无关的中间代码;
步骤S6、调用编译后端程序,将中间代码转为目标机器上的可执行文件。
进一步地,所述步骤S3具体包括如下步骤:
步骤S31、对抽象语法树进行预处理,得到预处理后的抽象语法树;
步骤S32、遍历预处理后的抽象语法树,提取其中所有的变量,并为所有变量分别创建变量节点;
步骤S33、遍历预处理后的抽象语法树,提取其中所有的语句,并为所有的语句分别创造语句节点;
步骤S34、分析并提取步骤S32中所有变量与步骤S33中所有语句之间的依赖关系,并分别为这些依赖关系在多个变量节点和/或多个语句节点之间添加有向边,得到需要构建的图。
进一步地,所述步骤S31中的预处理包括补全端口连接关系、生成层次树。
进一步地,所述步骤S4具体包含如下步骤:
步骤S41、对图进行预处理,得到预处理后的图;
步骤S42、遍历预处理后的图中所有的变量节点和所有的语句节点,并根据多个优化算法对所有的变量节点和所有的语句节点进行标记和记录;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南泛联新安信息科技有限公司,未经湖南泛联新安信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310434999.X/2.html,转载请声明来源钻瓜专利网。