Quantcast
Channel: Cadence Functional Verification Forum
Viewing all articles
Browse latest Browse all 1069

xmsim/BSSXCD = The element count of bit-stream has reached to a value that can cross the integer range in case anymore element gets added to bit-stream

$
0
0

Hi
Here is my issue:
I have regenerated the register bank and register map for the updated xml (New registers have been added). The compilation is clean but when I run the simulation, it halts at ZERO time with the following error. [img][/img]

xmsim: *E,BSSXCD (/sw/cadence/xcelium/20.03.002/lnx86/tools/methodology/UVM/CDNS-1.2/sv/src/base/uvm_printer.svh,1118|17): No more element can be added to bit-stream - current size is [268433520] and further addition will cross the maximum permissible limit [268435455]. File: /sw/cadence/xcelium/20.03.002/lnx86/tools/methodology/UVM/CDNS-1.2/sv/src/base/uvm_printer.svh, line = 1118, pos = 17

Below is the uvm_table_printer function and I have added a comment at the error line (//ERROR LINE). You can also refer to this function in http://www.studio-muzzi.com/project/docs/UVMdocs_smu/uvm-1.1d/uvm__printer_8svh_source.html (Line 973-1055)

functionstring uvm_table_printer::emit(); strings[$];string user_format;staticstring dash;// = "---------------------------------------------------------------------------------------------------";staticstring space;//= "                                                                                                   ";string dashes; string linefeed ={"\n", knobs.prefix}; 
  calculate_max_widths(); beginint q[5];int m;int qq[$]; 
      q ='{m_max_name,m_max_type,m_max_size,m_max_value,100};
      qq = q.max;
      m = qq[0];if(dash.len()<m)begin
  		dash ={m{"-"}};
  		space ={m{" "}};endend if(knobs.header)beginstring header;
    user_format = format_header();if(user_format =="")beginstring dash_id, dash_typ, dash_sz;string head_id, head_typ, head_sz;if(knobs.identifier)begin
        dashes ={dash.substr(1,m_max_name+2)};
        header ={"Name",space.substr(1,m_max_name-2)};endif(knobs.type_name)begin
        dashes ={dashes, dash.substr(1,m_max_type+2)};
        header ={header,"Type",space.substr(1,m_max_type-2)};endif(knobs.size)begin
        dashes ={dashes, dash.substr(1,m_max_size+2)};
        header ={header,"Size",space.substr(1,m_max_size-2)};end
      dashes ={dashes, dash.substr(1,m_max_value), linefeed};
      header ={header,"Value", space.substr(1,m_max_value-5), linefeed}; s.push_back({dashes, header, dashes});endelsebegins.push_back({user_format, linefeed});endend foreach(m_rows[i])begin
    uvm_printer_row_info row = m_rows[i];
    user_format = format_row(row);if(user_format =="")beginstring row_str;if(knobs.identifier)
        row_str ={space.substr(1,row.level * knobs.indent), row.name,
                   space.substr(1,m_max_name-row.name.len()-(row.level*knobs.indent)+2)};if(knobs.type_name)
        row_str ={row_str, row.type_name, space.substr(1,m_max_type-row.type_name.len()+2)};if(knobs.size)
        row_str ={row_str, row.size, space.substr(1,m_max_size-row.size.len()+2)};s.push_back({row_str, row.val, space.substr(1,m_max_value-row.val.len()), linefeed});endelses.push_back({user_format, linefeed});end  if(knobs.footer)begin
    user_format = format_footer();if(user_format =="")s.push_back(dashes);elses.push_back({user_format, linefeed});end beginstring q ={>>{s}};//ERROR LINE line = 1118, pos = 17
  		emit = q;end
  m_rows.delete();endfunction

Here is the sample of my regbank (There are many registers in this maps )
this.STATUS_file = STATUS_file_type::type_id::create("STATUS_file", null, get_full_name());
this.STATUS_file.configure(this,null,$sformatf("STATUS_file"));
this.STATUS_file.build();
this.STATUS_file.map(this.shibuya_regbank_mcu_map,`UVM_REG_ADDR_WIDTH'h0);
this.DIAG_STATUS_file = DIAG_STATUS_file_type::type_id::create("DIAG_STATUS_file", null, get_full_name());
this.DIAG_STATUS_file.configure(this,null,$sformatf("DIAG_STATUS_file"));
this.DIAG_STATUS_file.build();
this.DIAG_STATUS_file.map(this.shibuya_regbank_mcu_map,`UVM_REG_ADDR_WIDTH'h224);
---------------
--------------
It's really hard time for me to debug this issue. Please give me some inputs on what might be going wrong. I confirm to you that all the registers are with in the specified range. I don't understand what it has to do with the printing. I don't know how to increase/configure the bit-stream size.

Thanks in advance.


Viewing all articles
Browse latest Browse all 1069

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>