一种硬件语言自动转换系统.pdf

上传人:00062****4422 文档编号:1496348 上传时间:2018-06-18 格式:PDF 页数:9 大小:917.85KB
返回 下载 相关 举报
摘要
申请专利号:

CN201310454977.6

申请日:

2013.09.27

公开号:

CN103455362A

公开日:

2013.12.18

当前法律状态:

实审

有效性:

审中

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 9/45申请公布日:20131218|||实质审查的生效IPC(主分类):G06F 9/45申请日:20130927|||公开

IPC分类号:

G06F9/45

主分类号:

G06F9/45

申请人:

西安电子科技大学

发明人:

段振华; 刘静; 黄伯虎; 田聪; 王小兵

地址:

710071 陕西省西安市太白南路2号西安电子科技大学

优先权:

专利代理机构:

北京科亿知识产权代理事务所(普通合伙) 11350

代理人:

汤东凤

PDF下载: PDF下载
内容摘要

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

权利要求书

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

2.  一种使用根据权利要求1所述的转换系统将Verilog语言转换至MSVL语言的方法,其特征在于,所述方法包括以下步骤:
第一步:将Verilog源程序导入词法分析模块,并将字符序列转换为tokens;其中,所述字符序列包括Verilog语言中的关键字、数值、字符串、标示符、运算符、间隔符以及注释符;
第二步:将所述token流导入语法分析与语义检查模块,识别Verilog语言中的结构,包括基本表达式、语句、块结构以及模块;
第三步:将步骤二得到的中间表示进行存储;
第四步:将所述中间表示作为输入,根据语言转换规则转换成对应的MSVL结构。

3.  根据权利要求2所述的Verilog语言转换至MSVL语言的方法, 其特征在于,所述基本表达式包括原子表达式、算术表达式、逻辑表达式、条件表达式,时间长度表达式以及边沿信号。

4.  根据权利要求3所述的Verilog语言转换至MSVL语言的方法,其特征在于,所述语句包括begin/fork语句块、分支语句、循环控制语句、赋值语句、延时控制语句、电平敏感时间控制语句、边沿触发时间控制语句、任务和函数调用语句、变量声明/定义语句及系统输出语句。

5.  根据权利要求3所述的Verilog语言转换至MSVL语言的方法,其特征在于,所述块结构包括initial过程块、always过程快、函数定义以及任务定义。

6.  根据权利要求2所述的Verilog语言转换至MSVL语言的方法,其特征在于,所述转换规则包括对基本表达式、语句和块结构转换规则。

7.  根据权利要求2或6所述的Verilog语言转换至MSVL语言的方法,其特征在于,所述基本表达式的转换规则如下:
假设e代表一个原子表达式,x和y是基本表达式:
如果表达式为e,转换为MSVL表达式返回对应的e′;
如果x==y,转换为MSVL语句x=y;
如果表达式为x[+|-|*|/|%|!=]y,转换为MSVL语句x[+|-|*|/|%|!=]y;
如果表达式为x[+|-|*|/|%]=y,转换为MSVL语句x:=x[+|-|*|/|%]y;
如果表达式为x[<|>|<=|>=]y,转换为MSVL语句x[<|>|<=|>=]y;
如果表达式为x[++|--],转换为MSVL语句x:=x+1或者x:=x-1;
如果表达式为x&&y,转换为MSVL语句x and y;
如果表达式为x||y,转换为MSVL语句x or y;
如果表达式为x[&|||^|<<|>>]y,转换为MSVL语句的谓词调用结构;
如果表达式为(x),转换为MSVL语句(x);
如果表达式为#x or#(x),转换为MSVL语句len(x);
如果表达式为x为边沿信号,转换为MSVL语句的比较结构;
如果表达式为x,y,转换为MSVL语句的x,y;
语句转换规则如下:
语句由基本表达式+关键字+‘;’组成,假设exp是一个基本表达式,换转函数为getExpString(exp);
如果语句为exp;,转换为getExprString(exp);;
如果表达式为exp1=exp2;,转换为getExprString(exp1):=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的顺序结构;
如果为fork_join语句,转换为MSVL的并行结构;
如果为系统输出语句,转换为MSVL的output结构;
如果为函数/任务调用语句,转换为MSVL的函数调用结构;
如果为类型声明/定义语句,转换为MSVL的变量声明/定义结构;
statement是一个语句;block是一个块结构,它由多条语句组成,对块结构进行转换规则如下:
如果为initial块,转换为MSVL的顺序结构;
如果为always块,转换为MSVL的while结构。

