The invention relates to the field of programming, in particular to a coding method and a terminal. The present invention provides a data encoding format for finding the best combination of HLS instructions. In the use of HLS tools will be written in a high-level language program into hardware description language in the process, in order to improve the efficiency of the hardware circuit of the running program, need to try a variety of HLS optimized instruction combination, combination number and HLS optimizations of large, data encoding format provided by the invention is conducive to optimizing the instruction HLS heuristic algorithm to find the optimal combination. It has greatly improved the efficiency of the HLS optimization to find the optimal combination of instruction.
【技术实现步骤摘要】
一种用于HLS指令优化的编码方法及终端
本专利技术涉及编程领域,尤其涉及一种用于HLS指令优化的编码方法及终端。
技术介绍
为满足现有的算法在硬件上进行加速,传统的硬件描述语言:VerilogHDL和VHDL由于开发难度大、开发周期长已难以迎合现有的需求。HLS的出现解决了这个问题,HLS(HighLevelSynthesis)能将软件开发人员所写的C/C++代码转化到可编程逻辑设计中。而通常算法程序的函数、数组和循环很多,利用HLS提供的20来种优化指令对程序的函数、循环、数组等进行优化所产生的指令组合是爆炸性的。使用现有的方法寻找最优的HLS优化指令组合效率低。
技术实现思路
本专利技术所要解决的技术问题是:如何提高获取将高级语言编写的源码转换为硬件描述语言的最优HLS优化指令组合的效率。为了解决上述技术问题,本专利技术采用的技术方案为:本专利技术提供一种用于HLS指令优化的编码方法,包括:S1、获取源码中一语句的语句类型和语句标号;所述语句类型包括函数、数组、接口数组和循环语句;S2、预设深度变量;当所述类型为函数时,设置所述深度变量的值为与所述语句对应的函数层级;当所述类型为数组时,设置所述深度变量的值为与所述语句对应的维数;当所述类型为循环语句时,设置所述深度变量的值为与所述语句对应的循环嵌套深度;当所述类型为接口数组时,设置所述深度变量的值为与所述语句对应的维数;S3、从与所述语句类型对应的HLS优化指令集合中,随机获取一HLS优化指令的指令编号,得到优化指令标识;S4、根据所述语句类型、所述语句标号、所述深度变量的值和所述优化指令标识得到与预设位 ...
【技术保护点】
一种用于HLS指令优化的编码方法,其特征在于,包括:S1、获取源码中一语句的语句类型和语句标号;所述语句类型包括函数、数组、接口数组和循环语句;S2、预设深度变量;当所述类型为函数时,设置所述深度变量的值为与所述语句对应的函数层级;当所述类型为数组时,设置所述深度变量的值为与所述语句对应的维数;当所述类型为循环语句时,设置所述深度变量的值为与所述语句对应的循环嵌套深度;当所述类型为接口数组时,设置所述深度变量的值为与所述语句对应的维数;S3、从与所述语句类型对应的HLS优化指令集合中,随机获取一HLS优化指令的指令编号,得到优化指令标识;S4、根据所述语句类型、所述语句标号、所述深度变量的值和所述优化指令标识得到与预设位数对应的编码;S5、添加所述编码至预设的编码集合;S6、重复执行S1至S5,直至所述编码集合中包含与所述源码的每一语句对应的编码;S7、预设次数执行所述S1至S6,得到一个以上所述编码集合;S8、根据预设的启发式算法对一个以上所述编码集合中的各种组合逐步迭代寻优后,从中选取最优编码组合。
【技术特征摘要】
1.一种用于HLS指令优化的编码方法,其特征在于,包括:S1、获取源码中一语句的语句类型和语句标号;所述语句类型包括函数、数组、接口数组和循环语句;S2、预设深度变量;当所述类型为函数时,设置所述深度变量的值为与所述语句对应的函数层级;当所述类型为数组时,设置所述深度变量的值为与所述语句对应的维数;当所述类型为循环语句时,设置所述深度变量的值为与所述语句对应的循环嵌套深度;当所述类型为接口数组时,设置所述深度变量的值为与所述语句对应的维数;S3、从与所述语句类型对应的HLS优化指令集合中,随机获取一HLS优化指令的指令编号,得到优化指令标识;S4、根据所述语句类型、所述语句标号、所述深度变量的值和所述优化指令标识得到与预设位数对应的编码;S5、添加所述编码至预设的编码集合;S6、重复执行S1至S5,直至所述编码集合中包含与所述源码的每一语句对应的编码;S7、预设次数执行所述S1至S6,得到一个以上所述编码集合;S8、根据预设的启发式算法对一个以上所述编码集合中的各种组合逐步迭代寻优后,从中选取最优编码组合。2.根据权利要求1所述的一种用于HLS指令优化的编码方法,其特征在于,还包括:获取与所述最优编码集合对应的优化指令标识集合;根据所述优化指令标识集合对应的HLS优化指令优化所述源码。3.根据权利要求1所述的一种用于HLS指令优化的编码方法,其特征在于,还包括:获取与每一所述编码集合对应的时延和资源数量,得到执行结果集合;根据所述执行结果集合生成分析报告。4.根据权利要求1所述的一种用于HLS指令优化的编码方法,其特征在于,所述S8具体为:生成与一个以上所述编码集合对应的一个以上TCL脚本文件;根据预设的启发式算法对一个以上所述TCL脚本文件集合进行迭代寻优搜索,从中选取最优TCL脚本文件;获取与所述最优TCL脚本文件对应的编码集合,得到最优编码集合。5.一种用于HLS指令优化的编码终端,其特征在...
【专利技术属性】
技术研发人员:黄晞,陈宝林,郭升挺,吴家飞,苏浩明,
申请(专利权)人:福建师范大学,
类型:发明
国别省市:福建,35
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。