Skip to content

Do not use limexp() for bias-independent quantities #5

@gjcoram

Description

@gjcoram

According to the Verilog-AMS LRM (version 2.4), section 4.5.13:
The limexp() function is an operator whose internal state contains information about the argument on previous iterations. It returns a real value which is the exponential of its single real argument, however, it internally limits the change of its output from iteration to iteration in order to improve convergence.

So, it doesn't make sense to use limexp() in an expression like
limexp(LLN * ln(1.0 / l));
There is no reason to ask the simulator to set up internal state to track the iteration-to-iteration change, because 'LLN' and 'l' do not change between iterations.

WARNING in file ekv3.va, line 227: Call to limexp((LLN*ln((1.0/l)))), but argument is not bias-dependent
WARNING in file ekv3.va, line 304: Call to limexp((-(Leff_o_LR)*Leff_o_LR)), but argument is not bias-dependent
WARNING in file ekv3.va, line 316: Call to limexp((-(Weff_o_WR)*Weff_o_WR)), but argument is not bias-dependent
WARNING in file ekv3.va, line 330: Call to limexp(-(Leff_o_LA)), but argument is not bias-dependent
WARNING in file ekv3.va, line 330: Call to limexp(-(Leff_o_LB)), but argument is not bias-dependent
WARNING in file ekv3.va, line 336: Call to limexp((-(tmp_kpw)*tmp_kpw)), but argument is not bias-dependent
WARNING in file ekv3.va, line 381: Call to limexp((-(LLODKKP)*ln(l))), but argument is not bias-dependent
WARNING in file ekv3.va, line 382: Call to limexp((-(WLODKKP)*ln((w+WLOD)))), but argument is not bias-dependent
WARNING in file ekv3.va, line 388: Call to limexp((-(LLODKVTO)*ln(l))), but argument is not bias-dependent
WARNING in file ekv3.va, line 389: Call to limexp((-(WLODKVTO)*ln((w+WLOD)))), but argument is not bias-dependent
WARNING in file ekv3.va, line 393: Call to limexp((LODKGAMMA*ln(KVTO_sti))), but argument is not bias-dependent
WARNING in file ekv3.va, line 394: Call to limexp((LODKETAD*ln(KVTO_sti))), but argument is not bias-dependent
WARNING in file ekv3.va, line 466: Call to limexp((BEX*lnrT)), but argument is not bias-dependent
WARNING in file ekv3.va, line 468: Call to limexp((TE0EX*lnrT)), but argument is not bias-dependent
WARNING in file ekv3.va, line 469: Call to limexp((TE1EX*lnrT)), but argument is not bias-dependent
WARNING in file ekv3.va, line 470: Call to limexp((UCEX_w*lnrT)), but argument is not bias-dependent
WARNING in file ekv3.va, line 533: Call to limexp((0.33333333333333333333333333333333*ln(((COX*COX)/UT)))), but argument is not bias-dependent
WARNING in file ekv3.va, line 534: Call to limexp((0.66666666666666666666666666666667*ln(ETAQM))), but argument is not bias-dependent
WARNING in file ekv3.va, line 536: Call to limexp((0.66666666666666666666666666666667*ln((((gamma_b_dev*COX)*0.5)/(sqrtUT*phif))))), but argument is not bias-dependent
WARNING in file ekv3.va, line 538: Call to limexp((0.66666666666666666666666666666667*ln((((gamma_b_dev*COX)*1.4142135623730950488016887242097)*sqrtphif)))), but argument is not bias-dependent

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions