题目描述
设计一个自动贩售机,输入货币有三种,为0.5/1/2元,饮料价格是1.5元,要求进行找零,找零只会支付0.5元。 注意rst为低电平复位,下面是该设计的相关信号及其含义: 本题和文章最大的不同是,之前的文章采用米勒状态机进行设计,而本文则通过摩尔状态机进行设计。采用摩尔状态机时,状态数应该为 S0_0:已投入0元 S0_5:已投入0.5元 S1_0:已投入1元 S1_5:已投入1.5元 S2_0:已投入2元 S2_5:已投入2.5元 S3_0:已投入3元(2+1=3) 这里和米勒状态机最大的区别就是,米勒状态机最大的值为max(投入钱数%1.5),而摩尔状态机的最大值为最大投入钱数(2+1=3)。
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2022/05/24 18:52:03
// Design Name:
// Module Name: top_moore
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module seller_moore(
input wire clk ,
input wire rst ,
input wire d1 ,
input wire d2 ,
input wire d3 ,
output reg out1,
output reg [1:0]out2
);
localparam S0_0=0;
localparam S0_5=1;
localparam S1_0=2;
localparam S1_5=3;
localparam S2_0=4;
localparam S2_5=5;
localparam S3_0=6; //1+2=3
reg [3:0] cs,ns;
//fsm1
always@(posedge clk,negedge rst)
if(~rst)
cs
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?