硬件平台:ZYNQ XCZ7020
编码器:欧姆龙E6B2 500线编码器。
实现功能:每5ms测速周期对编码器进行脉冲计数,换算得到转速,并根据AB相关系得到旋转方向。
在写这块代码的时候也遇到了一些问题,程序虽小但也涉及到一些Veilog中易错的点。代码如下
module encoder(
input clk_i,
input rst_n,
input EncoderA_i,//编码器为500线
input EncoderB_i,
output [31:0] Speed_o,
output Dir_o
);
reg [18:0] clk_cnt;//Fpga频率计数
reg [31:0] speed=0;
reg dir=0;//0 正方向 1反方向
reg stop;
always@(posedge clk_i) begin
if(rst_n==