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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? 15_mvl7_functions.vhd

?? 乘法器
?? VHD
字號(hào):
--***************************************************************************
--              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;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久久久久| 国产一区二区三区精品视频| 精品免费日韩av| thepron国产精品| 日韩福利视频导航| 国产精品国产自产拍在线| 欧美性色黄大片| 国产 日韩 欧美大片| 亚洲欧美精品午睡沙发| 麻豆国产精品777777在线| 欧美色综合影院| 久久久久久久免费视频了| 日韩精品一二三四| 99久久伊人精品| 久久青草国产手机看片福利盒子| 国产精品国产自产拍高清av王其 | 狠狠色丁香婷综合久久| 日本福利一区二区| 亚洲最大的成人av| 91国产免费观看| 亚洲一区二区成人在线观看| 成人免费黄色在线| 一区二区三区精品视频| 一本色道亚洲精品aⅴ| 亚洲欧洲中文日韩久久av乱码| 99视频精品全部免费在线| 1000部国产精品成人观看| 波多野结衣在线一区| 国产精品水嫩水嫩| 懂色av中文一区二区三区| 日本午夜精品视频在线观看| 欧美美女网站色| 亚洲一区二区高清| 一本色道久久综合精品竹菊| 久久久久国产精品人| 韩国毛片一区二区三区| 国产精品久久久久aaaa樱花| 日韩女优毛片在线| 国产婷婷一区二区| 在线影视一区二区三区| 午夜不卡av在线| 亚洲国产一区二区a毛片| 亚洲欧洲日韩综合一区二区| 国产亚洲一本大道中文在线| 精品99999| 久久午夜免费电影| 久久久久成人黄色影片| 2020国产精品| 国产精品视频一二| 国产精品每日更新| 国产精品传媒入口麻豆| 亚洲视频 欧洲视频| 亚洲品质自拍视频| 亚洲成人av电影在线| 99精品久久久久久| 91丝袜美女网| 在线亚洲免费视频| 欧美日韩国产不卡| 日韩欧美在线网站| 2024国产精品| 国产精品人成在线观看免费 | 欧美二区三区91| 91精品综合久久久久久| 日韩欧美激情四射| 国产色产综合产在线视频| 中文在线一区二区| 亚洲无线码一区二区三区| 日韩精品视频网| 久久不见久久见免费视频7| 国产精品一线二线三线精华| 成a人片亚洲日本久久| 91看片淫黄大片一级| 欧美日韩视频在线第一区| 欧美一区二区在线视频| 精品国产乱码久久| 17c精品麻豆一区二区免费| 一区二区三区小说| 精品一区二区在线播放| av一区二区不卡| 在线不卡欧美精品一区二区三区| 欧美白人最猛性xxxxx69交| 国产精品久久久久婷婷二区次| 亚洲自拍偷拍av| 国产一区二区在线影院| 日本久久一区二区| 精品久久久久av影院| 国产精品沙发午睡系列990531| 亚洲国产另类精品专区| 国产一区二区三区在线观看免费视频| av激情成人网| 欧美一区二区在线免费观看| 国产精品理伦片| 蜜桃精品在线观看| 91在线码无精品| 欧美精品一区二区不卡| 亚洲免费资源在线播放| 裸体健美xxxx欧美裸体表演| 99精品国产一区二区三区不卡| 日韩视频在线你懂得| 综合亚洲深深色噜噜狠狠网站| 秋霞午夜av一区二区三区| 成人精品一区二区三区四区 | 欧美高清在线一区二区| 天天色图综合网| av一区二区三区黑人| 欧美精品一区二区三区高清aⅴ| 91蜜桃在线观看| 欧美精品一区二区高清在线观看| 亚洲国产va精品久久久不卡综合| 国产99一区视频免费| 91精品国产一区二区三区| 亚洲欧美乱综合| 国产91精品一区二区麻豆亚洲| 日韩欧美激情四射| 亚洲高清久久久| 色综合天天性综合| 欧美国产日产图区| 国产一区二区三区| 欧美一区二区黄色| 五月天欧美精品| 欧美调教femdomvk| 亚洲欧美国产77777| 丁香网亚洲国际| 国产午夜精品一区二区三区嫩草| 日本亚洲天堂网| 91精品欧美一区二区三区综合在| 亚洲一区二区四区蜜桃| 99久久婷婷国产综合精品| 国产清纯美女被跳蛋高潮一区二区久久w| 日韩av午夜在线观看| 欧美亚洲高清一区| 亚洲夂夂婷婷色拍ww47| 色999日韩国产欧美一区二区| 亚洲视频一区在线| 一本一本久久a久久精品综合麻豆| 国产精品二区一区二区aⅴ污介绍| 国产在线精品免费av| 精品国产亚洲一区二区三区在线观看| 久久爱www久久做| 日韩欧美色电影| 激情亚洲综合在线| 国产日韩av一区二区| 国产成人自拍高清视频在线免费播放| 精品久久久久久久久久久院品网| 狠狠狠色丁香婷婷综合激情| 亚洲精品一区二区三区99| 国产美女精品在线| 久久久99久久精品欧美| 国产一区欧美日韩| 国产精品乱子久久久久| jvid福利写真一区二区三区| 亚洲欧洲成人精品av97| 日本精品裸体写真集在线观看 | 国产真实乱对白精彩久久| 久久久久9999亚洲精品| 国产精品资源在线看| 国产日产欧产精品推荐色| 波多野结衣中文字幕一区 | 成人av综合在线| 亚洲精品日韩专区silk| 欧美性大战久久久| 麻豆精品蜜桃视频网站| 久久久亚洲高清| 91亚洲男人天堂| 日韩精品久久久久久| 久久亚洲综合av| 色综合视频在线观看| 日韩av成人高清| 日本一区二区三区四区在线视频 | 91福利资源站| 奇米影视一区二区三区| 久久精品视频免费观看| 成人黄色在线网站| 亚洲成人中文在线| av一区二区不卡| 亚洲婷婷国产精品电影人久久| 成人污污视频在线观看| 成人午夜电影小说| 精品一区精品二区高清| 免费人成在线不卡| 精品一区二区在线看| 国产成人夜色高潮福利影视| 国产成人免费视频网站| 国内成人自拍视频| 亚洲福利视频三区| 亚洲五月六月丁香激情| 蜜桃久久精品一区二区| 国产精品综合一区二区三区| 国产成人精品午夜视频免费| 国产宾馆实践打屁股91| 99久久久久久| 色久综合一二码| 欧美成人一级视频| 欧美精品一区二区久久久| 亚洲国产精品成人综合| 视频精品一区二区| 国产很黄免费观看久久| 91色|porny| 久久一留热品黄| 五月天一区二区|