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

Some clening in test02

parent 43ed4fc8
......@@ -234,13 +234,13 @@ class fmcmasterfip:
# 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', 0)
self.fipcore.write_regname('tx_payld_ctrl', 0x3)
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
......
......@@ -24,13 +24,15 @@ def wait_transmission_termination( dut, ret = 1000, val = 2 ):
util.info_msg("Waiting for termination of transmission (inactive CD_N)")
for i in xrange( ret ):
if dut.fippts.read_regname('fd_rxcdn_cnt') > val-1:
# util.dbg_msg("Finished waiting for cdn after %d tries" % i)
if dut.fippts.read_regname('fd_rxcdn_cnt') >= val:
util.info_msg("Finished waiting for cdn after %d tries" % i)
break
else:
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 ):
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)
......@@ -148,10 +150,10 @@ def test_cdn( dut, maxtries = 50 ):
dut.send_id_dat(0x7F14)
time.sleep(1)
det = dut.fippts.read_regname('fd_rxcdn_cnt')
util.info_msg ("CD_N counter value after transmission: %d" % before )
after = dut.fippts.read_regname('fd_rxcdn_cnt')
util.info_msg ("CD_N counter value after transmission: %d" % after )
det = det - before
det = after - before
if det == 2:
test_result[ 'CD_N during transmission' ] = 1;
......@@ -161,7 +163,7 @@ def test_cdn( dut, maxtries = 50 ):
test_result[ 'CD_N during transmission' ] = 0;
util.err_msg( "CD_N NOT detected during transmission" )
wait_transmission_termination( dut )
wait_transmission_termination(dut, 100, after )
return test_result
......@@ -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")
dut.rst_core()
util.info_msg("TX_ERR counter before transmission: %d" % dut.fippts.read_regname('fd_txerr_cnt') )
dut.send_id_dat(0x7F14)
time.sleep(1)
wait_transmission_termination( dut,100,2 )
# time.sleep(1)
[stat, ctrl, data ] = dut.read_rp_dat()
tmp = verify_rx_status( stat )
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')
......@@ -226,20 +227,19 @@ def test_txerr( dut, box, maxtries = 50 ):
# corrupting serial output!!!!!
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')
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
if det > 0:
test_result[ 'TX_ERR during corrupted transmission' ] = 1;
util.info_msg( "TX_ERR counter after corrupted transmission: %d" % det )
else:
test_result[ 'TX_ERR during corrupted transmission' ] = 0;
......@@ -248,7 +248,7 @@ def test_txerr( dut, box, maxtries = 50 ):
# fixing serial output!!!!!
dut.fippts.write_regname('tx_corrupt',0)
wait_transmission_termination( dut )
wait_transmission_termination( dut, 100, 0 )
return test_result
......@@ -278,12 +278,9 @@ def test_wdgn( dut ):
########################################################################
util.info_msg("\nChecking if WDG_N becomes active during normal transmission")
dut.rst_core()
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)
dut.send_id_dat(0x7F14, 2 )
wait_transmission_termination(dut, 100, 2 )
tmp = dut.fippts.read_regname('fd.wdgn_latch')
......@@ -297,25 +294,23 @@ def test_wdgn( dut ):
###################### test ##################################################
util.info_msg("\nChecking if WDG_N becomes active during very long transmission")
dut.rst_core()
dut.rst_fd()
time.sleep(1)
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', 0xFFF02)
dut.send_id_dat(0x7F14, 0xffff )
wait_transmission_termination(dut, 100, 1 )
wait_transmission_termination(dut, 1000, 2 )
tmp = dut.fippts.read_regname('fd.wdgn_latch')
if tmp == 1:
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['RST_N'] = 0
return result
else:
util.info_msg( "WDG_N went active during corrupted transmission" )
result['WDG_N during long transmission'] = 1
# tmp = dut.fippts.read_regname('fd.wdgn_latch')
# if tmp == 1:
# 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['RST_N'] = 0
# return result
# else:
# util.info_msg( "WDG_N went active during corrupted transmission" )
# result['WDG_N during long transmission'] = 1
tmp = dut.fippts.read_regname('fd.wdgn')
......@@ -391,8 +386,6 @@ def main (card=None, default_directory='.',suite=None,serial=""):
# transmit corrupted frame - make sure that tx error is active
# frame is corrupted by forcing serial data output to constant 0 in gateware
util.section_msg("Testing FD TX_ERR line" )
dut.rst_core()
wait_transmission_termination( dut )
tmp = test_txerr( dut, box )
test_results = dict( test_results.items() + tmp.items() )
del tmp
......@@ -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 frame long enough to activate watchdog
util.section_msg("Testing FD WDG_N line" )
dut.rst_core()
wait_transmission_termination( dut )
tmp = test_wdgn( dut )
test_results = dict( test_results.items() + tmp.items() )
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