EDAboard.com | EDAboard.eu | EDAboard.de | EDAboard.co.uk | RTV forum PL | NewsGroups PL

sfixed in generics

elektroda.net NewsGroups Forum Index - VHDL Language - sfixed in generics

Paul
Guest

Thu Jul 08, 2010 1:27 pm   



Hi,

in the example attached I did try to parametrize my fir filter (direct
form I second order structure) internal signals. Modelsim complains on
it and I have no idea why and how to fix it. Anyway, the idea behind
should be clear.

Thanks,
Olaf


library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

library floatfixlib;
use floatfixlib.math_utility_pkg.all; -- ieee_proposed for VHDL-93 version
use floatfixlib.fixed_pkg.all; -- ieee_proposed for compatibility version

entity df1tsos is

generic(
numerator: sfixed := sfixed(16 downto -14); -- [-2 2)
denominator: sfixed := sfixed(16 downto -14); -- [-2 2)
numerator_state: sfixed := sfixed(16 downto -12); -- [-8 Cool
denominator_state: sfixed := sfixed(16 downto -12) -- [-8 Cool
);

port (
clk : in std_ulogic;
clk_en : in std_ulogic;
reset : in std_ulogic;
input : in sfixed(16 downto -14); -- [-2 2)
output : out sfixed(16 downto -14) -- [-2 2)
);

end entity df1tsos;


architecture rtl of df1tsos is

subtype numerator_type is sfixed range numerator'high downto
numerator'low;

begin


end architecture rtl;

Tricky
Guest

Thu Jul 08, 2010 4:48 pm   



On 8 July, 13:27, Paul <P...@noreply.com> wrote:
Quote:
Hi,

in the example attached I did try to parametrize my fir filter (direct
form I second order structure) internal signals. Modelsim complains on
it and I have no idea why and how to fix it. Anyway, the idea behind
should be clear.

Thanks,
Olaf

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

library floatfixlib;
use floatfixlib.math_utility_pkg.all; -- ieee_proposed for VHDL-93 version
use floatfixlib.fixed_pkg.all; -- ieee_proposed for compatibility version

entity df1tsos is

  generic(
    numerator:          sfixed  := sfixed(16 downto -14);  -- [-2 2)
    denominator:        sfixed  := sfixed(16 downto -14);  -- [-2 2)
    numerator_state:    sfixed  := sfixed(16 downto -12);  -- [-8 Cool
    denominator_state:  sfixed  := sfixed(16 downto -12)   -- [-8 Cool
  );

  port (
    clk       : in  std_ulogic;
    clk_en    : in  std_ulogic;
    reset     : in  std_ulogic;
    input     : in  sfixed(16 downto -14);  -- [-2 2)
    output    : out sfixed(16 downto -14)   -- [-2 2)
  );

end entity df1tsos;

architecture rtl of df1tsos is

  subtype numerator_type is sfixed range numerator'high downto
numerator'low;

begin

end architecture rtl;

Generics are really constants. What you've done is try defined a load
of types as generics, which isnt allowed up to VHDL 2002. you would be
able to do it in VHDL 2008 (but not like you've done it), but its not
really supported by anyone in any detail yet. You'll have to change
the generics to things like:

generic (
numerator_high : integer := 16;
numerator_low : integer := -14;
....etc

elektroda.net NewsGroups Forum Index - VHDL Language - sfixed in generics

Arabic versionBulgarian versionCatalan versionCzech versionDanish versionGerman versionGreek versionEnglish versionSpanish versionFinnish versionFrench versionHindi versionCroatian versionIndonesian versionItalian versionHebrew versionJapanese versionKorean versionLithuanian versionLatvian versionDutch versionNorwegian versionPolish versionPortuguese versionRomanian versionRussian versionSlovak versionSlovenian versionSerbian versionSwedish versionTagalog versionUkrainian versionVietnamese versionChinese version
RTV map EDAboard.com map News map EDAboard.eu map EDAboard.de map EDAboard.co.uk map Opony