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
zzha zzha
OpenXG-RAN
Commits
0fd3ca75
Commit
0fd3ca75
authored
Aug 17, 2018
by
cdxu0312
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added 2 RRU debugging for vcd
parent
ff0ca090
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
62 additions
and
185 deletions
+62
-185
common/utils/LOG/vcd_signal_dumper.c
common/utils/LOG/vcd_signal_dumper.c
+4
-2
common/utils/LOG/vcd_signal_dumper.h
common/utils/LOG/vcd_signal_dumper.h
+4
-2
openair1/PHY/LTE_TRANSPORT/if4_tools.c
openair1/PHY/LTE_TRANSPORT/if4_tools.c
+8
-8
openair1/PHY/LTE_TRANSPORT/if5_tools.c
openair1/PHY/LTE_TRANSPORT/if5_tools.c
+16
-16
targets/RT/USER/lte-ru.c
targets/RT/USER/lte-ru.c
+5
-4
targets/RT/USER/lte-softmodem.h
targets/RT/USER/lte-softmodem.h
+1
-1
targets/RT/USER/rcc_if4.gtkw
targets/RT/USER/rcc_if4.gtkw
+24
-152
No files found.
common/utils/LOG/vcd_signal_dumper.c
View file @
0fd3ca75
...
...
@@ -208,8 +208,10 @@ const char* eurecomFunctionsNames[] = {
"trx_write"
,
"trx_read_ue"
,
"trx_write_ue"
,
"trx_read_if"
,
"trx_write_if"
,
"trx_read_if0"
,
"trx_read_if1"
,
"trx_write_if0"
,
"trx_write_if1"
,
"eNB_thread_rxtx0"
,
"eNB_thread_rxtx1"
,
"ue_thread_synch"
,
...
...
common/utils/LOG/vcd_signal_dumper.h
View file @
0fd3ca75
...
...
@@ -185,8 +185,10 @@ typedef enum {
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE
,
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_UE
,
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_UE
,
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF
,
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
,
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF0
,
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF1
,
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF0
,
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF1
,
VCD_SIGNAL_DUMPER_FUNCTIONS_eNB_PROC_RXTX0
,
VCD_SIGNAL_DUMPER_FUNCTIONS_eNB_PROC_RXTX1
,
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_THREAD_SYNCH
,
...
...
openair1/PHY/LTE_TRANSPORT/if4_tools.c
View file @
0fd3ca75
...
...
@@ -105,7 +105,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) {
packet_header
->
frame_status
&=
~
(
0x000f
<<
26
);
packet_header
->
frame_status
|=
(
symbol_id
&
0x000f
)
<<
26
;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
,
1
);
if
(
ru
->
idx
<=
1
)
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF0
+
ru
->
idx
,
1
);
if
((
ru
->
ifdevice
.
trx_write_func
(
&
ru
->
ifdevice
,
symbol_id
,
&
tx_buffer
,
...
...
@@ -114,7 +114,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) {
IF4p5_PDLFFT
))
<
0
)
{
perror
(
"ETHERNET write for IF4p5_PDLFFT
\n
"
);
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
,
0
);
if
(
ru
->
idx
<=
1
)
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF0
+
ru
->
idx
,
0
);
slotoffsetF
+=
fp
->
ofdm_symbol_size
;
blockoffsetF
+=
fp
->
ofdm_symbol_size
;
}
...
...
@@ -186,7 +186,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) {
packet_header
->
frame_status
|=
ru
->
nb_rx
-
1
;
packet_header
->
frame_status
&=
~
(
0x000f
<<
26
);
packet_header
->
frame_status
|=
(
symbol_id
&
0x000f
)
<<
26
;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
,
1
);
if
(
ru
->
idx
<=
1
)
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF0
+
ru
->
idx
,
1
);
start_meas
(
&
ru
->
transport
);
if
((
ru
->
ifdevice
.
trx_write_func
(
&
ru
->
ifdevice
,
symbol_id
,
...
...
@@ -197,7 +197,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) {
perror
(
"ETHERNET write for IF4p5_PULFFT
\n
"
);
}
stop_meas
(
&
ru
->
transport
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
,
0
);
if
(
ru
->
idx
<=
1
)
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF0
+
ru
->
idx
,
0
);
slotoffsetF
+=
fp
->
ofdm_symbol_size
;
blockoffsetF
+=
fp
->
ofdm_symbol_size
;
}
...
...
@@ -250,7 +250,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) {
PRACH_BLOCK_SIZE_BYTES
);
}
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
,
1
);
if
(
ru
->
idx
<=
1
)
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF0
+
ru
->
idx
,
1
);
if
((
ru
->
ifdevice
.
trx_write_func
(
&
ru
->
ifdevice
,
symbol_id
,
&
tx_buffer_prach
,
...
...
@@ -260,7 +260,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) {
perror
(
"ETHERNET write for IF4p5_PRACH
\n
"
);
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
,
0
);
if
(
ru
->
idx
<=
1
)
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF0
+
ru
->
idx
,
0
);
}
else
{
AssertFatal
(
1
==
0
,
"send_IF4p5 - Unknown packet_type %x"
,
packet_type
);
}
...
...
@@ -298,7 +298,7 @@ void recv_IF4p5(RU_t *ru, int *frame, int *subframe, uint16_t *packet_type, uint
uint16_t
*
data_block
=
NULL
,
*
i
=
NULL
;
LOG_D
(
PHY
,
"recv IF4p5: RU %d waiting (%d samples)
\n
"
,
ru
->
idx
,
db_fulllength
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF
,
1
);
if
(
ru
->
idx
<=
1
)
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF0
+
ru
->
idx
,
1
);
int
read_cnt
=
0
;
while
(
ru
->
ifdevice
.
trx_read_func
(
&
ru
->
ifdevice
,
(
int64_t
*
)
packet_type
,
...
...
@@ -312,7 +312,7 @@ void recv_IF4p5(RU_t *ru, int *frame, int *subframe, uint16_t *packet_type, uint
return
;
}
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF
,
0
);
if
(
ru
->
idx
<=
1
)
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF0
+
ru
->
idx
,
0
);
if
(
eth
->
flags
==
ETH_RAW_IF4p5_MODE
)
{
packet_header
=
(
IF4p5_header_t
*
)
(
rx_buffer
+
MAC_HEADER_SIZE_BYTES
);
data_block
=
(
uint16_t
*
)
(
rx_buffer
+
MAC_HEADER_SIZE_BYTES
+
sizeof_IF4p5_header_t
);
...
...
openair1/PHY/LTE_TRANSPORT/if5_tools.c
View file @
0fd3ca75
...
...
@@ -89,7 +89,7 @@ void send_IF5(RU_t *ru, openair0_timestamp proc_timestamp, int subframe, uint8_t
clock_gettime
(
CLOCK_MONOTONIC
,
&
end_comp
);
LOG_D
(
HW
,
"[SF %d] Compress_Time: %"
PRId64
"
\n
"
,
subframe
,
clock_difftime_ns
(
start_comp
,
end_comp
));
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_COMPR_IF
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
0
,
1
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
start_comp
);
ru
->
ifdevice
.
trx_write_func
(
&
ru
->
ifdevice
,
(
proc_timestamp
+
packet_id
*
spp_eth
),
...
...
@@ -99,7 +99,7 @@ void send_IF5(RU_t *ru, openair0_timestamp proc_timestamp, int subframe, uint8_t
0
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
end_comp
);
LOG_D
(
HW
,
"[SF %d] IF_Write_Time: %"
PRId64
"
\n
"
,
subframe
,
clock_difftime_ns
(
start_comp
,
end_comp
));
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
0
,
0
);
}
}
else
if
(
eth
->
compression
==
NO_COMPRESS
)
{
...
...
@@ -108,7 +108,7 @@ void send_IF5(RU_t *ru, openair0_timestamp proc_timestamp, int subframe, uint8_t
for
(
packet_id
=
0
;
packet_id
<
spsf
/
spp_eth
;
packet_id
++
)
{
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_SEND_IF5_PKT_ID
,
packet_id
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
0
,
1
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
start_comp
);
ru
->
ifdevice
.
trx_write_func
(
&
ru
->
ifdevice
,
(
proc_timestamp
+
packet_id
*
spp_eth
),
...
...
@@ -118,7 +118,7 @@ void send_IF5(RU_t *ru, openair0_timestamp proc_timestamp, int subframe, uint8_t
0
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
end_comp
);
LOG_D
(
HW
,
"[SF %d] IF_Write_Time: %"
PRId64
"
\n
"
,
subframe
,
clock_difftime_ns
(
start_comp
,
end_comp
));
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
0
,
0
);
for
(
i
=
0
;
i
<
fp
->
nb_antennas_tx
;
i
++
)
txp
[
i
]
+=
spp_eth
;
...
...
@@ -144,7 +144,7 @@ void send_IF5(RU_t *ru, openair0_timestamp proc_timestamp, int subframe, uint8_t
clock_gettime
(
CLOCK_MONOTONIC
,
&
end_comp
);
LOG_D
(
HW
,
"[SF %d] Compress_Time: %"
PRId64
"
\n
"
,
subframe
,
clock_difftime_ns
(
start_comp
,
end_comp
));
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_COMPR_IF
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
0
,
1
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
start_comp
);
ru
->
ifdevice
.
trx_write_func
(
&
ru
->
ifdevice
,
(
proc_timestamp
+
packet_id
*
spp_eth
),
...
...
@@ -154,7 +154,7 @@ void send_IF5(RU_t *ru, openair0_timestamp proc_timestamp, int subframe, uint8_t
0
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
end_comp
);
LOG_D
(
HW
,
"[SF %d] IF_Write_Time: %"
PRId64
"
\n
"
,
subframe
,
clock_difftime_ns
(
start_comp
,
end_comp
));
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
0
,
0
);
}
}
else
if
(
eth
->
compression
==
NO_COMPRESS
)
{
for
(
i
=
0
;
i
<
fp
->
nb_antennas_rx
;
i
++
)
...
...
@@ -162,7 +162,7 @@ void send_IF5(RU_t *ru, openair0_timestamp proc_timestamp, int subframe, uint8_t
for
(
packet_id
=
0
;
packet_id
<
spsf
/
spp_eth
;
packet_id
++
)
{
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_SEND_IF5_PKT_ID
,
packet_id
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
0
,
1
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
start_comp
);
ru
->
ifdevice
.
trx_write_func
(
&
ru
->
ifdevice
,
(
proc_timestamp
+
packet_id
*
spp_eth
),
...
...
@@ -172,7 +172,7 @@ void send_IF5(RU_t *ru, openair0_timestamp proc_timestamp, int subframe, uint8_t
0
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
end_comp
);
LOG_D
(
HW
,
"[SF %d] IF_Write_Time: %"
PRId64
"
\n
"
,
subframe
,
clock_difftime_ns
(
start_comp
,
end_comp
));
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF
0
,
0
);
for
(
i
=
0
;
i
<
fp
->
nb_antennas_rx
;
i
++
)
rxp
[
i
]
+=
spp_eth
;
...
...
@@ -340,7 +340,7 @@ void recv_IF5(RU_t *ru, openair0_timestamp *proc_timestamp, int subframe, uint16
}
for
(
packet_id
=
0
;
packet_id
<
spsf
/
spp_eth
;
packet_id
++
)
{
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_RECV_IF5_PKT_ID
,
packet_id
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF
0
,
1
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
start_decomp
);
ru
->
ifdevice
.
trx_read_func
(
&
ru
->
ifdevice
,
&
timestamp
[
packet_id
],
...
...
@@ -350,7 +350,7 @@ void recv_IF5(RU_t *ru, openair0_timestamp *proc_timestamp, int subframe, uint16
clock_gettime
(
CLOCK_MONOTONIC
,
&
end_decomp
);
LOG_D
(
HW
,
"[SF %d] IF_Read_Time: %"
PRId64
"
\n
"
,
subframe
,
clock_difftime_ns
(
start_decomp
,
end_decomp
));
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF
0
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_DECOMPR_IF
,
1
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
start_decomp
);
for
(
i
=
0
;
i
<
fp
->
nb_antennas_tx
;
i
++
)
{
...
...
@@ -370,7 +370,7 @@ void recv_IF5(RU_t *ru, openair0_timestamp *proc_timestamp, int subframe, uint16
for
(
packet_id
=
0
;
packet_id
<
spsf
/
spp_eth
;
packet_id
++
)
{
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_RECV_IF5_PKT_ID
,
packet_id
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF
0
,
1
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
start_decomp
);
ru
->
ifdevice
.
trx_read_func
(
&
ru
->
ifdevice
,
&
timestamp
[
packet_id
],
...
...
@@ -379,7 +379,7 @@ void recv_IF5(RU_t *ru, openair0_timestamp *proc_timestamp, int subframe, uint16
fp
->
nb_antennas_tx
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
end_decomp
);
LOG_D
(
HW
,
"[SF %d] IF_Read_Time: %"
PRId64
"
\n
"
,
subframe
,
clock_difftime_ns
(
start_decomp
,
end_decomp
));
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF
0
,
0
);
for
(
i
=
0
;
i
<
fp
->
nb_antennas_tx
;
i
++
)
txp
[
i
]
+=
spp_eth
;
...
...
@@ -396,7 +396,7 @@ void recv_IF5(RU_t *ru, openair0_timestamp *proc_timestamp, int subframe, uint16
}
for
(
packet_id
=
0
;
packet_id
<
spsf
/
spp_eth
;
packet_id
++
)
{
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_SEND_IF5_PKT_ID
,
packet_id
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF
0
,
1
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
start_decomp
);
ru
->
ifdevice
.
trx_read_func
(
&
ru
->
ifdevice
,
&
timestamp
[
packet_id
],
...
...
@@ -405,7 +405,7 @@ void recv_IF5(RU_t *ru, openair0_timestamp *proc_timestamp, int subframe, uint16
fp
->
nb_antennas_rx
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
end_decomp
);
LOG_D
(
HW
,
"[SF %d] IF_Read_Time: %"
PRId64
"
\n
"
,
subframe
,
clock_difftime_ns
(
start_decomp
,
end_decomp
));
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF
0
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_DECOMPR_IF
,
1
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
start_decomp
);
for
(
i
=
0
;
i
<
fp
->
nb_antennas_rx
;
i
++
)
{
...
...
@@ -425,7 +425,7 @@ void recv_IF5(RU_t *ru, openair0_timestamp *proc_timestamp, int subframe, uint16
for
(
packet_id
=
0
;
packet_id
<
spsf
/
spp_eth
;
packet_id
++
)
{
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_SEND_IF5_PKT_ID
,
packet_id
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF
0
,
1
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
start_decomp
);
ru
->
ifdevice
.
trx_read_func
(
&
ru
->
ifdevice
,
&
timestamp
[
packet_id
],
...
...
@@ -434,7 +434,7 @@ void recv_IF5(RU_t *ru, openair0_timestamp *proc_timestamp, int subframe, uint16
fp
->
nb_antennas_rx
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
end_decomp
);
LOG_D
(
HW
,
"[SF %d] IF_Read_Time: %"
PRId64
"
\n
"
,
subframe
,
clock_difftime_ns
(
start_decomp
,
end_decomp
));
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF
0
,
0
);
for
(
i
=
0
;
i
<
fp
->
nb_antennas_rx
;
i
++
)
rxp
[
i
]
+=
spp_eth
;
...
...
targets/RT/USER/lte-ru.c
View file @
0fd3ca75
...
...
@@ -231,10 +231,11 @@ void fh_if4p5_south_in(RU_t *ru,int *frame,int *subframe) {
proc
->
subframe_rx
=
sf
;
proc
->
frame_rx
=
f
;
proc
->
timestamp_rx
=
((
proc
->
frame_rx
*
10
)
+
proc
->
subframe_rx
)
*
fp
->
samples_per_tti
;
// proc->timestamp_tx = proc->timestamp_rx + (4*fp->samples_per_tti);
proc
->
subframe_tx
=
(
sf
+
sf_ahead
)
%
10
;
proc
->
frame_tx
=
(
sf
>
(
9
-
sf_ahead
))
?
(
f
+
1
)
&
1023
:
f
;
if
(
get_nprocs
()
<=
4
)
{
proc
->
subframe_tx
=
(
sf
+
sf_ahead
)
%
10
;
proc
->
frame_tx
=
(
sf
>
(
9
-
sf_ahead
))
?
(
f
+
1
)
&
1023
:
f
;
}
if
(
proc
->
first_rx
==
0
)
{
if
(
proc
->
subframe_rx
!=
*
subframe
){
LOG_E
(
PHY
,
"Received Timestamp (IF4p5) doesn't correspond to the time we think it is (proc->subframe_rx %d, subframe %d)
\n
"
,
proc
->
subframe_rx
,
*
subframe
);
...
...
targets/RT/USER/lte-softmodem.h
View file @
0fd3ca75
...
...
@@ -164,7 +164,7 @@
{"usim-test", CONFIG_HLP_USIM, PARAMFLAG_BOOL, u8ptr:&usim_test, defintval:0, TYPE_UINT8, 0}, \
{"mmapped-dma", CONFIG_HLP_DMAMAP, PARAMFLAG_BOOL, uptr:&mmapped_dma, defintval:0, TYPE_INT, 0}, \
{"external-clock", CONFIG_HLP_EXCCLK, PARAMFLAG_BOOL, uptr:&clock_source, defintval:0, TYPE_INT, 0}, \
{"external-timesource", CONFIG_HLP_EXTS, PARAMFLAG_BOOL, uptr:&time_source, defintval:0, TYPE_INT, 0}, \
{"external-timesource", CONFIG_HLP_EXTS, PARAMFLAG_BOOL, uptr:&time_source, defintval:0, TYPE_INT, 0}, \
{"wait-for-sync", NULL, PARAMFLAG_BOOL, iptr:&wait_for_sync, defintval:0, TYPE_INT, 0}, \
{"single-thread-enable", CONFIG_HLP_NOSNGLT, PARAMFLAG_BOOL, iptr:&single_thread_flag, defintval:0, TYPE_INT, 0}, \
{"threadIQ", NULL, 0, iptr:&(threads.iq), defintval:1, TYPE_INT, 0}, \
...
...
targets/RT/USER/rcc_if4.gtkw
View file @
0fd3ca75
[*]
[*] GTKWave Analyzer v3.3.58 (w)1999-2014 BSI
[*] Fri
May 4 13:17
:37 2018
[*] Fri
Aug 17 06:51
:37 2018
[*]
[dumpfile] "/
tmp
/openair_dump_eNB.vcd"
[dumpfile_mtime] "Fri
May 4 13:12:37
2018"
[dumpfile_size]
90116003
[savefile] "/home/m
assive
/openairinterface5g/targets/RT/USER/rcc_if4.gtkw"
[timestart]
1582463
0000
[size]
1405 882
[pos] -
5 -272
*-
19.793451 7382528436
-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
[signals_width] 2
62
[dumpfile] "/
home/mimo
/openair_dump_eNB.vcd"
[dumpfile_mtime] "Fri
Aug 17 06:30:36
2018"
[dumpfile_size]
56125171
[savefile] "/home/m
imo/oai
/openairinterface5g/targets/RT/USER/rcc_if4.gtkw"
[timestart]
3329854
0000
[size]
980 744
[pos] -
1 -1
*-
21.793451 33300747408
-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]
450
[signals_width] 2
54
[sst_expanded] 1
[sst_vpaned_height] 383
@24
variables.trx_ts[63:0]
variables.trx_tst[63:0]
@28
functions.recv_if4(RU0)
functions.recv_if4(RU1)
functions.send_if4(RU0)
functions.send_if4(RU1)
functions.eNB_thread_rxtx0
@24
variables.subframe_number_RX0_RU[63:0]
@25
variables.frame_number_RX0_RU[63:0]
@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.phy_procedures_eNb_tx0
functions.phy_procedures_eNb_rx_uespec0
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_procedures_eNb_tx1
functions.phy_procedures_eNb_rx_uespec1
functions.phy_enb_sfgen
functions.phy_enb_prach_rx
@24
variables.dci_info[63:0]
variables.ue0_BO[63:0]
@420
variables.ue0_BSR[63:0]
variables.ue0_timing_advance[63:0]
@28
functions.macxface_initiate_ra_proc
functions.macxface_terminate_ra_proc
functions.phy_enb_ulsch_msg3
functions.macxface_SR_indication
@420
variables.ue0_SR_ENERGY[63:0]
variables.ue0_SR_THRES[63:0]
@28
functions.phy_enb_ulsch_decoding0
@24
variables.ue0_res0[63:0]
@420
variables.ue0_rssi0[63:0]
variables.ue0_MCS0[63:0]
variables.ue0_RB0[63:0]
@24
variables.ue0_ROUND0[63:0]
variables.ue0_SFN0[63:0]
@28
functions.phy_enb_ulsch_decoding1
@24
variables.ue0_res1[63:0]
@420
variables.ue0_rssi1[63:0]
variables.ue0_MCS1[63:0]
variables.ue0_RB1[63:0]
@24
variables.ue0_ROUND1[63:0]
variables.ue0_SFN1[63:0]
@29
logic.TRX_READ_IF
@28
functions.phy_enb_ulsch_decoding2
logic.RECV_IF4
@24
variables.ue0_res2[63:0]
@420
variables.ue0_rssi2[63:0]
variables.ue0_MCS2[63:0]
variables.ue0_RB2[63:0]
@24
variables.ue0_ROUND2[63:0]
variables.ue0_SFN2[63:0]
@28
functions.phy_enb_ulsch_decoding3
@24
variables.ue0_res3[63:0]
@420
variables.ue0_rssi3[63:0]
variables.ue0_MCS3[63:0]
variables.ue0_RB3[63:0]
@24
variables.ue0_ROUND3[63:0]
variables.ue0_SFN3[63:0]
logic.RECV_IF4_SYMBOL[63:0]
@28
functions.phy_enb_ulsch_decoding4
@420
variables.ue0_rssi4[63:0]
@24
variables.ue0_res4[63:0]
@420
variables.ue0_MCS4[63:0]
variables.ue0_RB4[63:0]
@24
variables.ue0_ROUND4[63:0]
variables.ue0_SFN4[63:0]
@28
functions.phy_enb_ulsch_decoding5
@24
variables.ue0_res5[63:0]
@420
variables.ue0_rssi5[63:0]
variables.ue0_MCS5[63:0]
variables.ue0_RB5[63:0]
logic.SEND_IF4
@24
variables.ue0_ROUND5[63:0]
variables.ue0_SFN5[63:0]
@28
functions.phy_enb_ulsch_decoding6
@24
variables.ue0_res6[63:0]
@420
variables.ue0_rssi6[63:0]
variables.ue0_MCS6[63:0]
variables.ue0_RB6[63:0]
@24
variables.ue0_ROUND6[63:0]
variables.ue0_SFN6[63:0]
@28
functions.phy_enb_ulsch_decoding7
@24
variables.ue0_res7[63:0]
@420
variables.ue0_rssi7[63:0]
variables.ue0_MCS7[63:0]
variables.ue0_RB7[63:0]
@24
variables.ue0_ROUND7[63:0]
variables.ue0_SFN7[63:0]
@28
functions.phy_enb_prach_rx
functions.phy_eNB_dlsch_encoding
functions.phy_eNB_dlsch_modulation
functions.phy_eNB_dlsch_scrambling
functions.phy_enb_pdcch_tx
functions.phy_enb_rs_tx
functions.rrc_mac_config_req
functions.rlc_data_req
functions.udp_enb_task
logic.SUBFRAME_NUMBER_RX0_RU[63:0]
logic.SUBFRAME_NUMBER_RX1_RU[63:0]
logic.SUBFRAME_NUMBER_TX0_RU[63:0]
logic.SUBFRAME_NUMBER_TX1_RU[63:0]
logic.FRAME_NUMBER_RX0_RU[63:0]
logic.FRAME_NUMBER_RX1_RU[63:0]
logic.FRAME_NUMBER_TX0_RU[63:0]
logic.FRAME_NUMBER_TX1_RU[63:0]
[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