• 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. IUS 11.1 and extern/import tasks inside an SV-interface...

Stats

  • Locked Locked
  • Replies 0
  • Subscribers 64
  • Views 1080
  • 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

IUS 11.1 and extern/import tasks inside an SV-interface?

cubicle82
cubicle82 over 13 years ago

I'm trying to figure out a way to give my packaged classes indirect access to tasks that are declared as hierarchical-pahs.

Basically, I need a standard class definition that can access multiple instances of some module-instance within my testbench. Example:

module legacy_module_1;

task xxx;

endtask

endmodule : legacy_module_1

///////////////////

module testbench;

legacy_module_1 instace_a();

legacy_module_1 instace_b();

endmodule : testbench

package pkg_a;

class cls_1;

    // cls_1 needs ability to call instace_*.task_x();

 endclass : cls_1

 

...classes in packages cannot contain hierarchical-references to anything outside of the package (so that rules out the easiest route.)

Next, I thought I would create an SV-interface, then declare extern tasks/functions inside the interface (i.e. 'proxy tasks', which then call instance_*.task_x() ) And create interface-ports on legacy_module_*, as hookup points.

But IUS 11 doesn't support it:

        extern task x;
                  |
ncvlog: *E,SVNIMP (ptclass2.sv,3|11): SystemVerilog construct not yet implemented:  extern tasks within an interface.

 

I also tried the alternate approach of 'importing' a task inside a modport declaration, but it seems IUS11 doesn't support that either.

 

I'm stumped... 

  • 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