|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
一个自动贩卖机的verilog codes, 1块和5毛两个硬币, 买一个2.5的饮料
总是显示Module contains unmapped components. The output netlist might not be read back into the system.
请问 这个代码有什么问题呢?谢谢
module softdrink(rst,clk,op_start,coin_val,cancel_flag,
hold_ind,charge_ind,drinktk_ind,charge_val);
input clk,rst;
input op_start,cancel_flag;
input [1:0] coin_val;
output hold_ind;
output charge_ind;
output drinktk_ind;
output [2:0]charge_val;
reg hold_ind;
reg charge_ind;
reg drinktk_ind;
reg [2:0]charge_val;
reg[2:0]currentstate,nextstate;
parameter S0=3'b000;
parameter S1=3'b001;
parameter S2=3'b010;
parameter S3=3'b011;
parameter S4=3'b100;
parameter S5=3'b101;
parameter S6=3'b110;
always@(posedge clk or posedge rst)
if(rst)
currentstate<=S0;
else
currentstate<=nextstate;
always@(rst or currentstate or op_start or cancel_flag or coin_val)
if(rst) nextstate=S0;
else case(currentstate)
S0:
if(op_start)
if(coin_val==2'b01) nextstate=S1;
else if (coin_val==2'b10) nextstate=S2;
S1:
if(cancel_flag) nextstate=S0;
else if(coin_val==2'b01) nextstate=S2;
else if (coin_val==2'b10) nextstate=S3;
S2:
if(cancel_flag) nextstate=S0;
else if(coin_val==2'b01) nextstate=S3;
else if (coin_val==2'b10) nextstate=S4;
S3:
if(cancel_flag) nextstate=S0;
else if(coin_val==2'b01) nextstate=S4;
else if (coin_val==2'b10) nextstate=S5;
S4:
if(cancel_flag) nextstate=S0;
else if(coin_val==2'b01) nextstate=S5;
else if (coin_val==2'b10) nextstate=S6;
S5: nextstate=S0;
S6: nextstate=S0;
default:
nextstate=S0;
endcase
always@(currentstate)
if(currentstate==S0)
hold_ind=1'b0;
else
hold_ind=1'b1;
always@(currentstate)
if((currentstate==S5)||(currentstate==S6))
drinktk_ind=1'b1;
else
drinktk_ind=1'b0;
always@(currentstate or cancel_flag)
if(currentstate==S0)
charge_ind=1'b0;
else if(currentstate==S6)
charge_ind=1'b1;
else if(cancel_flag)
charge_ind=1'b1;
else
charge_ind=1'b0;
always@(currentstate or cancel_flag )
if(currentstate==S0) charge_val=3'b000;
else if(currentstate==S6)
charge_val=3'b001;
else if(cancel_flag)
begin
case(currentstate)
S1: charge_val=3'b001;
S2:charge_val=3'b010;
S3:charge_val=3'b011;
S4:charge_val=3'b100;
default:charge_val=3'b000;
endcase
end
else
charge_val=3'b000;
endmodule |
|