本实验使用的主要元器件有:4 位算术逻辑运算单元 74LS181 , 8 位数据锁存器 74LS273 ,三态输出的总线收发器 74LS245,2K x 8 静态随机存储器 6116 ,时序发生器,与非门、 与门、开关、指示灯等。芯片详细说明请见附录。
时序发生器用于产生四个等间隔时序信号 T1 、T2 、T3 和 T4 。在本虚拟实验系统中,连续发出的一轮 T1 ~ T4 时序信号对应一个 CPU 周期。图 1 为时序发生器的简单电路连接图,其中,Ts 为时钟源输入信号,Stop 为停止信号,Start 为开始信号,Step 为单步运行信号。在 Step=0 时,单击 Start 连接的单脉冲按钮,时序信号 T1~T4 会周而复始地发送出去,时序发生器处于连续运行状态,若此时单击 Stop 按钮,发送完此周期时序信号后就会停机。在 Step=1 时,处于单步运行状态,即每发送完一个CPU周期时序信号就自动停机。本实验使用单步运行方式。
图 2 为本实验数据通路总框图,其中 ALU 由 2 片 74LS181 构成,DRI 、DR2 和 AR 均为一片 74LS273 , RAM 为一片 6116 芯片,△ 表示三态门 74LS245 。时序发生器为虚拟实验系统提供的虚拟组件。
实验电路中涉及的其他控制信号如下:
实路所用数据通路如图 2 所示,数据开关、数据显示灯、运算器、存储器通过总线相连,数据开关 (SW7~ SW0) 用于设置数据或地址,数据和地址经三态门发送至总线。DR1 和DR2 从总线上接受数据并传送到ALU进行运算,运算结果经三态门送回至总线。地址寄存器AR从总线上获取地址并送至存储器,存储器按地址进行读写,将读出的数据发送至总线,或者从总线输入数据并写入。数据显示灯与总线相连,流经总线的所有数据和地址都将在数据灯上显示。
计算机控制器通过控制线向执行部件发出各种控制命令,这些控制命令被称为微命令,执行部件接收微命令后所进行的操作,叫作微操作。图 2 中的控制信号线都与控制器相连,并由控制器的相应微命令控制,例如当控制器中表示 SW-BUS 的微命令位设置为0时, 低电平信号通过控制线传送到数据开关的三态门,三态门即执行“打开”微操作。
为方便进行实验,将图 2 中所有控制信号归纳在表中。实验的主要任务就是确定这些控制信号在每一个 CPU 周期的取值。
可以设计不同的微命令组合,来实现不同的功能。例如,微命令组合 0000 0110 01010 表 示 DR1 载入,数据开关三态门打开,存储器、DR2 和 ALU 三态门都关闭,其功能即为:将数据开关上的数据送入DR1。注意,表 4-1 里的微命令只是实际计算机中的部分, 计算机话行所需要的微命令远不止这些。
在存储逻辑型控制器中,计算机需要用到的所有微命令组合都已预先设计好并存储在控制存储器中,由控制器根据程序自动找出需要的微命令组合,通过控制线发送给各执行部件执行。其中的每一个微命 令组合又叫一条微指令。本实验用人工设置数据开关的方法来代替控制器生成微命令,完成一系列操作和任务。
注意是 与非门 和不要缺少 ALU-BS
打开电源
右上角按钮分别对应
S3、 S2、 S1、 S0、 M、 Cn、 CE、 WE、 LDAR、 LDDR1、 LDDR2、 ALU-BS、 SW-BS、
设置微命令的原则:需要哪个控制信号就设置为有效,其他都为无效
数据开关 DR1(0000011001010);将数据开关设置为A (00000011);单击时序发生器的Start按钮,执行微命令。等待一个CPU周期后,会产生T1,T2,T3,T4 的时钟脉冲,在时钟脉冲的配合下,数据开关上的值已存入DR1。
设置好地址00000010,打开三态门,把地址送到地址寄存器
让存储器为读,WE为1是写,让WE为0 ,通过总线读到DR2,因为要送到DR2
LDDR2 数据载入到寄存器2,设置为有效
存储器操作数 DR2 (000010010110);将数据开关设为B的地址(00000010); 单击Start按钮。等待一个CPU周期后,B的值已存入DR2。
进行算数运算,DR1+DR2 →DR1(1001011000001)。运算结果在数据灯上显示。
文章浏览阅读1.1w次,点赞7次,收藏34次。vue-grid-layout的使用、实例、遇到的问题和解决方案_vue-grid-layout
文章浏览阅读218次。然后连接一个数据源,就会在下面自动产生一个添加附件的组件。把这个控件复制粘贴到页面里,就可以单独使用来上传了。插入一个“编辑”窗体。_powerapps点击按钮上传附件
文章浏览阅读264次。(1) Abstraction (抽象)(2) Polymorphism (多态)(3) Inheritance (继承)(4) Encapsulation (封装)_"object(cnofd[\"ofdrender\"])十条"
文章浏览阅读133次。删除node_modules,重新npm install看是否成功。在 package.json 文件中的 scripts 中加入。修改你的第三方库的bug等。然后目录会多出一个目录文件。_修改 node_modules
文章浏览阅读883次。【代码】【】kali--password:su的 Authentication failure问题,&sudo passwd root输入密码时Sorry, try again._password: su: authentication failure
文章浏览阅读1w次,点赞13次,收藏97次。整理5个优秀的微信小程序开源项目。收集了微信小程序开发过程中会使用到的资料、问题以及第三方组件库。_微信小程序开源模板
文章浏览阅读128次。Centos7最简搭建NFS服务器_centos7 搭建nfs server
文章浏览阅读1.2k次,点赞2次,收藏3次。前言mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中通过SQL语句操作数据库,很是灵活。但正其操作都要通过SQL语句进行,就必须写大量的xml文件,很是麻烦。mybatis-plus就很好的解决了这个问题。..._mybaitis-plus ruledataobjectattributemapper' and 'com.picc.rule.management.d
文章浏览阅读325次。EECE 1080C / Programming for ECESummer 2022Laboratory 4: Global Functions PracticePlagiarism will not be tolerated:Topics covered:function creation and call statements (emphasis on global functions)Objective:To practice program development b_eece1080c
文章浏览阅读53次。被同机房早就1年前就学过的东西我现在才学,wtcl。设要求的数为\(x\)。设当前处理到第\(k\)个同余式,设\(M = LCM ^ {k - 1} _ {i - 1}\) ,前\(k - 1\)个的通解就是\(x + i * M\)。那么其实第\(k\)个来说,其实就是求一个\(y\)使得\(x + y * M ≡ a_k(mod b_k)\)转化一下就是\(y * M ...
文章浏览阅读1.3k次。首先,问题是如何出现的?晚上复查代码,发现一个activity没有调用自己的ondestroy方法我表示非常的费解,于是我检查了下代码。发现再finish代码之后接了如下代码finish();System.exit(0);//这就是罪魁祸首为什么这样写会出现问题System.exit(0);////看一下函数的原型public static void exit (int code)//Added ..._android 手动杀死app,activity不执行ondestroy
文章浏览阅读894次。Q: SylixOS 版权是什么形式, 是否分为<开发版税>和<运行时版税>.A: SylixOS 是开源并免费的操作系统, 支持 BSD/GPL 协议(GPL 版本暂未确定). 没有任何的运行时版税. 您可以用她来做任何 您喜欢做的项目. 也可以修改 SylixOS 的源代码, 不需要支付任何费用. 当然笔者希望您可以将使用 SylixOS 开发的项目 (不需要开源)或对 SylixOS 源码的修改及时告知笔者.需要指出: SylixOS 本身仅是笔者用来提升自己水平而开发的_select函数 导致堆栈溢出 sylixos