下载: logisim_simple_cpu

ISA设计

设计二进制代码为20位
  • operation code :[0:3]
  • 设置三个寄存器操作数,两个操作数将结果存储在一个输入寄存器中。
  • 每个寄存器占4位,即2^4=16 个寄存器
name op[0:3] [4:7] [8:11] [12:15] [16:19] description
add 0000 rs rt rd 0000 Arithmetic addition(rs = rt+rd)
incre 0001 rs rt 0000 0000 increment(rs = rt+1)
decre 0010 rs rt 0000 0000 decrement(rs = rt-1)
cmp 0011 rs rt rd 0000 comparison(with 3 output:equals in rs[0], less than in rs[1], greater than in rs[2] )
not 0100 rs rt 0000 0000 logic bitwise not(rs = not rt)
and 0101 rs rt rd 0000 rs = rt and rd
or 0110 rs rt rd 0000 rs = rt or rd
rls(right logic shift) 0111 rs rt rd 0000 rs = rt >> rd
lls(left logic shift) 1000 rs rt rd 0000 rs = rt << rd
lw 1001 rs rt(base) offset offset rs = mem[rt+offset]
sw 1010 rs rt(base) offset offset mem[rt+offset] = rs
addi 1011 rs rt imm imm rs = rt+ imm
andi 1100 rs rt imm imm rs = rt and imm
ori 1101 rs rt imm imm rs = rt or imm
JMP 1110 instr_index[0:3] instr_index[4:7] instr_index[8:11] instr_index[12:15]
CJMP 1111 offset[0:3] rt rd offset[4:7] cjmp rs,rd,pc;offset; rt == rd: j (offset) else:continue

CPU设计

设计参考mips的单周期CPU设计

  • 分为 取指、译码、控制、regfile寄存器堆、dataram几个模块。
  • 输入clk信号(暂时是输入端口,方便手动调试,未用clock模块)
  • 输入复位信号
  • 输出指令、pc、写回寄存器堆数据、branch的pc、jump的pc、instr的译码结果、regfile读出结果

调试

如下设计了一组能够测试大部分设计的代码。

instruction ram中装入的测试指令如下,依次:行号 | 汇编代码 | 二进制机器码 | 十六进制机器码

0 : addi $s1,$0,5       00000101000000011011 501b
1 : addi $s2,$0,7       00000111000000101011 702b
2 : or   $s3,$s2,$s1    00000001001000110110 1236
3 : cjmp $s3,$s0,7      01110000001100001111 7030f
4 : and  $s4,$s0,$s2    00000010000001000101 2045
5 : cjmp $s4,$s0,7      01110000010000001111 7020f
6 : add  $s5,$s1,$s2    00000010000101010101 2155
7 : jmp  9              10010000000000001110 9000e
8 : add  $s6,$s1,$s2    00000010000101100000 2160
9 : add  $s7,$s1,$s2    00000010000101110000 2170
10: add  $s8,$s1,$s2    00000010000110000000 2180

调试步骤:

  1. 将instr文件载入instr mem中
  2. 选择logisim的手掌方式
  3. 点击复位
  4. 点击clk输入模块模拟时钟上升沿触发cpu
  5. 查看寄存器的输入输出是否正确,写回数据是否正确,跳转pc是否正确

缺陷(埋坑)

  1. 在大小端的设计上,在logisim中从ram中读取出来的是大端方式,故在将汇编指令翻译为机器码时采用相反设计时的从低到高,将op放在[16:19]位置,然后左侧是rs rt rd的顺序,如此在logisim中读出来op会在[0:3]位。

参考引用:

https://vlab.ustc.edu.cn/guide/doc_logisim.html

http://www.doc88.com/p-1466403426738.html

https://blog.csdn.net/Hi_KER/article/details/120928866

https://blog.csdn.net/Hi_KER/article/details/121044637

https://blog.csdn.net/sinat_42483341/article/details/88849892?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164051235016780269898138%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=164051235016780269898138&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-3-88849892.first_rank_v2_pc_rank_v29&utm_term=LogiSim+CPU&spm=1018.2226.3001.4187

logisim设计CPU相关推荐

  1. 使用logisim设计简易CPU

    声明: 设计图纸来自以下链接的博客,这篇文章是按照自己的想法重构了一下设计思路,写了一些自己的理解. https://www.cnblogs.com/kingduan/p/4054484.html#_ ...

  2. 计算机组成原理Logisim单总线CPU

    计算机组成原理 Logisim单总线CPU 指令译码器设计 硬布线控制器 单总线CPU(3级时序) 硬布线控制器组合逻辑单元 时序发生器输出函数(定长指令周期) 时序发生器FSM设计(定长指令周期)

  3. RISC-V学习资料:《手把手教你设计CPU——RISC-V处理器》

    <手把手教你设计CPU--RISC-V处理器> 单击此处样章试读 作者:胡振波 出版社: 人民邮电出版社 ISBN:9787115480521 版次:1 商品编码:12360850 包装: ...

  4. 这本读者期待的芯片书《手把手教你设计CPU——RISC-V处理器》终于出版!

    点击关注异步图书,置顶公众号 每天与你分享IT好书 技术干货 职场知识 ​ ​点击图片购书​ 参与文末话题讨论,每日赠送异步图书 --异步小编 在摩尔定律减缓的今天,一味比拼硬件性能的技术竞赛变得越发 ...

  5. 造个计算机--2、设计CPU

    话接上文: 造个计算机--1.设计运算器 还从老冯的这张结构图说起来,上面的文章里面说完了图里面运算器的实现.万里长征迈出了第一步(理论上的,实际要做的时候,还有更多的细节问题,想想都汗啊..), 接 ...

  6. 我的中国“芯”,手把手教你设计CPU

    ​点击关注异步图书,置顶公众号 每天与你分享 IT好书 技术干货 职场知识​ ​ ​参与文末话题讨论,每日赠送异步图书. --异步小编 永恒的热点--CPU 灯,等灯等灯-- -- Intel 如果要 ...

  7. 手把手教你设计CPU RISC-V处理器设计

    很好的资料,手把手教你设计CPU RISC-V处理器篇,分享给大家 https://download.csdn.net/download/sfp_801/87577063 链接:https://pan ...

  8. 计算机系统 cpu课程,片上计算机系统课程设计CPU模型机设计.docx

    片上计算机系统课程设计CPU模型机设计.docx 哈尔滨理工大学 软件学院 课程设计报告 课 题 班 专 学 学 程片上计算机系统 目CPU模型机设计 级集成14-2班 业集成电路设计与集成系统 生 ...

  9. 硬件描述语言要用计算机吗,计算机组成原理用硬件描述语言设计CPU.docx

    计算机组成原理用硬件描述语言设计CPU 计算机科学与工程学院课程设计报告题目全称: 课程名称: 指导老师: 职称: 序号学生姓名学号班号成绩12345678910(注:学生姓名填写按学生对该课程设计的 ...

  10. FPGA设计CPU书籍

      一直以来CPU内部是绝大多数IT工程师难以触及的领域.纵使学习过计算机架构相关课程,自己动手实现CPU也始终遥不可及,因为这涉及计算机系统的最底层--芯片设计.   而近年来FPGA芯片产品的发展 ...

最新文章

  1. MVC之前的那点事儿系列(2):HttpRuntime详解分析(上)
  2. windows下部署MySQL 8.0.11
  3. host 和TNS设置
  4. Applet、Scriptlet与Servlet
  5. 数据分析学习笔记4-----处理缺失数据
  6. 诺基亚手机的安全保护。--如何使你的手机丢失,被盗后依然安全。
  7. mysql status lock_MySQL性能突发事件问题排查技巧
  8. docker build 变量_Docker从入门到掉坑(二):基于Docker构建SpringBoot微服务
  9. 《机器学习实战》完整读书笔记
  10. php中关系运算符的优先级,PHP 运算符优先级
  11. win11 dev cpp程序关闭时弹出cmd错误0xc0000142的解决方法
  12. linux如何生成tgz文件,linux – 压缩文件夹以创建tgz文件
  13. 我为什么从外包公司离职了?
  14. 纯css实现三角原理,兼容IE
  15. DDR VTT供电解决方案
  16. matlab 中画箭头
  17. expdpimpdp使用remap
  18. Windows 7 64 位操作系统安装 Ubuntu 17.10
  19. Linux中断——request_irq
  20. iOS第三方支付(支付宝SDK)

热门文章

  1. 竞价推广的流程有哪些?
  2. 多商户商城小程序源码有何优势?
  3. 2021年下半年信息安全工程师上午真题及答案解析
  4. arduino 步进电机驱动库_Arduino基础入门篇27—步进电机驱动库的使用
  5. C语言输出有趣的图形,c语言经典游戏程序源代码大全
  6. 基于摄像头循迹的电子设计竞赛论文
  7. OSX malware and exploit collection (~100 files) + links and resources for OSX malware analysis
  8. 锐起无盘4.2服务器设置,锐起无盘4.5免费版
  9. windowns定时关机命令
  10. Java学习路线图,全套Java基础视频教程