【编者按】网学网VC++频道为大家收集整理了“IA32的逻辑功能仿真实现“提供大家参考,希望对大家有所帮助!
包括论文,设计,论文字数:9914,页数:24
摘 要
本设计是一个对IA32CPU模拟并动态演示的设计,它应用了VC6.0的MFC开发出的一个仿真硬件的虚拟实验平台,该平台为我们提供了一个对各类硬件定义与实现功能的规范,依据规范我们将CPU、主存等硬件设计成抽象的器件类,并将其封装成随时供平台调用的动态链接库。DLL库中包含了对CPU模型设计,我们通过移植虚拟机Bochs下的CPU库来实现核心功能。
CPU核心功能采用调用bochs里的相关库来实现,因此我们将虚拟机bochs中的CPU指令库移植到设计中,并将它封装成一个静态库,器件类可通过调用该库中的程序来完成相关操作。为了使DLL调用这个指令库,CPU内的cpu_loop函数进行了修改,同时又在boshs中的stubs库中扩展了CPU功能。
关键词:虚拟实验平台;IA32逻辑功能;仿真;封装;移植
Simulation of IA32 Logic Function
Abstract
With the help of a virtual experiment witch is created with visual c++ language ,the project simulates IA32 and demonstrates its logic function. The platform provides a standard criterion, witch we can follow to design our cpu,memory and many other hardware into abstract components class ,and we package them in dynamic link library. The DLL library contains the model of cpu, we migrant a library of virtual machine bochs to realize its logic function.
We migrant bochs to carry out the important function of cpu model ,in order to satisfy our need we select and amend some useful instruction and then encapsule it into a library witch is transferred by DLL. In cpu library of bochs ,we should amend instruction of cpu_loop and append something in stubs library.
Key words: virtual experiment platform; IA32 logic function; simulation; encapsule; migrant
目录
1 概述 1
2 需求分析 1
2.1 虚拟实验台中的CPU仿真 1
2.2 采用VC为开发工具 2
2.3 实验台器件需封装成DLL 2
2.4 CPU的核心功能采用移植bochs 2
3 相关知识介绍 2
3.1 CPU虚拟化技术 2
3.2 VC++6.0及MFC介绍 3
3.3 动态连接库 DLL 3
3.4 bochs介绍 3
3.4.1 BX_CPU_C的数据成员 4
3.4.2 BX_CPU_C 类对CPU工作流程的简易描述 5
3.4.3 基本内存系统 8
3.4.4 内存的访问 10
3.4.5 Bochs 时钟系统 10
4 具体移植实现 12
4.1虚拟实验平台统一的器件模型 12
4.2 CPU中可视化器件的设计 13
4.2.1 运算部件 13
4.2.2 寄存器组 13
4.3 CPU类的主要功能及实现方法 14
4.3.1 CPU核心功能采用调用bochs里的相关库来实现 14
4.3.2 修改cpu_loop 14
4.3.3 修改插槽库stubs 15
5 仿真效果 15
5.1 测试平台的外观 15
5.2 器件的显示 16
5.3 对器件引脚输入信号 17
结 论 17
参考文献 18
致 谢 19
声 明 20