• 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. Mixed-Signal Design
  3. possible to instantiate Verilog module in VerilogA?

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 64
  • Views 19085
  • 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

possible to instantiate Verilog module in VerilogA?

DavidLou
DavidLou over 7 years ago

Hello exports,

wonder is it possible to instantiate Verilog base sub-block in VerilogA? I just did the following instantiation code but how can I tell the simulator where the Verilog code is?

    test test ( .in(in), .out(out) ); 

I'm running in AMS with config and ADE L for such mix-signal simulation. 

    

thanks,

David

  • Cancel
Parents
  • Saloni Chhabra
    Saloni Chhabra over 7 years ago

    Hi David,

    Only verilogA or spice blocks can be instantiated in a hierarchical verilogA module, so you cannot instantiate a verilog module.

    Regards,
    Saloni

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • DavidLou
    DavidLou over 7 years ago in reply to Saloni Chhabra

    thanks Saloni,

    looks like it. if I put in a VerilogA instance in, it'll see it in the hierarchy editor. it doesn't do the same thing if I instantiate a Verilog module (I do have connectLib available). 

    anyway, thanks a lot,

    David

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • DavidLou
    DavidLou over 7 years ago in reply to Saloni Chhabra

    thanks Saloni,

    looks like it. if I put in a VerilogA instance in, it'll see it in the hierarchy editor. it doesn't do the same thing if I instantiate a Verilog module (I do have connectLib available). 

    anyway, thanks a lot,

    David

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to DavidLou

    David,

    You could put the VerilogA code in a VerilogAMS view, and then you should be able to instantiate Verilog (digital) within the block and simulate it in AMS.

    The issue is that VerilogA is an analog-only subset of the VerilogAMS standard, and so it makes no sense to instantiate verilog within it, so that's not supported in the flow. 

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • DavidLou
    DavidLou over 7 years ago in reply to Andrew Beckett

    hi Andrew,

    sounds like a good trick. And I am able to make the "config" happy which finds the verilog cell (say child) as instantiated inside VerilogAMS block(say parent cell). but when compiling, it still complains this child Verilog cell is referenced but not defined yet. 

        Error found by spectre in `parent', during circuit read-in.
        ERROR (SFE-23):
        "...parernt/verilogams/veriloga.va" 246:
        The instance `child' is referencing an undefined model or subcircuit,
        `child'. Either include the file containing the definition of
        `child', or define `child' before running the simulation.

    some clue to make it work?

    thanks a lot,

    David

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to DavidLou

    Hi David,

    All you have there is a Verilog-A view where the view name is "verilogams". The view name can be whatever you like - it doesn't affect the type of the view. 

    You need to create the view by setting the Type to "VerilogAMSText" on the File->New form in Virtuoso.

    I can tell you've just created a veriloga view because the filename is still "veriloga.va". That is handled by the spectre engine and so it's assumed to be pure analog.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • DavidLou
    DavidLou over 7 years ago in reply to Andrew Beckett

    hi Andrew, 

    Mixed up around and yup I get it work now. thanks a lot.

    David

    • 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