Silvaco – a quick start

Note: This post is sort of quick tutorial to start building TFT device in the Silvaco software without going much in detailed physics behind.

Silvaco is device simulation software which is used to obtain device characteristics like IV, CV, CF, etc for the simulated devices which could be diode, MOSFET, TFT, organic devices and a lot of other devices which are listed in the manual. The software comes with set of examples which can be used to build your device based on it. Basically it solves all set of complex equation (Poisson’s equation, etc) for the device which you build and gives you back the required characteristics.

Here I am going to build a simple organic TFT and guide you over the statements. At the end of this session one should be able to understand the basic workflow of writing code and build their own structure whenever required.

  1. This command gives that how many servers you’d be using for solving the Silvaco file.
    • go atlas simflags=”-P 1″
  2. Now one can set variables to some value so that it can be reused again. So following command instantiates following variables. All dimensions are in micrometer.
    • set Channel_L = 20
      set ContactLength_SD = 5
      set Semiconductor_t = 0.05
      set Dielectric_t = 0.35
  3. Before defining the structure of your device one should be aware of the dimensions of the device and where the boundaries occurs. This commands helps to define meshing points where the simulator will solve for the physics based equation.
    • mesh     width=220x.mesh loc=0.0 spacing=0.1
      x.mesh loc=$ContactLength_SD – $ContactLength_SD/2 spacing=0.1
      x.mesh loc=$ContactLength_SD spacing=0.1
      x.mesh loc=$ContactLength_SD+$Channel_L/2 spacing=0.1
      x.mesh loc=$Channel_L + $ContactLength_SD spacing=0.1
      x.mesh loc=$Channel_L + $ContactLength_SD + $ContactLength_SD/2 spacing=0.1
      x.mesh loc=$Channel_L + $ContactLength_SD + $ContactLength_SD spacing=0.1
      y.mesh loc=0.000 spacing=0.1
      y.mesh loc=$Semiconductor_t/2 spacing=0.01
      y.mesh loc=$Semiconductor_t spacing=0.01
      y.mesh loc=$Dielectric_t-0.2 spacing=0.1
      y.mesh loc=$Dielectric_t spacing=1
  4. This part defines the material present at different rectangular regions that you’d define. The material properties are taken as default. It can be specifically changed later as you’ll see.
    • region num=1 x.min=0.0 x.max=$Channel_L + $ContactLength_SD + $ContactLength_SD y.min=0.0 y.max=$Semiconductor_t material=pentacene
      region num=2 x.min=0.0 x.max=$Channel_L+ $ContactLength_SD + $ContactLength_SD y.min=$Semiconductor_t y.max=$Dielectric_t material=oxide
  5. This defines the electrode location through which you would probe/apply any external quantities (i.e voltage). In our TFT case we have source, gate and drain.
    • elect num=1 x.min=0.0 x.max=$Channel_L + $ContactLength_SD + $ContactLength_SD y.min=$Dielectric_t y.max=$Dielectric_t name=gate
      elect num=2 x.min=0.0 x.max=$ContactLength_SD y.min=0.0 y.max=0.0 name=source
      elect num=3 x.min=$Channel_L+$ContactLength_SD x.max=$Channel_L + $ContactLength_SD + $ContactLength_SD y.min=0.0 y.max=0.0 name=drain
  6. For sake of simplicity you can save the structure file here via save command.
    Now we have defined the structure of the device, so we will further go inside to explicitly define the every fine details (you might call it simulation parameters) of the device.
    There are large number of material parameters through which you would like to make it resemble to a real fabricated device but most of the time one would change only few of parameters to do so and keep others as default. There are a lot of other commands/variables which needs to be added individually like Defects, Mobility, etc. The physical property specification is the crucial part of the simulation. In the current example I have used few of the material parameters which you would also find realistic.

    • save outf=OTFT_Diel300nm_L20u.str    master
      material region=1 material=pentacene permittivity=3 nc300=1e22 nv300=1e22 affinity=3.3 eg300=1.8
      material region=2 material=oxide permittivity=7.4
      mobility region=1 material=pentacene mun=1e-6 mup=0.5
      defects region=1 numd=180 ntd=1.1e20 wtd=0.115 cont
      contact name=source workf=5.1
      contact name=drain workf=5.1
      contact name=gate workf=4.1
  7. After defining all these, one needs to activate models as per requirement to include the effect of particular model while solving the equations. I mean to convey that let’s say you have defined poole frenkel variable in the material statement above but it won’t cause any effect until you specify PFMOB keyword in the MODELS. Few of the physics models are activated by default like constant mobility model, Boltzmann Distribution, etc. So one should think it as if one wants to have his device realistic then try to specify the material parameters as real as possible and activate its corresponding model so that the effect could be seen in the simulation. I have used fermidirac distribution for solving the equations, but one can include more model as per need.
    • models fermidirac
      Till now there has been specification of the device.
  8. Method statement specifies the process by which it solves these complex heavy equation corresponding to the models that you have activated above and it is solved by numerical methods. I have chosen newton method to solve and maximum iteration steps of 100.
    • method newton maxtraps=100
  9. First we would solve at all 0 volt bias to get the initial solution which is done by ‘init’ statement and save this structure file.
    • solve init
      save outf=Ox300nm_Gworkf4.1eV_Id-Vgs_L20u_Equilb.str
  10. Now one can solve at different bias voltage and save structure file at that particular bias. You can sweep only one particular voltage at a time (which is also practically done). So reload that structure file (at particular bias point) and a particular node is swept as shown below (point 11).
    • solve vdrain=-1 outf=Ox300nm_L20u_Gworkf4.1eV_Vsd01
  11. Before each sweep statement you would to like to measure current and voltage through each electrode. so surround the solve statement with log statement as shown.
    • load infile=Ox300nm_L20u_Gworkf4.1eV_Vsd01
      log outf=Ox300nm_Gworkf4.1eV_Id-Vgs_L20u_Vsd01.log
      solve vgate=0 vstep=-0.1 vfinal=-40 name=gate
      save outf=Ox300nm_Gworkf4.1eV_Id-Vgs_L20u_Vsd01.str
      log off
      The above example shows that the gate voltage is driven from 0 to -40 volts with source at 0 volts and drain at -1 volts. so it’s basically Id-Vg sweep at constant drain voltage of -1 volts
  12. Finally you can use tonyplot statement to plot any of the saved plot/structure as shown below.
    • tonyplot Ox300nm_Gworkf4.1eV_Id-Vgs_L20u_Vsd01.logOx300nm_Gworkf4.1eV_Id-Vgs_L20u_Vsd01
  13. Finally quit statement.
    • quit

Hope this helps. Contact back for more.


Internship Hunt

Among engineering college students there is always a fuss about third year internships. Everyone wants to get a lucrative offer and good place to work during summer. I also had high expectations in fifth semester during my third year. In IITK, the internship process starts in early August when the companies come and take various rounds like GDs, written tests, interviews, essays, etc to shortlist the students. Initially [till Sept. 2013] I couldn’t make it to any of the reputed companies like DB, ITC, etc. After which, I decided I would go for academic internships.

I already did a research project during summer 2013 in IITK under a EE professor, which helped to prepare my application and molded my interest. There had been a lot of sessions by our seniors about how to apply for university internships. Here, I would explain the options that are available to avail university internships.

  1. Internship program – One can check for university website for International scholars program and apply in it. Most of the good universities have internship programs for foreign students. One can google something like “CMU summer internship”, “IITK summer program”, etc. (Keywords: “college name”,”summer”,”internship”, “fellowship”, “research”) So you can prepare your application according to instructions on the website and wait for the results. The general requirement is good GPA, previous project and research experience, good recommendation and personal essay. Each program has their own criteria of selection, so go through every aspect to make your application strong.
  2. Contacting Professors personally – One can directly contact professor of your interest and ask if there is any position for internship student. This is very cumbersome task. As per my understanding one needs to follow these instructions to increase her/his probability of selection.
    1. Write down all of your previous projects, research experience and interest, that you have done in undergrad. This should be extensive.
    2. Filter down your interest to few topics in which you would like to pursue research.
    3. Make a good academic resume.
    4. Look for professors across the world who are working in your field on interest. Suppose you want to on image processing, then google something like “image processing XYZ university computer science department”. Other way is to read recent research papers on that topic and contacting the authors. So after few iterations, it will give the list professors who are working in that specific area. Scroll through the profile/webpage of each professor and spend at least 30 minutes/1 hour to understand what he/she is currently working on. This can be done through reading his/her recent paper, looking onto the webpage thoroughly, may be talking to current graduate students, etc. This will give you the insight of the group. Once you investigate few papers, that will definitely create curiosity (or a new idea itself!) in your mind.
    5. After this background research, you can email the professor (prefer to email from your college email ID not gmail, yahoo, etc).
    6. There is no fixed email format but please do follow all the etiquette and be precise in your words. In my case I used to first introduce myself and my purpose of sending the email. From the background study that you have done before, try to explain your interest and how did you develop it. Why are you emailing that particular professor only (here you can cite his papers and elaborate upon the results which fascinated you and which topic would you like to explore more) and talk about the current research. Then you can write about your previous experience and it would be wonderful if you have your own idea for the project. If that is the case then, attach total description of the proposal in a separate PDF file. This increases your chances manifolds. Also attach a copy of your resume. 
    7. As professors might be busy, so you should wait at least a week for the reply. If you still don’t get the response, you might want to send a gentle reminder. If there is still no response then you can assume the professor is not interested and don’t send any further emails. Many times it happens that a professor is willing to take you as intern but there is no funding to support you, then you have to arrange funding on your own (you can mention it in your email if you are self sufficent).
    8. Please don’t spam the inbox of professors, as it deteriorates the college’s reputation and it is timewaste for both. Write to each professors personally and spend time on your email. This might be time taking, but fruitful. Most of the professor would reply if you have written the email genuinely.
  3. Contacting companies: You can directly contact the companies where you would like to intern and follow the HR instruction afterwards. This process might be time taking due to delayed response of the company but it could be escalated if someone from inside the company could refer you. Don’t contact the the companies who are already being invited by your placement team.

I got offer through amalgam of first and second mode to HKUST [program link].

Other useful resources:

[1] – Quora link for Internships

[2] – Quora link for cover letters