• 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. Custom IC Design
  3. veriloga error between spectre and ams

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 125
  • Views 2135
  • 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

veriloga error between spectre and ams

SimhanAnalog
SimhanAnalog 6 months ago

I thought I can define veriloga module in two ways(similar to verilog)

Method 1(in verilog this is called 2001  ANSI-style also my preference since it is compact)

module sample
(
input electrical VDD,
input electrical VSS,
input electrical i_a,

output electrical [3:0] o_b

);

//some analog begin

endmodule

Method 2(in Verilog this is called 1995 style)

module sample (VDD, VSS, i_a, o_b);

input VDD;

electrical VDD;

input VSS;

electrical VSS;

input i_a;

electrical i_a;

output [3:0] o_b;

electrical [3:0] o_b;

//some analog begin

endmodule

But when I simulate I found that in spectre sims both methods work. But in ams only method 2(the old 1995 style works) the method 1 errors out in ams. The error is

input electrical VDD,
|
xmvlog: *E,EXPCORP (/data/Latest/cds/PROJ_SCH/sample/veriloga/veriloga.va,6|23): Expecting a ',' or ')' [A.1.4(IEEE-2001)].

I tried xrun options -v200x -extv200x but it still gave same error.

Is this expected? Or is there some ams flag that can resolve this error?

  • Cancel
  • Andrew Beckett
    Andrew Beckett 6 months ago

    Are you running from ADE? If so, this shouldn't happen unless you have checked the Comple Verilog-A as Verilog-AMS checkbox on the Simulation->Netlist and Run Options form.

    The default flow is to use Verilog-A from within the Spectre engine as this is more efficient.

    I see a long-standing request for ANSI support for Verilog-AMS (although at the time the LRM didn't support this for disciplines, it does now) - maybe there's a more recent request but I didn't find it. I suggest you contact customer support (submit a support case after logging in) - and an enhancement Jira can be filed on your behalf. However, I think the solution in your case would be the checkbox above.

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • SimhanAnalog
    SimhanAnalog 6 months ago in reply to Andrew Beckett

    Comple Verilog-A as Verilog-AMS checkbox was checked by default. Maybe the EDA team made it that way. Once I unchecked it these errors went away. But I got a strange fatal error message when the output is multibit.
    Notice from spectre during initial setup.
    Ignorevaref=yes is ignored since all nodes are connected to Verilog-A modules.
    Fatal error found by spectre during topology check.
    FATAL: The following branches form a loop of rigid branches (shorts) when added to the circuit:
    sample_sim.I0:o_b[3]_flow (from sample_sim.I0___dUmmY_pORt_2_ to 0)
    sample_sim.I0:o_b[2]_flow (from sample_sim.I0___dUmmY_pORt_2_ to 0)
    sample_sim.I0:o_b[1]_flow (from sample_sim.I0___dUmmY_pORt_2_ to 0)

    This error occurs only for method 1. For method 2 it doesnt occur.

    xrun log says version is xrun(64): 23.09-s008

    When I check help->about in ADE-L I get "Virtuoso custom IC design environment version ICADVM20.1-64b.500.34

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett 6 months ago in reply to SimhanAnalog

    This error indicates. you have voltage sources in parallel, or current sources in series (some other scenarios too). Without seeing the model and the context in how it's used it's hard to know the root cause or whether it's caused by some simulator optimisation. I suggest you contact customer support so that we can look at it with you.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • SimhanAnalog
    SimhanAnalog 6 months ago in reply to Andrew Beckett

    I am planning to anyway go ahead with 1995 style for now since cadence support also mentioned that they don't support ANSI style for AMS(since it is not part of LRM)

    But putting the code and context below so that it might help someone later if there is a solution for this and Cadence decides to support ANSI style in AMS.

    module sample
    (
    input electrical VDD,
    input electrical VSS,
    input electrical i_a,

    output electrical [3:0] o_b

    );

    localparam b_val = 13;
    localparam b_bits = 4;

    integer compare_bit;
    genvar i;

    analog
    begin
    for(i=0; i<b_bits ; i=i+1)
    begin
    compare_bit = (b_val >>i)&1;
    V(o_tm_amp_corr[i]) <+ compare_bit ? V(VDD) : V(VSS) ;
    end

    end

    endmodule

    Basically this block just drives bits of the output o_b to VDD(logic 1) or VSS(logic 0) based on the value b_val. In this case b_val is 13(binary 1101).

    This block I create symbol view.

    This symbol I am instantiating in a schematic and adding analog lib vdc(say 1.2V) and connecting +ve terminal of vdc to VDD and all other inputs to -ve terminal of vdc. Output is floating. I just simulate the schematic in adel with transcient sim say 2ns. And it gave the error mentioned in the above comment.

    I also tried connecting output to basic lib noConn <3:0> still the error is same.

    • 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