CN109086202B - 基于关联规则的fpga/ip核代码规则检查方法 - Google Patents
基于关联规则的fpga/ip核代码规则检查方法 Download PDFInfo
- Publication number
- CN109086202B CN109086202B CN201810796986.6A CN201810796986A CN109086202B CN 109086202 B CN109086202 B CN 109086202B CN 201810796986 A CN201810796986 A CN 201810796986A CN 109086202 B CN109086202 B CN 109086202B
- Authority
- CN
- China
- Prior art keywords
- code
- rule
- defect
- data
- tool
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于关联规则的FPGA/IP核代码规则检查方法,涉及FPGA/IP核验证技术领域。本发明的方法效率高、自动化程度高。测试人员在使用代码规则检查工具针对代码完成初步的规则检查,得到违反工具内部语法规则的检查结果之后,即可利用自动化的数据分析脚本与关联规则进行匹配,对检查结果进行分析,给出代码存在缺陷情况的判断,而不需要人工对每一条工具结果进行详细的分析、判断。本发明的方法可靠性好。代码规则检查过程依赖于代码规则检查工具以及已确认的代码缺陷数据,仅在最后一步经过测试人员的人工确认,尽可能避免引入人为操作,有效减少了因测试人员水平有限、精力不足等人为因素导致的缺陷误报、漏报情况,得到更可靠的代码规则检查结果。
Description
技术领域
本发明涉及FPGA/IP核验证技术领域,具体涉及一种基于关联规则的FPGA/IP核代码规则检查方法。
背景技术
现场可编程门阵列(Field Programmable Gate Array,FPGA)设计过程中采用硬件描述语言(Hardware Description Language,HDL)所编写的寄存器传输级(Register-Transfer Level,RTL)代码,由于设计人员技术水平有限、开发经验欠缺等因素,导致RTL代码中存在设计缺陷的情况往往难以避免,这将会导致预期的设计无法完全实现,影响FPGA系统功能。为了尽早地发现代码中存在的缺陷,降低后续进行故障排查的时间与经济成本,在RTL代码编写阶段进行代码规则检查是有效手段之一。代码规则检查主要是依据既定的代码规则,针对代码的版面书写规范性、可综合性、可重用性以及时钟和复位设计规范性等方面进行检查,而其中采用的规则多是从FPGA设计工作中总结并制定的规范性要求。
目前常见的代码规则检查方法包括代码走查和工具检查两种方法:
(1)代码走查
代码走查是测试人员采用人工方式审查代码,期望发现代码中存在的设计缺陷。该方法存在以下不足:人工审查效率过低,且对测试人员的专业水平有较高要求。
(2)工具检查
工具检查指的是测试人员使用代码规则检查工具,依据工具内部预先设定的代码规则,检测代码中存在的缺陷。该方法存在以下不足:代码规则检查工具种类多样,且各自所采用规则以及检查的侧重点各有不同,测试人员需综合多个工具的检查结果进行分析,确认代码缺陷,自动化程度不高;在代码设计规模、复杂度较高时,分析工作量大,人工效率低,且会出现缺陷误报、漏报等情况,可靠性难以保障。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何设计一种效率高、自动化程度高、可靠性好的FPGA/IP核代码规则检查方法。
(二)技术方案
为了解决上述技术问题,本发明提供了一种基于关联规则的FPGA/IP核代码规则检查方法,包括以下步骤:
步骤(1)、关联规则挖掘的数据准备
关联规则挖掘的数据对象根据代码规则检查工具的检查结果以及经由测试人员分析确认后的代码缺陷信息生成;
代码规则检查工具的检查结果来自代码规则检查工具输出的txt或csv文件,其中代码规则检查工具输出文件的每一条记录,代表代码规则检查工具在代码中检查到了一次违反语法规则的情况,代码缺陷信息则通过测试人员整理已测试项目中确定的代码缺陷数据,逐个确定缺陷所对应的被测项目编号、缺陷所在代码文件名称、缺陷所在代码行号和缺陷类型,并写入xls格式的表格文件中;
将所述xls文件与代码规则检查工具输出的检查结果文件一同输入到数据处理脚本,脚本依次读取所输入的文件,并进行逐行扫描,从代码规则检查工具检查结果中提取每条检查记录的数据信息,包括当前被测项目编号、检查记录所在代码文件名称、代码行号、违反语法规则名称;从代码缺陷数据中提取被测项目编号、缺陷所在代码文件名称、缺陷所在代码行号和缺陷类型;将被测项目编号、代码文件名称、代码行号三个数据属性作为定位信息,数据处理脚本扫描所输入的文件后,以定位信息是否相同作为判断条件,将代码规则检查工具检查结果与代码缺陷数据进行交叉连接;连接生成的数据集中仅保留来自不同代码规则检查工具检查结果的违反语法规则名称属性以及来自代码缺陷数据的缺陷类型属性,并将保留的数据作为关联规则挖掘的数据对象;将代码规则检查工具的检查结果以及相应项目的代码缺陷数据输入数据处理脚本,脚本自动处理后得到数据集;
步骤(2)、关联规则挖掘
将由数据处理脚本得到的数据集作为关联规则挖掘的事务集,并利用多维关联规则挖掘算法,挖掘代码缺陷类型与各个代码规则检查工具结果之间的关联规则,并将挖掘结果保存到关联规则库中;
步骤(3)、将挖掘出的关联规则用于代码规则检查
根据已测项目结果挖掘得到有关代码缺陷的关联规则之后,当面临新的FPGA/IP核验证任务时,先利用代码规则检查工具进行初步检查,将检查结果文件输入数据分析脚本,数据分析脚本提取代码规则检查工具检查出的违反语法规则情况,并与关联规则库中的关联规则进行匹配,给出对于缺陷类型的判断结果以及置信度,经确认之后,完成当前被测项目的代码规则检查工作。
优选地,所述其中xls文件的格式如表1:
优选地,所述代码规则检查工具为Alint和Leda,所述数据集如表2:
优选地,所述多维关联规则挖掘算法为多维Apriori算法。
优选地,若所述关联规则为:
该规则置信度为70%,那么表明当代码规则检查工具Alint发现代码违反了语法规则STARC_VLOG.2.10.3.3,并且代码规则检查工具Leda同时发现代码违反了语法规则B_3208的情况下,当前这句代码有70%的可能性存在数据位宽不匹配的问题。
(三)有益效果
相比于传统的规则检查方法,本发明的方法具有以下的优势:
(1)效率高、自动化程度高。测试人员在使用代码规则检查工具针对代码完成初步的规则检查,得到违反工具内部语法规则的检查结果之后,即可利用自动化的数据分析脚本与关联规则进行匹配,对检查结果进行分析,给出代码存在缺陷情况的判断,而不需要人工对每一条工具结果进行详细的分析、判断。
(2)可靠性好。代码规则检查过程依赖于代码规则检查工具以及已确认的代码缺陷数据,仅在最后一步经过测试人员的人工确认,尽可能避免引入人为操作,有效减少了因测试人员水平有限、精力不足等人为因素导致的缺陷误报、漏报情况,得到更为可靠的代码规则检查结果。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合实施例,对本发明的具体实施方式作进一步详细描述。
本发明提供的一种基于关联规则的FPGA/IP核代码规则检查方法,具体步骤如下:
步骤(1)、关联规则挖掘的数据准备。关联规则挖掘的数据对象根据代码规则检查工具的检查结果以及经由测试人员分析确认后的代码缺陷信息生成。
代码规则检查工具的检查结果来自代码规则检查工具输出的txt或csv文件,其中代码规则检查工具输出文件的每一条记录,代表代码规则检查工具在代码中检查到了一次违反语法规则的情况。代码缺陷信息则通过测试人员整理已测试项目中确定的代码缺陷数据,逐个确定缺陷所对应的被测项目编号、缺陷所在代码文件名称、缺陷所在代码行号、缺陷类型,并写入xls格式的表格文件中,其中xls文件的格式如表1所示。
表1xls文件格式
将上述xls格式文件与代码规则检查工具输出的检查结果文件一同输入到数据处理脚本。脚本依次读取所输入的文件,并进行逐行扫描,从代码规则检查工具检查结果中提取每条检查记录的数据信息,包括当前被测项目编号、检查记录所在代码文件名称、代码行号、违反语法规则名称;从代码缺陷数据中提取被测项目编号、缺陷所在代码文件名称、缺陷所在代码行号、缺陷类型。将被测项目编号、代码文件名称、代码行号三个数据属性作为定位信息,数据处理脚本扫描所输入的文件后,以定位信息是否相同作为判断条件,将代码规则检查工具检查结果与代码缺陷数据进行交叉连接。连接生成的数据集中仅保留来自不同代码规则检查工具检查结果的违反语法规则名称属性以及来自代码缺陷数据的缺陷类型属性,并将保留的数据作为关联规则挖掘的数据对象。例如将代码规则检查工具Alint和Leda的检查结果以及相应项目的代码缺陷数据输入数据处理脚本,脚本自动处理后得到数据集如表2所示。
AlintResult | LedaResult | DefectType |
ALDEC_VLOG.3306 | C_1401 | 复位与时钟树设计问题 |
ALDEC_VLOG.3306 | C_1402 | 复位与时钟树设计问题 |
STARC_VLOG.2.103.3 | B_3208 | 数据位宽不正确 |
STARC_VLOG.2.3.4.2 | SYN9_16 | 规范性问题 |
STARC_VLOG.2.10.3.6 | B_3609 | 分支不合理 |
表2关联规则挖掘对象
步骤(2)、关联规则挖掘。将由数据处理脚本得到的数据集作为关联规则挖掘的事务集,并利用多维关联规则挖掘算法(例如多维Apriori算法),挖掘代码缺陷类型与各个代码规则检查工具结果之间的关联规则,并将挖掘结果保存到关联规则库中。
例如以下一个关联规则:
该规则置信度为70%,那么表明当代码规则检查工具Alint发现代码违反了语法规则STARC_VLOG.2.10.3.3,并且工具Leda同时发现代码违反了语法规则B_3208的情况下,当前这句代码有70%的可能性存在数据位宽不匹配的问题。
步骤(3)、将挖掘出的关联规则用于代码规则检查。测试人员根据已测项目结果挖掘得到有关代码缺陷的关联规则之后,当面临新的FPGA/IP核验证任务时,先利用代码规则检查工具进行初步检查,将检查结果文件输入数据分析脚本,数据分析脚本提取代码规则检查工具检查出的违反语法规则情况,并与关联规则库中的关联规则进行匹配,给出对于缺陷类型的判断结果以及置信度,经过测试人员确认之后,完成当前被测项目的代码规则检查工作。
可以看出,相比于传统的规则检查方法,本发明的方法具有以下的优势:
(1)效率高、自动化程度高。测试人员在使用代码规则检查工具针对代码完成初步的规则检查,得到违反工具内部语法规则的检查结果之后,即可利用自动化的数据分析脚本与关联规则进行匹配,对检查结果进行分析,给出代码存在缺陷情况的判断,而不需要人工对每一条工具结果进行详细的分析、判断。
(2)可靠性好。代码规则检查过程依赖于代码规则检查工具以及已确认的代码缺陷数据,仅在最后一步经过测试人员的人工确认,尽可能避免引入人为操作,有效减少了因测试人员水平有限、精力不足等人为因素导致的缺陷误报、漏报情况,得到更为可靠的代码规则检查结果。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (5)
1.一种基于关联规则的FPGA/IP核代码规则检查方法,其特征在于,包括以下步骤:
步骤(1)、关联规则挖掘的数据准备
关联规则挖掘的数据对象根据代码规则检查工具的检查结果以及经由测试人员分析确认后的代码缺陷信息生成;
代码规则检查工具的检查结果来自代码规则检查工具输出的txt或csv文件,其中代码规则检查工具输出文件的每一条记录,代表代码规则检查工具在代码中检查到了一次违反语法规则的情况,代码缺陷信息则通过测试人员整理已测试项目中确定的代码缺陷数据,逐个确定缺陷所对应的被测项目编号、缺陷所在代码文件名称、缺陷所在代码行号和缺陷类型,并写入xls格式的表格文件中;
将所述xls文件与代码规则检查工具输出的检查结果文件一同输入到数据处理脚本,脚本依次读取所输入的文件,并进行逐行扫描,从代码规则检查工具检查结果中提取每条检查记录的数据信息,包括当前被测项目编号、检查记录所在代码文件名称、代码行号、违反语法规则名称;从代码缺陷数据中提取被测项目编号、缺陷所在代码文件名称、缺陷所在代码行号和缺陷类型;将被测项目编号、代码文件名称、代码行号三个数据属性作为定位信息,数据处理脚本扫描所输入的文件后,以定位信息是否相同作为判断条件,将代码规则检查工具检查结果与代码缺陷数据进行交叉连接;连接生成的数据集中仅保留来自不同代码规则检查工具检查结果的违反语法规则名称属性以及来自代码缺陷数据的缺陷类型属性,并将保留的数据作为关联规则挖掘的数据对象;将代码规则检查工具的检查结果以及相应项目的代码缺陷数据输入数据处理脚本,脚本自动处理后得到数据集;
步骤(2)、关联规则挖掘
将由数据处理脚本得到的数据集作为关联规则挖掘的事务集,并利用多维关联规则挖掘算法,挖掘代码缺陷类型与各个代码规则检查工具结果之间的关联规则,并将挖掘结果保存到关联规则库中;
步骤(3)、将挖掘出的关联规则用于代码规则检查
根据已测项目结果挖掘得到有关代码缺陷的关联规则之后,当面临新的FPGA/IP核验证任务时,先利用代码规则检查工具进行初步检查,将检查结果文件输入数据分析脚本,数据分析脚本提取代码规则检查工具检查出的违反语法规则情况,并与关联规则库中的关联规则进行匹配,给出对于缺陷类型的判断结果以及置信度,经确认之后,完成当前被测项目的代码规则检查工作。
4.如权利要求1所述的方法,其特征在于,所述多维关联规则挖掘算法为多维Apriori算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810796986.6A CN109086202B (zh) | 2018-07-19 | 2018-07-19 | 基于关联规则的fpga/ip核代码规则检查方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810796986.6A CN109086202B (zh) | 2018-07-19 | 2018-07-19 | 基于关联规则的fpga/ip核代码规则检查方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109086202A CN109086202A (zh) | 2018-12-25 |
CN109086202B true CN109086202B (zh) | 2021-05-14 |
Family
ID=64837978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810796986.6A Active CN109086202B (zh) | 2018-07-19 | 2018-07-19 | 基于关联规则的fpga/ip核代码规则检查方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109086202B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112540766B (zh) * | 2020-12-24 | 2024-10-18 | 山东高云半导体科技有限公司 | 现场可编程门阵列编码方法、装置和系统 |
CN118194286B (zh) * | 2024-05-15 | 2024-09-17 | 中国船舶集团有限公司第七一九研究所 | 基于模型的fpga代码缺陷检查结果置信度分析方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8359566B2 (en) * | 2007-04-13 | 2013-01-22 | International Business Machines Corporation | Software factory |
CN104281525A (zh) * | 2014-10-28 | 2015-01-14 | 中国人民解放军装甲兵工程学院 | 一种缺陷数据分析方法及利用其缩减软件测试项目的方法 |
CN105103452A (zh) * | 2013-05-30 | 2015-11-25 | 日本电气株式会社 | 数据压缩系统 |
CN106991051A (zh) * | 2017-04-05 | 2017-07-28 | 西安邮电大学 | 一种基于变异测试和关联规则的测试用例约简方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140222521A1 (en) * | 2013-02-07 | 2014-08-07 | Ibms, Llc | Intelligent management and compliance verification in distributed work flow environments |
-
2018
- 2018-07-19 CN CN201810796986.6A patent/CN109086202B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8359566B2 (en) * | 2007-04-13 | 2013-01-22 | International Business Machines Corporation | Software factory |
CN105103452A (zh) * | 2013-05-30 | 2015-11-25 | 日本电气株式会社 | 数据压缩系统 |
CN104281525A (zh) * | 2014-10-28 | 2015-01-14 | 中国人民解放军装甲兵工程学院 | 一种缺陷数据分析方法及利用其缩减软件测试项目的方法 |
CN106991051A (zh) * | 2017-04-05 | 2017-07-28 | 西安邮电大学 | 一种基于变异测试和关联规则的测试用例约简方法 |
Non-Patent Citations (2)
Title |
---|
"FPGA:Implemmention of Association Rule in Web Usage Mining";Anand et al;《International Journal of Engineering Research & Technology》;20140430;全文 * |
"基于关联规则挖掘的软件缺陷分析研究";颜乐鸣;《软件》;20170115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109086202A (zh) | 2018-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111563509B (zh) | 一种基于tesseract的变电站端子排识别方法及系统 | |
KR20190026641A (ko) | 클레임 서류의 문자 인식 방법, 장치, 서버 및 저장매체 | |
CN108763091B (zh) | 用于回归测试的方法、装置及系统 | |
CN104268216A (zh) | 一种基于互联网信息的数据清洗系统 | |
CN111190807B (zh) | 一种埋点测试方法及设备 | |
CN112163553B (zh) | 物料价格核算方法、装置、存储介质和计算机设备 | |
CN110543422B (zh) | 一种用于fpr的软件包代码缺陷数据处理方法、系统及介质 | |
CN109086202B (zh) | 基于关联规则的fpga/ip核代码规则检查方法 | |
CN110879780A (zh) | 页面异常检测方法、装置、电子设备及可读存储介质 | |
CN112328499A (zh) | 一种测试数据生成方法、装置、设备及介质 | |
CN110991065B (zh) | 一种建筑信息模型中设计变更自动识别方法 | |
WO2022034919A1 (ja) | 情報処理装置、情報処理方法、プログラム及び情報処理システム | |
CN110806977A (zh) | 基于产品需求的测试用例集生成方法、装置及电子设备 | |
CN110019762B (zh) | 一种问题定位方法、存储介质和服务器 | |
CN116303042B (zh) | 一种基于污点分析的软件配置故障检测方法 | |
CN111190906A (zh) | 一种传感网数据异常检测方法 | |
CN110134435A (zh) | 一种代码修复案例获取方法、装置、设备及存储介质 | |
CN114741291A (zh) | 一种漏洞信息自动提交的方法、装置、设备及介质 | |
CN113342632A (zh) | 仿真数据自动化处理方法、装置、电子设备及存储介质 | |
CN114116470A (zh) | 一种自动化的静态模型检查方法及装置 | |
CN114443493A (zh) | 一种测试案例生成方法、装置、电子设备和存储介质 | |
CN112580334A (zh) | 一种文案处理方法、装置、服务器及存储介质 | |
CN106707144B (zh) | 一种应用于反熔丝fpga测试向量的逆向分析方法 | |
WO2015184750A1 (zh) | 网元设备数据维护的方法和装置 | |
CN110618932A (zh) | 基于Web自动化测试的输入框测试方法及可读存储介质 |
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 |