I have a doubt in TFET based Mixer circuit design. Actually I have downloaded InAs TFET model generated by PennState University. This model is having verilog A code and lookup table for current and capacitance values. I am trying to use this model in cadence virtuoso. I did DC and AC analysis. Is it possible to find pss, pac analysis for mixer circuit using InAs TFET model?
It depends on how the model is written. If there are "hidden states" then it won't work (but will tell you why). In general if there's a problem, spectre should tell you. There are a few more checks added in MMSIM15.1 version of spectre to trap some of the more esoteric Verilog-A issues with RF analyses.
Did you try running with it?
In reply to Andrew Beckett:
Hai Andrew,Thanks for your reply. The verilog A code is:
analog beginIds=$table_model(V(d,s), (V(g,s)), "IdVg-InAs-NTFET-Lg-20nm.tbl","1LL,1LL");Cgd=$table_model(V(d,s), (V(g,s)), "CGD-InAs-NTFET-Lg-20nm.tbl","1LL,1LL");Cgs=$table_model(V(d,s), (V(g,s)), "CGS-InAs-NTFET-Lg-20nm.tbl","1LL,1LL");if(analysis("dc")) begin I(d,s) <+ 1*Ids*W;endelse begin if(analysis("tran")) begin Qgd = (W*1*Cgd)*(V(g,d)); Qgs = (W*1*Cgs)*(V(g,s)); Qg=Qgs+Qgd; I(d,s) <+ 1*Ids*W ; I(d) <+ ddt(-1*Qgd); I(s) <+ ddt(-1*Qgs); I(g) <+ ddt(Qg); endend
In my point of view, according to code, we can run only 'dc' and 'tran' analysis of the mixer circuit. Is it correct?
If I want to find pss and pac analysis for the mixer circuit, what can I do?
Pls suggest me..
In reply to Pown M:
Contact the model writer and ask them to provide something better written? Generally models should not do different things for different analyses. I think the model would behave the same without the conditional stuff at all, and just having:
analog beginIds=$table_model(V(d,s), (V(g,s)), "IdVg-InAs-NTFET-Lg-20nm.tbl","1LL,1LL");Cgd=$table_model(V(d,s), (V(g,s)), "CGD-InAs-NTFET-Lg-20nm.tbl","1LL,1LL");Cgs=$table_model(V(d,s), (V(g,s)), "CGS-InAs-NTFET-Lg-20nm.tbl","1LL,1LL"); Qgd = (W*1*Cgd)*(V(g,d)); Qgs = (W*1*Cgs)*(V(g,s)); Qg=Qgs+Qgd; I(d,s) <+ 1*Ids*W ; I(d) <+ ddt(-1*Qgd); I(s) <+ ddt(-1*Qgs); I(g) <+ ddt(Qg);end
If you don't want to be that radical, just remove the if(analysis("tran") from around the statements and leave it as having one bit of code for dc, and the rest of the code for every other analysis.
I have table with two inputs X and Y and an output Z=F(X,Y). I am facing the following error upon running the simulation.
FATAL (VLOGA-5081): "veriloga/veriloga.va" 21: I2: $table_model failed: Insufficient sample points. The table must provide at least two points for each isoline. Correct the problem and try again. FATAL (VLOGA-5083): "veriloga/veriloga.va" 21: I2: Found only sample points 'y=10.840000' when 'x=11.850000' for table model data of form output = F(x,y). Provide at least one more point with different 'y' value when 'x=11.850000' and try again.
This is how my table looks like:
11.85 10.84 -1.73E-0611.85 10.84 -1.73E-0613.29 8.81 -1.96E-0513.37 8.596 -1.99E-05
I understand the problem that it expects atleast two points in each dimension so it can interpolate. I want to know is there an option to turn off interpolation if the nearest neighbour is not found. Or in other words, is there a way to specify $table_model to just return exact value like a LUT:
Please help me here. Thank you.
In reply to Aishwarya Prabhakaran:
This ought to be possible by using "D" as the control string for each of the dimensions (according to the VerilogAMS 2.4 LRM at least this should pick the closest value). However, if I compare that with the VerilogA documentation in the MMSIM/SPECTRE installation, it says there that it looks for the exact value - and this appears from a very quick experiment what it does in practice.
I think you'll need to contact customer support to ask for this closest fit to be supported in Spectre. I can't find anyone who has asked for this so far.
I don't believe so currently. I think the requirement for isolines should be relaxed if you are using "D" mode, in addition to it being changed to give the closest fit rather than an exact match only. That's why you need to take this up with support so that we can file the CCR on your behalf (always better to have a real customer associated with it rather than just an internal request).