T
Tricky
Im trying to do some fixed point math using the fixed point package (I
thought Id try and avoid all the ballache of using numeric_std for
once!). I get the following error from quartus:
Error (10346): VHDL error at fixed_pkg_c.vhdl(4780): formal port or
parameter "size_res" must have actual or default value
Error (10346): VHDL error at fixed_pkg_c.vhdl(4782): formal port or
parameter "size_res2" must have actual or default value
Error (10657): VHDL Subprogram error at test_build.vhd(56): failed to
elaborate call to subprogram "sfixed_high"
Over the following line in my VHDL:
subtype mult_op_t is sfixed( sfixed_high(video, '*',
coeffs( coeffs'low(1), coeffs'low(2) ) )
downto
sfixed_low( video, '*',
coeffs( coeffs'low(1), coeffs'low(2) ) )
);
Am I missing something, or am I confusing quartus with all my existing
subtypes?
Heres all the type declarations and the signals used:
subtype filter_word_t is sfixed(11 downto -4);
subtype coeff_t is sfixed(1 downto -16);
type coeff_array_t is array(integer range <>, integer range <>) of
coeff_t;
In entity:
video : in filter_word_t;
coeffs : in coeff_array_t(0 to 2, 0 to 2)
thought Id try and avoid all the ballache of using numeric_std for
once!). I get the following error from quartus:
Error (10346): VHDL error at fixed_pkg_c.vhdl(4780): formal port or
parameter "size_res" must have actual or default value
Error (10346): VHDL error at fixed_pkg_c.vhdl(4782): formal port or
parameter "size_res2" must have actual or default value
Error (10657): VHDL Subprogram error at test_build.vhd(56): failed to
elaborate call to subprogram "sfixed_high"
Over the following line in my VHDL:
subtype mult_op_t is sfixed( sfixed_high(video, '*',
coeffs( coeffs'low(1), coeffs'low(2) ) )
downto
sfixed_low( video, '*',
coeffs( coeffs'low(1), coeffs'low(2) ) )
);
Am I missing something, or am I confusing quartus with all my existing
subtypes?
Heres all the type declarations and the signals used:
subtype filter_word_t is sfixed(11 downto -4);
subtype coeff_t is sfixed(1 downto -16);
type coeff_array_t is array(integer range <>, integer range <>) of
coeff_t;
In entity:
video : in filter_word_t;
coeffs : in coeff_array_t(0 to 2, 0 to 2)