Agora  1.2.0
Agora project
dodecode.h
Go to the documentation of this file.
1 
6 #ifndef DODECODE_H_
7 #define DODECODE_H_
8 
9 #include <cstdint>
10 #include <memory>
11 
12 #include "config.h"
13 #include "doer.h"
14 #include "memory_manage.h"
15 #include "message.h"
16 #include "phy_stats.h"
17 #include "scrambler.h"
18 #include "stats.h"
19 
20 class DoDecode : public Doer {
21  public:
22  DoDecode(Config* in_config, int in_tid,
25  PhyStats* in_phy_stats, Stats* in_stats_manager);
26  ~DoDecode() override;
27 
28  EventData Launch(size_t tag) override;
29 
30  private:
31  int16_t* resp_var_nodes_;
36  std::unique_ptr<AgoraScrambler::Scrambler> scrambler_;
37 };
38 
39 #endif // DODECODE_H_
PhyStats
Definition: phy_stats.h:15
DoDecode::duration_stat_
DurationStat * duration_stat_
Definition: dodecode.h:35
DoDecode::decoded_buffers_
PtrCube< kFrameWnd, kMaxSymbols, kMaxUEs, int8_t > & decoded_buffers_
Definition: dodecode.h:33
PhyStats::IncrementDecodedBlocks
void IncrementDecodedBlocks(size_t ue_id, size_t offset, size_t frame_slot)
Definition: phy_stats.cc:570
LDPCconfig::MaxDecoderIter
int16_t MaxDecoderIter() const
Definition: ldpc_config.h:48
fmt::v8::printf
auto printf(const S &fmt, const T &... args) -> int
Definition: printf.h:631
EventType::kDecode
@ kDecode
Config::UlBits
Table< int8_t > & UlBits()
Definition: config.h:385
LDPCconfig::EarlyTermination
bool EarlyTermination() const
Definition: ldpc_config.h:49
PhyStats::UpdateBlockErrors
void UpdateBlockErrors(size_t ue_id, size_t offset, size_t frame_slot, size_t block_error_count)
Definition: phy_stats.cc:563
Config::GetTotalDataSymbolIdxUl
size_t GetTotalDataSymbolIdxUl(size_t frame_id, size_t symbol_idx_ul) const
Definition: config.h:421
Stats
Definition: stats.h:63
gen_tag_t::symbol_id_
uint16_t symbol_id_
Definition: message.h:33
DurationStat::task_duration_
std::array< size_t, kMaxStatBreakdown > task_duration_
Definition: stats.h:23
concurrent_queue_wrapper.h
Config::GetInfoBits
int8_t * GetInfoBits(Table< int8_t > &info_bits, Direction dir, size_t symbol_id, size_t ue_id, size_t cb_id) const
Get info bits for this symbol, user and code block ID.
Definition: config.h:514
kFrameWnd
static constexpr size_t kFrameWnd
Definition: symbols.h:18
Agora_memory::PaddedAlignedAlloc
void * PaddedAlignedAlloc(Alignment_t alignment, size_t size)
Definition: memory_manage.cc:15
LDPCconfig::NumRows
size_t NumRows() const
Definition: ldpc_config.h:52
FrameStats::GetULSymbolIdx
size_t GetULSymbolIdx(size_t symbol_number) const
Definition: framestats.cc:156
memory_manage.h
Direction::kUplink
@ kUplink
Config::Frame
const FrameStats & Frame() const
Definition: config.h:340
GetTime::CyclesToUs
static double CyclesToUs(size_t cycles, double freq_ghz)
Definition: gettime.h:97
PhyStats::UpdateBitErrors
void UpdateBitErrors(size_t ue_id, size_t offset, size_t frame_slot, uint8_t tx_byte, uint8_t rx_byte)
Definition: phy_stats.cc:542
Doer
Definition: doer.h:17
Doer::tid_
int tid_
Definition: doer.h:65
DoDecode::scrambler_
std::unique_ptr< AgoraScrambler::Scrambler > scrambler_
Definition: dodecode.h:36
gen_tag_t
Definition: message.h:22
kDebugPrintInTask
static constexpr bool kDebugPrintInTask
Definition: symbols.h:201
stats.h
Declaration file for the Stats class. Includes definations for DurationStat and FrameSummery types.
PhyStats::UpdateDecodedBits
void UpdateDecodedBits(size_t ue_id, size_t offset, size_t frame_slot, size_t new_bits_num)
Definition: phy_stats.cc:557
EventData
Definition: message.h:142
DurationStat::task_count_
size_t task_count_
Definition: stats.h:24
kPrintPhyStats
static constexpr bool kPrintPhyStats
Definition: symbols.h:191
kEnableMac
static constexpr bool kEnableMac
Definition: symbols.h:150
message.h
Self defined functions for message storage and passing.
FrameStats::ClientUlPilotSymbols
size_t ClientUlPilotSymbols() const
Definition: framestats.h:73
scrambler.h
Scramble Class and helper functions.
i
for i
Definition: generate_data.m:107
kVarNodesSize
static constexpr size_t kVarNodesSize
Definition: dodecode.cc:14
Agora_memory::Alignment_t::kAlign64
@ kAlign64
dodecode.h
Declaration file for the DoDecode class.
Config::NumBytesPerCb
size_t NumBytesPerCb(Direction dir) const
Definition: config.h:251
spdlog::details::make_unique
std::unique_ptr< T > make_unique(Args &&... args)
Definition: common.h:334
kPrintLLRData
static constexpr bool kPrintLLRData
Definition: dodecode.cc:11
LDPCconfig
Definition: ldpc_config.h:14
DoDecode::resp_var_nodes_
int16_t * resp_var_nodes_
Definition: dodecode.h:31
DurationStat
Definition: stats.h:22
Config::LdpcConfig
const LDPCconfig & LdpcConfig(Direction dir) const
Definition: config.h:280
Config::FreqGhz
double FreqGhz() const
Definition: config.h:56
Doer::cfg_
Config * cfg_
Definition: doer.h:64
DoerType::kDecode
@ kDecode
GetTime::WorkerRdtsc
static size_t WorkerRdtsc()
Definition: gettime.h:34
LDPCconfig::ExpansionFactor
uint16_t ExpansionFactor() const
Definition: ldpc_config.h:47
Config
Definition: config.h:26
DoDecode::phy_stats_
PhyStats * phy_stats_
Definition: dodecode.h:34
doer.h
Declaration file for the Doer class. The is the base class for all agora doers.
DoDecode::Launch
EventData Launch(size_t tag) override
Definition: dodecode.cc:33
std
Definition: json.hpp:5213
DoDecode::demod_buffers_
PtrCube< kFrameWnd, kMaxSymbols, kMaxUEs, int8_t > & demod_buffers_
Definition: dodecode.h:32
DoDecode
Definition: dodecode.h:20
DoDecode::~DoDecode
~DoDecode() override
Definition: dodecode.cc:31
Config::ScrambleEnabled
bool ScrambleEnabled() const
Definition: config.h:296
LDPCconfig::NumCbLen
uint32_t NumCbLen() const
Definition: ldpc_config.h:50
AgoraScrambler
Definition: scrambler.cc:12
LDPCconfig::BaseGraph
uint16_t BaseGraph() const
Definition: ldpc_config.h:46
config.h
Declaration file for the configuration class which importants json configuration values into class va...
PtrCube< kFrameWnd, kMaxSymbols, kMaxUEs, int8_t >
phy_stats.h
Declaration file for the PhyStats class.
gen_tag_t::frame_id_
uint32_t frame_id_
Definition: message.h:32
Config::ModOrderBits
size_t ModOrderBits(Direction dir) const
Definition: config.h:247
LDPCconfig::NumBlocksInSymbol
void NumBlocksInSymbol(size_t num_blocks)
Definition: ldpc_config.h:41
LDPCconfig::NumCbCodewLen
uint32_t NumCbCodewLen() const
Definition: ldpc_config.h:51
gen_tag_t::cb_id_
uint16_t cb_id_
Definition: message.h:36
kPrintDecodedData
static constexpr bool kPrintDecodedData
Definition: dodecode.cc:12
DoDecode::DoDecode
DoDecode(Config *in_config, int in_tid, PtrCube< kFrameWnd, kMaxSymbols, kMaxUEs, int8_t > &demod_buffers, PtrCube< kFrameWnd, kMaxSymbols, kMaxUEs, int8_t > &decoded_buffers, PhyStats *in_phy_stats, Stats *in_stats_manager)
Definition: dodecode.cc:16
Stats::GetDurationStat
DurationStat * GetDurationStat(DoerType doer_type, size_t thread_id)
Definition: stats.h:162