一.作业内容;

 二.设计分析:

首先我们先确定输入和输出,根据题目的提示很明显可以看出因为每次可以投入10元或者5元硬币,当总钱数达到15元或者超过15元的时候,自动出糖,并且机器不找零,所以可以看出最大的钱数只能是20元,不可能比这还大,所以从0~20我们可以确定出5个状态,为了简洁表示我们用d表示投入10元,用n表示投入5元,最后的是否出糖用c表示,分别用S0到S4表示0~20元。

然后我们开始绘制状态转换图,当S0的时候也就是0元的时候,如果既不投入10元也不投入5元那么依旧是S0,如果投入10元不投入5元,那就转为S2,如果投入5元不投入10元,那就转为S1,以此类推绘画出状态转换图,然后我们开始根据状态转换图撰写状态转换表。

接下来我们采用二进制编码的方式,由于有5种状态,所以二进制编码需要三个数字才能够将他们都表示出来,000表示S0,001表示S1,010表示S2,011表示S3,100表示S4。

对于独热编码,在独热编码中状态编码的每一位表示一种状态,在任何时候只有一个位是热的或真的,由于有5种状态,所以需要5位数字,分别为:S0为00001,S1为00010,S2为00100, S3为01000,S4为10000,这比二进制编码的三位数字要大很多,但是下一位状态和输出的逻辑通常会更简化,需要的门电路也更少。

然后我们就用状态编码重写状态转换表,这里采用二进制编码,接下来写出布尔表达式,可以利用logisim自动生成电路,快速简洁地生成电路图, 然后根据我们用状态编码编写的输出表,写出输出电路,由于要在测试电路中使用Reset信号,所以在编写有限状态机的时候,对于寄存器里面的Reset信号,我们用一个输入引脚来表示,方便测试的时候,用隧道来表示Reset信号,电路信号同理。如图:

三.具体设计

状态转换图:

状态转换表:

当前状态

输入

下一状态

S

10

5

S*

S0

0

0

S0

S0

0

1

S1

S0

1

0

S2

S1

0

0

S1

S1

0

1

S2

S1

1

0

S3

S2

0

0

S2

S2

0

1

S3

S2

1

0

S4

S3

0

0

S0

S3

0

1

S1

S3

1

0

S2

S4

0

0

S1

S4

0

1

S2

S4

1

0

S3

状态

二进制编码方式

S0

000

S1

001

S2

010

S3

011

S4

100

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

当前状态

输入

下一状态

S(s2, s1, s0)

10

5

S*(s*2, s*1, s*0)

0,0,0

0

0

0,0,0

0,0,0

0

1

0,0,1

0,0,0

1

0

0,1,0

0,0,1

0

0

0,0,1

0,0,1

0

1

0,1,0

0,0,1

1

0

0,1,1

0,1,0

0

0

0,1,0

0,1,0

0

1

0,1,1

0,1,0

1

0

1,0,0

0,1,1

0

0

0,0,0

0,1,1

0

1

0,0,1

0,1,1

1

0

0,1,0

1,0,0

0

0

0,0,1

1,0,0

0

1

0,1,0

1,0,0

1

0

0,1,1

当前状态

输出

S(s2, s1, s0)

C

000

0

001

0

010

0

011

1

100

1

写出下一状态和输出的布尔表达式:

接着就可以进行电路设计了,这里注意,利用logisim自动生成电路,先生成下一状态的电路,然后利用寄存器和隧道就完成了下一状态控制器的设计,然后在当前状态那里进行输出设计:

封装如下:

接下来开始编写测试电路,创新的使用了:输入d和n分别用按钮来表示,点一下即为输入,对于输出的常数,我们用一个计数器和16进制数字表示器来表示,对于剩余的钱数,我们用一个多路选择器,以及16进制数字表示器来表示对多路选择器要额外小心,由于有五种状态,所以多路选择器的选择端位宽要为3,并且0~5的数据以常数表示,测试结果完美。

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

风轻轻吹.......

