Commit 70b0f243 authored by Marek Gumiński's avatar Marek Gumiński

Some clening in test02

parent 43ed4fc8
...@@ -234,13 +234,13 @@ class fmcmasterfip: ...@@ -234,13 +234,13 @@ class fmcmasterfip:
# Send ID_DAT # Send ID_DAT
def send_id_dat(self, varid): def send_id_dat(self, varid, flen = 2):
self.fipcore.write_regname('tx_ctrl', 1) self.fipcore.write_regname('tx_ctrl', 1)
self.fipcore.write_regname('tx_ctrl', 0) self.fipcore.write_regname('tx_ctrl', 0)
self.fipcore.write_regname('tx_payld_ctrl', 0x3) self.fipcore.write_regname('tx_payld_ctrl', 0x3)
self.fipcore.write_regname('tx_payld_reg1', varid) self.fipcore.write_regname('tx_payld_reg1', varid)
self.fipcore.write_regname('tx_ctrl', 0x202) self.fipcore.write_regname('tx_ctrl', 0x02+(flen<<8) )
# Read RP_DAT # Read RP_DAT
......
...@@ -24,13 +24,15 @@ def wait_transmission_termination( dut, ret = 1000, val = 2 ): ...@@ -24,13 +24,15 @@ def wait_transmission_termination( dut, ret = 1000, val = 2 ):
util.info_msg("Waiting for termination of transmission (inactive CD_N)") util.info_msg("Waiting for termination of transmission (inactive CD_N)")
for i in xrange( ret ): for i in xrange( ret ):
if dut.fippts.read_regname('fd_rxcdn_cnt') > val-1: if dut.fippts.read_regname('fd_rxcdn_cnt') >= val:
# util.dbg_msg("Finished waiting for cdn after %d tries" % i) util.info_msg("Finished waiting for cdn after %d tries" % i)
break break
else: else:
time.sleep(0.001) time.sleep(0.001)
# else:
util.info_msg("Didn't find specified number of frames (%d/%d)" % (dut.fippts.read_regname('fd_rxcdn_cnt'), val ) )
for i in xrange( ret ): for i in xrange( ret ):
if dut.fippts.read_regname('fd.cd_n') == 1: if dut.fippts.read_regname('fd.cd_n') == 1:
util.info_msg("CD_N line did go high after transmission termination after %d tries." %i) util.info_msg("CD_N line did go high after transmission termination after %d tries." %i)
...@@ -148,10 +150,10 @@ def test_cdn( dut, maxtries = 50 ): ...@@ -148,10 +150,10 @@ def test_cdn( dut, maxtries = 50 ):
dut.send_id_dat(0x7F14) dut.send_id_dat(0x7F14)
time.sleep(1) time.sleep(1)
det = dut.fippts.read_regname('fd_rxcdn_cnt') after = dut.fippts.read_regname('fd_rxcdn_cnt')
util.info_msg ("CD_N counter value after transmission: %d" % before ) util.info_msg ("CD_N counter value after transmission: %d" % after )
det = det - before det = after - before
if det == 2: if det == 2:
test_result[ 'CD_N during transmission' ] = 1; test_result[ 'CD_N during transmission' ] = 1;
...@@ -161,7 +163,7 @@ def test_cdn( dut, maxtries = 50 ): ...@@ -161,7 +163,7 @@ def test_cdn( dut, maxtries = 50 ):
test_result[ 'CD_N during transmission' ] = 0; test_result[ 'CD_N during transmission' ] = 0;
util.err_msg( "CD_N NOT detected during transmission" ) util.err_msg( "CD_N NOT detected during transmission" )
wait_transmission_termination( dut ) wait_transmission_termination(dut, 100, after )
return test_result return test_result
...@@ -195,18 +197,17 @@ def test_txerr( dut, box, maxtries = 50 ): ...@@ -195,18 +197,17 @@ def test_txerr( dut, box, maxtries = 50 ):
######################################################################## ########################################################################
util.info_msg("\nChecking if TX_ERR is not going active during normal transmission") util.info_msg("\nChecking if TX_ERR is not going active during normal transmission")
dut.rst_core() dut.rst_core()
util.info_msg("TX_ERR counter before transmission: %d" % dut.fippts.read_regname('fd_txerr_cnt') ) util.info_msg("TX_ERR counter before transmission: %d" % dut.fippts.read_regname('fd_txerr_cnt') )
dut.send_id_dat(0x7F14) dut.send_id_dat(0x7F14)
wait_transmission_termination( dut,100,2 )
time.sleep(1)
# time.sleep(1)
[stat, ctrl, data ] = dut.read_rp_dat() [stat, ctrl, data ] = dut.read_rp_dat()
tmp = verify_rx_status( stat ) tmp = verify_rx_status( stat )
test_result = util.merge_dictionaries_prefix(test_result, tmp, "", "Transmission verification during TX_ERR test. " ) test_result = util.merge_dictionaries_prefix(test_result, tmp, "", "Transmission verification during TX_ERR test. " )
time.sleep(0.5) # time.sleep(0.5)
det = dut.fippts.read_regname('fd_txerr_cnt') det = dut.fippts.read_regname('fd_txerr_cnt')
...@@ -226,20 +227,19 @@ def test_txerr( dut, box, maxtries = 50 ): ...@@ -226,20 +227,19 @@ def test_txerr( dut, box, maxtries = 50 ):
# corrupting serial output!!!!! # corrupting serial output!!!!!
dut.fippts.write_regname('tx_corrupt',1) dut.fippts.write_regname('tx_corrupt',1)
dut.send_id_dat(0x7F14)
dut.fipcore.write_regname('tx_ctrl', 1)
dut.fipcore.write_regname('tx_ctrl', 0)
dut.fipcore.write_regname('tx_payld_ctrl', 0x3)
dut.fipcore.write_regname('tx_payld_reg1', 0x7F14)
dut.fipcore.write_regname('tx_ctrl', 0x202)
time.sleep(0.5) # cant use wait_transmission_termination since there is no transmission
time.sleep(1)
det = dut.fippts.read_regname('fd_txerr_cnt') det = dut.fippts.read_regname('fd_txerr_cnt')
util.info_msg("Number of frames transmitted: %d (should be zero, since data line is corrupted)" % dut.fippts.read_regname('fd_rxcdn_cnt') )
# data line is hold constant, so that invalid frame is being transmitted # data line is hold constant, so that invalid frame is being transmitted
if det > 0: if det > 0:
test_result[ 'TX_ERR during corrupted transmission' ] = 1; test_result[ 'TX_ERR during corrupted transmission' ] = 1;
util.info_msg( "TX_ERR counter after corrupted transmission: %d" % det ) util.info_msg( "TX_ERR counter after corrupted transmission: %d" % det )
else: else:
test_result[ 'TX_ERR during corrupted transmission' ] = 0; test_result[ 'TX_ERR during corrupted transmission' ] = 0;
...@@ -248,7 +248,7 @@ def test_txerr( dut, box, maxtries = 50 ): ...@@ -248,7 +248,7 @@ def test_txerr( dut, box, maxtries = 50 ):
# fixing serial output!!!!! # fixing serial output!!!!!
dut.fippts.write_regname('tx_corrupt',0) dut.fippts.write_regname('tx_corrupt',0)
wait_transmission_termination( dut ) wait_transmission_termination( dut, 100, 0 )
return test_result return test_result
...@@ -278,12 +278,9 @@ def test_wdgn( dut ): ...@@ -278,12 +278,9 @@ def test_wdgn( dut ):
######################################################################## ########################################################################
util.info_msg("\nChecking if WDG_N becomes active during normal transmission") util.info_msg("\nChecking if WDG_N becomes active during normal transmission")
dut.rst_core() dut.rst_core()
dut.fipcore.write_regname('tx_ctrl', 1)
dut.fipcore.write_regname('tx_ctrl', 0) dut.send_id_dat(0x7F14, 2 )
dut.fipcore.write_regname('tx_payld_ctrl', 0x3)
dut.fipcore.write_regname('tx_payld_reg1', 0x7F14)
dut.fipcore.write_regname('tx_ctrl', 0x202)
wait_transmission_termination(dut, 100, 2 ) wait_transmission_termination(dut, 100, 2 )
tmp = dut.fippts.read_regname('fd.wdgn_latch') tmp = dut.fippts.read_regname('fd.wdgn_latch')
...@@ -297,25 +294,23 @@ def test_wdgn( dut ): ...@@ -297,25 +294,23 @@ def test_wdgn( dut ):
###################### test ################################################## ###################### test ##################################################
util.info_msg("\nChecking if WDG_N becomes active during very long transmission") util.info_msg("\nChecking if WDG_N becomes active during very long transmission")
dut.rst_core() dut.rst_core()
dut.rst_fd()
time.sleep(1)
dut.fipcore.write_regname('tx_ctrl', 1)
dut.fipcore.write_regname('tx_ctrl', 0) dut.send_id_dat(0x7F14, 0xffff )
dut.fipcore.write_regname('tx_payld_ctrl', 0x3)
dut.fipcore.write_regname('tx_payld_reg1', 0x7F14)
dut.fipcore.write_regname('tx_ctrl', 0xFFF02)
wait_transmission_termination(dut, 100, 1 ) wait_transmission_termination(dut, 1000, 2 )
tmp = dut.fippts.read_regname('fd.wdgn_latch') # tmp = dut.fippts.read_regname('fd.wdgn_latch')
if tmp == 1: # if tmp == 1:
util.err_msg( "WDG_N did not go active during corrupted transmission\nCan't continue with FieldDrive RST_N test" ) # util.err_msg( "WDG_N did not go active during corrupted transmission\nCan't continue with FieldDrive RST_N test" )
result['WDG_N during long transmission'] = 0 # result['WDG_N during long transmission'] = 0
result['RST_N'] = 0 # result['RST_N'] = 0
return result # return result
else: # else:
util.info_msg( "WDG_N went active during corrupted transmission" ) # util.info_msg( "WDG_N went active during corrupted transmission" )
result['WDG_N during long transmission'] = 1 # result['WDG_N during long transmission'] = 1
tmp = dut.fippts.read_regname('fd.wdgn') tmp = dut.fippts.read_regname('fd.wdgn')
...@@ -391,8 +386,6 @@ def main (card=None, default_directory='.',suite=None,serial=""): ...@@ -391,8 +386,6 @@ def main (card=None, default_directory='.',suite=None,serial=""):
# transmit corrupted frame - make sure that tx error is active # transmit corrupted frame - make sure that tx error is active
# frame is corrupted by forcing serial data output to constant 0 in gateware # frame is corrupted by forcing serial data output to constant 0 in gateware
util.section_msg("Testing FD TX_ERR line" ) util.section_msg("Testing FD TX_ERR line" )
dut.rst_core()
wait_transmission_termination( dut )
tmp = test_txerr( dut, box ) tmp = test_txerr( dut, box )
test_results = dict( test_results.items() + tmp.items() ) test_results = dict( test_results.items() + tmp.items() )
del tmp del tmp
...@@ -403,8 +396,6 @@ def main (card=None, default_directory='.',suite=None,serial=""): ...@@ -403,8 +396,6 @@ def main (card=None, default_directory='.',suite=None,serial=""):
# transmit regular frame and make sure that FD WDG line is inactive # transmit regular frame and make sure that FD WDG line is inactive
# transmit frame long enough to activate watchdog # transmit frame long enough to activate watchdog
util.section_msg("Testing FD WDG_N line" ) util.section_msg("Testing FD WDG_N line" )
dut.rst_core()
wait_transmission_termination( dut )
tmp = test_wdgn( dut ) tmp = test_wdgn( dut )
test_results = dict( test_results.items() + tmp.items() ) test_results = dict( test_results.items() + tmp.items() )
del tmp del tmp
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment