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

📄 diriver.v

📁 基于Verilog-HDL的硬件电路的实现 9.7 步进电机的控制   9.7.1 步进电机驱动的逻辑符号   9.7.2 步进电机驱动的时序图   9.7.3 步进电机驱动的逻辑框图
💻 V
字号:

/* 步进电机驱动  */

module DIRIVER (CLK, CLR, DIR, OUT);
    input   CLR, DIR, CLK;
    output  [3:0] OUT;
    wire    [1:0] Q;

    COUNT_UP_DOWN  COUNT_UP_DOWN (CLR, CLK, DIR, Q);
    DEC2_4  DEC2_4 (Q, OUT);

endmodule


/* COUNT_UP_DOWN */

module COUNT_UP_DOWN (CLR, CLK, DIR, Q);
    input   CLR, CLK, DIR;
    output  [1:0] Q;
    reg     [1:0] Q;

    
    always  @(posedge CLK or negedge CLR) 
      begin
       if (!CLR)
            Q=0;
       else 
         begin
          if (!DIR)
               Q=Q+1;
          else 
               Q=Q-1;
         end
      end	
    
endmodule


/* DEC2_4 */

`define  OUT_0  4'b0001 
`define  OUT_1  4'b0010 
`define  OUT_2  4'b0100
`define  OUT_3  4'b1000

module  DEC2_4 (IN, OUT);
      input  [1:0] IN;
      output [3:0] OUT;

      assign OUT=FUNC_DEC(IN);

      function [3:0] FUNC_DEC;
         input [1:0] IN;

         case (IN)
           2'b00: FUNC_DEC=`OUT_0;
           2'b01: FUNC_DEC=`OUT_1;
           2'b10: FUNC_DEC=`OUT_2;
           2'b11: FUNC_DEC=`OUT_3;
         endcase
      endfunction
endmodule

⌨️ 快捷键说明

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