一种基于脚本的用于辅助状态机逻辑代码设计的方法技术

技术编号:32857535 阅读:21 留言:0更新日期:2022-03-30 19:31
本发明专利技术提供了一种本发明专利技术涉及FPGA设计领域,具体涉及一种基于脚本的用于辅助状态机逻辑代码设计的方法。用户根据需求编写状态机的非初始化部分代码,在编写状态机时应编写二段式或三段式状态机,用户编写变量列表检索脚本将符号序列左侧的变量名提取出来后检索当前状态机已保存变量列表,用户编写状态机“case”语句分支完整性检测脚本,该脚本将根据“case”语句敏感变量的位宽自动计算应该有多少分支;用户编写状态机状态变换图生成脚本,该脚本将检索状态机的“case”语句;当更改设计时,只需要重新调用上述脚本就可以获得新状态机的相关辅助设计信息。该方法实施方便,高效稳定,可以大幅缩短人工编写状态机的时间,提高数字逻辑设计开发效率。辑设计开发效率。

【技术实现步骤摘要】
一种基于脚本的用于辅助状态机逻辑代码设计的方法


[0001]本专利技术涉及一种基于脚本的用于辅助状态机逻辑代码设计的方法,属于数字逻辑设计


技术介绍

[0002]目前,电子信息技术产业发展迅速,对于专用芯片的性能要求越来越高,在集成电路制技术迅速进步的同时,集成电路的复杂度呈指数增加,数字逻辑设计规模越来越大,状态机设计越来越复杂,包含大量的输出变量和变化状态,因此,人工编写状态机初始化变量列表变得费时费力,非常容易出现遗漏等问题,同时由于状态空间庞大,在设计时容易因考虑不周全出现代码逻辑错误等问题。

技术实现思路

[0003]本专利技术目的是提供了一种基于脚本的用于辅助状态机逻辑代码设计的方法,实施方便,流程简单,高效稳定,可以大幅缩短人工编写状态机的时间,提高数字逻辑设计开发效率。
[0004]本专利技术为实现上述目的,通过以下技术方案实现:一种基于脚本的用于辅助状态机逻辑代码设计的方法,其特征在于,具体步骤如下:1)用户根据需求编写状态机的非初始化部分代码,将状态机编写为二段式或三段式状态机,且在变量输出代码段应使用时序逻辑设计,在对状态信号命名时应遵循特定规律,当前状态信号名应添加“_cur”后缀,下一状态信号名应添加“_nex”后缀;2)用户编写变量列表检索脚本,将符号序列左侧的变量名提取出来后检索当前状态机已保存变量列表,如果是新变量名就保存至变量名列表结构体中,如果是已保存变量就丢弃该变量名,当扫描完成当前状态机代码后,脚本打印输出当前状态机所有被赋值变量列表;3)用户编写状态机“case”语句分支完整性检测脚本,该脚本将根据“case”语句敏感变量的位宽自动计算应该有多少分支,并以“:”符合序列为标志位,将符号序列左侧分支名保存在分支名结构体中,检索结构体中是否有“default”,若没有该分支就统计结构体中分支名个数是否与目标分支个数一直,并将结果打印输出;4)用户编写状态机状态变换图生成脚本,该脚本将检索状态机的“case”语句,获取各分支名及其中“_nex”标志序列右侧分支名,建立状态跳转结构体,结构体中存储当前状态的父状态名、子状态名和当前状态内输出变量名等信息,将结构体内容打印输出为状态机状态变换图;5)当更改设计时,只需要重新调用上述脚本就可以获得新状态机的相关辅助设计信息。
[0005]优选的,所述步骤2中脚本以状态机代码中的赋值符号序列
“ꢀ
=
ꢀ”

“ꢀ
<=
ꢀ”
为标志
位。
[0006]本专利技术的优点在于:本专利技术通过使用自动化脚本,自动化生成状态机初始化变量列表和状态变换图。当设计修改前端设计代码,只需要重新调用自动化脚本,即可获得新状态机的相关辅助设计信息。大幅提高了数字逻辑设计开发的效率,加快项目进度。
具体实施方式
[0007]下面将对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0008]首先,用户根据需求编写状态机的非初始化部分代码,在编写状态机时应编写二段式或三段式状态机,且在变量输出代码段应使用时序逻辑设计,在对状态信号命名时应遵循特定规律,当前状态信号名应添加“_cur”后缀,下一状态信号名应添加“_nex”后缀;然后,用户编写变量列表检索脚本,该脚本以状态机代码中的赋值符号序列
“ꢀ
=
ꢀ”

“ꢀ
<=
ꢀ”
为标志位,将符号序列左侧的变量名提取出来后检索当前状态机已保存变量列表,如果是新变量名就保存至变量名列表结构体中,如果是已保存变量就丢弃该变量名,当扫描完成当前状态机代码后,脚本打印输出当前状态机所有被赋值变量列表;然后,用户编写状态机“case”语句分支完整性检测脚本,该脚本将根据“case”语句敏感变量的位宽自动计算应该有多少分支,并以“:”符合序列为标志位,将符号序列左侧分支名保存在分支名结构体中,检索结构体中是否有“default”,若没有该分支就统计结构体中分支名个数是否与目标分支个数一直,并将结果打印输出;然后,用户编写状态机状态变换图生成脚本,该脚本将检索状态机的“case”语句,获取各分支名及其中“_nex”标志序列右侧分支名,建立状态跳转结构体,结构体中存储当前状态的父状态名、子状态名和当前状态内输出变量名等信息,将结构体内容打印输出为状态机状态变换图;最后,当更改设计时,只需要重新调用上述脚本就可以获得新状态机的相关辅助设计信息。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于脚本的用于辅助状态机逻辑代码设计的方法,其特征在于,具体步骤如下:1)用户根据需求编写状态机的非初始化部分代码,将状态机编写为二段式或三段式状态机,且在变量输出代码段应使用时序逻辑设计,在对状态信号命名时应遵循特定规律,当前状态信号名应添加“_cur”后缀,下一状态信号名应添加“_nex”后缀;2)用户编写变量列表检索脚本,将符号序列左侧的变量名提取出来后检索当前状态机已保存变量列表,如果是新变量名就保存至变量名列表结构体中,如果是已保存变量就丢弃该变量名,当扫描完成当前状态机代码后,脚本打印输出当前状态机所有被赋值变量列表;3)用户编写状态机“case”语句分支完整性检测脚本,该脚本将根据“case”语句敏感变量的位宽自动计算应该有多少分支,并以
“ꢀ
:”符合序列为标志位,将符号序列左侧分支名保存在分支名结...

【专利技术属性】
技术研发人员:赵鑫鑫李朋姜凯魏朝飞
申请(专利权)人:山东浪潮科学研究院有限公司
类型:发明
国别省市:

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

1