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

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

?? verilog2c++.cc

?? 將Verilog代碼轉(zhuǎn)換成C++代碼的軟件
?? CC
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
	printProgress(std::cerr,(100.0*curr)/total);            vector<Process*>::const_iterator i;      for( i=top_->process().begin();i!=top_->process().end();++i )	{	  curr ++;	  	  if( typeid( *((*i)->statement()) )==typeid( Assign ) )	    {	      Assign* ass=(Assign*)(*i)->statement();	      	      if( ass->isSimple() )		if( typeid( *(ass->rightValue()) )==typeid( Identifier )&&		    ((Identifier*)ass->rightValue())->net()==net )		  _trace(((Identifier*)ass->leftValue())->net(),type,sync,curr,total);	    }	  else	    {	      const Statement* stat;	      stat =(*i)->queryStatement(type,net);	      if( stat!=NULL )		{		  set<const Net*> right;		  RightNetChainCB cb( right );		  stat->callback( cb );		  Handle handle(stat);		  handle.setRight( right );		  sync.handle().push_back( handle );		}	    }	}    }    bool trace(const Net* net,int type,Synchronous& sync)    {      printProgress(std::cerr,-1);      int curr=0;      int total=0;            vector<Process*>::const_iterator i;      for( i=top_->process().begin();i!=top_->process().end();++i )	{	  curr ++;	  	  if( typeid( *((*i)->statement()) )==typeid( Assign ) )	    {	      Assign* ass=(Assign*)(*i)->statement();	      	      if( ass->isSimple() )		if( typeid( *(ass->rightValue()) )==typeid( Identifier )&&		    ((Identifier*)ass->rightValue())->net()==net )		  _trace(((Identifier*)ass->leftValue())->net(),type,sync,curr,total);	    }	  else	    {	      const Statement* stat;	      stat =(*i)->queryStatement(type,net);	      if( stat!=NULL )		{		  set<const Net*> right;		  RightNetChainCB cb( right );		  stat->callback( cb ); 		  Handle handle(stat);		  handle.setRight( right );		  sync.handle().push_back( handle );		}	    }	}            printProgress(std::cerr,100.0);      return true;    }    ////////////////////////////////////////////////////////////////////////    void _relate(const Net* net,		 set<const Net*>& actnet,		 set<const Statement*>& actstat,		 list<Handle>& chain)    {      if( actnet.find(net)==actnet.end() )	{	  actnet.insert( net );	  	  multimap<const Net*,const Statement*>::const_iterator i;	  set<const Net*>::const_iterator ii;	  i =map_.find( net );	  if( i!=map_.end() )	    {	      do		{		  if( actstat.find( i->second )==actstat.end() )		    {		      actstat.insert( i->second );		      		      set<const Net*> left;		      set<const Net*> right;		      LeftNetChainCB  lcb( left );		      RightNetChainCB rcb( right );		      i->second->callback( lcb );		      i->second->callback( rcb );				      Handle handle( i->second );		      handle.setRight( right );		      handle.setLeft( left );		      chain.push_front( handle );		      		      for( ii=right.begin();ii!=right.end();++ii )			_relate(*ii,actnet,actstat,chain);		    }		  i++;		}	      while( i!=map_.upper_bound( net ) );	    }	}    }    ////////////////////////////////////    bool relate(list<Handle>& chain)    {      set<const Net*> actnet;            set<const Statement*> actstat;      list<Handle>::const_iterator i;      set<const Net*>::const_iterator ii;            double per =0.0;      double step =100.0/chain.size();            printProgress(std::cerr,-1);      for( i=chain.begin();i!=chain.end();++i )	{	  printProgress(std::cerr,per);	  per +=step;	  	  for( ii=(*i).right().begin();ii!=(*i).right().end();++ii )	    _relate(*ii,actnet,actstat,chain);	}      printProgress(std::cerr,100.0);            return true;    }    ////////////////////////////////////////////////////////////////////////    bool _inclusion(const set<const Net*>& l,const set<const Net*>& r)    {      set<const Net*>::const_iterator i;      for( i=l.begin();i!=l.end();++i )	if( r.find( *i )!=r.end() )	  return true;      return false;     }    ////////////////////////////////////    bool inspect(list<Handle>& chain)    {      list<Handle>::iterator i;      list<Handle>::iterator ii;            double per =0.0;      double step =100.0/chain.size();      printProgress(std::cerr,-1);      for( i=chain.begin();i!=chain.end();++i )	{	  printProgress(std::cerr,per);	  per +=step;	  	  for( ii=i;ii!=chain.end();++ii )	    {	      if( i!=ii )		if( _inclusion( (*i).right(),(*ii).left() ) )		  {		    chain.insert( i,(*ii) );		    chain.erase( ii );		    return true;		  }	    }	}      printProgress(std::cerr,100.0);            return false;    }    ////////////////////////////////////    bool sort(list<Handle>& chain)    {      bool swap;      set<const Handle*> loop;      list<Handle>::iterator i;      list<Handle>::iterator ii;            double per =0.0;      double step =100.0/chain.size();            printProgress(std::cerr,-1);      for( i=chain.begin();i!=chain.end();++i )	{	  printProgress(std::cerr,per);	  per +=step;	  	  do	    {	      for( ii=i;ii!=chain.end();++ii )		{		  swap=false;		  if( i!=ii )		    if( _inclusion( (*i).right(),(*ii).left() ) )		      {			if( loop.find( &(*ii) )!=loop.end() )			  {			    std::cerr << "\nlacing error !\n";			    (*ii).statement()->toVerilog(cerr,0);			    			    return false;			  }						i =chain.insert( i,(*ii) );			chain.erase( ii );						loop.insert( &(*ii)  );						swap=true;			break;		      }		  if( swap )		    break;		}	    }	  while( swap );	  loop.clear();	}            printProgress(std::cerr,100.0);            return true;    }    ////////////////////////////////////////////////////////////////////////          public:    Convert(bool debug=false):      Verilog(debug),      top_(NULL),      anysync_(NULL,Event::ANYEDGE)    {}    ~Convert(){}        const vector<Synchronous>& synchronous() const { return sync_; }    const set<const Net*>&  latch() const { return latch_; }    const set<const Net*>&  flipflop() const { return flipflop_; }    //    const set<const Net*>&  constant() const { return constant_; }    //    const set<const Net*>&  input() const { return input_; }    //    const set<const Net*>&  output() const { return output_; }    const multimap<const Net*,const Statement*>& handle() const { return map_; }            ////////////////////////////////////////////////////////////////////////    bool setTop(const char* name)    {      top_=findModule(name);            if( top_!=NULL )	{	  cerr << "ungroup instance...\n";	  top_->ungroup();	  	  cerr << "link net...\n";	  top_->link();	  	  {	    vector<Process*>::const_iterator i;	    for( i=top_->process().begin();i!=top_->process().end();++i )	      {		if( (*i)->isStorage()&&(*i)->isEdge() )		  {		    set<const Net*>::const_iterator ii;		    //for( ii=(*i)->leftChain().begin();ii!=(*i)->leftChain().end();++ii )		    for( ii=(*i)->nbLeftChain().begin();ii!=(*i)->nbLeftChain().end();++ii )		      {			flipflop_.insert( (*ii) );		      }		  }		else		  {		    if( (*i)->isStorage()&&(*i)->isLevel() )		      latch_.insert( (*i)->leftChain().begin(),(*i)->leftChain().end() );		    		    switch( (*i)->type() )		      {					      case Process::ASSIGN:			{			  		    			  set<const Net*>::const_iterator ii;			  for( ii=(*i)->leftChain().begin();ii!=(*i)->leftChain().end();++ii )			    map_.insert( pair<const Net*,const Statement*>					 ((*ii),(*i)->statement()) );			    			}			break;					      case Process::ALWAYS:			{			  if( typeid( *(*i)->statement() )==typeid( EventStatement ) )			    {			      			      if( typeid( *( ((EventStatement*)(*i)->statement())->statement() ) )==				  typeid( Block ) )				{				  /**				  vector<Statement*>::const_iterator ii;				  for( ii=((Block*)(((EventStatement*)(*i)->statement())->statement()))->list().begin();				       ii!=((Block*)(((EventStatement*)(*i)->statement())->statement()))->list().end();				       ++ii )				    {				      set<const Net*> chain;				      LeftNetChainCB cb(chain);				      (*ii)->callback(cb);				      				      set<const Net*>::const_iterator iii;				      for( iii=chain.begin();iii!=chain.end();++iii )					map_.insert( pair<const Net*,const Statement*>						     ((*iii),(*ii)) );				    }				  **/				  set<const Net*>::const_iterator ii;				  for( ii=(*i)->leftChain().begin();ii!=(*i)->leftChain().end();++ii )				    map_.insert( pair<const Net*,const Statement*>						 ((*ii),						  ((EventStatement*)(*i)->statement())->statement()) );				  				}			      else				{				  set<const Net*>::const_iterator ii;				  for( ii=(*i)->leftChain().begin();ii!=(*i)->leftChain().end();++ii )				    map_.insert( pair<const Net*,const Statement*>						 ((*ii),						  ((EventStatement*)(*i)->statement())->statement()) );				}			    }			}			break;					      }		  }	      }	  }	  	  return true;	}      else	return false;    }    ////////////////////////////////////////////////////////////////////////    bool setSynchronous(const char* name,int type)    {      if( top_!=NULL )	{	  bool ret;	  const Net* net =top_->findNet(name);	  	  if( net!=NULL )	    {	      syncsrc_.insert(net);	      	      std::cerr << "synchronous source : ";	      	      std::cerr << name;	      if( type==Event::POSEDGE )		std::cerr << ".posedge";	      else if( type==Event::NEGEDGE )		std::cerr << ".negedge";	      else		std::cerr << ".anyedge";	    	      std::cerr << endl;	      	      sync_.push_back( Synchronous(net,type) );	      	      std::cerr << "trace... ";	      trace(net,type,sync_.back());	      std::cerr << '\n';	      	      std::cerr << "relate... ";	      ret =relate(sync_.back().handle());	      std::cerr << '\n';	      	      std::cerr << "sort... ";	      sort(sync_.back().handle());	      std::cerr << '\n';	      	      std::cerr << "inspect... ";	      inspect(sync_.back().handle());	      std::cerr << '\n';	      	      return ret;	    }	}      return false;    }    bool setAnything()    {      if( top_!=NULL )	{	  bool ret;	  	  std::cerr << "anything source... \n";	  	  {	    map<string,Net*>::const_iterator i;	    for( i=top_->net().begin();i!=top_->net().end();++i )	      {		if( ((i->second->interface()==Net::OUTPUT)||		     (i->second->interface()==Net::INOUT))&&		    (flipflop_.find(i->second)==flipflop_.end()) )		  {		    set<const Net*> right;		    right.insert( i->second );		    Handle handle(NULL);		    handle.setRight( right );		    anysync_.handle().push_back( handle );		  }	      }	  }	  	  std::cerr << "relate... ";	  ret =relate(anysync_.handle());	  std::cerr << '\n';	  	  std::cerr << "sort... ";	  sort(anysync_.handle());	  std::cerr << '\n';	  	  std::cerr << "inspect... ";	  inspect(anysync_.handle());	  std::cerr << '\n';	  	  return ret;	}      else	return false;    }    ////////////////////////////////////////////////////////////////////////    void toEmVer(const char* path,bool comm=false,bool vcd=false)    {      string fname;      int indent;      set<const Net*> vcdNet;            ////////////////////////////////////////////////////////////////////////      ////////////////////////////////////////////////////////////////////////      ////////////////////////////////////////////////////////////////////////            fname =string(path) + findName( top_ ) + ".hh";      std::ofstream hhstr(fname.c_str());      indent=0;            ////////////////////////////////////////////////////////      // create header file      hhstr << setw(indent) << "" << "#include <EmVer.hh>" << endl;            hhstr << setw(indent) << "" << "namespace moe" << endl;      hhstr << setw(indent) << "" << '{' << endl;      indent+=2;            hhstr << setw(indent) << "" << "class " << findName( top_ ) << ": public EmVer" << endl;      hhstr << setw(indent) << "" << "{" << endl;indent+=2;            ////////////////////////////////////      // vcd      if( vcd )	{	  hhstr << setw(indent) << "" << "////////////////////////////////////////////////////////////////////////\n";	  hhstr << setw(indent) << "" << "std::ostream* vcd_;\n";	  hhstr << setw(indent) << "" << "long          time_;\n";	  hhstr << setw(indent) << "" << "////////////////////////////////////////////////////////////////////////\n";	}            /***      ////////////////////////////////////      // constant      {	set<string>::const_iterator i;	for( i=pool(Number()).begin();i!=pool(Number()).end();++i )	  {	    if( (*i).size()>64 )	      {		hhstr << setw(indent) << "" << "UIntN<" << setw(3) << (*i).size() << "> ";		hhstr.form("c%08X;",i);		if( comm )		  hhstr << " // " << (*i) << ".constant";		hhstr << endl;	      }	  }      }      ***/            ////////////////////////////////////      // regist      {	map<string,Net*>::const_iterator i;	for( i=top_->net().begin();i!=top_->net().end();++i )	  {	    if( syncsrc_.find( i->second )==syncsrc_.end() )	      {		if( (i->second->interface()!=Net::PRIVATE)||		    (flipflop_.find(i->second)!=flipflop_.end())||		    (latch_.find(i->second)!=latch_.end()) )	       		  {		    printNet(hhstr,indent,i->second);		    /**		    printClass(hhstr,i->second->width(),indent);		    //		    hhstr.form("n%08X",i->second);		    hhstr << 'n' << (uint)i->second;		    if( i->second->isArray() )		      hhstr << '[' << i->second->depth() << ']';		    hhstr << ";";		    **/		    if( comm )		      {			hhstr << " // " << i->first;			if( flipflop_.find(i->second)!=flipflop_.end() )			  hhstr << ":flipflop";			if( latch_.find(i->second)!=latch_.end() )			  hhstr << ":latch";			if( i->second->interface()!=Net::PRIVATE )			  hhstr << ":port";		      }		    hhstr << endl;		    		    vcdNet.insert( i->second );		    ////////////////////////////////////		    /**		    if( flipflop_.find(i->second)!=flipflop_.end() )		      {			hhstr << setw(indent) << "" << "bool       ";			//			hhstr.form("b%08X",i->second);			hhstr << 'b' << (uint)i->second;			hhstr << ";";			if( comm )			  {			    hhstr << " // " << i->first;			    if( flipflop_.find(i->second)!=flipflop_.end() )			      hhstr << ":booth";			  }			hhstr << endl;		      }		    **/		  }	      }	  }      }      ////////////////////////////////////      // function      {	hhstr << setw(indent) << "" << "////////////////////////////////////////////////////////////////////////\n";	map<string,Function*>::const_iterator i;	for( i=top_->function().begin();i!=top_->function().end();++i )	  {	    Function* func =i->second;	    vector<string>::const_iterator ii;	    bool second=false;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区白人| 亚洲一级片在线观看| 日韩一区二区电影网| 欧美日韩成人综合在线一区二区| 99re热这里只有精品视频| 成人久久视频在线观看| 国产凹凸在线观看一区二区| 国产成人av在线影院| 国产麻豆欧美日韩一区| 国产成人免费视频精品含羞草妖精| 久久不见久久见免费视频7| 老司机午夜精品99久久| 久久精品二区亚洲w码| 国产在线视频一区二区三区| 国产激情视频一区二区三区欧美| 国产91富婆露脸刺激对白| 94色蜜桃网一区二区三区| 91玉足脚交白嫩脚丫在线播放| 91精彩视频在线观看| 欧美日韩精品久久久| 日韩视频一区在线观看| 久久精品欧美一区二区三区不卡 | 精品国产乱码久久久久久老虎| 欧美一区二区三区四区久久| 精品少妇一区二区三区在线播放 | 亚洲人午夜精品天堂一二香蕉| 1区2区3区精品视频| 夜夜亚洲天天久久| 天堂蜜桃91精品| 韩日精品视频一区| 99久久精品免费观看| 欧美丝袜第三区| 精品免费日韩av| 国产精品久久一级| 亚洲午夜精品久久久久久久久| 免费国产亚洲视频| 99久久精品国产毛片| 欧美一区二区三区播放老司机| 26uuu国产在线精品一区二区| 国产精品激情偷乱一区二区∴| 一二三四区精品视频| 九九久久精品视频| 99国产精品国产精品毛片| 91精品国产91综合久久蜜臀| 国产欧美日韩三区| 亚洲电影一区二区三区| 国产麻豆91精品| 欧美日韩三级一区| 国产拍揄自揄精品视频麻豆| 亚洲小说欧美激情另类| 国产福利一区在线观看| 欧美视频完全免费看| 国产清纯白嫩初高生在线观看91 | 欧美色网站导航| 久久久久久一级片| 亚洲一区二区美女| 国产高清不卡一区| 欧美一区二区三区在线| 日韩理论片网站| 国产又黄又大久久| 欧美人与z0zoxxxx视频| 国产精品麻豆欧美日韩ww| 日韩精品乱码av一区二区| 99久久精品情趣| 精品国产一二三| 亚洲成人在线免费| 波多野结衣亚洲一区| 欧美videos中文字幕| 亚洲国产中文字幕在线视频综合| 丰满白嫩尤物一区二区| 3751色影院一区二区三区| 亚洲丝袜自拍清纯另类| 国产风韵犹存在线视精品| 4hu四虎永久在线影院成人| 亚洲三级免费电影| 懂色av一区二区三区免费观看| 日韩免费高清电影| 亚洲成人自拍一区| 91同城在线观看| 中文字幕免费一区| 国产福利电影一区二区三区| 日韩欧美一二三| 日韩国产高清影视| 欧美亚洲高清一区| 亚洲欧美国产毛片在线| 成人av电影在线网| 中文字幕国产精品一区二区| 国产一级精品在线| 日韩精品在线看片z| 奇米精品一区二区三区在线观看一| 欧美三级蜜桃2在线观看| 亚洲欧美一区二区三区国产精品 | 国产麻豆精品在线观看| 欧美成人精品二区三区99精品| 亚洲国产视频网站| 欧洲激情一区二区| 亚洲制服丝袜在线| 欧美亚洲自拍偷拍| 亚洲一卡二卡三卡四卡无卡久久| 91福利精品第一导航| 一区二区日韩av| 色美美综合视频| 亚洲精品老司机| 在线视频综合导航| 亚洲资源在线观看| 在线成人免费观看| 日韩成人免费看| 日韩女优av电影在线观看| 九九国产精品视频| 久久久国产综合精品女国产盗摄| 国产精品亚洲成人| 国产精品视频线看| 91亚洲精品一区二区乱码| 亚洲女性喷水在线观看一区| 91麻豆精品秘密| 一区二区国产视频| 欧美老年两性高潮| 美女视频黄 久久| 久久午夜羞羞影院免费观看| 国产精品综合在线视频| 国产精品伦一区二区三级视频| 91麻豆精品秘密| 日韩黄色在线观看| 久久综合久久综合久久综合| 国产91露脸合集magnet| 亚洲欧美激情一区二区| 欧美精品在线观看播放| 国产乱人伦精品一区二区在线观看| 国产欧美精品一区| 91老师片黄在线观看| 亚洲一区二区三区视频在线播放| 91精品国产入口| 丁香啪啪综合成人亚洲小说| 亚洲色图都市小说| 欧美一区国产二区| 国产suv精品一区二区883| 亚洲另类春色国产| 制服丝袜一区二区三区| 国产一区二区免费视频| 国产精品久久久久婷婷二区次| 在线观看一区二区视频| 捆绑紧缚一区二区三区视频| 国产精品视频看| 欧美三区在线观看| 国产乱子伦一区二区三区国色天香| 国产精品天干天干在线综合| 欧美日韩一区视频| 国产一区二区三区日韩| 亚洲精品va在线观看| 欧美一区二区三区日韩视频| 成人教育av在线| 亚洲成av人在线观看| 国产午夜精品久久久久久免费视| 欧美中文字幕亚洲一区二区va在线 | 国产精品久久久久久久午夜片| 欧美日韩专区在线| 国产一区二区影院| 亚洲国产日韩综合久久精品| 久久网这里都是精品| 欧美系列亚洲系列| 国产高清精品网站| 日产国产高清一区二区三区| 亚洲丝袜精品丝袜在线| 2023国产精华国产精品| 欧美影院一区二区| 成人国产一区二区三区精品| 看国产成人h片视频| 国产精品你懂的在线欣赏| 欧美一卡二卡三卡四卡| 91色在线porny| 国产69精品久久777的优势| 日本一不卡视频| 一级日本不卡的影视| 国产日产精品1区| 欧美成人女星排名| 91.麻豆视频| 欧美亚洲国产一区二区三区va| 成人av电影免费在线播放| 精品一区二区三区在线观看| 午夜av一区二区三区| 亚洲视频一区在线观看| 久久午夜羞羞影院免费观看| 日韩一区二区三区电影在线观看 | 欧美自拍偷拍一区| av资源网一区| 国产不卡一区视频| 久久精工是国产品牌吗| 天天操天天干天天综合网| 亚洲欧美另类图片小说| 国产精品美女久久久久久久| 国产日韩v精品一区二区| 欧美成人女星排名| 日韩欧美黄色影院| 日韩一级免费观看| 正在播放亚洲一区| 欧美日韩黄色一区二区| 欧美性大战xxxxx久久久| 日本乱人伦aⅴ精品| 99re6这里只有精品视频在线观看| 国产.精品.日韩.另类.中文.在线.播放|