From 5b17b036ba35e2529e79f56cc46c5bab8dbb14fd Mon Sep 17 00:00:00 2001
From: Cedric Roux <cedric.roux@eurecom.fr>
Date: Wed, 8 Aug 2018 15:30:24 +0200
Subject: [PATCH] T: improve to_vcd tracer

Make it compatible with 'template' gtwave files as found in openair's
repository.

The type VCD_NAME was added to the VCD IDs in T_messages.txt.
The database processing code was adapted to use it.
The tracer to_vcd was adapted to use it and render the produced vcd
output compatible with the 'template' gtkwave files.

When running to_vcd, do not forget to pass -vcd to use this feature.
---
 common/utils/T/T_messages.txt    | 319 +++++++++++++++++++++++++++++++
 common/utils/T/tracer/database.c |  15 ++
 common/utils/T/tracer/database.h |   1 +
 common/utils/T/tracer/to_vcd.c   |  59 +++++-
 4 files changed, 385 insertions(+), 9 deletions(-)

diff --git a/common/utils/T/T_messages.txt b/common/utils/T/T_messages.txt
index 9432155147e..7ecf551cbf0 100644
--- a/common/utils/T/T_messages.txt
+++ b/common/utils/T/T_messages.txt
@@ -955,514 +955,642 @@ ID = VCD_VARIABLE_FRAME_NUMBER_TX0_ENB
     DESC = VCD variable FRAME_NUMBER_TX0_ENB
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = frame_number_TX0_eNB
 ID = VCD_VARIABLE_FRAME_NUMBER_TX1_ENB
     DESC = VCD variable FRAME_NUMBER_TX1_ENB
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = frame_number_TX1_eNB
 ID = VCD_VARIABLE_FRAME_NUMBER_RX0_ENB
     DESC = VCD variable FRAME_NUMBER_RX0_ENB
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = frame_number_RX0_eNB
 ID = VCD_VARIABLE_FRAME_NUMBER_RX1_ENB
     DESC = VCD variable FRAME_NUMBER_RX1_ENB
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = frame_number_RX1_eNB
 ID = VCD_VARIABLE_SUBFRAME_NUMBER_TX0_ENB
     DESC = VCD variable SUBFRAME_NUMBER_TX0_ENB
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = subframe_number_TX0_eNB
 ID = VCD_VARIABLE_SUBFRAME_NUMBER_TX1_ENB
     DESC = VCD variable SUBFRAME_NUMBER_TX1_ENB
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = subframe_number_TX1_eNB
 ID = VCD_VARIABLE_SUBFRAME_NUMBER_RX0_ENB
     DESC = VCD variable SUBFRAME_NUMBER_RX0_ENB
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = subframe_number_RX0_eNB
 ID = VCD_VARIABLE_SUBFRAME_NUMBER_RX1_ENB
     DESC = VCD variable SUBFRAME_NUMBER_RX1_ENB
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = subframe_number_RX1_eNB
 ID = VCD_VARIABLE_FRAME_NUMBER_TX0_RU
     DESC = VCD variable FRAME_NUMBER_TX0_RU
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = frame_number_TX0_RU
 ID = VCD_VARIABLE_FRAME_NUMBER_TX1_RU
     DESC = VCD variable FRAME_NUMBER_TX1_RU
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = frame_number_TX1_RU
 ID = VCD_VARIABLE_FRAME_NUMBER_RX0_RU
     DESC = VCD variable FRAME_NUMBER_RX0_RU
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = frame_number_RX0_RU
 ID = VCD_VARIABLE_FRAME_NUMBER_RX1_RU
     DESC = VCD variable FRAME_NUMBER_RX1_RU
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = frame_number_RX1_RU
 ID = VCD_VARIABLE_SUBFRAME_NUMBER_TX0_RU
     DESC = VCD variable SUBFRAME_NUMBER_TX0_RU
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = subframe_number_TX0_RU
 ID = VCD_VARIABLE_SUBFRAME_NUMBER_TX1_RU
     DESC = VCD variable SUBFRAME_NUMBER_TX1_RU
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = subframe_number_TX1_RU
 ID = VCD_VARIABLE_SUBFRAME_NUMBER_RX0_RU
     DESC = VCD variable SUBFRAME_NUMBER_RX0_RU
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = subframe_number_RX0_RU
 ID = VCD_VARIABLE_SUBFRAME_NUMBER_RX1_RU
     DESC = VCD variable SUBFRAME_NUMBER_RX1_RU
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = subframe_number_RX1_RU
 ID = VCD_VARIABLE_RUNTIME_TX_ENB
     DESC = VCD variable RUNTIME_TX_ENB
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = runtime_TX_eNB
 ID = VCD_VARIABLE_RUNTIME_RX_ENB
     DESC = VCD variable RUNTIME_RX_ENB
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = runtime_RX_eNB
 ID = VCD_VARIABLE_FRAME_NUMBER_TX0_UE
     DESC = VCD variable FRAME_NUMBER_TX0_UE
     GROUP = ALL:VCD:UE:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = frame_number_TX0_UE
 ID = VCD_VARIABLE_FRAME_NUMBER_TX1_UE
     DESC = VCD variable FRAME_NUMBER_TX1_UE
     GROUP = ALL:VCD:UE:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = frame_number_TX1_UE
 ID = VCD_VARIABLE_FRAME_NUMBER_RX0_UE
     DESC = VCD variable FRAME_NUMBER_RX0_UE
     GROUP = ALL:VCD:UE:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = frame_number_RX0_UE
 ID = VCD_VARIABLE_FRAME_NUMBER_RX1_UE
     DESC = VCD variable FRAME_NUMBER_RX1_UE
     GROUP = ALL:VCD:UE:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = frame_number_RX1_UE
 ID = VCD_VARIABLE_SUBFRAME_NUMBER_TX0_UE
     DESC = VCD variable SUBFRAME_NUMBER_TX0_UE
     GROUP = ALL:VCD:UE:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = subframe_TX0_UE
 ID = VCD_VARIABLE_SUBFRAME_NUMBER_TX1_UE
     DESC = VCD variable SUBFRAME_NUMBER_TX1_UE
     GROUP = ALL:VCD:UE:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = subframe_TX1_UE
 ID = VCD_VARIABLE_SUBFRAME_NUMBER_RX0_UE
     DESC = VCD variable SUBFRAME_NUMBER_RX0_UE
     GROUP = ALL:VCD:UE:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = subframe_RX0_UE
 ID = VCD_VARIABLE_SUBFRAME_NUMBER_RX1_UE
     DESC = VCD variable SUBFRAME_NUMBER_RX1_UE
     GROUP = ALL:VCD:UE:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = subframe_RX1_UE
 ID = VCD_VARIABLE_UE_RX_OFFSET
     DESC = VCD variable UE_RX_OFFSET
     GROUP = ALL:VCD:UE:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue_rx_offset
 ID = VCD_VARIABLE_DIFF
     DESC = VCD variable DIFF
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = diff2
 ID = VCD_VARIABLE_HW_SUBFRAME
     DESC = VCD variable HW_SUBFRAME
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = hw_subframe
 ID = VCD_VARIABLE_HW_FRAME
     DESC = VCD variable HW_FRAME
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = hw_frame
 ID = VCD_VARIABLE_HW_SUBFRAME_RX
     DESC = VCD variable HW_SUBFRAME_RX
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = hw_subframe_rx
 ID = VCD_VARIABLE_HW_FRAME_RX
     DESC = VCD variable HW_FRAME_RX
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = hw_frame_rx
 ID = VCD_VARIABLE_TXCNT
     DESC = VCD variable TXCNT
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = txcnt
 ID = VCD_VARIABLE_RXCNT
     DESC = VCD variable RXCNT
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = rxcnt
 ID = VCD_VARIABLE_TRX_TS
     DESC = VCD variable TRX_TS
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = trx_ts
 ID = VCD_VARIABLE_TRX_TST
     DESC = VCD variable TRX_TST
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = trx_tst
 ID = VCD_VARIABLE_TRX_TS_UE
     DESC = VCD variable TRX_TS_UE
     GROUP = ALL:VCD:UE:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = trx_ts_ue
 ID = VCD_VARIABLE_TRX_TST_UE
     DESC = VCD variable TRX_TST_UE
     GROUP = ALL:VCD:UE:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = trx_tst_ue
 ID = VCD_VARIABLE_TRX_WRITE_FLAGS
     DESC = VCD variable TRX_WRITE_FLAGS
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = trx_write_flags
 ID = VCD_VARIABLE_TX_TS
     DESC = VCD variable TX_TS
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = tx_ts
 ID = VCD_VARIABLE_RX_TS
     DESC = VCD variable RX_TS
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = rx_ts
 ID = VCD_VARIABLE_RX_HWCNT
     DESC = VCD variable RX_HWCNT
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = hw_cnt_rx
 ID = VCD_VARIABLE_RX_LHWCNT
     DESC = VCD variable RX_LHWCNT
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = lhw_cnt_rx
 ID = VCD_VARIABLE_TX_HWCNT
     DESC = VCD variable TX_HWCNT
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = hw_cnt_tx
 ID = VCD_VARIABLE_TX_LHWCNT
     DESC = VCD variable TX_LHWCNT
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = lhw_cnt_tx
 ID = VCD_VARIABLE_RX_PCK
     DESC = VCD variable RX_PCK
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = pck_rx
 ID = VCD_VARIABLE_TX_PCK
     DESC = VCD variable TX_PCK
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = pck_tx
 ID = VCD_VARIABLE_RX_SEQ_NUM
     DESC = VCD variable RX_SEQ_NUM
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = rx_seq_num
 ID = VCD_VARIABLE_RX_SEQ_NUM_PRV
     DESC = VCD variable RX_SEQ_NUM_PRV
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = rx_seq_num_prv
 ID = VCD_VARIABLE_TX_SEQ_NUM
     DESC = VCD variable TX_SEQ_NUM
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = tx_seq_num
 ID = VCD_VARIABLE_CNT
     DESC = VCD variable CNT
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = cnt
 ID = VCD_VARIABLE_DUMMY_DUMP
     DESC = VCD variable DUMMY_DUMP
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = dummy_dump
 ID = VCD_VARIABLE_ITTI_SEND_MSG
     DESC = VCD variable ITTI_SEND_MSG
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = itti_send_msg
 ID = VCD_VARIABLE_ITTI_POLL_MSG
     DESC = VCD variable ITTI_POLL_MSG
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = itti_poll_msg
 ID = VCD_VARIABLE_ITTI_RECV_MSG
     DESC = VCD variable ITTI_RECV_MSG
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = itti_recv_msg
 ID = VCD_VARIABLE_ITTI_ALLOC_MSG
     DESC = VCD variable ITTI_ALLOC_MSG
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = itti_alloc_msg
 ID = VCD_VARIABLE_MP_ALLOC
     DESC = VCD variable MP_ALLOC
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = mp_alloc
 ID = VCD_VARIABLE_MP_FREE
     DESC = VCD variable MP_FREE
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = mp_free
 ID = VCD_VARIABLE_UE_INST_CNT_RX
     DESC = VCD variable UE_INST_CNT_RX
     GROUP = ALL:VCD:UE:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue_inst_cnt_rx
 ID = VCD_VARIABLE_UE_INST_CNT_TX
     DESC = VCD variable UE_INST_CNT_TX
     GROUP = ALL:VCD:UE:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue_inst_cnt_tx
 ID = VCD_VARIABLE_DCI_INFO
     DESC = VCD variable DCI_INFO
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = dci_info
 ID = VCD_VARIABLE_UE0_BSR
     DESC = VCD variable UE0_BSR
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_BSR
 ID = VCD_VARIABLE_UE0_BO
     DESC = VCD variable UE0_BO
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_BO
 ID = VCD_VARIABLE_UE0_SCHEDULED
     DESC = VCD variable UE0_SCHEDULED
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_scheduled
 ID = VCD_VARIABLE_UE0_TIMING_ADVANCE
     DESC = VCD variable UE0_TIMING_ADVANCE
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_timing_advance
 ID = VCD_VARIABLE_UE0_SR_ENERGY
     DESC = VCD variable UE0_SR_ENERGY
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_SR_ENERGY
 ID = VCD_VARIABLE_UE0_SR_THRES
     DESC = VCD variable UE0_SR_THRES
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_SR_THRES
 ID = VCD_VARIABLE_UE0_RSSI0
     DESC = VCD variable UE0_RSSI0
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_rssi0
 ID = VCD_VARIABLE_UE0_RSSI1
     DESC = VCD variable UE0_RSSI1
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_rssi1
 ID = VCD_VARIABLE_UE0_RSSI2
     DESC = VCD variable UE0_RSSI2
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_rssi2
 ID = VCD_VARIABLE_UE0_RSSI3
     DESC = VCD variable UE0_RSSI3
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_rssi3
 ID = VCD_VARIABLE_UE0_RSSI4
     DESC = VCD variable UE0_RSSI4
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_rssi4
 ID = VCD_VARIABLE_UE0_RSSI5
     DESC = VCD variable UE0_RSSI5
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_rssi5
 ID = VCD_VARIABLE_UE0_RSSI6
     DESC = VCD variable UE0_RSSI6
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_rssi6
 ID = VCD_VARIABLE_UE0_RSSI7
     DESC = VCD variable UE0_RSSI7
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_rssi7
 ID = VCD_VARIABLE_UE0_RES0
     DESC = VCD variable UE0_RES0
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_res0
 ID = VCD_VARIABLE_UE0_RES1
     DESC = VCD variable UE0_RES1
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_res1
 ID = VCD_VARIABLE_UE0_RES2
     DESC = VCD variable UE0_RES2
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_res2
 ID = VCD_VARIABLE_UE0_RES3
     DESC = VCD variable UE0_RES3
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_res3
 ID = VCD_VARIABLE_UE0_RES4
     DESC = VCD variable UE0_RES4
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_res4
 ID = VCD_VARIABLE_UE0_RES5
     DESC = VCD variable UE0_RES5
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_res5
 ID = VCD_VARIABLE_UE0_RES6
     DESC = VCD variable UE0_RES6
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_res6
 ID = VCD_VARIABLE_UE0_RES7
     DESC = VCD variable UE0_RES7
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_res7
 ID = VCD_VARIABLE_UE0_MCS0
     DESC = VCD variable UE0_MCS0
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_MCS0
 ID = VCD_VARIABLE_UE0_MCS1
     DESC = VCD variable UE0_MCS1
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_MCS1
 ID = VCD_VARIABLE_UE0_MCS2
     DESC = VCD variable UE0_MCS2
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_MCS2
 ID = VCD_VARIABLE_UE0_MCS3
     DESC = VCD variable UE0_MCS3
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_MCS3
 ID = VCD_VARIABLE_UE0_MCS4
     DESC = VCD variable UE0_MCS4
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_MCS4
 ID = VCD_VARIABLE_UE0_MCS5
     DESC = VCD variable UE0_MCS5
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_MCS5
 ID = VCD_VARIABLE_UE0_MCS6
     DESC = VCD variable UE0_MCS6
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_MCS6
 ID = VCD_VARIABLE_UE0_MCS7
     DESC = VCD variable UE0_MCS7
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_MCS7
 ID = VCD_VARIABLE_UE0_RB0
     DESC = VCD variable UE0_RB0
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_RB0
 ID = VCD_VARIABLE_UE0_RB1
     DESC = VCD variable UE0_RB1
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_RB1
 ID = VCD_VARIABLE_UE0_RB2
     DESC = VCD variable UE0_RB2
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_RB2
 ID = VCD_VARIABLE_UE0_RB3
     DESC = VCD variable UE0_RB3
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_RB3
 ID = VCD_VARIABLE_UE0_RB4
     DESC = VCD variable UE0_RB4
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_RB4
 ID = VCD_VARIABLE_UE0_RB5
     DESC = VCD variable UE0_RB5
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_RB5
 ID = VCD_VARIABLE_UE0_RB6
     DESC = VCD variable UE0_RB6
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_RB6
 ID = VCD_VARIABLE_UE0_RB7
     DESC = VCD variable UE0_RB7
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_RB7
 ID = VCD_VARIABLE_UE0_ROUND0
     DESC = VCD variable UE0_ROUND0
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_ROUND0
 ID = VCD_VARIABLE_UE0_ROUND1
     DESC = VCD variable UE0_ROUND1
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_ROUND1
 ID = VCD_VARIABLE_UE0_ROUND2
     DESC = VCD variable UE0_ROUND2
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_ROUND2
 ID = VCD_VARIABLE_UE0_ROUND3
     DESC = VCD variable UE0_ROUND3
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_ROUND3
 ID = VCD_VARIABLE_UE0_ROUND4
     DESC = VCD variable UE0_ROUND4
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_ROUND4
 ID = VCD_VARIABLE_UE0_ROUND5
     DESC = VCD variable UE0_ROUND5
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_ROUND5
 ID = VCD_VARIABLE_UE0_ROUND6
     DESC = VCD variable UE0_ROUND6
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_ROUND6
 ID = VCD_VARIABLE_UE0_ROUND7
     DESC = VCD variable UE0_ROUND7
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_ROUND7
 ID = VCD_VARIABLE_UE0_SFN0
     DESC = VCD variable UE0_SFN0
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_SFN0
 ID = VCD_VARIABLE_UE0_SFN1
     DESC = VCD variable UE0_SFN1
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_SFN1
 ID = VCD_VARIABLE_UE0_SFN2
     DESC = VCD variable UE0_SFN2
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_SFN2
 ID = VCD_VARIABLE_UE0_SFN3
     DESC = VCD variable UE0_SFN3
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_SFN3
 ID = VCD_VARIABLE_UE0_SFN4
     DESC = VCD variable UE0_SFN4
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_SFN4
 ID = VCD_VARIABLE_UE0_SFN5
     DESC = VCD variable UE0_SFN5
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_SFN5
 ID = VCD_VARIABLE_UE0_SFN6
     DESC = VCD variable UE0_SFN6
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_SFN6
 ID = VCD_VARIABLE_UE0_SFN7
     DESC = VCD variable UE0_SFN7
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_SFN7
 ID = VCD_VARIABLE_SEND_IF4_SYMBOL
     DESC = VCD variable SEND_IF4_SYMBOL
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = send_if4_symbol
 ID = VCD_VARIABLE_RECV_IF4_SYMBOL
     DESC = VCD variable RECV_IF4_SYMBOL
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = recv_if4_symbol
 ID = VCD_VARIABLE_SEND_IF5_PKT_ID
     DESC = VCD variable SEND_IF5_PKT_ID
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = send_if5_pkt_id
 ID = VCD_VARIABLE_RECV_IF5_PKT_ID
     DESC = VCD variable RECV_IF5_PKT_ID
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = recv_if5_pkt_id
 ID = VCD_VARIABLE_UE_PDCP_FLUSH_SIZE
     DESC = VCD variable UE_PDCP_FLUSH_SIZE
     GROUP = ALL:VCD:ENB:UE:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue_pdcp_flush_size
 ID = VCD_VARIABLE_UE_PDCP_FLUSH_ERR
     DESC = VCD variable UE_PDCP_FLUSH_ERR
     GROUP = ALL:VCD:ENB:UE:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue_pdcp_flush_err
 ID = VCD_VARIABLE_UE0_TRX_READ_NS
     DESC = VCD variable UE0_TRX_READ_NS
     GROUP = ALL:VCD:UE:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_trx_read_ns
 ID = VCD_VARIABLE_UE0_TRX_WRITE_NS
     DESC = VCD variable UE0_TRX_WRITE_NS
     GROUP = ALL:VCD:UE:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_trx_write_ns
 ID = VCD_VARIABLE_UE0_TRX_READ_NS_MISSING
     DESC = VCD variable UE0_TRX_READ_NS_MISSING
     GROUP = ALL:VCD:UE:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_trx_read_ns_missing
 ID = VCD_VARIABLE_UE0_TRX_WRITE_NS_MISSING
     DESC = VCD variable UE0_TRX_WRITE_NS_MISSING
     GROUP = ALL:VCD:UE:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ue0_trx_write_ns_missing
 ID = VCD_VARIABLE_CPUID_ENB_THREAD_RXTX
     DESC = VCD variable CPUID_ENB_THREAD_RXTX
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = enb_thread_rxtx_CPUID
 ID = VCD_VARIABLE_CPUID_RU_THREAD
     DESC = VCD variable CPUID_RU_THREAD
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ru_thread_CPUID
 ID = VCD_VARIABLE_CPUID_RU_THREAD_TX
     DESC = VCD variable CPUID_RU_THREAD_TX
     GROUP = ALL:VCD:ENB:VCD_VARIABLE
     FORMAT = ulong,value
+    VCD_NAME = ru_thread_tx_CPUID
 
 #functions
 
@@ -1470,763 +1598,954 @@ ID = VCD_FUNCTION_RT_SLEEP
     DESC = VCD function RT_SLEEP
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = rt_sleep
 ID = VCD_FUNCTION_TRX_READ
     DESC = VCD function TRX_READ
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = trx_read
 ID = VCD_FUNCTION_TRX_WRITE
     DESC = VCD function TRX_WRITE
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = trx_write
 ID = VCD_FUNCTION_TRX_READ_UE
     DESC = VCD function TRX_READ_UE
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = trx_read_ue
 ID = VCD_FUNCTION_TRX_WRITE_UE
     DESC = VCD function TRX_WRITE_UE
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = trx_write_ue
 ID = VCD_FUNCTION_TRX_READ_IF
     DESC = VCD function TRX_READ_IF
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = trx_read_if
 ID = VCD_FUNCTION_TRX_WRITE_IF
     DESC = VCD function TRX_WRITE_IF
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = trx_write_if
 ID = VCD_FUNCTION_eNB_PROC_RXTX0
     DESC = VCD function eNB_PROC_RXTX0
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = eNB_thread_rxtx0
 ID = VCD_FUNCTION_eNB_PROC_RXTX1
     DESC = VCD function eNB_PROC_RXTX1
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = eNB_thread_rxtx1
 ID = VCD_FUNCTION_UE_THREAD_SYNCH
     DESC = VCD function UE_THREAD_SYNCH
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = ue_thread_synch
 ID = VCD_FUNCTION_UE_THREAD_RXTX0
     DESC = VCD function UE_THREAD_RXTX0
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = ue_thread_rxtx0
 ID = VCD_FUNCTION_UE_THREAD_RXTX1
     DESC = VCD function UE_THREAD_RXTX1
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = ue_thread_rxtx1
 ID = VCD_FUNCTION_TRX_READ_SF9
     DESC = VCD function TRX_READ_SF9
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = trx_read_sf9
 ID = VCD_FUNCTION_TRX_WRITE_SF9
     DESC = VCD function TRX_WRITE_SF9
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = trx_write_sf9
 ID = VCD_FUNCTION_UE_SIGNAL_COND_RXTX0
     DESC = VCD function UE_SIGNAL_COND_RXTX0
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = ue_signal_cond_rxtx0
 ID = VCD_FUNCTION_UE_SIGNAL_COND_RXTX1
     DESC = VCD function UE_SIGNAL_COND_RXTX1
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = ue_signal_cond_rxtx1
 ID = VCD_FUNCTION_UE_WAIT_COND_RXTX0
     DESC = VCD function UE_WAIT_COND_RXTX0
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = ue_wait_cond_rxtx0
 ID = VCD_FUNCTION_UE_WAIT_COND_RXTX1
     DESC = VCD function UE_WAIT_COND_RXTX1
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = ue_wait_cond_rxtx1
 ID = VCD_FUNCTION_UE_LOCK_MUTEX_RXTX_FOR_COND_WAIT0
     DESC = VCD function UE_LOCK_MUTEX_RXTX_FOR_COND_WAIT0
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = ue_lock_mutex_rxtx_for_cond_wait0
 ID = VCD_FUNCTION_UE_LOCK_MUTEX_RXTX_FOR_COND_WAIT1
     DESC = VCD function UE_LOCK_MUTEX_RXTX_FOR_COND_WAIT1
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = ue_lock_mutex_rxtx_for_cond_wait1
 ID = VCD_FUNCTION_UE_LOCK_MUTEX_RXTX_FOR_CNT_DECREMENT0
     DESC = VCD function UE_LOCK_MUTEX_RXTX_FOR_CNT_DECREMENT0
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = ue_lock_mutex_rxtx_for_cnt_decrement0
 ID = VCD_FUNCTION_UE_LOCK_MUTEX_RXTX_FOR_CNT_DECREMENT1
     DESC = VCD function UE_LOCK_MUTEX_RXTX_FOR_CNT_DECREMENT1
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = ue_lock_mutex_rxtx_for_cnt_decrement1
 ID = VCD_FUNCTION_UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT0
     DESC = VCD function UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT0
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = ue_lock_mutex_rxtx_for_cnt_increment0
 ID = VCD_FUNCTION_UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT1
     DESC = VCD function UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT1
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = ue_lock_mutex_rxtx_for_cnt_increment1
 ID = VCD_FUNCTION_SIM_DO_DL_SIGNAL
     DESC = VCD function SIM_DO_DL_SIGNAL
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = do_DL_sig
 ID = VCD_FUNCTION_SIM_DO_UL_SIGNAL
     DESC = VCD function SIM_DO_UL_SIGNAL
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = do_UL_sig
 ID = VCD_FUNCTION_SIM_UE_TRX_READ
     DESC = VCD function SIM_UE_TRX_READ
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = UE_trx_read
 ID = VCD_FUNCTION_eNB_TX
     DESC = VCD function eNB_TX
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = eNB_tx
 ID = VCD_FUNCTION_eNB_RX
     DESC = VCD function eNB_RX
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = eNB_rx
 ID = VCD_FUNCTION_eNB_TRX
     DESC = VCD function eNB_TRX
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = eNB_trx
 ID = VCD_FUNCTION_eNB_TM
     DESC = VCD function eNB_TM
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = eNB_tm
 ID = VCD_FUNCTION_eNB_RX_SLEEP
     DESC = VCD function eNB_RX_SLEEP
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = eNB_rx_sleep
 ID = VCD_FUNCTION_eNB_TX_SLEEP
     DESC = VCD function eNB_TX_SLEEP
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = eNB_tx_sleep
 ID = VCD_FUNCTION_eNB_PROC_SLEEP
     DESC = VCD function eNB_PROC_SLEEP
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = eNB_proc_sleep
 ID = VCD_FUNCTION_TRX_READ_RF
     DESC = VCD function TRX_READ_RF
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = trx_read_rf
 ID = VCD_FUNCTION_TRX_WRITE_RF
     DESC = VCD function TRX_WRITE_RF
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = trx_write_rf
 ID = VCD_FUNCTION_UE_SYNCH
     DESC = VCD function UE_SYNCH
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = ue_synch
 ID = VCD_FUNCTION_UE_SLOT_FEP
     DESC = VCD function UE_SLOT_FEP
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = ue_slot_fep
 ID = VCD_FUNCTION_UE_RRC_MEASUREMENTS
     DESC = VCD function UE_RRC_MEASUREMENTS
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = ue_rrc_measurements
 ID = VCD_FUNCTION_UE_GAIN_CONTROL
     DESC = VCD function UE_GAIN_CONTROL
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = ue_gain_control
 ID = VCD_FUNCTION_UE_ADJUST_SYNCH
     DESC = VCD function UE_ADJUST_SYNCH
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = ue_adjust_synch
 ID = VCD_FUNCTION_UE_MEASUREMENT_PROCEDURES
     DESC = VCD function UE_MEASUREMENT_PROCEDURES
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = lte_ue_measurement_procedures
 ID = VCD_FUNCTION_UE_PDCCH_PROCEDURES
     DESC = VCD function UE_PDCCH_PROCEDURES
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = lte_ue_pdcch_procedures
 ID = VCD_FUNCTION_UE_PBCH_PROCEDURES
     DESC = VCD function UE_PBCH_PROCEDURES
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = lte_ue_pbch_procedures
 ID = VCD_FUNCTION_PHY_PROCEDURES_ENB_TX
     DESC = VCD function PHY_PROCEDURES_ENB_TX
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_procedures_eNb_tx0
 ID = VCD_FUNCTION_PHY_PROCEDURES_ENB_TX1
     DESC = VCD function PHY_PROCEDURES_ENB_TX1
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_procedures_eNb_tx1
 ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPRX
     DESC = VCD function PHY_PROCEDURES_RU_FEPRX
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_procedures_ru_feprx0
 ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPRX1
     DESC = VCD function PHY_PROCEDURES_RU_FEPRX1
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_procedures_ru_feprx1
 ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM
     DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_procedures_ru_feptx_ofdm0
 ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM1
     DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM1
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_procedures_ru_feptx_ofdm1
 ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_PREC
     DESC = VCD function PHY_PROCEDURES_RU_FEPTX_PREC
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_procedures_ru_feptx_prec0
 ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_PREC1
     DESC = VCD function PHY_PROCEDURES_RU_FEPTX_PREC1
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_procedures_ru_feptx_prec1
 ID = VCD_FUNCTION_PHY_PROCEDURES_ENB_RX_UESPEC
     DESC = VCD function PHY_PROCEDURES_ENB_RX_UESPEC
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_procedures_eNb_rx_uespec0
 ID = VCD_FUNCTION_PHY_PROCEDURES_ENB_RX_UESPEC1
     DESC = VCD function PHY_PROCEDURES_ENB_RX_UESPEC1
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_procedures_eNb_rx_uespec1
 ID = VCD_FUNCTION_PHY_PROCEDURES_UE_TX
     DESC = VCD function PHY_PROCEDURES_UE_TX
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_procedures_ue_tx
 ID = VCD_FUNCTION_PHY_PROCEDURES_UE_RX
     DESC = VCD function PHY_PROCEDURES_UE_RX
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_procedures_ue_rx
 ID = VCD_FUNCTION_PHY_PROCEDURES_UE_TX_ULSCH_UESPEC
     DESC = VCD function PHY_PROCEDURES_UE_TX_ULSCH_UESPEC
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_procedures_ue_tx_ulsch_uespec
 ID = VCD_FUNCTION_PHY_PROCEDURES_UE_TX_PUCCH
     DESC = VCD function PHY_PROCEDURES_UE_TX_PUCCH
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_procedures_ue_tx_pucch
 ID = VCD_FUNCTION_PHY_PROCEDURES_UE_TX_ULSCH_COMMON
     DESC = VCD function PHY_PROCEDURES_UE_TX_ULSCH_COMMON
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_procedures_ue_tx_ulsch_common
 ID = VCD_FUNCTION_PHY_PROCEDURES_UE_TX_PRACH
     DESC = VCD function PHY_PROCEDURES_UE_TX_PRACH
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_procedures_ue_tx_prach
 ID = VCD_FUNCTION_PHY_PROCEDURES_UE_TX_ULSCH_RAR
     DESC = VCD function PHY_PROCEDURES_UE_TX_ULSCH_RAR
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_procedures_ue_tx_ulsch_rar
 ID = VCD_FUNCTION_PHY_PROCEDURES_ENB_LTE
     DESC = VCD function PHY_PROCEDURES_ENB_LTE
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_procedures_eNB_lte
 ID = VCD_FUNCTION_PHY_PROCEDURES_UE_LTE
     DESC = VCD function PHY_PROCEDURES_UE_LTE
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_procedures_UE_lte
 ID = VCD_FUNCTION_PDSCH_THREAD
     DESC = VCD function PDSCH_THREAD
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = pdsch_thread
 ID = VCD_FUNCTION_DLSCH_THREAD0
     DESC = VCD function DLSCH_THREAD0
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = dlsch_thread0
 ID = VCD_FUNCTION_DLSCH_THREAD1
     DESC = VCD function DLSCH_THREAD1
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = dlsch_thread1
 ID = VCD_FUNCTION_DLSCH_THREAD2
     DESC = VCD function DLSCH_THREAD2
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = dlsch_thread2
 ID = VCD_FUNCTION_DLSCH_THREAD3
     DESC = VCD function DLSCH_THREAD3
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = dlsch_thread3
 ID = VCD_FUNCTION_DLSCH_THREAD4
     DESC = VCD function DLSCH_THREAD4
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = dlsch_thread4
 ID = VCD_FUNCTION_DLSCH_THREAD5
     DESC = VCD function DLSCH_THREAD5
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = dlsch_thread5
 ID = VCD_FUNCTION_DLSCH_THREAD6
     DESC = VCD function DLSCH_THREAD6
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = dlsch_thread6
 ID = VCD_FUNCTION_DLSCH_THREAD7
     DESC = VCD function DLSCH_THREAD7
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = dlsch_thread7
 ID = VCD_FUNCTION_DLSCH_DECODING0
     DESC = VCD function DLSCH_DECODING0
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = dlsch_decoding0
 ID = VCD_FUNCTION_DLSCH_DECODING1
     DESC = VCD function DLSCH_DECODING1
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = dlsch_decoding1
 ID = VCD_FUNCTION_DLSCH_DECODING2
     DESC = VCD function DLSCH_DECODING2
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = dlsch_decoding2
 ID = VCD_FUNCTION_DLSCH_DECODING3
     DESC = VCD function DLSCH_DECODING3
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = dlsch_decoding3
 ID = VCD_FUNCTION_DLSCH_DECODING4
     DESC = VCD function DLSCH_DECODING4
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = dlsch_decoding4
 ID = VCD_FUNCTION_DLSCH_DECODING5
     DESC = VCD function DLSCH_DECODING5
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = dlsch_decoding5
 ID = VCD_FUNCTION_DLSCH_DECODING6
     DESC = VCD function DLSCH_DECODING6
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = dlsch_decoding6
 ID = VCD_FUNCTION_DLSCH_DECODING7
     DESC = VCD function DLSCH_DECODING7
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = dlsch_decoding7
 ID = VCD_FUNCTION_RX_PDCCH
     DESC = VCD function RX_PDCCH
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = rx_pdcch
 ID = VCD_FUNCTION_DCI_DECODING
     DESC = VCD function DCI_DECODING
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = dci_decoding
 ID = VCD_FUNCTION_RX_PHICH
     DESC = VCD function RX_PHICH
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = rx_phich
 ID = VCD_FUNCTION_PDSCH_PROC
     DESC = VCD function PDSCH_PROC
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = pdsch_procedures
 ID = VCD_FUNCTION_PDSCH_PROC_SI
     DESC = VCD function PDSCH_PROC_SI
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = pdsch_procedures_si
 ID = VCD_FUNCTION_PDSCH_PROC_P
     DESC = VCD function PDSCH_PROC_P
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = pdsch_procedures_p
 ID = VCD_FUNCTION_PDSCH_PROC_RA
     DESC = VCD function PDSCH_PROC_RA
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = pdsch_procedures_ra
 ID = VCD_FUNCTION_PHY_UE_CONFIG_SIB2
     DESC = VCD function PHY_UE_CONFIG_SIB2
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_ue_config_sib2
 ID = VCD_FUNCTION_PHY_CONFIG_SIB1_ENB
     DESC = VCD function PHY_CONFIG_SIB1_ENB
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_phy_config_sib1_eNB
 ID = VCD_FUNCTION_PHY_CONFIG_SIB2_ENB
     DESC = VCD function PHY_CONFIG_SIB2_ENB
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_phy_config_sib2_eNB
 ID = VCD_FUNCTION_PHY_CONFIG_DEDICATED_ENB
     DESC = VCD function PHY_CONFIG_DEDICATED_ENB
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_phy_config_dedicated_eNB
 ID = VCD_FUNCTION_PHY_UE_COMPUTE_PRACH
     DESC = VCD function PHY_UE_COMPUTE_PRACH
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_ue_compute_prach
 ID = VCD_FUNCTION_PHY_ENB_ULSCH_MSG3
     DESC = VCD function PHY_ENB_ULSCH_MSG3
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_enb_ulsch_msg3
 ID = VCD_FUNCTION_PHY_ENB_ULSCH_DECODING0
     DESC = VCD function PHY_ENB_ULSCH_DECODING0
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_enb_ulsch_decoding0
 ID = VCD_FUNCTION_PHY_ENB_ULSCH_DECODING1
     DESC = VCD function PHY_ENB_ULSCH_DECODING1
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_enb_ulsch_decoding1
 ID = VCD_FUNCTION_PHY_ENB_ULSCH_DECODING2
     DESC = VCD function PHY_ENB_ULSCH_DECODING2
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_enb_ulsch_decoding2
 ID = VCD_FUNCTION_PHY_ENB_ULSCH_DECODING3
     DESC = VCD function PHY_ENB_ULSCH_DECODING3
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_enb_ulsch_decoding3
 ID = VCD_FUNCTION_PHY_ENB_ULSCH_DECODING4
     DESC = VCD function PHY_ENB_ULSCH_DECODING4
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_enb_ulsch_decoding4
 ID = VCD_FUNCTION_PHY_ENB_ULSCH_DECODING5
     DESC = VCD function PHY_ENB_ULSCH_DECODING5
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_enb_ulsch_decoding5
 ID = VCD_FUNCTION_PHY_ENB_ULSCH_DECODING6
     DESC = VCD function PHY_ENB_ULSCH_DECODING6
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_enb_ulsch_decoding6
 ID = VCD_FUNCTION_PHY_ENB_ULSCH_DECODING7
     DESC = VCD function PHY_ENB_ULSCH_DECODING7
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_enb_ulsch_decoding7
 ID = VCD_FUNCTION_PHY_ENB_SFGEN
     DESC = VCD function PHY_ENB_SFGEN
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_enb_sfgen
 ID = VCD_FUNCTION_PHY_ENB_PRACH_RX
     DESC = VCD function PHY_ENB_PRACH_RX
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_enb_prach_rx
 ID = VCD_FUNCTION_PHY_RU_PRACH_RX
     DESC = VCD function PHY_RU_PRACH_RX
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_ru_prach_rx
 ID = VCD_FUNCTION_PHY_ENB_PDCCH_TX
     DESC = VCD function PHY_ENB_PDCCH_TX
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_enb_pdcch_tx
 ID = VCD_FUNCTION_PHY_ENB_RS_TX
     DESC = VCD function PHY_ENB_RS_TX
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_enb_rs_tx
 ID = VCD_FUNCTION_UE_GENERATE_PRACH
     DESC = VCD function UE_GENERATE_PRACH
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_ue_generate_prach
 ID = VCD_FUNCTION_UE_ULSCH_MODULATION
     DESC = VCD function UE_ULSCH_MODULATION
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_ue_ulsch_modulation
 ID = VCD_FUNCTION_UE_ULSCH_ENCODING
     DESC = VCD function UE_ULSCH_ENCODING
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_ue_ulsch_encoding
 ID = VCD_FUNCTION_UE_ULSCH_ENCODING_FILL_CQI
     DESC = VCD function UE_ULSCH_ENCODING_FILL_CQI
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_ue_ulsch_encoding_fill_cqi
 ID = VCD_FUNCTION_UE_ULSCH_SCRAMBLING
     DESC = VCD function UE_ULSCH_SCRAMBLING
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_ue_ulsch_scrambling
 ID = VCD_FUNCTION_ENB_DLSCH_MODULATION
     DESC = VCD function ENB_DLSCH_MODULATION
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_eNB_dlsch_modulation
 ID = VCD_FUNCTION_ENB_DLSCH_ENCODING
     DESC = VCD function ENB_DLSCH_ENCODING
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_eNB_dlsch_encoding
 ID = VCD_FUNCTION_ENB_DLSCH_ENCODING_W
     DESC = VCD function ENB_DLSCH_ENCODING_W
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_eNB_dlsch_encoding_w
 ID = VCD_FUNCTION_ENB_DLSCH_SCRAMBLING
     DESC = VCD function ENB_DLSCH_SCRAMBLING
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_eNB_dlsch_scrambling
 ID = VCD_FUNCTION_ENB_BEAM_PRECODING
     DESC = VCD function ENB_BEAM_PRECODING
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_eNB_beam_precoding
 ID = VCD_FUNCTION_ENB_OFDM_MODULATION
     DESC = VCD function ENB_OFDM_MODULATION
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = phy_eNB_ofdm_mod_l
 ID = VCD_FUNCTION_MACPHY_INIT
     DESC = VCD function MACPHY_INIT
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_macphy_init
 ID = VCD_FUNCTION_MACPHY_EXIT
     DESC = VCD function MACPHY_EXIT
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_macphy_exit
 ID = VCD_FUNCTION_ENB_DLSCH_ULSCH_SCHEDULER
     DESC = VCD function ENB_DLSCH_ULSCH_SCHEDULER
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_eNB_dlsch_ulsch_scheduler
 ID = VCD_FUNCTION_FILL_RAR
     DESC = VCD function FILL_RAR
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_fill_rar
 ID = VCD_FUNCTION_TERMINATE_RA_PROC
     DESC = VCD function TERMINATE_RA_PROC
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_terminate_ra_proc
 ID = VCD_FUNCTION_INITIATE_RA_PROC
     DESC = VCD function INITIATE_RA_PROC
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_initiate_ra_proc
 ID = VCD_FUNCTION_CANCEL_RA_PROC
     DESC = VCD function CANCEL_RA_PROC
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_cancel_ra_proc
 ID = VCD_FUNCTION_GET_DCI_SDU
     DESC = VCD function GET_DCI_SDU
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_get_dci_sdu
 ID = VCD_FUNCTION_GET_DLSCH_SDU
     DESC = VCD function GET_DLSCH_SDU
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_get_dlsch_sdu
 ID = VCD_FUNCTION_RX_SDU
     DESC = VCD function RX_SDU
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_rx_sdu
 ID = VCD_FUNCTION_MRBCH_PHY_SYNC_FAILURE
     DESC = VCD function MRBCH_PHY_SYNC_FAILURE
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_mrbch_phy_sync_failure
 ID = VCD_FUNCTION_SR_INDICATION
     DESC = VCD function SR_INDICATION
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_SR_indication
 ID = VCD_FUNCTION_DLSCH_PREPROCESSOR
     DESC = VCD function DLSCH_PREPROCESSOR
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = mac_dlsch_preprocessor
 ID = VCD_FUNCTION_SCHEDULE_DLSCH
     DESC = VCD function SCHEDULE_DLSCH
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = mac_schedule_dlsch
 ID = VCD_FUNCTION_FILL_DLSCH_DCI
     DESC = VCD function FILL_DLSCH_DCI
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = mac_fill_dlsch_dci
 ID = VCD_FUNCTION_OUT_OF_SYNC_IND
     DESC = VCD function OUT_OF_SYNC_IND
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_out_of_sync_ind
 ID = VCD_FUNCTION_UE_DECODE_SI
     DESC = VCD function UE_DECODE_SI
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_ue_decode_si
 ID = VCD_FUNCTION_UE_DECODE_PCCH
     DESC = VCD function UE_DECODE_PCCH
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_ue_decode_pcch
 ID = VCD_FUNCTION_UE_DECODE_CCCH
     DESC = VCD function UE_DECODE_CCCH
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_ue_decode_ccch
 ID = VCD_FUNCTION_UE_DECODE_BCCH
     DESC = VCD function UE_DECODE_BCCH
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_ue_decode_bcch
 ID = VCD_FUNCTION_UE_SEND_SDU
     DESC = VCD function UE_SEND_SDU
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_ue_send_sdu
 ID = VCD_FUNCTION_UE_GET_SDU
     DESC = VCD function UE_GET_SDU
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_ue_get_sdu
 ID = VCD_FUNCTION_UE_GET_RACH
     DESC = VCD function UE_GET_RACH
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_ue_get_rach
 ID = VCD_FUNCTION_UE_PROCESS_RAR
     DESC = VCD function UE_PROCESS_RAR
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_ue_process_rar
 ID = VCD_FUNCTION_UE_SCHEDULER
     DESC = VCD function UE_SCHEDULER
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_ue_scheduler
 ID = VCD_FUNCTION_UE_GET_SR
     DESC = VCD function UE_GET_SR
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = macxface_ue_get_sr
 ID = VCD_FUNCTION_UE_SEND_MCH_SDU
     DESC = VCD function UE_SEND_MCH_SDU
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = ue_send_mch_sdu
 ID = VCD_FUNCTION_RLC_DATA_REQ
     DESC = VCD function RLC_DATA_REQ
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = rlc_data_req
 #ID = VCD_FUNCTION_RLC_DATA_IND
 #    DESC = VCD function RLC_DATA_IND
 #    GROUP = ALL:VCD:ENB:VCD_FUNCTION
 #    FORMAT = int,value
+#    VCD_NAME = rlc_data_ind
 ID = VCD_FUNCTION_MAC_RLC_STATUS_IND
     DESC = VCD function MAC_RLC_STATUS_IND
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = mac_rlc_status_ind
 ID = VCD_FUNCTION_MAC_RLC_DATA_REQ
     DESC = VCD function MAC_RLC_DATA_REQ
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = mac_rlc_data_req
 ID = VCD_FUNCTION_MAC_RLC_DATA_IND
     DESC = VCD function MAC_RLC_DATA_IND
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = mac_rlc_data_ind
 ID = VCD_FUNCTION_RLC_UM_TRY_REASSEMBLY
     DESC = VCD function RLC_UM_TRY_REASSEMBLY
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = rlc_um_try_reassembly
 ID = VCD_FUNCTION_RLC_UM_CHECK_TIMER_DAR_TIME_OUT
     DESC = VCD function RLC_UM_CHECK_TIMER_DAR_TIME_OUT
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = rlc_um_check_timer_dar_time_out
 ID = VCD_FUNCTION_RLC_UM_RECEIVE_PROCESS_DAR
     DESC = VCD function RLC_UM_RECEIVE_PROCESS_DAR
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = rlc_um_receive_process_dar
 ID = VCD_FUNCTION_PDCP_RUN
     DESC = VCD function PDCP_RUN
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = pdcp_run
 ID = VCD_FUNCTION_PDCP_DATA_REQ
     DESC = VCD function PDCP_DATA_REQ
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = pdcp_data_req
 ID = VCD_FUNCTION_PDCP_DATA_IND
     DESC = VCD function PDCP_DATA_IND
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = pdcp_data_ind
 ID = VCD_FUNCTION_PDCP_APPLY_SECURITY
     DESC = VCD function PDCP_APPLY_SECURITY
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = pdcp_apply_security
 ID = VCD_FUNCTION_PDCP_VALIDATE_SECURITY
     DESC = VCD function PDCP_VALIDATE_SECURITY
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = pdcp_validate_security
 ID = VCD_FUNCTION_PDCP_FIFO_READ
     DESC = VCD function PDCP_FIFO_READ
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = pdcp_fifo_read
 ID = VCD_FUNCTION_PDCP_FIFO_READ_BUFFER
     DESC = VCD function PDCP_FIFO_READ_BUFFER
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = pdcp_fifo_read_buffer
 ID = VCD_FUNCTION_PDCP_FIFO_FLUSH
     DESC = VCD function PDCP_FIFO_FLUSH
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = pdcp_fifo_flush
 ID = VCD_FUNCTION_PDCP_FIFO_FLUSH_BUFFER
     DESC = VCD function PDCP_FIFO_FLUSH_BUFFER
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = pdcp_fifo_flush_buffer
 ID = VCD_FUNCTION_RRC_RX_TX
     DESC = VCD function RRC_RX_TX
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = rrc_rx_tx
 ID = VCD_FUNCTION_RRC_MAC_CONFIG
     DESC = VCD function RRC_MAC_CONFIG
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = rrc_mac_config_req
 ID = VCD_FUNCTION_RRC_UE_DECODE_SIB1
     DESC = VCD function RRC_UE_DECODE_SIB1
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = rrc_ue_decode_sib1
 ID = VCD_FUNCTION_RRC_UE_DECODE_SI
     DESC = VCD function RRC_UE_DECODE_SI
     GROUP = ALL:VCD:UE:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = rrc_ue_decode_si
 ID = VCD_FUNCTION_GTPV1U_ENB_TASK
     DESC = VCD function GTPV1U_ENB_TASK
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = gtpv1u_enb_task
 ID = VCD_FUNCTION_GTPV1U_PROCESS_UDP_REQ
     DESC = VCD function GTPV1U_PROCESS_UDP_REQ
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = gtpv1u_process_udp_req
 ID = VCD_FUNCTION_GTPV1U_PROCESS_TUNNEL_DATA_REQ
     DESC = VCD function GTPV1U_PROCESS_TUNNEL_DATA_REQ
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = gtpv1u_process_tunnel_data_req
 ID = VCD_FUNCTION_UDP_ENB_TASK
     DESC = VCD function UDP_ENB_TASK
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = udp_enb_task
 ID = VCD_FUNCTION_EMU_TRANSPORT
     DESC = VCD function EMU_TRANSPORT
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = emu_transport
 ID = VCD_FUNCTION_LOG_RECORD
     DESC = VCD function LOG_RECORD
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = log_record
 ID = VCD_FUNCTION_ITTI_ENQUEUE_MESSAGE
     DESC = VCD function ITTI_ENQUEUE_MESSAGE
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = itti_enqueue_message
 ID = VCD_FUNCTION_ITTI_DUMP_ENQUEUE_MESSAGE
     DESC = VCD function ITTI_DUMP_ENQUEUE_MESSAGE
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = itti_dump_enqueue_message
 ID = VCD_FUNCTION_ITTI_DUMP_ENQUEUE_MESSAGE_MALLOC
     DESC = VCD function ITTI_DUMP_ENQUEUE_MESSAGE_MALLOC
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = itti_dump_enqueue_message_malloc
 ID = VCD_FUNCTION_ITTI_RELAY_THREAD
     DESC = VCD function ITTI_RELAY_THREAD
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = itti_relay_thread
 ID = VCD_FUNCTION_TEST
     DESC = VCD function TEST
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = test
 ID = VCD_FUNCTION_SEND_IF4
     DESC = VCD function SEND_IF4
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = send_if4
 ID = VCD_FUNCTION_RECV_IF4
     DESC = VCD function RECV_IF4
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = recv_if4
 ID = VCD_FUNCTION_SEND_IF5
     DESC = VCD function SEND_IF5
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = send_if5
 ID = VCD_FUNCTION_RECV_IF5
     DESC = VCD function RECV_IF5
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = recv_if5
 ID = VCD_FUNCTION_TRX_COMPR_IF
     DESC = VCD function TRX_COMPR_IF
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = compress_if
 ID = VCD_FUNCTION_TRX_DECOMPR_IF
     DESC = VCD function TRX_DECOMPR_IF
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = decompress_if
 ID = VCD_FUNCTION_NFAPI
     DESC = VCD function NFAPI
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = nfapi_subframe
 ID = VCD_FUNCTION_GENERATE_PCFICH
     DESC = VCD function GENERATE_PCFICH
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = generate_pcfich
 ID = VCD_FUNCTION_GENERATE_DCI0
     DESC = VCD function GENERATE_DCI0
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = generate_dci0
 ID = VCD_FUNCTION_GENERATE_DLSCH
     DESC = VCD function GENERATE_DLSCH
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = generate_dlsch
 ID = VCD_FUNCTION_GENERATE_PHICH
     DESC = VCD function GENERATE_PHICH
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = generate_phich
 ID = VCD_FUNCTION_PDCCH_SCRAMBLING
     DESC = VCD function PDCCH_SCRAMBLING
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = pdcch_scrambling
 ID = VCD_FUNCTION_PDCCH_MODULATION
     DESC = VCD function PDCCH_MODULATION
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = pdcch_modulation
 ID = VCD_FUNCTION_PDCCH_INTERLEAVING
     DESC = VCD function PDCCH_INTERLEAVING
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = pdcch_interleaving
 ID = VCD_FUNCTION_PDCCH_TX
     DESC = VCD function PDCCH_TX
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
+    VCD_NAME = pdcch_tx
diff --git a/common/utils/T/tracer/database.c b/common/utils/T/tracer/database.c
index f0908948e23..543ab666640 100644
--- a/common/utils/T/tracer/database.c
+++ b/common/utils/T/tracer/database.c
@@ -13,6 +13,7 @@ typedef struct {
   char **arg_type;
   char **arg_name;
   int  asize;
+  char *vcd_name;
   int  id;
 } id;
 
