コード例 #1
0
ファイル: PhysicalSideworks.cpp プロジェクト: JinxinS/BGL_dev
void PhysicalSideworks::updatePFUConfigurationParameters(){
	graph_t::vertex_descriptor zero = this->getFU(Fixed::ZERO+"_auto_0");
	for(auto fu:fuList){
		for(auto i : fu->inports){
			if(!i.second->isConnected()){
				addFixedConection(zero,getFU(fu->name),Fixed::FIXED_OUT,i.first);
			}
		}
	}
	getReadXbarLuts(IResourceCostConstants::MUXCOST[IResourceCostConstants::VIRTEX5]);
	
	int mem_offset = 0x00D80000;
	for (auto mem : fus_by_type[Mem::TYPE]){
		mem->addProperty(Mem::PROP_BASEADDRESS,mem_offset);
		mem_offset += std::pow(2,mem->getProperty(Mem::PROP_AWIDTH))*4;
//		std::cout<<mem->name<<" "<<mem->getProperty(Mem::PROP_ID)<<" "<<nwords<<std::endl;	
	}

	int bits = 0;
	for(auto fu:fuList){
		for(auto i : fu->inports){
			(i.second)->setXbarBitPointer(bits);
			bits += (i.second)->getConfSize();
		}
	}
	xbar_conf_bits = bits;
	for(auto fu:fuList){
		fu->setConfBitPointer(bits);
		bits +=fu->getConfSize();
	}
	fu_conf_bits = bits;
}
コード例 #2
0
 FunctionalUnitTest::MyStateInterface*
 FunctionalUnitTest::WaitingForACKReconfiguration::doOnData(const CompoundPtr&)
 {
     // if this is called we assume this is the ack and throw it away
     // we need to wakeup the other FUs
     getFU()->wakeup();
     return getFSM()->createState<ReadyForTransmissionReconfiguration>();
 }
コード例 #3
0
 FunctionalUnitTest::MyStateInterface*
 FunctionalUnitTest::ReadyForTransmissionReconfiguration::doWakeup()
 {
     getFU()->getReceptor()->wakeup();
     return this;
 }
コード例 #4
0
 FunctionalUnitTest::MyStateInterface*
 FunctionalUnitTest::ReadyForTransmissionReconfiguration::doSendData(const CompoundPtr& compound)
 {
     getFU()->getConnector()->getAcceptor(compound)->sendData(compound);
     return this;
 }
コード例 #5
0
 FunctionalUnitTest::MyStateInterface*
 FunctionalUnitTest::ReadyForTransmission::doSendData(const CompoundPtr& compound)
 {
     getFU()->getConnector()->getAcceptor(compound)->sendData(compound);
     return getFSM()->createState<WaitingForACK>();
 }