[发明专利]高级语言代码的生成方法及其产生器有效
申请号: | 201110115605.1 | 申请日: | 2011-05-05 |
公开(公告)号: | CN102156655A | 公开(公告)日: | 2011-08-17 |
发明(设计)人: | 谢峥;王新安;曹颖;陈旭;雍珊珊;王腾 | 申请(专利权)人: | 北京大学深圳研究生院 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 深圳鼎合诚知识产权代理有限公司 44281 | 代理人: | 宋鹰武 |
地址: | 518055 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 高级 语言 代码 生成 方法 及其 产生器 | ||
技术领域
本发明涉及电子设计自动化(Electronic Design Automation,EDA)软件工具的验证和自动代码生成领域,尤其涉及在高层次综合设计工具开发的验证流程中的一种高级语言代码产生器及高级语言代码生成方法。
背景技术
集成电路设计的EDA技术开始于20世纪70年代。最早在电路设计方面出现了SPICE(Simulation program with integrated circuit emphasis,通用模拟电路仿真器),在版图制作方面由手工绘图转变为计算机绘图;20世纪80年代初出现了逻辑仿真器和自动布局布线工具;20世纪80年代末出现了RTL(Register Transfer Level,寄存器传输级)级设计仿真和逻辑综合工具,以及形式验证和静态时序分析工具;现在的第四代EDA工具主要包括:重复利用设计、图形的状态图输入、算法综合、软硬件互补设计等。
从EDA的发展趋势可以看出,现在的辅助设计逐渐向算法级和系统级转化。这也是为应对现在集成电路设计公司对快速开发和快速上市等需求的必然走向。随着算法描述抽象层次的提高,使用高级语言设计系统的优势更加明显,设计者可以快速而简洁地构建功能函数,通过标准库和函数调用技术,创建更复杂高速的系统。
目前,EDA设计工具支持从高级语言的算法描述直接映射出对应的电路结构,但从高级语言算法描述映射到对应的电路结构过程中,通常难以保证在该EDA设计工具支持的高级语言语法范围内的各种形式的算法代码描述的正确转换。
发明内容
本发明要解决的主要技术问题是,提供一种高级语言代码产生器及高级语言代码生成方法,通过本发明的高级语言代码产生器,及高级语言代码产生方法生成的高级语言代码精简,有良好的相关性和随机性,使得更自然地模拟实际算法代码,从而提供测试或者验证时所需的符合要求的高级语言代码测试用例,并且保证产生的高级语言代码测试用例的直接可执行性,从而减轻了人工编写测试代码的压力。
为解决上述技术问题,本发明采用的技术方案如下:
一种高级语言代码产生器,包括:
语法配置模块,用于接收输入的电子设计自动化工具的语法支持情况描述信息,并将所述语法支持情况描述信息转换为相应的语法配置表;
控制参数提取模块,用于接收输入的验证或者测试策略的策略级描述信息,并将所述验证或者测试策略的策略级描述信息转化为相应的控制约束表;
高级语言语法库,用于将需要的高级语言的所有语法和词法元素描述进行存储;
语法树生成模块,与所述语法配置模块、高级语言语法库和控制参数提取模块相连,用于根据所述语法配置模块生成的语法配置表,以及所述参数提取模块生成的控制约束表,调用所述高级语言语法库中的语法和词法元素,并生成相应的语法树;
代码生成模块,与所述语法树生成模块相连,用于将所述语法树生成模块生成的语法树转换为相应的可执行高级语言代码文件。
进一步地,所述代码生成模块还用于根据所述语法树,生成对应于所述可执行高级语言代码文件的高级语言代码特性描述文件,则所述代码生成模块,包括:
代码构建子模块,与所述语法树生成模块相连,用于将所述语法树生成模块生成的语法树进行遍历读取,生成对应的可执行高级语言代码文件;
代码特性提取子模块,与所述代码构建子模块和符合度检测模块相连,用于在所述代码构建子模块遍历读取所述语法树的同时记录产生的可执行高级语言代码的特性,并产生相应的高级语言代码特性描述文件。
更进一步地,当用户需要特定标注或注释信息时,所述代码构建子模块还用于在标准语言基础上增加其他信息量标注的接口。
更进一步地,所述高级语言代码产生器还包括:
符合度检测模块,与所述代码特性提取子模块和控制参数提取模块相连,用于根据所述高级语言代码特性描述文件,以及所述控制约束表进行符合度核对,如果所述高级语言代码特性描述文件满足所述控制约束表,则生成相应的符合度报告,并输出所述符合度报告、可执行高级语言代码文件和高级代码特性描述文件;如果所述高级语言代码特性描述文件不满足所述控制约束表时,则根据预先设置的允许的迭代次数,自动调整内部设置,重新生成新的可执行高级语言代码文件。
进一步地,所述语法树生成模块包括:
子树集生成子模块,与所述语法配置模块、控制参数提取模块和高级语言语法库相连,用于根据所述语法配置表和控制约束表,以高级语言语法库中的语法或者词法元素的类标识或者实例为结点,生成相应的子树集;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学深圳研究生院,未经北京大学深圳研究生院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110115605.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种电力线路杆塔电子识别与登杆人员自动定位系统
- 下一篇:一种碳纤维电热板