处理器功能仿真模型生成装置、方法及功能验证方法制造方法及图纸

技术编号:7996259 阅读:243 留言:0更新日期:2012-11-22 05:06
本申请公开了一种处理器功能仿真模型生成装置,包括寄存器配置模块、指令集配置模块、输入处理单元生成模块、功能仿真单元生成模块、仿真结果配置模块、仿真结果输出单元生成模块和指令功能库。采用本申请提供的生成装置可自动生成满足仿真功能需要的功能仿真模型,避免了完全手工开发导致大量错误的可能性;同时,采用本申请的自动生成方法也大大节省了功能仿真模型的开发时间。

【技术实现步骤摘要】

本申请涉及集成电路设计领域,具体涉及一种处理器指令级的功能仿真模型及其自动生成装置和一种处理器的功能验证方法。
技术介绍
处理器硬件设计的逻辑功能和性能指标主要依赖于硬件设计人员利用硬件描述语言编写的代码质量,在实际应用前通常需要先对该处理器的正确性进行验证。伴随处理器复杂度的不断上升,处理器验证工作的复杂度和工作量呈 现指数上升,对验证的依赖与要求越来越高。作为设计过程的一部分,验证起着越来越关键的作用,验证的工作量也是相对较大,可能占据到整个设计工作量的70%左右,验证的效率和可靠性往往决定了项目的成败。处理器的验证主要包括功能验证和时序验证等过程,而功能验证中最基本且使用最广泛的方法是仿真验证,仿真验证在处理器验证的工程中起着非常重要的作用。为了确保处理器功能的正确性,通常需要建立一个功能仿真模型,对比处理器和功能仿真模型两者在相同输入激励下的输出结果来验证。现有技术中通常采用完全手工开发一个功能仿真模型的方式,这种方式不仅是一项非常繁重的工作,而且极易出错。一般来说,不仅开发过程需要花费数月的时间,还需要花费大量的时间来进行功能仿真模型正确性的验证。
技术实现思路
本申请要解决的主要技术问题是,提供一种可由用户根据需求自行配置的处理器功能仿真模型的生成装置。为解决上述技术问题,本申请提供一种处理器功能仿真模型的生成装置,该处理器功能仿真模型包括数据结构声明单元、寄存器初始化单元、输入处理单元、功能仿真单元和仿真结果输出单元;数据结构声明单元分别与寄存器初始化单元、输入处理单元、功能仿真单元、仿真结果输出单元相连;数据结构声明单元用于根据寄存器配置信息声明寄存器的个数及每个寄存器的名称及数据位宽,并声明保存指令信息所用的数据结构;寄存器初始化单元分别与数据结构声明单元、功能仿真单元相连;寄存器初始化单元用于根据寄存器配置信息中的复位值,初始化寄存器的值;输入处理单元分别与数据结构声明单元、功能仿真单元相连;输入处理单元用于根据输入的指令机器码的特征判断指令类型、提取指令信息以确定指令的功能,并将指令信息转换为所述数据结构声明单元中声明的数据结构并保存;功能仿真单元分别与数据结构声明单元、寄存器初始化单元、输入处理单元以及仿真结果输出单元相连;功能仿真单元用于根据所述输入处理单元中确定的指令的功能,完成指令的功能仿真;仿真结果输出单元分别与功能仿真单元、数据结构声明单元相连;仿真结果输出单元用于将功能仿真单元的功能仿真结果按设定格式输出;该生成装置包括寄存器配置模块、指令集配置模块、输入处理单元生成模块、功能仿真单元生成模块、仿真结果配置模块、仿真结果输出单元生成模块和指令功能库;寄存器配置模块分别与指令集配置模块、功能仿真单元生成模块以及仿真结果配置模块连接,用于接收用户输入的寄存器配置信息,并根据寄存器配置信息中的名称与数据位宽生成数据结构声明单元;根据寄存器配置信息中的复位值生成寄存器初始化单元;指令集配置模块分别与寄存器配置模块、输入处理单元生成模块、功能仿真单元生成模块相连,用于接收用户输入的指令集配置信息,指令集配置信息包括指令机器码和指令功能信息,所述指令机器码包括指令类型的映射字段和操作数映射字段; 输入处理单元生成模块与指令集配置模块相连,用于根据指令集配置模块接收的指令集配置信息中的机器码信息,生成输入处理单元;功能仿真单元生成模块分别与指令集配置模块、寄存器配置模块相连,用于根据指令集配置模块接收的指令集配置信息中的功能信息生成功能仿真单元;仿真结果配置模块分别与寄存器配置模块、仿真结果输出单元生成模块相连,用于接收用户输入的仿真结果配置信息;仿真结果输出单元生成模块用于根据所述仿真结果配置模块接收的仿真结果配置信息生成仿真结果输出单元;指令功能库分别与指令集配置模块、功能仿真单元生成模块相连,用于存储指令集配置模块接收的指令集配置信息中的功能信息;所述功能仿真单元生成模块还根据指令功能库存储的功能信息生成功能仿真单元。进一步,所述处理器功能仿真模型的输入处理单元包括指令类型判断子单元与指令操作数信息处理子单元相连,用于根据指令机器码中表示指令类型的信息判断指令类型;指令操作数信息处理子单元用于将指令机器码中表示指令操作数的信息转换为所述数据结构声明单元中声明的数据结构并保存;所述生成装置的输入处理单元生成模块包括指令类型判断子单元生成模块用于根据机器码信息中表示指令类型的信息生成所述指令类型判断子单元;指令操作数信息处理子单元生成模块用于根据机器码信息中表示指令操作数的信息,生成所述指令操作数信息处理子单元。进一步,所述指令操作数信息包括操作数个数和操作数数组。进一步,所述操作数数组包括操作数类型和操作数数值。同时,本申请还提供了一种处理器功能仿真模型的生成方法,其包括以下步骤配置寄存器信息接收用户输入的寄存器参数,所述寄存器参数包括寄存器个数及每个寄存器的名称、数据位宽和复位值;根据寄存器的个数、名称与数据位宽生成数据结构声明单元,根据寄存器的复位值生成寄存器初始化单元,数据结构声明单元用于以计算机可执行语言描述寄存器参数,声明寄存器的名称和数据位宽,寄存器初始化单元用于以计算机可执行语言描述寄存器初始值;配置指令集信息接收用户输入的指令集配置信息,指令集配置信息包括指令机器码和指令功能信息,所述指令机器码包括指令类型的映射字段和操作数映射字段;根据指令类型在指令功能库中匹配出该指令的指令功能;根据指令机器码生成机器码输入处理单元,所述机器码输入处理单元用于提取输入的指令机器码中的信息,根据指令机器码的指令类型字段判断指令的类型,并将指令机器码中的操作数映射字段转换为功能仿真器中的操作数信息,并将指令的类型和操作数信息按照预设的数据结构进行存储;根据指令功能生成功能仿真单元,所述功能仿真单 元用于根据指令功能,执行机器码输入处理单元发送的指令,改变相应寄存器的值;配置输出结果根据用户输入的仿真结果输出格式生成仿真结果输出单元,所述仿真结果输出单元用于将功能仿真单元处理的寄存器的值按照仿真结果输出格式输出。本申请还提供了一种处理器功能验证方法,利用仿真模型对处理器设计进行功能验证,所述方法包括根据上述处理器功能仿真模型的生成方法,接收用户输入的待验证处理器的寄存器参数、指令集信息和仿真结果输出格式信息,运用上述处理器功能仿真模型的生成装置,自动生成上述处理器指令级功能仿真模型;让该功能仿真模型与待验证的处理器运行相同的一段指令,比较每条指令执行完以后,该功能仿真模型和待验证的处理器对应的各个寄存器的值是否相同;若所有寄存器的值都相同,则认为待验证处理器在执行该段指令时没有错误;反之,则认为待验证处理在执行该段代码时会出现错误,需要对待验证处理器进行修改;重复上述操作,保证待验证处理器在执行很多代码段时都不会出错,通过分析待验证处理器在仿真验证过程中的覆盖率,以待验证处理的覆盖率作为验证是否通过的指标。本申请的有益效果是采用本申请提供的生成装置可自动生成满足仿真功能需要的功能仿真模型,避免了完全手工开发导致大量错误的可能性;同时,采用本申请的自动生成方法也大大节省了功能仿真模型的开发时间。附图说明图I为实施例提供的一种处理器功能仿真模型结构示意图;图2为实施例提供本文档来自技高网...

【技术保护点】
一种处理器功能仿真模型的生成装置,其特征在于,该处理器功能仿真模型包括数据结构声明单元、寄存器初始化单元、输入处理单元、功能仿真单元和仿真结果输出单元;数据结构声明单元分别与寄存器初始化单元、输入处理单元、功能仿真单元、仿真结果输出单元相连;数据结构声明单元用于根据寄存器配置信息声明寄存器的个数及每个寄存器的名称及数据位宽,并声明保存指令信息所用的数据结构;寄存器初始化单元分别与数据结构声明单元、功能仿真单元相连;寄存器初始化单元用于根据寄存器配置信息中的复位值,初始化寄存器的值;输入处理单元分别与数据结构声明单元、功能仿真单元相连;输入处理单元用于根据输入的指令机器码的特征判断指令类型、提取指令信息以确定指令的功能,并将指令信息转换为所述数据结构声明单元中声明的数据结构并保存;功能仿真单元分别与数据结构声明单元、寄存器初始化单元、输入处理单元以及仿真结果输出单元相连;功能仿真单元用于根据所述输入处理单元中确定的指令的功能,完成指令的功能仿真;仿真结果输出单元分别与功能仿真单元、数据结构声明单元相连;仿真结果输出单元用于将功能仿真单元的功能仿真结果按设定格式输出;该生成装置包括寄存器配置模块、指令集配置模块、输入处理单元生成模块、功能仿真单元生成模块、仿真结果配置模块和仿真结果输出单元生成模块和指令功能库;寄存器配置模块:分别与指令集配置模块、功能仿真单元生成模块以及仿真结果配置模块连接,用于接收用户输入的寄存器配置信息,并根据寄存器配置信息中的名称与数据位宽生成数据结构声明单元;根据寄存器配置信息中的复位值生成寄存器初始化单元;指令集配置模块:分别与寄存器配置模块、输入处理单元生成模块、功能仿真单元生成模块相连,用于接收用户输入的指令集配置信息,指令集配置信息包括指令机器码和指令功能信息,所述指令机器码包括指令类型的映射字段和操作数映射字段;输入处理单元生成模块:与指令集配置模块相连,用于根据指令集配置模块接收的指令集配置信息中的机器码信息,生成输入处理单元;功能仿真单元生成模块:分别与指令集配置模块、寄存器配置模块相连,用于根据指令集配置模块接收的指令集配置信息中的功能信息生成功能仿真单 元;仿真结果配置模块:分别与寄存器配置模块、仿真结果输出单元生成模块相连,用于接收用户输入的仿真结果配置信息;仿真结果输出单元生成模块:用于根据所述仿真结果配置模块接收的仿真结果配置信息生成仿真结果输出单元。指令功能库:分别与指令集配置模块、功能仿真单元生成模块相连,用于存储指令集配置模块接收的指令集配置信息中的功能信息;所述功能仿真单元生成模块还根据指令功能库存储的功能信息生成功能仿真单元。...

【技术特征摘要】

【专利技术属性】
技术研发人员:谢峥陈旭王新安苏吉婷李世军周芝丽胡子一张兴
申请(专利权)人:北京大学深圳研究生院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1