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

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

?? verilog2c++.cc

?? 將Verilog代碼轉換成C++代碼的軟件
?? CC
?? 第 1 頁 / 共 4 頁
字號:
	    ostr_ << '(';	    self->left()->callback( *this );	    ostr_ << "<=";	    self->right()->callback( *this );	    ostr_ << ')';	    break;	  case Expression::GreaterEqual:	    ostr_ << '(';	    self->left()->callback( *this );	    ostr_ << ">=";	    self->right()->callback( *this );	    ostr_ << ')';	    break;	    	  case Expression::CaseEquality:	    if( (typeid( *(self->right()) )==typeid( Number ))&&		((Number*)self->right())->isPartial() )	      {		ostr_ << "EmVer::CaseEquality";		ostr_ << '(';		self->left()->callback( *this );		ostr_ << ',';				((Number*)self->right())->mask();		ostr_ << ',';		((Number*)self->right())->value();	      }	    else	      {		ostr_ << '(';		self->left()->callback( *this );		ostr_ << "==";		self->right()->callback( *this );		ostr_ << ')';	      }	    break;	  case Expression::CaseInequality:	    if( (typeid( *(self->right()) )==typeid( Number ))&&		((Number*)self->right())->isPartial() )	      {		ostr_ << "EmVer::CaseInequality";		ostr_ << '(';		self->left()->callback( *this );		ostr_ << ',';				((Number*)self->right())->mask();		ostr_ << ',';		((Number*)self->right())->value();	      }	    else	      {		ostr_ << '(';		self->left()->callback( *this );		ostr_ << "!=";		self->right()->callback( *this );		ostr_ << ')';	      }	    break;	  }      }      ////////////////////////////////////      void trap(const Ternary* self)      {	ostr_ << '(';	self->condition()->callback( *this );	ostr_ << " ? ";	self->trueValue()->callback( *this );	ostr_ << " : ";	self->falseValue()->callback( *this );	ostr_ << ')';      }      ////////////////////////////////////      void trap(const CallFunction* self)      {	//	ostr_.form("f%08X(",self->net());	ostr_ << 'f' << (uint)self->net() << '(';	vector<Expression*>::const_iterator i;	for( i=self->parameter().begin();i!=self->parameter().end();++i )	  {	    if( i!=self->parameter().begin() )	      ostr_ << ",";	    	    (*i)->callback( *this );	  }	ostr_ << ")";      }    };            ////////////////////////////////////////////////////////////////////////    class LeftExpression : public Callback    {      bool         comm_;      ostream&     ostr_;      const set<const Net*>& flipflop_;      unsigned int indent_;      unsigned int cast_;    public:      LeftExpression(bool comm,ostream& ostr,const set<const Net*>& flipflop,unsigned int indent,unsigned int cast):	comm_(comm),	ostr_(ostr),	flipflop_(flipflop),	indent_(indent),	cast_(cast)      {}      ~LeftExpression(){}            void trap(const Number* self)      {	if( self->isPartial() )	  std::cerr << " a partial number in this left value is failure profit. \n";	else if( self->width()>32 )	  std::cerr << " a large number in this left number is failure profit. \n";	else	  ostr_ << self->calcConstant();      }      void trap(const Identifier* self)      {	RightExpression re(comm_,ostr_,32);	if( flipflop_.find( self->net() )!=flipflop_.end() )	  {	    if( self->net()->isArray() )	      {		ostr_ << setw(indent_) << "";		//		ostr_.form("d%08X =preproduct",self->net());		ostr_ << 'd' << (uint)self->net() << " =preproduct";		if( cast_!=self->net()->width() )		  {		    ostr_<< '&';		    printMask( ostr_,self->net()->width() );		  }		ostr_ << ";\n";				ostr_ << setw(indent_) << "";		//		ostr_.form("a%08X",self->net());		ostr_ << 'a' << (uint)self->net();		ostr_ << " =(";		self->idx()->callback( re );		ostr_ << '-' << self->net()->sa()->calcConstant();		ostr_ << ")%" << self->net()->depth() << ";\n";		ostr_ << setw(indent_) << "";		//		ostr_.form("u%08X",self->net());		ostr_ << 'u' << (uint)self->net();		ostr_ << " =true;\n";	      }	    else	      {		if( self->idx()!=NULL )		  {		    ostr_ << setw(indent_) << "";		    ostr_ << "Assign(";		    //		    ostr_.form("d%08X",self->net());		    ostr_ << 'd' << (uint)self->net();		    ostr_ << ',';		    printMask( ostr_,self->net()->width(),			       self->idx()->calcConstant(),			       self->idx()->calcConstant() );		    ostr_ << ',';		    ostr_ << self->idx()->calcConstant();		    ostr_ << ",preproduct);\n";		    		    ostr_ << setw(indent_) << "";		    //		    ostr_.form("u%08X",self->net());		    ostr_ << 'u' << (uint)self->net();		    ostr_ << " =true;\n";		  }		else if( self->msb()!=NULL && self->lsb()!=NULL )		  {		    ostr_ << setw(indent_) << "";		    ostr_ << "Assign(";		    //		    ostr_.form("d%08X",self->net());		    ostr_ << 'd' << (uint)self->net();		    ostr_ << ',';		    printMask( ostr_,self->net()->width(),			       self->msb()->calcConstant(),			       self->lsb()->calcConstant() );		    ostr_ << ',';		    ostr_ << self->lsb()->calcConstant();		    ostr_ << ",preproduct);\n";		    		    ostr_ << setw(indent_) << "";		    //		    ostr_.form("u%08X",self->net());		    ostr_ << 'u' << (uint)self->net();		    ostr_ << " =true;\n";		  }		else		  {		    ostr_ << setw(indent_) << "";		    //		    ostr_.form("d%08X =preproduct",self->net());		    ostr_ << 'd' << (uint)self->net() << " =preproduct";		    if( cast_!=self->net()->width() )		      {			ostr_<< '&';			printMask( ostr_,self->net()->width() );		      }		    ostr_ << ";\n";		    		    ostr_ << setw(indent_) << "";		    //		    ostr_.form("u%08X",self->net());		    ostr_ << 'u' << (uint)self->net();		    ostr_ << " =true;\n";		  }	      }	  }	else if( self->net()->type()==Net::FUNCTION )	  {	    ostr_ << setw(indent_) << "";	    //	    ostr_.form("return preproduct",self->net());	    ostr_ << "return preproduct";	    if( cast_!=self->net()->width() )	      {		ostr_<< '&';		printMask( ostr_,self->net()->width() );	      }	    ostr_ << ";\n";	    	  }	else	  {	    if( self->net()->isArray() )	      {		ostr_ << setw(indent_) << "";		//		ostr_.form("n%08X",self->net());		ostr_ << 'n' << (uint)self->net();		ostr_ << '[';				self->idx()->callback( re );		ostr_ << '-' << self->net()->sa()->calcConstant();				ostr_ << ']';				ostr_ << " =preproduct";		if( cast_!=self->net()->width() )		  {		    ostr_<< '&';		    printMask( ostr_,self->net()->width() );		  }		ostr_ << ";\n";	      }	    else	      {		if( self->idx()!=NULL )		  {		    ostr_ << setw(indent_) << "";		    ostr_ << "Assign(";		    //		    ostr_.form("n%08X",self->net());		    ostr_ << 'n' << (uint)self->net();		    ostr_ << ',';		    printMask( ostr_,self->net()->width(),			       self->idx()->calcConstant(),			       self->idx()->calcConstant() );		    ostr_ << ',';		    ostr_ << self->idx()->calcConstant();		    ostr_ << ",preproduct);\n";		  }		else if( self->msb()!=NULL && self->lsb()!=NULL )		  {		    ostr_ << setw(indent_) << "";		    ostr_ << "Assign(";		    //		    ostr_.form("n%08X",self->net());		    ostr_ << 'n' << (uint)self->net();		    ostr_ << ',';		    printMask( ostr_,self->net()->width(),			       self->msb()->calcConstant(),			       self->lsb()->calcConstant() );		    ostr_ << ',';		    ostr_ << self->lsb()->calcConstant();		    ostr_ << ",preproduct);\n";		  }		else		  {		    ostr_ << setw(indent_) << "";		    //		    ostr_.form("n%08X =preproduct",self->net());		    ostr_ << 'n' << (uint)self->net() << " =preproduct";		    if( cast_!=self->net()->width() )		      {			ostr_<< '&';			printMask( ostr_,self->net()->width() );		      }		    ostr_ << ";\n";		  }	      }	  }	      }      void trap(const Concat* self)      {	if( self->repeat()!=NULL )	  std::cerr << " a repeat expression in this left value is failure profit. \n";		{	  vector<Expression*>::const_reverse_iterator i;	  for( i=self->list().rbegin();i!=self->list().rend();++i )	    {	      (*i)->callback( *this );	      if( (*i)!=self->list().front() )		ostr_ << setw(indent_) << "" << "preproduct >>=" << (*i)->width() << ";\n";	    }	}	      }      void trap(const Event* self)      {	std::cerr << " a event expression in this left value is failure profit. \n";      }      void trap(const Unary* self)      {	std::cerr << " a unary expression in this left value is failure profit. \n";      }      void trap(const Binary* self)      {	std::cerr << " a binary expression in this left value is failure profit. \n";      }      void trap(const Ternary* self)      {	std::cerr << " a ternary expression in this left value is failure profit. \n";      }      void trap(const CallFunction* self)      {	std::cerr << " a call function expression in this left value is failure profit. \n";      }    };                ////////////////////////////////////////////////////////////////////////    class StatementSplice : public Callback    {      bool     comm_;      ostream& ostr_;      const set<const Net*>& flipflop_;      unsigned int indent_;    public:      StatementSplice(bool comm,ostream& ostr,const set<const Net*>& flipflop,unsigned int indent):	comm_(comm),	ostr_(ostr),	flipflop_(flipflop),	indent_(indent)      {}      ~StatementSplice(){}            void trap(const EventStatement* self)      {	std::cerr << "a event statement in this handle is failure profit. \n";      }      void trap(const Block* self)      {	ostr_ << setw(indent_) << "" << "{\n";indent_+=2;		vector<Statement*>::const_iterator i;	for( i=self->list().begin();i!=self->list().end();++i )	  (*i)->callback( *this );		indent_-=2;ostr_ << setw(indent_) << "" << "}\n";      }      void trap(const Condition* self)      {	RightExpression re(comm_,ostr_,32);		ostr_ << setw(indent_) << "" << "if( ";	self->expression()->callback( re );	ostr_ << " )\n";		indent_+=2;	self->trueStatement()->callback( *this );	indent_-=2;		if( self->falseStatement()!=NULL )	  {	    ostr_ << setw(indent_) << "" << "else\n";	    	    indent_+=2;	    self->falseStatement()->callback( *this );	    indent_-=2;	  }      }      void trap(const Case* self)      {	RightExpression re(comm_,ostr_,32);		ostr_ << setw(indent_) << "" << "{\n";indent_+=2;		ostr_ << setw(indent_) << "";	printClass( ostr_,self->expression()->width() );	ostr_ << "preproduct =";	self->expression()->callback( re );// case pre-product	ostr_ << ";\n";		vector<Case::Item*>::const_iterator i;	for( i=self->items().begin();i!=self->items().end();++i )	  {	    if( i!=self->items().begin() )	      {		ostr_ << setw(indent_) << "" << "else ";	      }	    else	      {		ostr_ << setw(indent_) << "";	      }	    	    if( !(*i)->expression().empty() )	      {		ostr_ << "if( ";		vector<Expression*>::const_iterator ii;		for( ii=(*i)->expression().begin();ii!=(*i)->expression().end();++ii )		  {		    RightExpression re(comm_,ostr_,self->expression()->width());		    		    if( ii!=(*i)->expression().begin() )		      {			ostr_ << "||" << std::endl;			ostr_ << setw(indent_) << "";						if( i!=self->items().begin() )			  ostr_ << "         ";			else			  ostr_ << "    ";		      }		    		    {		      if( typeid( *(*ii) )==typeid( Number ) )			{			  if( ((Number*)(*ii))->isPartial() )			    {			      ostr_ << "EmVer::CaseEquality(preproduct,";			      (*ii)->callback( re );			      ostr_ << ')';			    }			  else			    {			      ostr_ << "(preproduct==";			      (*ii)->callback( re );			      ostr_ << ')';			    }			}		      else			{			  ostr_ << "(preproduct==";			  (*ii)->callback( re );			  ostr_ << ')';			}		    }		    		    		  }		ostr_ << " )\n";	      }	    else	      ostr_ << "\n";	    	    indent_+=2;	    ostr_ << setw(indent_) << "" << "{\n";	    indent_+=2;	    (*i)->statement()->callback( *this );	    indent_-=2;	    ostr_ << setw(indent_) << "" << "}\n";	    indent_-=2;	  }		indent_-=2;ostr_ << setw(indent_) << "" << "}\n";      }                  void trap(const Case::Item* self)      {	std::cerr << "a case-item statement in this callback is failure profit. \n";      }                  void trap(const Assign* self)      {	ostr_ << setw(indent_) << "" << "{\n";indent_+=2;		RightExpression re(comm_,ostr_,self->leftValue()->width() );	LeftExpression le(comm_,ostr_,flipflop_,indent_,			  32*((self->leftValue()->width() +31)/32) );	{	  ostr_ << setw(indent_) << "";	  printClass( ostr_,self->leftValue()->width() );	  ostr_ << "preproduct =";	  self->rightValue()->callback( re );	  ostr_ << ";\n";	  	  self->leftValue()->callback( le );	}		indent_-=2;ostr_ << setw(indent_) << "" << "}\n";      }    };            ////////////////////////////////////////////////////////////////////////    ////////////////////////////////////////////////////////////////////////    class Handle    {      const Statement* stat_;      set<const Net*>  left_;      set<const Net*>  right_;          public:      Handle():	stat_(NULL)      {}      ~Handle(){}      Handle(const Statement* stat):	stat_(stat)      {}      void setLeft(const set<const Net*>& l) { left_=l; }      void setRight(const set<const Net*>& r) { right_=r; }      const Statement* statement()  const { return stat_; }      const set<const Net*>& left()  const { return left_; }      const set<const Net*>& right() const { return right_; }    };    ////////////////////////////////////////////////////////////////////////    class Synchronous    {      const Net*   net_;      int          type_;      list<Handle> handle_;    public:      void dump(ostream &ostr)      {	list<Handle>::const_iterator i;	for( i=handle_.begin();i!=handle_.end();++i )	  (*i).statement()->toVerilog( ostr ,0 );      }            ~Synchronous(){}      Synchronous():	net_(NULL)      {}      Synchronous(const Net* net,int type):	net_(net),	type_(type)      {}      const Net* net() const { return net_; }      int type() const { return type_; }      list<Handle>& handle() { return handle_; }      const list<Handle>& handle() const { return handle_; }    };            ////////////////////////////////////////////////////////////////////////    Module* top_;        vector<Synchronous> sync_;    Synchronous         anysync_;        set<const Net*> syncsrc_;    set<const Net*> latch_;    set<const Net*> flipflop_;        multimap<const Net*,const Statement*> map_;        //    map<const Net*,const Assign*>    constant_;        ////////////////////////////////////////////////////////////////////////    void _trace(const Net* net,int type,Synchronous& sync,int& curr,int& total)    {      total +=top_->process().size();      if( total==0 )	printProgress(std::cerr,100.0);      else

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久众筹精品私拍模特| 91丨porny丨蝌蚪视频| 欧美一区二区三区四区久久| 亚洲国产精品久久人人爱| 欧美亚一区二区| 亚洲成人手机在线| 制服.丝袜.亚洲.中文.综合| 日本中文字幕一区二区视频| 精品国产凹凸成av人网站| 国产乱一区二区| 国产精品久久久久一区二区三区共| 大胆亚洲人体视频| 亚洲精品乱码久久久久| 91在线精品一区二区三区| 亚洲成人精品一区二区| 蜜桃精品视频在线| 亚洲日本电影在线| 在线精品观看国产| 亚洲一区免费视频| 欧美日韩一区二区不卡| 美女国产一区二区三区| 国产精品久久久久久久久免费丝袜| av亚洲精华国产精华| 日韩国产欧美一区二区三区| 欧美成人aa大片| 91论坛在线播放| 免费在线看一区| 国产精品麻豆视频| 欧美日韩国产综合一区二区 | 欧美在线观看禁18| 另类小说图片综合网| 国产女同互慰高潮91漫画| 欧美熟乱第一页| 国产乱码精品一品二品| 午夜一区二区三区在线观看| 久久众筹精品私拍模特| 在线观看欧美黄色| 狠狠色伊人亚洲综合成人| 亚洲男人的天堂网| 2019国产精品| 欧美日韩国产天堂| 成人av集中营| 九九**精品视频免费播放| 玉米视频成人免费看| 久久精品免费在线观看| 欧美日韩电影在线播放| 99精品国产热久久91蜜凸| 久久精品国产网站| 亚洲成精国产精品女| 中文字幕一区不卡| 久久久久久亚洲综合影院红桃| 欧美日韩国产精品自在自线| 成人免费va视频| 国产一区二区三区黄视频| 婷婷六月综合亚洲| 一区二区成人在线观看| 中文字幕一区二区三区蜜月| 久久久精品tv| wwww国产精品欧美| 日韩精品一区二区三区老鸭窝| 欧美亚一区二区| 日本高清视频一区二区| av网站免费线看精品| 丁香一区二区三区| 国产乱子伦一区二区三区国色天香| 丝袜亚洲另类欧美综合| 一级日本不卡的影视| 亚洲欧洲日韩av| 国产精品美日韩| 国产欧美精品一区aⅴ影院| 久久综合久色欧美综合狠狠| 日韩久久精品一区| 欧美一区二区在线不卡| 欧美日韩国产经典色站一区二区三区| av在线不卡观看免费观看| 国产成人精品网址| 粉嫩嫩av羞羞动漫久久久| 国产专区综合网| 精品一区二区三区蜜桃| 经典三级一区二区| 国产在线不卡一区| 国产一区在线观看麻豆| 国产精品99久久久久久久女警| 国产一区二区三区| 国产成人精品影视| 成人av网站在线观看免费| 成人av高清在线| 在线观看视频91| 欧美三级视频在线| 91麻豆精品国产| 精品国产露脸精彩对白| 久久综合色一综合色88| 国产精品视频第一区| 国产精品久久久久久亚洲毛片 | 国内不卡的二区三区中文字幕 | 亚洲天堂av一区| 亚洲综合网站在线观看| 日韩精品欧美精品| 国产自产高清不卡| av在线播放不卡| 欧美在线啊v一区| 日韩欧美一区二区在线视频| 久久理论电影网| 亚洲日本成人在线观看| 日本在线不卡一区| 国内精品免费**视频| 99久久综合狠狠综合久久| 欧美亚洲动漫精品| 久久综合九色综合97婷婷女人| 国产精品免费免费| 午夜国产不卡在线观看视频| 国产一区二区精品久久99| 91小视频免费看| 欧美大片一区二区三区| 亚洲欧洲成人精品av97| 午夜免费久久看| 国产一区二区三区日韩| 色婷婷久久99综合精品jk白丝| 欧美女孩性生活视频| 国产欧美日韩久久| 日韩影院精彩在线| 成人福利在线看| 91精品国产综合久久蜜臀| 中文字幕av一区二区三区免费看 | 91色在线porny| 日韩免费福利电影在线观看| 国产精品灌醉下药二区| 日韩精品成人一区二区三区| 成人av电影在线| 精品久久久久久久久久久久包黑料 | 久久综合视频网| 偷拍日韩校园综合在线| www.性欧美| 日韩欧美亚洲另类制服综合在线| 一区二区在线看| 国产成人a级片| 精品久久免费看| 午夜精品一区二区三区电影天堂| 成人午夜免费电影| 亚洲精品一线二线三线无人区| 亚洲最大成人网4388xx| 成人伦理片在线| 久久久99精品久久| 老司机精品视频在线| 欧美日韩亚洲高清一区二区| 日韩伦理电影网| 99精品久久久久久| 久久精品网站免费观看| 久久99精品国产麻豆不卡| 欧美日本一道本| 亚洲va在线va天堂| 久久久精品天堂| 日日摸夜夜添夜夜添国产精品 | 国产美女主播视频一区| 欧美久久一二三四区| 一区二区三区日韩在线观看| av在线一区二区三区| 国产精品久久久久久久久久久免费看| 免费日韩伦理电影| 日韩精品专区在线| 男女男精品网站| 精品久久一二三区| 国产一区在线观看麻豆| 久久久久99精品国产片| 国产精品一区二区久久精品爱涩 | 色婷婷精品久久二区二区蜜臀av | 久久先锋影音av| 国产一区二区福利| 久久―日本道色综合久久| 久久精品99国产精品| 日韩免费一区二区三区在线播放| 欧美a一区二区| 日韩欧美国产麻豆| 久久丁香综合五月国产三级网站| 精品久久一二三区| 成人免费观看男女羞羞视频| 国产精品久久看| 在线亚洲精品福利网址导航| 亚洲第一狼人社区| 91精品欧美一区二区三区综合在 | 99久久99久久久精品齐齐 | 天天免费综合色| 日韩一区二区免费在线观看| 六月婷婷色综合| 免费看黄色91| 国产日韩欧美制服另类| av一区二区三区在线| 午夜精品在线视频一区| 日韩一区二区高清| 国产aⅴ精品一区二区三区色成熟| 国产精品水嫩水嫩| 91黄色免费网站| 青青草原综合久久大伊人精品 | 国产精品久久久久久久久动漫| 99精品视频中文字幕| 亚洲国产va精品久久久不卡综合| 日韩免费电影一区| 97久久超碰国产精品| 午夜精品久久久久久久99樱桃 | 国产精品超碰97尤物18|