| 
						
						
						
					 | 
					@ -1,5 +1,16 @@ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					#include "model/hardware/core/TrxBoard.h" | 
					 | 
					 | 
					#include "model/hardware/core/TrxBoard.h" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					template<class T> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					T byteArray2UintLittleEndian(QByteArray& byte) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    T data; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    QDataStream in (byte); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    in.setByteOrder(QDataStream::LittleEndian); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    in >> data; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    return data; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					void TrxBoard::readData() | 
					 | 
					 | 
					void TrxBoard::readData() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					{ | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    _swCounter = 0; | 
					 | 
					 | 
					    _swCounter = 0; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -36,6 +47,16 @@ void TrxBoard::readData() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						} | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					void TrxBoard::sram_clear() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    quint32 num(0); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    while (num < SRAM_SIZE) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					       this->_device.device.writeLong(BAR_SRAM, static_cast<quint32>(num), 0); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					       num += sizeof (quint64); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					void TrxBoard::scenParamsFilling(TrxBoard::eScenParams cmd) | 
					 | 
					 | 
					void TrxBoard::scenParamsFilling(TrxBoard::eScenParams cmd) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					{ | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						static quint8 scenParams = 0; | 
					 | 
					 | 
						static quint8 scenParams = 0; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -183,6 +204,7 @@ void TrxBoard::init() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					{ | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    this->_device.init(); | 
					 | 
					 | 
					    this->_device.init(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    this->_bCtrlMngt->prbCtrlInit(); | 
					 | 
					 | 
					    this->_bCtrlMngt->prbCtrlInit(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    sram_clear(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					void TrxBoard::setScenario(ScenGenHardwareOutput_t scenGenHw) | 
					 | 
					 | 
					void TrxBoard::setScenario(ScenGenHardwareOutput_t scenGenHw) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -483,7 +505,7 @@ void TrxBoard::setMetaData(const QByteArray metaData) const | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            temp.append(metaData[j+num]); | 
					 | 
					 | 
					            temp.append(metaData[j+num]); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        data.push_back(byteArray2UintBigEndian <quint64>(temp)); | 
					 | 
					 | 
					        data.push_back(byteArray2UintLittleEndian <quint64>(temp)); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        temp.clear(); | 
					 | 
					 | 
					        temp.clear(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        num += sizeof (quint64); | 
					 | 
					 | 
					        num += sizeof (quint64); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -519,6 +541,7 @@ QList<quint32> TrxBoard::getAfeReg(eSlaveSelect sel, quint32 afeRegAddr) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                offset = (_fpgaOffset.at(slave0) + _afeModuleOffset.at(i) + afeRegAddr) * 4; | 
					 | 
					 | 
					                offset = (_fpgaOffset.at(slave0) + _afeModuleOffset.at(i) + afeRegAddr) * 4; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                afeRegValue.push_back(this->_device.device.readWord(BAR_REG, offset)); | 
					 | 
					 | 
					                afeRegValue.push_back(this->_device.device.readWord(BAR_REG, offset)); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            this->_afeSlave0->setReadRegEnable(false); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            break; | 
					 | 
					 | 
					            break; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        case slave1 : | 
					 | 
					 | 
					        case slave1 : | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -528,6 +551,7 @@ QList<quint32> TrxBoard::getAfeReg(eSlaveSelect sel, quint32 afeRegAddr) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                offset = (_fpgaOffset.at(slave1) + _afeModuleOffset.at(i) + afeRegAddr) * 4; | 
					 | 
					 | 
					                offset = (_fpgaOffset.at(slave1) + _afeModuleOffset.at(i) + afeRegAddr) * 4; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                afeRegValue.push_back(this->_device.device.readWord(BAR_REG, offset)); | 
					 | 
					 | 
					                afeRegValue.push_back(this->_device.device.readWord(BAR_REG, offset)); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            this->_afeSlave1->setReadRegEnable(false); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            break; | 
					 | 
					 | 
					            break; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        case slave2 : | 
					 | 
					 | 
					        case slave2 : | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -537,13 +561,10 @@ QList<quint32> TrxBoard::getAfeReg(eSlaveSelect sel, quint32 afeRegAddr) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                offset = (_fpgaOffset.at(slave2) + _afeModuleOffset.at(i) + afeRegAddr) * 4; | 
					 | 
					 | 
					                offset = (_fpgaOffset.at(slave2) + _afeModuleOffset.at(i) + afeRegAddr) * 4; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                afeRegValue.push_back(this->_device.device.readWord(BAR_REG, offset)); | 
					 | 
					 | 
					                afeRegValue.push_back(this->_device.device.readWord(BAR_REG, offset)); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            this->_afeSlave2->setReadRegEnable(false); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            break; | 
					 | 
					 | 
					            break; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    this->_afeSlave0->setReadRegEnable(false); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    this->_afeSlave1->setReadRegEnable(false); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    this->_afeSlave2->setReadRegEnable(false); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    return afeRegValue; | 
					 | 
					 | 
					    return afeRegValue; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -667,7 +688,7 @@ void TrxBoard::fillRam(QString path) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            temp.append(sramData[j+num]); | 
					 | 
					 | 
					            temp.append(sramData[j+num]); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        this->_device.device.writeLong(BAR_SRAM, static_cast<quint32>(num), byteArray2UintBigEndian <quint64>(temp)); | 
					 | 
					 | 
					        this->_device.device.writeLong(BAR_SRAM, static_cast<quint32>(num), byteArray2UintLittleEndian <quint64>(temp)); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        temp.clear(); | 
					 | 
					 | 
					        temp.clear(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        num += sizeof (quint64); | 
					 | 
					 | 
					        num += sizeof (quint64); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -960,3 +981,8 @@ void TrxBoard::getFpgasCodeVersion(FpgaCodeVersion* version) const | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					{ | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    this->_misc->getFpgaVersion(version); | 
					 | 
					 | 
					    this->_misc->getFpgaVersion(version); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					void TrxBoard::sramParityClear() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    this->_device.device.writeLong(BAR_SRAM, 0, 0); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
					 | 
					
  |