@@ -138,6 +139,7 @@ id *add_id(database *r, char *idname, int i)
   r->i[r->isize].arg_type = NULL;
   r->i[r->isize].arg_name = NULL;
   r->i[r->isize].asize = 0;
+  r->i[r->isize].vcd_name = NULL;
   r->i[r->isize].id = i;
   r->isize++;
   qsort(r->i, r->isize, sizeof(id), id_cmp);
@@ -224,6 +226,12 @@ void add_desc(id *i, char *desc)
   i->desc = strdup(desc); if (i->desc == NULL) abort();
 }
 
+void add_vcd_name(id *i, char *vcd_name)
+{
+  if (i == NULL) {printf("ERROR: VCD_NAME line before ID line\n");exit(1);}
+  i->vcd_name = strdup(vcd_name); if (i->vcd_name == NULL) abort();
+}
+
 char *format_get_next_token(char **cur)
 {
   char *start;
@@ -320,6 +328,7 @@ void *parse_database(char *filename)
     if (!strcmp(name, "GROUP")) add_groups(r, last_id, value);
     if (!strcmp(name, "DESC")) add_desc(last_id, value);
     if (!strcmp(name, "FORMAT")) add_format(last_id, value);
+    if (!strcmp(name, "VCD_NAME")) add_vcd_name(last_id, value);
   }
 
   fclose(in);
@@ -424,6 +433,12 @@ char *event_name_from_id(void *_database, int id)
   return d->i[d->id_to_pos[id]].name;
 }
 
+char *event_vcd_name_from_id(void *_database, int id)
+{
+  database *d = _database;
+  return d->i[d->id_to_pos[id]].vcd_name;
+}
+
 int event_id_from_name(void *_database, char *name)
 {
   database *d = _database;
diff --git a/common/utils/T/tracer/database.h b/common/utils/T/tracer/database.h
index c5cab05d9f7..9fdbaed7c68 100644
--- a/common/utils/T/tracer/database.h
+++ b/common/utils/T/tracer/database.h
@@ -8,6 +8,7 @@ void list_ids(void *database);
 void list_groups(void *database);
 void on_off(void *d, char *item, int *a, int onoff);
 char *event_name_from_id(void *database, int id);
+char *event_vcd_name_from_id(void *_database, int id);
 int event_id_from_name(void *database, char *name);
 int number_of_ids(void *database);
 int database_get_ids(void *database, char ***ids);
diff --git a/common/utils/T/tracer/to_vcd.c b/common/utils/T/tracer/to_vcd.c
index 1a67a9d4ffa..998649af015 100644
--- a/common/utils/T/tracer/to_vcd.c
+++ b/common/utils/T/tracer/to_vcd.c
@@ -12,7 +12,14 @@
 #include "logger/logger.h"
 #include "view/view.h"
 
+enum var_type {
+  DEFAULT,
+  VCD_FUNCTION,
+  VCD_VARIABLE
+};
+
 typedef struct {
+  enum var_type type;
   char *event;
   char *arg;
   char *vcd_name;
@@ -44,16 +51,39 @@ void vcd_write_header(vcd_vars *v, int n)
 "$version\n"
 "  to_vcd\n"
 "$end\n"
-"$timescale 1ns $end\n"
+"$timescale 1ns $end\n") <= 0) abort();
+
+  if (fprintf(out,
 "$scope module logic $end\n") <= 0) abort();
+  for (i = 0; i < n; i++)
+    if (v[i].type == DEFAULT)
+      if (fprintf(out, "$var wire %d %s %s $end\n",
+             v[i].boolean ? 1 : 64,
+             v[i].vcd_name, v[i].vcd_name) <= 0) abort();
+  if (fprintf(out,
+"$upscope $end\n") <= 0) abort();
 
+  if (fprintf(out,
+"$scope module functions $end\n") <= 0) abort();
+  for (i = 0; i < n; i++)
+    if (v[i].type == VCD_FUNCTION)
+      if (fprintf(out, "$var wire %d %s %s $end\n",
+             v[i].boolean ? 1 : 64,
+             v[i].vcd_name, v[i].vcd_name) <= 0) abort();
+  if (fprintf(out,
+"$upscope $end\n") <= 0) abort();
+
+  if (fprintf(out,
+"$scope module variables $end\n") <= 0) abort();
   for (i = 0; i < n; i++)
-    if (fprintf(out, "$var wire %d %s %s $end\n",
-           v[i].boolean ? 1 : 64,
-           v[i].vcd_name, v[i].vcd_name) <= 0) abort();
+    if (v[i].type == VCD_VARIABLE)
+      if (fprintf(out, "$var wire %d %s %s $end\n",
+             v[i].boolean ? 1 : 64,
+             v[i].vcd_name, v[i].vcd_name) <= 0) abort();
+  if (fprintf(out,
+"$upscope $end\n") <= 0) abort();
 
   if (fprintf(out,
-"$upscope $end\n"
 "$enddefinitions $end\n"
 "$dumpvars\n") <= 0) abort();
 
@@ -194,12 +224,13 @@ void force_stop(int x)
 }
 
 vcd_vars *add_var(vcd_vars *vars, int nvars,
-    char *event, char *arg, char *vcd_name, int is_boolean)
+    char *event, char *arg, char *vcd_name, int is_boolean, enum var_type t)
 {
   if (nvars % 64 == 0) {
     vars = realloc(vars, (nvars+64) * sizeof(vcd_vars));
     if (vars == NULL) abort();
   }
+  vars[nvars].type = t;
   vars[nvars].event = event;
   vars[nvars].arg = arg;
   vars[nvars].vcd_name = vcd_name;
@@ -240,7 +271,7 @@ int main(int n, char **v)
       char *event    = v[++i];
       char *arg      = v[++i];
       char *vcd_name = v[++i];
-      vars = add_var(vars, nvars, event, arg, vcd_name, 1);
+      vars = add_var(vars, nvars, event, arg, vcd_name, 1, DEFAULT);
       nvars++;
       continue;
     }
@@ -248,7 +279,7 @@ int main(int n, char **v)
       char *event    = v[++i];
       char *arg      = v[++i];
       char *vcd_name = v[++i];
-      vars = add_var(vars, nvars, event, arg, vcd_name, 0);
+      vars = add_var(vars, nvars, event, arg, vcd_name, 0, DEFAULT);
       nvars++;
       continue;
     }
@@ -283,20 +314,30 @@ int main(int n, char **v)
     /* activate all VCD traces */
     for (i = 0; i < number_of_events; i++) {
       int is_boolean;
+      enum var_type type;
       int prefix_length;
       char *name = event_name_from_id(database, i);
+      char *vcd_name;
       char *var_prefix = "VCD_VARIABLE_";
       char *fun_prefix = "VCD_FUNCTION_";
       if (!strncmp(name, var_prefix, strlen(var_prefix))) {
         prefix_length = strlen(var_prefix);
         is_boolean = 0;
+        type = VCD_VARIABLE;
       } else if (!strncmp(name, fun_prefix, strlen(fun_prefix))) {
         prefix_length = strlen(fun_prefix);
         is_boolean = 1;
+        type = VCD_FUNCTION;
       } else
         continue;
+      vcd_name = event_vcd_name_from_id(database, i);
+      if (vcd_name == NULL) {
+        vcd_name = name+prefix_length;
+        printf("WARNING: ID %s does not define VCD_NAME in the file %s, using %s\n",
+              name, database_filename, vcd_name);
+      }
       vars = add_var(vars, nvars,
-          name, "value", name+prefix_length, is_boolean);
+          name, "value", vcd_name, is_boolean, type);
       nvars++;
     }
   }
-- 
GitLab