IA32的逻辑功能仿真实现
摘 要
本设计是一个对IA32CPU模拟并动态演示的设计,它应用了VC6.0的MFC开发出的一个仿真硬件的虚拟实验平台,该平台为我们提供了一个对各类硬件定义与实现功能的规范,依据规范我们将CPU、主存等硬件设计成抽象的器件类,并将其封装成随时供平台调用的动态链接库。DLL库中包含了对CPU模型设计,我们通过移植虚拟机Bochs下的CPU库来实现核心功能。
CPU核心功能采用调用bochs里的相关库来实现,因此我们将虚拟机bochs中的CPU指令库移植到设计中,并将它封装成一个静态库,器件类可通过调用该库中的程序来完成相关操作。为了使DLL调用这个指令库,CPU内的cpu_loop函数进行了修改,同时又在boshs中的stubs库中扩展了CPU功能。http://www.16sheji8.cn/
关键词:虚拟实验平台;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
目录
论文总页数:24页http://www.16sheji8.cn/
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
参考文献 18http://www.16sheji8.cn/
致 谢 19
声 明 20
1 概述
随着计算机技术的迅猛发展,越来越多的电子器件被开发出来,CPU、主存等硬件的功能更加强大、结构更加复杂,为了更方便地了解硬件的工作时序和逻辑功能,人们开始采用虚拟技术来仿真硬件的工作时序和逻辑功能。计算机仿真技术是以多种学科和理论为基础,以计算机及其相应的软件为工具,通过虚拟试验的方法来分析和解决问题的一门综合性技术。计算机仿真(模拟)早期称为蒙特卡罗方法,是一门利用随机数实验求解随机问题的方法。其原理可追溯到1773年法国自然学家G.L.L.Buffon为估计圆周率值所进行的物理实验。根据仿真过程中所采用计算机类型的不同,计算机仿真大致经历了模拟机仿真、模拟-数字混合机仿真和数字机仿真三个大的阶段。20世纪50年代计算机仿真主要采用模拟机;60年代后串行处理数字机逐渐应用到仿真之中,但难以满足航天、化工等大规模复杂系统对仿真时限的要求;到了70年代模拟-数字混合机曾一度应用于飞行仿真、卫星仿真和核反应堆仿真等众多高技术研究领域;80年代后由于并行处理技术的发展,数字机才最终成为计算机仿真的主流。现在,计算机仿真技术已经在机械制造、航空航天、交通运输、船舶工程、经济管理、工程建设、军事模拟以及医疗卫生等领域得到了广泛的应用。
2 需求分析
2.1 虚拟实验台中的CPU仿真
计算机技术、大规模集成电路技术和通讯技术的飞速发展,为虚拟实验的发展奠定了坚实的基础。虚拟实验就是在通用计算机上加载相应的软件或硬件,使得使用者在操作这台计算机时,就像是在操作一台专用的传统试验设备一样。在虚拟实验系统中,软件是整个系统的关键,任何以个使用者都可以通过软件的相关设置来达到要实现实验的效果。
虚拟实验就是利用外部输入(如鼠标的点击、拖动和键盘的敲击等),将计算机上虚拟的各种仪器,按实验要求、过程,组装成一个完整的实验环境,同时在这个环境中完成实验操作,包括实验器材的添加、实验条件的改变、数据采集以及实验结果的模拟、分析。它包含了虚拟仿真技术、计算机技术、实验技术、网络技术与专业等多方面理论知识。该平台已经设计好了,我们的任务就是能够正确无误的使用它,使各自的设计在平台下正常显示出来。http://www.16sheji8.cn/
2.2 采用VC为开发工具
Visual C++是一款比较好的面向对象的软件开发工具,使用次工具我们开发出了可视化虚拟的CPU器件。