基于Dream Logic的CPU仿真设计与实践.pdf
《基于Dream Logic的CPU仿真设计与实践.pdf》由会员分享,可在线阅读,更多相关《基于Dream Logic的CPU仿真设计与实践.pdf(9页珍藏版)》请在咨信网上搜索。
1、第 9 期2023 年 9 月 10 日计 算 机 教 育Computer Education中图分类号:G642192基于 DreamLogic 的 CPU 仿真设计与实践李珍香,王家亮(中国民航大学 计算机学院,天津 300300)摘 要:针对计算机组成原理课程中的重要实验内容“CPU 设计”中存在的一些难点问题,提出引入Dream Logic 仿真工具,通过 CPU 总体设计及 CPU 整机模型机中的运算器设计、指令系统设计与微指令设计示例,阐述基于 Dream Logic 的硬件基本部件仿真设计和软件设计方法,并结合 MOV、ADD等汇编指令及计算机组成原理实验中的寄存器和算术运算实验
2、,介绍对 CPU 模型机进行的实验测试,最后说明教学实践效果。关键词:CPU 设计;Dream Logic;CPU 仿真;计算机组成原理文章编号:1672-5913(2023)09-0192-090引 言CPU 设计是计算机组成原理课程中的重要实验内容,是计算机系统能力培养中的一个至关重要环节,目前国内外许多高校的组成原理课程中都安排有 CPU 设计1-2。由于 CPU 设计会涉及运算器、控制器、寄存器、存储器等众多基本核心部件与数据通路、中断等系统机制,以及 C 类的高级语言代码编写,需要综合掌握的知识点较多,而且这些知识点间的联系紧密又错综复杂,因此对于一般高校的入门级学生来说具有一定难度
3、,是学生较“怵”的内容。基于 Dream Logic的 CPU 仿真设计方法,结合计算机组成原理的实验内容与 MOV、ADD、JMP 等汇编指令进行仿真应用和实践;CPU 设计以部件模块系统的方式进行,涉及硬件原理图的绘制与软件代码编写,集数字电路与计算机组成原理实验内容为一体,是学生学习 CPU 设计、进行硬件仿真实验的好帮手。1DreamLogic仿真工具Dream Logic 是一款完全接入到 CodeC(计算机专业新工科建设平台)的高性能虚拟软件,具有强大的仿真开发与设计功能,主要体现在:提供了丰富的数字和模拟器件、数字芯片和逻辑门等多个元器件库,能满足不同规模的电路与系统设计需求,用
4、户也可以根据自己的需要方便、快速绘制自己的元器件或原理图;提供了寄存器、总线收发器、存储器、总线等部件模块,以及通过这些部件所设计好的处理器和流水线等子功能模块,各个模块可以直接单独使用和多次重复使用,用户可以仿真应用这些模块,也可以完全按照自己的需求设计所有的部件和模块;具有完全可视化的交互式仿真功能,通过交互式控制器件,用户可以随时修改、选择电路中的高低电平数字源及单步时钟,可以通过数字探针、数码管、逻辑分析仪等可视化手段随时掌握电路的工作情况及各种工作状态,对于有问题的可以迅速定位错误原因;为 8086、MIPS 处理器提供了 C 语言编写的开源的指令汇编器和微指令汇编器,用户通过修改源
5、代码就可以添加自己所设计的汇编指令和微指令,用户也可以编写新的汇编器和微指令;可以用于“数字逻辑”“计算机组成原理”等课程的仿真实验使用,也可以通过开发元器件或整合模块进行课程设计、毕业设计等创新设计与开发。基金项目:中国民航大学教育教学改革研究项目(CAUC-2021-B1-065);2023 年天津市教改立项项目“进阶式思维培养模式下的民航特色计算机类专业实践教学改革研究”(B231005915)。第一作者简介:李珍香,女,副教授,研究方向为嵌入式系统开发与计算机硬件教学,zx-。实验与实训第 9 期1932CPU仿真设计2.1总体设计CPU 设计的总体结构如图 1 所示,其中硬件部分采用
6、了自底向上的模块设计方法,包括运算器、控制器、寄存器组、程序计数器、存储器、硬中断控制器、输入/输出共七大模块,各个模块主要由逻辑门和功能芯片等模拟器件组成,各模块之间按照同步时序电路原则,通过 8 位数据总线和地址总线相连接。其中的寄存器组模块用于存放指令执行过程中临时用到的操作数或操作过程中产生的中间结果和最终结果;运算器模块用于完成指令的加减法、移位等核心的算术运算与逻辑运算操作;控制器模块通过多个控制信号完成协调和指挥整个模型机的操作;程序计数器模块用于确保程序的顺序执行或跳转执行;存储器模块由 1 块 RAM 芯片和 1 个总线收发器构成,用于存放程序执行过程中用到的指令、数据和测试
7、用例程序;硬中断控制器模块用于模拟中断处理的过程,由中断请求寄存器、优先级判别器和中断服务寄存器构成;输入输出模块模拟所连接的外部设备,实现输入/输出功能3-4。软件部分主要包括汇编指令系统、汇编器与微指令功能模块的设计。硬件设计运算器控制器寄存器组程序计数器存储器硬中断控制器输入/输出中断请求寄存器优先级判别器中断服务寄存器CPU 设计软件设计汇编器微指令图 1 CPU 仿真设计总体结构2.2运算器设计运算器 ALU 模块的主要功能是完成指令的算术、逻辑运算与移位操作,主要由 2 个数据寄存器 A 与 B、2 片 4 位的 74LS181 芯片、专用乘法器、标志寄存器以及部分逻辑门构成(如图
8、 2所示)。A 与 B 寄存器存放运算需要的操作数,它们的输入端连接数据总线,使能端分别连接A_REG_EN 和 B_REG_EN 信号,输出端的低 4位作为第一片 74LS181 的输入端,高 4 位作为第二片 74LS181 的输入端;2 片 74LS181 芯片通过级联可以完成 8 位运算操作,它们的输出端经过总线收发器 D_GATE 连接到数据总线。标志寄存器 Flag 中设置了 2 个标志位 CF(进位标志位)和ZF(零标志位),其清零端与RESET信号相连,使能端与 Flag_REG_EN 信号相连,输入端的低2 位连接最终计算出的 ZF 与 CF 值,输出端的低2 位连接 ZF
9、与 CF 信号。2.3指令系统设计指令系统是 CPU 设计的起始点和基本依据,与硬件结构的复杂程度密切相关5。设计指令系统的核心问题是指令格式和功能的选定,涉及指令的寻址方式与指令的编码格式6。本设计中的指令寻址方式包括立即寻址、寄存器寻址、直接寻址和寄存器间接寻址;设计的指令包括算术运算指令、数据传送指令、位操作指令、转移指令等共 54 条。本指令系统的设计思路为大多数指令的机器码是单字节,也有的是双字节,但不管是单字节还是双字节指令,第一个机器码字节的高 6 位固定为操作码,低 2 位为地址码,用于表示选中的寄存器编号。6 位操作码可编码64 条指令,但本次只用到了其中的 59 个指令编码
10、。另外,因为 INT(软中断)、硬中断、LEA和 CALL 这 4 条指令的微指令太长,一条指令占用 2 个指令编码,因此实际共设计了 54 条指令。表 1 中为节选的部分指令的机器码及其指令功能的指令示例,剩余的 5 条操作码供以后增加新功能等创新设计时使用。2023194计 算 机 教 育Computer Education表 1 部分指令的机器码与指令功能示例指令示例机器码指令功能MOV A,RX000001XX将寄存器 RX 中的值传送给累加器 ALEA A,symbol001010XX将 PC 指向的存储单元的地址传送给累加器 AADD A,RX001100XX将寄存器 RX 中的值
11、与累加器 A 中的值相加,将结果传送累加器 AAND A,symbol011110XX将 PC 指向的存储单元中的值与累加器 A 中的值按位逻辑“与”运算,将结果传送给累加器 ASHL A100100XX将累加器 A 中的值逻辑左移 1 位,将结果送回累加器 AJMP symbol101001XX跳转到 PC 指向的地址JC symbol101010XX若进位标志为 1,则跳转到 pc 指向的地址IN101100XX将输入寄存器 RIN 中的值传送给累加器 AMUL A,RX110111XX将寄存器 RX 中的值与累加器 A 中的值相乘,结果传送给累加器 ACALL symbol110001X
12、X调用 PC 为首址的子程序RET110011XX子程序调用返回INT immediate101110XX软中断,中断号为立即数 immediate图 2 运算器设计相邻的这2个方块为累加器A和工作寄存器B相邻的2个小方块为74LS181芯片此方块为乘法器相邻的4个方块为8位总线收发器本设计中所用的微指令有数据转移微指令path、占位微指令 dup、空指令 null、目标操作数加 1 微指令 inc、复位微指令 reset,每条指令执行完毕后,查询是否有中断请求的微指令 ask_for_int、记录中断号的微指令 inta1、读取中断号写入中断向量寄存器 IA 中的微指令 inta2 以及实验
13、与实训第 9 期195清除中断服务寄存器 ISR 中的标志位微指令 eoi,其中 path 与 dup 微指令包含 2 个操作数,inc 与reset 微指令包含 1 个操作数,null、ask_for_int、inta1、inta2 和 eoi 微指令为无操作数。通过这些微指令,各组合器件就能够实现所有汇编指令的功能。在编写微指令程序时,注意需确保所有指令执行的第一步操作均为取指操作,可以理解为第 0 条指令为取值指令,另外要确保每一条指令对应的微指令入口地址必须是 8 的倍数,若存在一条指令对应的微指令条数少于 8 的倍数,则需要用占位微指令 dup 进行补充。2.4微指令设计微指令的功能
14、是对微指令代码进行处理,生成存放在只读存储器 ROM 中的控制信号编码文件以及仿真时显示的调试文件7-8。每条微指令占 4 个字节,对应的控制信号各不相同,每条指令的微指令入口地址需与指令机器码的高 6 位对应。本微指令设计中的微指令代码采用 2017 版C 语言编写,设计流程图如图 3 所示。所生成的目标文件 rom.rxm 中存放控制信号编码,列表文件 rom.lst 中存放每一条微指令及其行号、微指令所表示的控制信号编码以及该条微指令存放的地址;调试文件 rom.dbg 中存放模数、版本号、源代码和列表文件的路径以及代码行数据库中的所有内容。处理流程如图 4 所示。3CPU应用实践3.1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于Dream Logic的CPU仿真设计与实践 基于 Dream Logic CPU 仿真 设计 实践
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。