关于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),度需要根据指令类型进行指令各个位置的数据的通路判断。

最新文章

  1. hihoCoder 1401 Registration
  2. json不转化值是null的字段
  3. 【编程题目】在从 1 到 n 的正数中 1 出现的次数
  4. java分享第二天(变量及命名规范)
  5. meanshift和camshift
  6. 实现支持在Mac OS的最小大化的过渡效果
  7. UVA 10098 Generating Fast, Sorted Permutation
  8. iOS开发——总结篇&IOS开发基础知识
  9. uva 12124 - Assemble
  10. 【JQuery学习笔记】一、基础篇
  11. MySQL5.5.源码安装
  12. 【Kafka源码】SocketServer启动过程
  13. Composer - windows下安装方法
  14. JAVA中接口的使用
  15. Nginx 作用
  16. IDEA修改JDK(全)
  17. AnyVal与AnyRef
  18. df、du、fdisk
  19. QT的setwindowflags的属性总结
  20. beta阶段贡献分配实施

热门文章

  1. GitLab Runner部署(kubernetes环境)
  2. egret Exml自定义组件
  3. 老板急坏了,公司网站的 HTTPS 过期了
  4. 浅谈hash
  5. Python-使用tkinter实现的Django服务进程管理工具
  6. ORA-39257: Data cannot be remapped for more than 10 columns.
  7. 二进制小数和IEEE浮点标准
  8. 洛谷 P2607 [ZJOI2008]骑士 树形DP
  9. Java面向对象详解-上
  10. day77 作业