Jump to content

    

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

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

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

 

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

 

 

 

Share this post


Link to post
Share on other sites

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

13 minutes ago, Dantist2k17 said:

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

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

Удачи! Rob.

Share this post


Link to post
Share on other sites
1 minute ago, RobFPGA said:

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

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

Удачи! Rob.

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

Share this post


Link to post
Share on other sites
9 minutes ago, Dantist2k17 said:

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

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

Share this post


Link to post
Share on other sites

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

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.

Share this post


Link to post
Share on other sites
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.

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

Share this post


Link to post
Share on other sites

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

32 minutes ago, des00 said:

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

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

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

Удачи! Rob.

Share this post


Link to post
Share on other sites
On 2/3/2020 at 3:38 PM, Dantist2k17 said:

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

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

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

Share this post


Link to post
Share on other sites
10 minutes ago, Serhiy_UA said:

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

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

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

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

Share this post


Link to post
Share on other sites
38 minutes ago, Realking said:

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

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

Может и так.

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

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

 

Share this post


Link to post
Share on other sites
1 час назад, Serhiy_UA сказал:

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this