This program is in verilog and need help to get it working
correctly. This is the code i have so far. Please help.
Simple testbench would be great. Thanks\
'define vend_a_drink {D,dispense,collect} = {IDLE,2'b11};
module drink_machine(nickel_in, dime_in, quarter_in,
collect, nickel_out, dime_out,
dispense, reset, clk) ;
parameter IDLE=0,FIVE=1,TEN=2,TWENTY_FIVE=3,
FIFTEEN=4,THIRTY=5,TWENTY=6,OWE_DIME=7;
input nickel_in, dime_in, quarter_in, reset, clk;
output collect, nickel_out, dime_out, dispense;
reg collect, nickel_out, dime_out, dispense;
reg [2:0] D, Q; /* state */
// synopsys state_vector Q
always @ ( nickel_in or dime_in or quarter_in or reset )
begin
nickel_out = 0;
dime_out = 0;
dispense = 0;
collect = 0;
if ( reset ) D = IDLE;
else begin
D = Q;
case ( Q )
IDLE:
if (nickel_in) D = FIVE;
else if (dime_in) D = TEN;
else if (quarter_in) D = TWENTY_FIVE;
FIVE:
if(nickel_in) D = TEN;
else if (dime_in) D = FIFTEEN;
else if (quarter_in) D = THIRTY;
TEN:
if (nickel_in) D = FIFTEEN;
else if (dime_in) D = TWENTY;
else if (quarter_in) 'vend_a_drink;
TWENTY_FIVE:
if( nickel_in) D = THIRTY;
else if (dime_in) 'vend_a_drink;
else if (quarter_in) begin
'vend_a_drink;
nickel_out = 1;
dime_out = 1;
end
FIFTEEN:
if (nickel_in) D = TWENTY;
else if (dime_in) D = TWENTY_FIVE;
else if (quarter_in) begin
'vend_a_drink;
nickel_out = 1;
end
THIRTY:
if (nickel_in) 'vend_a_drink;
else if (dime_in) begin
'vend_a_drink;
nickel_out = 1;
end
else if (quarter_in) begin
'vend_a_drink;
dime_out = 1;
D = OWE_DIME;
end
TWENTY:
if (nickel_in) D = TWENTY_FIVE;
else if (dime_in) D = THIRTY;
else if (quarter_in) begin
'vend_a_drink;
dime_out = 1;
end
OWE_DIME:
begin
dime_out = 1;
D = IDLE;
end
endcase
end
end
always @ (posedge clk ) begin
Q = D;
end
endmodule
No Answer is Posted For this Question
Be the First to Post Answer
Explain what are the differences between analytical and computational modeling?
What is mutex precisely used for?
What's the difference between unit test and integration test?
Can a pointer be volatile ?
Tell me what are the different types of customizations that is used with the “volatile” keyword?
Mention what are the essential components of embedded system?
What is the order of calling for the constructors and destructors in case of objects of inherited classes?
What is the need for dmac in es?
Explain what are the essential components of embedded system?
Have you developed software testing procedures for new systems and performed qa, quality assurance, or audits?
Tell me is count down_to_zero loop better than count_up_loops?
What is the difference between unit test and integration test?