一种硬件描述语言代码自动补全方法技术

技术编号:39155153 阅读:10 留言:0更新日期:2023-10-23 15:00
本发明专利技术涉及一种硬件描述语言代码自动补全方法,所述方法包括:获取work库中各模块module的完整信息,将获取的各module的完整信息存储在模块存储文件中;跟踪到用户在Verilog代码的module语句部分输入被例化的module的名称,读取模块存储文件中,与该被例化的module的名称相同的module的完整信息;依据读取的module的完整信息补全被例化的module的代码;或者,获取work库中每个VHDL文件的实体entity的完整信息,将获取的各entity的完整信息存储在模块存储文件中;跟踪到用户在VHDL文件结构体architecture输入被例化元件component的名称,读取模块存储文件中,与该被例化的component名称相同的entity的完整信息;依据读取的entity的完整信息补全被例化的component的代码。本发明专利技术的方法,提高了Verilog/VHDL代码的编写效率。Verilog/VHDL代码的编写效率。Verilog/VHDL代码的编写效率。

【技术实现步骤摘要】
一种硬件描述语言代码自动补全方法


[0001]本专利技术涉及FPGA开发领域,尤其是一种硬件描述语言代码自动补全方法。

技术介绍

[0002]硬件描述语言(Hardware Description Language,HDL)是电子系统硬件行为描述、结构描述、数据流描述的语言。利用这种语言,数字电路系统的设计可以从顶层到底层,也即从抽象到具体,逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后,利用电子设计自动化(EDA)工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。接下去,再用专用集成电路(ASIC)或现场可编程门阵列(FPGA)自动布局布线工具,把网表转换为要实现的具体电路布线结构。
[0003]当前,得到普遍认同的硬件描述语言有Verilog和VHDL语言。在FPGA的设计过程中,编写Verilog/VHDL代码时,采用自动补全能关键词以提高编码效率。这里,关键词是指Verilog语法里的关键词,比如input、output、wire、reg、always、begin、end、module等;或者,VHDL语法里的关键词,比如entity、architecture、component、package、port、in,out、inout、is、begin、end、generic等。
[0004]但大型的数字电路包含很多module/component,其中,很多module/component又有大量端口,因而,在实际编程的过程中仅自动补齐关键字所提高的编码效率,远远不够的。

技术实现思路

[0005]有鉴于此,本专利技术的主要目的在于提供一种硬件描述语言代码自动补全方法,通过自动补全被例化的module/component的代码,提高Verilog/VHDL代码的编写效率。
[0006]为达到上述目的,本申请提供了一种硬件描述语言代码自动补全方法,在任一个FPGA项目中,包括:
[0007]获取该项目的work库中各模块module的完整信息,将获取的各module的完整信息存储在模块存储文件中;
[0008]跟踪到用户在Verilog代码的module语句部分输入被例化的module的名称,读取模块存储文件中,与该被例化的module的名称相同的module的完整信息;
[0009]依据读取的module的完整信息补全被例化的module的代码;或者,
[0010]获取该项目的work库中每个VHDL文件的实体entity的完整信息,将获取的各entity的完整信息存储在模块存储文件中;
[0011]跟踪到用户在VHDL文件结构体architecture输入被例化元件component的名称,读取模块存储文件中,与该被例化的component名称相同的entity的完整信息;
[0012]依据读取的entity的完整信息补全被例化的component的代码。
[0013]在一个可能的实现中,所述获取work库中各module的完整信息包括:
[0014]通过Yacc和Flex工具,将该work库中描述各module的Verilog代码,转化成描述各module的完整信息。
[0015]在另一个可能的实现中,所述将获取的各module的完整信息存储在模块存储文件中包括:
[0016]依据描述各module的完整信息的网表生成可扩展标记语言xml文件,该xml文件即为所述模块存储文件。
[0017]在另一个可能的实现中,还包括:定时或实时将work库中新增module的完整信息存储进模块存储文件。
[0018]在另一个可能的实现中,所述补全被例化的module的代码后,还包括:用户依据设计需要,修改所补全的代码中,被例化的module与其上层设计的映射。
[0019]在另一个可能的实现中,所述获取work库中每个VHDL文件的entity的完整信息具体包括:
[0020]通过Yacc和Flex工具,将该work库中各VHDL文件的entity,转化成描述该entity的完整信息。
[0021]在另一个可能的实现中,所述将获取的各entity的完整信息存储在模块存储文件中包括:
[0022]依据描述各entity的完整信息生成xml文件,该xml文件即为所述模块存储文件。
[0023]在另一个可能的实现中,还包括:定时或实时将work库中新增VHDL文件中entity的完整信息存储进模块存储文件。
[0024]在另一个可能的实现中,所述补全被例化的component的代码包括:
[0025]补全位于architecture的is和begin之间的,component<被例化的component的名称>后的元件声明部分;和/或,
[0026]补全位于architecture的begin和end之间的元件例化语句。
[0027]在另一个可能的实现中,所述补全被例化的component的代码后,还包括:用户依据设计需要,修改元件例化语句中,被例化的component与其上层设计的映射。
附图说明
[0028]图1为本专利技术实施例一一种硬件描述语言代码自动补全方法的流程示意图;
[0029]图2为本专利技术实施例二一种硬件描述语言代码自动补全方法的流程示意图。
具体实施方式
[0030]具体的,本专利技术实施例一一种硬件描述语言代码自动补全方法的流程如图1所示,所述硬件描述语言为Verilog语言时,在任一个FPGA项目中,包括步骤101~103。
[0031]步骤101:获取该项目的work库中各module的完整信息,将获取的各module的完整信息存储在模块存储文件中。
[0032]步骤102:跟踪到用户在Verilog代码的module语句部分输入被例化的module的名称,读取模块存储文件中,与该被例化的module的名称相同的module的完整信息。
[0033]步骤103:依据读取的module的完整信息补全被例化的module的代码。
[0034]Verilog语言的编程工具,在一个FPGA项目中,有一个默认的work库,work库包括
原语primitive库中的器件和用户自定义的module,即,该项目中所有的Verilog代码所描述的module都会被自动添加到work库当中,包括用户新增的Verilog代码所描述的module。相应的,
[0035]在一个可能的实现中,步骤101还包括:定时或实时将work库中新增module的完整信息存储进模块存储文件。
[0036]在另一个可能的实现中,步骤101中,所述获取work库中各module的完整信息具体包括:
[0037]通过Yacc和Flex工具,将该work库中描述各module的Veril本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种硬件描述语言代码自动补全方法,其特征在于,在任一个FPGA项目中,包括:获取该项目的work库中各模块module的完整信息,将获取的各module的完整信息存储在模块存储文件中;跟踪到用户在Verilog代码的module语句部分输入被例化的module的名称,读取模块存储文件中,与该被例化的module的名称相同的module的完整信息;依据读取的module的完整信息补全被例化的module的代码;或者,获取该项目的work库中每个VHDL文件的实体entity的完整信息,将获取的各entity的完整信息存储在模块存储文件中;跟踪到用户在VHDL文件结构体architecture输入被例化元件component的名称,读取模块存储文件中,与该被例化的component名称相同的entity的完整信息;依据读取的entity的完整信息补全被例化的component的代码。2.根据权利要求1所述的方法,其特征在于,所述获取work库中各module的完整信息包括:通过Yacc和Flex工具,将该work库中描述各module的Verilog代码,转化成描述各module的完整信息。3.根据权利要求2所述的方法,其特征在于,所述将获取的各module的完整信息存储在模块存储文件中包括:依据描述各module的完整信息生成可扩展标记语言xml文件,该xml文件即为所述模块存储文件。4.根据权利要求1所述的方法,其特征在于,还包括:定时或实时将work...

【专利技术属性】
技术研发人员:刘建洋朱维良王海力
申请(专利权)人:京微齐力北京科技股份有限公司
类型:发明
国别省市:

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

1