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

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

?? 14_mvl7_functions.vhd

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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91福利国产成人精品照片| 欧美一区二区在线不卡| 久久精品国产精品亚洲红杏| **网站欧美大片在线观看| 日韩精品综合一本久道在线视频| 91首页免费视频| 国产成人精品三级麻豆| 日韩中文字幕区一区有砖一区 | 国产人久久人人人人爽| 欧美日韩国产片| 91片在线免费观看| 国产成人精品午夜视频免费 | 91视频在线观看免费| 亚洲精品伦理在线| 99国产麻豆精品| 国产一区二区主播在线| 日韩精品成人一区二区三区| 亚洲视频免费看| 国产精品嫩草影院com| 久久久久久久久久美女| 日韩一级大片在线| 777欧美精品| 欧美日韩国产一级片| 91黄色在线观看| 色综合天天在线| 99re8在线精品视频免费播放| 成人性生交大合| 豆国产96在线|亚洲| 国产精品亚洲第一| 国产永久精品大片wwwapp| 美女视频黄 久久| 日产欧产美韩系列久久99| 丝瓜av网站精品一区二区| 亚洲午夜一区二区三区| 亚洲一区在线观看视频| 亚洲大片精品永久免费| 亚洲一区视频在线| 婷婷国产在线综合| 天堂在线亚洲视频| 日韩电影在线免费| 麻豆精品国产传媒mv男同| 日本欧美一区二区| 激情综合网av| 国产成人av影院| www.欧美精品一二区| 一本久道久久综合中文字幕| 色综合视频在线观看| 欧洲一区在线观看| 欧美日产国产精品| 欧美哺乳videos| 久久久久久久电影| 1区2区3区国产精品| 亚洲精品乱码久久久久久| 亚洲综合自拍偷拍| 奇米色777欧美一区二区| 精品无人区卡一卡二卡三乱码免费卡| 精品写真视频在线观看| 成人av在线资源网| 在线免费观看成人短视频| 欧美精品一卡二卡| 精品精品国产高清a毛片牛牛| 国产午夜精品久久| 最近日韩中文字幕| 婷婷夜色潮精品综合在线| 国产在线视频一区二区| 99久久精品国产网站| 欧美日韩精品是欧美日韩精品| 91精品国产麻豆国产自产在线| 久久久久久97三级| 亚洲最新视频在线播放| 久久99精品国产91久久来源| 99久久国产综合精品女不卡| 欧美日韩在线播放一区| 久久久久99精品一区| 有坂深雪av一区二区精品| 久久精品72免费观看| 波多野结衣视频一区| 在线播放国产精品二区一二区四区| 欧美tickling挠脚心丨vk| 亚洲图片另类小说| 激情成人午夜视频| 色欧美88888久久久久久影院| 欧美大片国产精品| 中文字幕视频一区| 免费美女久久99| 色婷婷综合在线| 久久久久久久久久美女| 香蕉影视欧美成人| 成人av电影在线观看| 欧美一区二区福利视频| 亚洲色图.com| 麻豆91在线播放免费| 一本大道av伊人久久综合| 精品999在线播放| 水野朝阳av一区二区三区| 99久久综合狠狠综合久久| 欧美精品一区二| 日韩精品欧美精品| 91丨porny丨蝌蚪视频| 久久久精品国产免大香伊| 秋霞成人午夜伦在线观看| 91视频在线观看| 国产精品素人一区二区| 国产自产v一区二区三区c| 欧美日韩一区久久| 亚洲欧美视频一区| 成人免费高清在线| 久久精品人人做人人爽人人| 日本不卡视频一二三区| 欧美日韩视频在线一区二区| 综合自拍亚洲综合图不卡区| 国产成人精品综合在线观看| 精品国产免费人成在线观看| 亚洲va韩国va欧美va精品| 色综合久久综合网97色综合 | 亚洲免费视频成人| 成人小视频在线观看| 久久久久9999亚洲精品| 久久精品国产免费看久久精品| 5566中文字幕一区二区电影| 午夜精品福利一区二区蜜股av| 在线精品视频一区二区三四| 亚洲天堂a在线| 成人免费看的视频| 国产精品视频看| 成人黄页在线观看| 欧美激情综合在线| 成人毛片在线观看| 国产精品久久久久久久久图文区| 懂色av中文一区二区三区| 久久这里只有精品视频网| 精品系列免费在线观看| 久久午夜羞羞影院免费观看| 精东粉嫩av免费一区二区三区| 日韩三级视频在线看| 久久国产三级精品| 国产婷婷色一区二区三区在线| 国产永久精品大片wwwapp| 久久精品一区二区三区四区| 国产69精品久久久久毛片| 中文字幕第一区| 91在线观看成人| 亚洲综合丁香婷婷六月香| 欧美日韩成人在线一区| 蜜臀av性久久久久蜜臀aⅴ| 欧美不卡一二三| 国产成人综合网站| 亚洲人123区| 精品视频一区 二区 三区| 视频一区国产视频| 精品毛片乱码1区2区3区| 国产伦精品一区二区三区免费迷| 欧美激情一区二区三区全黄| 91免费版在线看| 日韩不卡免费视频| 久久久美女毛片| 91老司机福利 在线| 亚洲第一激情av| 久久一区二区三区四区| 不卡免费追剧大全电视剧网站| 一区二区三区在线观看国产| 9191成人精品久久| 国产成人免费av在线| 亚洲嫩草精品久久| 日韩欧美在线网站| 成人午夜电影网站| 亚洲国产一区在线观看| 日韩欧美视频一区| 97久久精品人人做人人爽| 日日摸夜夜添夜夜添精品视频| 精品国产乱码久久久久久老虎| 成人精品小蝌蚪| 日韩av一区二区在线影视| 国产亚洲一本大道中文在线| 91高清视频在线| 九一久久久久久| 亚洲精选免费视频| 2020国产精品自拍| 欧美视频在线一区| 国产精品 日产精品 欧美精品| 一区二区在线看| 国产亚洲一区字幕| 欧美性一区二区| 国产成人免费9x9x人网站视频| 亚洲图片有声小说| 欧美韩国日本综合| 欧美一级生活片| 一本久久精品一区二区| 国产精品影视天天线| 午夜精品久久久久久久蜜桃app| 久久精品视频网| 在线播放中文一区| 一本大道久久a久久综合婷婷| 另类小说一区二区三区| 一区二区三区免费网站| 日本一区二区三区国色天香| 欧美一二三区精品| 欧美亚洲国产bt| 92国产精品观看| 国产精品99久久久久久似苏梦涵|