论文部分内容阅读
片上系统(SoC)功能的不断增强,设计复杂度和难度的不断增加以及产品上市周期的日益缩短,使得处理器仿真技术得到了越来越多的重视。处理器仿真不仅在硬件设计阶段可作为处理器功能验证的参照模型发挥重大作用,而且在软件设计阶段可作为软件开发环境中的系统支撑平台而具有重大意义。为了推动开源OpenRISC处理器技术的发展,验证基于SystemC仿真语言进行处理器仿真的优点,本文使用SystemC对开源OpenRISC处理器进行了仿真,给出了OpenRISC处理器最小系统的仿真实现,并重点介绍了OpenRISC流水线仿真设计与实现,可为基于SystemC的OpenRISC处理器的进一步仿真和开发奠定基础。本文的研究工作主要包括:首先对处理器仿真技术和SystemC硬件仿真平台进行了分析;详细介绍了处理器仿真技术中的指令集仿真技术和结构仿真技术的功能特点,SystenC硬件仿真平台下的设计方法学、仿真内核和进程的特点和功能。其次,分析了OpenRISC1200处理器核的结构框架,并通过对额外单元的裁剪给出了最小系统;最小系统包括整数流水单元、寄存器单元和内存;分析了流水线各级的作用,各级中可能发生的冒险,发生冒险的条件以及各种冒险的解决方案。介绍了OpenRISC为匹配主存与CPU性能差异采用的Cache技术的特点;还对OpenRISC指令集的特点分析和分类。然后,采用SystemC对OpenRISC处理器流水线进行了仿真设计,给出了OpenRISC处理器整体设计框架;实现了流水线中IF级的genpc模块的仿真,ID级的control模块和rf模块的仿真,EXE级的operandmuxes模块和alu模块的仿真,MA级的lsu模块的仿真和WB级中的wbmux模块的仿真;同时给出了Cache的仿真实现。最后结合SystemC仿真开发平台,对其进行必要的初始化工作后;针对数据冒险、流水线阻塞、流水线综合性能和Cache功能分别设计了相应的测试用例,给出了其中相关的代码及执行结果;理论分析和实验结果都表明基于仿真语言SystemC对OpenRISC处理器核的仿真是可行的,可在此基础上继续开发和完善并将其用于支持基于OpenRISC的软硬件系统的开发设计。