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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 44_mvl7_functions.vhd

?? VHDL的實例加解說,對初學(xué)習(xí)者用處很大的!
?? VHD
字號:
--***************************************************************************
--              VHDL BIT_VECTOR Operations for MVL7 type
--                                                                         
--         Copyright (c) 1990   UCI CADLAB, Dept. of ICS                  
--         Author :  Sanjiv Narayan (narayan@ics.uci.edu)                
--
--         Updated 7/8/91 by Sanjiv and Frank 
-- 
--         updated by Champaka Ramachandran 16/10/92
--
--***************************************************************************
use work.TYPES.all;

package MVL7_functions is
   function SHL( v2 :  MVL7_VECTOR ;  fill :  MVL7 ) return MVL7_VECTOR;
   function SHL0( v2 :  MVL7_VECTOR ;  dist :  INTEGER ) return MVL7_VECTOR;
   function SHL1( v2 :  MVL7_VECTOR ;  dist :  INTEGER ) return MVL7_VECTOR;
   function SHR( v2 :  MVL7_VECTOR ;  fill :  MVL7 ) return MVL7_VECTOR;
   function SHR0( v2 :  MVL7_VECTOR ;  dist :  INTEGER ) return MVL7_VECTOR;
   function SHR1( v2 :  MVL7_VECTOR ;  dist :  INTEGER ) return MVL7_VECTOR;
   function ROTR( v2 :  MVL7_VECTOR ;  dist :  INTEGER ) return MVL7_VECTOR;
   function ROTL( v2 :  MVL7_VECTOR ;  dist :  INTEGER ) return MVL7_VECTOR;
   function I2B( Number :  integer ;  len :  integer ) return MVL7_VECTOR;
   function B2I( v2 :  MVL7_VECTOR ) return integer;
   function COMP( v2 :  MVL7_VECTOR ) return MVL7_VECTOR;
   function TWOs_COMP( v2 :  MVL7_VECTOR ) return MVL7_VECTOR;
   function ODD_PARITY( v1 :  MVL7_VECTOR ) return MVL7;
   function EVEN_PARITY( v1 :  MVL7_VECTOR ) return MVL7;
   function REVERSE( v2 :  MVL7_VECTOR ) return MVL7_VECTOR;
   function SUM( v2 :  MVL7_VECTOR ) return integer;
   function PAD( v :  MVL7_VECTOR ;  width :  integer ) return MVL7_VECTOR;
   function DEC( x :  MVL7_VECTOR ) return MVL7_VECTOR;
   function INC( x :  MVL7_VECTOR ) return MVL7_VECTOR;
   function CARRY_ADD( x1 :  MVL7_VECTOR ;  x2 :  MVL7_VECTOR ) return MVL7_VECTOR;
   function "+" ( x1 :  MVL7_VECTOR ;  x2 :  MVL7_VECTOR ) return MVL7_VECTOR;
   function "-"( x1 :  MVL7_VECTOR ;  x2 :  MVL7_VECTOR ) return MVL7_VECTOR;
   function "*" ( x1 :  MVL7_VECTOR ;  x2 :  MVL7_VECTOR ) return MVL7_VECTOR;

-- truth table for "WiredOr" function
   constant tbl_WIREDOR: MVL7_TABLE := 
--  -----------------------------------------------
--  |  X    0    1    Z    W    L    H |          |
--  -----------------------------------------------
    (('X', 'X', '1', 'X', 'X', 'L', 'H'),  -- | X |
     ('X', '0', '1', '0', '0', 'L', 'H'),  -- | 0 |
     ('1', '1', '1', '1', '1', '1', '1'),  -- | 1 |
     ('X', '0', '1', 'Z', 'W', 'L', 'H'),  -- | Z |
     ('X', '0', '1', 'W', 'W', 'W', 'W'),  -- | W |
     ('L', 'L', '1', 'L', 'W', 'L', 'W'),  -- | L |
     ('H', 'H', '1', 'H', 'W', 'W', 'H')); -- | H |

--  function WiredOr (V: MVL7_VECTOR) return MVL7;

end;

package body MVL7_functions is

