亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hdli.vhd

?? 實現USB接口功能的VHDL和verilog完整源代碼
?? VHD
?? 第 1 頁 / 共 2 頁
字號:
--------------------------------------------------------------------------------
--
-- Package for use with HDLi RTL code
--
--
-- Created 9/10/95 VLSI Technology Inc.
--
-- Functions defined in this package have been verified in the supported
-- HDL synthesizers to parse without errors.  Some of the functions can
-- be rewritten to produce faster simulations but at the expense of problems
-- when parsed in a HDL synthesizer.  The simulation improvements have been
-- analyzed and the gains were proven to be minor.
--
-- 11/04/98   Changed all "*extend" functions to use an alias for the
--            parameter.  This allows vectors of the type (m downto n)
--            where n is not zero.
-- 04/28/98   Added HDLi_Reduce_And
-- 04/14/97   Added HDLi_SUmult 
-- 02/12/96   Changed HDLi_Smult to return A'length + B'length bits
-- 09/10/96   Added compare routines
--
--------------------------------------------------------------------------------

library IEEE;
use IEEE.STD_LOGIC_1164.all;

package HDLI is
        
    function HDLi_Reduce_Xor (INPUT: Std_Logic_Vector) return Std_Logic;
    function HDLi_Reduce_And (INPUT: Std_Logic_Vector) return Std_Logic;
    function HDLi_SLVtoI (X: std_logic_vector) return Natural;
    function HDLi_SLVtoI (X: std_logic) return Natural;

    function HDLi_ZeroExtend(X:Std_Logic_Vector; LENGTH : positive) return Std_Logic_Vector;
    function HDLi_ZeroExtend(X:Std_Logic; LENGTH : positive) return Std_Logic_Vector;

    function HDLi_OneExtend(X:Std_Logic_Vector; LENGTH : positive) return Std_Logic_Vector;
    function HDLi_OneExtend(X:Std_Logic; LENGTH : positive) return Std_Logic_Vector;

    function HDLi_SignExtend (X: Std_Logic_Vector; LENGTH : positive) return Std_Logic_Vector;
    function HDLi_SignExtend (X: Std_Logic; LENGTH : positive) return Std_Logic_Vector;
    function HDLi_2sComp_Extend (X: Std_Logic_vector; LENGTH : positive) return Std_Logic_Vector;
    function HDLi_2sComp_Extend (X: Std_Logic; LENGTH : positive) return Std_Logic_Vector;


    function "+"(A, B:Std_Logic_Vector) return Std_Logic_Vector;
    function "+"(A:std_Logic_Vector; B:Std_Logic) return Std_Logic_Vector;
    function "+"(A:std_logic; B:Std_Logic_Vector) return Std_Logic_Vector;

    function "-"(A, B:Std_Logic_Vector) return Std_Logic_Vector;
    function "-"(A:std_Logic_Vector; B:Std_Logic) return Std_Logic_Vector;
    function "-"(A:std_logic; B:Std_Logic_Vector) return Std_Logic_Vector;
    function "-"(A:std_logic_Vector) return Std_Logic_Vector;

    function HDLi_SUmult(A, B: Std_Logic_Vector) return Std_Logic_Vector;
    function HDLi_Smult(A, B: Std_Logic_Vector) return Std_Logic_Vector;
    function HDLi_Umult(A, B: Std_Logic_Vector) return Std_Logic_Vector;

    function HDLi_GreyIncr(A: Std_Logic_Vector) return Std_Logic_Vector;

    function HDLi_AltB_Signed(A, B: Std_Logic_Vector) return Std_Logic;
    function HDLi_AleB_Signed(A, B: Std_Logic_Vector) return Std_Logic;
    function HDLi_AgtB_Signed(A, B: Std_Logic_Vector) return Std_Logic;
    function HDLi_AgeB_Signed(A, B: Std_Logic_Vector) return Std_Logic;

    function HDLi_AltB_UnSigned(A, B: Std_Logic_Vector) return Std_Logic;
    function HDLi_AleB_UnSigned(A, B: Std_Logic_Vector) return Std_Logic;
    function HDLi_AgtB_UnSigned(A, B: Std_Logic_Vector) return Std_Logic;
    function HDLi_AgeB_UnSigned(A, B: Std_Logic_Vector) return Std_Logic;

    function HDLi_AeqB(A, B: Std_Logic_Vector) return Std_Logic;

end HDLI;

-----------------------------------------------------------------------
-- HDLI package body --
------------------------------

package body HDLI is


    function HDLi_Reduce_Xor (INPUT: Std_Logic_Vector) return Std_Logic is
        variable RESULT : Std_Logic;
    begin
      RESULT := '0';
      for j in INPUT'range loop
        RESULT := INPUT(j) xor RESULT;
        exit when RESULT = 'X';
      end loop;
      return RESULT;
    end;

    function HDLi_Reduce_And (INPUT: Std_Logic_Vector) return Std_Logic is
        variable RESULT : Std_Logic;
    begin
      RESULT := '1';
      for j in INPUT'range loop
        RESULT := INPUT(j) and RESULT;
        exit when RESULT = 'X';
      end loop;
      return RESULT;
    end;
  
    function HDLi_SLVtoI (X: std_logic_vector) return Natural is
          variable RESULT: integer;
    begin
      RESULT := 0;
      for I in X'range loop
        if X(I) = '1' then
          RESULT := 2*RESULT+1;
        else
          RESULT := 2*RESULT;
        end if;
      end loop;
      return RESULT;
    end;

    function HDLi_SLVtoI (X: std_logic) return Natural is
          variable RESULT: integer;
    begin
        if X = '1' then
          RESULT := 1;
        else
          RESULT := 0;
        end if;
      return RESULT;
    end;
    
    function Max(LEFT, RIGHT : integer) return integer is
    begin
        if left > right then
            return left;
        else
            return right;
        end if;
    end;



    function HDLi_OneExtend (X: Std_Logic_Vector; LENGTH : positive) return Std_Logic_Vector is
        variable result : Std_Logic_Vector (LENGTH-1 downto 0);
	constant XLEN : integer := X'length;
	alias X1: Std_Logic_Vector(XLEN-1 downto 0) is x;
    begin

        for I in result'range loop
            if (I < XLEN) then
              result(I) := X1(I);
            else
              result(I) := '1';
            end if;
        end loop;

        return (result);

    end;


    function HDLi_OneExtend (X: Std_Logic; LENGTH : positive) return Std_Logic_Vector is
        variable result : Std_Logic_Vector (LENGTH-1 downto 0);
    begin

        for I in result'range loop
            if (I < 1) then
              result(I) := x;
            else
              result(I) := '1';
            end if;
        end loop;

        return (result);

    end;


    function HDLi_ZeroExtend (X: Std_Logic_Vector; LENGTH : positive) return Std_Logic_Vector is
        variable result : Std_Logic_Vector (LENGTH-1 downto 0);
	constant XLEN : integer := X'length;
	alias X1: Std_Logic_Vector(XLEN-1 downto 0) is x;
    begin

        for I in result'range loop
            if (I < XLEN) then
              result(I) := X1(I);
            else
              result(I) := '0';
            end if;
        end loop;

        return (result);

    end;

    function HDLi_ZeroExtend (X: Std_Logic; LENGTH : positive) return Std_Logic_Vector is
        variable result : Std_Logic_Vector (LENGTH-1 downto 0);
    begin

        for I in result'range loop
            if (I < 1) then
              result(I) := x;
            else
              result(I) := '0';
            end if;
        end loop;

        return (result);

    end;

    function HDLi_SignExtend (X: Std_Logic_Vector; LENGTH : positive) return Std_Logic_Vector is
        variable result : Std_Logic_Vector (LENGTH-1 downto 0);
	constant XLEN : integer := X'length;
	alias X1: Std_Logic_Vector(XLEN-1 downto 0) is x;
    begin

        for I in result'range loop
            if (I < XLEN) then
              result(I) := X1(I);
            else
              result(I) := X1(X'length-1);
            end if;
        end loop;

        return (result);

    end;

    function HDLi_SignExtend (X: Std_Logic; LENGTH : positive) return Std_Logic_Vector is
        variable result : Std_Logic_Vector (LENGTH-1 downto 0);
    begin

        for I in result'range loop
            if (I < 1) then
              result(I) := x;
            else
              result(I) := x;
            end if;
        end loop;

        return (result);

    end;

    function HDLi_2sComp_Extend (X: Std_Logic_Vector; LENGTH : positive) return Std_Logic_Vector is
        variable result : Std_Logic_Vector (LENGTH-1 downto 0);
        variable temp : Std_Logic_Vector (LENGTH-1 downto 0);
	constant XLEN : integer := X'length;
	alias X1: Std_Logic_Vector(XLEN-1 downto 0) is X;
    begin

        for I in temp'range loop
            if (I < XLEN) then
              temp(I) := not(X1(I));
            else
              temp(I) := '0';
            end if;
        end loop;

        result := temp + '1';

        return (result);

    end;

    function HDLi_2sComp_Extend (X: Std_Logic; LENGTH : positive) return Std_Logic_Vector is
        variable result : Std_Logic_Vector (LENGTH-1 downto 0);
        variable temp : Std_Logic_Vector (LENGTH-1 downto 0);
    begin

        for I in temp'range loop
            if (I < 1) then
              temp(I) := not(x);
            else
              temp(I) := '0';
            end if;
        end loop;

        result := temp + '1';

        return (result);

    end;


 
------------------------------------------------------------------------
    function "+" (A, B: Std_Logic_Vector) return Std_Logic_Vector is
        constant LEN : integer := max(A'length,B'length);
        variable RESULT,left,right : Std_Logic_Vector( LEN-1 downto 0);
        variable carry: std_logic;
        variable lt, rt: std_logic;

    begin
        left := HDLi_ZeroExtend(A,result'length);
        right := HDLi_ZeroExtend(B,result'length);
        carry := '0';

        for I in RESULT'reverse_range loop
            lt := left(I);
            rt := right(I);
            RESULT(I) := lt xor rt xor carry;
            carry := (lt and rt) or (lt and carry) or (rt and carry);
        end loop;
        return RESULT;
    end;


    function "+" (A: std_logic_Vector; B: std_logic)
    return std_logic_Vector is
        variable RESULT: std_logic_Vector(A'length-1 downto 0);
    begin
        result := A;
        if not (B='1' or B='H') then return result; end if;
        for I in RESULT'reverse_range loop
            result(i) := not A(i);
            exit when result(i)='1';
        end loop;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品小仙女| 日韩午夜中文字幕| 制服丝袜中文字幕一区| 中文字幕精品在线不卡| 亚洲chinese男男1069| 国产精品99久久久久久有的能看| 在线视频国内自拍亚洲视频| 国产清纯白嫩初高生在线观看91 | 亚洲福利国产精品| 成人午夜激情影院| 久久精品欧美日韩| 免费在线看一区| 欧美精品亚洲一区二区在线播放| 中文字幕一区免费在线观看| 国产一区二区剧情av在线| 欧美一区二区三区视频免费| 亚洲综合激情网| 91在线视频免费观看| 日本一区二区三区免费乱视频| 久久激五月天综合精品| 日韩一区二区三区四区| 日韩精品电影在线观看| 在线播放欧美女士性生活| 午夜视频在线观看一区二区 | 亚洲国产日韩a在线播放| 99re热这里只有精品视频| 中文字幕av一区二区三区免费看 | 亚洲美女偷拍久久| 91蝌蚪国产九色| 一区二区三区四区在线播放| 色综合网色综合| 中文字幕日韩一区| 91免费国产在线观看| 亚洲女人的天堂| 欧美日韩一区小说| 日本亚洲视频在线| 精品国产乱码91久久久久久网站| 看电视剧不卡顿的网站| 精品日韩在线一区| 国产乱码一区二区三区| 国产日韩视频一区二区三区| 成人av在线一区二区| 1000部国产精品成人观看| 97精品电影院| 亚洲国产精品久久不卡毛片| 欧美精品在线视频| 伦理电影国产精品| 中文字幕不卡在线播放| 欧美中文一区二区三区| 日韩av电影免费观看高清完整版 | 亚洲品质自拍视频网站| 在线观看av一区二区| 热久久免费视频| 久久久亚洲综合| 不卡的av中国片| 五月天激情综合| 国产视频亚洲色图| 在线观看欧美黄色| 精品一区精品二区高清| 中文幕一区二区三区久久蜜桃| 91一区二区三区在线观看| 日韩精彩视频在线观看| 国产精品热久久久久夜色精品三区| 91福利视频网站| 国产精一品亚洲二区在线视频| 亚洲免费电影在线| 精品福利在线导航| 91福利资源站| 国产在线日韩欧美| 亚洲激情第一区| 国产亚洲欧美日韩日本| 在线免费观看日本欧美| 国产乱国产乱300精品| 亚洲精品第一国产综合野| 精品成人在线观看| 欧洲精品在线观看| 国产成人av一区二区三区在线观看| 伊人性伊人情综合网| 国产亚洲短视频| 欧美美女一区二区在线观看| a4yy欧美一区二区三区| 九色porny丨国产精品| 艳妇臀荡乳欲伦亚洲一区| 国产欧美精品国产国产专区| 7777精品伊人久久久大香线蕉的| 成人高清视频在线观看| 美美哒免费高清在线观看视频一区二区| 国产精品网友自拍| 久久久午夜电影| 日韩精品一区二区三区在线播放| 91成人在线精品| 97se亚洲国产综合自在线不卡 | 国产欧美一区二区精品秋霞影院| 欧美日本一区二区| 欧美中文字幕亚洲一区二区va在线 | 久久精品免费在线观看| 精品免费日韩av| 日韩一区二区在线看| 欧美日韩不卡视频| 欧美三日本三级三级在线播放| www.综合网.com| 成人h精品动漫一区二区三区| 国产一区二区精品久久91| 精品一区二区三区不卡| 日本亚洲三级在线| 蜜桃视频在线观看一区| 舔着乳尖日韩一区| 五月天亚洲婷婷| 蜜桃在线一区二区三区| 日本三级亚洲精品| 蜜桃视频免费观看一区| 青青草97国产精品免费观看无弹窗版| 有码一区二区三区| 亚洲午夜久久久久久久久电影院| 亚洲色图清纯唯美| 亚洲综合一区二区精品导航| 亚洲一区二三区| 午夜久久福利影院| 蜜桃精品在线观看| 欧美aaa在线| 国产激情视频一区二区在线观看| 国产乱码字幕精品高清av| 国产69精品久久久久777| 懂色av中文字幕一区二区三区 | 中文字幕日韩av资源站| 中文字幕综合网| 亚洲成在线观看| 青青草伊人久久| 粉嫩在线一区二区三区视频| 91美女视频网站| 欧美日韩国产另类一区| 日韩欧美久久久| 欧美国产精品中文字幕| 亚洲欧美精品午睡沙发| 日韩av一级电影| 成人国产在线观看| 欧美日韩国产小视频| 欧美tickling挠脚心丨vk| 欧美韩日一区二区三区四区| 亚洲伊人色欲综合网| 麻豆国产欧美日韩综合精品二区 | 国产麻豆欧美日韩一区| aa级大片欧美| 日韩区在线观看| 欧美国产日韩亚洲一区| 一区二区三区四区不卡在线| 毛片一区二区三区| 91麻豆自制传媒国产之光| 欧美日韩视频在线观看一区二区三区| 日韩精品一区二区三区视频| 亚洲欧洲在线观看av| 日韩国产在线一| 91小视频免费看| 精品理论电影在线| 一区二区三区欧美激情| 国产在线视频一区二区三区| 91麻豆精品国产91久久久使用方法| 精品国产sm最大网站| 亚洲美女屁股眼交| 国产麻豆精品在线| 7799精品视频| 亚洲女人小视频在线观看| 国产在线视频一区二区| 在线电影国产精品| 亚洲欧洲av一区二区三区久久| 亚洲成人激情自拍| 91蜜桃婷婷狠狠久久综合9色| 精品国内二区三区| 午夜欧美大尺度福利影院在线看| proumb性欧美在线观看| 精品乱人伦小说| 视频一区二区三区在线| 色视频成人在线观看免| 国产欧美一区二区精品婷婷 | 精品国产免费久久| 婷婷国产v国产偷v亚洲高清| 91免费精品国自产拍在线不卡| 久久免费电影网| 精品一区二区免费看| 欧美三级乱人伦电影| 日韩理论片在线| 99热国产精品| 国产精品每日更新在线播放网址| 狠狠色综合日日| 精品美女在线观看| 另类的小说在线视频另类成人小视频在线 | 久久综合色鬼综合色| 蜜臀av国产精品久久久久| 欧美精品久久久久久久多人混战| 亚洲少妇中出一区| 国产99精品国产| 中文字幕免费一区| 成人av网站免费观看| 中文字幕精品一区 | 国产美女娇喘av呻吟久久| 日韩色在线观看| 麻豆91在线播放免费| 欧美不卡在线视频| 国产一区二区三区四| 国产午夜精品一区二区|