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 + -
显示快捷键?