一种硬件描述语言VHDL规范检查工具制造技术

技术编号:29836643 阅读:9 留言:0更新日期:2021-08-27 14:26
本发明专利技术属于硬件描述语言规范检查工具设计技术领域,具体涉及一种硬件描述语言VHDL规范检查工具。本发明专利技术针对减少VHDL代码开发阶段产生的违反编码规范错误的需求,以Debian系统做为规范检测工具的使用环境,设计了一种硬件描述语言VHDL规范检查工具。本发明专利技术包括文件批处理模块、词法分析模块、语法分析模块、语义分析模块、问题定位模块,能够实现对VHDL编码规则约定进行自动检查,具有能够显示违反规则代码行数和文件名、支持命令行操作、支持多文件批量处理、对硬件性能要求低、支持主流的Linux系统等特点,提高了规范检查工具进行VHDL代码检测的效率和灵活性。

【技术实现步骤摘要】
一种硬件描述语言VHDL规范检查工具
本专利技术属于硬件描述语言规范检查工具设计
,具体涉及一种硬件描述语言VHDL规范检查工具。
技术介绍
VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的硬件设计语言。VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。在对一个设计实体定义了外部界面后,一旦其内部开发完成,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。VHDL相较于其他硬件描述具有:功能强大、设计灵活、支持广泛、易于修改、强大的系统硬件描述能力、独立于器件的设计且与工艺无关、具有很强的移植性、易于共享和复用等特点。词法分析的基本任务是从左至右逐个字符地对源程序进行扫描,产生一个个单词符号,把字符串形式的源程序改造成为单词符号串形式的中间程序。执行词法分析的程序称为词法分析程序,也称为词法分析器或扫描器。词法分析器的功能是输入源程序,输出单词符号。语法分析的基本任务是在词法分析识别出单词串的基础上,分析判断程序的语法结构是否符合语法规则。语言的语法结构用上下文无关文法(CFG)描述。因此,语法分析器的任务本质上是按上下文无关文法的产生式,确定整个单词串是否构成语法上正确的程序。语义分析的首要作用是审查每个语法成分的语义。如同在进行词法分析、语法分析的同时也进行着词法检查、语法检查一样,在语义分析时也必然要进行语义检查。动态语义检查需要生成相应的目标代码,它是在运行时进行的,静态语义检查则是在语法分析生成语法树后就立刻进行检查。语义分析包括:类型检查、控制流检查、一致性检查等几个部分。语义是上下文有关的,因此语义的形式化描述是非常困难的,目前较为常见的是用属性文法作为描述程序语言语义的工具,并采用语法制导翻译的方法完成对语法成分的翻译工作。现有技术中黄子桓.航天型号FPGA硬件描述语言代码检查软件设计[D].哈尔滨工业大学,2017公开了一种对硬件描述语言Verilog的代码规范检查工具,其开发的硬件检测工具以Windows系统作为使用环境,根据Verilog语言的语法规范进行词法分析和语法分析,将《Q/WE1117-2014二院型号FPGA硬件描述语言编程准则》作为代码检测的规范,基于MFC开发Notepad++扩展插件,实现图形界面显示。其开发的硬件语言规范检查工具与本专利技术的不同点在于:该方案的使用环境为Windows操作系统,而本专利技术的使用环境为Linux操作系统;该方案所检查的语言为Verilog语言,而本专利技术所检测的语言为VHDL语言;该方案实际上只进行词法分析和语法分析,对于语法规范中更为复杂的部分难以进行检测,而本专利技术在进行代码检测时进行词法分析、语法分析以及语义分析,能够对代码中更为深层的语义进行分析,从而达到对更多的语法规范进行检测的目的。
技术实现思路
本专利技术的目的在于提供一种硬件描述语言VHDL规范检查工具。本专利技术的目的通过如下技术方案来实现:包括文件批处理模块、词法分析模块、语法分析模块、语义分析模块、问题定位模块;所述的文件批处理模块对被检测的VHDL文件进行预处理并调用词法分析模块进行词法分析;所述的词法分析模块从左到右扫描VHDL文件,并将其字符流分割为token流;所述的token为源文件中不可再进一步分割的一串字符;所述的词法分析模块对输入的字符流与词法规则相对照,如果发现字符流中存在违反词法规则的字符,则记录下该字符出现在源文件的行数以及所违反规则的类型信息,将信息传递给问题定位模块用于在命令行中显示错误信息;所述的语法分析模块接收词法分析模块产生的token流,并将token流转换为语法树;如果某段token流不能够被识别,则记录下其出现在源文件的行数以及所违反规则的类型信息,将信息传递给问题定位模块用于在命令行中显示错误信息,对于能够被识别的token流,则生成一棵对应于相应语法结构的语法树,并且在语法树的每一个节点上记录下其属性;所述的语义分析模块接收语法分析模块产生的语法树,将语法树中节点的属性与语义分析模块内置的语义规则对比,进行语义分析;如果不符合语义规范,则记录下其出现在源文件的行数以及所违反规则的类型信息,并将信息传递给问题定位模块用于在命令行中显示错误信息;所述的属性包括继承属性和综合属性;所述的继承属性由语法树中结点的根结点属性计算得到,用于沿语法树根结点到分枝结点向下传递信息;所述的综合属性由语法树中结点的分枝结点属性计算得到,用于沿语法树分枝结点到根结点向上传递信息。本专利技术的有益效果在于:本专利技术针对减少VHDL代码开发阶段产生的违反编码规范错误的需求,以Debian系统做为规范检测工具的使用环境,设计了一种硬件描述语言VHDL规范检查工具。本专利技术包括文件批处理模块、词法分析模块、语法分析模块、语义分析模块、问题定位模块,能够实现对VHDL编码规则约定进行自动检查,具有能够显示违反规则代码行数和文件名、支持命令行操作、支持多文件批量处理、对硬件性能要求低、支持主流的Linux系统等特点,提高了规范检查工具进行VHDL代码检测的效率和灵活性。附图说明图1为本专利技术进行VHDL代码检查的流程框图。图2(a)为本专利技术中词法分析模块的工作示意图。图2(b)为本专利技术中语法分析模块的工作示意图。图2(c)为本专利技术中语义分析模块的工作示意图。图3为本专利技术的结构图。具体实施方式下面结合附图对本专利技术做进一步描述。本专利技术属于计算机领域下的硬件描述语言规范检查工具设计
本专利技术针对减少VHDL代码开发阶段产生的违反编码规范错误的需求,以Debian系统做为规范检测工具的使用环境,设计了一种硬件描述语言VHDL规范检查工具。本专利技术包括文件批处理模块、词法分析模块、语法分析模块、语义分析模块、问题定位模块,能够实现对VHDL编码规则约定进行自动检查,具有能够显示违反规则代码行数和文件名、支持命令行操作、支持多文件批量处理、对硬件性能要求低、支持主流的Linux系统等特点,提高了规范检查工具进行VHDL代码检测的效率和灵活性。本专利技术克服了传统硬件描述语言开发工具难以根据编码规范检测出VHDL代码中所存在的错误技术瓶颈,解决了VHDL代码检测问题。本专利技术分为五个部分:文件批处理模块、词法分析模块、语法分析模块、语义分析模块、问题定位模块。以此构建的规范检查工具能够对大量VHDL文件实现批量精确检查。当使用本专利技术检测VHDL文件时,文件批处理模块首先对被检测文件进行预处理并调用词法分析模块进行词法分析。词法分析模块从左到右扫描VHDL文件,并将其字符流分割为一个个词(token),其中token为源文件中不可再本文档来自技高网
...

