[发明专利]一种基于强化学习的硬件设计验证系统及方法有效
申请号: | 201910845889.6 | 申请日: | 2019-09-09 |
公开(公告)号: | CN110598309B | 公开(公告)日: | 2022-11-04 |
发明(设计)人: | 刘洋;吴健勤;钱堃;胡绍刚;于奇 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06F30/398 | 分类号: | G06F30/398;G06F30/27;G06N20/00 |
代理公司: | 电子科技大学专利中心 51203 | 代理人: | 甘茂 |
地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 强化 学习 硬件 设计 验证 系统 方法 | ||
1.一种基于强化学习的硬件设计验证系统,包括:
一个待测设计模块,作为验证系统的测试对象;
一个智能体,由动作控制模块、事务和激励序列三部分构成,其中,动作控制模块用于构建全局动作集合,并完成智能体的动作控制,控制激励序列产生对应激励发送给硬件设计验证平台和待测设计模块;
一个硬件设计验证平台,用于接收智能体输入的激励,并将其按时序要求分别输入待测设计模型和参考模型,并且会监测待测设计模块的输入、输出,比对仿真结果,生成覆盖率并反馈给奖励模块;
一个奖励模块,用于设定回报机制,以覆盖率为强化学习的奖励回报,发送至全局状态模型;
一个全局状态模型,根据待测设计模块的覆盖率构建全局状态集合,并将奖励回报发送至状态控制模块;
一个状态控制模块,用于构建全局状态转移表,并根据接收到的奖励回报判断系统当前时刻所处状态以及控制状态转移,并将下一时刻状态转移信息反馈至智能体的动作控制模块;
所述全局动作集合的构建过程为:根据待测设计模块的输入数量m,从m个输入中选取任一输入进行随机化、同时其他输入保持不变作为一种动作,分别表示为:a1,a2,...,am,共m种动作构成全局动作集合;
所述全局状态集合的构建过程为:根据覆盖率规划出状态:0%覆盖率为S0,大于0%且小于100%覆盖率的状态平均划分为n-2个状态,分别记作S1,S2,...Sn-2,100%覆盖率为Sn-1,共n个状态构成全局状态集合;
所述全局状态转移表的构建过程为:以n种状态作为纵坐标、m种动作作为横坐标,以在各个状态下采取相应动作后的最大未来奖励期望为值构造全局状态转移表Q-table,初始化均为0;所述值根据Q函数计算得到:
Q(St,at)=R(St,at)+γ·max{Q(St+1,at+1)}
其中,R表示t时刻在状态St下采取动作at获得的奖励回报,γ为折扣因子、满足0≤γ≤1,max{Q(St+1,at+1)}表示下一状态St+1的最大期望Q值。
2.按权利要求1所述基于强化学习的硬件设计验证系统的验证方法,包括以下步骤:
步骤1,根据待测设计模块的需求文档以及设计方案制定验证方案,按照验证方案搭建硬件设计验证平台;
步骤2,调试仿真环境,将待测设计模块和硬件设计验证平台联合仿真,调试仿真工具的覆盖率收集功能;
步骤3,根据待测设计模块的覆盖率规划出以下状态:0%覆盖率为S0,大于0%且小于100%覆盖率的状态平均划分为n-2个状态,分别记作S1,S2,...Sn-2,100%覆盖率为Sn-1,共n个状态构成全局状态集合;
步骤4,根据待测设计模块输入信号的数量m,将对于m个输入中的选取任一输入进行随机化、同时其他输入保持不变作为一种动作,分别表示为:a1,a2,...,am,共m种动作构成全局动作集合;
步骤5,确定以覆盖率作为强化学习的奖励回报,并且以n种状态作为纵坐标、m种动作作为横坐标,以在各个状态下采取相应动作后的最大未来奖励期望为值构造出状态转移表Q-table;
步骤6,初始化Q-table的所有值为0,得到Q-table0态;
步骤7,根据Q-table0态,选择全局状态S0为起始状态;并设定循环的最大迭代次数N、训练目标点为Sn-1;
步骤8,根据状态转移表,在当前状态St的所有列中,选择Q值最大的一列记为动作at;
步骤9,智能体采取动作at后,将生成的激励发送给硬件设计验证平台和待测设计模块;
步骤10,硬件设计验证平台接收到激励后开启仿真,将激励输入参考模型,并通过虚接口将激励灌入待测设计模块,在仿真结束后获得仿真结果,包括覆盖率报告;
步骤11,判断仿真结果是否正确,若仿真结果正确、则进入步骤12,否则、终止验证并报错;
步骤12,奖励模块获取覆盖率报告,将覆盖率作为奖励回报,奖励模块记录奖励回报并将其发送给全局状态模型;
步骤13,全局状态模型接收到奖励回报后,由状态控制模块根据覆盖率判断当前状态为St+1,采用Q函数计算出Q值,并更新至Q-table对应状态St下采取动作at的Q值;所述Q值具体计算过程为:
Q(St,at)=R(St,at)+γ·max{Q(St+1,at+1)}
其中,R表示t时刻在状态St下采取动作at获得的奖励回报,γ为折扣因子、满足0≤γ≤1,max{Q(St+1,at+1)}表示下一状态St+1的最大期望Q值;
步骤14,由状态控制模块判断当前状态St+1是否为全局状态中的目标点,若是、则进入步骤16,否则、进入步骤15;
步骤15,迭代次数加1,并判断迭代次数是否为最大迭代次数N,若是、则进入步骤16,否则、进入步骤8;
步骤16,完成硬件设计验证目标,结束训练。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910845889.6/1.html,转载请声明来源钻瓜专利网。