⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 numeric_std-body.vhdl

📁 vhdl集成电路设计软件.需要用gcc-4.0.2版本编译.
💻 VHDL
📖 第 1 页 / 共 5 页
字号:
          severity WARNING;      return FALSE;    end if;    R01 := TO_01(XR, 'X');    if (R01(R01'LEFT)='X') then      assert NO_WARNING          report "NUMERIC_STD.""<"": metavalue detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    if UNSIGNED_NUM_BITS(L) > R'LENGTH then return L < 0;    end if;    return UNSIGNED_LESS(TO_UNSIGNED(L, R01'LENGTH), R01);  end "<";  -- Id: C.10  function "<" (L: INTEGER; R: SIGNED) return BOOLEAN is    constant R_LEFT: INTEGER := R'LENGTH-1;    alias XR: SIGNED(R_LEFT downto 0) is R;    variable R01 : SIGNED(R_LEFT downto 0);  begin    if (R'LENGTH < 1) then      assert NO_WARNING          report "NUMERIC_STD.""<"": null argument detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    R01 := TO_01(XR, 'X');    if (R01(R01'LEFT)='X') then      assert NO_WARNING          report "NUMERIC_STD.""<"": metavalue detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    if SIGNED_NUM_BITS(L) > R'LENGTH then return L < 0;    end if;    return SIGNED_LESS(TO_SIGNED(L, R01'LENGTH), R01);  end "<";  -- Id: C.11  function "<" (L: UNSIGNED; R: NATURAL) return BOOLEAN is    constant L_LEFT: INTEGER := L'LENGTH-1;    alias XL: UNSIGNED(L_LEFT downto 0) is L;    variable L01 : UNSIGNED(L_LEFT downto 0);  begin    if (L'LENGTH < 1) then      assert NO_WARNING          report "NUMERIC_STD.""<"": null argument detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    L01 := TO_01(XL, 'X');    if (L01(L01'LEFT)='X') then      assert NO_WARNING          report "NUMERIC_STD.""<"": metavalue detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    if UNSIGNED_NUM_BITS(R) > L'LENGTH then return 0 < R;    end if;    return UNSIGNED_LESS(L01, TO_UNSIGNED(R, L01'LENGTH));  end "<";  -- Id: C.12  function "<" (L: SIGNED; R: INTEGER) return BOOLEAN is    constant L_LEFT: INTEGER := L'LENGTH-1;    alias XL: SIGNED(L_LEFT downto 0) is L;    variable L01 : SIGNED(L_LEFT downto 0);  begin    if (L'LENGTH < 1) then      assert NO_WARNING          report "NUMERIC_STD.""<"": null argument detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    L01 := TO_01(XL, 'X');    if (L01(L01'LEFT)='X') then      assert NO_WARNING          report "NUMERIC_STD.""<"": metavalue detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    if SIGNED_NUM_BITS(R) > L'LENGTH then return 0 < R;    end if;    return SIGNED_LESS(L01, TO_SIGNED(R, L01'LENGTH));  end "<";  --============================================================================  -- Id: C.13  function "<=" (L, R: UNSIGNED) return BOOLEAN is    constant L_LEFT: INTEGER := L'LENGTH-1;    constant R_LEFT: INTEGER := R'LENGTH-1;    alias XL: UNSIGNED(L_LEFT downto 0) is L;    alias XR: UNSIGNED(R_LEFT downto 0) is R;    constant SIZE: NATURAL := MAX(L'LENGTH, R'LENGTH);    variable L01 : UNSIGNED(L_LEFT downto 0);    variable R01 : UNSIGNED(R_LEFT downto 0);  begin    if ((L'LENGTH < 1) or (R'LENGTH < 1)) then      assert NO_WARNING          report "NUMERIC_STD.""<="": null argument detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    L01 := TO_01(XL, 'X');    R01 := TO_01(XR, 'X');    if ((L01(L01'LEFT)='X') or (R01(R01'LEFT)='X')) then      assert NO_WARNING          report "NUMERIC_STD.""<="": metavalue detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    return UNSIGNED_LESS_OR_EQUAL(RESIZE(L01, SIZE), RESIZE(R01, SIZE));  end "<=";  -- Id: C.14  function "<=" (L, R: SIGNED) return BOOLEAN is    constant L_LEFT: INTEGER := L'LENGTH-1;    constant R_LEFT: INTEGER := R'LENGTH-1;    alias XL: SIGNED(L_LEFT downto 0) is L;    alias XR: SIGNED(R_LEFT downto 0) is R;    constant SIZE: NATURAL := MAX(L'LENGTH, R'LENGTH);    variable L01 : SIGNED(L_LEFT downto 0);    variable R01 : SIGNED(R_LEFT downto 0);  begin    if ((L'LENGTH < 1) or (R'LENGTH < 1)) then      assert NO_WARNING          report "NUMERIC_STD.""<="": null argument detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    L01 := TO_01(XL, 'X');    R01 := TO_01(XR, 'X');    if ((L01(L01'LEFT)='X') or (R01(R01'LEFT)='X')) then      assert NO_WARNING          report "NUMERIC_STD.""<="": metavalue detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    return SIGNED_LESS_OR_EQUAL(RESIZE(L01, SIZE), RESIZE(R01, SIZE));  end "<=";  -- Id: C.15  function "<=" (L: NATURAL; R: UNSIGNED) return BOOLEAN is    constant R_LEFT: INTEGER := R'LENGTH-1;    alias XR: UNSIGNED(R_LEFT downto 0) is R;    variable R01 : UNSIGNED(R_LEFT downto 0);  begin    if (R'LENGTH < 1) then      assert NO_WARNING          report "NUMERIC_STD.""<="": null argument detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    R01 := TO_01(XR, 'X');    if (R01(R01'LEFT)='X') then      assert NO_WARNING          report "NUMERIC_STD.""<="": metavalue detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    if UNSIGNED_NUM_BITS(L) > R'LENGTH then return L < 0;    end if;    return UNSIGNED_LESS_OR_EQUAL(TO_UNSIGNED(L, R01'LENGTH), R01);  end "<=";  -- Id: C.16  function "<=" (L: INTEGER; R: SIGNED) return BOOLEAN is    constant R_LEFT: INTEGER := R'LENGTH-1;    alias XR: SIGNED(R_LEFT downto 0) is R;    variable R01 : SIGNED(R_LEFT downto 0);  begin    if (R'LENGTH < 1) then      assert NO_WARNING          report "NUMERIC_STD.""<="": null argument detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    R01 := TO_01(XR, 'X');    if (R01(R01'LEFT)='X') then      assert NO_WARNING          report "NUMERIC_STD.""<="": metavalue detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    if SIGNED_NUM_BITS(L) > R'LENGTH then return L < 0;    end if;    return SIGNED_LESS_OR_EQUAL(TO_SIGNED(L, R01'LENGTH), R01);  end "<=";  -- Id: C.17  function "<=" (L: UNSIGNED; R: NATURAL) return BOOLEAN is    constant L_LEFT: INTEGER := L'LENGTH-1;    alias XL: UNSIGNED(L_LEFT downto 0) is L;    variable L01 : UNSIGNED(L_LEFT downto 0);  begin    if (L_LEFT < 0) then      assert NO_WARNING          report "NUMERIC_STD.""<="": null argument detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    L01 := TO_01(XL, 'X');    if (L01(L01'LEFT)='X') then      assert NO_WARNING          report "NUMERIC_STD.""<="": metavalue detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    if UNSIGNED_NUM_BITS(R) > L'LENGTH then return 0 < R;    end if;    return UNSIGNED_LESS_OR_EQUAL(L01, TO_UNSIGNED(R, L01'LENGTH));  end "<=";  -- Id: C.18  function "<=" (L: SIGNED; R: INTEGER) return BOOLEAN is    constant L_LEFT: INTEGER := L'LENGTH-1;    alias XL: SIGNED(L_LEFT downto 0) is L;    variable L01 : SIGNED(L_LEFT downto 0);  begin    if (L_LEFT < 0) then      assert NO_WARNING          report "NUMERIC_STD.""<="": null argument detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    L01 := TO_01(XL, 'X');    if (L01(L01'LEFT)='X') then      assert NO_WARNING          report "NUMERIC_STD.""<="": metavalue detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    if SIGNED_NUM_BITS(R) > L'LENGTH then return 0 < R;    end if;    return SIGNED_LESS_OR_EQUAL(L01, TO_SIGNED(R, L01'LENGTH));  end "<=";  --============================================================================  -- Id: C.19  function ">=" (L, R: UNSIGNED) return BOOLEAN is    constant L_LEFT: INTEGER := L'LENGTH-1;    constant R_LEFT: INTEGER := R'LENGTH-1;    alias XL: UNSIGNED(L_LEFT downto 0) is L;    alias XR: UNSIGNED(R_LEFT downto 0) is R;    constant SIZE: NATURAL := MAX(L'LENGTH, R'LENGTH);    variable L01 : UNSIGNED(L_LEFT downto 0);    variable R01 : UNSIGNED(R_LEFT downto 0);  begin    if ((L'LENGTH < 1) or (R'LENGTH < 1)) then      assert NO_WARNING          report "NUMERIC_STD."">="": null argument detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    L01 := TO_01(XL, 'X');    R01 := TO_01(XR, 'X');    if ((L01(L01'LEFT)='X') or (R01(R01'LEFT)='X')) then      assert NO_WARNING          report "NUMERIC_STD."">="": metavalue detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    return not UNSIGNED_LESS(RESIZE(L01, SIZE), RESIZE(R01, SIZE));  end ">=";  -- Id: C.20  function ">=" (L, R: SIGNED) return BOOLEAN is    constant L_LEFT: INTEGER := L'LENGTH-1;    constant R_LEFT: INTEGER := R'LENGTH-1;    alias XL: SIGNED(L_LEFT downto 0) is L;    alias XR: SIGNED(R_LEFT downto 0) is R;    constant SIZE: NATURAL := MAX(L'LENGTH, R'LENGTH);    variable L01 : SIGNED(L_LEFT downto 0);    variable R01 : SIGNED(R_LEFT downto 0);  begin    if ((L'LENGTH < 1) or (R'LENGTH < 1)) then      assert NO_WARNING          report "NUMERIC_STD."">="": null argument detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    L01 := TO_01(XL, 'X');    R01 := TO_01(XR, 'X');    if ((L01(L01'LEFT)='X') or (R01(R01'LEFT)='X')) then      assert NO_WARNING          report "NUMERIC_STD."">="": metavalue detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    return not SIGNED_LESS(RESIZE(L01, SIZE), RESIZE(R01, SIZE));  end ">=";  -- Id: C.21  function ">=" (L: NATURAL; R: UNSIGNED) return BOOLEAN is    constant R_LEFT: INTEGER := R'LENGTH-1;    alias XR: UNSIGNED(R_LEFT downto 0) is R;    variable R01 : UNSIGNED(R_LEFT downto 0);  begin    if (R'LENGTH < 1) then      assert NO_WARNING          report "NUMERIC_STD."">="": null argument detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    R01 := TO_01(XR, 'X');    if (R01(R01'LEFT)='X') then      assert NO_WARNING          report "NUMERIC_STD."">="": metavalue detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    if UNSIGNED_NUM_BITS(L) > R'LENGTH then return L > 0;    end if;    return not UNSIGNED_LESS(TO_UNSIGNED(L, R01'LENGTH), R01);  end ">=";  -- Id: C.22  function ">=" (L: INTEGER; R: SIGNED) return BOOLEAN is    constant R_LEFT: INTEGER := R'LENGTH-1;    alias XR: SIGNED(R_LEFT downto 0) is R;    variable R01 : SIGNED(R_LEFT downto 0);  begin    if (R'LENGTH < 1) then      assert NO_WARNING          report "NUMERIC_STD."">="": null argument detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    R01 := TO_01(XR, 'X');    if (R01(R01'LEFT)='X') then      assert NO_WARNING          report "NUMERIC_STD."">="": metavalue detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    if SIGNED_NUM_BITS(L) > R'LENGTH then return L > 0;    end if;    return not SIGNED_LESS(TO_SIGNED(L, R01'LENGTH), R01);  end ">=";  -- Id: C.23  function ">=" (L: UNSIGNED; R: NATURAL) return BOOLEAN is    constant L_LEFT: INTEGER := L'LENGTH-1;    alias XL: UNSIGNED(L_LEFT downto 0) is L;    variable L01 : UNSIGNED(L_LEFT downto 0);  begin    if (L'LENGTH < 1) then      assert NO_WARNING          report "NUMERIC_STD."">="": null argument detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    L01 := TO_01(XL, 'X');    if (L01(L01'LEFT)='X') then      assert NO_WARNING          report "NUMERIC_STD."">="": metavalue detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    if UNSIGNED_NUM_BITS(R) > L'LENGTH then return 0 > R;    end if;    return not UNSIGNED_LESS(L01, TO_UNSIGNED(R, L01'LENGTH));  end ">=";  -- Id: C.24  function ">=" (L: SIGNED; R: INTEGER) return BOOLEAN is    constant L_LEFT: INTEGER := L'LENGTH-1;    alias XL: SIGNED(L_LEFT downto 0) is L;    variable L01 : SIGNED(L_LEFT downto 0);  begin    if (L'LENGTH < 1) then      assert NO_WARNING          report "NUMERIC_STD."">="": null argument detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    L01 := TO_01(XL, 'X');    if (L01(L01'LEFT)='X') then      assert NO_WARNING          report "NUMERIC_STD."">="": metavalue detected, returning FALSE"          severity WARNING;      return FALSE;    end if;    if SIGNED_NUM_BITS(R) > L'LENGTH then return 0 > R;    end if;    return not SIGNED_LESS(L01, TO_SIGNED(R, L01'LENGTH));  end ">=";  --============================================================================  -- Id: C.25  function "=" (L, R: UNSIGNED) return BOOLEAN is    constant L_LEFT: INTEGER := L'LENGTH-1;    constant R_LEFT: INTEGER := R'LENGTH-1;    alias XL: UNSIGNED(L_LEFT downto 0) is L;    alias XR: UNSIGNED(R_LEFT downto 0) is R;    constant SIZE: NATURAL := MAX(L'LENGTH, R'LENGTH);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -