⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 drink-st.v

📁 design compile synthesis user guide
💻 V
字号:
`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 */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    endendalways @ (posedge clk ) begin     Q = D;endendmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -