CN114253524A - 一种基于脚本的用于辅助状态机逻辑代码设计的方法 - Google Patents

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

Info

Publication number
CN114253524A
CN114253524A CN202111561133.2A CN202111561133A CN114253524A CN 114253524 A CN114253524 A CN 114253524A CN 202111561133 A CN202111561133 A CN 202111561133A CN 114253524 A CN114253524 A CN 114253524A
Authority
CN
China
Prior art keywords
state machine
script
variable
name
state
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.)
Granted
Application number
CN202111561133.2A
Other languages
English (en)
Other versions
CN114253524B (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.)
Shandong Inspur Science Research Institute Co Ltd
Original Assignee
Shandong Inspur Science Research Institute Co Ltd
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 Shandong Inspur Science Research Institute Co Ltd filed Critical Shandong Inspur Science Research Institute Co Ltd
Priority to CN202111561133.2A priority Critical patent/CN114253524B/zh
Publication of CN114253524A publication Critical patent/CN114253524A/zh
Application granted granted Critical
Publication of CN114253524B publication Critical patent/CN114253524B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/313Logic programming, e.g. PROLOG programming language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • G06F8/355Round-trip engineering

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

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

Description

一种基于脚本的用于辅助状态机逻辑代码设计的方法
技术领域
本发明涉及一种基于脚本的用于辅助状态机逻辑代码设计的方法,属于数字逻辑设计技术领域。
背景技术
目前,电子信息技术产业发展迅速,对于专用芯片的性能要求越来越高,在集成电路制技术迅速进步的同时,集成电路的复杂度呈指数增加,数字逻辑设计规模越来越大,状态机设计越来越复杂,包含大量的输出变量和变化状态,因此,人工编写状态机初始化变量列表变得费时费力,非常容易出现遗漏等问题,同时由于状态空间庞大,在设计时容易因考虑不周全出现代码逻辑错误等问题。
发明内容
本发明目的是提供了一种基于脚本的用于辅助状态机逻辑代码设计的方法,实施方便,流程简单,高效稳定,可以大幅缩短人工编写状态机的时间,提高数字逻辑设计开发效率。
本发明为实现上述目的,通过以下技术方案实现:
一种基于脚本的用于辅助状态机逻辑代码设计的方法,其特征在于,具体步骤如下:
1)用户根据需求编写状态机的非初始化部分代码,将状态机编写为二段式或三段式状态机,且在变量输出代码段应使用时序逻辑设计,在对状态信号命名时应遵循特定规律,当前状态信号名应添加“_cur”后缀,下一状态信号名应添加“_nex”后缀;
2)用户编写变量列表检索脚本,将符号序列左侧的变量名提取出来后检索当前状态机已保存变量列表,如果是新变量名就保存至变量名列表结构体中,如果是已保存变量就丢弃该变量名,当扫描完成当前状态机代码后,脚本打印输出当前状态机所有被赋值变量列表;
3)用户编写状态机“case”语句分支完整性检测脚本,该脚本将根据“case”语句敏感变量的位宽自动计算应该有多少分支,并以“:”符合序列为标志位,将符号序列左侧分支名保存在分支名结构体中,检索结构体中是否有“default”,若没有该分支就统计结构体中分支名个数是否与目标分支个数一直,并将结果打印输出;
4)用户编写状态机状态变换图生成脚本,该脚本将检索状态机的“case”语句,获取各分支名及其中“_nex”标志序列右侧分支名,建立状态跳转结构体,结构体中存储当前状态的父状态名、子状态名和当前状态内输出变量名等信息,将结构体内容打印输出为状态机状态变换图;
5)当更改设计时,只需要重新调用上述脚本就可以获得新状态机的相关辅助设计信息。
优选的,所述步骤2中脚本以状态机代码中的赋值符号序列“ = ”或“ <= ”为标志位。
本发明的优点在于:本发明通过使用自动化脚本,自动化生成状态机初始化变量列表和状态变换图。当设计修改前端设计代码,只需要重新调用自动化脚本,即可获得新状态机的相关辅助设计信息。大幅提高了数字逻辑设计开发的效率,加快项目进度。
具体实施方式
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先,用户根据需求编写状态机的非初始化部分代码,在编写状态机时应编写二段式或三段式状态机,且在变量输出代码段应使用时序逻辑设计,在对状态信号命名时应遵循特定规律,当前状态信号名应添加“_cur”后缀,下一状态信号名应添加“_nex”后缀;
然后,用户编写变量列表检索脚本,该脚本以状态机代码中的赋值符号序列“ = ”或“ <= ”为标志位,将符号序列左侧的变量名提取出来后检索当前状态机已保存变量列表,如果是新变量名就保存至变量名列表结构体中,如果是已保存变量就丢弃该变量名,当扫描完成当前状态机代码后,脚本打印输出当前状态机所有被赋值变量列表;
然后,用户编写状态机“case”语句分支完整性检测脚本,该脚本将根据“case”语句敏感变量的位宽自动计算应该有多少分支,并以“:”符合序列为标志位,将符号序列左侧分支名保存在分支名结构体中,检索结构体中是否有“default”,若没有该分支就统计结构体中分支名个数是否与目标分支个数一直,并将结果打印输出;
然后,用户编写状态机状态变换图生成脚本,该脚本将检索状态机的“case”语句,获取各分支名及其中“_nex”标志序列右侧分支名,建立状态跳转结构体,结构体中存储当前状态的父状态名、子状态名和当前状态内输出变量名等信息,将结构体内容打印输出为状态机状态变换图;
最后,当更改设计时,只需要重新调用上述脚本就可以获得新状态机的相关辅助设计信息。

