Как получить максимум числа в Simulink? - PullRequest
2 голосов
/ 19 мая 2011

Я строю модель, которая требует от меня найти максимум набора из 8 сигналов, а также найти индекс максимального значения.

Как я могу построить такую ​​модель в Simulink (библиотека Xilinx)?

Я предполагаю, что блок сравнения следует за блоком счетчика.Но почему-то я не могу понять все вместе.

Спасибо

1 Ответ

2 голосов
/ 19 мая 2011

Один способ, который делает все это параллельно:

Вам нужно построить дерево компараторов и мультиплексоров:

  • Начните с блока, который принимает два значения и дваиндексирует и передает индекс и значение большего.Один компаратор, 2 мукса на блок.
  • На первом уровне вашего дерева у вас есть 4 из этих блоков, подающих
    • на второй уровень 2 из этих блоков, результаты которого передаются в
      • последний блок, который производит ваши ответы

Это может быть передано по конвейеру, чтобы вы могли пролистывать данные через него так быстро, как вам нравится,Но он будет использовать изрядное количество ресурсов.Насколько широки ваши сигналы?Каждый компаратор равен 1 LUT4 на бит, а мультиплексирование 2: 1 равно 1 LUT4 на бит.

В качестве альтернативы вы используете счетчик для выбора каждого из ваших значений по очереди.Если оно больше текущего наибольшего, запишите значение в ваш «самый большой» регистр и запишите счетчик в регистр «самый большой индекс».Сбрасывайте «самый большой» регистр до наименьшего значения каждый раз, когда ваш счетчик сбрасывается.

Это займет столько тактов, сколько у вас будет сигнала (8 в вашем случае)

...