一种针对集成电路设计的建模验证及代码生成方法技术

技术编号:33640048 阅读:19 留言:0更新日期:2022-06-02 01:59
本发明专利技术公开了一种针对集成电路设计的建模验证及代码生成方法,包括:将需求设计文档中的功能划分为不同的VerilogHDL语句模块,所述VerilogHDL语句模块包括顶层模块和底层模块;根据所述顶层模块和底层模块的内部功能以及端口,将顶层模块代码、底层模块代码、顶层模块端口号以及底层模块端口号分别填入对应的模块表内;验证所述模块表内代码是否符合可综合模型原则;验证所述模块表内代码的语法结构和逻辑结构;填入所述模块表内代码所需实现功能,对所述可综合模型原则进行功能验证;对符合可综合模型原则、语法结构、逻辑结构、功能验证的代码转换为可使用的VerilogHDL代码。本发明专利技术保证了代码实现阶段符合可综合模型原则,减少代码实现错误及功能逻辑错误。少代码实现错误及功能逻辑错误。少代码实现错误及功能逻辑错误。

【技术实现步骤摘要】
一种针对集成电路设计的建模验证及代码生成方法


[0001]本专利技术涉及集成电路验证
,具体涉及一种针对集成电路设计的建模验证及代码生成方法。

技术介绍

[0002]随着集成电路工艺的不断发展和处理器体系结构的不断创新,高性能处理器的复杂度和规模不断提升,随之而来的问题是可靠性难以保证,因此正确性验证已经成高性能处理器芯片研制过程中的重要瓶颈之一,验证过程通常占整个芯片开发周期的70%以上。目前,FPGA开发常用来验证数字集成电路的设计,尤其在航天、军工等国防方面对FPGA设计的功能实现、安全性、可靠性都提出了更高的要求。因此,对于FPGA设计的验证显得更加重要。
[0003]目前验证技术面临复杂性和全面性两方面问题。复杂性是指当系统规模不断扩大,相应验证规则的复杂程度提高,很难兼顾各个功能模块的验证工作,所占开发周期的时间比例也越来越大,导致验证周期往往大于开发周期;全面性是指目前的验证工作大多集中在系统设计开发完成后进行,忽略了针对实际开发前需求分析阶段的验证,导致验证过程不能覆盖整个系统开发周期,而由于早期设计的遗漏或不合理问题,容易造成开发阶段大规模返工,降低系统开发效率。

技术实现思路

[0004]本专利技术的目的在于,提供了一种针对集成电路设计的建模验证及代码生成方法,其保证了代码实现阶段符合可综合模型原则,减少代码实现错误及功能逻辑错误。
[0005]为实现上述目的,本申请提出一种针对集成电路设计的建模验证及代码生成方法,包括:
[0006]详细分析需求设计文档,将所述需求设计文档中的功能划分为不同的Verilog HDL语句模块,所述Verilog HDL语句模块包括顶层模块和底层模块,所述顶层模块主要实现对底层模块的例化;
[0007]根据所述顶层模块和底层模块的内部功能以及端口,将顶层模块代码、底层模块代码、顶层模块端口号以及底层模块端口号分别填入对应的模块表内;
[0008]验证所述模块表内代码是否符合可综合模型原则;
[0009]验证所述模块表内代码的语法结构和逻辑结构;
[0010]填入所述模块表内代码所需实现功能,对所述可综合模型原则进行功能验证;
[0011]对符合可综合模型原则、语法结构、逻辑结构、功能验证的代码转换为可使用的Verilog HDL代码。
[0012]进一步的,除例化功能外的Verilog HDL语句按照功能划分为多个子功能,每个所述子功能为一个底层模块,顶层模块例化不同的底层模块,从而实现所需要的全部功能。
[0013]进一步的,根据所述顶层模块和底层模块的内部功能以及端口,将顶层模块代码、
底层模块代码、顶层模块端口号以及底层模块端口号分别填入对应的模块表内,具体为:
[0014]确定顶层模块变量,通过当前值和之前值作为判定上升沿和下降沿的方式;
[0015]确定底层模块变量,通过当前值和之前值作为判定上升沿和下降沿的方式;
[0016]根据所述底层模块变量设计底层模块表;
[0017]所述顶层模块选择例化不同的底层模块,定义顶层模块变量与底层模块变量的例化关系,创建例化的顶层模块表。
[0018]进一步的,验证所述模块表内代码是否符合可综合模型原则,具体为:依据可综合语句的规则,判断所述顶层模块表、底层模块表内定义的变量与语句是否符合规则,输出不符合规则的定义。
[0019]进一步的,验证所述模块表内代码的语法结构和逻辑结构,具体为:显示顶层模块表与底层模块表,根据所述各自模块表内的填充代码进行跳转,当跳转至规定中不可到达的表格或跳转到的表格内填充代码不符合语法标准时,高亮显示该模块表内的具体单元格。
[0020]更进一步的,填入所述模块表内代码所需实现功能,对所述可综合模型原则进行功能验证,具体为:将所述顶层模块表和底层模块表中的代码转换为Promela语法下的代码,所述Promela代码输入到Spin软件中对代码进行功能验证。
[0021]更进一步的,将所述顶层模块表和底层模块表中的代码转换为Promela语法下的代码,所述Promela代码输入到Spin软件中对代码进行功能验证,具体为:
[0022]根据Promela语法标准,将顶层模块表和底层模块表转换为Spin软件可支持的Promela语句;
[0023]所述Promela语句以及所填入的功能要求输入到Spin软件中,应用Spin的验证功能,进而确定对应模块表内代码是否符合功能要求。
[0024]更进一步的,对符合可综合模型原则、语法结构、逻辑结构、功能验证的代码转换为可使用的Verilog HDL代码,具体为:根据Verilog HDL语法标准,将顶层模块表和底层模块表转换为满足需求分析且可运行的Verilog HDL语句。
[0025]本专利技术采用的以上技术方案,与现有技术相比,具有的优点是:本专利技术前端的代码设计方法为一种可视化的建模方法,代码设计完成后,可利用可视化的方式模拟代码运行过程,从而可以有效发现代码错误,并能够发现错误路径,对修改工作提供帮助。前端还对代码的设计进行了是否符合可综合语句的判断,减少不可转化为电路的代码结构,对后期转换为电路提供了基础。完成代码设计后,转换为Spin可支持的Promela语句,利用Spin工具对代码进行功能验证,能够在设计前期发现设计错误,大大减少返工时间,提高设计效率,通过上述方式,在生成Verilog HDL语句时保障了语句是可用的和有效的。
附图说明
[0026]图1为针对集成电路设计的建模验证及代码生成方法流程图;
[0027]图2为顶层模块或底层模块的端口图;
[0028]图3为顶层模块模块表或底层模块模块表的结构图;
[0029]图4为可综合语句验证、语法结构和逻辑结构验证、功能验证流程图;
[0030]图5为Verilog HDL语言和Promela语言对照图。
具体实施方式
[0031]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请,即所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
[0032]因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0033]实施例1
[0034]如图1所示,本实施例提供一种针对集成电路设计的建模验证及代码生成方法,具体包括:
[0035]S1,详细分析需求设计文档,将所述需求设计文档中的功能划分为不同的Verilog HDL语句模块,所述Verilog HDL语句模块包本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对集成电路设计的建模验证及代码生成方法,其特征在于,包括:详细分析需求设计文档,将所述需求设计文档中的功能划分为不同的Verilog HDL语句模块,所述Verilog HDL语句模块包括顶层模块和底层模块;根据所述顶层模块和底层模块的内部功能以及端口,将顶层模块代码、底层模块代码、顶层模块端口号以及底层模块端口号分别填入对应的模块表内;验证所述模块表内代码是否符合可综合模型原则;验证所述模块表内代码的语法结构和逻辑结构;填入所述模块表内代码所需实现功能,对所述可综合模型原则进行功能验证;对符合可综合模型原则、语法结构、逻辑结构、功能验证的代码转换为可使用的Verilog HDL代码。2.根据权利要求1所述一种针对集成电路设计的建模验证及代码生成方法,其特征在于,除例化功能外的Verilog HDL语句按照功能划分为多个子功能,每个所述子功能为一个底层模块,顶层模块例化不同的底层模块。3.根据权利要求1所述一种针对集成电路设计的建模验证及代码生成方法,其特征在于,根据所述顶层模块和底层模块的内部功能以及端口,将顶层模块代码、底层模块代码、顶层模块端口号以及底层模块端口号分别填入对应的模块表内,具体为:确定顶层模块变量,通过当前值和之前值作为判定上升沿和下降沿的方式;确定底层模块变量,通过当前值和之前值作为判定上升沿和下降沿的方式;根据所述底层模块变量设计底层模块表;所述顶层模块选择例化不同的底层模块,定义顶层模块变量与底层模块变量的例化关系,创建例化的顶层模块表。4.根据权利要求1所述一种针对集成电路设计的建模验证及代码生成方法,其特征在于,验证所述模块表内代码是否符合可综合模型原则,具体为:依据可综合语句的规则...

【专利技术属性】
技术研发人员:王洁陈志超侯刚吴鑫涛高昊宇
申请(专利权)人:大连理工大学
类型:发明
国别省市:

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

1