diff --git a/elab_pexpr.cc b/elab_pexpr.cc index 59849ee37..553e776c2 100644 --- a/elab_pexpr.cc +++ b/elab_pexpr.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2009 Stephen Williams (steve@icarus.com) + * Copyright (c) 2000-2010 Stephen Williams (steve@icarus.com) * * This source code is free software; you can redistribute it * and/or modify it in source code form under the terms of the GNU @@ -414,9 +414,9 @@ NetExpr* PECallFunction::elaborate_pexpr(Design*des, NetScope*scope) const return rtn; } - /* These are only available with verilog-ams or icarus-misc. */ + /* This is only available with verilog-ams or icarus-misc. */ if ((gn_icarus_misc_flag || gn_verilog_ams_flag) && - (nm == "$log" || nm == "$abs")) { + (nm == "$abs")) { if (parms_.size() != 1 || parms_[0] == 0) { cerr << get_fileline() << ": error: " << nm << " takes a single argument." << endl; @@ -426,15 +426,11 @@ NetExpr* PECallFunction::elaborate_pexpr(Design*des, NetScope*scope) const NetExpr*arg = parms_[0]->elaborate_pexpr(des, scope); if (arg == 0) return 0; NetESFunc*rtn; - if (nm == "$log") { - rtn = new NetESFunc(nm, IVL_VT_REAL, 1, 1); - } else { - /* This can return either a real or an arbitrary - * width vector, so set things to fail if this - * does not get replaced with a constant during - * elaboration. */ - rtn = new NetESFunc(nm, IVL_VT_NO_TYPE, 0, 1); - } + /* This can return either a real or an arbitrary + * width vector, so set things to fail if this + * does not get replaced with a constant during + * elaboration. */ + rtn = new NetESFunc(nm, IVL_VT_NO_TYPE, 0, 1); rtn->set_line(*this); rtn->cast_signed(true); rtn->parm(0, arg); @@ -451,7 +447,7 @@ NetExpr* PECallFunction::elaborate_pexpr(Design*des, NetScope*scope) const NetExpr*arg0 = parms_[0]->elaborate_pexpr(des, scope); NetExpr*arg1 = parms_[1]->elaborate_pexpr(des, scope); if (arg0 == 0 || arg1 == 0) return 0; - /* See $log above for why this has no type or width. */ + /* See $abs above for why this has no type or width. */ NetESFunc*rtn = new NetESFunc(nm, IVL_VT_NO_TYPE, 0, 2); rtn->set_line(*this); rtn->cast_signed(true); diff --git a/eval_tree.cc b/eval_tree.cc index 07638bfc7..af082a331 100644 --- a/eval_tree.cc +++ b/eval_tree.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999-2009 Stephen Williams (steve@icarus.com) + * Copyright (c) 1999-2010 Stephen Williams (steve@icarus.com) * * This source code is free software; you can redistribute it * and/or modify it in source code form under the terms of the GNU @@ -1742,8 +1742,6 @@ NetExpr* evaluate_math_one_arg(NetExpr*&arg_, const char*name) if (strcmp(name, "$ln") == 0) { return new NetECReal(verireal(log(arg))); - } else if (strcmp(name, "$log") == 0) { - return new NetECReal(verireal(log10(arg))); } else if (strcmp(name, "$log10") == 0) { return new NetECReal(verireal(log10(arg))); } else if (strcmp(name, "$exp") == 0) { @@ -1941,18 +1939,14 @@ NetExpr* NetESFunc::eval_tree(int prune_to_width) } if ((gn_icarus_misc_flag || gn_verilog_ams_flag) && - (strcmp(nm, "$log") == 0 || strcmp(nm, "$abs") == 0)) { + (strcmp(nm, "$abs") == 0)) { if (nparms() != 1 || parm(0) == 0) { cerr << get_fileline() << ": error: " << nm << " takes a single argument." << endl; return 0; } NetExpr*arg = parm(0)->dup_expr(); - if (strcmp(nm, "$log") == 0) { - rtn = evaluate_math_one_arg(arg, nm); - } else { - rtn = evaluate_abs(arg); - } + rtn = evaluate_abs(arg); delete arg; } diff --git a/va_math.txt b/va_math.txt index b654acf52..b5cb3e6b1 100644 --- a/va_math.txt +++ b/va_math.txt @@ -11,7 +11,7 @@ License. Verilog-A math library built for Icarus Verilog http://www.icarus.com/eda/verilog/ - Copyright (C) 2007-2009 Cary R. (cygcary@yahoo.com) + Copyright (C) 2007-2010 Cary R. (cygcary@yahoo.com) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -38,7 +38,7 @@ like all Verilog-D system functions the name must be prefixed with a '$'. For reference the functions are: $ln(x) -- Natural logarithm - $log10(x) -- Decimal logarithm // $log is being deprecated! + $log10(x) -- Decimal logarithm $exp(x) -- Exponential $sqrt(x) -- Square root $min(x,y) -- Minimum diff --git a/vpi/va_math.c b/vpi/va_math.c index 0f5c05727..08af411e8 100644 --- a/vpi/va_math.c +++ b/vpi/va_math.c @@ -70,11 +70,6 @@ typedef struct s_single_data { } t_single_data; static t_single_data va_single_data[]= { - {"$log", log10}, /* NOTE: The $log function is replaced by the - $log10 function to eliminate confusion with - the natural log. In C, "log" is ln and log10 - is log-base-10. The $log is being left in for - compatibility. */ {"$abs", fabs}, {0, 0} /* Must be NULL terminated! */ }; @@ -239,12 +234,6 @@ static PLI_INT32 va_single_argument_compiletf(PLI_BYTE8 *ud) single_funcs_count*sizeof(va_single_t **)); single_funcs[single_funcs_count-1] = fun_data; - if (strcmp(name, "$log") == 0) { - vpi_printf("%s:%d: deprecation: ", vpi_get_str(vpiFile, callh), - (int)vpi_get(vpiLineNo, callh)); - vpi_printf("Please use $log10() instead of $log()!\n"); - } - /* vpi_scan() returning 0 (NULL) has already freed argv. */ return 0; } diff --git a/vpi/va_math.sft b/vpi/va_math.sft index b78ac8da8..9544566aa 100644 --- a/vpi/va_math.sft +++ b/vpi/va_math.sft @@ -4,7 +4,6 @@ # # Single argument functions. -$log vpiSysFuncReal $abs vpiSysFuncReal # Double argument functions. $min vpiSysFuncReal