📄 qep.v
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -