您当前的位置: 首页 >  面试

FPGA硅农

暂无认证

  • 3浏览

    0关注

    282博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

数字IC面试手撕代码(十四)

FPGA硅农 发布时间:2022-05-25 12:31:05 ,浏览量:3

题目描述

设计一个自动贩售机,输入货币有三种,为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            
关注
打赏
1658642721
查看更多评论
0.1575s