Булево уравнение квадратурного декодера
Чтобы реализовать счетчик положения из квадратурных входов, я использовал следующую таблицу истинности:
Моё логическое уравнение (где Ap и Bp - предыдущее значение A и предыдущее значение B соответственно) для Направления и Счета / Движения можно увидеть ниже
Count <= (not Ap and not Bp and not A and B) or (not Ap and not Bp and A and not B) or
(not Ap and Bp and not A and not B) or (not Ap and Bp and A and B) or
(Ap and Bp and not A and B) or (Ap and Bp and A and not B) or
(Ap and not Bp and not A and not B) or (Ap and not Bp and A and B); -- complete boolean on conditions for a count value of 1
Direction <= (not Bp and A) or (Bp and not A); -- complete boolean on conditions for forward direction
Можно ожидать, что результат будет подсчитываться до тех пор, пока B ведет A
Но вместо этого все, что я получаю, это:
Любые предложения о том, что может быть не так? Если мое булево уравнение отличается от вашего, пожалуйста, опубликуйте его.