Megha Agrawal, Nidhi Agrawal, Alpana Agarwal and Anil K. Saini*
Modeling of Ion Sensitive Field Effect Transistor for pH Sensor using Verilog-A
Recent Advancement in Communication System & Image Processing
RACISP-2012 at: BKBIET, Pilani
Thapar University, PATIALA – 147004, Punjab
*Central Electronics Engineering Research Institute, PILANI – 333031, Rajasthan
Abstract: ISFET semiconductor technology enables the design of true solid state pH sensor. An ISFET can be modeled by considering it as two fully uncoupled stages: an electronic stage i.e., the MOSFET which is the starting structure of the ISFET and an Electro-chemical stage i.e., the electrolyte–insulator interface which is pH dependent. This paper describes the modeling of ISFET for pH measurement using Verilog A which is compatible with cadence environment. Any change in pH directly affects the threshold voltage of ISFET. To measure this change in pH, ISFET is configured in such a way so that change in threshold voltage can be directly detected. For this purpose a sensing read-out has been designed using Gate complementary ISFET/MOSFET pair (CIMP) technique. Simulated result shows good linearity between output voltage of sensing readout circuit with pH variation for the range of 1 to12. The ISFET is thermally instable due to semiconductor properties and pH dependency on temperature, which in turn affects the pH reading of the solution at a temperature other than room temperature with slope of +0.69mV/0C, +1.25mV/0C and +1.60mV/0C respectively for pH= 4, for pH=7 and for pH=10.
Fig: a) n-channel ISFET structure and b) its equivalent electric circuit [ref]
Acknowledgment: The work is financially supported by Department of Information Technology, Ministry of Communication & Information Technology, Government of India, under SMDP-VLSI (Phase II) project.
[ref] Sergio Martinoia, Giuseppe Massobrio, “A Behavioral Macromodel of the ISFET in SPICE,” Sensors and Actuators B, Vol. 62, pp. 182–189, 2000
Appendix A
// Verilog-A Code for ISFET [ref]
`include "constants.vams"
`include "disciplines.vams"
module ISFET(ref,gm,ph);
inout ref,gm,ph;
electrical ref,gm,ph;
real EPH;
real T;
electrical node;
electrical x,y;
// PARAMETERS FOR ISFET
// PARAMETERS FOR ISFET
parameter real NAv = 6.023E26; //Avogadros constant(1/MOLE)// ISFET geometrical parametersparameter real DIHP =0.1E-9;parameter real DOHP =0.3E-9;//ISFET electrochemical parametersparameter real KA = 15.8;parameter real KB = 63.1E-9;parameter real KN = 1E-10;parameter real Nsil = 3.0E+18;parameter real Nnit = 2.0E+18;parameter real Cbulk = 0.1;parameter real epso = 8.85E-12;parameter real epsihp = 32; //relative permittivity of the Inner Helmholtz layerparameter real epsohp = 32; //relative permittivity of the Outer Helmholtz layerparameter real epsw = 78.5; //relative permittivity of the bulk electrolyte solution//Reference-electrode electrochemical parametersparameter real Eabs = 4.7; //absolute potential of the standard hydrogen electrodeparameter real Erel = 0.2;parameter real Phim = 4.7; //work function of the metal back contactparameter real Philj = 1E-3; //liquid-junction potential difference between the refsolution and the electrolyteparameter real Chieo = 3E-3; //surface dipole potential
real ET; //THERMAL COFFICIENT
real sq;
real CH, CD, CEQ, CB;
real Eref;
analog begin
real sq;
real CH, CD, CEQ, CB;
real Eref;
analog begin
endT= $temperature;ET= (`P_Q /(`P_K * T));sq = sqrt(8*`P_EPS0*epsw*`P_K * T);CB = (NAv*Cbulk);CH = ((`P_EPS0*epsihp*epsohp) / (epsohp*DIHP + epsihp*DOHP));CD = (sq*ET*0.5)*sqrt(CB);CEQ = 1/(1/CD + 1/CH);V(ref,node) <+ Eabs - Phim - Erel + Chieo + Philj;Eref = V(ref,node);V(x)<+ log(KA*KB)+4.6*V(ph);V(y)<+ log(KA)+2.3*V(ph);V(gm,node) <+ (`P_Q / CEQ) * (Nsil * ((limexp(-2 * V(gm,node) * ET)– limexp(V(x))) / (limexp(-2 * V(gm,node) * ET) + limexp(V(y)) * limexp(-1 * V(gm,node)*ET) + limexp(V(x)))) + Nnit*((limexp(-1 * V(gm,node)*ET))/(limexp(-1* V(gm,node)*ET)+ (KN/KA) * limexp(V(y)))));
capacitor #(.c(CEQ)) Cq(node,gm);resistor #(.r(1G)) RP1(x,gnd);resistor #(.r(1G)) RP2(y,gnd);resistor #(.r(1k)) RPH(ph,gnd);
endmodule