Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangjie
OpenXG-RAN
Commits
da524268
Commit
da524268
authored
Oct 14, 2019
by
Rakesh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adding VCD traces in gNB
parent
c0ca7038
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
227 additions
and
47 deletions
+227
-47
common/utils/LOG/vcd_signal_dumper.c
common/utils/LOG/vcd_signal_dumper.c
+22
-1
common/utils/LOG/vcd_signal_dumper.h
common/utils/LOG/vcd_signal_dumper.h
+23
-0
common/utils/T/T_defs.h
common/utils/T/T_defs.h
+1
-1
common/utils/T/T_messages.txt
common/utils/T/T_messages.txt
+98
-0
openair1/PHY/NR_TRANSPORT/nr_dlsch.c
openair1/PHY/NR_TRANSPORT/nr_dlsch.c
+5
-2
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
+2
-2
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
+3
-2
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
+2
-0
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
+15
-3
openair1/PHY/NR_UE_TRANSPORT/pss_nr.c
openair1/PHY/NR_UE_TRANSPORT/pss_nr.c
+4
-0
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+13
-6
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
+2
-2
targets/RT/USER/gNB_usrp.gtkw
targets/RT/USER/gNB_usrp.gtkw
+37
-28
No files found.
common/utils/LOG/vcd_signal_dumper.c
View file @
da524268
...
...
@@ -503,7 +503,28 @@ const char* eurecomFunctionsNames[] = {
"pdcch_tx"
,
/*NR softmodem signal*/
"gNB_thread_rxtx0"
,
"gNB_thread_rxtx1"
"gNB_thread_rxtx1"
,
"gNB_ulsch_decoding"
,
"gNB_pdsch_codeword_scrambling"
,
"gNB_dlsch_encoding"
,
"gNB_pdsch_modulation"
,
"gNB_pdcch_tx"
,
"phy_procedures_gNB_tx"
,
"phy_procedures_gNB_common_tx"
,
"phy_procedures_gNB_uespec_rx"
,
"nr_rx_pusch"
,
"nr_ulsch_procedures_rx"
,
"macxface_gNB_dlsch_ulsch_scheduler"
,
/*NR ue-softmodem signal*/
"nr_ue_ulsch_encoding"
,
"nr_segmentation"
,
"ldpc_encoder_optim"
,
"nr_rate_matching_ldpc"
,
"nr_interleaving_ldpc"
,
"pss_synchro_nr"
,
"pss_search_time_nr"
,
"nr_initial_ue_sync"
};
struct
vcd_module_s
vcd_modules
[]
=
{
...
...
common/utils/LOG/vcd_signal_dumper.h
View file @
da524268
...
...
@@ -496,6 +496,29 @@ typedef enum {
/*NR softmodem signal*/
VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_PROC_RXTX0
,
VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_PROC_RXTX1
,
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_gNB_ULSCH_DECODING
,
VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_PDSCH_CODEWORD_SCRAMBLING
,
VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_DLSCH_ENCODING
,
VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_PDSCH_MODULATION
,
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_gNB_PDCCH_TX
,
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_gNB_TX
,
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_gNB_COMMON_TX
,
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_gNB_UESPEC_RX
,
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RX_PUSCH
,
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_ULSCH_PROCEDURES_RX
,
VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_DLSCH_ULSCH_SCHEDULER
,
/* NR ue-softmodem signal*/
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_UE_ULSCH_ENCODING
,
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_SEGMENTATION
,
VCD_SIGNAL_DUMPER_FUNCTIONS_LDPC_ENCODER_OPTIM
,
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RATE_MATCHING_LDPC
,
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_INTERLEAVING_LDPC
,
VCD_SIGNAL_DUMPER_FUNCTIONS_PSS_SYNCHRO_NR
,
VCD_SIGNAL_DUMPER_FUNCTIONS_PSS_SEARCH_TIME_NR
,
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_INITIAL_UE_SYNC
,
VCD_SIGNAL_DUMPER_FUNCTIONS_END
}
vcd_signal_dump_functions
;
...
...
common/utils/T/T_defs.h
View file @
da524268
...
...
@@ -73,7 +73,7 @@ typedef struct {
}
T_cache_t
;
/* number of VCD functions (to be kept up to date! see in T_messages.txt) */
#define VCD_NUM_FUNCTIONS (2
37
)//(232)
#define VCD_NUM_FUNCTIONS (2
56
)//(232)
/* number of VCD variables (to be kept up to date! see in T_messages.txt) */
#define VCD_NUM_VARIABLES (185)
...
...
common/utils/T/T_messages.txt
View file @
da524268
...
...
@@ -3240,3 +3240,101 @@ ID = VCD_FUNCTION_gNB_PROC_RXTX1
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = gNB_thread_rxtx1
ID = VCD_FUNCTION_PHY_gNB_ULSCH_DECODING
DESC = VCD function PHY_gNB_ULSCH_DECODING
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = gNB_ulsch_decoding
ID = VCD_FUNCTION_gNB_PDSCH_CODEWORD_SCRAMBLING
DESC = VCD function gNB_PDSCH_CODEWORD_SCRAMBLING
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = gNB_pdsch_codeword_scrambling
ID = VCD_FUNCTION_gNB_DLSCH_ENCODING
DESC = VCD function gNB_DLSCH_ENCODING
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = gNB_dlsch_encoding
ID = VCD_FUNCTION_gNB_PDSCH_MODULATION
DESC = VCD function gNB_PDSCH_MODULATION
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = gNB_pdsch_modulation
ID = VCD_FUNCTION_PHY_gNB_PDCCH_TX
DESC = VCD function PHY_gNB_PDCCH_TX
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = gNB_pdcch_tx
ID = VCD_FUNCTION_PHY_PROCEDURES_gNB_TX
DESC = VCD function PHY_PROCEDURES_gNB_TX
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = phy_procedures_gNB_tx
ID = VCD_FUNCTION_PHY_PROCEDURES_gNB_COMMON_TX
DESC = VCD function PHY_PROCEDURES_gNB_COMMON_TX
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = phy_procedures_gNB_common_tx
ID = VCD_FUNCTION_PHY_PROCEDURES_gNB_UESPEC_RX
DESC = VCD function PHY_PROCEDURES_gNB_UESPEC_RX
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = phy_procedures_gNB_uespec_rx
ID = VCD_FUNCTION_NR_RX_PUSCH
DESC = VCD function NR_RX_PUSCH
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = nr_rx_pusch
ID = VCD_FUNCTION_NR_ULSCH_PROCEDURES_RX
DESC = VCD function NR_ULSCH_PROCEDURES_RX
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = nr_ulsch_procedures_rx
ID = VCD_FUNCTION_gNB_DLSCH_ULSCH_SCHEDULER
DESC = VCD function gNB_DLSCH_ULSCH_SCHEDULER
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = macxface_gNB_dlsch_ulsch_scheduler
#function for nrUE
ID = VCD_FUNCTION_NR_UE_ULSCH_ENCODING
DESC = VCD function NR_UE_ULSCH_ENCODING
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = nr_ue_ulsch_encoding
ID = VCD_FUNCTION_NR_SEGMENTATION
DESC = VCD function NR_SEGMENTATION
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = nr_segmentation
ID = VCD_FUNCTION_LDPC_ENCODER_OPTIM
DESC = VCD function LDPC_ENCODER_OPTIM
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = ldpc_encoder_optim
ID = VCD_FUNCTION_NR_RATE_MATCHING_LDPC
DESC = VCD function NR_RATE_MATCHING_LDPC
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = nr_rate_matching_ldpc
ID = VCD_FUNCTION_NR_INTERLEAVING_LDPC
DESC = VCD function NR_INTERLEAVING_LDPC
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = nr_interleaving_ldpc
ID = VCD_FUNCTION_PSS_SYNCHRO_NR
DESC = VCD function PSS_SYNCHRO_NR
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = pss_synchro_nr
ID = VCD_FUNCTION_PSS_SEARCH_TIME_NR
DESC = VCD function PSS_SEARCH_TIME_NR
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = pss_search_time_nr
ID = VCD_FUNCTION_NR_INITIAL_UE_SYNC
DESC = VCD function NR_INITIAL_UE_SYNC
GROUP = ALL:VCD:UE:VCD_FUNCTION
FORMAT = int,value
VCD_NAME = nr_initial_ue_sync
openair1/PHY/NR_TRANSPORT/nr_dlsch.c
View file @
da524268
...
...
@@ -34,6 +34,7 @@
#include "nr_dci.h"
#include "nr_sch_dmrs.h"
#include "PHY/MODULATION/nr_modulation.h"
#include "common/utils/LOG/vcd_signal_dumper.h"
//#define DEBUG_DLSCH
//#define DEBUG_DLSCH_MAPPING
...
...
@@ -47,7 +48,7 @@ void nr_pdsch_codeword_scrambling(uint8_t *in,
uint8_t
reset
,
b_idx
;
uint32_t
x1
,
x2
,
s
=
0
;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_PDSCH_CODEWORD_SCRAMBLING
,
1
);
reset
=
1
;
x2
=
(
n_RNTI
<<
15
)
+
(
q
<<
14
)
+
Nid
;
...
...
@@ -62,7 +63,7 @@ void nr_pdsch_codeword_scrambling(uint8_t *in,
*
out
^=
(((
in
[
i
])
&
1
)
^
((
s
>>
b_idx
)
&
1
))
<<
b_idx
;
//printf("i %d b_idx %d in %d s 0x%08x out 0x%08x\n", i, b_idx, in[i], s, *out);
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_PDSCH_CODEWORD_SCRAMBLING
,
0
);
}
...
...
@@ -138,11 +139,13 @@ for (int i=0; i<encoded_length>>8; i++) {
/// Modulation
start_meas
(
dlsch_modulation_stats
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_PDSCH_MODULATION
,
1
);
for
(
int
q
=
0
;
q
<
rel15
->
nb_codewords
;
q
++
)
nr_modulation
(
scrambled_output
[
q
],
encoded_length
,
Qm
,
mod_symbs
[
q
]);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_PDSCH_MODULATION
,
0
);
stop_meas
(
dlsch_modulation_stats
);
#ifdef DEBUG_DLSCH
printf
(
"PDSCH Modulation: Qm %d(%d)
\n
"
,
Qm
,
nb_symbols
);
...
...
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
View file @
da524268
...
...
@@ -302,7 +302,7 @@ int nr_dlsch_encoding(unsigned char *a,int frame,
}
*/
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_
E
NB_DLSCH_ENCODING
,
VCD_FUNCTION_IN
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_
g
NB_DLSCH_ENCODING
,
VCD_FUNCTION_IN
);
A
=
rel15
.
transport_block_size
;
...
...
@@ -462,7 +462,7 @@ int nr_dlsch_encoding(unsigned char *a,int frame,
r_offset
+=
E
;
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_
E
NB_DLSCH_ENCODING
,
VCD_FUNCTION_OUT
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_
g
NB_DLSCH_ENCODING
,
VCD_FUNCTION_OUT
);
return
0
;
}
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
View file @
da524268
...
...
@@ -348,7 +348,8 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
}
// harq_process->trials[nfapi_ulsch_pdu_rel15->round]++;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_gNB_ULSCH_DECODING
,
1
);
harq_process
->
TBS
=
nr_compute_tbs
(
mcs
,
nb_rb
,
number_symbols
,
nb_re_dmrs
,
length_dmrs
,
n_layers
);
A
=
harq_process
->
TBS
;
...
...
@@ -717,6 +718,6 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
}
ulsch
->
last_iteration_cnt
=
ret
;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_gNB_ULSCH_DECODING
,
0
);
return
(
ret
);
}
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
View file @
da524268
...
...
@@ -222,6 +222,7 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc, PHY_VARS_NR_UE *ue, runmode_t mode,
// FK: added N_RB_DL paramter here as this function shares code with the gNB where it is needed. We should rewrite this function for the UE.
nr_init_frame_parms_ue
(
fp
,
NR_MU_1
,
NORMAL
,
fp
->
N_RB_DL
,
n_ssb_crb
,
0
);
LOG_D
(
PHY
,
"nr_initial sync ue RB_DL %d
\n
"
,
fp
->
N_RB_DL
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_INITIAL_UE_SYNC
,
VCD_FUNCTION_IN
);
...
...
@@ -480,6 +481,7 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc, PHY_VARS_NR_UE *ue, runmode_t mode,
}
// exit_fun("debug exit");
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_INITIAL_UE_SYNC
,
VCD_FUNCTION_OUT
);
return
ret
;
}
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
View file @
da524268
...
...
@@ -246,7 +246,7 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
}
*/
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_
ENB_D
LSCH_ENCODING
,
VCD_FUNCTION_IN
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_
NR_UE_U
LSCH_ENCODING
,
VCD_FUNCTION_IN
);
LOG_D
(
PHY
,
"ulsch coding nb_rb %d nb_symb_sch %d nb_re_dmrs %d, length_dmrs %d
\n
"
,
nb_rb
,
nb_symb_sch
,
nb_re_dmrs
,
length_dmrs
);
...
...
@@ -290,6 +290,7 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
///////////////////////// b---->| block segmentation |---->c /////////////////////////
///////////
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_SEGMENTATION
,
VCD_FUNCTION_IN
);
nr_segmentation
(
harq_process
->
b
,
harq_process
->
c
,
harq_process
->
B
,
...
...
@@ -297,6 +298,7 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
&
harq_process
->
K
,
pz
,
&
harq_process
->
F
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_SEGMENTATION
,
VCD_FUNCTION_OUT
);
F
=
harq_process
->
F
;
Coderate
=
(
float
)
A
/
(
float
)
G
;
...
...
@@ -352,7 +354,11 @@ opp_enabled=0;
}
printf("\n");*/
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_LDPC_ENCODER_OPTIM
,
VCD_FUNCTION_IN
);
ldpc_encoder_optim_8seg
(
harq_process
->
c
,
harq_process
->
d
,
Kr
,
BG
,
harq_process
->
C
,
NULL
,
NULL
,
NULL
,
NULL
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_LDPC_ENCODER_OPTIM
,
VCD_FUNCTION_OUT
);
//stop_meas(te_stats);
//printf("end ldpc encoder -- output\n");
...
...
@@ -394,6 +400,7 @@ opp_enabled=0;
E
=
nr_get_E
(
G
,
harq_process
->
C
,
mod_order
,
harq_process
->
Nl
,
r
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RATE_MATCHING_LDPC
,
VCD_FUNCTION_IN
);
nr_rate_matching_ldpc
(
Ilbrm
,
Tbslbrm
,
BG
,
...
...
@@ -403,6 +410,7 @@ opp_enabled=0;
harq_process
->
C
,
harq_process
->
rvidx
,
E
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RATE_MATCHING_LDPC
,
VCD_FUNCTION_OUT
);
...
...
@@ -421,10 +429,14 @@ opp_enabled=0;
//stop_meas(rm_stats);
//start_meas(i_stats);
nr_interleaving_ldpc
(
E
,
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_INTERLEAVING_LDPC
,
VCD_FUNCTION_IN
);
nr_interleaving_ldpc
(
E
,
mod_order
,
harq_process
->
e
+
r_offset
,
harq_process
->
f
+
r_offset
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_INTERLEAVING_LDPC
,
VCD_FUNCTION_OUT
);
//stop_meas(i_stats);
...
...
@@ -445,7 +457,7 @@ opp_enabled=0;
memcpy
(
ulsch
->
g
,
harq_process
->
f
,
G
);
// g is the concatenated code block
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_
ENB_D
LSCH_ENCODING
,
VCD_FUNCTION_OUT
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_
NR_UE_U
LSCH_ENCODING
,
VCD_FUNCTION_OUT
);
return
(
0
);
}
openair1/PHY/NR_UE_TRANSPORT/pss_nr.c
View file @
da524268
...
...
@@ -669,6 +669,7 @@ int pss_synchro_nr(PHY_VARS_NR_UE *PHY_vars_UE, int is, int rate_change)
int
**
rxdata
=
NULL
;
int
fo_flag
=
PHY_vars_UE
->
UE_fo_compensation
;
// flag to enable freq offset estimation and compensation
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PSS_SYNCHRO_NR
,
VCD_FUNCTION_IN
);
#ifdef DBG_PSS_NR
LOG_M
(
"rxdata0_rand.m"
,
"rxd0_rand"
,
&
PHY_vars_UE
->
common_vars
.
rxdata
[
0
][
0
],
frame_parms
->
samples_per_frame
,
1
,
1
);
...
...
@@ -707,6 +708,7 @@ int pss_synchro_nr(PHY_VARS_NR_UE *PHY_vars_UE, int is, int rate_change)
#endif
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PSS_SEARCH_TIME_NR
,
VCD_FUNCTION_IN
);
synchro_position
=
pss_search_time_nr
(
rxdata
,
frame_parms
,
fo_flag
,
...
...
@@ -714,6 +716,7 @@ int pss_synchro_nr(PHY_VARS_NR_UE *PHY_vars_UE, int is, int rate_change)
(
int
*
)
&
PHY_vars_UE
->
common_vars
.
eNb_id
,
(
int
*
)
&
PHY_vars_UE
->
common_vars
.
freq_offset
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PSS_SEARCH_TIME_NR
,
VCD_FUNCTION_OUT
);
#if TEST_SYNCHRO_TIMING_PSS
...
...
@@ -746,6 +749,7 @@ int pss_synchro_nr(PHY_VARS_NR_UE *PHY_vars_UE, int is, int rate_change)
}
#endif
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PSS_SYNCHRO_NR
,
VCD_FUNCTION_OUT
);
return
synchro_position
;
}
...
...
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
da524268
...
...
@@ -162,7 +162,7 @@ void phy_procedures_gNB_TX(PHY_VARS_gNB *gNB,
if
((
cfg
->
subframe_config
.
duplex_mode
.
value
==
TDD
)
&&
(
nr_slot_select
(
cfg
,
slot
)
==
SF_UL
))
return
;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_
E
NB_TX
+
offset
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_
g
NB_TX
+
offset
,
1
);
if
(
do_meas
==
1
)
start_meas
(
&
gNB
->
phy_proc_tx
);
...
...
@@ -171,12 +171,12 @@ void phy_procedures_gNB_TX(PHY_VARS_gNB *gNB,
memset
(
gNB
->
common_vars
.
txdataF
[
aa
],
0
,
fp
->
samples_per_slot_wCP
*
sizeof
(
int32_t
));
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_
E
NB_COMMON_TX
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_
PROCEDURES_g
NB_COMMON_TX
,
1
);
if
(
nfapi_mode
==
0
||
nfapi_mode
==
1
)
{
if
(
!
(
frame
%
ssb_frame_periodicity
))
// generate SSB only for given frames according to SSB periodicity
nr_common_signal_procedures
(
gNB
,
frame
,
slot
);
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_
E
NB_COMMON_TX
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_
PROCEDURES_g
NB_COMMON_TX
,
0
);
num_dci
=
gNB
->
pdcch_vars
.
num_dci
;
num_pdsch_rnti
=
gNB
->
pdcch_vars
.
num_pdsch_rnti
;
...
...
@@ -185,12 +185,12 @@ void phy_procedures_gNB_TX(PHY_VARS_gNB *gNB,
LOG_D
(
PHY
,
"[gNB %d] Frame %d slot %d \
Calling nr_generate_dci_top (number of DCI %d)
\n
"
,
gNB
->
Mod_id
,
frame
,
slot
,
num_dci
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_
E
NB_PDCCH_TX
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_
g
NB_PDCCH_TX
,
1
);
nr_generate_dci_top
(
gNB
->
pdcch_vars
.
dci_alloc
[
i
],
gNB
->
nr_gold_pdcch_dmrs
[
slot
],
gNB
->
common_vars
.
txdataF
[
0
],
AMP
,
*
fp
,
*
cfg
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_
E
NB_PDCCH_TX
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_
g
NB_PDCCH_TX
,
0
);
}
for
(
int
i
=
0
;
i
<
num_pdsch_rnti
;
i
++
)
{
...
...
@@ -207,7 +207,7 @@ void phy_procedures_gNB_TX(PHY_VARS_gNB *gNB,
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_GENERATE_DLSCH
,
0
);
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_
E
NB_TX
+
offset
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_
g
NB_TX
+
offset
,
0
);
}
...
...
@@ -352,6 +352,7 @@ void phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx)
nfapi_nr_ul_tti_request_t
*
UL_tti_req
=
&
gNB
->
UL_tti_req
;
int
num_pusch_pdu
=
UL_tti_req
->
n_pdus
;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_gNB_UESPEC_RX
,
1
);
LOG_I
(
PHY
,
"phy_procedures_gNB_uespec_RX frame %d, slot %d, num_pusch_pdu %d
\n
"
,
frame_rx
,
slot_rx
,
num_pusch_pdu
);
for
(
int
i
=
0
;
i
<
num_pusch_pdu
;
i
++
)
{
...
...
@@ -370,11 +371,17 @@ void phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx)
uint8_t
symbol_end
=
symbol_start
+
pusch_pdu
->
nr_of_symbols
;
for
(
uint8_t
symbol
=
symbol_start
;
symbol
<
symbol_end
;
symbol
++
)
{
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RX_PUSCH
,
1
);
nr_rx_pusch
(
gNB
,
UE_id
,
frame_rx
,
slot_rx
,
symbol
,
harq_pid
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RX_PUSCH
,
0
);
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_ULSCH_PROCEDURES_RX
,
1
);
nr_ulsch_procedures
(
gNB
,
frame_rx
,
slot_rx
,
UE_id
,
harq_pid
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_ULSCH_PROCEDURES_RX
,
0
);
nr_fill_rx_indication
(
gNB
,
frame_rx
,
slot_rx
,
UE_id
,
harq_pid
);
// indicate SDU to MAC
}
}
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_gNB_UESPEC_RX
,
0
);
}
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
View file @
da524268
...
...
@@ -309,7 +309,7 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
NR_COMMON_channels_t
*
cc
=
RC
.
nrmac
[
module_idP
]
->
common_channels
;
start_meas
(
&
RC
.
nrmac
[
module_idP
]
->
eNB_scheduler
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_
E
NB_DLSCH_ULSCH_SCHEDULER
,
VCD_FUNCTION_IN
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_
g
NB_DLSCH_ULSCH_SCHEDULER
,
VCD_FUNCTION_IN
);
RC
.
nrmac
[
module_idP
]
->
frame
=
frame_rxP
;
RC
.
nrmac
[
module_idP
]
->
slot
=
slot_rxP
;
...
...
@@ -387,5 +387,5 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
stop_meas
(
&
RC
.
nrmac
[
module_idP
]
->
eNB_scheduler
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_
E
NB_DLSCH_ULSCH_SCHEDULER
,
VCD_FUNCTION_OUT
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_
g
NB_DLSCH_ULSCH_SCHEDULER
,
VCD_FUNCTION_OUT
);
}
targets/RT/USER/gNB_usrp.gtkw
View file @
da524268
[*]
[*] GTKWave Analyzer v3.3.
61 (w)1999-2014
BSI
[*]
Sat May 18 17:25:11
2019
[*] GTKWave Analyzer v3.3.
86 (w)1999-2017
BSI
[*]
Mon Oct 14 17:19:14
2019
[*]
[dumpfile] "/tmp/openair_dump_
gNB40
.vcd"
[dumpfile_mtime] "
Sat May 18 17:11:31
2019"
[dumpfile_size]
53148516
[savefile] "/home/
caracal/raymond
/openairinterface5g/targets/RT/USER/gNB_usrp.gtkw"
[timestart]
1155277539
0
[dumpfile] "/tmp/openair_dump_
eNB
.vcd"
[dumpfile_mtime] "
Mon Oct 14 12:36:08
2019"
[dumpfile_size]
655399
[savefile] "/home/
rakesh/nr_fapi_for_push
/openairinterface5g/targets/RT/USER/gNB_usrp.gtkw"
[timestart] 0
[size] 1840 795
[pos] -1 -1
*-
13.848083 11552814436
-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
*-
30.415869 243000000
-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] 386
[signals_width] 344
[sst_expanded] 1
...
...
@@ -24,44 +24,53 @@ variables.frame_number_TX1_UE[63:0]
functions.ue_gain_control
@420
variables.frame_number_RX1_UE[63:0]
@25
variables.trx_ts_ue[63:0]
@24
variables.trx_ts_ue[63:0]
variables.trx_ts[63:0]
variables.trx_tst[63:0]
@22
variables.frame_number_RX0_UE[63:0]
@24
variables.frame_number_RX0_RU[63:0]
variables.tti_number_RX0_RU[63:0]
variables.frame_number_TX0_RU[63:0]
variables.tti_number_TX0_RU[63:0]
@28
functions.mac_schedule_dlsch
functions.macxface_eNB_dlsch_ulsch_scheduler
functions.macxface_gNB_dlsch_ulsch_scheduler
functions.gNB_thread_rxtx1
functions.phy_eNB_dlsch_encoding_w
functions.generate_dlsch
functions.phy_procedures_ru_feprx0
functions.phy_procedures_ru_feprx1
functions.phy_procedures_ru_feptx_ofdm0
functions.phy_procedures_ru_feptx_ofdm1
functions.phy_procedures_ru_feptx_prec0
functions.phy_procedures_ru_feptx_prec1
functions.phy_procedures_gNB_common_tx
functions.phy_procedures_gNB_tx
functions.gNB_pdcch_tx
functions.gNB_dlsch_encoding
functions.gNB_pdsch_codeword_scrambling
functions.gNB_pdsch_modulation
functions.phy_procedures_gNB_uespec_rx
functions.nr_rx_pusch
functions.nr_ulsch_procedures_rx
functions.gNB_ulsch_decoding
@24
variables.frame_number_RX0_gNB[63:0]
variables.
slot_number_RX0
_gNB[63:0]
variables.
frame_number_RX1
_gNB[63:0]
variables.frame_number_TX0_gNB[63:0]
@421
variables.frame_number_RX0_UE[63:0]
@24
variables.slot_number_RX0_gNB[63:0]
variables.slot_number_TX0_gNB[63:0]
@28
functions.gNB_thread_rxtx0
@24
variables.frame_number_RX1_gNB[63:0]
variables.slot_number_RX1_gNB[63:0]
variables.frame_number_TX1_gNB[63:0]
variables.slot_number_TX1_gNB[63:0]
@28
functions.gNB_thread_rxtx1
functions.phy_enb_pdcch_tx
functions.phy_eNB_dlsch_encoding
functions.phy_eNB_dlsch_encoding_w
functions.generate_dlsch
@420
variables.frame_number_RX0_UE[63:0]
@28
functions.phy_procedures_ru_feprx0
functions.phy_procedures_ru_feprx1
functions.phy_procedures_ru_feptx_ofdm0
functions.phy_procedures_ru_feptx_ofdm1
functions.phy_procedures_ru_feptx_prec0
functions.phy_procedures_ru_feptx_prec1
[pattern_trace] 1
[pattern_trace] 0
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment