【自己动手画CPU】单总线CPU设计(三)

简介: 【自己动手画CPU】单总线CPU设计(三)

image.gif

⏰诗赋清音:云生高巅梦远游, 星光点缀碧海愁。 山川深邃情难晤, 剑气凌云志自修。

🌷1. 闯关目的

🌼第1关:MIPS指令译码器设计

(1) 理解指令译码的基本概念;

(2) 将32位MIPS指令字译码成不同的指令译码信号。

🌼第2关:单总线CPU微程序入口查找逻辑

(1) 理解微程序控制器中微程序分支的基本原理;

(2) 设计实现微程序入口查找逻辑。

🌼第3关:单总线CPU微程序条件判别测试逻辑

(1) 理解微程序控制器中微程序分支的基本原理;

(2) 设计实现判别测试逻辑。

🌼第4关:单总线CPU微程序控制器设计

(1) 理解微程序控制器基本原理;

(2) 设计实现微程序控制器。

🌼第5关:采用微程序的单总线CPU设计

(1) 理解单总线结构CPU基本原理;

(2) 设计实现能设基于微程序控制器的单总线CPU,使得MIPS程序能在单总线结构上运行,最终能运行简单的排序程序sort-5.hex。

🌼第6关:现代时序硬布线控制器状态机设计

(1) 理解现代时序系统中硬布线控制器设计的基本原理;

(2) 设计实现硬布线控制器核心部件状态机模块。

🌼第7关:现代时序硬布线控制器设计

(1) 理解理解现代时序系统中硬布线控制器的设计原理;

(2) 设计实现现代时序硬布线控制器设计。


🌷2. 闯关内容

🌼第1关:MIPS指令译码器设计

利用比较器等功能模块将32位MIPS指令字译码生成LW、SW、BEQ、SLT、ADDI、OtherInstr等指令译码信号。指令译码器是控制器核心功能部件,负责将指令字翻译成一根根的指令译码信号,每一根指令译码信号代表一条具体的指令。

🌼第2关:单总线CPU微程序入口查找逻辑

图5.3-1

设计如上电路,根据指令译码信号生成5位的微程序入口地址。

🌼第3关:单总线CPU微程序条件判别测试逻辑

根据微指令字中的判别测试字段和条件反馈信息生成后续地址的多路选择信号,要求实现对应组合逻辑。

🌼第4关:单总线CPU微程序控制器设计

完善下图中的微程序框架,将微程序入口查找逻辑,判别测试逻辑,控制存储器等部件进行适当连接,实现微程序控制器的主要数据通路,设计微程序并加载到控制存储器中。

图5.3-2

微程序设计可以通过填写3号EXCEL文件中的微程序自动生成表自动产生。

🌼第5关:采用微程序的单总线CPU设计

完成前面所有实验关卡以后,在本关进行最终的联调,测试排序程序。在RAM中加载sort-5.hex程序,ctrl+k自动运行,程序应该运行至0xbbb节拍停下,指令计数为251,注意最后一条指令是一条beq分支指令,会跳回当前指令继续执行,是死循环。

🌼第6关:现代时序硬布线控制器状态机设计

利用数字逻辑电路相关知识设计现代时序硬布线核心部件状态机模块,实际状态机如下图:

图5.3-3

按状态图填写5号excel表,自动生成次态逻辑表达式后,即可在logisim中自动生成该电路。

图5.3-4

🌼第7关:现代时序硬布线控制器设计

在实现指令译码、现代时序状态机模块后,最终实现硬布线控制器的集成,完成硬布线控制器框架连接,注意硬布线控制器组合逻辑不需要实现直接采用微程序控制器的控制存储器代替即可。


🌷3. 闯关步骤

🌼第1关:MIPS指令译码器设计

图5.3-5

🌼第2关:单总线CPU微程序入口查找逻辑

图5.3-6

🌼第3关:单总线CPU微程序条件判别测试逻辑

图5.3-7

🌼第4关:单总线CPU微程序控制器设计

图5.3-8

🌼第5关:采用微程序的单总线CPU设计

图5.3-9

🌼第6关:现代时序硬布线控制器状态机设计

图5.3-10 第一部分

图5.3-11 第二部分

图5.3-12 第三部分

图5.3-13 第四部分

图5.1-14 第五部分

🌼第7关:现代时序硬布线控制器设计

图5.3-15

🌷4. 闯关总结

🌼第1关:MIPS指令译码器设计

1. 需要注意检查待测电路引脚框架是否和前面的图一致,调整引脚会引起待测部件封装接口改变,否则会导致测试无法正常进行;

2. 检查待测电路子电路外观也就是封装和前面的图是否一致,引脚位置,引脚顺序、引脚数目等,这个不一样也会导致测试无法通过。

🌼第2关:单总线CPU微程序入口查找逻辑

1. 通关设计:打开3号Excel表格,填列微程序入口地址,第二个表格自动生成表达式;

2. 需要注意填写表格要注意细心,多检查就好一般不会出错。

🌼第3关:单总线CPU微程序条件判别测试逻辑

通关思路类似第2关,打开4号Excel表格,填列微程序入口地址,自动生成表达式。

🌼第4关:单总线CPU微程序控制器设计

通关思路类似第2关,打开4号Excel表格,填列微程序入口地址,自动生成表达式。

🌼第5关:采用微程序的单总线CPU设计

1. 通关设计:测试排序程序。在RAM中加载sort-5.hex程序,ctrl+k自动运行,程序应该运行至0xbbb节拍停下,指令计数为251,注意最后一条指令是一条beq分支指令,会跳回当前指令继续执行。

🌼第6关:现代时序硬布线控制器状态机设计

1. 通关设计:按状态图填写5号excel表,自动生成次态逻辑表达式后,即可在logisim中自动生成该电路。

2. 需要注意填写表格要注意细心,多检查几遍。

🌼第7关:现代时序硬布线控制器设计

1. 通关设计:完成硬布线控制器框架连接,注意硬布线控制器组合逻辑不需要实现直接采用微程序控制器的控制存储器代替。

2. 注意时钟触发为下降沿触发,上升沿触发则会重复输出。


目录
相关文章
|
5月前
|
编解码 测试技术
【自己动手画CPU】单总线CPU设计(二)
【自己动手画CPU】单总线CPU设计(二)
105 1
|
5月前
|
编解码 测试技术
【自己动手画CPU】单总线CPU设计(一)
【自己动手画CPU】单总线CPU设计(一)
120 0
|
5月前
|
存储
计算机组成原理(7)----CPU内部单总线数据通路
计算机组成原理(7)----CPU内部单总线数据通路
223 0
|
5月前
|
存储
【头歌·计组·自己动手画CPU】五、单总线CPU设计(理论版) 【计算机硬件系统设计】
【头歌·计组·自己动手画CPU】五、单总线CPU设计(理论版) 【计算机硬件系统设计】
548 2
|
存储
CPU的单总线和双总线
CPU的单总线和双总线
409 0
|
6天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
48 5
|
5天前
|
Prometheus Kubernetes 监控
使用kubectl快速查看各个节点的CPU和内存占用量
在Kubernetes集群中,安装metrics-server,并使用kubectl快速查看集群中各个节点的资源使用情况。
16 0
|
2月前
|
存储 监控 Docker
如何限制docker使用的cpu,内存,存储
如何限制docker使用的cpu,内存,存储
|
2月前
|
缓存 Kubernetes 数据中心
在Docker中,如何控制容器占用系统资源(CPU,内存)的份额?
在Docker中,如何控制容器占用系统资源(CPU,内存)的份额?
|
2月前
|
KVM 虚拟化
[kvm]cpu内存硬盘配置
[kvm]cpu内存硬盘配置