|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2010-7-21 15:24:54
|
显示全部楼层
我写的程序,仿真出来功能不对。
module qep2 (
dir ,
ENC ,
ENA ,
ENB
) ;
input dir ;
input ENC ;
output ENA ,ENB ;
reg ena_i_ahead;
reg ena_i_behind;
reg enb_i_ahead;
reg enb_i_behind;
initial
begin
ena_i_ahead = 1'b0;
ena_i_behind = 1'b0;
enb_i_ahead = 1'b0;
enb_i_behind = 1'b0;
end
always @(posedge ENC)
begin
if (dir)
begin
enb_i_ahead <= ~enb_i_ahead;
end
else
begin
ena_i_ahead <= ~ena_i_ahead;
end
end
always @(negedge ENC)
begin
if (dir)
begin
ena_i_behind <= ~ena_i_behind;
end
else
begin
enb_i_behind <= ~enb_i_behind;
end
end
assign ENA = (dir == 1'b0) ? ena_i_ahead : ena_i_behind ;
assign ENB = (dir == 1'b0) ? enb_i_behind : enb_i_ahead ;
endmodule |
|