Claims (2)

1.一种基于脚本的用于辅助状态机逻辑代码设计的方法,其特征在于,具体步骤如下:
1)用户根据需求编写状态机的非初始化部分代码,将状态机编写为二段式或三段式状态机,且在变量输出代码段应使用时序逻辑设计,在对状态信号命名时应遵循特定规律,当前状态信号名应添加“_cur”后缀,下一状态信号名应添加“_nex”后缀;
2)用户编写变量列表检索脚本,将符号序列左侧的变量名提取出来后检索当前状态机已保存变量列表,如果是新变量名就保存至变量名列表结构体中,如果是已保存变量就丢弃该变量名,当扫描完成当前状态机代码后,脚本打印输出当前状态机所有被赋值变量列表;
3)用户编写状态机“case”语句分支完整性检测脚本,该脚本将根据“case”语句敏感变量的位宽自动计算应该有多少分支,并以“ :”符合序列为标志位,将符号序列左侧分支名保存在分支名结构体中,检索结构体中是否有“default”,若没有该分支就统计结构体中分支名个数是否与目标分支个数一直,并将结果打印输出;
4)用户编写状态机状态变换图生成脚本,该脚本将检索状态机的“case”语句,获取各分支名及其中“_nex”标志序列右侧分支名,建立状态跳转结构体,结构体中存储当前状态的父状态名、子状态名和当前状态内输出变量名等信息,将结构体内容打印输出为状态机状态变换图;
5)当更改设计时,只需要重新调用上述脚本就可以获得新状态机的相关辅助设计信息。
2.根据权利要求1所述的基于脚本的用于辅助状态机逻辑代码设计的方法,其特征在于,所述步骤2中脚本以状态机代码中的赋值符号序列“ = ”或“ <= ”为标志位。
CN202111561133.2A 2021-12-20 2021-12-20 一种基于脚本的用于辅助状态机逻辑代码设计的方法 Active CN114253524B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111561133.2A CN114253524B (zh) 2021-12-20 2021-12-20 一种基于脚本的用于辅助状态机逻辑代码设计的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111561133.2A CN114253524B (zh) 2021-12-20 2021-12-20 一种基于脚本的用于辅助状态机逻辑代码设计的方法

Publications (2)

Publication Number Publication Date
CN114253524A true CN114253524A (zh) 2022-03-29
CN114253524B CN114253524B (zh) 2024-05-24

Family

ID=80795887

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111561133.2A Active CN114253524B (zh) 2021-12-20 2021-12-20 一种基于脚本的用于辅助状态机逻辑代码设计的方法

Country Status (1)

Country Link
CN (1) CN114253524B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114741993A (zh) * 2022-04-18 2022-07-12 山东浪潮科学研究院有限公司 一种基于脚本的数据流图生成方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102404167A (zh) * 2011-11-03 2012-04-04 清华大学 基于变量依赖的并行扩展有限状态机的协议测试生成方法
CN103955426A (zh) * 2014-04-21 2014-07-30 中国科学院计算技术研究所 一种检测c代码空指针引用的方法及系统
CN109542783A (zh) * 2018-11-19 2019-03-29 北京航空航天大学 一种基于变量分割的扩展有限状态机测试数据生成方法
CN111814417A (zh) * 2020-06-11 2020-10-23 杭州电子科技大学 一种基于字符分隔值文件转换Verilog代码的方法
CN111949255A (zh) * 2020-09-03 2020-11-17 平安银行股份有限公司 基于语音的脚本编写方法、装置、设备及存储介质
CN112346726A (zh) * 2020-03-16 2021-02-09 成都华微电子科技有限公司 一种基于表单信息自动化生成设计代码的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102404167A (zh) * 2011-11-03 2012-04-04 清华大学 基于变量依赖的并行扩展有限状态机的协议测试生成方法
CN103955426A (zh) * 2014-04-21 2014-07-30 中国科学院计算技术研究所 一种检测c代码空指针引用的方法及系统
CN109542783A (zh) * 2018-11-19 2019-03-29 北京航空航天大学 一种基于变量分割的扩展有限状态机测试数据生成方法
CN112346726A (zh) * 2020-03-16 2021-02-09 成都华微电子科技有限公司 一种基于表单信息自动化生成设计代码的方法
CN111814417A (zh) * 2020-06-11 2020-10-23 杭州电子科技大学 一种基于字符分隔值文件转换Verilog代码的方法
CN111949255A (zh) * 2020-09-03 2020-11-17 平安银行股份有限公司 基于语音的脚本编写方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114741993A (zh) * 2022-04-18 2022-07-12 山东浪潮科学研究院有限公司 一种基于脚本的数据流图生成方法及装置
WO2023202290A1 (zh) * 2022-04-18 2023-10-26 山东浪潮科学研究院有限公司 一种基于脚本的数据流图生成方法及装置

Also Published As

Publication number Publication date
CN114253524B (zh) 2024-05-24

Similar Documents

Publication Publication Date Title
JP5966673B2 (ja) 符号処理のためのプログラム及びデータ構造
US9378126B2 (en) Decompression apparatus and decompression method
CN114253524A (zh) 一种基于脚本的用于辅助状态机逻辑代码设计的方法
US8947272B2 (en) Decoding encoded data
CN103283149B (zh) 用于处理数据元素序列的装置和方法
US20110035178A1 (en) System and method for generating a test file of a printed circuit board
EP3893400A1 (en) Sorting method and apparatus, and electronic device and medium
CN106227821A (zh) 一种命令行命令的处理方法和装置
CN111814417A (zh) 一种基于字符分隔值文件转换Verilog代码的方法
CN106557553B (zh) 数据匹配的方法及装置
CN110110149B (zh) 一种scpi命令的解析方法及装置
CN116107800B (zh) 一种校验码生成方法、数据恢复方法、介质、电子设备
US8626688B2 (en) Pattern matching device and method using non-deterministic finite automaton
CN114124106B (zh) 一种lz4解压缩方法、系统、存储介质及设备
CN114741993B (zh) 一种基于脚本的数据流图生成方法及装置
JPH0936747A (ja) データ圧縮方法及びデータ圧縮装置
JPH09246995A (ja) 符号誤り検出回路
JP3346626B2 (ja) データ圧縮装置
CN112367206B (zh) 配置数据处理方法、装置和系统
CN111930413B (zh) 一种补丁自动生成方法、装置及系统
JPH10260980A (ja) 圧縮検索方式
CN113220307B (zh) 一种代码覆盖分析的优化方法、装置及电子设备
CN112214212A (zh) 一种根据json格式数据生成c#语言源代码的方法
CN114022660A (zh) 一种标签处理方法、装置及计算机可读存储介质
JP2985265B2 (ja) 回路図変換装置

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