• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Functional Verification
  3. Currently type parameter override is not supported for this...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 67
  • Views 16566
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Currently type parameter override is not supported for this datatype.

Chandra Singh
Chandra Singh over 11 years ago

Hello all,

I am getting following error  "Currently type parameter override is not supported for this datatype."   for the  code given below

In the tb_top.sv we are setting this mailbox

uvm_config_db#(usbpd_prot_pkt_mailbox_t) :: set(null, "*","dut_prot2pe_mbx_0" , dut_prot2pe_mbx[0]);

In lower layer component

if(!uvm_config_db #(usbpd_prot_pkt_mailbox_t) :: get(this, "", "dut_prot2pe_mbx_0", this.prot2pe_mbx))
            `uvm_error("USB_PD", $psprintf("TB_DRIVER :GET_CONFIG_FAILED STATUS:dut_prot2pe_mbx"))

During compilation this error is comming.

ncvlog: *E,SVTPCO (../../uvm_tb/driver/usb_pd_prot_driver.sv,52|52): Currently type parameter override is not supported for this datatype.
 

  • Cancel
  • seabeam
    seabeam over 11 years ago

    It seemed that cadence's tool do not support transfer type:mailbox, array, queue through config_db(unfortunately tlm port, export, ap, is based on mailbox, which cannot be pass). But mentor's tool can work properly.

    In IEEE std. 1800-2009, this situation is not mentioned.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • StephenH
    StephenH over 11 years ago

    If you want support for tool problems, please use the correct procedure at our support site  as we cannot do much in a public forum to analyse your problems.

    Luckily for you the solution to your issue is quite easy: create a wrapper class around the mailbox, since you can use classes with the config DB.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Tudor Timi
    Tudor Timi over 11 years ago

    Try to wrap your mailbox in a class and pass that. This might work. Here's some code (not tested):

    class mailbox_wrapper;

      usbpd_prot_pkt_mailbox_t mbox;

    endclass

    mbox_wrapper wrapper = new();

    wrapper.mbox = dut_prot2pe_mbx[0];

    uvm_config_db #(mailbox_wrapper) :: set(null, "*","dut_prot2pe_mbx_0" , wrapper);

    You'll also have to update your get to handle the wrapper class instead of a native mailbox.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • StephenH
    StephenH over 11 years ago

    Here's an example. This hasn't been tested but should be complete.

    package mbox_pkg;
    import uvm_pkg::*;
    class mbox_wrap #(type T=uvm_object);
      mailbox #(T) mbox;
      function new (int bound=0);
        mbox=new(bound);
      endfunction
      function int num();
        return mbox.num();
      endfunction
      task put (input T message);
        mbox.put(message);
      endtask
      function int try_put (input T message);
        return mbox.try_put(message);
      endfunction
      task get (ref T message);
        mbox.get(message);
      endtask
      function int try_get (ref T message);
        return mbox.try_get(message);
      endfunction
      task peek (ref T message);
        mbox.peek(message);
      endtask
      function int try_peek (ref T message);
        return mbox.try_peek(message);
      endfunction
    endclass

    endpackage

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information