Благодарю вроде де бы есть положительный результат )) от 10000 отсчетов, максимум 40 шум это примерно 20мм хотел получить +-2мм. Попробую фильтрами поиграться может какие рекомендации дадите буду очень благодарен. Вначале сделал счетчик через phasedetect= sigA ^ sigB. Код простой и по времени цепи хорошо проходят. Но измерение происходит от 0 до 180 градусов а это 2,5м (
Сделал так, самому не очень нравиться и по времени не проходит, но работает. Может как то это можно упростить? Когда phasedetect ==1 счетчик считает когда 0 ждет.
Код
//----------------------------------------------------------------------//
always @(negedge CLCK) begin
if (RESET) begin
phasedetect = 1'b0;
casetrig = 3'd0;
end else begin
case(casetrig)
3'd0: begin
if(in1)begin
phasedetect = 1'b1;
if(in2)begin
casetrig = 3'd1;
end else begin
casetrig = 3'd2;
end
end
end
3'd1: begin
if(in2==0)begin
casetrig = 3'd2;
end
end
3'd2: begin
if(in2)begin
phasedetect = 1'b0;
casetrig = 3'd3;
end
end
3'd3: begin
if(in1==0)begin
casetrig = 3'd0;
end
end
default: begin
phasedetect = 1'b0;
casetrig = 3'd0;
end
endcase
end//reset
end//always
//----------------------------------------------------------------------//
Можно еще вопрос) в квартусе есть возможность настройки оптимизации что бы оптимизировал цепи в первую очередь по времени ?