Q: 'reg' is a future reserved keyword, parsing as identifier??

Discussion in 'Cadence' started by Jason, Apr 6, 2009.

  1. Jason

    Jason Guest

    I wrote a simple program for a 8-bit counter in Cadence with VerilogA

    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    `include "constants.vams"
    `include "disciplines.vams"

    module counter(clk, reset, result, ena);
    input clk;
    input reset;
    input ena;
    output reg [7:0] result;
    always @(posedge clk or posedge reset)
    begin
    if (reset)
    result = 0;
    else if (ena)
    result = result + 1;
    end
    endmodule
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

    When the compiling proceeding, I have several problems which say:

    --------------------------------------------------------------------
    Warning from spectre during SpectreHDL compile.
    "/home/qw/vlsi/Libraries/UMC18_MM_RF/test_sys/counter/veriloga/
    veriloga.va",
    line 11: Warning: `reg' is a future reserved keyword, parsing
    as
    identifier.
    Error found by spectre during SpectreHDL compile.
    "/home/qw/vlsi/Libraries/UMC18_MM_RF/test_sys/counter/veriloga/
    veriloga.va",
    line 11: "output reg <<--? [7:0] result;"
    "/home/qw/vlsi/Libraries/UMC18_MM_RF/test_sys/counter/veriloga/
    veriloga.va",
    line 11: Error: syntax error
    Warning from spectre during SpectreHDL compile.
    "/home/qw/vlsi/Libraries/UMC18_MM_RF/test_sys/counter/veriloga/
    veriloga.va",
    line 13: Warning: `always' is a future reserved keyword,
    parsing as
    identifier.
    "/home/qw/vlsi/Libraries/UMC18_MM_RF/test_sys/counter/veriloga/
    veriloga.va",
    line 13: Warning: `posedge' is a future reserved keyword,
    parsing as
    identifier.
    ------------------------------------------------------------------------

    I tried to search google, but there's no proper answer for this
    problem. Anyone has any clue?

    Thx

    Jay
     
    Jason, Apr 6, 2009
    #1
  2. Jason wrote, on 04/06/09 12:48:
    Jay,

    You've created this as a VerilogA view, whereas the code you have entered is
    VerilogAMS. VerilogA is a subset of VerilogA which supports Analog behaviour
    only, and can be simulated in a pure analog simulator such as spectre.

    For VerilogAMS you need a mixed signal simulator. VerilogAMS supports both
    digital and analog behaviour.

    In fact your module is purely digital, so cannot work in an analog simulator.

    Create your view as VerilogAMS and it should work OK.

    Best Regards,

    Andrew.
     
    Andrew Beckett, Apr 6, 2009
    #2
  3. Jason

    Jason Guest

    Hi, Andrew

    Yes, this does sort out the problem. But the following question is
    when I'm doing the mixed-signal simulation, an error is reported as
    following:

    "Verilog-XL Executable 'verilog.vmx' cannot be located from $PATH.
    Please specify correct location in Digital Simulation Options."

    However, I couldn't find the ' verilog.vmx' in my local drives. So how
    can I solve this problem?

    Thx
     
    Jason, Apr 7, 2009
    #3
  4. Jason wrote, on 04/07/09 13:37:
    Jason,

    If you want to use VerilogAMS, then you'll need to use AMS Designer (the
    simulator is "ams" in ADE). You must have picked "spectreVerilog" which is the
    old mixed signal simulator. With that you can use pure digital views (you'd
    have to pick "verilog" as the view type (or something like that).

    To run either the newer AMS simulator or spectreVerilog (aka "verimix"), you'll
    need to have an IUS installation (e.g. IUS82) in your UNIX path. For example, in
    my case verilog.vmx is in <IUSinstDir>/tools/bin which is in my path. Similarly
    ncsim is in the same place (and this is what AMS uses).

    You might want to read the documentation on AMS simulation (including the AMS
    quickstart) in the IUS installation.

    Regards,

    Andrew.
     
    Andrew Beckett, Apr 7, 2009
    #4
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.