本技术涉及仿真,特别是涉及可编程逻辑单元仿真和代码生成系统、方法、介质装置及程序产品。
背景技术:
1、如今,高性能mcu芯片内部集成有可编程逻辑阵列(programmable logic array,pla)、复杂逻辑块(complex logic block,clb)或复杂可编程逻辑器件(complexprogrammable logic device,cpld)等。这些组件可以提供额外的逻辑功能,帮助mcu处理高速信号和执行复杂的逻辑操作,从而提高整体性能。
2、但是,这些可编程逻辑阵列的编程通常需要专门的编程语言和工具,与mcu本技术的固件编程不同,目前也仅有少数公司提供以下类型的工具和资源来支持用户进行可编程逻辑阵列的编程:(1)集成开发环境(ide),提供代码编辑、编译、仿真和调试等功能;(2)硬件描述语言(hdl)编译器,将hdl代码转换为可以在fpga或cpld上执行的逻辑电路;(3)逻辑仿真工具,在实际硬件部署之前允许用户测试和验证逻辑设计;(4)配置和烧录工具,将编译后的逻辑设计下载到mcu中的可编程逻辑阵列;(5)文档和示例,提供编程指南、api文档和示例代码,帮助用户快速上手。
3、然而,实现上述工具和资源面临着如下种种问题:
4、(1)这需要一个庞大的工具团队,成本高;
5、(2)这些工具的配置方式仍然是寄存方式,即指定寄存器的值,不直观。例如图1所示,信号的输入输出都是通过选择选项配置的,导致设计困难。
6、(3)专用工具,增加学习成本,用户接受度比较低。
7、(4)仿真输入信号不灵活,信号的观测和调试不方便。
8、(5)无法使用真实输入信号作为仿真输入。
9、(6)使用simulink仿真,和自带的代码生成工具,无法直接将信号线生成代码。
10、因此,提供低成本快速设计数字电路的方案、低成本快速仿真数字电路的方案、经过设计和仿真后的模型可以生成可编程逻辑单元使用的代码、支持硬件在环仿真,成为本领域亟需解决的技术问题。
技术实现思路
1、鉴于以上所述现有技术的缺点,本技术的目的在于提供可编程逻辑单元仿真和代码生成系统、方法、介质装置及程序产品,用于解决现有技术成本高、用户接受度低、调试不便、无法使用真实输入信号、无法直接将信号线生成代码的技术问题。
2、为实现上述目的及其他相关目的,本技术的第一方面提供一种可编程逻辑单元仿真和代码生成系统,包括:图形化编程模块,基于图形化编程环境,响应于用户配置操作进行模块搭建以建立仿真模型;文件解析及代码生成模块,用于解析所述仿真模型输出的文件并生成对应的代码;以及在监听到仿真模型改变时根据新的仿真模型生成对应的代码;目标硬件代码配置模块,用于调取所述文件解析及代码生成模块所生成的代码并转换为适配于目标硬件运行的代码,以进行硬件在环仿真。
3、于本技术的第一方面的一些实施例中,所述图形化编程模块包括以simulink模型作为图形化编程环境的编程模块;所述建立仿真模型的过程包括:启动simulink环境并创建一个新的模型,并根据用户需求在新创建的模型中添加多个基础模块;对各个基础模块进行配置和连接;运行模型仿真,根据信号输入模块和信号输出模块的波形,验证信号处理是否符合预期;根据仿真结果调整模块参数或逻辑,直至满足设计要求。
4、于本技术的第一方面的一些实施例中,所述在新创建的模型中添加多个基础模块,所述基础模块包括如下任一种或多种组合:真值表模块、信号连接模块、计数模块、移位模块、比较模块、信号输入模块、信号输出模块及调试模块。
5、于本技术的第一方面的一些实施例中,所述文件解析及代码生成模块解析所述仿真模型输出的文件并生成对应的代码,其处理方式包括:通过文本解析工具解析simulink模型文件,判断查找表和自定义模块数量是否符合硬件资源限制,分配相应的目标硬件id并提取模块sid;确定各模块之间的输入输出关系,配置iomux参数,获取查找表参数,融合获取的参数据以生成适用于目标硬件的代码。
6、于本技术的第一方面的一些实施例中,所述文件解析工具包括python脚本,所述目标硬件包括mcu处理器;通过python脚本解析文件并生成对应代码的过程包括:读取mdl文本;匹配字段获取查找表数量,并在查找表数量未超出最大资源量的情况下,分配给指定的mcu硬件查找表id;匹配字段获取自定义模块数量,并在自定义模块数量未超过硬件资源量的情况下,分配给相应的mcu硬件资源对应的id号;获取查找表的sid,以及iomux和自定义模块的sid;根据文本中的信号源和信号目的地确定各模块的输入输出关系并创建表;根据创建的表配置iomux参数;根据查找表的sid获取查找表的值;融合获取的参数生成c代码。
7、于本技术的第一方面的一些实施例中,所述目标硬件代码配置模块所配置的代码包括:板级初始化代码、外设和时钟配置代码、中间件封装接口代码。
8、为实现上述目的及其他相关目的,本技术的第二方面提供一种可编程逻辑单元仿真和代码生成方法,应用于所述可编程逻辑单元仿真和代码生成系统;所述方法包括:基于图形化编程环境,响应于用户配置操作进行模块搭建以建立仿真模型;解析所述仿真模型输出的文件并生成对应的代码;以及,持续监听所述仿真模型是否改变,并在监听到仿真模型改变时根据新的仿真模型生成对应的代码;调取生成的代码并转换为适配于目标硬件运行的代码,以进行硬件在环仿真。
9、为实现上述目的及其他相关目的,本技术的第三方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述可编程逻辑单元仿真和代码生成方法。
10、为实现上述目的及其他相关目的,本技术的第四方面提供一种计算机程序产品,所述计算机程序产品中包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得所述计算机实现所述可编程逻辑单元仿真和代码生成方法。
11、为实现上述目的及其他相关目的,本技术的第五方面提供一种计算机装置,包括存储器、处理器及存储在存储器上的计算机程序;所述处理器执行所述计算机程序以实现所述可编程逻辑单元仿真和代码生成方法。
12、如上所述,本技术的可编程逻辑单元仿真和代码生成系统、方法、介质装置及程序产品,具有以下有益效果:
13、(1)利用现有的simulink软件结合一些脚本代码,可以轻松实现数字电路的设计、仿真以及代码生成,这为芯片制造商大幅降低了客户支持成本。
14、(2)采用simulink进行数字电路搭建,用户只需通过拖拽图形化界面,即可直观而简便地构建电路。
15、(3)与专业工具相比,simulink具有更低的学习曲线,使得用户能够快速上手。
16、(4)可支持使用微控制器(mcu)采集的信号作为仿真输入,进一步增强了设计的灵活性和实用性。
17、(5)用户无需深入了解不同芯片外设的具体实现细节,只需关注所需功能,这大大简化了开发流程,降低了开发成本。
18、(6)通过自动生成代码,有效避免了在手动编码过程中可能引入的错误,提高了开发效率和代码质量。
1.一种可编程逻辑单元仿真和代码生成系统,其特征在于,包括:
2.根据权利要求1所述的可编程逻辑单元仿真和代码生成系统,其特征在于,所述图形化编程模块包括以simulink模型作为图形化编程环境的编程模块;所述建立仿真模型的过程包括:
3.根据权利要求2所述的可编程逻辑单元仿真和代码生成系统,其特征在于,所述在新创建的模型中添加多个基础模块,所述基础模块包括如下任一种或多种组合:真值表模块、信号连接模块、计数模块、移位模块、比较模块、信号输入模块、信号输出模块及调试模块。
4.根据权利要求1所述的可编程逻辑单元仿真和代码生成系统,其特征在于,所述文件解析及代码生成模块解析所述仿真模型输出的文件并生成对应的代码,其处理方式包括:
5.根据权利要求4所述的可编程逻辑单元仿真和代码生成系统,其特征在于,所述文件解析工具包括python脚本,所述目标硬件包括mcu处理器;通过python脚本解析文件并生成对应代码的过程包括:
6.根据权利要求1所述的可编程逻辑单元仿真和代码生成系统,其特征在于,所述目标硬件代码配置模块所配置的代码包括:板级初始化代码、外设和时钟配置代码、中间件封装接口代码。
7.一种可编程逻辑单元仿真和代码生成方法,其特征在于,应用于如权利要求1所述的可编程逻辑单元仿真和代码生成系统;所述方法包括:
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要8所述可编程逻辑单元仿真和代码生成方法。
9.一种计算机程序产品,其特征在于,所述计算机程序产品中包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得所述计算机实现如权利要求8所述可编程逻辑单元仿真和代码生成方法。
10.一种计算机装置,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求8所述的可编程逻辑单元仿真和代码生成方法。