اطلاعیه

Collapse
No announcement yet.

مفهوم علامت منفی در شماره بیت چیه؟

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مفهوم علامت منفی در شماره بیت چیه؟

    سلام
    میخواستم بدونم توی عبارت زیر اینکه بیتها از منفی یک شروع میشن و بیت آخرش هم باز منفیه مفهوم خاصی داره؟
    output_re(-1 downto 1 - data_width) <= re(-1 downto 1 - data_width);
    و
    سوال دوم اینکه درباره نوع داده sfixed در vhdl اگه چیزی میدونید ممنون میشم برام بذارید.

    اصل برنامه اینه:
    library ieee_proposed;
    use ieee_proposed.fixed_float_types.all;
    use ieee_proposed.fixed_pkg.all;

    entity cmul is

    generic (

    -- same data width is used for the real and imaginary component
    data_width : integer range 0 to 128 := 16

    );

    port (

    -- input a
    input_a_re : in sfixed (0 downto 1 - data_width);
    input_a_im : in sfixed (0 downto 1 - data_width);

    -- input b
    input_b_re : in sfixed (0 downto 1 - data_width);
    input_b_im : in sfixed (0 downto 1 - data_width);

    -- output
    output_re : out sfixed(0 downto 1 - data_width);
    output_im : out sfixed(0 downto 1 - data_width)

    );

    end cmul;

    -- Function Implementation 0
    architecture FIMP_0 of cmul is

    -- internal signals with short names
    -- input a = a + b * j
    -- input b = x + y * j
    signal a, b, x, y : sfixed (0 downto 1 - data_width);

    -- output = re + im * j
    -- cropping is required
    signal re, im : sfixed(2 downto 2 - 2 * data_width);

    begin

    -- input a = a + b * j
    a <= input_a_re;
    b <= input_a_im;

    -- input b = x + y * j
    x <= input_b_re;
    y <= input_b_im;

    -- output real part
    -- a * x - b * y
    re <= (a * x) - (b * y);

    -- output imaginary part
    -- a * y + b * x
    im <= (a * y) + (b * x);

    -- crop the outputs to fit with data width
    output_re(0) <= re(2);
    output_re(-1 downto 1 - data_width) <= re(-1 downto 1 - data_width);

    output_im(0) <= im(2);
    output_im(-1 downto 1 - data_width) <= im(-1 downto 1 - data_width);

    end FIMP_0;
لطفا صبر کنید...
X