首页 / 专利库 / 人工智能 / n元语法 / 一种面向硬件逻辑设计的需求建模与验证方法

一种面向硬件逻辑设计的需求建模与验证方法

阅读:700发布:2020-05-12

专利汇可以提供一种面向硬件逻辑设计的需求建模与验证方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种面向 硬件 逻辑设计的需求建模与验证方法,包括步骤1:获取需求分析阶段划分的功能模 块 ,并将所述功能模块代码填入对应样式的表格中;步骤2:分析填充的、以多样式描述不同功能Verilog HDL语句的表格,记录同模块间表格的嵌套关系和不同模块间端口的实例化关系;步骤3:对代码进行语法和逻辑审查;步骤4:由模块代码生成保存时序运行逻辑的文档;步骤5:在不同的时钟沿调用时序运行逻辑的文档,使用表格显示对不同时钟沿时刻代码所处的逻辑分支的具体 位置 ;步骤6:对验证逻辑正确后的所述代码进行整合操作,生成表格填充对应的Verilog HDL代码 框架 。该方法能以简单的填充表格方式,自动对逻辑进行验证,达到事前验证的效果。,下面是一种面向硬件逻辑设计的需求建模与验证方法专利的具体信息内容。

1.一种面向硬件逻辑设计的需求建模与验证方法,其特征在于,包括如下步骤:
步骤1:获取需求分析阶段划分的功能模,并将所述功能模块代码填入对应样式的表格中;
步骤2:分析填充的、以多样式描述不同功能Verilog HDL语句的表格,记录同模块间表格的嵌套关系和不同模块间端口的实例化关系;
步骤3:根据Verilog HDL语法规则,对代码进行语法和逻辑审查;
步骤4:根据模块实例化关系,由模块代码生成保存时序运行逻辑的文档;
步骤5:在不同的时钟沿下调用时序运行逻辑的文档,使用表格显示对不同时钟沿时刻代码所处的逻辑分支的具体位置
步骤6:对验证逻辑正确后的所述代码进行整合操作,生成表格填充对应的Verilog HDL代码框架
2.根据权利要求1所述一种面向硬件逻辑设计的需求建模与验证方法,其特征在于,步骤1的具体实现方法为:所述表格包括端口变量列表、顶层模块表格、例化模块表格、嵌套模块表格;所述端口变量列表,模块中所有的端口变量和定义变量都要声明在此列表;所述的顶层模块表格,用于描述顶层模块的功能,是所有模块的入口,顶层模块与例化模块相连;
所述的例化模块表格,用于描述子模块的功能,例化模块再与子例化模块相连;所述的嵌套模块表格,用于描述功能复杂模块的子分支,嵌套在当前模块中。
3.根据权利要求2所述一种面向硬件逻辑设计的需求建模与验证方法,其特征在于,步骤2的具体实现方法为:
步骤2.1,若填充端口变量列表,首先设置列表中第一行的一列作为标识列,此标识列中每行的数值决定此行的端口或变量是否需进行例化;若单元格的内容填充值为Y,则属于例化端口或变量,若单元格内容为N,则不属于例化端口和变量;
步骤2.2,所有模块表格用相应的模块名进行表示,若是顶层模块和例化模块则直接命名,若是嵌套模块则采用主模块名_嵌套模块的命名方式。
4.根据权利要求3所述一种面向硬件逻辑设计的需求建模与验证方法,其特征在于,步骤3的具体实现方法为:
步骤3.1,从所述端口变量列表中查找变量并记录类型,根据Verilog HDL语法规则在对应模块表中进行搜索,输出不符合语法规则的审查结果;
步骤3.2,所述的模块表格中,若存在if分支,则使用N-S图形式,强制填写T和F分支;若存在case分支,则默认最后一个条件为default。
5.根据权利要求4所述一种面向硬件逻辑设计的需求建模与验证方法,其特征在于,步骤4的具体实现方法为:
步骤4.1,根据端口变量列表的例化端口来反推各模块间的例化关系,生成以顶层模块为首的自顶向下的模块间例化关系;
步骤4.2,将同一模块的所有表格数据进行封装,使模块代码结构顺序化;
步骤4.3,根据步骤4.1的例化关系和步骤4.2的封装数据,生成保存模块间时序运行逻辑的文档。
6.根据权利要求5所述一种面向硬件逻辑设计的需求建模与验证方法,其特征在于,步骤5的具体实现方法为:在不同的时钟沿调用步骤4.3生成的模块间时序运行逻辑文档,根据不同时钟沿时刻代码所处的逻辑分支,在相应单个表格或多个表格中高亮显示,对不同时钟沿时刻代码逻辑分支走向进行直观显示与预判。
7.根据权利要求6所述一种面向硬件逻辑设计的需求建模与验证方法,其特征在于,步骤6的具体实现方法为:根据Verilog HDL语法规则,对验证逻辑正确后的表格以及模块间例化关系,进行整合操作,建立一个与表格填充内容对应的Verilog HDL代码,得到满足需求分析阶段设计的代码框架。

说明书全文

一种面向硬件逻辑设计的需求建模与验证方法

技术领域

[0001] 本发明属于集成电路验证技术领域,具体说是一种面向硬件逻辑设计的需求建模与验证方法。

背景技术

[0002] 对于日趋复杂的集成电路,任何细小的设计错误都可能导致电路的瘫痪。通过验证工作可以发现集成电路设计过程中的缺陷,减小设计错误出现的可能性。目前针对集成电路的验证主要分为形式化验证和仿真验证。形式化验证使用数学定理验证集成电路设计阶段代码功能的一致性,采用穷举的方法对所有可能的结果进行完备的搜索。仿真验证需将激励信号输入到待检验系统中,通过仿真反馈的结果验证电路功能的正确性。
[0003] 以上列出的两种集成电路的验证方法,都是针对RTL级以上的电路,因为RTL级以上的代码具有可综合性,代码的完备性可保证其验证结果的全面性。但是,这两种方法都受限于模型需要具备可综合特性的缺点,不能满足需求分析阶段工作的验证。在开发的前期阶段,其更容易发现错误并进行重新验证。若未能验证电路设计前期的缺陷,会对自顶向下验证工作造成困难,使电路设计周期大大增长。

发明内容

[0004] 本申请针对目前集成电路在设计过程中,不能在需求分析阶段进行验证的缺陷,提供一种面向硬件逻辑设计的需求建模与验证方法,该方法能以简单的填充表格方式,自动对逻辑进行验证,达到事前验证的效果。
[0005] 为实现上述目的,本申请的技术方案为:一种面向硬件逻辑设计的需求建模与验证方法,采取的技术方案如下:
[0006] 步骤1:获取需求分析阶段划分的功能模,并将所述功能模块代码填入对应样式的表格中;
[0007] 步骤2:分析填充的、以多样式描述不同功能Verilog HDL语句的表格,记录同模块间表格的嵌套关系和不同模块间端口的实例化关系;
[0008] 步骤3:根据Verilog HDL语法规则,对代码进行语法和逻辑审查,以免出现不完整的语句、未定义的变量、例化端口位宽不一致的设计遗漏;
[0009] 步骤4:根据模块实例化关系,由模块代码生成保存时序运行逻辑的文档;
[0010] 步骤5:在不同的时钟沿调用时序运行逻辑的文档,使用表格显示对不同时钟沿时刻代码所处的逻辑分支的具体位置
[0011] 步骤6:对验证逻辑正确后的所述代码进行整合操作,生成表格填充对应的Verilog HDL代码框架
[0012] 进一步的,步骤1的具体实现方法为:所述表格包括端口变量列表、顶层模块表格、例化模块表格、嵌套模块表格;所述端口变量列表,模块中所有的端口变量和定义变量都要声明在此列表;所述的顶层模块表格,用于描述顶层模块的功能,是所有模块的入口,顶层模块与例化模块相连;所述的例化模块表格,用于描述子模块的功能,例化模块再与子例化模块相连;所述的嵌套模块表格,用于描述功能复杂模块的子分支,嵌套在当前模块中,避免逻辑混乱。
[0013] 进一步的,步骤2的具体实现方法为:
[0014] 步骤2.1,若填充端口变量列表,首先设置列表中第一行的一列作为标识列,此标识列中每行的数值决定此行的端口或变量是否需进行例化;若单元格的内容填充值为Y,则属于例化端口或变量,若单元格内容为N,则不属于例化端口和变量;
[0015] 步骤2.2,所有模块表格用相应的模块名进行表示,若是顶层模块和例化模块则直接命名,若是嵌套模块则采用主模块名_嵌套模块的命名方式。
[0016] 进一步的,步骤3的具体实现方法为:
[0017] 步骤3.1,从所述端口变量列表中查找变量并记录类型,根据Verilog HDL语法规则在对应模块表中进行搜索,输出不符合语法规则的审查结果;
[0018] 步骤3.2,所述的模块表格中,若存在if分支,则使用N-S图形式,强制填写T和F分支;若存在case分支,则默认最后一个条件为default,防止出现存器的问题;
[0019] 进一步的,步骤4的具体实现方法为:
[0020] 步骤4.1,根据端口变量列表的例化端口来反推各模块间的例化关系,生成以顶层模块为首的自顶向下的模块间例化关系;
[0021] 步骤4.2,将同一模块的所有表格数据进行封装,使模块代码结构顺序化;
[0022] 步骤4.3,根据步骤4.1的例化关系和步骤4.2的封装数据,生成保存模块间时序运行逻辑的文档。
[0023] 进一步的,步骤5的具体实现方法为:在不同的时钟沿调用步骤4.3生成的模块间时序运行逻辑文档,根据不同时钟沿时刻代码所处的逻辑分支,在相应单个表格或多个表格中高亮显示,对不同时钟沿时刻代码逻辑分支走向进行直观显示与预判。
[0024] 进一步的,步骤6的具体实现方法为:根据Verilog HDL语法规则,对验证逻辑正确后的表格以及模块间例化关系,进行整合操作,建立一个与表格填充内容对应的Verilog HDL代码,得到满足需求分析阶段设计的代码框架。
[0025] 本发明利用表格填充的方式,首先将需求分析阶段划分的功能模块代码填入表格,得到端口、变量、模块间例化的关系,采用表格高亮形式显示模块间代码运行逻辑的分支走向,判定不同时钟沿时刻分支的走向是否符合预期或是否存在未覆盖到的分支。通过所述方法使模块内部逻辑更清晰,代码分支走向展现更直观,可以有效检验模型思维的准确性。
[0026] 本发明在需求分析阶段进行集成电路设计的逻辑验证,用户仅需要按照Verilog HDL代码规范对表格内容进行填充,可直观展现模块间端口的调用关系,代码运行的逻辑顺序,有效避免语法缺陷影响验证的结果。同时,本发明中表格填充的内容只需是满足设计规则的逻辑代码框架,无需是全部功能逻辑代码,这种方法能有效简化开发和繁琐的调试。由于事前验证可以在开发早期发现设计缺陷,以便及时修改缺陷并重新验证,可以极大的缩短电路设计周期。附图说明
[0027] 图1是表格填充Verilog HDL进行逻辑验证的流程示意图。
[0028] 图2是本实施例顶层模块端口变量表填充示意图。
[0029] 图3是本实施例顶层模块表格填充示意图。
[0030] 图4是本实施例例化模块表格填充示意图。
[0031] 图5是本实施例例化模块嵌套表格填充示意图。
[0032] 图6是语法审查流程示意图。
[0033] 图7是本实施例代码逻辑分支走向示意图。