【技术保护点】
1.一种硬件描述语言VHDL规范检查工具,其特征在于:包括文件批处理模块、词法分析模块、语法分析模块、语义分析模块、问题定位模块;所述的文件批处理模块对被检测的VHDL文件进行预处理并调用词法分析模块进行词法分析;所述的词法分析模块从左到右扫描VHDL文件,并将其字符流分割为token流;所述的token为源文件中不可再进一步分割的一串字符;所述的词法分析模块对输入的字符流与词法规则相对照,如果发现字符流中存在违反词法规则的字符,则记录下该字符出现在源文件的行数以及所违反规则的类型信息,将信息传递给问题定位模块用于在命令行中显示错误信息;所述的语法分析模块接收词法分析模块产生的token流,并将token流转换为语法树;如果某段token流不能够被识别,则记录下其出现在源文件的行数以及所违反规则的类型信息,将信息传递给问题定位模块用于在命令行中显示错误信息,对于能够被识别的token流,则生成一棵对应于相应语法结构的语法树,并且在语法树的每一个节点上记录下其属性;所述的语义分析模块接收语法分析模块产生的语法树,将语法树中节点的属性与语义分析模块内置的语义规则对比,进行语义分析;如果不符合语义规范,则记录下其出现在源文件的行数以及所违反规则的类型信息,并将信息传递给问题定位模块用于在命令行中显示错误信息;所述的属性包括继承属性和综合属性;所述的继承属性由语法树中结点的根结点属性计算得到,用于沿语法树根结点到分枝结点向下传递信息;所述的综合属性由语法树中结点的分枝结点属性计算得到,用于沿语法树分枝结点到根结点向上传递信息。/n...

【技术特征摘要】
1.一种硬件描述语言VHDL规范检查工具,其特征在于:包括文件批处理模块、词法分析模块、语法分析模块、语义分析模块、问题定位模块;所述的文件批处理模块对被检测的VHDL文件进行预处理并调用词法分析模块进行词法分析;所述的词法分析模块从左到右扫描VHDL文件,并将其字符流分割为token流;所述的token为源文件中不可再进一步分割的一串字符;所述的词法分析模块对输入的字符流与词法规则相对照,如果发现字符流中存在违反词法规则的字符,则记录下该字符出现在源文件的行数以及所违反规则的类型信息,将信息传递给问题定位模块用于在命令行中显示错误信息;所述的语法分析模块接收词法分析模块产生的token流,并将token流转换为语法树;如果某段token流不能够被识别,则记录下...

【专利技术属性】
技术研发人员:李思照王鹏武俊鹏
申请(专利权)人:哈尔滨工程大学
类型:发明
国别省市:黑龙江;23

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1