Перейти к содержанию
    

Выбор максимального значения из заданных параметров

Приветствую. Прошу совета в решении следующей задачки.

Имеется модуль с несколькими параметрами, количество параметров произвольное, необходимо выбрать максимальный из них по значению. 

 

module main
  #(
  parameter TW1 = 100,
  parameter TW2 = 80,
  parameter TW3 = 8,
  parameter TW4 = 534
  )(
  output 	a,
  output 	b,
  output	c,
  input		d,
  input		e);

endmodule

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

13 minutes ago, Dantist2k17 said:

Имеется модуль с несколькими параметрами, количество параметров произвольное, необходимо выбрать максимальный из них по значению. 

И в чем вы тут видите сложность? 

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, RobFPGA said:

Приветствую!

И в чем вы тут видите сложность? 

Удачи! Rob.

Я не вижу вариантов кроме банального сравнения каждого с каждым.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 minutes ago, Dantist2k17 said:

Я не вижу вариантов кроме банального сравнения каждого с каждым.

а их и нет) был бы массив параметров, тогда можно было бы что-то сделать. а так, в ручную перебирать)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

1 minute ago, Dantist2k17 said:

Я не вижу вариантов кроме банального сравнения каждого с каждым.

:shok:    :scratch_one-s_head: "...каждого с каждым..."? :suicide2:

`define MAX(a,b)  ((a)>(b) ? (a) : (b))  

localparam MAX_VAL = `MAX(`MAX(val_a , val_b), val_c) .......;

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 minutes ago, RobFPGA said:

Приветствую!

:shok:    :scratch_one-s_head: "...каждого с каждым..."? :suicide2:

`define MAX(a,b)  ((a)>(b) ? (a) : (b))  

localparam MAX_VAL = `MAX(`MAX(val_a , val_b), val_c) .......;

Удачи! Rob.

Спокойствие, спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

32 minutes ago, des00 said:

а их и нет) был бы массив параметров, тогда можно было бы что-то сделать. а так, в ручную перебирать)

Ну так сделать его  несложно  - localparam int PAR_ARRAY [ ] = '{TW1 , TW2, ...};  или сразу localparam MAX_VAR = max_v( '{TW1 , TW2, ...} );

А уж функцию  max_v можно по разному  описать в зависимости от требуемого языка (V/SV) и синтезатора/симулятора.

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 2/3/2020 at 3:38 PM, Dantist2k17 said:

Я не вижу вариантов кроме банального сравнения каждого с каждым.

Это "пузырьковый" метод. У него есть конвейерная модификация для одновременного поиска в группе из N чисел, когда-то использовал его для обнаружения медианы.

Есть также метод одновременного поиска в группе из N чисел, который применяют в ассоциативных вычислителях. Выбор варианта зависит от требуемой скорости и размера ПЛИС. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 minutes ago, Serhiy_UA said:

Это "пузырьковый" метод. У него есть конвейерная модификация для одновременного поиска в группе из N чисел, когда-то использовал его для обнаружения медианы.

Есть также метод одновременного поиска в группе из N чисел, который применяют в ассоциативных вычислителях. Выбор варианта зависит от требуемой скорости и размера ПЛИС. 

При чем тут скорость и размер ПЛИС )))))

Речь то идет о параметрах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

38 minutes ago, Realking said:

При чем тут скорость и размер ПЛИС )))))

Речь то идет о параметрах.

Может и так.

я его понял так, как понял. Вот его фраза, где уже нет и слова о параметрах.

"Я не вижу вариантов кроме банального сравнения каждого с каждым."

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Serhiy_UA сказал:

Может кто-то и правильно понял о чем думал ТС

Да все, кто в теме, поняли ТС ПРАВИЛЬНО, еще с его первого поста, где он привел код на Verilog-е.  И Вам вместо пустопорожней болтовни и графоманства достаточно было просто признать, что Вы блеснули своими знаниями несколько не в тему. Ну или просто промолчать:) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...