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

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

?? 7_mvl7_functions.vhd

?? 該源碼為用VHDL(硬件描述語言)編寫的100個實例的源代碼
?? 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;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本成人在线不卡视频| 日韩黄色免费电影| 日韩一区二区三区四区| av电影天堂一区二区在线 | 亚洲综合丁香婷婷六月香| 久久蜜桃一区二区| 91 com成人网| 97久久精品人人做人人爽| 国产高清成人在线| 乱中年女人伦av一区二区| 一区二区三区日韩| 国产精品久久久久久户外露出| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 成人深夜在线观看| 精品一区二区免费| 日韩中文字幕麻豆| 一区二区三区在线观看视频| 欧美激情一区二区三区蜜桃视频| 精品国精品自拍自在线| 91精品国产全国免费观看| 欧美日韩中文字幕一区二区| 色综合一区二区三区| 成人丝袜高跟foot| 国产凹凸在线观看一区二区| 韩日av一区二区| 麻豆国产欧美日韩综合精品二区| 亚洲h精品动漫在线观看| 亚洲综合清纯丝袜自拍| 亚洲免费色视频| 亚洲情趣在线观看| 1000精品久久久久久久久| 中文字幕一区二区日韩精品绯色| 国产精品久线观看视频| 国产精品久久久久久一区二区三区| 国产欧美一区二区精品性| 久久久噜噜噜久久人人看 | 日产欧产美韩系列久久99| 日韩国产成人精品| 日本不卡视频在线观看| 奇米一区二区三区av| 男男视频亚洲欧美| 久久99久国产精品黄毛片色诱| 久久99精品国产麻豆婷婷| 麻豆91免费观看| 国内精品国产三级国产a久久| 国产在线精品不卡| 国产精品1区二区.| 丁香六月综合激情| 色婷婷久久一区二区三区麻豆| 欧美专区亚洲专区| 91精品国产入口在线| 精品国产精品一区二区夜夜嗨| 久久综合久久鬼色中文字| 国产视频一区在线播放| 中文字幕一区二区三区四区 | 日韩一区二区三区电影| www国产亚洲精品久久麻豆| 国产欧美日韩三级| 亚洲品质自拍视频网站| 天堂一区二区在线| 久久不见久久见免费视频7| 国产成人综合精品三级| 色偷偷一区二区三区| 欧美一区二区久久| 国产精品无遮挡| 悠悠色在线精品| 美女视频免费一区| 不卡视频免费播放| 欧美精品aⅴ在线视频| 久久久亚洲国产美女国产盗摄 | 99视频国产精品| 欧美疯狂性受xxxxx喷水图片| 欧美成人乱码一区二区三区| 国产精品久久久久久久岛一牛影视 | 国产高清成人在线| 91国偷自产一区二区三区观看| 制服丝袜中文字幕亚洲| 国产日韩欧美精品一区| 亚洲在线视频一区| 国产精品99久久久久久似苏梦涵 | 中文字幕中文字幕在线一区| 日韩影院免费视频| 成人性生交大片免费看中文| 欧美日韩国产a| 国产精品色噜噜| 日本特黄久久久高潮| 99久久伊人久久99| 欧美一区2区视频在线观看| 中文字幕一区日韩精品欧美| 日韩高清国产一区在线| 大美女一区二区三区| 91精品国产综合久久福利| 中文字幕中文在线不卡住| 毛片av一区二区| 91视频91自| 久久日韩精品一区二区五区| 亚洲大片精品永久免费| av不卡免费在线观看| 精品剧情v国产在线观看在线| 亚洲免费观看高清在线观看| 国产福利精品导航| 欧美一区二区大片| 亚洲成人在线免费| 91丨九色丨黑人外教| 久久久777精品电影网影网| 午夜av一区二区三区| 91亚洲国产成人精品一区二区三| 2021久久国产精品不只是精品| 亚洲成a人片在线不卡一二三区| 成人ar影院免费观看视频| 精品成人一区二区三区| 日韩av不卡一区二区| 欧美日韩国产一级| 一区二区三区波多野结衣在线观看| 成人午夜电影久久影院| 久久久综合精品| 国产在线一区观看| 欧美大片在线观看一区二区| 日韩黄色小视频| 欧美军同video69gay| 亚洲线精品一区二区三区| 91免费视频大全| 综合久久国产九一剧情麻豆| 国产成人亚洲综合a∨婷婷图片| 欧美mv日韩mv国产网站| 看电影不卡的网站| 欧美一区永久视频免费观看| 五月天视频一区| 欧美性色综合网| 一个色在线综合| 欧美视频一区二区| 午夜精品久久久久久久| 欧美自拍偷拍午夜视频| 亚洲第一电影网| 欧美精品欧美精品系列| 日本vs亚洲vs韩国一区三区 | 亚洲一区二区三区视频在线播放| 92精品国产成人观看免费| 亚洲乱码中文字幕| 欧美三日本三级三级在线播放| 亚洲国产视频一区| 欧美乱妇20p| 久久国产视频网| 精品国产百合女同互慰| 国产一区二区三区香蕉| 日本一区二区三区在线观看| 成人小视频在线观看| 亚洲日本成人在线观看| 在线亚洲高清视频| 午夜精品久久久久影视| 精品国产三级a在线观看| 国产91高潮流白浆在线麻豆| 中文字幕在线一区| 在线免费精品视频| 日韩av电影免费观看高清完整版 | 国产精品初高中害羞小美女文| 色综合久久天天| 五月激情六月综合| 精品乱码亚洲一区二区不卡| 高清国产一区二区| 亚洲一区二区三区激情| 日韩欧美国产成人一区二区| 国产99一区视频免费| 亚洲欧美经典视频| 日韩丝袜情趣美女图片| 成人精品视频一区二区三区尤物| 亚洲综合在线电影| 精品久久久久久久人人人人传媒 | 成人免费观看视频| 亚洲一级不卡视频| 日韩精品一区二区三区视频播放| 成人综合在线视频| 五月天亚洲精品| 日本一区二区三区四区 | 久久久久久麻豆| 色综合久久综合| 激情六月婷婷久久| 一区二区三区中文字幕精品精品 | 亚洲视频一区二区免费在线观看| 4438亚洲最大| 成人高清伦理免费影院在线观看| 亚洲第一福利视频在线| 国产日产欧美一区二区三区| 欧美日韩视频在线第一区| 国产丶欧美丶日本不卡视频| 婷婷久久综合九色综合伊人色| 日本一区二区免费在线 | 亚洲欧美日韩国产成人精品影院| 51精品秘密在线观看| 91在线精品一区二区三区| 蜜臀av国产精品久久久久 | 国产99精品视频| 青椒成人免费视频| 一区av在线播放| 久久精品人人做| 欧美一区二区三区免费大片| 91在线视频在线| 国产成人亚洲综合a∨婷婷图片| 日韩电影在线一区二区三区| 亚洲另类中文字|