说明书

说明书一种硬件语言自动转换系统
技术领域
本发明涉及硬件描述语言Verilog语言技术领域,具体涉及一种硬件语言自动转换系统,用于将Verilog硬件描述程序转换到等价的MSVL代码。
背景技术
软件仿真在硬件设计中有着非常重要的意义,是逻辑设计、验证和性能分析的主要手段。常用商业仿真产品,如Verilog,作为目前应用最广泛的一种硬件描述语言,它是电器电子工程协会(IEEE)标准之一,主要用于数字电子系统设计。该语言允许设计者使用它进行各种级别的逻辑设计,以及对数字逻辑系统进行仿真验证、时序分析、逻辑综合。
目前,使用商业仿真软件已成为IC设计工程师们的首选,但商业仿真软件由于成本过高、使用环境复杂等局限性,不适用于性能分析和系统评测等一般应用。对于一般应用,有针对性的开发专有的仿真软件不仅可以节约成本、简化仿真环境,还能提高仿真速度。
时序逻辑作为一种系统建模与验证工具已广泛应用于软件工程、数字电路设计等领域。投影时序逻辑(PTL)对ITL进行了扩展,而时序逻辑语言MSVL是PTL的一个可执行子集,它是一个集建模(Modeling)、仿真(Simulation)和验证为一体的时序逻辑程序设 计语言,它将系统的建模与性质的描述统一于同一逻辑框架内,通过模型检测技术验证系统的性质。与此同时,投影时序逻辑在实时和混合系统,特别是安全危急系统的形式描述和验证方面也是极其有用的。
此外,时序逻辑程序设计语言MSVL的语言结构和Verilog硬件描述语言有很多相似点,很容易产生对应的转换关系。通过实现从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;
如果表达式为x[+|-|*|/|%|!=]y,转换为MSVL语句x[+|-|*|/|%|!=]y;
如果表达式为x[+|-|*|/|%]=y,转换为MSVL语句x:=x[+|-|*|/|%]y;
如果表达式为x[<|>|<=|>=]y,转换为MSVL语句x[<|>|<=|>=]y;
如果表达式为x[++|--],转换为MSVL语句x:=x+1或者x:=x-1;
如果表达式为x&&y,转换为MSVL语句x and y;
如果表达式为x||y,转换为MSVL语句x or y;
如果表达式为x[&|||^|<<|>>]y,转换为MSVL语句的谓词调用结构;
如果表达式为(x),转换为MSVL语句(x);
如果表达式为#x or#(x),转换为MSVL语句len(x);
如果表达式为x为边沿信号,转换为MSVL语句的比较结构;
如果表达式为x,y,转换为MSVL语句的x,y;
语句转换规则如下:
语句由基本表达式+关键字+‘;’组成,假设exp是一个基本表达式,换转函数为getExpString(exp);
如果语句为exp;,转换为getExprString(exp);;
如果表达式为exp1=exp2;,转换为getExprString(exp1):=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的顺序结构;
如果为fork_join语句,转换为MSVL的并行结构;
如果为系统输出语句,转换为MSVL的output结构;
如果为函数/任务调用语句,转换为MSVL的函数调用结构;
如果为类型声明/定义语句,转换为MSVL的变量声明/定义结构;
statement是一个语句;block是一个块结构,它由多条语句组成,对块结构进行转换规则如下:
如果为initial块,转换为MSVL的顺序结构;
如果为always块,转换为MSVL的while结构。
在上述技术方案的基础上,逐模块递归的对每个结构进行转换,直到文件所有模块转化完毕。
本发明有益效果在于,将Verilog语言转换成MSVL语言。通过对不同存储结构的转化定义,实现对Verilog程序的转换,得到的等价的MSVL语言同样可以执行程序仿真。同时,可以将需要验证的性质用MSVL的命题逻辑表示。Verilog程序转换为MSVL程序后,模型构造与性质描述使用同一种语言,使得建模与验证在同一逻辑框架下进行,方便地实现对Verilog语言程序的模型检测。
其次,MSVL的建模和模型检测方法的逻辑基础是属于形式化方法的时序逻辑,本发明通过实现Verilog程序向MSVL程序转换,实现了用形式化的方法进行模型检测,保证了Verilog程序所建模型验证和检测的有效性和可靠性。
附图说明
图1为本发明硬件语言转换器的流程示意图;
图2为Verilog语言程序词法分析与语法分析的关系图。
具体实施方式
下面将结合附图对本发明作进一步的描述。
如图1、图2所示,本发明为一种硬件语言自动转换系统,所述转换系统包括:
词法分析模块:设有词法分析器,用于将Verilog源文件转换为tokens,其中,包括Verilog语言中的关键字、数值、字符串、标示符、运算符、间隔符以及注释符;
语法分析与语义检查模块:设有语法分析器,用于识别Verilog语言中的语法结构;其中,在语法分析的同时进行语义检查;
中间存储模块:用于将词法分析、语法分析、语义检查、符号处理后,得到表示Verilog源文件的中间表示,对所述中间文件进行存储;
转换程序模块:用于输入所述中间文件,并按照Verilog语言与MSVL语言之间的语言转换规则将Verilog语言转换成MSVL语言。
需要说明的是,所述词法分析器为FLEX词法分析器;所述语法分析器为BISON语法分析器,基于IEEE Standard for Verilog2001标准。
一种使用硬件语言自动转换系统将Verilog语言转换成MSVL语言的方法,所述方法包括以下步骤:
第一步,将Verilog源程序导入词法分析模块,该步骤包括将字符序列转换为tokens,所述字符序列包括Verilog语言中的关键字、数值、字符串、标示符、运算符、间隔符以及注释符;
其中,经过词法分析,从Verilog程序中的头文件部分获取所要调用的子模块;
至此,通过词法分析器,实现了对源语言Verilog语言的程序进行词法分析的功能。
第二步,将第一步得到的token流导入语法分析与语义检查模块,该步骤基于bison中所规定的Verilog语言的语法规则,识别出Verilog语言中的结构,包括基本表达式、语句、块结构,以及模块;
如图1所示,对输入的Verilog程序用词法分析器实现词法分析,生成的token流作为bison语法分析器的输入,语法分析程序根据Verilog语言的语法规则,识别出verilog中的语句、块结构、模块等结构。
第三步,将第二步得到的中间表示进行存储。每一种类型存储在特定的类型定义中。
第四步,将第三步的中间表示作为输入,根据相应的转换规则转换成对应的MSVL结构;
需要说明的是,语法分析模块中所述的Verilog语言中的结构包括:1、原子表达式:包括常量、变量;
2、基本表达式:包括原子表达式、算术表达式、逻辑表达式、条件表达式,时间长度表达式,边沿信号;
3、语句:包括begin/fork语句块、分支语句、循环控制语句、赋值语句、延时控制语句、电平敏感时间控制语句、边沿触发时间控制语句、任务和函数调用语句、变量声明/定义语句及系统输出语句;
4、块结构:包括initial过程块、always过程快、函数定义、任务定义;
5、模块。
需要说明的是,定义转换规则包括定义对基本表达式转换规则、语句转换规则和块结构转换规则。
对基本表达式进行转化:
假设e代表一个原子表达式,x和y是基本表达式:
如果表达式为e,转换为MSVL表达式返回对应的e′(e与e′不一定一样);
如果x==y,转换为MSVL语句x=y;
如果表达式为x[+|-|*|/|%|!=]y,转换为MSVL语句x[+|-|*|/|%|!=]y;
如果表达式为x[+|-|*|/|%]=y,转换为MSVL语句x:=x[+|-|*|/|%]y;
如果表达式为x[<|>|<=|>=]y,转换为MSVL语句x[<|>|<=|>=]y;
如果表达式为x[++|--],转换为MSVL语句x:=x+1或者x:=x-1;
如果表达式为x&&y,转换为MSVL语句x and y;
如果表达式为x||y,转换为MSVL语句x or y;
如果表达式为x[&|||^|<<|>>]y,转换为MSVL语句的谓词调用结构;
如果表达式为(x),转换为MSVL语句(x);
如果表达式为#x or#(x),转换为MSVL语句len(x);
如果表达式为x为边沿信号,转换为MSVL语句的比较结构;
如果表达式为x,y,转换为MSVL语句的x,y;
对语句进行转化:
如果语句为exp;,转换为getExprString(exp);;
如果表达式为exp1=exp2;,转换为getExprString(exp1):=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的顺序结构;
如果为fork_join语句,转换为MSVL的并行结构;
如果为系统输出语句,转换为MSVL的output结构;
如果为函数/任务调用语句,转换为MSVL的函数调用结构;
如果为类型声明/定义语句,转换为MSVL的变量声明/定义结构;
对块结构进行转化:
如果为initial块,转换为MSVL的顺序结构;
如果为always块,转换为MSVL的while结构;
分别逐模块递归对每个结构进行转化,直到文件中所有模块转化完毕。

