* /

я есть небольшой 8-битный процессор, в некоторых выходных линиях которого есть декодер N-to-M - например, для случая 5–32 бит я записываю 00101, а бит 5 изменяет состояние. Единственный интерфейс к выходу - состояние изменения, нет никакого обратного чтения.

Устройство подсчитывает быстро (но случайным образом) происходящие события и должно предоставлять этот счет в виде кода «однобитовых изменений» для другого устройства. Выходные контакты считываются параллельно другим устройством и могут считываться так же быстро или с той же скоростью, что и другое устройство, поэтому подсчет необходим.

Мне НЕ нужно использовать стандартный двоичный отражающий код Грея - я могу использовать любой однобитовый изменяющий код.

Тем не менее, я хочу иметь возможность отслеживать следующий бит для эффективного изменения.

У меня нет инструкции "LowestBitSet", и поиск младшего бита, установленного для четырех 8-битных регистров, занимает много времени - поэтому я не могу использовать этот "общий" подход:

  Keep binary counter A
  Find B as A XOR (A+1)
  Bit to change is LowestBitSet in B 

Я хочу вычислить это как можно меньше памяти и регистров, и память определенно слишком ограничена для любой большой таблицы поиска. Время цикла является более важным фактором.

Есть предложения по алгоритмам?

Ответы на вопрос(7)

Ваш ответ на вопрос