Сопоставление с образцом в Simulink - PullRequest
2 голосов
/ 27 мая 2011

Я пытаюсь построить модель для сравнения входных данных для конкретной битовой комбинации.

Например, если мне нужно проверить входной шаблон 1110, я строю модель с 3 элементами задержки, получаю входные данные и объединяю их, а затем использую компаратор для сравнения с 14 (шестнадцатеричным E).

В настоящее время мне нужно выполнить сопоставление с образцом для 128 бит. Исходя из предыдущего примера, я могу идеально построить аналогичную модель, используя 127 элементов задержки и сравнить блоки.

Но я бы хотел знать, есть ли оптимальный и "лучший" способ сделать это.

Будем рады некоторым предложениям в этом отношении.

Если вам интересно, вот небольшая модель, которую я построил для извлечения 8 битов: Extact 8 Bits

Concat 8 bits

1 Ответ

1 голос
/ 27 мая 2011

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

Вы можете сделать что-то другое, если шаблон (например) представляет собой длинную строку1 с, 0 с (создайте счетчики для подсчета этих длин и отметьте совпадение, если счетчики достигают правильных значений)

Я думаю, вы могли бы немного упростить диаграмму (возможно), если бы создали блок с z ^-1 и конкат внутри.Затем, когда вы передаете вход, вы можете отложить его и согласовать с выходом предыдущего этапа (также переданным).

В качестве еще одного отступления, в VHDL это тривиально описывается как регистр сдвига (одна строкаcode) и средство сравнения (еще одна строка кода).

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

...