具体实施方式

[0034] 下面参照附图,对本发明的具体实施方式进行详细叙述。所述实施例仅为本发明的一部分实施例,而不是全部的实施例。
[0035] 一种面向硬件逻辑设计的需求建模与验证方法,如图1所示,详细实施步骤如下:
[0036] S11,获取需求分析阶段划分的功能模块,并将所述模块代码填入对应样式的表格中。本实施例为串口通信控制器的设计,功能模块由顶层模块、接收模块和发送模块三个模块构成。
[0037] S12,分析填充的、以多样式描述不同功能Verilog HDL语句的表格,记录同模块间表格的嵌套关系和不同模块间端口的实例化关系。
[0038] 顶层模块的部分端口变量列表参照图2,模块中的变量包括端口、中间变量和参数。模块端口需要指明方向,包括input、output、inout三种方向;中间变量和参数不需要指明方向,用“/”表示。标识列为“是否例化”,此标识列中每行的数值决定此行的端口或变量是否需进行例化。若单元格的填充内容为Y,则属于例化端口或变量,若单元格内容为N,则不属于例化端口和变量。若是例化的端口或变量需填写对应的例化模块名以及对应例化模块中的对应端口名;如不是例化的端口和变量则不需要继续填写。
[0039] 顶层模块的部分代码表格参照图3,第一行需要设定模块的名称,用于标识唯一的模块。“posedge clk”用于标识每个always块,遇到下一个“posedge clk”标识或assign语句截止,中间填写的表格内容为每个always块对应的内部代码逻辑。Verilog HDL语言是并行执行,每个always块和assign语句的顺序不需要固定。
[0040] 如图4、5所示,填充例化模块表格,描述模块的功能。本实施例是顶层模块对发送模块进行例化。所述的所有模块表格用相应的模块名进行表示,若是顶层模块和例化模块则直接命名,若是嵌套模块则采用主模块名_嵌套模块的命名方式,并将嵌套模块名填写在主模块中需嵌套表格的单元格中。
[0041] S13,根据Verilog HDL语法规则,对代码进行语法和逻辑审查,以免出现不完整的语句、未定义的变量、例化端口位宽不一致的设计遗漏。
[0042] 图6为语法审查流程图,读取端口变量列表,检验例化端口或变量位宽大小是否一致,避免出现截位现象;若存在if或case分支,则检查else分支或default分支是否填写完整,防止出现锁存器的问题;记录端口变量列表中的端口或变量,扫描每个模块的主模块表格和嵌套模块表格,若存在未定义的变量,参考图3,本实施例中button变量并未在图2端口变量列表中列出,则指出其所在的单元格的位置。
[0043] S14,根据模块实例化关系,由模块代码生成保存时序运行逻辑的文档。
[0044] 根据端口变量列表的例化端口来反推各模块间的例化关系,生成以顶层模块为首的自顶向下的模块间例化关系。本实例中顶层模块为uarttop,例化模块为portx,例化模块portx的运行入口为顶层模块uarttop。将同一模块的所有表格数据进行封装,本实例图2、3所示表格为同一模块,图4、5所示表格为同一模块,使模块代码结构顺序化。读取封装数据,结合Verilog HDL语法规则和模块间例化关系,生成保存模块间时序运行逻辑的文档。
[0045] S15,在不同的时钟沿调用时序运行逻辑的文档,使用表格显示对不同时钟沿时刻代码所处的逻辑分支的具体位置。
[0046] 在不同的时钟沿调S14生成的模块间时序运行逻辑文档,根据不同时钟沿时刻代码所处的逻辑分支,在相应单个表格或多个表格中高亮显示,对不同时钟沿时刻代码逻辑分支走向进行直观显示与预判。本实例在当前时钟沿时刻代码逻辑的分支走向参考图7中粗框线所示,直观展现了代码分支走向。
[0047] S16,对验证逻辑正确后的代码进行整合操作,生成表格填充对应的Verilog HDL代码框架。
[0048] 根据Verilog HDL语法规则,对验证逻辑正确后的表格以及模块间例化关系,进行整合操作,建立一个与表格填充内容对应的Verilog HDL代码,得到满足需求分析阶段设计的代码框架。
[0049] 本申请方法需要的操作系统为内存8G以上及CPU4核以上。
[0050] 以上所述实例仅为本发明的优选实施例,并非因此限定本发明。基于本发明的设计思想和基础上修改与变化做同等替换,均属于本发明专利保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