import numpy as np from __main__ import RMAPPlugin0 from test_fft.register_addresses import * import test_fft.print_custom as prnt def is_MEM_IN_SM_Emty( address ): ret = 0 fft_reg = RMAPPlugin0.Read( address, 1) MEM_IN_SM_Empty = (fft_reg[0] & 0x01f00000) >> 20 if MEM_IN_SM_Empty == 0x1f: ret = 1 return ret def out_locked_AND_out_reuse_AND_out_ren( address ): # reuse => 0111 1111 1111 1111 RMAPPlugin0.Write( address, [0x00007fff] ) #================================== #================================== def is_MEM_OUT_SM_Empty( address ): ret = 0 sm_reg = RMAPPlugin0.Read( address, 1) MEM_OUT_SM_Empty = (sm_reg[0] & 0x00000030) >> 4 if MEM_OUT_SM_Empty == 0x3: ret = 1 return ret def is_MEM_OUT_SM_Full( address ): ret = 0 sm_reg = RMAPPlugin0.Read( address, 1) MEM_OUT_SM_Full = (sm_reg[0] & 0x0000000c) >> 2 if MEM_OUT_SM_Full != 0x0: ret = 1 return ret def is_MEM_OUT_SM_Full_FIFO_0( address ): ret = 0 sm_reg = RMAPPlugin0.Read( address, 1) MEM_OUT_SM_Full = (sm_reg[0] & 0x00000004) >> 2 if MEM_OUT_SM_Full == 0x01: ret = 1 return ret def is_MEM_OUT_SM_Full_FIFO_1( address ): ret = 0 sm_reg = RMAPPlugin0.Read( address, 1) MEM_OUT_SM_Full = (sm_reg[0] & 0x00000008) >> 3 if MEM_OUT_SM_Full == 0x01: ret = 1 return ret def wait_for_FIFO_0_Full( address ): counter = 0 while ( is_MEM_OUT_SM_Full_FIFO_0( address ) == 0 ): prnt.print_custom( "FIFO_0 not full " + str(counter) ) counter = counter + 1 if counter == 10: break def wait_for_FIFO_1_Full( address ): counter = 0 while ( is_MEM_OUT_SM_Full_FIFO_1( address ) == 0 ): prnt.print_custom( "FIFO_1 not full " + str(counter)) counter = counter + 1 if counter == 10: break def wait_for_FIFO_Full( fifo, address ): if fifo == 0: wait_for_FIFO_0_Full( address ) elif fifo == 1: wait_for_FIFO_1_Full( address ) else: prnt.print_custom( "ERR *** wait_for_FIFO_Full *** unexpted value for parameter [fifo]" ) def wait_for_FIFO_0_or_1_Full( address ): counter = 0 sm_reg = RMAPPlugin0.Read( address, 1) MEM_OUT_SM_Full = (sm_reg[0] & 0x0000000c) >> 2 while ( MEM_OUT_SM_Full == 0 ): prnt.print_custom( "FIFO 0 or 1 not full " + str(counter)) counter = counter + 1 if counter == 10: break sm_reg = RMAPPlugin0.Read( address, 1) MEM_OUT_SM_Full = (sm_reg[0] & 0x0000000c) >> 2 RMAPPlugin0.ProcessPendingEvents()