【头歌·计组·自己动手画CPU】四、控制器设计(理论版) 【计算机硬件系统设计】

news2024/12/24 9:55:02

🕺作者: 主页

我的专栏
C语言从0到1
探秘C++
数据结构从0到1
探秘Linux

😘欢迎 ❤️关注 👍点赞 🙌收藏 ✍️留言

文章目录

    • 一、课程设计目的
    • 二、课程设计内容
    • 三、课程设计步骤
    • 四、课程设计总结

一、课程设计目的

掌握 CPU 控制器设计的基本原理,能利用硬布线控制器的设计原理在 Logisim 平台中设计实现支持五条指令的 MIPS 单周期 CPU,该处理器能运行简单的内存冒泡排序程序。能利用硬布线控制器以及微程序控制器的原理设计实现 MIPS 多周期 CPU。

二、课程设计内容

  1. MIPS CPU设计(HUST)
  2. 单周期MIPS CPU设计
    1. 实验目的

掌握控制器设计的基本原理,能利用硬布线控制器的设计原理,在 Logisim 平台中设计实现 MIPS 单周期 CPU。

  1. 微程序地址转移逻辑设计
    1. 实验目的

了解微程序控制器中微程序分支的基本原理,要求能设计微地址转移逻辑。

  1. MIPS微程序CPU设计
    1. 实验目的

掌握微程序控制器设计的基本原理,能利用微程序控制器的设计原理,设计实现多周期 MIPS 处理器。

  1. 硬布线控制器状态机设计
    1. 实验目的

了解硬布线控制器中有限状态机 FSM 的基本原理,要求能设计控制器状态机逻辑。

  1. 多周期MIPS硬布线控制器CPU设计(排序程序)
    1. 实验目的

理解 MIPS 多周期处理器的基本原理,能利用硬布线控制器的设计原理,设计实现 MIPS 多周期 CPU。

  1. 自己动手画CPU

本次课程设计的内容在其它实验中都出现了,这里不再赘述。

三、课程设计步骤

  1. MIPS CPU设计(HUST)
  2. 单周期MIPS CPU设计
    1. 原理

当CPU接收到一条指令时,首先将指令中的操作码(op)传递到控制器中。控制器根据操作码(op)的值来判断当前指令的类型,然后根据指令类型来控制数据通路中各个组件的操作,比如将源操作数从寄存器中读取到ALU中进行计算,或者将计算结果存储回寄存器或存储器中。同时,控制器还需要对PC计数器进行控制,以便在执行指令后正确地更新PC计数器的值。
格式如下:

  1. 接线图

image.png

  1. 微程序地址转移逻辑设计
    1. 原理

根据给出的状态值对应的微指令地址,需要去填写execl表格

然后在地址逻辑自动生成中可以看到表达式,将其复制到分析组合逻辑电路中。

然后再按照下图顺序生成电路

  1. 接线图

  1. MIPS微程序CPU设计
    1. 原理

据视频中给出的多周期MIPS的数据通路的参考图就可以很容易的设计出多周期MIPS的数据通路电路图。

  1. 接线图image.png
  2. 硬布线控制器状态机设计
    1. 原理

使用EXCEL表自动生成后放到LOGISIM中自动生成

  1. 接线图

image.png
指令译码逻辑和运算器控制逻辑和微指令多周期的MIPS控制器中的类image.png

  1. 多周期MIPS硬布线控制器CPU设计(排序程序)
    1. 原理

和实验三类似,据视频中给出的多周期MIPS的数据通路的参考图就可以很容易的设计出多周期MIPS的数据通路电路图。

  1. 接线图image.png

(二)自己动手画CPU
本次课程设计的内容在其它实验中都出现了,这里不再赘述。

四、课程设计总结

本次课程设计主要围绕着 MIPS CPU 设计展开,包括单周期 MIPS CPU 设计、微程序地址转移逻辑设计、MIPS 微程序 CPU 设计、硬布线控制器状态机设计以及多周期 MIPS 硬布线控制器 CPU 设计等内容。
通过实验,我们掌握了 CPU 控制器设计的基本原理,能够利用硬布线控制器和微程序控制器的设计原理,在 Logisim 平台中设计实现支持五条指令的 MIPS 单周期 CPU 和多周期 MIPS 处理器。同时还学习了硬布线控制器中有限状态机 FSM 和微程序控制器中微程序分支的基本原理,能够设计控制器状态机逻辑和微地址转移逻辑。
最后,我们利用所学知识设计了一个能够运行简单的内存冒泡排序程序的多周期 MIPS CPU。这些实验让我们更深入地理解了 CPU 的工作原理,加深了对计算机体系结构的理解和认识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1452913.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每日一题 429.N叉树的层序遍历

429. N 叉树的层序遍历 描述: 给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。 树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。 示例 1…

Jetson下的i2c、spi、gpio、can、uart、485代码示例使用说明

适用于刚接触新设备的同学参考。 UART 演示代码 目前,这是一个简单的 Python 3 脚本,用于与 NVIDIA Jetson Nano 开发套件的 J41 头上的 UART 进行交互。当然只要是jetson都可以用,改一下程序里面的设备节点就行 JetsonHacks 上的原始文章&…

一起学量化之Aroon指标

Aroon指标是由Tushar Chande于1995年开发的技术分析工具,旨在识别股票是否处于趋势中及趋势的强度。它通过分析股票价格在一定周期内创下的新高和新低来预测趋势的变化,这基于一种观念:强势趋势通常伴随着频繁的新高或新低。 1. Aroon指标的组成 Aroon指标由两个部分组成:…

Manifest merger failed with multiple errors, see logs

问题 Manifest merger failed with multiple errors, see logs详细问题 笔者进行Android 项目开发&#xff0c;修改AndroidManifest.xml代码后&#xff0c;控制台报错 AndroidManifest.xml报错核心代码 <manifest><uses-permission android:name"android.perm…

问题:在额定电压500V以下的电路中,使用的各种用电设备,一般称为(_ _ _)用电设备 #媒体#媒体#媒体

问题&#xff1a;在额定电压500V以下的电路中,使用的各种用电设备,一般称为&#xff08;_ _ _)用电设备 参考答案如图所示

鸿蒙开发系列教程(二十三)--List 列表操作(2)

列表样式 1、设置内容间距 在列表项之间添加间距&#xff0c;可以使用space参数&#xff0c;主轴方向 List({ space: 10 }) { … } 2、添加分隔线 分隔线用来将界面元素隔开&#xff0c;使单个元素更加容易识别。 startMargin和endMargin属性分别用于设置分隔线距离列表侧…

Unity类银河恶魔城学习记录7-7 P73 Setting sword type源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Sword_Skill_Controller.cs using System.Collections; using System.Col…

C#开源免费的Windows右键菜单管理工具

前言 今天分享一个C#开源、免费、纯粹的Windows右键菜单管理工具&#xff1a;ContextMenuManager。 工具主要功能 程序支持国际化多语言显示。启用或禁用文件、文件夹、新建、发送到、打开方式、自定义文件格式、IE浏览器、WinX等右键菜单项目。对上述场景右键菜单项目进行修…

Springboot 配置使用 Elasticsearch

一、安装Elasticsearch 1、Windows安装 Windows安装比较简单&#xff0c;ES官网Download Elasticsearch | Elastic下载压缩包&#xff0c;解压出来&#xff0c; bin 目录下有个elasticsearch.bat&#xff0c;双击&#xff0c;就运行起来了。 然后在浏览器输入localhost:9200…

css篇---分辨率物理像素和逻辑像素

物理分辨率和逻辑分辨率 物理分辨率是生产屏幕时就固定的&#xff0c;它是不可改变的 -----电脑像素 逻辑分辨率是由软件决定的 【电脑的设置中可以修改分辨率】----css像素 设备像素比 dpr同一方向上的物理像素/css像素 &#xff08;缩放比是1的情况&#xff09; 假设dpr4/…

Redis篇----第二篇

系列文章目录 文章目录 系列文章目录前言一、Memcache 与 Redis 的区别都有哪些?二、Redis 是单进程单线程的?三、一个字符串类型的值能存储最大容量是多少?四、Redis持久化机制前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点…

【数据结构排序算法篇】----基数排序【实战演练】

作为一名对技术充满热情的学习者&#xff0c;我一直以来都深刻地体会到知识的广度和深度。在这个不断演变的数字时代&#xff0c;我远非专家&#xff0c;而是一位不断追求进步的旅行者。通过这篇博客&#xff0c;我想分享我在某个领域的学习经验&#xff0c;与大家共同探讨、共…

《古龙风云录》中的人物性格——辰雨

《古龙风云录》是一款基于古龙武侠世界设定的现代游戏作品。这款游戏借鉴了古龙笔下的诸多人物和江湖背景进行创新演绎。 在这款游戏中,主角辰雨被塑造成一名具有冷峻寡言性格的人物,与原著中某些角色如《武林外史》里的部分人物形象有异曲同工之处。从游戏剧情来看,辰雨经历…

前端小案例——购买电影票(HTML+CSS+JS, 附源码)

一、前言 实现功能&#xff1a; 这段代码实现了一个简单的电影票选座购买的功能界面。 在页面上展示了一个电影院的座位布局&#xff0c;以及右侧显示了电影信息、选座情况、票价、总计等内容。 用户可以通过点击座位来选择购买电影票&#xff0c;每个座位的状态会在点击时改…

链表OJ题目合集第一弹:移除元素,反转链表,中间结点,倒数第k个结点,合并有序链表,回文结构,相交链表判断。(C语言版,有详细解析、图示和链接)

目录 前言 1. 移除链表元素 &#xff08;1&#xff09;题目及示例 &#xff08;2&#xff09;解析 &#xff08;3&#xff09;代码 2. 反转链表 &#xff08;1&#xff09;题目及示例 &#xff08;2&#xff09;题目解析及思路 3.链表的中间结点 &#xff08;1&#…

一起学量化之RSI指标

RSI指标 Relative Strength Index,相对强弱指数(RSI),是一个衡量资产过度买入或过度卖出状态的技术指标。 1. RSI的基本概念 当RSI超过70时,通常被认为是超买状态。当RSI低于30时,通常被认为是超卖状态。RSI超过80,被认为是严重超买状态。RSI低于20,被认为是严重超卖状…

马斯克评 OpenAI 视频模型,接地气又一针见血

马斯克评 OpenAI Sora 昨天&#xff0c;OpenAI 发布了首个视频生成模型 Sora。 一位 X&#xff08;前推特&#xff09;用户分享了 Sora 官网所展示的生成视频&#xff1a;一名女子在东京街头漫步。 该用户评论称&#xff1a;"OpenAI 今天宣布了 Sora&#xff0c;它使用混合…

STM32的三种下载方式

结果jlink&#xff0c;串口&#xff0c;stlink方式都没有问题&#xff0c;是当时缩减代码&#xff0c;看真正起作用的代码段有哪些&#xff0c;就把GPIO初始化中 /*开启GPIO外部时钟*/RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE); 把开启外部时钟的代码注释掉了。…

【plt.imshow显示图像】:从入门到精通,只需一篇文章!【Matplotlib】

【plt.imshow显示图像】&#xff1a;从入门到精通&#xff0c;只需一篇文章&#xff01;【Matplotlib】 &#x1f680; 利用Matplotlib进行数据可视化示例 &#x1f335;文章目录&#x1f335; &#x1f4d8; 1. plt.imshow入门&#xff1a;认识并安装Matplotlib库&#x1f308…

Github 2024-02-17 开源项目日报 Top10

根据Github Trendings的统计&#xff0c;今日(2024-02-17统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目4TypeScript项目3Rust项目2Jupyter Notebook项目1PowerShell项目1JavaScript项目1 Black&#xff…