计算机组成原理3个实验-logisim实现“七段数码管”、“有限状态机控制的8*8位乘法器”、“单周期MIPS CPU设计”。

这篇具有很好参考价值的文章主要介绍了计算机组成原理3个实验-logisim实现“七段数码管”、“有限状态机控制的8*8位乘法器”、“单周期MIPS CPU设计”。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

标题1.首先是七段数码管 

 标题二:有限状态机控制的8*8位乘法器

标题三:单周期MIPS CPU设计


标题1.首先是七段数码管 

1看一下实验要求:

 logisim七段数码管,计组,java,物联网

 2.接下来就是详细设计:

1. 组合逻辑设计

       由于7段数码管由7个发光的数码管构成,因为我们想用二进制将0-9这几个数字表示出来。所以他需要4位数字才能够把这7个数码管表示的数字都囊括其中,这7位输出来控制发光二极管来显示数字0~9。

首先先列出七段数码管显示的数字:

logisim七段数码管,计组,java,物联网

logisim七段数码管,计组,java,物联网

由此可见,例如:当想要输出零这个数字时,除了g这段数码管不亮以外,其他的数码管都要亮,以此类推,我们用二进制表示要输出的数字,比如0001那就是要输出1,0010就是要输出2。由此我们可以得到7段数码管显示译码器真值表:logisim七段数码管,计组,java,物联网

logisim七段数码管,计组,java,物联网 得到真值表后,接着便是组合逻辑电路的实现。这里利用logisim里的自动生成电路功能:

logisim七段数码管,计组,java,物联网

然后确定输入和输出

 logisim七段数码管,计组,java,物联网

       logisim七段数码管,计组,java,物联网

 然后选择真值表的形式依次填入上面得到的译码器真值表(注意和上表一致,others部分全部设置为0),表达式和最小项不用管,设置完成后点击生成电路。就会得到这样一个译码电路:

logisim七段数码管,计组,java,物联网

 接着就是电路的实现,我用一个计数器加时钟来实现输入,当clock时钟为上升沿时,计数器加一,然后用分线器变成二进制输入到封装好的译码电路,七段数码管直接用logisim里的。测试结果完美!

logisim七段数码管,计组,java,物联网

 标题二:有限状态机控制的8*8位乘法器

注意,这个乘法器不是普通的乘法器,它是由Moore型有限状态机控制的乘法器 

1.实验要求:

logisim七段数码管,计组,java,物联网

 2.详细设计:

时序逻辑设计

首先,由于采用有限状态机作为控制电路,我们需要先确认有限状态机的输入与输出

logisim七段数码管,计组,java,物联网

由此可见,有限状态机有三个输入,7个输出(因为还有一个done信号,表示运算结束),这里我们不采用ALU,使用普通的加法器,因此LP信号可以不用给出,所以少了一个输出,变成了6个。接下来便是控制电路的设计。首先先画出状态转换图,如下,sat表示start信号:

logisim七段数码管,计组,java,物联网

 然后便是状态转换表,我们采用二进制编码重写状态转换表和输出表,这样使用的数位少一点。当然了,用独热编码也是OK的,因为有5个状态。独热编码需要5位数字,00001,00010,00100,01000,10000。数位太多了。

logisim七段数码管,计组,java,物联网

logisim七段数码管,计组,java,物联网

用二进制编码重写状态转换表: 

logisim七段数码管,计组,java,物联网

然后再写输出表:

logisim七段数码管,计组,java,物联网

由于已经得到了二进制编码的状态转换表和输出表,接着用logisim自动生成电路按照这些表自动生成就好。

这是下一状态的电路图:

logisim七段数码管,计组,java,物联网

 还有就是输出的电路图:

logisim七段数码管,计组,java,物联网

 然后将这两个组合在一起就是有限状态机:

logisim七段数码管,计组,java,物联网

 得到有限状态机控制电路后就可以开始组件全部的电路:

logisim七段数码管,计组,java,物联网

       注意:当乘法器运行结束后的那个done信号出现之后他应该连到哪里去?这个done信号表明整个电路应该结束,所以我把它跟电路的时钟用与门连接起来,这样一来只要done信号出现,那么时钟将不再起作用,那么自然整个电路就停下来了。 

       运行的时候先输入运行的二进制数字,再点开start信号,最后再开时钟。

标题三:单周期MIPS CPU设计

单周期控制器(也就是cpu控制器,起了另一个名字):设计:

接下来详细介绍控制器的实现:

首先由于整个控制器是需要op以及func作为控制信号的指导,所以需要两个输入引脚将这两个信号输入,对于非R类型的指令而言,只需比较他的op是多少就那么这条指令就成立,比如lw的op指令是23(16进制),用一个比较器比较就可以得出。

而对于R类型的指令,由于R类型的数据的op都是000000,那么接下来就要看它的function,只需比较function就可以得出他们这几条指令,如图:

logisim七段数码管,计组,java,物联网

封装如下:

logisim七段数码管,计组,java,物联网

寄存器文件RegFile设计:

logisim七段数码管,计组,java,物联网

ALU设计:
logisim七段数码管,计组,java,物联网

 总设计:

logisim七段数码管,计组,java,物联网

 ********************************************************************************************************

2023/1/24

正月初三,风轻轻吹.......文章来源地址https://www.toymoban.com/news/detail-796278.html

到了这里,关于计算机组成原理3个实验-logisim实现“七段数码管”、“有限状态机控制的8*8位乘法器”、“单周期MIPS CPU设计”。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机组成原理--基于Logisim的海明校验码编码电路实验的应用(超详细/设计/实验/作业/练习)

    掌握海明码设计原理,能独立设计实现汉字 GB2312 编码的海明校验编码体系,并最终在实验环境中利用硬件电路实现对应的编码电路。 1.软件:Logisim软件、JAVA环境 2.硬件:计算机Windows 10 在 logisim 中打开实验资料包中的 data.circ 文件,在对应电路中完成海明校验编码电路。输

    2024年02月08日
    浏览(112)
  • 计算机组成原理--基于Logisim的4位并行加法器实验的应用(超详细/设计/实验/作业/练习)

    掌握快速加法器中先行进位的原理,能利用相关知识设计4位先行进位电路,并利用设计的4位先行进位电路构造4位快速加法器,能分析对应电路的时间延迟。 1.软件:Logisim软件、JAVA环境 2.硬件:计算机Windows 10 利用已设计好的四位先行进位电路构造四位快速加法器,其引脚定

    2024年02月02日
    浏览(95)
  • 计算机组成原理--基于Logisim的8位可控加减法器实验的应用(超详细/设计/实验/作业/练习)

    掌握一位全加器的实现逻辑,掌握多位可控加减法电路的实现逻辑,熟悉 Logisim 平台基本功能,能在 logisim 中实现多位可控加减法电路。 1.软件:Logisim软件、JAVA环境 2.硬件:计算机Windows 10 在 Logisim 模拟器中打开 alu.circ 文件,在对应子电路中利用已经封装好的全加器设计8

    2024年02月04日
    浏览(108)
  • 计算机组成原理3个实验-logisim实现“七段数码管”、“有限状态机控制的8*8位乘法器”、“单周期MIPS CPU设计”。

    目录 标题1.首先是七段数码管   标题二:有限状态机控制的8*8位乘法器 标题三:单周期MIPS CPU设计 1看一下实验要求:    2.接下来就是详细设计: 1. 组合逻辑设计        由于7段数码管由7个发光的数码管构成,因为我们想用二进制将0-9这几个数字表示出来。所以他需要

    2024年01月17日
    浏览(33)
  • 实验2 存储器设计与实现【计算机组成原理】

    掌握单端口RAM和ROM原理和设计方法。 掌握32位数据的读出和写入方法。 掌握ModelSim和ISEVivado工具软件。 掌握基本的测试代码编写和FPGA开发板使用方法。 装有ModelSim和ISEVivado的计算机。 SwordBasys3EGo1实验系统。 片内存储器分为RAM和ROM两大类。RAM是随机存储器,存储单元的内

    2024年02月06日
    浏览(35)
  • 计算机组成原理实验

    上学期刚结束了计算机组成原理课程,在这里把上学期做过的实验都记录一下。这里一共有4个:海明码的编码和解码、ALU、字库、RAM。我们是使用的谭志虎:自己动手画CPU。 中间参考了很多大佬,我在gitee上fork一下原来的代码,再把我自己的上传到仓库中。这里贴一下我的

    2024年02月04日
    浏览(49)
  • 计算机组成原理实验——一、ALU实验

    1.掌握ALU模块的组成和接口,理解ALU的功 能。 2.通过编程调用ALU模块计算斐波那契数。 3.掌握Verilog中多模块编程方法和实现。 用 Verilog 设计一个算术运算单元 ALU,采 用纯组合逻辑设计,32bit 宽。 利用该 ALU 完成斐波那契数 f(n),其中 2n16。 可选 –改成3段式实现(已实现)

    2023年04月22日
    浏览(34)
  • Hust计算机组成原理实验

    点击 资源栏-Gates 选项中的门电路,即可在右边画布添加 添加成功后如下: 引脚可在菜单栏中找到 也可在 资源栏-Wiring 中找到 添加入画板后,可在属性表中修改面向方向 最后得到如下图 注:方形为输出,圆形为输入。 使用 光标 连接两个结点即可 灰色:线的位宽未知。发

    2024年02月04日
    浏览(31)
  • 计算机组成原理实验——三、存储器实验

    1.掌握存储器的工作原理和接口。 2.掌握存储器的实现方法和初始化方法。 3.掌握RISC-V中存储器的存取方式。 1.利用vivado IP核创建64 32的ROM,并在 系数文件中设置数据为123489ab; 2.利用vivado IP核创建64 32的RAM,并在 其上封装一个模块,使得其能完成risc-v 的load/store指令功能。

    2024年02月04日
    浏览(39)
  • 计算机组成原理实验——二、寄存器实验

    1.掌握寄存器堆的工作原理和接口。 2.掌握寄存器堆的实现方法。 3.掌握寄存器堆在微处理器中承担的功能。 设计一32*32bit 的寄存器文件,即32 个 32 位的寄存器文件(寄存器组) –具备两组读端口及一组写端口; –通过读端口可从0~31 号的任意地址读取 数据; –通过写端口可

    2024年02月06日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包