计算机组成原理实验-logisim实现自动售糖机相关推荐

  1. 计算机组成原理实验logisim(三)之偶校验编码与检错

    实验三的前两个实验: 国标码转区位码 汉字GB2312编码 在很多地方都找得到,我就不多说. 附上我使用过的连接:https://blog.csdn.net/gemingshun/article/de ...

  2. 东北大学计算机组成实验报告,东北大学计算机组成原理实验三

    东北大学计算机组成原理实验三Tag内容描述: 1.计算机组成原理复习资料 第一章知识总结 冯诺伊曼结构是一种将程序指令存储器和数据存储器合并在一起的存储结构,程序指令存储地址和数据存储地址指向同一个存 ...

  3. 计算机组成原理实验 单总线CPU设计(定长指令周期3级时序)(HUST)思路总结

    计算机组成原理实验 单总线CPU设计(定长指令周期3级时序)(HUST)总结 全部任务共六关.主要涉及定长指令周期三级时序系统的设计,设计过程中比较重要的是数电知识.Logisim的组合逻辑电路分析功 ...

  4. cop2000计算机组成原理,COP2000计算机组成原理实验系统

    COP2000计算机组成原理实验系统 3. 万用汇编器 用户可以自定义指令/微指令系统,COP2000软件可以对用户自己定义的汇编助记符进行编译,自动生成代码/微代码.实验系统出厂时提供了完善的指令系 ...

  5. 上海大学计算机组成原理实验13,上海大学计算机组成原理实验报告11.doc

    上海大学计算机组成原理实验报告11 上海大学计算机组成原理实验报告11 上海大学_计算机组成原理实验报告8 2011级 上海大学计算机学院 <计算机组成原理二实验>报告8 姓名:学号: 教 ...

  6. 计算机实验原理word,完整word版计算机组成原理实验报告 微控制器

    <完整word版计算机组成原理实验报告 微控制器>由会员分享,可在线阅读,更多相关<完整word版计算机组成原理实验报告 微控制器(13页珍藏版)>请在人人文库网上搜索. 1. ...

  7. 计算机组成原理实验:微程序控制实验

    学生实验报告 实验课名称:计算机组成原理 实验项目名称:微程序控制实验 一.实验名称: 微程序控制实验 二.实验目的: (1)掌握微程序控制器的组成原理. (2)掌握微程序的编制.写入,观察微程序的运 ...

  8. 21级计科专业计算机组成原理实验一报告

    实验资料: https://wwpv.lanzoue.com/b05drrb2b 密码:7nwj 附件清单如下: (1)MSDEV.EXE-----替换后可以修复调试后软件不可用的情况 (2)计算机组 ...

  9. 计算机组成原理实验四 微程序控制器实验报告

    我班算是几乎最后一个做实验的班级了,报告参考了一些朋友提供的数据加上一些自己的主观拙见,本人水平有限加之制作仓促难免有错误,望大家批评指正. 4.1 微程序控制器实验 一.实验目的 (1) 掌握微程序 ...

最新文章

  1. JS中根据某个值进行大小排序
  2. tf.keras.activations.sigmoid 激活函数 示例
  3. LayUi前端框架删除数据缓存问题(解决删除后刷新页面内容又会显示问题)
  4. mui 解决弹出图片问题
  5. 二维凸包(模板) hdu 1348 求凸包的周长
  6. 提前浏览win11浏览器什么样
  7. android自定义协议,Android / iOS-自定义URI /协议处理
  8. Json解析工具对比
  9. 阿里巴巴的盈利模式分析
  10. word转简洁html工具,Convert Word to HTML(Word转HTML工具)
  11. C#发送邮件,包含发送附件
  12. vim keymap
  13. SQL SERVER 2016安装部署
  14. Oracle Database-数据处理和表的管理部分
  15. 服装行业如何用手持PDA盘点?
  16. 怎么将两个pdf文件合并在一起
  17. JavaScript飞机大战知识点
  18. 绝地求生进游戏显示服务器未正常运行,绝地求生大逃杀BE服务器未正常运行简单解决办法一览...
  19. 一个笼子里面关了鸡和兔子(鸡有两只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物?
  20. 怎样解决电脑右下角弹出的广告

热门文章

  1. 安装ST LINK驱动后显示成功,但无法识别问题的解决办法之一
  2. vue3 导入svg图片
  3. 前端---HTML5如何制作一个折线图
  4. 【Linux】mysql命令行查看表结构,字段等信息
  5. Python数据挖掘-NLTK文本分析+jieba中文文本挖掘
  6. template报下面的错误
  7. 无人机集群的分布式协作 VI-SLAM
  8. redis客户端通过哨兵获取主机、从机信息
  9. 在C语言中使用二分法算法思想解决猜商品价格问题
  10. Python| GUI界面进行抽奖