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
What are the different types of buses used by the embedded systems?
How do you identify hardware errors?
Can we use any function inside isr?
How are local and global variables are allocated by compiler.
Tell me can structures be passed to the functions by value?
Please explain can structures be passed to the functions by value?
What happens when recursive functions are declared inline?
What software configuration management tools are you familiar working with?
Why is java used in embedded systems?
Explain the difference between a microcontroller and an embedded system?
Can we put breakpoint inside isr?
What is the difference between "set" logic, and "procedural" logic. When would you use each one and why?