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
canghaiwuhen
OpenXG-RAN
Commits
a432a7c1
Commit
a432a7c1
authored
Dec 06, 2016
by
Xiwen JIANG
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
use do_OFDM_mod_symbol in do_OFDM_mod_thread
parent
1a785e30
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
13 additions
and
58 deletions
+13
-58
openair1/PHY/MODULATION/ofdm_mod.c
openair1/PHY/MODULATION/ofdm_mod.c
+4
-52
openair1/SIMULATION/LTE_PHY/dlsim.c
openair1/SIMULATION/LTE_PHY/dlsim.c
+9
-6
No files found.
openair1/PHY/MODULATION/ofdm_mod.c
View file @
a432a7c1
...
@@ -298,12 +298,10 @@ void do_OFDM_mod_symbol(LTE_eNB_COMMON *eNB_common_vars, int eNB_id, uint16_t ne
...
@@ -298,12 +298,10 @@ void do_OFDM_mod_symbol(LTE_eNB_COMMON *eNB_common_vars, int eNB_id, uint16_t ne
aa
=
antenna
;
aa
=
antenna
;
slot_offset
=
(
next_slot
)
*
(
frame_parms
->
samples_per_tti
>>
1
);
slot_offset
=
(
next_slot
)
*
(
frame_parms
->
samples_per_tti
>>
1
);
//printf("Thread %d starting ... aa %d (%llu)\n",omp_get_thread_num(),aa,rdtsc());
for
(
l
=
0
;
l
<
frame_parms
->
symbols_per_tti
>>
1
;
l
++
)
{
for
(
l
=
0
;
l
<
frame_parms
->
symbols_per_tti
>>
1
;
l
++
)
{
//printf("do_OFDM_mod_l, slot=%d, l=%d, NUMBER_OF_OFDM_CARRIERS=%d,OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES=%d\n",next_slot, l,NUMBER_OF_OFDM_CARRIERS,OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES);
//printf("do_OFDM_mod_
symbo
l, slot=%d, l=%d, NUMBER_OF_OFDM_CARRIERS=%d,OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES=%d\n",next_slot, l,NUMBER_OF_OFDM_CARRIERS,OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_BEAM_PRECODING
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_BEAM_PRECODING
,
1
);
beam_precoding
(
txdataF
,
txdataF_BF
,
frame_parms
,
eNB_common_vars
->
beam_weights
[
eNB_id
],
next_slot
,
l
,
aa
);
beam_precoding
(
txdataF
,
txdataF_BF
,
frame_parms
,
eNB_common_vars
->
beam_weights
[
eNB_id
],
next_slot
,
l
,
aa
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_BEAM_PRECODING
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_BEAM_PRECODING
,
0
);
...
@@ -333,12 +331,10 @@ void do_OFDM_mod_symbol(LTE_eNB_COMMON *eNB_common_vars, int eNB_id, uint16_t ne
...
@@ -333,12 +331,10 @@ void do_OFDM_mod_symbol(LTE_eNB_COMMON *eNB_common_vars, int eNB_id, uint16_t ne
frame_parms
->
nb_prefix_samples
,
// number of prefix samples
frame_parms
->
nb_prefix_samples
,
// number of prefix samples
CYCLIC_PREFIX
);
CYCLIC_PREFIX
);
/* printf("txdata[%d][%d]=%d\n",aa,slot_offset+OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES0+(l-1)*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES,txdata[aa][slot_offset+OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES0+(l-1)*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES]);
// printf("txdata[%d][%d]=%d\n",aa,slot_offset+OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES0+(l-1)*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES,txdata[aa][slot_offset+OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES0+(l-1)*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES]);
* */
}
}
}
}
}
}
}
}
// OFDM modulation thread
// OFDM modulation thread
...
@@ -346,57 +342,13 @@ void *do_OFDM_mod_thread(PHY_VARS_eNB *eNB)
...
@@ -346,57 +342,13 @@ void *do_OFDM_mod_thread(PHY_VARS_eNB *eNB)
{
{
thread_pool
*
pool
=
eNB
->
pool
;
thread_pool
*
pool
=
eNB
->
pool
;
int
eNB_id
=
0
;
int
eNB_id
=
0
;
LTE_DL_FRAME_PARMS
*
frame_parms
=
&
eNB
->
frame_parms
;
int
aa
;
int32_t
**
txdataF
=
eNB
->
common_vars
.
txdataF
[
eNB_id
];
int32_t
**
txdataF_BF
=
eNB
->
common_vars
.
txdataF_BF
[
eNB_id
];
int32_t
**
txdata
=
eNB
->
common_vars
.
txdata
[
eNB_id
];
int
aa
,
l
,
slot_offset
;
//printf("Thread %d starting ... aa %d (%llu)\n",omp_get_thread_num(),aa,rdtsc());
while
(
1
)
{
while
(
1
)
{
aa
=
thread_pool_wait
(
pool
);
aa
=
thread_pool_wait
(
pool
);
slot_offset
=
(
pool
->
next_slot
)
*
(
frame_parms
->
samples_per_tti
>>
1
);
printf
(
"OFDM mod thread %ld starts processing antenna %d slot %d
\n
"
,
syscall
(
SYS_gettid
),
aa
,
pool
->
next_slot
);
printf
(
"OFDM mod thread %ld starts processing antenna %d slot %d
\n
"
,
syscall
(
SYS_gettid
),
aa
,
pool
->
next_slot
);
for
(
l
=
0
;
l
<
frame_parms
->
symbols_per_tti
>>
1
;
l
++
)
{
do_OFDM_mod_symbol
(
&
eNB
->
common_vars
,
eNB_id
,
eNB
->
pool
->
next_slot
,
&
eNB
->
frame_parms
,
aa
);
//VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_BEAM_PRECODING,1);
beam_precoding
(
txdataF
,
txdataF_BF
,
frame_parms
,
eNB
->
common_vars
.
beam_weights
[
eNB_id
],
pool
->
next_slot
,
l
,
aa
);
//VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_BEAM_PRECODING,0);
//PMCH case not implemented...
if
(
frame_parms
->
Ncp
==
1
)
PHY_ofdm_mod
(
txdataF_BF
[
aa
],
// input
&
txdata
[
aa
][
slot_offset
+
l
*
OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES
],
// output
frame_parms
->
ofdm_symbol_size
,
1
,
// number of symbols
frame_parms
->
nb_prefix_samples
,
// number of prefix samples
CYCLIC_PREFIX
);
else
{
if
(
l
==
0
)
{
PHY_ofdm_mod
(
txdataF_BF
[
aa
],
// input
&
txdata
[
aa
][
slot_offset
],
// output
frame_parms
->
ofdm_symbol_size
,
1
,
// number of symbols
frame_parms
->
nb_prefix_samples0
,
// number of prefix samples
CYCLIC_PREFIX
);
}
else
{
PHY_ofdm_mod
(
txdataF_BF
[
aa
],
// input
&
txdata
[
aa
][
slot_offset
+
OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES0
+
(
l
-
1
)
*
OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES
],
// output
frame_parms
->
ofdm_symbol_size
,
1
,
// number of symbols
frame_parms
->
nb_prefix_samples
,
// number of prefix samples
CYCLIC_PREFIX
);
}
}
}
printf
(
"OFDM mod thread %ld finished processing antenna %d slot %d
\n
"
,
syscall
(
SYS_gettid
),
aa
,
pool
->
next_slot
);
printf
(
"OFDM mod thread %ld finished processing antenna %d slot %d
\n
"
,
syscall
(
SYS_gettid
),
aa
,
pool
->
next_slot
);
...
...
openair1/SIMULATION/LTE_PHY/dlsim.c
View file @
a432a7c1
...
@@ -2431,19 +2431,15 @@ int main(int argc, char **argv)
...
@@ -2431,19 +2431,15 @@ int main(int argc, char **argv)
}
}
}
else
{
}
else
{
eNB
->
pool
->
next_slot
=
2
*
subframe
;
eNB
->
pool
->
next_slot
=
2
*
subframe
;
//printf("dlsim:slot=%d\n", eNB->pool->next_slot);
while
(
eNB
->
pool
->
next_slot
<
subframe
*
2
+
2
)
{
while
(
eNB
->
pool
->
next_slot
<
subframe
*
2
+
2
)
{
/* start all threads */
/* start all threads */
thread_pool_start
(
eNB
->
pool
);
thread_pool_start
(
eNB
->
pool
);
///* wait all threads finishes */
///* wait all threads finishes */
thread_pool_join
(
eNB
->
pool
);
thread_pool_join
(
eNB
->
pool
);
//usleep(1000*1000);
/* set next_slot */
/* set next_slot */
eNB
->
pool
->
next_slot
++
;
eNB
->
pool
->
next_slot
++
;
//pool->next_slot %= 20;
}
}
}
}
...
@@ -2456,10 +2452,17 @@ int main(int argc, char **argv)
...
@@ -2456,10 +2452,17 @@ int main(int argc, char **argv)
phy_procedures_eNB_TX
(
eNB
,
proc_eNB
,
no_relay
,
NULL
,
0
);
phy_procedures_eNB_TX
(
eNB
,
proc_eNB
,
no_relay
,
NULL
,
0
);
do_OFDM_mod_l
(
eNB
->
common_vars
.
txdataF
[
eNB_id
],
/*
do_OFDM_mod_l(eNB->common_vars.txdataF[eNB_id],
eNB->common_vars.txdata[eNB_id],
eNB->common_vars.txdata[eNB_id],
(subframe*2)+2,
(subframe*2)+2,
&
eNB
->
frame_parms
);
&eNB->frame_parms);*/
for
(
aa
=
0
;
aa
<
eNB
->
frame_parms
.
nb_antennas_tx
;
aa
++
)
do_OFDM_mod_symbol
(
&
eNB
->
common_vars
,
eNB_id
,
(
subframe
*
2
)
+
2
,
&
eNB
->
frame_parms
,
aa
);
proc_eNB
->
frame_tx
++
;
proc_eNB
->
frame_tx
++
;
...
...
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