nvdla / hw

RTL, Cmodel, and testbench for NVDLA
Other
1.72k stars 567 forks source link

CBUF size discrepancy #315

Open Erdbeerenjanzi opened 4 years ago

Erdbeerenjanzi commented 4 years ago

While looking in the compilers source code I found the following configuration for the CBUF:

From: sw/umd/core/src/compiler/TargetConfig.cpp

  if ( isFullConfig() )
  {
      [...]
      m_targetConfigParams.m_numConvBufBankAllotted = 16;
      m_targetConfigParams.m_numConvBufEntriesPerBank = 256;
      m_targetConfigParams.m_numConvBufEntryWidth = 128;

However, the hardware configuration is different:

From: hw/spec/defs/nv_full.spec:

  #define CBUF_BANK_NUMBER_16
  #define CBUF_BANK_WIDTH_64
  #define CBUF_BANK_DEPTH_512

The uploaded SystemC model uses parameters which comply with the compiler:

From: hw/cmod/cbuf/NV_NVDLA_cbuf.h

// FIXME, add buswidth define
#define CBUF_BANK_NUM                       16
#define CBUF_ENTRY_PER_BANK                 256
#undef  CBUF_ENTRY_NUM
#define CBUF_ENTRY_NUM                      CBUF_BANK_NUM*CBUF_ENTRY_PER_BANK

For me this looks like the spec-file uses a wrong set of parameters which will lead to not properly working generated vmods. Can anyone confirm this?