【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 数据指针低八 ...
随机推荐
- 入门大数据---Flink开发环境搭建
一.安装 Scala 插件 Flink 分别提供了基于 Java 语言和 Scala 语言的 API ,如果想要使用 Scala 语言来开发 Flink 程序,可以通过在 IDEA 中安装 Scala ...
- Cannot resolve symbol window
参照官网执行如下代码的时候,报了Cannot resolve symbol window错误. val windowedCounts = words.groupBy( window($"ti ...
- Python实用笔记 (6)函数
绝对值 >>> abs(100) 100 >>> abs(-20) 20 max()可以接收任意多个参数,并返回最大的那个: >>> max(1, ...
- ajax前后端交互原理(3)
3.HTTP服务器 3.3.相关前置知识 1 什么是url? 统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址.互联网上的每个文件都有一个唯一的UR ...
- dubbo源码解析之负载均衡
在分布式系统中,负载均衡是必不可少的一个模块,dubbo 中提供了五种负载均衡的实现,在阅读这块源码之前,建议先学习负载均衡的基础知识.把看源码当做一个印证自己心中所想的过程,这样会得到事半功倍的效果 ...
- JQuery文件上传插件JQuery.upload.js的用法简介
JQuery文件上传插件,这个插件很小,用法很简单,效果却很棒.注意:JQuery版本要求1.8及以上,大家执行如果没效果,则检查JQuery版本,如果是1.8及以上,则该插件源码中的.size()需 ...
- day05数据绑定
流程:普通编辑-添加编辑模式 <text>数据绑定</text> <view>{{message}}</view> <button bindtap ...
- c语言学习笔记第四章——字符串和格式化输入、输出
B站有视频演示 本章学习printf函数的输入输出,字符串的定义与实用. 字符串 字符串(character string)是一个或多个字符的序列,如下所示: "Zing went the ...
- zabbix + grafana 展示
环境CentOS 7.5 一,grafana 安装. 1,配置yum源 cat > /etc/yum.repos.d/grafana.repo <<EOF [grafana] nam ...
- 前端分页(js)
//前端分页 var limit = 10; //每页显示数据条数 var total = $('#host_table').find('tr').length; var allPage = tota ...