一种硬件语言自动转换系统技术方案

技术编号:9462685 阅读:69 留言:0更新日期:2013-12-18 23:51
本发明专利技术公开了一种硬件语言自动转换系统,所述转换系统包括词法分析模块,将字符序列转换为tokens,所述字符序列包括Verilog语言中的关键字、标识符、常数、字符串、运算符以及注释符;语法分析与语义检查模块,其中,语法分析基于Bison中规定的Verilog语言的语法规则,识别出Verilog程序中的表达式、语句、过程快、模块等结构,语义检查在语法分析的同时进行;中间表示存储,将得到Verilog源文件的各种结构体,以模块为单位作为中间表示;转换模块,根据Verilog语言与MSVL语言之间的语言转换规则将Verilog语言转换成MSVL语言。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种硬件语言自动转换系统,所述转换系统包括词法分析模块,将字符序列转换为tokens,所述字符序列包括Verilog语言中的关键字、标识符、常数、字符串、运算符以及注释符;语法分析与语义检查模块,其中,语法分析基于Bison中规定的Verilog语言的语法规则,识别出Verilog程序中的表达式、语句、过程快、模块等结构,语义检查在语法分析的同时进行;中间表示存储,将得到Verilog源文件的各种结构体,以模块为单位作为中间表示;转换模块,根据Verilog语言与MSVL语言之间的语言转换规则将Verilog语言转换成MSVL语言。【专利说明】一种硬件语言自动转换系统
本专利技术涉及硬件描述语言Verilog语言
,具体涉及一种硬件语言自动转换系统,用于将Verilog硬件描述程序转换到等价的MSVL代码。
技术介绍
软件仿真在硬件设计中有着非常重要的意义,是逻辑设计、验证和性能分析的主要手段。常用商业仿真产品,如Verilog,作为目前应用最广泛的一种硬件描述语言,它是电器电子工程协会(IEEE)标准之一,主要用于数字电子系统设计。该语言允许设计者使用它进行各种级别的逻辑设计,以及对数字逻辑系统进行仿真验证、时序分析、逻辑综合。目前,使用商业仿真软件已成为IC设计工程师们的首选,但商业仿真软件由于成本过高、使用环境复杂等局限性,不适用于性能分析和系统评测等一般应用。对于一般应用,有针对性的开发专有的仿真软件不仅可以节约成本、简化仿真环境,还能提高仿真速度。时序逻辑作为一种系统建模与验证工具已广泛应用于软件工程、数字电路设计等领域。投影时序逻辑(PTL)对ITL进行了扩展,而时序逻辑语言MSVL是PTL的一个可执行子集,它是一个集建模(Modeling)、仿真(Simulation)和验证为一体的时序逻辑程序设计语言,它将系统的建模与性质的描述统一于同一逻辑框架内,通过模型检测技术验证系统的性质。与此同时,投影时序逻辑在实时和混合系统,特别是安全危急系统的形式描述和验证方面也是极其有用的。此外,时序逻辑程序设计语言MSVL的语言结构和Veri log硬件描述语言有很多相似点,很容易产生对应的转换关系。通过实现从Verilog语言向MSVL语言的转化,对转化后的目标程序进行验证,可以实现对Verilog语言形式化模型的抽取,并且可以对该模型进行模型检测,这将大大提高Verilog语言程序的安全性和可靠性。
技术实现思路
鉴于现有技术的不足,本专利技术旨在于提供一种硬件语言转换器,实现将Verilog语言自动转换成MSVL语言,以实现对Verilog语言的程序进行仿真验证。为了实现上述目的,本专利技术采用的技术方案如下:一种硬件语言自动转换系统,所述转换器包括:词法分析模块:设有词法分析器,用于将Verilog源文件转换为tokens,其中,包括Verilog语言中的关键字、数值、字符串、标示符、运算符、间隔符以及注释符;语法分析与语义检查模块:设有语法分析器,用于识别Verilog语言中的语法结构;其中,在语法分析的同时进行语义检查;中间存储模块:用于将词法分析、语法分析、语义检查、符号处理后,得到的表示Verilog源文件的中间表示进行存储;转换程序模块:用于输入所述中间文件,并按照Verilog语言与MSVL语言之间的语言转换规则将Verilog语言转换成MSVL语言。需要说明的是,所述词法分析器为FLEX词法分析器;所述语法分析器为BISON语法分析器,基于 IEEE Standard for Verilog2001 标准。一种使用硬件语言转换系统将Verilog语言转换至MSVL语言的方法,所述方法包括以下步骤:第一步:将Verilog源程序导入词法分析模块,并将字符序列转换为tokens ;其中,所述字符序列包括Verilog语言中的关键字、数值、字符串、标示符、运算符、间隔符以及注释符;第二步:将所述token流导入语法分析与语义检查模块,识别Verilog语言中的结构,包括基本表达式、语句、块结构以及模块;第三步:将步骤二得到的中间表示进行存储;第四步:将所述中间表示作为输入,根据语言转换规则转换成对应的MSVL结构。需要说明的是,所述基本表达式包括原子表达式、算术表达式、逻辑表达式、条件表达式,时间长度表达式以及边沿信号。需要说明的是,所述语句包括begin/fork语句块、分支语句、循环控制语句、赋值语句、延时控制语句、电平敏感时间控制语句、边沿触发时间控制语句、任务和函数调用语句、变量声明/定义语句及系统输出语句。需要说明的是,所述块结构包括initial过程块、always过程快、函数定义以及任务定义。需要说明的是,所述转`换规则包括对基本表达式、语句和块结构转换规则。需要进一步说明的是,所述基本表达式的转换规则如下:假设e代表一个原子表达式,X和y是基本表达式:如果表达式为e,转换为MSVL表达式返回对应的e';如果x==y,转换为MSVL语句x=y ;如果表达式为xy,转换为 MSVL 语句 xy ;如果表达式为X =y,转换为 MSVL 语句 X: =X y ;如果表达式为X y,转换为 MSVL 语句 x y ;如果表达式为X ,转换为MSVL语句X: =X+1或者x: =x_l ;如果表达式为x&&y,转换为MSVL语句x and y ;如果表达式为X I |y,转换为MSVL语句X or y ;如果表达式为xy,转换为MSVL语句的谓词调用结构;如果表达式为(X),转换为MSVL语句(X);如果表达式为#x or# (X),转换为MSVL语句Ien (X);如果表达式为X为边沿信号,转换为MSVL语句的比较结构;如果表达式为X,y,转换为MSVL语句的X,y ;语句转换规则如下:语句由基本表达式+关键字+ ‘;’组成,假设exp是一个基本表达式,换转函数为 getExpString (exp);如果语句为exp;,转换为 getExprString (exp);;如果表达式为expl=exp2;,转换为 getExprString (expl): =getExprString (exp2);;如果为if_else 语句 /while 语句 /case语句,转换为 MSVL 的 if_else/while/case结构;如果为for/forever语句,转换为MSVL的while结构;如果为repeat语句,转换的MSVL的for结构;如果为wait语句,转换为MSVL的await结构;如果为event/选择语句,转换为MSVL的if_else结构;如果为delay/begin_end语句,转换为MSVL的顺序结构;如果为forkjoin语句,转换为MSVL的并行结构;如果为系统输出语句,转换为MSVL的output结构;如果为函数/任务调用语句,转换为MSVL的函数调用结构;如果为类型声明/定义语句,转换为MSVL的变量声明/定义结构;statement是一个语句;block是一个块结构,它由多条语句组成,对块结构进行转换规则如下:如果为initial块,转换为MSVL的顺序结构;如果为always块,本文档来自技高网
...

【技术保护点】
一种硬件语言自动转换系统,其特征在于,所述转换系统包括:词法分析模块:设有词法分析器,用于将Verilog源文件转换为tokens,其中,包括Verilog语言中的关键字、数值、字符串、标示符、运算符、间隔符以及注释符;语法分析与语义检查模块:设有语法分析器,用于识别Verilog语言中的语法结构;其中,在语法分析的同时进行语义检查;中间存储模块:用于将词法分析、语法分析、语义检查、符号处理后,得到的表示Verilog源文件的中间表示进行存储;转换程序模块:用于输入所述中间文件,并按照Verilog语言与MSVL语言之间的语言转换规则将Verilog语言转换成MSVL语言。

【技术特征摘要】

【专利技术属性】
技术研发人员:段振华刘静黄伯虎田聪王小兵
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:

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

1