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

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

?? 15_mvl7_functions.vhd

?? 該源碼為用VHDL(硬件描述語(yǔ)言)編寫的100個(gè)實(shí)例的源代碼
?? 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九九99精品| 一区二区三区国产| 久久综合九色综合欧美亚洲| 色噜噜狠狠成人网p站| 国内精品写真在线观看| 亚洲小说春色综合另类电影| 久久免费视频一区| 91精品国产综合久久久久久漫画| 国产精品综合在线视频| 日韩黄色一级片| 悠悠色在线精品| 欧美国产日韩一二三区| 精品美女一区二区三区| 欧美日韩一区二区欧美激情| 不卡一卡二卡三乱码免费网站| 精品影视av免费| 日本欧美一区二区| 亚洲福利一二三区| 亚洲欧美日韩精品久久久久| 中文字幕国产一区二区| 2020国产精品久久精品美国| 91.成人天堂一区| 精品视频在线免费观看| 色综合久久久网| 成人av资源在线| 国产精品自拍一区| 国产一区不卡视频| 狠狠色综合日日| 久久精品理论片| 老司机午夜精品99久久| 免费观看一级特黄欧美大片| 日韩影院免费视频| 天天av天天翘天天综合网 | 午夜精品久久久久| 亚洲最新视频在线观看| 亚洲黄色小视频| 亚洲黄网站在线观看| 一区二区欧美精品| 亚洲成a人在线观看| 亚洲大尺度视频在线观看| 一区二区三区四区视频精品免费| 1000精品久久久久久久久| 国产精品久久久久久久午夜片 | 色成人在线视频| 色综合久久中文综合久久97| 一本一道综合狠狠老| 在线观看一区二区精品视频| 在线精品视频小说1| 在线看不卡av| 欧美一级搡bbbb搡bbbb| 日韩精品一区二区三区swag | 成人丝袜高跟foot| 成人av在线电影| 色综合一个色综合| 欧美日韩中文另类| 欧美一级片在线观看| 欧美mv日韩mv亚洲| 欧美极品xxx| 亚洲欧美色一区| 日韩av一级片| 国产精品123区| 99久久久免费精品国产一区二区| 色嗨嗨av一区二区三区| 欧美乱妇一区二区三区不卡视频| 日韩一级免费观看| 国产色一区二区| 亚洲一区二区三区不卡国产欧美| 三级久久三级久久| 国产成人激情av| 日本道精品一区二区三区| 91精品国产美女浴室洗澡无遮挡| 久久久久成人黄色影片| 亚洲精品国产视频| 美女视频一区在线观看| 成人一区二区三区在线观看| 在线免费观看不卡av| 欧美刺激午夜性久久久久久久| 国产精品久久毛片| 日韩中文字幕1| 成人在线视频一区二区| 337p亚洲精品色噜噜狠狠| 国产肉丝袜一区二区| 亚洲宅男天堂在线观看无病毒| 久久97超碰色| 色婷婷激情久久| 国产三级精品三级| 日韩精品色哟哟| 成人毛片在线观看| 日韩视频免费直播| 亚洲免费高清视频在线| 国内精品久久久久影院一蜜桃| 91久久香蕉国产日韩欧美9色| 亚洲精品在线免费播放| 亚洲精品国产精品乱码不99| 国产精品亚洲一区二区三区妖精 | 久久国产精品99久久久久久老狼| 99精品欧美一区二区三区小说| 精品久久久久久久久久久院品网| 亚洲日本在线a| 国产美女主播视频一区| 欧美日韩国产首页| 亚洲欧美精品午睡沙发| 国产精品影视在线观看| 欧美一区二区三区视频在线| 亚洲麻豆国产自偷在线| 国产精品99久| 日韩欧美国产系列| 亚洲成人激情社区| 91网页版在线| 中文字幕的久久| 久久99久久精品| 欧美久久一区二区| 亚洲一二三四区| 色综合久久久久综合99| 欧美激情在线观看视频免费| 麻豆成人免费电影| 欧美久久一二三四区| 亚洲综合另类小说| 成人av电影在线观看| 国产日韩欧美激情| 国产精品一区二区久久不卡| 日韩视频在线观看一区二区| 婷婷久久综合九色综合伊人色| 91视频一区二区| 成人欧美一区二区三区白人| 国产激情偷乱视频一区二区三区| 精品国产免费一区二区三区香蕉| 日本伊人色综合网| 911国产精品| 日本欧美韩国一区三区| 欧美巨大另类极品videosbest| 亚洲高清不卡在线| 欧美日韩精品三区| 亚洲成a人片在线不卡一二三区 | 成人白浆超碰人人人人| 欧美高清在线一区| 成人激情免费视频| 国产精品久久毛片av大全日韩| 成人99免费视频| 亚洲蜜臀av乱码久久精品| 91小视频在线免费看| 一区二区久久久久久| 欧美日韩高清在线播放| 日韩中文欧美在线| 欧美刺激午夜性久久久久久久| 国内一区二区视频| 日本一区二区三区国色天香| 99热在这里有精品免费| 亚洲你懂的在线视频| 91成人国产精品| 丝瓜av网站精品一区二区| 精品人在线二区三区| 国产乱码精品一区二区三区忘忧草 | 久久精品一二三| 不卡视频在线观看| 亚洲精品成a人| 欧美揉bbbbb揉bbbbb| 麻豆精品国产91久久久久久| 久久综合九色综合久久久精品综合| 国产精品一二二区| 亚洲免费视频中文字幕| 欧美日韩精品电影| 久久国产三级精品| 国产精品色婷婷久久58| 色综合色综合色综合| 午夜精品免费在线观看| 久久亚洲捆绑美女| 91亚洲精品久久久蜜桃网站 | 欧美一级视频精品观看| 国产乱码精品一区二区三区忘忧草 | 日韩成人av影视| 久久综合九色综合97婷婷女人| 波多野结衣中文一区| 亚洲成a人片综合在线| 日韩欧美国产1| 不卡视频在线看| 天堂午夜影视日韩欧美一区二区| 久久老女人爱爱| 欧美在线观看你懂的| 久久精品国内一区二区三区| 国产精品成人一区二区艾草 | 1024成人网色www| 91精品国产免费久久综合| jlzzjlzz欧美大全| 五月婷婷综合网| 国产精品美女久久久久久久网站| 欧美视频中文一区二区三区在线观看| 麻豆精品一区二区综合av| 国产精品久久久久aaaa樱花| 5858s免费视频成人| www.欧美日韩| 毛片不卡一区二区| 亚洲精品成人少妇| 欧美激情中文不卡| 日韩一区二区三区观看| 色一情一乱一乱一91av| 国产伦精一区二区三区| 亚洲va国产天堂va久久en|