[发明专利]一种寄存器传输级代码生成方法、装置、设备及介质在审
申请号: | 202111017190.4 | 申请日: | 2021-08-31 |
公开(公告)号: | CN113703737A | 公开(公告)日: | 2021-11-26 |
发明(设计)人: | 李建权;文曦畅;徐敬蘅;闫凡;郜振锋 | 申请(专利权)人: | 深信服科技股份有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 陈彦如 |
地址: | 518055 广东省深圳市南*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 寄存器 传输 代码 生成 方法 装置 设备 介质 | ||
本申请公开了一种寄存器传输级代码生成方法、装置、设备、介质,该方法包括:将预设的正则表达式转换成非确定有限状态自动机,得到非确定有限状态自动机信息;将非确定有效状态自动机信息保存为非确定有限状态自动机的状态跳转表;根据FPGA可执行语言的特点生成状态跳转表对应的FPGA可执行语言代码文件,并将FPGA可执行语言代码文件存储到FPGA中,以便FPGA并行执行各个正则表达式对应的FPGA可执行语言代码文件,以将待匹配字符串与各个正则表达式进行并行匹配。这样能够进行正则表达式对应的FPGA编程语言代码自动生成,提高代码生成效率,节约人力和时间成本,避免人为撰写过程中导致的错误。
技术领域
本申请涉及计算机技术领域,特别涉及一种寄存器传输级代码生成方法、装置、设备、介质。
背景技术
基于CPU(central processing unit,中央处理器)处理器的正则表达式匹配引擎消耗大量计算资源,因而需要借助FPGA(Filed Programmable Gate Array,现场可编程逻辑门阵列)作为协处理器进行任务卸载。FPGA编程语言的Verilog代码冗长,一条简单的正则表达式所需的Verilog代码就有近1000行,人为实现正则表达式Verilog代码需要消耗大量的人力和时间成本,并且可能引起较多错误。
发明内容
有鉴于此,本申请的目的在于提供一种寄存器传输级代码生成方法、装置、设备、介质,能够进行正则表达式对应的FPGA编程语言代码自动生成,提高代码生成效率,节约人力和时间成本,避免人为撰写过程中导致的错误,缩短正则表达式FPGA加速引擎的开发周期,使得系统迭代更快。其具体方案如下:
第一方面,本申请公开了一种寄存器传输级代码生成方法,包括:
将预设的正则表达式转换成非确定有限状态自动机,得到非确定有限状态自动机信息;
将所述非确定有效状态自动机信息保存为所述非确定有限状态自动机的状态跳转表;
根据FPGA可执行语言的特点生成所述状态跳转表对应的FPGA可执行语言代码文件,并将所述FPGA可执行语言代码文件存储到FPGA中,以便所述FPGA并行执行各个所述正则表达式对应的所述FPGA可执行语言代码文件,以将待匹配字符串与各个所述正则表达式进行并行匹配。
可选地,所述将预设的正则表达式转换成非确定有限状态自动机,包括:
对所述正则表达式进行词法分析,以将所述正则表达式的字符序列转化成单词Token序列;
以预设的非确定有限状态自动机基础结构为模板,利用所述单词Token序列构造所述非确定有限状态自动机。
可选地,所述非确定有效状态自动机信息包括起始状态、终止状态、总状态数及每条状态跳转路径。
可选地,所述根据FPGA可执行语言的特点生成所述状态跳转表对应的FPGA可执行语言代码文件,包括:
根据Verilog语言的特点生成所述状态跳转表对应的Verilog代码文件。
可选地,所述根据FPGA可执行语言的特点生成所述状态跳转表对应的FPGA可执行语言代码文件,包括:
根据VHDL语言的特点生成所述状态跳转表对应的VHDL代码文件。
可选地,所述根据FPGA可执行语言的特点生成所述状态跳转表对应的FPGA可执行语言代码文件之前,还包括:
对所述状态跳转表进行处理,得到处理后状态跳转表;
相应地,所述根据FPGA可执行语言的特点生成所述状态跳转表对应的FPGA可执行语言代码文件,包括:
根据FPGA可执行语言的特点生成所述处理后状态跳转表对应的FPGA可执行语言代码文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深信服科技股份有限公司,未经深信服科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111017190.4/2.html,转载请声明来源钻瓜专利网。