基于流图的自动硬件代码生成技术
- 国知局
- 2024-12-06 12:31:18
本发明涉及数字电路领域,专注于数字电路的开发,旨在提供一种新型的数字电路敏捷开发工具用于加速硬件开发流程。
背景技术:
1、传统的硬件开发通常是专业的硬件工程师手动撰写硬件描述语言代码并通过仿真等方式不断迭代代码直至电路功能正确。然而数字电路在各领域所处理的任务越来越复杂使得数字电路的开发难度日益增加,耗时耗力且专业性强的传统硬件开发方式难以适配如今的硬件开发需求,因此针对硬件开发挑战而提出硬件敏捷开发工具得到广泛的研究。
2、硬件敏捷开发工具可以将算法级或者行为级的描述(如python等),经过行为描述、行为综合以及优化处理后转化为电路结构级描述(如verilog、vhdl等),例如xilinx公司开发的vivado hls和cadence公司开发的stratus hls,通过接受c、c++和systemc等高级语言作为输入自动生成优化的寄存器传输级设计,这些高层次综合工具被广泛应用于现场可编程逻辑门阵列(field programmable gate array,fpga)和专用集成电路(application-specific integrated circuit,asic)的设计中,在各自的领域里都取得了巨大的成功。
3、在使用硬件描述语言设计数字电路时,需要处理并行操作和时序逻辑等复杂问题,并严格遵循功能和性能要求。然而,在功能验证环节中,系统所出现的一些微小错误往往难以在波形图中定位,因此需要细致的检查和验证。同时,硬件设计是一个不断迭代的过程,每次调试可能会发现新问题,修复这些问题后需要重新仿真和验证。这种反馈循环往往占用大量的硬件开发时间。而且尽管仿真工具如modelsim功能强大,但它们也存在一定的局限性,比如对于大规模设计的仿真速度通常较慢。因此,硬件功能的调试工作在硬件开发周期中占据了大部分时间。而现有的硬件敏捷工具虽然加快了数字电路的设计工作,但并没有降低硬件开发流程中硬件功能调试工作的难度,也没有缩短硬件开发流程中占较大比例的调试时间。
4、与硬件描述语言相比,流图是描述硬件电路常用的方法,是一种比较直观的硬件表征,便于电路的设计与理解。数据流图和控制流图是常用的硬件描述方式。数据流图是一种用来表示数据在系统中如何流动的有向图,而控制流图则是一种用于表示硬件设计中的控制流的有向图。使用流图作为硬件敏捷工具的输入,有助于降低硬件开发门槛、促进数字电路设计的普及与推广。
技术实现思路
1、本发明的目的在于克服现有技术中所存在的数字电路开发难度大、耗时耗力且门槛高的问题,提供一种新型硬件敏捷开发系统,用于硬件代码的生成,其特征包括:
2、输入系统,用于接收并检查作为输入的流图;
3、编译系统,用于对经过输入系统处理后的流图进行编译,将编译信息发送至代码生成系统;
4、代码生成系统,分为软件化硬件代码生成系统与chisel代码生成系统两个部分,负责将编译后的信息分别转化为本系统自主定义的软件化硬件代码,与经由chisel语言生成的verilog硬件描述语言,并进行输出;
5、调试模块,输出软件化硬件代码仿真的测试计算结果,如果结果和预期不匹配,支持通过对输入流图内容进行修改,直到软件化硬件代码计算结果与预期结果一致,输出的verilog硬件描述语言代码即为目标代码。
6、优选地,在所述输入系统中,输入系统的流图是数据流图或者控制流图。
7、优选地,所述编译系统包含如下部件:
8、软件编译系统,对输入系统传进的数据流图和控制流图进行编译,将编译信息发送至软件化硬件代码生成系统;
9、硬件编译系统,对输入系统传进的数据流图和控制流图进行编译,将编译信息发送至chisel代码生成系统。
10、进一步优选地,所述的软件编译系统包括如下部件:
11、1)第一流图属性提取系统,通过使用库函数提取,以获得数据流图和控制流图的下述属性:节点输入输出位宽、节点操作类型、节点操作数、节点名称、控制流图的节点状态转移语句,控制流图的条件判断语句、边的时钟延迟、边的方向;
12、2)语法映射系统,将输入的控制流图的节点状态转移语句和条件判断语句通过正则表达式映射到软件化硬件代码的语法,以满足后续软件化硬件代码生成系统的语法要求;
13、进一步优选地,所述的硬件编译系统包括如下部件:
14、1)流图分解系统,基于导出子图对输入流图进行分解;导出子图指从原始图中选择一部分顶点和边形成的图,这些选择的顶点和边构成了原始图的一个子集;导出子图保留了所选顶点和边之间的连接关系,但不包括原始图中未选择的顶点和边;
15、2)第二流图属性提取系统,用于提取数据流图和控制流图的全部属性,且能够额外提取经过流图分解系统分解后的导出子图的全部信息,以及导出子图之间的端口连接信息;
16、3)语法映射系统,使用正则表达式识别控制流图中的节点状态转移语句和条件判断语句,将这些语句转换为chisel语言中的相应操作。
17、优选地,所述代码生成系统中产生的软件化硬件代码利用python语言对硬件描述语言进行模拟;通过模拟硬件电路的并行性和时序性,完成对数字电路的描述;为了模拟硬件电路的时序特性,在每个信号的初始化期间建立了一个二维数组;一维表示均匀增加的时间向量,另一维表示特定周期内的信号值;在计算过程中,运用了循环机制,每次迭代表示电路在一个周期内的运行,从而实现对硬件电路运行的模拟。
18、优选地,所述代码生成系统包含如下部件:
19、1)chisel代码生成系统,利用第二流图属性提取系统所提取的相关属性和导出子图的相关信息分别完成chisel代码的端口构建、模块的参数化例化、模块间的连接;将端口、模块例化和模块连接三部分拼接生成最终的chisel代码,并借由chisel自带的转换功能得到verilog代码;
20、2)软件化硬件代码生成系统,通过第一流图属性提取系统所得到的属性信息完成函数定义、函数调用和函数参数传递,将三者拼接成最终的软件化硬件代码。
21、与现有技术相比,本发明的有益效果:
22、本数字电路敏捷开发系统实现了对输入流图的检错编译,使得生成的硬件描述语言可综合,显著降低硬件开发门槛。
23、与此同时,通过在搭建过程中不断调试、使生成的软件化硬件代码仿真结果与硬件描述语言实际仿真结果完全一致,本系统保证了软件化硬件代码和硬件描述语言是完全等价的,确保电路功能的准确性。基于这一点,本系统支持基于软件的调试模式,仿真更快,有更多的调试方法,数据流的配置也更加简单,可以大大降低传统硬件的调试难度。
24、综合以上几点而言,本发明降低了硬件开发门槛、提高了硬件开发效率,并降低了硬件资源开销,具有重大的推广意义与应用前景。
技术特征:1.一种新型硬件敏捷开发系统,用于硬件代码的生成,其特征在于,包括:
2.如权利要求1所述的新型硬件敏捷开发系统,其特征在于,在所述输入系统中,输入系统的流图是数据流图或者控制流图。
3.如权利要求2所述的新型硬件敏捷开发系统,其特征在于,所述编译系统包含如下部件:
4.如权利要求3所述的新型硬件敏捷开发系统,其特征在于,所述的软件编译系统包括如下部件:
5.如权利要求3所述的新型硬件敏捷开发系统,其特征在于,所述的硬件编译系统包括如下部件:
6.如权利要求1所述的新型硬件敏捷开发系统,其特征在于,所述代码生成系统中产生的软件化硬件代码利用python语言对硬件描述语言进行模拟;通过模拟硬件电路的并行性和时序性,完成对数字电路的描述;为了模拟硬件电路的时序特性,在每个信号的初始化期间建立了一个二维数组;一维表示均匀增加的时间向量,另一维表示特定周期内的信号值;在计算过程中,运用了循环机制,每次迭代表示电路在一个周期内的运行,从而实现对硬件电路运行的模拟。
7.如权利要求1所述的新型硬件敏捷开发系统,其特征在于,所述代码生成系统包含如下部件:
技术总结本发明构建了一种基于流图的新型硬件敏捷开发系统,通过构建流图并输入该系统进行解析和编译后,自动生成描述数字电路功能、行为的目标硬件描述语言以及用于调试的软件化硬件代码。通过采用流图作为该系统的输入、取代硬件代码的撰写,本发明支持对所设计硬件电路的直观表征,便于电路的设计;通过确保该系统输出的软件化硬件代码的测试计算结果与输出的硬件描述语言的实际测试结果一致,本发明保证了软件化硬件代码与硬件描述语言的调试结果是严格等价的,从而用基于软件的仿真替代了传统ModelSim调试,大大降低了传统硬件的调试难度,具有重大的推广意义与应用前景。技术研发人员:陈杰男,谢材,谯雨恒,欧兆廷,田岩,周雅琨受保护的技术使用者:电子科技大学技术研发日:技术公布日:2024/12/2本文地址:https://www.jishuxx.com/zhuanli/20241204/341888.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表