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

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

?? emver.hh

?? 將Verilog代碼轉換成C++代碼的軟件
?? HH
字號:
/* * Copyright (c) 2000-2002 moe * *    This source code is free software; you can redistribute it *    and/or modify it in source code form under the terms of the GNU *    General Public License as published by the Free Software *    Foundation; either version 2 of the License, or (at your option) *    any later version. * *    This program is distributed in the hope that it will be useful, *    but WITHOUT ANY WARRANTY; without even the implied warranty of *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *    GNU General Public License for more details. * *    You should have received a copy of the GNU General Public License *    along with this program; if not, write to the Free Software *    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */#ifndef __EMVER_HH#define __EMVER_HH#include <iostream>#include <stdint.h>namespace moe{  ////////////////////////////////////////////////////////////////////////  class _UIntN  {  public:    _UIntN(){}    ~_UIntN(){}    virtual const uint32_t* v() const {}    virtual unsigned int  n() const {}  };  template <uint32_t T>  class UIntN : public _UIntN  {    uint32_t _v[(T+31)>>5];  public:    const uint32_t* v() const { return _v; }    uint32_t  n() const { return T; }        virtual ~UIntN(){}    UIntN(){}    UIntN(bool a)    {      _v[0]=a;      int i;      for( i=1;i<((T+31)>>5);i++ )	_v[i]=0;    }    UIntN(uint32_t a)    {      _v[0]=a&~(0xFFFFFFFF<<(T&31));      int i;      for( i=1;i<((T+31)>>5);i++ )	_v[i]=0;    }    UIntN(unsigned long a)    {      _v[0]=a&~(0xFFFFFFFF<<(T&31));      int i;      for( i=1;i<((T+31)>>5);i++ )	_v[i]=0;    }    UIntN(const uint64_t& a)    {      _v[0]=a;      int i=1;      if( i>=((T+31)>>5) )	{	  _v[i-1]&=~(0xFFFFFFFF<<(T&31));	}      _v[i++]=a>>32;      if( i>=((T+31)>>5) )	{	  _v[i-1]&=~(0xFFFFFFFF<<(T&31));	  return;	}      for( ;i<((T+31)>>5);i++ )	_v[i]=0;    }    UIntN(const uint32_t* a)    {      int i;      for( i=0;i<((T+31)>>5);i++ )	_v[i]=a[i];      _v[i-1]&=~(0xffffffff<<(T&31));    }    UIntN(const UIntN& a)    {      int i;      for( i=0;i<((T+31)>>5);i++ )	_v[i]=a.v()[i];      _v[i-1]&=~(0xffffffff<<(T&31));    }    UIntN(const _UIntN& a)    {      int i;      if( T>a.n() )	{	  for( i=0;i<((a.n()+31)>>5);i++ )	    _v[i]=a.v()[i];	  _v[i-1]&=~(0xffffffff<<(a.n()%32));	  for( ;i<((T+31)>>5);i++ )	    _v[i]=0;	}      else	{	  for( i=0;i<((T+31)>>5);i++ )	    _v[i]=a.v()[i];	  _v[i-1]&=~(0xffffffff<<(T&31));	}    }    ////////////////////////////////////    operator uint32_t() const    {      return _v[0];    }    UIntN& operator =(const _UIntN& a)    {      int i;      if( T>a.n() )	{	  for( i=0;i<((a.n()+31)>>5);i++ )	    _v[i]=a.v()[i];	  _v[i-1]&=~(0xffffffff<<(a.n()%32));	  for( ;i<((T+31)>>5);i++ )	    _v[i]=0;	}      else	{	  for( i=0;i<((T+31)>>5);i++ )	    _v[i]=a.v()[i];	  _v[i-1]&=~(0xffffffff<<(T&31));	}    }    ////////////////////////////////////    friend std::ostream& operator << (std::ostream& ostr,const UIntN& a)    {      int i;      for( i=a.n()-1;i>=0;i-- )	ostr << ((a._v[i/32]>>(i%32))&1);      return ostr;    }    friend UIntN operator +(const UIntN& a,const UIntN& b)    {      UIntN r;      uint64_t t=0;      unsigned int i;      for( i=0;i<(T+31)/32;i++ )        r._v[i] =t =uint64_t(a._v[i])+uint64_t(b._v[i])+(t>>32);      return r;    }    friend UIntN operator -(const UIntN& a,const UIntN& b)    {      UIntN r;      uint64_t t=0;      unsigned int i;      for( i=0;i<(T+31)/32;i++ )	r._v[i] =t =uint64_t(a._v[i])-uint64_t(b._v[i])-((t>>32)&1);      return r;    }    friend UIntN operator &(const UIntN& a,const UIntN& b)    {      UIntN r;      unsigned int i;      for( i=0;i<(T+31)/32;i++ )	r._v[i] =a._v[i]&b._v[i];      return r;    }    friend UIntN operator |(const UIntN& a,const UIntN& b)    {      UIntN r;      unsigned int i;      for( i=0;i<(T+31)/32;i++ )	r._v[i] =a._v[i]|b._v[i];      return r;    }    friend UIntN operator ^(const UIntN& a,const UIntN& b)    {      UIntN r;      unsigned int i;      for( i=0;i<(T+31)/32;i++ )	r._v[i] =a._v[i]^b._v[i];      return r;    }    friend UIntN operator ~(const UIntN& a)    {      UIntN r;      unsigned int i;      for( i=0;i<(T+31)/32;i++ )	r._v[i] =~a._v[i];      return r;    }    friend UIntN operator >>(const UIntN& a,const uint32_t b)    {      UIntN r;      uint32_t c=b>>5;      uint32_t d=b&31;      uint32_t e=32-d;      unsigned int i;      if( d==0 )	for( i=0;i<(T+31)/32;i++ )	  r._v[i]  =((i+c+0) < T) ? a._v[i+c] : 0;      else	for( i=0;i<(T+31)/32;i++ )	  {	    r._v[i]  =((i+c+0) < T) ? (a._v[i+c]>>d) : 0;	    r._v[i] |=((i+c+1) < T) ? (a._v[i+c+1]<<e) : 0;	  }      return r;    }    friend UIntN operator <<(const UIntN& a,const uint32_t b)    {      UIntN r;      uint32_t c=b>>5;      uint32_t d=b&31;      uint32_t e=32-d;      int i;      if( d==0 )	for( i=0;i<(T+31)/32;i++ )	  r._v[i]  =((i-c-0) >=0) ? a._v[i-c-0] : 0;      else    	for( i=0;i<(T+31)/32;i++ )	  {	    r._v[i]  =((i-c-0) >=0) ? (a._v[i-c-0]<<d) : 0;	    r._v[i] |=((i-c-1) >=0) ? (a._v[i-c-1]>>e) : 0;	  }      return r;    }    friend bool operator ==(const UIntN& a,const UIntN& b)    {      unsigned int i;      for( i=0;i<(T+31)/32;i++ )	if( a._v[i]!=b._v[i] )	  return false;      return true;    }    friend bool operator !=(const UIntN& a,const UIntN& b)    {      unsigned int i;      for( i=0;i<(T+31)/32;i++ )	if( a._v[i]!=b._v[i] )	  return true;      return false;    }    friend bool operator <(const UIntN& a,const UIntN& b)    {      int i;      for( i=((T+31)/32)-1;i>=0;i-- )	if( a._v[i]<b._v[i] )	  return true;	else  if( a._v[i]>b._v[i] )	  return false;      return false;    }    friend bool operator >(const UIntN& a,const UIntN& b)    {      int i;      for( i=((T+31)/32)-1;i>=0;i-- )	if( a._v[i]>b._v[i] )	  return true;	else  if( a._v[i]<b._v[i] )	  return false;      return false;    }    friend bool operator <=(const UIntN& a,const UIntN& b)    {      int i;      for( i=((T+31)/32)-1;i>=0;i-- )	if( a._v[i]<b._v[i] )	  return true;	else  if( a._v[i]>b._v[i] )	  return false;      return false;    }    friend bool operator >=(const UIntN& a,const UIntN& b)    {      int i;      for( i=((T+31)/32)-1;i>=0;i-- )	if( a._v[i]>b._v[i] )	  return true;	else  if( a._v[i]<b._v[i] )	  return false;      return false;    }    friend bool case_equality(const UIntN& a,const UIntN& b,const UIntN& m)    {      unsigned int i;      for( i=0;i<(T+31)/32;i++ )	if( (a._v[i]&m._v[i])!=(b._v[i]&m._v[i]) )	  return false;      return true;    }    friend bool case_inequality(const UIntN& a,const UIntN& b,const UIntN& m)    {      unsigned int i;      for( i=0;i<(T+31)/32;i++ )	if( (a._v[i]&m._v[i])!=(b._v[i]&m._v[i]) )	  return true;      return false;    }    friend bool reduction_and(const UIntN& a)    {      uint32_t t=0xFFFFFFFF;      unsigned int i;      for( i=0;i<(T+31)/32;i++ )	t &=a.v[i];      return (t==0xFFFFFFFF);    }    friend bool reduction_nand(const UIntN& a)    {      uint32_t t=0xFFFFFFFF;      unsigned int i;      for( i=0;i<(T+31)/32;i++ )	t &=a.v[i];      return !(t==0xFFFFFFFF);    }    friend bool reduction_or(const UIntN& a)    {      uint32_t t=0;      unsigned int i;      for( i=0;i<(T+31)/32;i++ )	t |=a.v[i];      return (t!=0);    }    friend bool reduction_nor(const UIntN& a)    {      uint32_t t=0;      unsigned int i;      for( i=0;i<(T+31)/32;i++ )	t |=a.v[i];      return !(t!=0);    }    friend bool reduction_xor(const UIntN& a)    {      uint32_t t=0;      unsigned int i;      for( i=0;i<(T+31)/32;i++ )	t ^=a.v[i];      t ^=(t>>16);      t ^=(t>>8);      t ^=(t>>4);      t ^=(t>>2);      t ^=(t>>1);          return (t&1);    }    friend bool reduction_nxor(const UIntN& a)    {      uint32_t t=0;      unsigned int i;      for( i=0;i<(T+31)/32;i++ )	t ^=a.v[i];      t ^=(t>>16);      t ^=(t>>8);      t ^=(t>>4);      t ^=(t>>2);      t ^=(t>>1);          return !(t&1);    }    bool index(uint32_t i)    {      uint32_t c=i>>5;      uint32_t d=i&31;      return (_v[c]>>d)&1;    }    friend UIntN Mask(unsigned int w)    {      UIntN r;      unsigned int i;      for( i=0;i<(w+31)/32;i++ )        r._v[i] =0xFFFFFFFF;      r._v[i-1] =~(0xFFFFFFFF<<(w&31));      return r;    }    friend UIntN Mask(unsigned int msb,unsigned int lsb)    {      UIntN r;      unsigned int i;      return r;    }    UIntN operator ()(uint32_t m,uint32_t l) const //read    {    }    _UIntN operator ()(uint32_t m,uint32_t l) //write    {    }    UIntN part(uint32_t m,uint32_t l)    {      UIntN r;      uint32_t lc =l>>5;      uint32_t lb =l&31;      uint32_t ld =32-lb;      uint32_t mc =(m-l+1+31)>>5;      uint32_t mm =31-(m-l+1+31)&31;            unsigned int i;      if( lb==0 )	for( i=0;i<mc;i++ )	  r._v[i]  =((i+lc+0) < T) ? _v[i+lc] : 0;      else	for( i=0;i<mc;i++ )	  {	    r._v[i]  =((i+lc+0) < T) ? (_v[i+lc+0]>>lb) : 0;	    r._v[i] |=((i+lc+1) < T) ? (_v[i+lc+1]<<ld) : 0;	  }      r._v[mc-1] &=(0xFFFFFFFFUL>>mm);      for( ;i<T;i++ )	r._v[i] =0;      return r;    }  };      ////////////////////////////////////////////////////////////////////////  // helper functions  class EmVer  {  public:    EmVer(){}    virtual ~EmVer(){}    ////////////////////////////////////    inline void Assign(uint64_t& a,uint64_t mask,uint32_t lsb,uint64_t b)    {      a =(a&(~mask))|((b<<lsb)&mask);    }    inline void Assign(uint32_t& a,uint32_t mask,uint32_t lsb,uint32_t b)    {      a =(a&(~mask))|((b<<lsb)&mask);    }    inline void Assign(uint64_t& a,uint64_t mask,uint64_t b)    {      a =b&mask;    }    inline void Assign(uint32_t& a,uint32_t mask,uint32_t b)    {      a =b&mask;    }    inline bool Index(uint32_t a,int i)    {      return ((a>>i)&1);    }    inline uint32_t Part(uint32_t a,int l,uint32_t m)    {      return ((a>>l)&m);    }    inline uint32_t Concat(uint32_t l,uint32_t r,int rw)    {      return ((l<<rw)|r);    }    inline uint32_t Repeat(uint32_t repeat,uint32_t concat,int concat_width)    {      uint32_t r =concat;      int i;      for( i=1;i<repeat;i++ )	r =(r<<concat_width)|r;      return r;    }    ////////////////////////////////////////////////////////////////////////    // unary expression    inline bool ReductionAND(uint32_t r,uint32_t m)    {      return ((r&m)==m);    }    inline bool ReductionOR(uint32_t r,uint32_t m)    {      return ((r&m)!=0);    }    inline bool ReductionXOR(uint32_t r,uint32_t m)    {      r &=m;      r ^=(r>>16);      r ^=(r>>8);      r ^=(r>>4);      r ^=(r>>2);      r ^=(r>>1);          return (r&1);    }    inline bool ReductionNAND(uint32_t r,uint32_t m)    {      return !((r&m)==m);    }    inline bool ReductionNOR(uint32_t r,uint32_t m)    {      return !((r&m)==0);    }    inline bool ReductionNXOR(uint32_t r,uint32_t m)    {      r &=m;      r ^=(r>>16);      r ^=(r>>8);      r ^=(r>>4);      r ^=(r>>2);      r ^=(r>>1);          return !(r&1);    }    inline uint32_t SignExt(uint32_t a,uint32_t b)    {      if( (a&b)!=0 )	return a|b;      else	return a;    }    inline uint64_t SignExt(uint64_t a,uint64_t b)    {      if( (a&b)!=0 )	return a|b;      else	return a;    }    inline uint64_t SignExt(uint32_t a,uint64_t b)    {      if( (uint64_t(a)&b)!=0 )	return uint64_t(a)|b;      else	return uint64_t(a);    }          ////////////////////////////////////////////////////////////////////////    // binary expression    inline uint32_t ArithmeticAdd(uint32_t a,uint32_t b)    {      return (a+b);    }    inline uint32_t ArithmeticMinus(uint32_t a,uint32_t b)    {      return (a+b);    }    inline uint32_t ArithmeticMultiply(uint32_t a,uint32_t b)    {      return (a+b);    }    inline uint32_t ArithmeticDivide(uint32_t a,uint32_t b)    {      return (a+b);    }    inline uint32_t ArithmeticModulus(uint32_t a,uint32_t b)    {      return (a+b);    }    inline uint32_t BitwiseXOR(uint32_t a,uint32_t b)    {      return (a^b);    }    inline bool LogicalEquality(uint32_t a,uint32_t b)    {      return (a==b);    }    inline bool CaseEquality(uint32_t a,uint32_t b,uint32_t m)    {      return ((a&m)==(b&m));    }    inline bool CaseInequality(uint32_t a,uint32_t b,uint32_t m)    {      return ((a&m)!=(b&m));    }    ////////////////////////////////////    inline bool Index(uint64_t a,int i)    {      return ((a>>i)&1);    }    /*    inline bool Index(const _UIntN& a,int i)    {      return ((*(a.v()+(i>>5))>>(i&31))&1);    }    */    ////////////////////////////////////    inline uint64_t Part(uint64_t a,int l,uint64_t m)    {      return ((a>>l)&m);    }    ////////////////////////////////////    inline uint64_t Concat(uint64_t l,uint64_t r,int rw)    {      return ((l<<rw)|r);    }    ////////////////////////////////////    inline uint64_t Concat(uint32_t repeat,uint64_t concat,int concat_width)    {      uint64_t r =concat;      int i;      for( i=1;i<repeat;i++ )	r =(r<<concat_width)|r;      return r;    }    ////////////////////////////////////    inline uint64_t ArithmeticAdd(uint64_t a,uint64_t b)    {      return (a+b);    }    ////////////////////////////////////    void vcd_dump(std::ostream& str,uint32_t d,int w)    {      str << 'b';      int i;      for( i=w-1;i>=0;i-- )	str << ((d>>i)&1);    }    void vcd_dump(std::ostream& str,uint64_t d,int w)    {      str << 'b';      int i;      for( i=w-1;i>=0;i-- )	str << ((d>>i)&1);    }      };  inline int32_t SignExt(uint32_t a,uint32_t b)  {    if( (a&b)!=0 )      return a|b;    else      return a;  }  inline int64_t SignExt(uint64_t a,uint64_t b)  {    if( (a&b)!=0 )      return a|b;    else      return a;  }}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人91在线观看| 精品国内二区三区| 99久久伊人网影院| 国产精品一区二区黑丝| 国产在线一区二区| 国产一区二区三区视频在线播放 | 国产麻豆成人精品| 国产尤物一区二区| 福利视频网站一区二区三区| 国产精品一区免费视频| 成人性生交大合| 91丨九色丨蝌蚪丨老版| 欧美精品xxxxbbbb| 日韩一区二区影院| 国产日韩欧美电影| 亚洲人成网站影音先锋播放| 99久久99久久久精品齐齐| 久久99日本精品| 日韩精品在线一区二区| 久久婷婷综合激情| 欧美本精品男人aⅴ天堂| 成人av午夜电影| 欧美视频中文一区二区三区在线观看| 中文字幕欧美日韩一区| 久久精品国产99| 欧美大肚乱孕交hd孕妇| 日本一区中文字幕| 538prom精品视频线放| 日韩制服丝袜先锋影音| 8x8x8国产精品| 日本不卡123| 中文字幕一区二区三区精华液 | 91丨九色丨尤物| 日韩一区在线看| 99v久久综合狠狠综合久久| 国产精品久久久久婷婷| 91捆绑美女网站| 一区二区三区四区视频精品免费| 91丨porny丨首页| 亚洲伊人伊色伊影伊综合网| 欧美丝袜第三区| 五月婷婷激情综合| 精品卡一卡二卡三卡四在线| 国产一区二区三区在线观看免费视频| 久久一留热品黄| jlzzjlzz国产精品久久| 一区二区三国产精华液| 777精品伊人久久久久大香线蕉| 日韩中文字幕亚洲一区二区va在线| 精品视频一区 二区 三区| 日韩电影在线观看一区| 亚洲精品一区二区在线观看| 欧美美女一区二区三区| 日韩和欧美一区二区| 精品成人在线观看| 波波电影院一区二区三区| 亚洲一卡二卡三卡四卡五卡| 欧美一区二区在线免费播放| 国产成人免费高清| 夜夜精品浪潮av一区二区三区| 欧美三级在线视频| 国产精选一区二区三区| 亚洲欧美经典视频| 国产91丝袜在线播放九色| 久久久久久黄色| 欧美精品乱码久久久久久 | 极品尤物av久久免费看| 中文字幕欧美国产| 欧美性受xxxx黑人xyx| 国内精品免费在线观看| 亚洲美女电影在线| 亚洲精品在线免费播放| 欧美在线免费观看亚洲| 国产精品一区久久久久| 亚洲成精国产精品女| 欧美韩国日本不卡| 欧美一区二区视频网站| 97久久超碰精品国产| 激情国产一区二区| 一区二区高清在线| 欧美韩日一区二区三区四区| 91精品国产综合久久久久| 北条麻妃国产九九精品视频| 麻豆精品一二三| 亚洲国产欧美在线人成| 国产精品毛片a∨一区二区三区| 51午夜精品国产| 欧美亚洲日本一区| 99精品国产91久久久久久| 国内精品国产三级国产a久久| 国产在线国偷精品产拍免费yy| 亚洲免费伊人电影| 欧美—级在线免费片| 日韩精品自拍偷拍| 欧美日韩精品一区二区三区四区| 成人av在线一区二区三区| 精品一区二区三区在线播放| 偷拍一区二区三区四区| 亚洲六月丁香色婷婷综合久久| 国产视频一区在线播放| 日韩欧美在线不卡| 欧美一区在线视频| 这里只有精品电影| 欧美精品aⅴ在线视频| 欧美日韩黄色一区二区| 欧洲av一区二区嗯嗯嗯啊| 91网站黄www| 91蜜桃免费观看视频| 91原创在线视频| 91亚洲国产成人精品一区二区三| 丰满放荡岳乱妇91ww| 成人一区在线观看| 成人亚洲一区二区一| 成人综合日日夜夜| 成人黄色电影在线 | 麻豆一区二区三| 日本午夜一区二区| 91丨porny丨国产| 99久久久精品免费观看国产蜜| 国产成人午夜电影网| 成人开心网精品视频| av一区二区三区四区| 91在线观看视频| 91黄色在线观看| 欧美日韩免费在线视频| 制服丝袜中文字幕一区| 欧美一级在线观看| 久久久午夜精品| 中文字幕在线一区免费| 中文字幕一区二区三区精华液| 亚洲欧洲成人自拍| 一区二区三区免费看视频| 亚洲一区二区三区四区的| 亚洲一区二区在线免费观看视频| 亚洲国产精品传媒在线观看| 中文字幕一区二区三区av| 亚洲三级免费电影| 日韩高清欧美激情| 精品一区二区三区影院在线午夜| 风间由美性色一区二区三区| 成人性色生活片| 色综合婷婷久久| 日韩免费成人网| 中文字幕不卡在线观看| 国产精品一区二区黑丝| caoporm超碰国产精品| 色视频一区二区| 91精品国产全国免费观看| 精品久久久久久久久久久久久久久久久 | 午夜精品久久久久久久99樱桃| 蜜臀久久99精品久久久久久9| 国产精品中文欧美| 97久久久精品综合88久久| 欧美调教femdomvk| 久久精品欧美一区二区三区不卡| 亚洲色图20p| 国产最新精品精品你懂的| 色老汉av一区二区三区| 精品理论电影在线| 亚洲精品少妇30p| 国产乱码精品1区2区3区| 色婷婷狠狠综合| 国产日韩精品视频一区| 日日夜夜免费精品视频| 欧美一级免费观看| 中文字幕制服丝袜一区二区三区 | 17c精品麻豆一区二区免费| 日韩 欧美一区二区三区| av中文字幕一区| 日韩精品中文字幕在线一区| 一区二区三区高清不卡| 国产成人a级片| 日韩一区二区在线看| 亚洲一区二区精品视频| 风间由美中文字幕在线看视频国产欧美 | 国产福利一区在线观看| 欧美性感一类影片在线播放| 日韩精品一区二| 视频精品一区二区| 91视频国产资源| 中文av一区二区| 国产一区二区三区在线观看免费视频| 欧美人成免费网站| 亚洲一级片在线观看| 欧美精品一卡两卡| 亚洲一区在线观看免费| 色中色一区二区| 国产精品国产三级国产aⅴ无密码| 国产麻豆日韩欧美久久| 久久婷婷国产综合精品青草| 奇米影视在线99精品| 欧美老肥妇做.爰bbww视频| 亚洲午夜激情网页| 欧美日韩亚州综合| 亚洲国产成人tv| 欧美日韩国产高清一区二区| 亚洲无人区一区| 欧美色涩在线第一页| 亚洲综合精品自拍| 欧美精品第1页|