Hi,
In my environment I have 4 i2c slaves and one i2c master.My DUT is I2C Master/Slave Core.I have implemented 4 sequencers for slave and 2 sequencers for master.I am testing for slave mode .Please see the below code for starting the sequencer.
task iicTestBaseVseq::startSequences;
fork
m_dutTrafficVseq.start(m_sequencer);///master wishbone i/f sequencer to configure registers
fork
m_xtTrafficVseq.start(m_sequencer);///dut traffic sequencer
m_iicSlaveTx1FrameSeq.start(m_device1Sequencer);//i2c slave 1
m_iicSlaveRx1FrameSeq.start(m_device2Sequencer);//i2c slave 2
m_iicSlaveTx2FrameSeq.start(m_device3Sequencer);//i2c slave 3
m_iicSlaveRx2FrameSeq.start(m_device4Sequencer);//i2c slave 4
join
join_any
endtask
and to setup the corresponding master slave sequences in below lines of code.
function void iicTest_SlaveTx_Vseq::setupMasterSeqList;
//DUT Master Sequence List
m_dutMasterSeqsList.push_back(m_wbMasterTxFrameSeq);///wishbone master Reg.Configure:prescale,slave mode,command,control,status
m_dutMasterSeqsList.push_back(m_wbMasterRxFrameSeq);//ack from reg slave
m_dutTrafficVseq.m_masterSeqsList = m_dutMasterSeqsList;
m_xtMasterSeqsList.push_back(m_iicMasterTxFrameSeq);//i2c master sequence-generates start and 7 bit address(slave) r/w=1(read)
m_xtMasterSeqsList.push_back(m_iicMasterRxFrameSeq);//ack from master for data read from slave.
///slave seq list
m_xtMasterSeqsList.push_back(m_iicSlaveTx1FrameSeq);//slave1 data transaction to master
m_xtMasterSeqsList.push_back(m_iicSlaveRx1FrameSeq);//slave2 data transaction to master
m_xtMasterSeqsList.push_back(m_iicSlaveTx2FrameSeq);//slave3 data transaction to master
m_xtMasterSeqsList.push_back(m_iicSlaveRx2FrameSeq);//slave4 data transaction to master
m_xtTrafficVseq.m_masterSeqsList = m_xtMasterSeqsList;
endfunction
but it is hanging in the driver.Please see the transcript below.
UVM_INFO /home/sivaramanc/I2C_Mas_Slv_Core_UVM_Envir/agents/wb_agent/wb_driver.svh(121) @ 20930000: uvm_test_top.m_env.m_wb_agent.m_wb_driver [m_wb_driver] Finished Wishbone write.
UVM_INFO /home/sivaramanc/I2C_Mas_Slv_Core_UVM_Envir/agents/wb_agent/wb_driver.svh(82) @ 20930000: uvm_test_top.m_env.m_wb_agent.m_wb_driver [m_wb_driver] Getting Next Item .
THE same code is running perfectly for master mode of operation without hanging.
If any one Knows the problem,Please help me to resolve the issue.
Thanks,
sivaraman