• 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. Share Queue between class?

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 64
  • Views 14706
  • 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

Share Queue between class?

archive
archive over 18 years ago

Hi all,

I am using IUS583. And I want to do transaction layer class object transfer using Queue.
I think there maybe two methods listed below.
1. share queue with two different class
2. share queue (maybe local queue) with two different tasks within one class
My queue contain class object, is it feasible in IUS583? And is there any simple example to do that work?

I have write method 1 and method 2 ,but it seems IUS583 always give out ncelab error:
ncelab: *E,CUVHNF Hierarchical name component lookup failed at 'cmd_queue'.

//method 1 snippet
module top_tb;
class cmd_c;
...
endclass

cmd_c cmd_queue[$];

class transaction_gen;
task run;
    ...
    cmd_queue.push_back (cmd)
endtask
endclass

//method 2 snippet
module top_tb;
class cmd_c;
...
endclass


class transaction_gen;
local cmd_c cmd_queue[$];
task run;
    ...
    cmd_queue.push_back (cmd)
endtask
endclass

Best regards,
Davy


Originally posted in cdnusers.org by davyzhu
  • Cancel
Parents
  • archive
    archive over 18 years ago

    The following code worked with : ncverilog: 05.83-p002:

    module top;

    class cmd_c;
    integer i;
    endclass

    cmd_c cmd_queue[$];

    cmd_c cmd = new;

    class transaction_gen;
    task run;
    cmd_queue.push_back (cmd);
    $display("cmd Pushed..");
    endtask
    endclass


    transaction_gen tg = new;


    initial
    begin
    tg.run;
    $finish;
    end

    endmodule



    Originally posted in cdnusers.org by mirzani
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • archive
    archive over 18 years ago

    The following code worked with : ncverilog: 05.83-p002:

    module top;

    class cmd_c;
    integer i;
    endclass

    cmd_c cmd_queue[$];

    cmd_c cmd = new;

    class transaction_gen;
    task run;
    cmd_queue.push_back (cmd);
    $display("cmd Pushed..");
    endtask
    endclass


    transaction_gen tg = new;


    initial
    begin
    tg.run;
    $finish;
    end

    endmodule



    Originally posted in cdnusers.org by mirzani
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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