1.基于虚拟平台的RISC‑V安全SoC验证和评估方法,其特征在于,包括如下步骤:
步骤1. 根据RISC‑V安全SoC目标设计要求,建立处理器行为模式,对可选的RISC‑V指令集进行配置,完成指令到事务处理的转换逻辑建模;
步骤2. 建立总线和外设模块的事务级模型,包括抽象外设模块的功能特性、以及定义总线的接口和事务类型;
步骤3. 建立安全模块库的事务级模型,包括构建安全模块和安全管理单元来处理总线事务,设计配置文件实现安全模块动态切换;
步骤4. 使用硬件描述语言对各模块即处理器、安全模块库、总线和外设模块进行电路级设计,通过EDA工具分析各模块功耗、时序和面积指标;
步骤5. 根据得到的性能指标数据,为各模块定义时序、面积和功耗模型;
步骤6. 根据RISC‑V安全SoC目标设计要求,确认不同的安全模块组合,并调整安全模块库配置文件设置确定待启用的安全模块,集成处理器、安全模块和外设模块构建SoC虚拟平台,通过总线映射完成各模块间的通信;
步骤7. 根据构建的SoC虚拟平台计算所设计的安全SoC的面积;
步骤8. 编译测试用例进行平台模拟,记录虚拟平台模拟的时序、功耗数据;
步骤9. 对比模拟结果与预期的面积、时序和功耗数据,综合评估SoC虚拟平台的设计是否满足安全SoC设计的性能要求;
步骤10. 若综合评估的结果不满足目标设计要求,则返回步骤6;否则,将本轮构建的SoC虚拟平台作为最终设计方案,即构建出满足设计需求的安全SoC虚拟平台。
2.根据权利要求1所述的基于虚拟平台的RISC‑V安全SoC验证和评估方法,其特征在于,所述步骤1具体为:
定义处理器的行为模式,使用 sc_module 类来创建处理器核心模块;将算术逻辑单元、程序计数器组件作为独立的 sc_module实例来实现;处理器内部状态的建模,包括寄存器值、程序计数器的更新逻辑,使用sc_signal来存储寄存器的当前状态,当指令执行时根据当前指令的长度更新PC值;
使用事件驱动机制来管理处理器的执行流程,通过定义sc_event和sc_process,在处理器从内存读取指令、发生状态变化或接收外部信号时触发相应的事件;每个事件会激活相应的sc_process,从而完成指令的解码和执行;处理器的指令模拟基于事件触发的状态转移逻辑,将指令转化为相应的事务;
通过为可选指令集定义布尔标志位,在虚拟平台中动态启用或禁用不同指令集;不同指令集的启用会增加新的指令,在处理器的执行过程中,指令的解码与执行过程根据启用的指令集来执行相应的处理逻辑;将不同指令集的处理逻辑封装在独立的模块中;通过选择不同的指令集,能够测试处理器在不同配置下的性能表现,确定最适合当前设计需求的指令集,找到最佳的硬件设计;
定义处理器与事务级总线交互所需的接口模块,通过总线与安全模块库、外设模块进行数据交互,接口模块集成有指令和数据内存访问功能,负责处理和转发处理器的内存读写请求。
3.根据权利要求1所述的基于虚拟平台的RISC‑V安全SoC验证和评估方法,其特征在于,所述步骤2中,构建总线和外设模块的事务级模型的过程如下:为每个外设模块建立目标套接字来接收总线传输的事务,创建各外设模块的寄存器映射表,为每个寄存器分配地址和对应的寄存器对象,在寄存器访问处理函数中定义寄存器的读写操作和数据控制信号的处理过程;定义总线信号,包括地址、数据指针、数据长度、事务命令及响应信号;定义事务级总线的处理函数,实现基本的总线交互,在处理函数中获取事务的传输信息,通过地址查找寄存器并根据命令执行的读写操作。
4.根据权利要求1所述的基于虚拟平台的RISC‑V安全SoC验证和评估方法,其特征在于,所述步骤3中,构建安全模块库的事务级模型过程如下:采用模块化设计思想,使用sc_module类来创建安全管理单元和不同的安全模块,安全管理单元处理总线事务,处理器通过内存地址映射访问安全模块库的控制寄存器和状态寄存器获取安全模块的状态,控制数据输入寄存器负责接收事务,数据输出寄存器保存事务处理的结果,安全模块和安全管理单元间的同步通过事件驱动的同步机制实现;
安全管理单元通过目标套接字的阻塞传输回调函数来接收处理器请求,请求中包含需要数据类型、状态和控制信息;创建寄存器映射表,为每个寄存器分配地址和对应的寄存器对象;设置寄存器访问处理函数,当有寄存器访问请求时,函数会被调用,进行寄存器数据的存储和读取,并更新寄存器状态信息;调用线程函数,rxpush 负责接收数据并存储到寄存器,txpull 负责从寄存器中读取数据并将其传输到安全模块内,采用信号量机制确保线程间的数据同步,等待来自 rxpush 线程的数据就绪通知;
在安全模块的数据处理过程中,调用安全管理单元的发送线程获取寄存器信息,根据获取的控制寄存器信息,确定当前需要执行的处理类型以及所需参数,并根据获取的输入寄存器的数据调用不同安全模块的安全算法对进行数据处理,根据处理的结果更新安全模块的内部状态,安全管理单元通过调用接收线程将数据处理的结果以及更新后的状态信息存储到相应的寄存器中。
5.根据权利要求4所述的基于虚拟平台的RISC‑V安全SoC验证和评估方法,其特征在于,所述步骤3中,各个安全模块的动态切换的过程如下:在配置文件中定义各安全模块的名称、类型、算法以及所需的参数,各安全模块都有独立的配置项,支持模块的独立启用和配置;
通过设置标志位来启用或禁用某个安全模块;在虚拟平台启动模拟时,首先会解析配置文件,并根据配置文件的参数初始化相应的安全模块和安全算法;
每个安全模块,根据其功能配置有相应的安全算法,所有的安全算法通过相应的事务接口进行封装。
6.根据权利要求1所述的基于虚拟平台的RISC‑V安全SoC验证和评估方法,其特征在于,所述步骤4具体为:
基于步骤1中定义的处理器行为模式、步骤2中定义的安全模块库以及步骤3中定义的总线和外设模块的事务级模型,将处理器、安全模块库、总线和外设模块划分成实际的硬件电路块,逐步转化为目标硬件结构;对于处理器模块,将高级语言描述的指令集架构和处理器执行流程转化为具体的硬件电路结构;安全模块库转化为硬件实现时,根据不同的安全算法和协议,设计相应的硬件电路结构;总线和外设模块的事务级模型转化为硬件结构时,设计总线控制器、外设接口电路硬件部分;为每个模块定义具体的接口和时序要求,根据所验证的RISC‑V安全SoC的性能要求、工作频率需求,定义时钟信号、时序路径、同步逻辑与异步逻辑,以保证电路满足时序约束,在定义接口时,明确各模块之间的数据传输协议和信号类型,通过信号线实现模块之间的通信;明确每个模块所需的硬件资源,并定义各模块与硬件资源之间的连接关系;
调用EDA综合工具进行综合分析,包括逻辑综合、布局布线,生成目标硬件的门级网表,并对目标硬件的门级网表进行功耗和面积分析,计算静态功耗、动态功耗和设计的总面积,并生成功耗和面积报告;然后调用EDA的时序分析工具,通过提取目标硬件的门级网表,根据时钟信号在安全SoC硬件架构中的传播路径,确定所生成的安全SoC硬件架构的时钟路径;并根据时序约束,对整个硬件架构进行分析,识别所生成的安全SoC硬件架构的关键路径,并计算每条关键路径和时钟路径的延迟;
根据EDA工具综合分析和时序分析的结果,记录所生成的安全SoC硬件架构的功耗、时序和面积关键指标,包括关键路径和时钟路径的延迟、功耗分布和面积占用信息。
7.根据权利要求1所述的基于虚拟平台的RISC‑V安全SoC验证和评估方法,其特征在于,所述步骤5具体为:
根据步骤4中确定的关键指标数据,利用时钟和延时机制来模拟实际硬件上的周期准确与时延特性;对于处理器时序模型,采用sc_clock类定义时钟信号,明确每条指令在流水线各阶段所需的时间周期,通过事件驱动机制实现信号和状态变化的触发,即每条指令会依次触发不同的事件,推动指令在各个流水线阶段的状态变化;对于总线时序模型,通过事务级建模的延迟机制模拟数据传输延迟,使用sc_time类控制事件时间间隔,并根据本地时间调整事务的发送延迟;对于外设模块和安全模块库的时序模型,使用时间戳来标记事件从接收到请求到开始响应的时间和模块处理请求所需的时间,包括数据处理以及模块内部的数据传输时间;而不同模块之间通过事件传递来实现时钟同步,模块接收到信号请求后,会触发相应的事件,确保各模块在正确的时刻同步执行;
为各模块的接口添加功耗和面积属性;在定义的模块结构体中包含模块的静态功耗、动态功耗和面积信息;在各模块的初始化过程中,添加对应模块的静态功耗和面积属性,为模块设置状态变量,表示模块的活动状态;并在时钟周期内,监听模块状态变量的变化,更新动态功耗;当模块处理完事务后,在模块内部创建状态接口,该接口中包含时序、功耗和面积信息,每次事务结束后,更新并记录模块的功耗和面积和时序数据。
8.根据权利要求1所述的基于虚拟平台的RISC‑V安全SoC验证和评估方法,其特征在于,所述步骤6中,根据设计要求,确认不同的安全模块组合,并调整安全模块库配置文件设置确定待启用的安全模块,将处理器、安全模块和外设模块通过事务级总线连接,构建SoC虚拟平台的过程如下:根据目标SoC的性能要求,并依据步骤5建立的时序、面积和功耗模型,选择不同的安全模块组合,再修改步骤2中定义安全模块库配置文件中各安全模块的标志位,启用或禁用不同的安全模块;每个安全模块有其对应的功能和参数配置,通过配置文件来控制安全模块的启用与否;
创建系统的顶层模块,负责整个系统的初始化工作,配置各模块的地址空间、模块实例化、模块间连接关系的建立;通过总线端口映射的方式,将各个模块的地址映射到事务级总线上;各个模块的目标套接字接口与总线的发起套接字接口进行绑定;启动程序模拟,等待系统运行完成;
在系统的顶层模块中,调用各模块创建的状态接口,遍历各模块并提取其时序、功耗和面积信息,模拟结束时,打印各模块的状态信息,便于SoC虚拟平台整体性能评估;
当RISC‑V处理器发起事务请求时,总线会通过套接字接口将该请求转发给对应地址的外设模块,外设模块在接收到请求后进行处理,并将响应数据通过相同的套接字接口返回给总线,总线再将响应数据转发给RISC‑V处理器,完成整个事务流程。
9.根据权利要求1所述的基于虚拟平台的RISC‑V安全SoC验证和评估方法,其特征在于,所述步骤7具体为:根据步骤5中定义的面积模型,通过对构建的SoC虚拟平台各模块的面积以加权求和的方式,计算所设计的安全SoC的面积。
10.根据权利要求1所述的基于虚拟平台的RISC‑V安全SoC验证和评估方法,其特征在于,所述步骤9中,综合评估包括时序、功耗、面积性能评估;
时序评估,分析模拟运行得到的时序数据,与预期性能指标中的处理延时、传输延时进行比较,评估虚拟平台的时序表现是否达到设计要求;
功耗评估,对比模拟运行的功耗数据与预期功耗指标,判断虚拟平台的能耗情况是否在可接受范围内;
面积评估,根据模拟运行得到的虚拟平台总面积,与预期的SoC面积进行比较,评估面积占用情况是否符合设计目标。