Commit 6a62f432 authored by lfq's avatar lfq

cap ssb data

parent d610c9a0
...@@ -105,8 +105,8 @@ void nr_generate_dci(PHY_VARS_gNB *gNB, ...@@ -105,8 +105,8 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
cset_start_symb = pdcch_pdu_rel15->StartSymbolIndex; cset_start_symb = pdcch_pdu_rel15->StartSymbolIndex;
cset_nsymb = pdcch_pdu_rel15->DurationSymbols; cset_nsymb = pdcch_pdu_rel15->DurationSymbols;
dci_idx = 0; dci_idx = 0;
LOG_D(PHY, "pdcch: Coreset rb_offset %d, nb_rb %d BWP Start %d\n",rb_offset,n_rb,pdcch_pdu_rel15->BWPStart); LOG_I(PHY, "pdcch: Coreset rb_offset %d, nb_rb %d BWP Start %d\n",rb_offset,n_rb,pdcch_pdu_rel15->BWPStart);
LOG_D(PHY, "pdcch: Coreset starting subcarrier %d on symbol %d (%d symbols)\n", cset_start_sc, cset_start_symb, cset_nsymb); LOG_I(PHY, "pdcch: Coreset starting subcarrier %d on symbol %d (%d symbols)\n", cset_start_sc, cset_start_symb, cset_nsymb);
// DMRS length is per OFDM symbol // DMRS length is per OFDM symbol
uint32_t dmrs_length = (n_rb+pdcch_pdu_rel15->BWPStart)*6; //2(QPSK)*3(per RB)*6(REG per CCE) uint32_t dmrs_length = (n_rb+pdcch_pdu_rel15->BWPStart)*6; //2(QPSK)*3(per RB)*6(REG per CCE)
uint32_t encoded_length = dci_pdu->AggregationLevel*108; //2(QPSK)*9(per RB)*6(REG per CCE) uint32_t encoded_length = dci_pdu->AggregationLevel*108; //2(QPSK)*9(per RB)*6(REG per CCE)
......
...@@ -85,8 +85,8 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx, ...@@ -85,8 +85,8 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
uint8_t dmrs_Type = rel15->dmrsConfigType; uint8_t dmrs_Type = rel15->dmrsConfigType;
int nb_re_dmrs; int nb_re_dmrs;
uint16_t n_dmrs; uint16_t n_dmrs;
LOG_D(PHY,"pdsch: BWPStart %d, BWPSize %d, rbStart %d, rbsize %d\n", LOG_I(PHY,"pdsch: frame %d %d, BWPStart %d, BWPSize %d, rbStart %d, rbsize %d, symbol %d %d, nti %d\n", frame, slot,
rel15->BWPStart,rel15->BWPSize,rel15->rbStart,rel15->rbSize); rel15->BWPStart,rel15->BWPSize,rel15->rbStart,rel15->rbSize, rel15->StartSymbolIndex, rel15->NrOfSymbols, rel15->rnti);
if (rel15->dmrsConfigType==NFAPI_NR_DMRS_TYPE1) { if (rel15->dmrsConfigType==NFAPI_NR_DMRS_TYPE1) {
nb_re_dmrs = 6*rel15->numDmrsCdmGrpsNoData; nb_re_dmrs = 6*rel15->numDmrsCdmGrpsNoData;
} }
......
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
#include "assertions.h" #include "assertions.h"
#include <time.h> #include <time.h>
#include <stdio.h>
// RU OFDM Modulator gNodeB // RU OFDM Modulator gNodeB
...@@ -326,7 +326,11 @@ void nr_feptx(void *arg) { ...@@ -326,7 +326,11 @@ void nr_feptx(void *arg) {
} }
// RU FEP TX using thread-pool // RU FEP TX using thread-pool
int g_tempBuf[40*61440];
int g_freqBuf[40*61440];
int g_cnt = 0;
void nr_feptx_tp(RU_t *ru, int frame_tx, int slot) { void nr_feptx_tp(RU_t *ru, int frame_tx, int slot) {
static int cnt = -1;
nfapi_nr_config_request_scf_t *cfg = &ru->gNB_list[0]->gNB_config; nfapi_nr_config_request_scf_t *cfg = &ru->gNB_list[0]->gNB_config;
int nbfeptx=0; int nbfeptx=0;
...@@ -362,6 +366,95 @@ void nr_feptx_tp(RU_t *ru, int frame_tx, int slot) { ...@@ -362,6 +366,95 @@ void nr_feptx_tp(RU_t *ru, int frame_tx, int slot) {
delNotifiedFIFO_elt(req); delNotifiedFIFO_elt(req);
nbfeptx--; nbfeptx--;
} }
#if 0
if (((frame_tx&1)==0) && (slot==0))
{
cnt++;
}
if ((cnt == 1) && ((frame_tx&1)==0) && (slot==0))
{
memset(g_tempBuf, 0, 61440*40*4);
memset(g_freqBuf, 0, 61440*40*4);
LOG_I(PHY,"00000\n");
}
if (cnt == 10)
{
NR_DL_FRAME_PARMS *fp = ru->nr_frame_parms;
int slot_offset = fp->get_samples_slot_timestamp(slot,fp,0);
int frame_offset = fp->get_samples_slot_timestamp(slot,fp,0) + 61440*20*(frame_tx%2);
memcpy(&g_tempBuf[frame_offset], (void *)&ru->common.txdata[0][slot_offset], 61440*4);
//memcpy(&g_freqBuf[frame_offset], (void *)&ru->common.txdataF_BF[0][4096*14*slot], 4096*14*4);
LOG_I(PHY, "gcnt %d,cnt %d, frame %d, slot %d, slot offset %d, frame offset %d\n", g_cnt, cnt, frame_tx, slot, slot_offset, frame_offset);
}
if ((cnt == 11) && ((frame_tx&1)==0) && (slot==0))
{
FILE *output_fd = NULL;
output_fd = fopen("2frame_data_time_v2.am","w");
if (output_fd==NULL) {
printf("Error opening \n");
}
LOG_I(PHY, "output data, g_cnt %d\n", g_cnt);
if (output_fd) {
fwrite(g_tempBuf,sizeof(int32_t),61440*40,output_fd);
fclose(output_fd);
}
#if 0
output_fd = fopen("2frame_data_freq_v2.am","w");
if (output_fd==NULL) {
printf("Error opening \n");
}
LOG_I(PHY, "output data, g_cnt %d\n", g_cnt);
if (output_fd) {
fwrite(g_freqBuf,sizeof(int32_t),61440*40,output_fd);
fclose(output_fd);
}
#endif
}
#endif
#if 1
if (((frame_tx&1)==0) && (slot==0))
{
if (cnt == -1)
{
memset(g_tempBuf, 0, 61440*40*4);
}
else if (cnt <40)
{
memcpy(&g_tempBuf[61440*cnt], (void *)&ru->common.txdata[0][0], 61440*4);
}
else if (cnt == 40)
{
FILE *output_fd = NULL;
output_fd = fopen("40slot_ssb_data_time.am","w");
if (output_fd==NULL) {
printf("Error opening \n");
}
LOG_I(PHY, "output data, g_cnt %d\n", g_cnt);
if (output_fd) {
fwrite(g_tempBuf,sizeof(int32_t),61440*40,output_fd);
fclose(output_fd);
}
}
cnt++;
}
#endif
stop_meas(&ru->ofdm_total_stats); stop_meas(&ru->ofdm_total_stats);
if (ru->idx == 0) VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM, 0 ); if (ru->idx == 0) VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM, 0 );
} }
...@@ -395,7 +488,7 @@ void nr_fep(void* arg) { ...@@ -395,7 +488,7 @@ void nr_fep(void* arg) {
// RU RX FEP using thread-pool // RU RX FEP using thread-pool
void nr_fep_tp(RU_t *ru, int slot) { void nr_fep_tp(RU_t *ru, int slot) {
int nbfeprx=0; int nbfeprx=0;
if (ru->idx == 0) VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX, 1 ); if (ru->idx == 0) VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX, 1 );
start_meas(&ru->ofdm_demod_stats); start_meas(&ru->ofdm_demod_stats);
...@@ -426,6 +519,7 @@ void nr_fep_tp(RU_t *ru, int slot) { ...@@ -426,6 +519,7 @@ void nr_fep_tp(RU_t *ru, int slot) {
delNotifiedFIFO_elt(req); delNotifiedFIFO_elt(req);
nbfeprx--; nbfeprx--;
} }
stop_meas(&ru->ofdm_demod_stats); stop_meas(&ru->ofdm_demod_stats);
if (ru->idx == 0) VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX, 0 ); if (ru->idx == 0) VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX, 0 );
} }
......
...@@ -51,6 +51,7 @@ uint8_t SSB_Table[38]={0,2,4,6,8,10,12,14,254,254,16,18,20,22,24,26,28,30,254,25 ...@@ -51,6 +51,7 @@ uint8_t SSB_Table[38]={0,2,4,6,8,10,12,14,254,254,16,18,20,22,24,26,28,30,254,25
extern uint8_t nfapi_mode; extern uint8_t nfapi_mode;
extern int g_cnt;
void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame,int slot,nfapi_nr_dl_tti_ssb_pdu ssb_pdu) { void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame,int slot,nfapi_nr_dl_tti_ssb_pdu ssb_pdu) {
NR_DL_FRAME_PARMS *fp=&gNB->frame_parms; NR_DL_FRAME_PARMS *fp=&gNB->frame_parms;
...@@ -80,7 +81,7 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame,int slot,nfapi_nr_ ...@@ -80,7 +81,7 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame,int slot,nfapi_nr_
fp->ssb_start_subcarrier = (12 * prb_offset + sc_offset); fp->ssb_start_subcarrier = (12 * prb_offset + sc_offset);
LOG_D(PHY, "SSB first subcarrier %d (%d,%d)\n", fp->ssb_start_subcarrier, prb_offset, sc_offset); LOG_D(PHY, "SSB first subcarrier %d (%d,%d)\n", fp->ssb_start_subcarrier, prb_offset, sc_offset);
LOG_D(PHY,"SS TX: frame %d, slot %d, start_symbol %d\n",frame,slot, ssb_start_symbol); LOG_I(PHY,"SS TX: frame %d, slot %d, start_symbol %d, fp->ssb_start_subcarrier %d, g_cnt %d\n",frame,slot, ssb_start_symbol, fp->ssb_start_subcarrier, g_cnt);
nr_generate_pss(&txdataF[0][txdataF_offset], AMP, ssb_start_symbol, cfg, fp); nr_generate_pss(&txdataF[0][txdataF_offset], AMP, ssb_start_symbol, cfg, fp);
nr_generate_sss(&txdataF[0][txdataF_offset], AMP, ssb_start_symbol, cfg, fp); nr_generate_sss(&txdataF[0][txdataF_offset], AMP, ssb_start_symbol, cfg, fp);
...@@ -110,6 +111,7 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame,int slot,nfapi_nr_ ...@@ -110,6 +111,7 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame,int slot,nfapi_nr_
AMP, AMP,
ssb_start_symbol, ssb_start_symbol,
n_hf, frame, cfg, fp); n_hf, frame, cfg, fp);
g_cnt++;
} }
......
...@@ -259,7 +259,7 @@ RUs = ( ...@@ -259,7 +259,7 @@ RUs = (
local_rf = "yes" local_rf = "yes"
nb_tx = 2; nb_tx = 2;
nb_rx = 2; nb_rx = 2;
att_tx = 85; att_tx = 75;
att_rx = 0; att_rx = 0;
bands = [78]; bands = [78];
max_pdschReferenceSignalPower = -27; max_pdschReferenceSignalPower = -27;
...@@ -268,7 +268,7 @@ RUs = ( ...@@ -268,7 +268,7 @@ RUs = (
##beamforming 1x2 matrix: 1 layer x 2 antennas ##beamforming 1x2 matrix: 1 layer x 2 antennas
#bf_weights = [0x00007fff, 0x0000]; #bf_weights = [0x00007fff, 0x0000];
bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000]; bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000];
sdr_addrs = "dev=pciex:0,auxdac1=340"; sdr_addrs = "dev=pciex:0,auxdac1=1660";
clock_src = "internal"; clock_src = "internal";
} }
......
...@@ -27,9 +27,10 @@ gNBs = ...@@ -27,9 +27,10 @@ gNBs =
////////// Physical parameters: ////////// Physical parameters:
sib1_tda = 15; sib1_tda = 15;
min_rxtxtime = 6; min_rxtxtime = 6;
pdsch_AntennaPorts_XP = 1; pdsch_AntennaPorts_XP = 2;
pusch_AntennaPorts = 2; pusch_AntennaPorts = 2;
do_CSIRS = 0; do_CSIRS = 1;
do_SRS = 1;
ul_prbblacklist = "135,136,137,138" ul_prbblacklist = "135,136,137,138"
pdcch_ConfigSIB1 = ( pdcch_ConfigSIB1 = (
...@@ -61,7 +62,7 @@ gNBs = ...@@ -61,7 +62,7 @@ gNBs =
#initialDownlinkBWP #initialDownlinkBWP
#genericParameters #genericParameters
# this is RBstart=0,L=162 (275*(275-L+1))+(274-RBstart)) # this is RBstart=0,L=162 (275*(275-L+1))+(274-RBstart))
initialDLBWPlocationAndBandwidth = 31624; initialDLBWPlocationAndBandwidth = 1099;
# #
# subcarrierSpacing # subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
...@@ -82,7 +83,7 @@ gNBs = ...@@ -82,7 +83,7 @@ gNBs =
pMax = 20; pMax = 20;
#initialUplinkBWP #initialUplinkBWP
#genericParameters #genericParameters
initialULBWPlocationAndBandwidth = 31624; initialULBWPlocationAndBandwidth = 1099;
# subcarrierSpacing # subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialULBWPsubcarrierSpacing = 1; initialULBWPsubcarrierSpacing = 1;
...@@ -262,12 +263,12 @@ RUs = ( ...@@ -262,12 +263,12 @@ RUs = (
att_rx = 0; att_rx = 0;
bands = [78]; bands = [78];
max_pdschReferenceSignalPower = -27; max_pdschReferenceSignalPower = -27;
max_rxgain = 25; max_rxgain = 45;
eNB_instances = [0]; eNB_instances = [0];
##beamforming 1x2 matrix: 1 layer x 2 antennas ##beamforming 1x2 matrix: 1 layer x 2 antennas
#bf_weights = [0x00007fff, 0x0000]; #bf_weights = [0x00007fff, 0x0000];
bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000]; bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000];
sdr_addrs = "dev=pciex:0,auxdac1=340"; sdr_addrs = "dev=pciex:0,auxdac1=1660";
clock_src = "internal"; clock_src = "internal";
} }
...@@ -276,7 +277,7 @@ RUs = ( ...@@ -276,7 +277,7 @@ RUs = (
THREAD_STRUCT = ( THREAD_STRUCT = (
{ {
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT" #three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
parallel_config = "PARALLEL_SINGLE_THREAD"; parallel_config = "PARALLEL_RU_L1_TRX_SPLIT";
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE" #two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
worker_config = "WORKER_ENABLE"; worker_config = "WORKER_ENABLE";
} }
......
...@@ -224,7 +224,7 @@ RUs = ( ...@@ -224,7 +224,7 @@ RUs = (
eNB_instances = [0]; eNB_instances = [0];
#beamforming 1x4 matrix: #beamforming 1x4 matrix:
bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000]; bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000];
sdr_addrs = "dev=pciex:0,auxdac1=340"; sdr_addrs = "dev=pciex:0,auxdac1=1660";
clock_src = "internal"; clock_src = "internal";
} }
); );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment