[an error occurred while processing this directive]
|
Как такое описать на верилоге.
У модуля есть сигнал в размер которого зависит от параметра этого модуля,
но связь между параметром и размером нельзя вычислить с помощью простой формулы,
зато это можно вынести в функцию (по крайней мере в VHDL).
package some_pack is
function some_func(length : natural) return natural;
end some_pack;
package body some_pack is
function some_func(length : natural) return natural is
variable result : natural;
begin
-- ... some kind of algorithm
return result;
end some_func;
end some_pack;
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use work.some_pack.all;
entity some_unit is
generic(
some_param : natural:=12
);
port(
some_signal : in std_logic_vector(some_func(some_param) - 1 downto 0)
);
end some_unit;
E-mail: info@telesys.ru