如题所示,经典面试题,卖报机。现有卖报机,投币口收1分,2分,5分,一份报纸5分。
端口
input:a,b,c
output:y,z
注释:
a=1,表示投入5分;
b=1,表示投入2分;
c=1,表示投入1分;
y=1,表示吐出1份报纸;
z=1,表示找零;
状态
S0:空闲态(完成态)
S1:余额为1分;
S2:余额为2分;
S3:余额为3分;
S4:余额为4分;
上面五个状态,余额为5,即为S0,余额为6,即为S1,以此循环
画出状态图如下:
真值表
根据状态图可以列出真值表如下:
rtl
本次rtl使用3段式fsm
接上段代码
接上段代码
第三段fsm
此段代码后边还有一个end和endmodule,若想正确运行,需补上。
tb比较简单,就不截图了。
波形如下: