【Logisim实验】构建立即数-随机存储器-寄存器的传送
关于Logisim
Logisim在仿真软件行列中算是比较直观的软件了,它能做的事情有很多,唯一不足的是硬件描述语言的支持,总体上来说适合比较底层的仿真,依赖于Hex值,通过线路逻辑设计能够较好的
关于本实验
计算机指令的执行过程设计是相对复杂的,指令的形式也是多种多样,按照格式可分为有二三单地址指令,根据访问部件的不同可分为立即数,RR,SS,RS等指令
本实验通过Logisim实现:
1.寄存器->存储器
2.存储器->寄存器
3.立即数->存储器
4.立即数->寄存器
的四种控制结构
正文
1)实现寄存器组
寄存器组能够组合成一个缓存序列,并按照每个寄存器的地址进行更改和访问,一次只能改写或读取一个寄存器内容。

2)立即数与主存储器
主存储器与寄存器都是存储部件能作为输入输出使用,立即数只能作为输入

3)通路设计
控制数据通路实际是通过数据选择器不断的控制输入地址达到选择通路的效果。

两处data作为同一线路,同时为Memory输入端提供可选地址

为寄存器入口提供选择入口

存储器->寄存器
寄存器->存储器
是一对互斥操作可将两者读写控制信号合并为一个
0->存储器写
1->寄存器写
4)将控制通路的二路选择器信号合并一处形成指令端口
这里有两种布局方式a)硬布线b)微程序控制器
两者各有优缺点
需要有指令周期这里就是简单的读写周期用clock+译码器就可构成
采用方案b将读写,li/Memory,li/Regs端口进行分析
| 指令 | 读写r/w | li/memory | li/regs | 指令序号 |
| 立即数->memory | 0 | 0 | 0 | 1 |
| 立即数->regis | 1 | 0 | 0 | 2 |
| memory->regis | 1 | 1 | 0 | 3 |
| regis->memory | 0 | 0 | 1 | 4 |
三位二进制控制信号可以指定8种操作其中很多操作相互重叠只取其中一个就好

5)编写微指令控制器
ROM中存储微指令

这样就完成了数据传送了
后续
可以发现图中还有很多地址信号可以压缩成一定长(S_R,w_a,address,data),度需要根据指令类型进行指令各个位置的数据的通路判断。
【Logisim实验】构建立即数-随机存储器-寄存器的传送的更多相关文章
- ARM指令集(上)
ADuC702x可以用两套指令集:ARM指令集和Thumb指令集.本小节介绍ARM指令集.在介绍ARM指令集之前,先介绍指令的格式. A.2.1 指令格式 (1)基本格式 ...
- 常用 ARM 指令集及汇编
ARM7TDMI(-S)指令集及汇编 ARM 处理器是基于精简指令集计算机(RISC)原理设计的,指令集和相关译码机制 较为简单,ARM7TDMI(-S)具有 32 位 ARM 指令集和 16 位 T ...
- 13 ARM指令集与Thumb指令集
指令格式 ARM基本格式 <opcode>{<cond>}{S}{.W|.N}<Rd>,<Rn>{,<operand2>} opecode: ...
- ARM指令集详解--汇编
1. 汇编 1.1. 通用寄存器 通用寄存器 37个寄存器,31个通用寄存器,6个状态寄存器,R13堆栈指针sp,R14返回指针,R15为PC指针, cpsr_c代表的是这32位中的 ...
- 基于FPGA的通信系统实验
伪随机信号发生器 1.伪随机信号发生器原理 伪随机信号发生器又叫PN序列发生器或者是m序列发生器.m序列是一种线性反馈寄存器序列,m序列的产生可以利用r级寄存器产生长度为2^r-1的m序列,该实验中采 ...
- Linux第七次实验笔记
#期中总结 习题总结与分析 填空:Linux Bash中,Ctrl+a快捷键的作用是(将光标移至输入行头,相当于Home键). [ctrl]+u 从游标处向前删除指令串 [ctrl]+k 从游标处向后 ...
- Jenkins实战应用–Jenkins构建中tag的应用
Jenkins实战应用–Jenkins构建中tag的应用 文章目录[隐藏] *系列汇总* 1,缘起. 2,回滚功能. 1,添加mode选项. 2,再添加branch选项. 3,添加Git Parame ...
- MCS-51系列特殊功能寄存器(摘录)
MCS-51系列特殊功能寄存器(80H~FFH) 1. P0 (80H) P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 2.SP 栈指针(81H) 3.DPTR 数据 ...
- MCS-51系列特殊功能寄存器(摘抄)
1. P0 (80H) P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 2.SP 栈指针(81H) 3.DPTR 数据指针(由DPH和DPL组成) DPL 数据指针低八 ...
随机推荐
- 我的.net开发百宝箱
一.Resharper http://www.jetbrains.com/resharper/ 最强悍的VisualStudio的插件,它包括一系列丰富的,能大大增加C#和Visual Basic . ...
- 入门大数据---HiveCLI和Beeline命令行的基本使用
一.Hive CLI 1.1 Help 使用 hive -H 或者 hive --help 命令可以查看所有命令的帮助,显示如下: usage: hive -d,--define <key=va ...
- Python 实现短信轰炸机
原理其实很简单,就是利用selenium包打开各种网站的注册页,输入轰炸的号码,实现轰炸.其实也算是利用了注册漏洞.申明:仅娱乐使用,禁止️用于非法用途!若用于非法用途,后果及法律责任博主一律不承担 ...
- Spring Boot + Vue + Shiro 实现前后端分离、权限控制
本文总结自实习中对项目的重构.原先项目采用Springboot+freemarker模版,开发过程中觉得前端逻辑写的实在恶心,后端Controller层还必须返回Freemarker模版的ModelA ...
- 113资讯网——NGINX 502 Bad Gateway——解决方案
NGINX 502 Bad Gateway错误出现的原因较多,对于后端连接PHP服务的场景下,常见的原因有php服务响应超时,php进程不足等引起的一类服务器错误. 发生原因: PHP FastCGI ...
- h5移动端实现图片文件上传
PC端上传文件多半用插件,引入flash都没关系,但是移动端要是还用各种冗余的插件估计得被喷死,项目里面需要做图片上传的功能,既然H5已经有相关的接口且兼容性良好,当然优先考虑用H5来实现. JS代码 ...
- Azure Web App (一)发布你的Net Core Web 项目
一,引言 今天我们看一下Azure上的一个服务-----Web 应用,我们都知道云计算的三大模式:Iaas(基础设施即服务),Paas(平台即服务),Saas(软件即服务). Iass,其实就是虚拟主 ...
- WPF 设置帧率
开始仔细学习WPF了 说是动画不流畅,可以通过设置帧率解决,查了很多,都说设置Timeline.DesiredFrameRateProperty, 但都没说加到哪里,在代码很多地方加上了,统统无效.最 ...
- day53 html收尾
目录 一.解决浮动带来的影响 二.溢出属性 三.定位 四.验证浮动和定位是否脱离文档流 五.z-index模态框 六.透明度opacity 七.js简介 一.解决浮动带来的影响 块级标签内的浮动如果该 ...
- 从零开始学Electron笔记(四)
在之前的文章我们介绍了一下Electron的这个remote模块,接下来我们继续说一下Electron的右键菜单的制作. 在我们日常我们使用的软件中都会存在右键菜单的情况,比如我们用到的浏览器,开发所 ...