--***************************************************************************
   function SHL( v2 :  MVL7_VECTOR ;  fill :  MVL7 ) return MVL7_VECTOR is
      variable v1: MVL7_VECTOR (v2'high downto v2'low);
      variable shift_val: MVL7_VECTOR (v1'high downto v1'low);
      variable I: integer;
   begin
      v1 := v2;
      for I in v1'high downto (v1'low + 1) loop
         shift_val(I) := v1(I - 1);
      end loop ;
      shift_val(v1'low) := fill;
      return shift_val;
   end;

--***************************************************************************
   function SHL0( v2 :  MVL7_VECTOR ;  dist :  INTEGER ) return MVL7_VECTOR is
      variable v1: MVL7_VECTOR (v2'high downto v2'low);
      variable I: INTEGER;
   begin
      v1 := v2;
      for I in 1 to dist loop
         v1 := SHL(v1,'0');
      end loop ;
      return v1;
   end;

--***************************************************************************
   function SHL1( v2 :  MVL7_VECTOR ;  dist :  INTEGER ) return MVL7_VECTOR is
      variable v1: MVL7_VECTOR (v2'high downto v2'low);
      variable I: INTEGER;
   begin
      v1 := v2;
      for I in 1 to dist loop
         v1 := SHL(v1,'1');
      end loop ;
      return v1;
   end;

--***************************************************************************
   function SHR( v2 :  MVL7_VECTOR ;  fill :  MVL7 ) return MVL7_VECTOR is
      variable v1: MVL7_VECTOR (v2'high downto v2'low);
      variable shift_val: MVL7_VECTOR (v1'high downto v1'low);
   begin
      v1 := v2;
      for I in v1'low to (v1'high - 1) loop
         shift_val(I) := v1(I + 1);
      end loop ;
      shift_val(v1'high) := fill;
      return shift_val;
   end;

--***************************************************************************
   function SHR0( v2 :  MVL7_VECTOR ;  dist :  INTEGER ) return MVL7_VECTOR is
      variable v1: MVL7_VECTOR (v2'high downto v2'low);
      variable I: INTEGER;
   begin
      v1 := v2;
      for I in 1 to dist loop
         v1 := SHR(v1,'0');
      end loop ;
      return v1;
   end;

--***************************************************************************
   function SHR1( v2 :  MVL7_VECTOR ;  dist :  INTEGER ) return MVL7_VECTOR is
      variable v1: MVL7_VECTOR (v2'high downto v2'low);
      variable I: INTEGER;
   begin
      v1 := v2;
      for I in 1 to dist loop
         v1 := SHR(v1,'1');
      end loop ;
      return v1;
   end;

--***************************************************************************
   function ROTR( v2 :  MVL7_VECTOR ;  dist :  INTEGER ) return MVL7_VECTOR is
      variable v1: MVL7_VECTOR (v2'high downto v2'low);
      variable I: INTEGER;
   begin
      v1 := v2;
      for i in 1 to dist loop
         v1 := SHR(v1,v1(v1'low));
      end loop ;
      return v1;
   end;

--***************************************************************************
   function ROTL( v2 :  MVL7_VECTOR ;  dist :  INTEGER ) return MVL7_VECTOR is
      variable v1: MVL7_VECTOR (v2'high downto v2'low);
      variable I: INTEGER;
   begin
      v1 := v2;
      for i in 1 to dist loop
         v1 := SHL(v1,v1(v1'high));
      end loop ;
      return v1;
   end;

--***************************************************************************
   function I2B( Number :  integer ;  len :  integer ) return MVL7_VECTOR is
      variable temp: MVL7_VECTOR (len - 1 downto 0);
      variable NUM: integer:=0;
      variable QUOTIENT: integer:=0;
   begin
      QUOTIENT := Number;
      for I in 0 to len - 1 loop
         NUM := 0;
         while QUOTIENT > 1 loop
            QUOTIENT := QUOTIENT - 2;
            NUM := NUM + 1;
         end loop ;
         case QUOTIENT is
            when 1 =>
               temp(I) := '1';
            when 0 =>
               temp(I) := '0';
            when others =>
               null;
         end case;
         QUOTIENT := NUM;
      end loop ;
      return temp;
   end;

--***************************************************************************
   function B2I( v2 :  MVL7_VECTOR ) return integer is
      variable v1: MVL7_VECTOR (v2'high downto v2'low);
      variable SUM: integer:=0;
   begin
      v1 := v2;
      for N in v1'low to v1'high loop
         if v1(N) = '1' then
            SUM := SUM + (2 ** (N - v1'low));
         end if;
      end loop ;
      return SUM;
   end;

--***************************************************************************
   function COMP( v2 :  MVL7_VECTOR ) return MVL7_VECTOR is
      variable v1: MVL7_VECTOR (v2'high downto v2'low);
      variable temp: MVL7_VECTOR (v1'high downto v1'low);
      variable I: INTEGER;
   begin
      v1 := v2;
      for I in v1'low to v1'high loop
         if v1(I) = '0' then
            temp(i) := '1';
         else
            temp(i) := '0';
         end if;
      end loop ;
      return temp;
   end;

--***************************************************************************
   function TWOs_COMP( v2 :  MVL7_VECTOR ) return MVL7_VECTOR is
      variable v1: MVL7_VECTOR (v2'high downto v2'low);
      variable temp: MVL7_VECTOR (v1'high downto v1'low);
   begin
      v1 := v2;
      temp := comp(v1);
      temp := INC(temp);
      return temp;
   end;

--***************************************************************************
   function "-" ( x1 :  MVL7_VECTOR ;  x2 :  MVL7_VECTOR ) return MVL7_VECTOR is
      variable v1: MVL7_VECTOR (x1'high - x1'low downto 0);
      variable v2: MVL7_VECTOR (x2'high - x2'low downto 0);
      variable SUM: MVL7_VECTOR (v1'high downto v1'low);
   begin
      v1 := x1;
      v2 := x2;
      assert v1'length = v2'length 
         report "MVL7 vector -: operands of unequal lengths" severity FAILURE;
      SUM := I2B(B2I(v1) - B2I(v2),SUM'length);
      return (SUM);
   end;

--***************************************************************************
   function DEC( x :  MVL7_VECTOR ) return MVL7_VECTOR is
      variable v: MVL7_VECTOR (x'high downto x'low);
   begin
      v := x;
      return I2B(B2I(v) - 1,v'length);
   end;

--***************************************************************************
   function CARRY_ADD( x1: MVL7_VECTOR ; x2: MVL7_VECTOR ) return MVL7_VECTOR is
      variable v1: MVL7_VECTOR (x1'high - x1'low downto 0);
      variable v2: MVL7_VECTOR (x2'high - x2'low downto 0);
      variable SUM: MVL7_VECTOR (x1'high - x1'low + 1 downto 0);
      -- + 1 is for carry
   begin
      v1 := x1;
      v2 := x2;
      assert v1'length = v2'length 
         report "MVL7vector carry add:operands of unequal lengths" 
         severity FAILURE;
      SUM := I2B(B2I(v1) + B2I(v2),SUM'length);
      return (SUM);
   end;

--***************************************************************************
   function "+" ( x1 :  MVL7_VECTOR ;  x2 :  MVL7_VECTOR ) return MVL7_VECTOR is
      variable v1: MVL7_VECTOR (x1'high - x1'low downto 0);
      variable v2: MVL7_VECTOR (x2'high - x2'low downto 0);
      variable SUM: MVL7_VECTOR (v1'high downto v1'low);
   begin
      v1 := x1;
      v2 := x2;
      assert v1'length = v2'length 
         report "MVL7 vector +: operands of unequal lengths" severity FAILURE;
      SUM := I2B(B2I(v1) + B2I(v2),SUM'length);
      return (SUM);
   end;

--***************************************************************************
   function INC( x :  MVL7_VECTOR ) return MVL7_VECTOR is
      variable v: MVL7_VECTOR (x'high downto x'low);
   begin
      v := x;
      return I2B(B2I(v) + 1,v'length);
   end;

--***************************************************************************
   function ODD_PARITY( v1 :  MVL7_VECTOR ) return MVL7 is
   begin
      if ((SUM(v1) mod 2) = 1) then
         return '0';
      else
         return '1';
      end if;
   end;

--***************************************************************************
   function EVEN_PARITY( v1 :  MVL7_VECTOR ) return MVL7 is
   begin
      if ((SUM(v1) mod 2) = 1) then
         return '1';
      else
         return '0';
      end if;
   end;

--***************************************************************************
   function REVERSE( v2 :  MVL7_VECTOR ) return MVL7_VECTOR is
      variable v1: MVL7_VECTOR (v2'high downto v2'low);
      variable temp: MVL7_VECTOR (v1'high downto v1'low);
   begin
      v1 := v2;
      for I in v1'high downto v1'low loop
         temp(I) := v1(v1'high - I + v1'low);
      end loop ;
      return temp;
   end;

--***************************************************************************
   function SUM( v2 :  MVL7_VECTOR ) return integer is
      variable v1: MVL7_VECTOR (v2'high downto v2'low);
      variable count: integer:=0;
   begin
      v1 := v2;
      for I in v1'high downto v1'low loop
         if (v1(I) = '1') then
            count := count + 1;
         end if;
      end loop ;
      return count;
   end;

--***************************************************************************
   function PAD( v :  MVL7_VECTOR ;  width :  integer ) return MVL7_VECTOR is
   begin
      return I2B(B2I(v),width);
   end;

--***************************************************************************
   function "*" ( x1 :  MVL7_VECTOR ;  x2 :  MVL7_VECTOR ) return MVL7_VECTOR is
      variable v1: MVL7_VECTOR (x1'high - x1'low downto 0);
      variable v2: MVL7_VECTOR (x2'high - x2'low downto 0);
      variable PROD: MVL7_VECTOR (v1'high downto v1'low);
   begin
      v1 := x1;
      v2 := x2;
      assert v1'length = v2'length 
         report "MVL7 vector MUL: operands of unequal lengths" severity FAILURE;
      PROD := I2B(B2I(v1) * B2I(v2),PROD'length);
      return (PROD);
   end;

--***************************************************************************

function WiredOr (V: MVL7_VECTOR) return MVL7 is
  variable result: MVL7;
begin
  result := 'Z';
  for i in V'range loop
    result := tbl_WIREDOr(result, V(i));
    exit when result = '1';
  end loop;
  return result;
end WiredOr;
--***************************************************************************
end;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本到不卡精品视频在线观看| 国产精品福利一区二区三区| 国产精品久久网站| 全部av―极品视觉盛宴亚洲| 99精品欧美一区| 精品黑人一区二区三区久久| 亚洲成人av一区二区| 不卡一区二区中文字幕| 欧美白人最猛性xxxxx69交| 亚洲精品中文字幕乱码三区| 国产乱色国产精品免费视频| 欧美一区二区三区在线电影| 亚洲午夜久久久久久久久电影院| 97久久久精品综合88久久| 国产日韩av一区| 久草在线在线精品观看| 欧美一区二区三区系列电影| 一区二区三区免费| 色一情一乱一乱一91av| 国产精品久久久久影院色老大| 国产成人午夜视频| 久久久久国产精品人| 国内久久精品视频| 日韩一区二区免费高清| 青青草原综合久久大伊人精品| 欧美日韩精品一区二区在线播放| 亚洲高清不卡在线| 色狠狠色噜噜噜综合网| 日韩久久一区二区| 色偷偷久久一区二区三区| 亚洲天堂免费在线观看视频| 一本久道中文字幕精品亚洲嫩| 中文字幕人成不卡一区| 9i看片成人免费高清| 国产精品久久99| 99精品热视频| 亚洲成人1区2区| 欧美日韩久久不卡| 麻豆国产精品一区二区三区| 欧美精品99久久久**| 青青青伊人色综合久久| 精品久久久久久无| 国产69精品久久久久毛片| 国产精品高清亚洲| 色猫猫国产区一区二在线视频| 亚洲综合图片区| 日韩一区二区三| 高清久久久久久| 亚洲女人小视频在线观看| 欧美性猛交xxxx乱大交退制版| 亚洲成人资源在线| 日韩精品在线一区| 国产91清纯白嫩初高中在线观看| 亚洲欧美激情在线| 777精品伊人久久久久大香线蕉| 裸体一区二区三区| 国产精品日韩成人| 欧美亚洲一区二区在线观看| 久久电影网站中文字幕| 亚洲欧洲色图综合| 欧美丰满嫩嫩电影| 国产成人精品一区二| 夜夜嗨av一区二区三区中文字幕| 91精品欧美福利在线观看| 国产乱一区二区| 亚洲伊人伊色伊影伊综合网| 精品乱人伦小说| 99精品一区二区| 青青草国产成人av片免费| 亚洲国产精品v| 欧美日韩成人一区| 成人黄页在线观看| 免费成人在线网站| 中文字幕一区二区三区四区不卡 | 正在播放亚洲一区| 国产福利精品一区| 日韩精品三区四区| 日韩精品一区二区在线观看| 懂色av一区二区夜夜嗨| 亚洲主播在线播放| 国产婷婷色一区二区三区| 91久久一区二区| 高清在线观看日韩| 日韩电影在线一区二区| 亚洲女人的天堂| 国产欧美一区二区在线| 91精品国产一区二区| 一本到不卡精品视频在线观看| 国产精品一区二区你懂的| 午夜精品久久久久久久99水蜜桃 | 欧美嫩在线观看| 成人app软件下载大全免费| 精品中文字幕一区二区| 图片区日韩欧美亚洲| 亚洲欧美日韩电影| 在线观看av一区二区| 青娱乐精品视频| 亚洲一区二三区| 亚洲品质自拍视频网站| 国产精品三级av在线播放| 国产亚洲欧洲一区高清在线观看| 欧美精品一区视频| 欧美精品乱人伦久久久久久| 在线视频中文字幕一区二区| 91污在线观看| 99re热视频精品| 91免费版pro下载短视频| 成人午夜视频网站| 不卡的av在线播放| 成人激情动漫在线观看| 成人精品高清在线| 99久久久国产精品| 91老师片黄在线观看| 9久草视频在线视频精品| 99久久精品99国产精品| 成人高清视频在线观看| 成人av网在线| 色呦呦国产精品| 欧美日韩国产三级| 91麻豆精品国产91久久久久久 | 中文久久乱码一区二区| 日本一区二区免费在线观看视频 | 日韩在线一二三区| 麻豆精品一二三| 国产成人一区在线| 99国内精品久久| 欧美日韩亚洲国产综合| 欧美美女黄视频| 精品免费日韩av| 日本一区二区三区久久久久久久久不| 亚洲国产精品av| 一区二区三区丝袜| 麻豆一区二区99久久久久| 精品无人码麻豆乱码1区2区| 国产suv精品一区二区6| 欧美制服丝袜第一页| 91精品国产色综合久久| 久久久久国产精品麻豆| 亚洲免费电影在线| 免费观看久久久4p| 不卡免费追剧大全电视剧网站| 欧美日韩一级片网站| 久久综合九色综合久久久精品综合 | 亚洲最大的成人av| 男女激情视频一区| 成人亚洲一区二区一| 欧美最新大片在线看| 日韩欧美国产1| 亚洲免费观看高清完整版在线 | 国产精品久久久一本精品| 一级中文字幕一区二区| 久久99精品国产麻豆婷婷| 波多野结衣亚洲| 日韩一区二区在线播放| 亚洲乱码国产乱码精品精小说| 日韩av在线播放中文字幕| 国产在线一区二区| 欧美亚洲禁片免费| 国产午夜一区二区三区| 午夜精品久久久久影视| 成人免费视频一区| 欧美大片免费久久精品三p| 亚洲图片激情小说| 国产麻豆成人精品| 欧美日韩美女一区二区| 国产精品成人一区二区艾草| 麻豆91免费观看| 欧美日韩亚洲丝袜制服| 亚洲丝袜美腿综合| 国产成人免费视频一区| 欧美一级片免费看| 亚洲激情男女视频| 丁香桃色午夜亚洲一区二区三区| 91麻豆精品久久久久蜜臀| 亚洲天堂a在线| 国产.欧美.日韩| 久久综合九色综合97_久久久| 午夜视频在线观看一区二区| 99久久亚洲一区二区三区青草| 2023国产精品自拍| 美女视频黄a大片欧美| 欧美日韩国产成人在线91 | 国产精品久久国产精麻豆99网站| 另类小说图片综合网| 911精品国产一区二区在线| 亚洲精选一二三| 色狠狠一区二区| 亚洲精品国产精品乱码不99| 丁香六月综合激情| 久久久久久毛片| 国产成人在线免费| 久久久不卡网国产精品一区| 国产一区二区三区电影在线观看| 精品国产乱码久久久久久1区2区| 秋霞av亚洲一区二区三| 日韩一区二区三区视频在线| 久久精品国产第一区二区三区| 欧美一级xxx| 国内外成人在线视频| 国产午夜精品久久|