CN109933332B - 一种应用于敏捷芯片开发的硬件编译系统 - Google Patents

一种应用于敏捷芯片开发的硬件编译系统 Download PDF

Info

Publication number
CN109933332B
CN109933332B CN201910182123.4A CN201910182123A CN109933332B CN 109933332 B CN109933332 B CN 109933332B CN 201910182123 A CN201910182123 A CN 201910182123A CN 109933332 B CN109933332 B CN 109933332B
Authority
CN
China
Prior art keywords
unit
ast
hlhdl
information
matching
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.)
Active
Application number
CN201910182123.4A
Other languages
English (en)
Other versions
CN109933332A (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.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
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 Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN201910182123.4A priority Critical patent/CN109933332B/zh
Publication of CN109933332A publication Critical patent/CN109933332A/zh
Application granted granted Critical
Publication of CN109933332B publication Critical patent/CN109933332B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种应用于敏捷芯片开发的硬件编译系统。在此硬件编译器系统下,实现了全自动编译过程,可将高抽象级别和高重用性的硬件描述语言转换为底层的Verilog结构。本发明相比于传统的编译器,本发明的输入为更高层次、更抽象化和更高度参数化的硬件描述语言,可以大大减少项目中重复代码,提升开发效率和代码的可读性、可维护性。本发明的输出为可综合的Verilog结构,可翻译成由与、或、非门等基本逻辑单元组成的门级连接,输出门级网表文件。

Description

一种应用于敏捷芯片开发的硬件编译系统
技术领域
本发明涉及数字集成电路领域,更具体的,涉及一种应用于敏捷芯片开发的硬件编译系统。
背景技术
目前,随着对敏捷芯片开发需求迫切突出,现有的硬件编译器框架无法实现全自动编译过程,也无法将高抽象级别和高重用性的硬件描述语言转换为也适用于数字后端的Verilog结构;使得目前的编译器框架项目中重复代码多,开发效率低、代码的可读性、可维护性差。
发明内容
为了解决现有技术中编译器框架项目中重复代码多,开发效率低、代码的可读性、可维护性差的不足,本发明提供了一种应用于敏捷芯片开发的硬件编译系统。
为实现以上发明目的,采用的技术方案是:
一种应用于敏捷芯片开发的硬件编译系统,包括前端和后端,所述的前端用于将硬件描述语言HLHDL(High Level Hardware Description Language)转换为另一硬件描述语言HCFIR(Hardware Compiler Framework Intermediate Representation);所述的后端用于将前端用HCFIR语言转换为Verilog语言。
优选的,所述的前端由构建模块和前端转换模块组成;
所述的构建模块包括第一匹配单元、第一提取信息单元、HLHDLIR封装模板单元以及AST构建单元;
所述的第一匹配单元用于针对HLHDL语言对应的抽象语法树中各个节点匹配其HLHDL IR类型;所述的第一提取信息单元用于从节点中提取匹配的HLHDL IR类型所需的信息;所述的HLHDL IR封装模板单元预先定义一系列HLHDL IR封装类,以供第一匹配单元进行类型匹配以及第一提取信息单元提取该HLHDL IR类型所需信息填充至对应模板中;所述AST构建单元用于将封装好对应信息的HLHDL IR节点列表构建成HLHDL IR。
所述的前端转换模块包括第二匹配单元、第二提取信息单元、HCFIR代码模板单元以及第一保存单元;
所述的第二匹配单元用于对HLHDL IR中各个节点匹配其HLHDL IR类型;所述的第二提取信息单元用于从节点中提取匹配的HLHDL IR类型对应于HCFIR代码模板所需的信息;所述的HCFIR代码模板单元预先定义一系列根据HLHDL IR封装类对应的HCFIR代码模板,以供第二匹配单元进行类型匹配以及第二提取信息单元提取该HLHDL IR类型信息填充至对应的HCFIR代码模板;所述的第一保存单元用于根据HCFIR语法规则将HCFIR代码进行保存。
优选的,所述的后端由解析模块、转换序列模块以及后端转换模块组成,
所述的解析模块包括词法分析单元、语法分析单元以及IR AST封装模板类单元,所述的词法分析单元用于将HCFIR代码中字符流解析成词Token;所述的语法分析单元用于将词解析为抽象语法树AST;所述的IR AST封装模板类单元预先定义一系列IR AST封装类,以供通过访问者模式遍历语法分析单元生成的抽象语法树转换为所需的高级形式IR AST。
所述的转换序列模块用于将高级形式IR AST转换为低级形式IR AST,来缩小和下游格式之间的差距。
所述的后端转换模块包括第三匹配单元、第三提取信息单元、Verilog代码模板单元以及第二保存单元;
所述的第三匹配单元用于对低级形式IR AST中各个节点匹配其属于何种IR AST类型;所述的第三提取信息单元用于从节点中提取匹配的IR AST类型对应于Verilog代码模板所需的信息;所述的Verilog代码模板单元预先定义一系列根据IR AST类型对应的Verilog代码模板,以供第三匹配单元进行类型匹配以及第三提取信息单元提取该IR AST类型信息填充至对应的Verilog代码模板;所述的第二保存单元用于根据Verilog语法规则将Verilog代码保存在.v文件中。
与现有技术相比,本发明的有益效果是:
本发明相比于传统的编译器,本发明的输入为更高层次、更抽象化和更高度参数化的硬件描述语言,可以大大减少项目中重复代码,提升开发效率和代码的可读性、可维护性。本发明的输出为可综合的Verilog结构,可翻译成由与、或、非门等基本逻辑单元组成的门级连接,输出门级网表文件。
附图说明
图1是本发明的整体架构图。
图2是本发明的构建模块结构图。
图3是本发明的前端转换模块结构图。
图4是本发明的解析模块结构图。
图5是本发明的后端转换模块结构图。
图6是本发明硬件编译器框架的HLHDL IR类型。
图7是本发明硬件编译器框架的IR AST类型。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
以下结合附图和实施例对本发明做进一步的阐述。
实施例1
如图1、图2、图3、图4以及图5所示,一种应用于敏捷芯片开发的硬件编译系统,包括前端和后端,如图1所示,所述的前端用于将硬件描述语言HLHDL(High Level HardwareDescription Language)转换为另一硬件描述语言HCFIR(Hardware Compiler FrameworkIntermediate Representation);所述的后端主用于将前端的HCFIR语言转换为Verilog语言。
优选的,所述的前端由构建模块和前端转换模块组成;
如图2所示为构建模块。构建模块用于将高层次、高抽象化和高度参数化的HLHDL源码构建成HLHDL IR(抽象语法树形式)。
构建模块包括以下部分:
第一匹配单元:第一匹配单元用于针对HLHDL源码对应的抽象语法树中各个节点进行类型匹配,进而得出此节点属于何种HLHDL IR类型,反馈给第一提取信息单元以至于提取此HLHDL IR类型所需信息。
第一提取信息单元:第一提取信息单元根据匹配单元反馈此节点属于何种HLHDLIR类型信息,在HLHDL IR模板单元中寻找对应类型模板,从当前节点提取所需信息封装至HLHDL IR模板中。
HLHDL IR封装模板单元:HLHDL IR封装模板单元按功能分类预先定义一系列HLHDL IR封装模板类,以供第一匹配单元进行类型匹配以及第一提取信息单元针对对应类型的HLHDL IR封装模板类提取相应信息。
AST构建单元:AST构建单元根据特定规则将HLHDL源码对应的抽象语法树中各个节点经过第一匹配单元、第一提取信息单元和HLHDL IR封装模板单元后转换为对应的HLHDL IR节点列表构建生成抽象语法树HLHDL IR。
如图3所示为前端转换模块。前端转换模块用于将内存形式的HLHDL IR(抽象语法树)转换为HCFIR代码描述并且保存至磁盘形式.ir文件中。
前端转换模块包括以下部分:
第二匹配单元:第二匹配单元用于对HLHDL IR中各个节点进行类型匹配,进而得出此节点属于何种HLHDL IR类型类型,反馈给第二提取信息单元以至于提取此HLHDL IR类型对应的HCFIR代码模板所需信息。
第二提取信息单元:第二提取信息单元根据匹配单元反馈此节点属于何种HLHDLIR类型信息,在HCFIR代码模板单元中寻找此HLHDL IR类型对应的HCFIR代码模板,从当前节点提取所需信息封装至HCFIR代码模板中。
HCFIR代码模板单元:HCFIR代码模板单元预先定义了一系列对应HLHDL IR封装模板类的HCFIR代码模板,以供第二匹配单元进行类型匹配以及第二提取信息单元针对此HLHDL IR类型对应的HCFIR代码模板提取相应信息。
第一保存单元:第一保存单元根据HCFIR语法规则将HLHDL IR中各个节点经第二过匹配单元、第二提取信息单元和HCFIR代码模板单元后的HCFIR代码列表保存在.ir文件中。
优选的,所述的后端由解析模块、转换序列模块以及后端转换模块组成;
如图4所示为解析模块。解析模块用于将.ir文件中的HCFIR代码解析生成IR AST(抽象语法树)。解析模块包括以下部分:
词法分析单元:用于将.ir文件内容的字符流解析成词Token;
语法分析单元:用于将词法分析单元生成的词解析为抽象语法树AST;
IR AST封装模板类单元:按功能分类预先定义一系列IR AST封装模板类,以供通过访问者模式遍历语法分析单元生成的抽象语法树转换为我们所需的高级形式IR AST。
转换序列模块定义了一系列转换,用于将高级形式IR AST转换为低级形式IRAST,来缩小和下游格式之间的差距,如将高级功能批量连接重写为一系列单独的连接。
如图5所示为后端转换模块。后端转换模块用于将低级形式的IR AST(抽象语法树)转换为底层的Verilog代码并且保存至.v文件中。后端转换模块包括以下部分:
第三匹配单元:第三匹配单元用于对IR AST中各个节点进行类型匹配,进而得出此节点属于何种IR AST类型,反馈给第三提取信息单元以至于提取此IR AST类型对应的Verilog代码模板所需信息。
第三提取信息单元:第三提取信息单元根据匹配单元反馈此节点属于何种IR AST类型信息,在Verilog代码模板单元中寻找此IR AST类型对应的Verilog代码模板,从当前节点提取所需信息封装至Verilog代码模板中。
Verilog代码模板单元:Verilog代码模板单元预先定义了一系列对应IR AST封装模板类的Verilog代码模板,以供第三匹配单元进行类型匹配以及第三提取信息单元针对此IR AST类型对应的Verilog代码模板提取相应信息。
第二保存单元:第二保存单元根据Verilog语法规则将IR AST中各个节点经过第三匹配单元、第三提取信息单元和Verilog代码模板单元后的Verilog代码列表保存在.v文件中。
实施例2
结合图1对本硬件编译器框架工作流程做进一步说明,包括五个步骤:
步骤S1:HLHDL源码转换为HLHDL IR:首先针对HLHDL源码对应的抽象语法树中各个节点进入构建模块的第一匹配单元识别出此节点属于何种HLHDL IR类型;然后构建模块的第一提取信息单元从此节点中提取此HLHDL IR类型所需信息封装成HLHDL IR形式的节点;最后构建模块的AST构建单元将HLHDL IR形式的节点根据HLHDL源码对应的抽象语法树的层次关系重新封装成HLHDL IR(AST)。
其中本硬件编译器框架的HLHDL IR类型有五大类,且每个大类包含的封装类见图6。
步骤S2:HLHDL IR转换为HCFIR代码并且保存在.ir文件中:首先对HLHDL IR(AST)中各个节点进入前端转换模块的第二匹配单元识别出此节点属于何种HLHDL IR类型;然后前端转换模块的第二提取信息单元从HLHDL IR形式节点中提取此HLHDL IR类型对应的HCFIR代码模板所需信息重新封装成HCFIR代码;最后根据HCFIR语法规则将HCFIR代码保存在.ir文件中。
步骤S3:HCFIR代码转换为IR AST:保存HCFIR代码的.ir文件首先进入解析模块的词法分析单元将.ir文件内容的字符流解析成词Token;然后词法分析器生成的词通过语法分析器解析生成抽象语法树AST;最后通过访问者模式根据访问者模式策略文件规则遍历抽象语法树转换为高级形式IR AST。
其中本硬件编译器框架的IR AST类型有五大类,且每个大类包含的封装类见图7。
步骤S4:高级形式IR AST转换为低级形式IR AST:为了缩小和下游格式之间的差距并且进行如消除公共子表达式等优化,高级形式IR AST会通过转换序列转换为低级形式IR AST,其中IR AST由三种定义良好的形式(高级形式、中级形式、低级形式)组成,每种形式都使用比前一种形式更小、更明确和更简单的IR AST功能子集。低级形式的IR AST包含一组低级功能,这些功能可以直接映射到具有直接语义的Verilog结构。
步骤S5:低级形式IR AST转换为Verilog代码:首先对低级形式IR AST中各个节点进入后端转换模块的第三匹配单元识别出此节点属于何种IR AST类型;然后后端转换模块的第三提取信息单元从IR AST形式节点中提取此IR AST类型对应的Verilog代码模板所需信息重新封装成Verilog代码;最后根据Verilog语法规则将Verilog代码保存在.v文件中。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

Claims (2)

1.一种应用于敏捷芯片开发的硬件编译系统,其特征在于,包括前端和后端,所述的前端用于将硬件描述语言HLHDL转换为另一硬件描述语言HCFIR;所述的后端用于将前端的HCFIR语言转换为Verilog语言;
所述的前端由构建模块和前端转换模块组成,所述的构建模块包括第一匹配单元、第一提取信息单元、HLHDLIR封装模板单元以及AST构建单元;
所述的第一匹配单元用于针对HLHDL语言对应的抽象语法树中各个节点匹配其HLHDLIR类型;所述的第一提取信息单元用于从节点中提取匹配的HLHDL IR类型所需的信息;所述的HLHDL IR封装模板单元预先定义一系列HLHDL IR封装类,以供第一匹配单元进行类型匹配以及第一提取信息单元提取该HLHDL IR类型所需信息填充至对应模板中;所述AST构建单元用于将封装好对应信息的HLHDL IR节点列表构建成HLHDL IR;
所述的前端转换模块包括第二匹配单元、第二提取信息单元、HCFIR代码模板单元以及第一保存单元;
所述的第二匹配单元用于对HLHDL IR中各个节点匹配其HLHDL IR类型;所述的第二提取信息单元用于从节点中提取匹配的HLHDL IR类型对应于HCFIR代码模板所需的信息;所述的HCFIR代码模板单元预先定义一系列根据HLHDL IR封装类对应的HCFIR代码模板,以供第二匹配单元进行类型匹配以及第二提取信息单元提取该HLHDL IR类型信息填充至对应的HCFIR代码模板;所述的第一保存单元用于根据HCFIR语法规则将HCFIR代码进行保存。
2.根据权利要求1所述的一种应用于敏捷芯片开发的硬件编译系统,其特征在于,所述的后端由解析模块、转换序列模块以及后端转换模块组成,所述的解析模块包括词法分析单元、语法分析单元以及IR AST封装模板类单元;
所述的词法分析单元用于将HCFIR代码中字符流解析成词Token;所述的语法分析单元用于将词解析为抽象语法树AST;所述的IR AST封装模板类单元预先定义一系列IR AST封装类,以供通过访问者模式遍历语法分析单元生成的抽象语法树转换为所需的高级形式IRAST;
所述的转换序列模块用于将高级形式IR AST转换为低级形式IR AST,来缩小和下游格式之间的差距;
所述的后端转换模块包括第三匹配单元、第三提取信息单元、Verilog代码模板单元以及第二保存单元;
所述的第三匹配单元用于对低级形式IR AST中各个节点匹配其属于何种
IR AST类型;所述的第三提取信息单元用于从节点中提取匹配的IR AST类型对应于Verilog代码模板所需的信息;所述的Verilog代码模板单元预先定义一系列根据IR AST类型对应的Verilog代码模板,以供第三匹配单元进行类型匹配以及第三提取信息单元提取该IR AST类型信息填充至对应的Verilog代码模板;所述的第二保存单元用于根据Verilog语法规则将Verilog代码保存在.v文件中。
CN201910182123.4A 2019-03-11 2019-03-11 一种应用于敏捷芯片开发的硬件编译系统 Active CN109933332B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910182123.4A CN109933332B (zh) 2019-03-11 2019-03-11 一种应用于敏捷芯片开发的硬件编译系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910182123.4A CN109933332B (zh) 2019-03-11 2019-03-11 一种应用于敏捷芯片开发的硬件编译系统

Publications (2)

Publication Number Publication Date
CN109933332A CN109933332A (zh) 2019-06-25
CN109933332B true CN109933332B (zh) 2022-07-05

Family

ID=66986828

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910182123.4A Active CN109933332B (zh) 2019-03-11 2019-03-11 一种应用于敏捷芯片开发的硬件编译系统

Country Status (1)

Country Link
CN (1) CN109933332B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102611447A (zh) * 2012-03-26 2012-07-25 东北大学 一种基于fpga的加噪信号同步时钟提取装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8448150B2 (en) * 2008-11-21 2013-05-21 Korea University Industrial & Academic Collaboration Foundation System and method for translating high-level programming language code into hardware description language code
KR101694783B1 (ko) * 2014-11-28 2017-01-10 주식회사 파수닷컴 소스 코드의 오류 검출에 있어서 경보 유형 분류 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102611447A (zh) * 2012-03-26 2012-07-25 东北大学 一种基于fpga的加噪信号同步时钟提取装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
硬件描述语言VHDL到Verilog的翻译;郭建,刘建元,杜慧敏,韩俊刚,郝克刚,华庆一;《西北大学学报(自然科学版)》;20000229;第1-5页 *

Also Published As

Publication number Publication date
CN109933332A (zh) 2019-06-25

Similar Documents

Publication Publication Date Title
CN113051285B (zh) Sql语句的转换方法、系统、设备及存储介质
CN103412853B (zh) 一种针对文档转换器的测试用例自动生成方法
US20080244541A1 (en) Code translator and method of automatically translating modeling language code to hardware language code
US20070136698A1 (en) Method, system and apparatus for a parser for use in the processing of structured documents
KR101213890B1 (ko) 강한 데이터 유형을 이용하여 소프트웨어 프로그램에서음성 인식 문법을 나타내기 위한 방법
Wu et al. Exploiting attributed type graphs to generate metamodel instances using an SMT solver
CN112860256B (zh) 一种Linux内核设备树的可视化配置系统和方法
CN112988163B (zh) 编程语言智能适配方法、装置、电子设备和介质
CN108153522B (zh) 基于模型转换由midcore生成Spark和Hadoop程序代码的方法
US20230186024A1 (en) Text Processing Method, Device and Storage Medium
CN103336706B (zh) 将伪代码转换为编程语言的系统和方法
CN113742368A (zh) 一种数据血缘关系分析方法
CN114692532A (zh) 芯片系统的集成方法、装置及计算机可读存储介质
CN113391817B (zh) 基于antlr4的头文件替换方法及装置
CN112905450B (zh) 基于模板变量替换的芯片寄存器自动开发系统
CN109933332B (zh) 一种应用于敏捷芯片开发的硬件编译系统
CN110427179B (zh) 面向智能合约语言的msvl程序自动生成方法及系统
CN109471637B (zh) 电路图的审查脚本调试方法
CN115292347A (zh) 一种基于规则的主动式sql算法性能检查装置及方法
CN112835925B (zh) 一种嵌入式芯片sql语句解析方法
CN111984233B (zh) 一种AltaRica模型中类的平展化方法
CN102147731A (zh) 基于扩展功能需求描述框架的功能需求自动抽取系统
WO2008075087A1 (en) Code translator and method of automatically translating modelling language code to hardware language code
Huang et al. A high-performance bidirectional compiler for conversion between systemc and verilog
CN112417844A (zh) 一种并行的cim/e文件结构化解析方法

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