qep.v
来自「一个QEP电路的verilog代码。输入信号是光电编码器的A相和B相信号和一个处」· Verilog 代码 · 共 73 行
V
73 行
module qep( rst,ina,inb,clkin,clkout,dirout );input rst,ina,inb;//复们信号,光电编码器A相和B输入信号input clkin;//处理时钟输入信号output clkout,dirout;//输出时钟和方向信号reg dirout;reg ina1,ina2;always @(negedge rst or posedge clkin)begin if(!rst)begin ina1 <= 1'b0; ina2 <= 1'b0; end else begin ina1 <= ina; ina2 <= ina1; endendwire ina_edge = ina1 ^ ina2;reg inb1,inb2;always @(negedge rst or posedge clkin)begin if(!rst)begin inb1 <= 1'b0; inb2 <= 1'b0; end else begin inb1 <= inb; inb2 <= inb1; endendwire inb_edge = inb1 ^ inb2;reg inb_new;wire ab = ina ^ inb;always @(negedge rst or negedge ina_edge)begin if(!rst)begin inb_new <= 1'b0; dirout <= 1'b0; end else begin inb_new <= inb; dirout <= ab; endendreg ina_new;always @(negedge rst or negedge inb_edge)begin if(!rst) ina_new <= 1'b0; else ina_new <= ina;endwire clk_temp1 = ina_new ^ inb_new;reg clk_temp2;always @(negedge rst or posedge clkin)begin if(!rst)begin clk_temp2 <= 1'b0; end else begin clk_temp2 <= clk_temp1; endendassign clkout = clk_temp1 ^ clk_temp2;endmodule
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?