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

📄 drink-cnt.v

📁 design compile synthesis user guide
💻 V
字号:
module drink_machine(nickel_in,dime_in,quarter_in,collect,                    nickel_out,dime_out,dispense,reset,clk);   input nickel_in, dime_in, quarter_in, reset, clk;   output nickel_out, dime_out, collect, dispense;   wire [2:0] nickel_count, nickel_count_d;   wire return_change_d, return_change;   function [7:0] count_nickels;      input nickel_in, dime_in, quarter_in,            reset, return_change;      input [2:0] nickel_count;      reg [3:0] nickel_count_d;      reg nickel_out, dime_out, dispense, collect;      reg return_change_d;      begin         nickel_out = 0;         dime_out   = 0;         dispense   = 0;         collect    = 0;         nickel_count_d  = 0;         return_change_d = 0;          if (! reset) begin            // Check whether money has come in            nickel_count_d = nickel_count;            if (nickel_in)               nickel_count_d = nickel_count_d + 1;            else if (dime_in)               nickel_count_d = nickel_count_d + 2;            else if (quarter_in)               nickel_count_d = nickel_count_d + 5;          // correct amount deposited??         if (nickel_count_d >= 7) begin            nickel_count_d = nickel_count_d - 7;            dispense = 1;            collect = 1;         end         // return change         if (return_change || collect) begin            if (nickel_count_d >= 2) begin               dime_out = 1;               nickel_count_d = nickel_count_d - 2;               return_change_d = 1;            end             if (nickel_count_d == 1) begin               nickel_out = 1;               nickel_count_d = nickel_count_d - 1;            end         end      end      count_nickels = {nickel_out,dime_out,dispense,collect,                      nickel_count_d[2:0],return_change_d};      end   endfunction    dFF ff0(nickel_count_d[0], clk, nickel_count[0], );   dFF ff1(nickel_count_d[1], clk, nickel_count[1], );   dFF ff2(nickel_count_d[2], clk, nickel_count[2], );   dFF ff3(return_change_d,   clk, return_change,   );    assign { nickel_out,dime_out,dispense,collect,            nickel_count_d,return_change_d } =   count_nickels( nickel_in, dime_in, quarter_in,                  reset, return_change, nickel_count ); endmodulemodule dFF (d,clk,q,qbar);    input d, clk;    output q, qbar;    reg q;    reg qbar;       always @ (posedge clk ) begin           q = d;           qbar = ~d;       endendmodule

⌨️ 快捷键说明

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