本Project旨在实现一个基于Y86指令集(参见《深入了解计算系统》 Randal E. Bryant, David R. O'Hallaron 著,龚奕利,贺莲 译)的流水线处理器
本Project包含以下内容
底层利用C#实现了对Y86流水线处理器的模拟,具体支持的指令参见教材。project.cs代码中命名空间load下的静态类Work用于实现*.yo文件的读入,命名空间conduct下的静态类Work用于模拟流水线的5个流程(Fetch Decode Execute Memory Writeback)以及时钟上升沿到达时对流水线寄存器和主寄存器的赋值(PosEdge)。此外,该静态类中还提供了对流水线寄存器以及主寄存器值观察的接口以及控制处理器模拟器运行步数的接口。
用户界面使用unity2019.2.12f1编写,打开工程后assets里面的文件夹包括Animator, Picture, Scenes, Scripts, System.Windows.Form, UI资源。
Animator中包含程序中使用的动画,包括展示代码段,菜单栏的切换。
Picture中包含工程中使用的图形文件。
Scenes中包含场景文件。
Scripts中包含工程使用的C#脚本,其中底层实现的文件在NextStep中。
System.Windows.Form用于实现在Windows操作系统下打开系统文件选择框。
点击exe打开程序,进入标题页。
点击任意按键进入2D界面。
由于程序窗口过大或过小会影响部分UI的样式,所以尽可能不要过分调节窗口大小。
将鼠标放到屏幕右侧可以调出菜单栏。从菜单栏移开指针一定距离,菜单栏就会消失,如果不希望菜单栏消失可以点击菜单栏上部的“固定”来使菜单固定。
菜单栏上方可以查看程序当前的cycle数。
点击“打开文件”按钮可以打开窗口选择输入文件,当前文件的名字会显示在“打开文件”按钮的上方。
点击“下一步”按钮可以分步执行程序。
点击“查看代码”按钮可以查看各个流水线阶段执行的代码,将指针移动到代码上,代码就会放大以方便浏览。
点击“查看寄存器”可以查看寄存器的值。在寄存器查看页面点击“关闭”可以关闭寄存器查看页面。
点击“连续运行”按钮可以连续运行程序,通过按钮上方的滑动条可以调节程序运行的速度。再次点击按钮可以停止运行。
菜单栏最下面点击“退出”可以退出程序。
在2D界面点击Back可以进入3D浏览界面。
用“WASD”控制角色移动,按住空格可以上升,按住鼠标右键可以左右调整角色视角。
角色触碰标有stage名字的方块可以看到当前流水线阶段寄存器对应的柱子,角色触碰柱子,上面漂浮的文字就会变成当前寄存器的值。再次触碰变回寄存器的名字。
触碰标有“back to 2D”文字的球可以回到2D界面。
该project由unicornt和bblss123合作完成
搞一张收款二维码?