Как добавить (все нулевое состояние) к состояниям регистра сдвига с линейной обратной связью (LFSR)

Мне нужно добавить состояние всех нулей к состояниям сдвигового регистра с линейной обратной связью.

Как я могу это сделать?

Мастер сброс или сброс с нуля
Почему? Какую проблему вы на самом деле пытаетесь решить? Вам нужно иметь все 2 н состояния, присутствующие в выходной последовательности, или вам просто нужно состояние «все 0», чтобы не застревать FSM?
это вопрос в моем отчете о колледже. Что, если мы хотим добавить все нулевое состояние к состояниям в LFSR?!
если вы это сделаете, вы получите поле Галуа такой длины. Это не обязательно поможет вам, просто говорю.

Ответы (3)

Стандартный LSFR с обратной связью XOR имеет две стабильные «орбиты», застрявшие на нулях, и «m-последовательность», состоящую из всех оставшихся 2 n -1 состояний, где регистр сдвига имеет n двоичных триггеров.

Модифицированный LSFR с обратной связью XNOR также имеет две стабильные орбиты, застрявшие на единицах, и последовательность из 2 n -1 оставшихся состояний. Эта последовательность будет содержать состояние 00000, но теперь не будет содержать 11111.

Если вы хотите использовать более сложную логику или тактируете последовательность из ПЗУ или другой таблицы поиска, то вы можете иметь последовательность длиной 2 n , которая содержит все 2 n различных двоичных комбинаций из n битов. Сгенерируйте свою обычную последовательность длины 2 n -1, найдите самую длинную серию нулей и вставьте еще один нуль.

Какое состояние возникает перед тем, как вы хотели бы получить состояние «все 0»? Какое состояние будет после всех 0?

Например, в 5-битном 00001 становится 10000, может быть удобно иметь между ними 00000.

Обычно логика следующего состояния XOR LSFR превращает одно в другое.

Вы должны обнаружить 00001 и переопределить логику, чтобы заставить 00000.

При нормальной логике LSFR состояние 00000 было бы постоянным, поэтому вам нужно переопределить его еще раз, чтобы принудительно установить 10000 после 00000. Вы можете либо обнаружить 00000, либо вспомнить, что вы принудительно использовали один цикл назад, поэтому вам нужно сделать другой форсировать этот цикл.

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

Один из способов получить все нули — это инвертировать один или все биты состояния, чтобы при любом чтении он видел все нулевое состояние, даже если состояние внутри LFSR никогда не переходит туда. Естественно, на его месте появится еще одно государство, которого сейчас нет.

То есть, если бы существовало простое решение, оно уже было бы частью установленного дизайна.