[ibis-macro] upcoming Verilog-AMS LRM change impacts array syntax

  • From: "Ken Willis" <kwillis@xxxxxxxxxxx>
  • To: <ibis-macro@xxxxxxxxxxxxx>
  • Date: Tue, 29 Nov 2005 16:24:52 -0500

Hi,

I got the information from our Spectre team that the array syntax will
change in the next release of
Verilog-AMS LRM (version 2.3), likely in 2h06. For example in the
IBIS_OpenSink model you have:

  parameter real
    I_pc[1:IVpc_length] = { 0.08,  0.00,  0.00,  0.00},
    V_pc[1:IVpc_length] = {-5.00, -1.00,  5.00, 10.00},
    I_pd[1:IVpd_length] = {-0.10,  0.00,  0.10,  0.20},
    V_pd[1:IVpd_length] = {-5.00,  0.00,  5.00, 10.00},
    I_gc[1:IVgc_length] = {-0.08,  0.00,  0.00,  0.00},
    V_gc[1:IVgc_length] = {-5.00, -1.00,  5.00, 10.00};

The syntax will be changed from:

{-5.00, -1.00,  5.00, 10.00};
to
'{-5.00, -1.00,  5.00, 10.00};

With the backtick added. This is being done to comply with
SystemVerilog.

One suggestion was to consider supporting a macro so that the building
blocks
would work with LRM2.2 compliant simulators and LRM2.3 compliant
simulations,
for example:

e.g;
'ifdef __VAMS_LRM2.3
  parameter real
    I_pc[1:IVpc_length] = '{ 0.08,  0.00,  0.00,  0.00},
    V_pc[1:IVpc_length] = '{-5.00, -1.00,  5.00, 10.00},
    I_pd[1:IVpd_length] = '{-0.10,  0.00,  0.10,  0.20},
    V_pd[1:IVpd_length] = '{-5.00,  0.00,  5.00, 10.00},
    I_gc[1:IVgc_length] = '{-0.08,  0.00,  0.00,  0.00},
    V_gc[1:IVgc_length] = '{-5.00, -1.00,  5.00, 10.00};
`else
  parameter real
    I_pc[1:IVpc_length] = { 0.08,  0.00,  0.00,  0.00},
    V_pc[1:IVpc_length] = {-5.00, -1.00,  5.00, 10.00},
    I_pd[1:IVpd_length] = {-0.10,  0.00,  0.10,  0.20},
    V_pd[1:IVpd_length] = {-5.00,  0.00,  5.00, 10.00},
    I_gc[1:IVgc_length] = {-0.08,  0.00,  0.00,  0.00},
    V_gc[1:IVgc_length] = {-5.00, -1.00,  5.00, 10.00};
`endif

Something to think about.

thanks,

Ken Willis
Cadence Design Systems
270 Billerica Road
Chelmsford, MA 01824
(978) 262-6540

Other related posts: