From c2ad982b7635377290f1a9d5b05d585258b8494d Mon Sep 17 00:00:00 2001 From: Raymond Knopp <raymond.knopp@eurecom.fr> Date: Tue, 5 Jun 2018 05:47:43 -0700 Subject: [PATCH] vcd debugging for RF simulator --- openair2/UTIL/LOG/vcd_signal_dumper.c | 8 ++--- openair2/UTIL/LOG/vcd_signal_dumper.h | 8 ++--- targets/RT/USER/rfsim.c | 9 +++-- targets/RT/USER/rru_if4p5_simulator.gtkw | 42 ++++++++++++++++++++++++ targets/RT/USER/rru_if4p5_usrp.gtkw | 39 ++++++++-------------- 5 files changed, 70 insertions(+), 36 deletions(-) create mode 100644 targets/RT/USER/rru_if4p5_simulator.gtkw diff --git a/openair2/UTIL/LOG/vcd_signal_dumper.c b/openair2/UTIL/LOG/vcd_signal_dumper.c index a026cfb081..607fe85703 100644 --- a/openair2/UTIL/LOG/vcd_signal_dumper.c +++ b/openair2/UTIL/LOG/vcd_signal_dumper.c @@ -89,9 +89,6 @@ const char* eurecomVariablesNames[] = { "subframe_TX1_UE", "subframe_RX0_UE", "subframe_RX1_UE", - "missed_slot_enb", - "daq_mbox", - "rx_offset_mbox", "ue_rx_offset", "diff2", "hw_subframe", @@ -222,7 +219,10 @@ const char* eurecomFunctionsNames[] = { "ue_lock_mutex_rxtx_for_cnt_decrement1", "ue_lock_mutex_rxtx_for_cnt_increment0", "ue_lock_mutex_rxtx_for_cnt_increment1", - + /* simulation signals */ + "do_DL_sig", + "do_UL_sig", + "UE_trx_read", /* RRH signals */ "eNB_tx", "eNB_rx", diff --git a/openair2/UTIL/LOG/vcd_signal_dumper.h b/openair2/UTIL/LOG/vcd_signal_dumper.h index a47cdc059d..c610883c22 100644 --- a/openair2/UTIL/LOG/vcd_signal_dumper.h +++ b/openair2/UTIL/LOG/vcd_signal_dumper.h @@ -65,9 +65,6 @@ typedef enum { VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_TX1_UE, VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_RX0_UE, VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_RX1_UE, - VCD_SIGNAL_DUMPER_VARIABLES_MISSED_SLOTS_ENB, - VCD_SIGNAL_DUMPER_VARIABLES_DAQ_MBOX, - VCD_SIGNAL_DUMPER_VARIABLES_UE_OFFSET_MBOX, VCD_SIGNAL_DUMPER_VARIABLES_UE_RX_OFFSET, VCD_SIGNAL_DUMPER_VARIABLES_DIFF, VCD_SIGNAL_DUMPER_VARIABLES_HW_SUBFRAME, @@ -199,7 +196,10 @@ typedef enum { VCD_SIGNAL_DUMPER_FUNCTIONS_UE_LOCK_MUTEX_RXTX_FOR_CNT_DECREMENT1, VCD_SIGNAL_DUMPER_FUNCTIONS_UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT0, VCD_SIGNAL_DUMPER_FUNCTIONS_UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT1, - + /* SIMULATION signals */ + VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_DL_SIGNAL, + VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_UL_SIGNAL, + VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_UE_TRX_READ, /* RRH signals */ VCD_SIGNAL_DUMPER_FUNCTIONS_eNB_TX, VCD_SIGNAL_DUMPER_FUNCTIONS_eNB_RX, diff --git a/targets/RT/USER/rfsim.c b/targets/RT/USER/rfsim.c index d8e5fbc825..cc9b70295a 100644 --- a/targets/RT/USER/rfsim.c +++ b/targets/RT/USER/rfsim.c @@ -51,6 +51,7 @@ #include "common/ran_context.h" #include "PHY/defs_UE.h" #include "PHY/defs_eNB.h" +#include "vcd_signal_dumper.h" RAN_CONTEXT_t RC; extern PHY_VARS_UE ***PHY_vars_UE_g; @@ -192,7 +193,7 @@ int ru_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void ** LOG_D(SIM,"RU_trx_read generating UL subframe %d (Ts %llu, current TS %llu)\n", subframe,(unsigned long long)*ptimestamp, (unsigned long long)sim.current_ru_rx_timestamp[ru_id][CC_id]); - + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_UL_SIGNAL,1); do_UL_sig(&sim, subframe, 0, // abstraction_flag @@ -200,6 +201,7 @@ int ru_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void ** 0, // frame is only used for abstraction ru_id, CC_id); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_UL_SIGNAL,0); } sim.last_ru_rx_timestamp[ru_id][CC_id] += RC.ru[ru_id]->frame_parms.samples_per_tti; sample_count += RC.ru[ru_id]->frame_parms.samples_per_tti; @@ -211,6 +213,7 @@ int ru_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void ** int UE_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void **buff, int nsamps, int cc) { + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_UE_TRX_READ,1); int UE_id = device->Mod_id; int CC_id = device->CC_id; @@ -264,6 +267,7 @@ int UE_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void ** UE_id,nsamps,subframe, (int)(sim.last_UE_rx_timestamp[UE_id][CC_id]%sptti)); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_DL_SIGNAL,1); do_DL_sig(&sim, subframe, sim.last_UE_rx_timestamp[UE_id][CC_id]%sptti, @@ -272,6 +276,7 @@ int UE_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void ** &PHY_vars_UE_g[UE_id][CC_id]->frame_parms, UE_id, CC_id); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_DL_SIGNAL,0); LOG_D(PHY,"UE %d: DL simulation 6: UE_trx_read @ TS %"PRIi64" (%"PRIi64")=> frame %d, subframe %d\n", UE_id, sim.current_UE_rx_timestamp[UE_id][CC_id], sim.last_UE_rx_timestamp[UE_id][CC_id], @@ -286,7 +291,7 @@ int UE_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void ** } - + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_UE_TRX_READ,0); return(nsamps); } diff --git a/targets/RT/USER/rru_if4p5_simulator.gtkw b/targets/RT/USER/rru_if4p5_simulator.gtkw new file mode 100644 index 0000000000..40ed3b5c7d --- /dev/null +++ b/targets/RT/USER/rru_if4p5_simulator.gtkw @@ -0,0 +1,42 @@ +[*] +[*] GTKWave Analyzer v3.3.58 (w)1999-2014 BSI +[*] Tue Jun 5 12:44:02 2018 +[*] +[dumpfile] "/tmp/openair_dump_UE.vcd" +[dumpfile_mtime] "Tue Jun 5 12:38:07 2018" +[dumpfile_size] 21826387 +[savefile] "/home/knopp/oai/openairinterface5g/targets/RT/USER/rru_if4p5_simulator.gtkw" +[timestart] 6591570000 +[size] 1301 716 +[pos] 309 0 +*-22.793451 29983948856 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +[sst_width] 312 +[signals_width] 262 +[sst_expanded] 1 +[sst_vpaned_height] 294 +@29 +functions.UE_trx_read +@28 +functions.trx_read +functions.trx_write +@24 +variables.trx_write_flags[63:0] +@28 +functions.trx_write_if +functions.send_if4 +functions.trx_read_if +functions.recv_if4 +@24 +variables.trx_ts[63:0] +variables.trx_tst[63:0] +variables.frame_number_RX0_RU[63:0] +variables.subframe_number_RX0_RU[63:0] +variables.frame_number_TX0_RU[63:0] +variables.subframe_number_TX0_RU[63:0] +@28 +functions.do_DL_sig +functions.do_UL_sig +functions.phy_procedures_ru_feprx0 +functions.phy_procedures_ru_feptx_ofdm0 +[pattern_trace] 1 +[pattern_trace] 0 diff --git a/targets/RT/USER/rru_if4p5_usrp.gtkw b/targets/RT/USER/rru_if4p5_usrp.gtkw index 1a13e6d15f..93bac49812 100644 --- a/targets/RT/USER/rru_if4p5_usrp.gtkw +++ b/targets/RT/USER/rru_if4p5_usrp.gtkw @@ -1,23 +1,23 @@ [*] [*] GTKWave Analyzer v3.3.58 (w)1999-2014 BSI -[*] Sun Jan 15 07:26:50 2017 +[*] Tue Jun 5 09:36:17 2018 [*] -[dumpfile] "/tmp/openair_dump_eNB.vcd" -[dumpfile_mtime] "Sun Jan 15 07:04:19 2017" -[dumpfile_size] 18140627 -[savefile] "/home/uprru1/oai/openairinterface5g/targets/RT/USER/rru_if4p5_usrp.gtkw" -[timestart] 29977510000 +[dumpfile] "/tmp/openair_dump_UE.vcd" +[dumpfile_mtime] "Tue Jun 5 09:22:52 2018" +[dumpfile_size] 23057775 +[savefile] "/home/knopp/oai/openairinterface5g/targets/RT/USER/rru_if4p5_usrp.gtkw" +[timestart] 25050480000 [size] 1301 716 [pos] 309 0 *-21.793451 29983948856 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -[sst_width] 284 +[sst_width] 312 [signals_width] 262 [sst_expanded] 1 [sst_vpaned_height] 294 @28 functions.trx_read functions.trx_write -@25 +@24 variables.trx_write_flags[63:0] @28 functions.trx_write_if @@ -27,23 +27,10 @@ functions.recv_if4 @24 variables.trx_ts[63:0] variables.trx_tst[63:0] -@28 -functions.eNB_thread_rxtx0 -@24 -variables.frame_number_RX0_eNB[63:0] -variables.subframe_number_RX0_eNB[63:0] -variables.frame_number_TX0_eNB[63:0] -variables.subframe_number_TX0_eNB[63:0] -@28 -functions.eNB_thread_rxtx1 -@24 -variables.frame_number_RX1_eNB[63:0] -variables.subframe_number_RX1_eNB[63:0] -variables.frame_number_TX1_eNB[63:0] -variables.subframe_number_TX1_eNB[63:0] -@28 -functions.phy_eNB_ofdm_mod_l -functions.phy_eNB_slot_fep -functions.phy_enb_prach_rx +variables.frame_number_RX0_RU[63:0] +variables.subframe_number_RX0_RU[63:0] +variables.frame_number_TX0_RU[63:0] +@25 +variables.subframe_number_TX0_RU[63:0] [pattern_trace] 1 [pattern_trace] 0 -- GitLab