100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 计算机组成原理实验-logisim实现自动售糖机

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

时间:2020-06-14 16:28:56

相关推荐

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

一.作业内容;

二.设计分析:

首先我们先确定输入和输出,根据题目的提示很明显可以看出因为每次可以投入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信号,电路信号同理。如图:

三.具体设计

状态转换图:

状态转换表:

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

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

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

封装如下:

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

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

风轻轻吹.......

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。