一种硬件语言自动转换系统.pdf_第1页
第1页 / 共9页
一种硬件语言自动转换系统.pdf_第2页
第2页 / 共9页
一种硬件语言自动转换系统.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《一种硬件语言自动转换系统.pdf》由会员分享,可在线阅读,更多相关《一种硬件语言自动转换系统.pdf(9页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103455362 A(43)申请公布日 2013.12.18CN103455362A*CN103455362A*(21)申请号 201310454977.6(22)申请日 2013.09.27G06F 9/45(2006.01)(71)申请人西安电子科技大学地址 710071 陕西省西安市太白南路2号西安电子科技大学(72)发明人段振华 刘静 黄伯虎 田聪王小兵(74)专利代理机构北京科亿知识产权代理事务所(普通合伙) 11350代理人汤东凤(54) 发明名称一种硬件语言自动转换系统(57) 摘要本发明公开了一种硬件语言自动转换系统,所述转换系统包括词法分析模块,将。

2、字符序列转换为tokens,所述字符序列包括Verilog语言中的关键字、标识符、常数、字符串、运算符以及注释符;语法分析与语义检查模块,其中,语法分析基于Bison中规定的Verilog语言的语法规则,识别出Verilog程序中的表达式、语句、过程快、模块等结构,语义检查在语法分析的同时进行;中间表示存储,将得到Verilog源文件的各种结构体,以模块为单位作为中间表示;转换模块,根据Verilog语言与MSVL语言之间的语言转换规则将Verilog语言转换成MSVL语言。(51)Int.Cl.权利要求书2页 说明书5页 附图1页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要。

3、求书2页 说明书5页 附图1页(10)申请公布号 CN 103455362 ACN 103455362 A1/2页21.一种硬件语言自动转换系统,其特征在于,所述转换系统包括:词法分析模块:设有词法分析器,用于将Verilog源文件转换为tokens,其中,包括Verilog语言中的关键字、数值、字符串、标示符、运算符、间隔符以及注释符;语法分析与语义检查模块:设有语法分析器,用于识别Verilog语言中的语法结构;其中,在语法分析的同时进行语义检查;中间存储模块:用于将词法分析、语法分析、语义检查、符号处理后,得到的表示Verilog源文件的中间表示进行存储;转换程序模块:用于输入所述中间文。

4、件,并按照Verilog语言与MSVL语言之间的语言转换规则将Verilog语言转换成MSVL语言。2.一种使用根据权利要求1所述的转换系统将Verilog语言转换至MSVL语言的方法,其特征在于,所述方法包括以下步骤:第一步:将Verilog源程序导入词法分析模块,并将字符序列转换为tokens;其中,所述字符序列包括Verilog语言中的关键字、数值、字符串、标示符、运算符、间隔符以及注释符;第二步:将所述token流导入语法分析与语义检查模块,识别Verilog语言中的结构,包括基本表达式、语句、块结构以及模块;第三步:将步骤二得到的中间表示进行存储;第四步:将所述中间表示作为输入,根据。

5、语言转换规则转换成对应的MSVL结构。3.根据权利要求2所述的Verilog语言转换至MSVL语言的方法,其特征在于,所述基本表达式包括原子表达式、算术表达式、逻辑表达式、条件表达式,时间长度表达式以及边沿信号。4.根据权利要求3所述的Verilog语言转换至MSVL语言的方法,其特征在于,所述语句包括begin/fork语句块、分支语句、循环控制语句、赋值语句、延时控制语句、电平敏感时间控制语句、边沿触发时间控制语句、任务和函数调用语句、变量声明/定义语句及系统输出语句。5.根据权利要求3所述的Verilog语言转换至MSVL语言的方法,其特征在于,所述块结构包括initial过程块、alw。

6、ays过程快、函数定义以及任务定义。6.根据权利要求2所述的Verilog语言转换至MSVL语言的方法,其特征在于,所述转换规则包括对基本表达式、语句和块结构转换规则。7.根据权利要求2或6所述的Verilog语言转换至MSVL语言的方法,其特征在于,所述基本表达式的转换规则如下:假设e代表一个原子表达式,x和y是基本表达式:如果表达式为e,转换为MSVL表达式返回对应的e;如果x=y,转换为MSVL语句x=y;如果表达式为x+|-|*|/|%|!=y,转换为MSVL语句x+|-|*|/|%|!=y;如果表达式为x+|-|*|/|%=y,转换为MSVL语句x:=x+|-|*|/|%y;如果表达。

7、式为x|=y,转换为MSVL语句x|=y;如果表达式为x+|-,转换为MSVL语句x:=x+1或者x:=x-1;如果表达式为x,转换为getExprString(exp);;如果表达式为exp1=exp2;,转换为getExprString(exp1):=getExprString(exp2);;如果为if_else语句/while语句/case语句,转换为MSVL的if_else/while/case结构;如果为for/forever语句,转换为MSVL的while结构;如果为repeat语句,转换的MSVL的for结构;如果为wait语句,转换为MSVL的await结构;如果为event/。

8、选择语句,转换为MSVL的if_else结构;如果为delay/begin_end语句,转换为MSVL的顺序结构;如果为fork_join语句,转换为MSVL的并行结构;如果为系统输出语句,转换为MSVL的output结构;如果为函数/任务调用语句,转换为MSVL的函数调用结构;如果为类型声明/定义语句,转换为MSVL的变量声明/定义结构;statement是一个语句;block是一个块结构,它由多条语句组成,对块结构进行转换规则如下:如果为initial块,转换为MSVL的顺序结构;如果为always块,转换为MSVL的while结构。权 利 要 求 书CN 103455362 A1/5页4。

9、一种硬件语言自动转换系统技术领域0001 本发明涉及硬件描述语言Verilog语言技术领域,具体涉及一种硬件语言自动转换系统,用于将Verilog硬件描述程序转换到等价的MSVL代码。背景技术0002 软件仿真在硬件设计中有着非常重要的意义,是逻辑设计、验证和性能分析的主要手段。常用商业仿真产品,如Verilog,作为目前应用最广泛的一种硬件描述语言,它是电器电子工程协会(IEEE)标准之一,主要用于数字电子系统设计。该语言允许设计者使用它进行各种级别的逻辑设计,以及对数字逻辑系统进行仿真验证、时序分析、逻辑综合。0003 目前,使用商业仿真软件已成为IC设计工程师们的首选,但商业仿真软件由于。

10、成本过高、使用环境复杂等局限性,不适用于性能分析和系统评测等一般应用。对于一般应用,有针对性的开发专有的仿真软件不仅可以节约成本、简化仿真环境,还能提高仿真速度。0004 时序逻辑作为一种系统建模与验证工具已广泛应用于软件工程、数字电路设计等领域。投影时序逻辑(PTL)对ITL进行了扩展,而时序逻辑语言MSVL是PTL的一个可执行子集,它是一个集建模(Modeling)、仿真(Simulation)和验证为一体的时序逻辑程序设计语言,它将系统的建模与性质的描述统一于同一逻辑框架内,通过模型检测技术验证系统的性质。与此同时,投影时序逻辑在实时和混合系统,特别是安全危急系统的形式描述和验证方面也是。

11、极其有用的。0005 此外,时序逻辑程序设计语言MSVL的语言结构和Verilog硬件描述语言有很多相似点,很容易产生对应的转换关系。通过实现从Verilog语言向MSVL语言的转化,对转化后的目标程序进行验证,可以实现对Verilog语言形式化模型的抽取,并且可以对该模型进行模型检测,这将大大提高Verilog语言程序的安全性和可靠性。发明内容0006 鉴于现有技术的不足,本发明旨在于提供一种硬件语言转换器,实现将Verilog语言自动转换成MSVL语言,以实现对Verilog语言的程序进行仿真验证。0007 为了实现上述目的,本发明采用的技术方案如下:0008 一种硬件语言自动转换系统,所。

12、述转换器包括:0009 词法分析模块:设有词法分析器,用于将Verilog源文件转换为tokens,其中,包括Verilog语言中的关键字、数值、字符串、标示符、运算符、间隔符以及注释符;0010 语法分析与语义检查模块:设有语法分析器,用于识别Verilog语言中的语法结构;其中,在语法分析的同时进行语义检查;0011 中间存储模块:用于将词法分析、语法分析、语义检查、符号处理后,得到的表示Verilog源文件的中间表示进行存储;0012 转换程序模块:用于输入所述中间文件,并按照Verilog语言与MSVL语言之间的说 明 书CN 103455362 A2/5页5语言转换规则将Verilo。

13、g语言转换成MSVL语言。0013 需要说明的是,所述词法分析器为FLEX词法分析器;所述语法分析器为BISON语法分析器,基于IEEE Standard for Verilog2001标准。0014 一种使用硬件语言转换系统将Verilog语言转换至MSVL语言的方法,所述方法包括以下步骤:0015 第一步:将Verilog源程序导入词法分析模块,并将字符序列转换为tokens;其中,所述字符序列包括Verilog语言中的关键字、数值、字符串、标示符、运算符、间隔符以及注释符;0016 第二步:将所述token流导入语法分析与语义检查模块,识别Verilog语言中的结构,包括基本表达式、语句。

14、、块结构以及模块;0017 第三步:将步骤二得到的中间表示进行存储;0018 第四步:将所述中间表示作为输入,根据语言转换规则转换成对应的MSVL结构。0019 需要说明的是,所述基本表达式包括原子表达式、算术表达式、逻辑表达式、条件表达式,时间长度表达式以及边沿信号。0020 需要说明的是,所述语句包括begin/fork语句块、分支语句、循环控制语句、赋值语句、延时控制语句、电平敏感时间控制语句、边沿触发时间控制语句、任务和函数调用语句、变量声明/定义语句及系统输出语句。0021 需要说明的是,所述块结构包括initial过程块、always过程快、函数定义以及任务定义。0022 需要说明。

15、的是,所述转换规则包括对基本表达式、语句和块结构转换规则。0023 需要进一步说明的是,所述基本表达式的转换规则如下:0024 假设e代表一个原子表达式,x和y是基本表达式:0025 如果表达式为e,转换为MSVL表达式返回对应的e;0026 如果x=y,转换为MSVL语句x=y;0027 如果表达式为x+|-|*|/|%|!=y,转换为MSVL语句x+|-|*|/|%|!=y;0028 如果表达式为x+|-|*|/|%=y,转换为MSVL语句x:=x+|-|*|/|%y;0029 如果表达式为x|=y,转换为MSVL语句x|=y;0030 如果表达式为x+|-,转换为MSVL语句x:=x+1。

16、或者x:=x-1;0031 如果表达式为x,转换为getExprString(exp);;说 明 书CN 103455362 A3/5页60041 如果表达式为exp1=exp2;,转换为getExprString(exp1):=getExprString(exp2);;0042 如果为if_else语句/while语句/case语句,转换为MSVL的if_else/while/case结构;0043 如果为for/forever语句,转换为MSVL的while结构;0044 如果为repeat语句,转换的MSVL的for结构;0045 如果为wait语句,转换为MSVL的await结构;00。

17、46 如果为event/选择语句,转换为MSVL的if_else结构;0047 如果为delay/begin_end语句,转换为MSVL的顺序结构;0048 如果为fork_join语句,转换为MSVL的并行结构;0049 如果为系统输出语句,转换为MSVL的output结构;0050 如果为函数/任务调用语句,转换为MSVL的函数调用结构;0051 如果为类型声明/定义语句,转换为MSVL的变量声明/定义结构;0052 statement是一个语句;block是一个块结构,它由多条语句组成,对块结构进行转换规则如下:0053 如果为initial块,转换为MSVL的顺序结构;0054 如果为。

18、always块,转换为MSVL的while结构。0055 在上述技术方案的基础上,逐模块递归的对每个结构进行转换,直到文件所有模块转化完毕。0056 本发明有益效果在于,将Verilog语言转换成MSVL语言。通过对不同存储结构的转化定义,实现对Verilog程序的转换,得到的等价的MSVL语言同样可以执行程序仿真。同时,可以将需要验证的性质用MSVL的命题逻辑表示。Verilog程序转换为MSVL程序后,模型构造与性质描述使用同一种语言,使得建模与验证在同一逻辑框架下进行,方便地实现对Verilog语言程序的模型检测。0057 其次,MSVL的建模和模型检测方法的逻辑基础是属于形式化方法的时。

19、序逻辑,本发明通过实现Verilog程序向MSVL程序转换,实现了用形式化的方法进行模型检测,保证了Verilog程序所建模型验证和检测的有效性和可靠性。附图说明0058 图1为本发明硬件语言转换器的流程示意图;0059 图2为Verilog语言程序词法分析与语法分析的关系图。具体实施方式0060 下面将结合附图对本发明作进一步的描述。0061 如图1、图2所示,本发明为一种硬件语言自动转换系统,所述转换系统包括:0062 词法分析模块:设有词法分析器,用于将Verilog源文件转换为tokens,其中,包括Verilog语言中的关键字、数值、字符串、标示符、运算符、间隔符以及注释符;0063。

20、 语法分析与语义检查模块:设有语法分析器,用于识别Verilog语言中的语法结构;其中,在语法分析的同时进行语义检查;说 明 书CN 103455362 A4/5页70064 中间存储模块:用于将词法分析、语法分析、语义检查、符号处理后,得到表示Verilog源文件的中间表示,对所述中间文件进行存储;0065 转换程序模块:用于输入所述中间文件,并按照Verilog语言与MSVL语言之间的语言转换规则将Verilog语言转换成MSVL语言。0066 需要说明的是,所述词法分析器为FLEX词法分析器;所述语法分析器为BISON语法分析器,基于IEEE Standard for Verilog20。

21、01标准。0067 一种使用硬件语言自动转换系统将Verilog语言转换成MSVL语言的方法,所述方法包括以下步骤:0068 第一步,将Verilog源程序导入词法分析模块,该步骤包括将字符序列转换为tokens,所述字符序列包括Verilog语言中的关键字、数值、字符串、标示符、运算符、间隔符以及注释符;0069 其中,经过词法分析,从Verilog程序中的头文件部分获取所要调用的子模块;0070 至此,通过词法分析器,实现了对源语言Verilog语言的程序进行词法分析的功能。0071 第二步,将第一步得到的token流导入语法分析与语义检查模块,该步骤基于bison中所规定的Verilog。

22、语言的语法规则,识别出Verilog语言中的结构,包括基本表达式、语句、块结构,以及模块;0072 如图1所示,对输入的Verilog程序用词法分析器实现词法分析,生成的token流作为bison语法分析器的输入,语法分析程序根据Verilog语言的语法规则,识别出verilog中的语句、块结构、模块等结构。0073 第三步,将第二步得到的中间表示进行存储。每一种类型存储在特定的类型定义中。0074 第四步,将第三步的中间表示作为输入,根据相应的转换规则转换成对应的MSVL结构;0075 需要说明的是,语法分析模块中所述的Verilog语言中的结构包括:1、原子表达式:包括常量、变量;0076。

23、 2、基本表达式:包括原子表达式、算术表达式、逻辑表达式、条件表达式,时间长度表达式,边沿信号;0077 3、语句:包括begin/fork语句块、分支语句、循环控制语句、赋值语句、延时控制语句、电平敏感时间控制语句、边沿触发时间控制语句、任务和函数调用语句、变量声明/定义语句及系统输出语句;0078 4、块结构:包括initial过程块、always过程快、函数定义、任务定义;0079 5、模块。0080 需要说明的是,定义转换规则包括定义对基本表达式转换规则、语句转换规则和块结构转换规则。0081 对基本表达式进行转化:0082 假设e代表一个原子表达式,x和y是基本表达式:0083 如果。

24、表达式为e,转换为MSVL表达式返回对应的e(e与e不一定一样);0084 如果x=y,转换为MSVL语句x=y;说 明 书CN 103455362 A5/5页80085 如果表达式为x+|-|*|/|%|!=y,转换为MSVL语句x+|-|*|/|%|!=y;0086 如果表达式为x+|-|*|/|%=y,转换为MSVL语句x:=x+|-|*|/|%y;0087 如果表达式为x|=y,转换为MSVL语句x|=y;0088 如果表达式为x+|-,转换为MSVL语句x:=x+1或者x:=x-1;0089 如果表达式为x,转换为getExprString(exp);;0098 如果表达式为exp1。

25、=exp2;,转换为getExprString(exp1):=getExprString(exp2);;0099 如果为if_else/while/case语句,转换为MSVL的if_else/while/case结构;0100 如果为for/forever语句,转换为MSVL的while结构;0101 如果为repeat语句,转换的MSVL的for结构;0102 如果为wait语句,转换为MSVL的await结构;0103 如果为event/选择语句,转换为MSVL的if_else结构;0104 如果为delay/begin_end语句,转换为MSVL的顺序结构;0105 如果为fork_join语句,转换为MSVL的并行结构;0106 如果为系统输出语句,转换为MSVL的output结构;0107 如果为函数/任务调用语句,转换为MSVL的函数调用结构;0108 如果为类型声明/定义语句,转换为MSVL的变量声明/定义结构;0109 对块结构进行转化:0110 如果为initial块,转换为MSVL的顺序结构;0111 如果为always块,转换为MSVL的while结构;0112 分别逐模块递归对每个结构进行转化,直到文件中所有模块转化完毕。说 明 书CN 103455362 A1/1页9图1图2说 明 书 附 图CN 103455362 A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1