如何修改我的状态机

M

MRFGUY

Guest
我只是试图研究密克罗尼西亚。

我只是说用有限状态机的Verilog 1。我的计划是销售15票。用户被允许添加5或10。每当达到15票会出来
, 回到开始状态。如果达到20,票证和变化5,回到开始状态。它似乎在这个时候确定。(但让我知道我应该改变我的程序)

但我也想显示在两个7秒展示架。如多少用户需要增加更多的获得门票。在这一点上我不知道如何添加。

如果我想分成两个条件,7秒(目前领导下领导)。

我已经在这里附上我的程序。

谢谢`时间表1ns的/ 1ps
////////////////////////////////////////////////// //////////////////////////////
/ /公司:
/ /工程师:
/ /
/ /创建日期:16时15分○八秒08/29/05
/ /设计名称:
/ /模块名称:sell_ticket
/ /项目名称:
/ /目标设备:
/ /工具版本:
/ /描述:销售15票。如果用户增加15只票将出来。
/ /如果用户增加20机器chnage 5票就会出来。
/ /
/ /依赖关系:
/ /
/ /修订:
/ /版本0.01 -文件创建
/ /附加说明:
/ /
////////////////////////////////////////////////// //////////////////////////////
模块sell_ticket(甲,乙,复位,时钟,吨,三);

输入的A,B,复位,时钟/ / 1为5 $投入和b是10 $输入

输出吨,ç; / / c是硬币的变化和t是机票

章吨,荤;
第[2:0]的状态,next_state;

参数零= 3'b000;
参数5 = 3'b001;
参数10 = 3'b010;
参数15 = 3'b011;
参数20 = 3'b100;总是@(posedge时钟)
开始
如果(复位)
国家“= 0;
其他的
国家“= next_state;
末端

总是@(甲,乙,州)
开始
案(国家)

零:案((B,是一种))
2'b00:next_state = 0;
2'b01:next_state = 5;
默认值:next_state = 10;
endcase

五:案((B,是一种))
2'b00:next_state = 5;
2'b01:next_state = 10;
默认值:next_state = 15;
endcase

10:案((B,是一种))
2'b00:next_state = 10;
2'b01:next_state = 15;
默认值:next_state = 20;
endcase

默认值:next_state = 0;
endcase / /国家的国家案件结束
为此/ /永远结束总是@(州)
开始
案(国家)
15:(吨,C)的= 2'b10;
20:(吨,C)的= 2'b11;
默认值:(吨,C)的= 2'b00;
endcase
末端

endmodule

 
在这里
, 我说7秒显示为乌拉圭回合的代码....代码:

`时间表1ns的/ 1ps

模块sell_ticket(甲,乙,复位,时钟,吨,丙,seven_seg_led_0,seven_seg_led_1);输入的A,B,复位,时钟/ / 1为5 $投入和b是10 $输入输出吨,ç; / / c是硬币的变化和t是机票

输出[6:0] seven_seg_led_0,seven_seg_led_1;章吨,荤;

第[6:0] seven_seg_led_0,seven_seg_led_1;

第[2:0]的状态,next_state;参数零= 3'b000;

参数5 = 3'b001;

参数10 = 3'b010;

参数15 = 3'b011;

参数20 = 3'b100;总是@(posedge时钟)

如果(复位)

国家“= 0;

其他的

国家“= next_state;总是@(A或B或国家)开始

next_state =状态;

案(国家)

零:案((B,是一种))

2'b00:next_state = 0;

2'b01:next_state = 5;

默认值:next_state = 10;

endcase五:案((B,是一种))

2'b00:next_state = 5;

2'b01:next_state = 10;

默认值:next_state = 15;

endcase10:案((B,是一种))

2'b00:next_state = 10;

2'b01:next_state = 15;

默认值:next_state = 20;

endcase

15:next_state = 0;

20:next_state = 0;

endcase / /国家的国家案件结束

为此/ /永远结束总是@(州)开始

案(国家)

零:开始

(吨,C)的= 2'b00; / /一个测试

seven_seg_led_1 = 7'b0110000; / /显示15

seven_seg_led_0 = 7'b1011011;

末端

5:开始

(吨,C)的= 2'b00; / /一个测试

seven_seg_led_1 = 7'b0110000; / /显示10

seven_seg_led_0 = 7'b0000000;

末端

10:开始

(吨,C)的= 2'b00; / /一个测试

seven_seg_led_1 = 7'b0000000; / /显示05

seven_seg_led_0 = 7'b1011011;

末端

15:开始

(吨,C)的= 2'b10; / /一个测试

seven_seg_led_1 = 7'b0000000; / /显示00

seven_seg_led_0 = 7'b0000000;

末端

20:开始

(吨,C)的= 2'b11; / /一个测试

seven_seg_led_1 = 7'b0000001; / /显示-5

seven_seg_led_0 = 7'b1011011;

末端

默认是:开始

(吨,C)的= 2'b00;

seven_seg_led_1 = 7'b0000000; / /显示00

seven_seg_led_0 = 7'b0000000;

末端

endcase

末端

endmodule
 
谢谢您的帮忙nand_gates。

如果我要等待15个国家或其他活动20的某个时候,可以说给了车票和找回的硬币,我们又怎能补充。

谢谢

 

Welcome to EDABoard.com

Sponsor

Back
Top