Macroporous silicon Pore growth modelling & simulation A DegreeThesis Submitted to the Faculty of the Escola Tècnica d'Enginyeria de Telecomunicació de Barcelona Universitat Politècnica de Catalunya by Alfons Martín Torres In partial fulfilment of the requirements for the degree in SCIENCE AND TELECOMMUNICATION TECHNOLOGIES ENGINEERING Advisor: Angel Rodriguez Martinez Barcelona, June 2014
1 Abstract This thesis is based in obtaining a MatLab software capable of reproducing the growth of macro porous in silicon crystals under certain constrains. The first main issue is the lack of information related to this topic, as there has not been a lot of research into this area. So we gathered all the available information we had to comprehend the process and be able to know how the software should behave. We developed three programs and faced the target by different approaches, basing them in the theoretical knowledge we have about how they work. Each different program has its own peculiarity and its pros and cons. Nevertheless, each version provided useful information for the next try. At the end, we reached a point where the simulation program seemed to be working, but due to the deadline we ran out of time to fully implement the code.
2 Resum Aquesta tesi es basa en l’obtenció d’un programa Matlab capaç de reproduir el creixement dels macro pors en cristalls de silici sota certes restriccions. El principal inconvenient va ser la manca d’informació relacionada amb aquest tema, ja que no s’ha realitzat gaire recerca sobre aquest tema. Per això vam recopilar tota la informació disponible per a poder entendre com havia d’actuar el programa. Hem desenvolupat tres programes i encarem l’objectiu en diferents enfocaments, basant-nos en els coneixements teòrics que tenim sobre com funcionen. Cada programa té la seva característica singular i els seus pros i contres. No obstant, cada versió aportava nova informació útil per al següent intent. Finalment, vam arribar a un punt on el programa semblava començar a funcionar, peró degut a la limitació de temps no va quedar temps a poder completar el codi.
3 Resumen Esta tesis se basa en la obtención de un software MatLab capaz de reproducir el crecimiento de macro porosa en cristales de silicio bajo ciertas restricciones. El primer inconveniente principal fue la falta de información relacionada con este tema, ya que no ha habido mucha investigación sobre este tema. Hemos desarrollado tres programas y los afrontamos desde distintos enfoques, basándose en los conocimientos teóricos que tenemos acerca de cómo funcionan. Cada programa diferente tiene su propia peculiaridad y pros y contras; sin embargo, con cada versión aportaba información útil para el siguiente intento. Finalmente, llegamos a un punto donde el programa parecía empezar a funcionar, pero debido a la limitación temporal no tuvimos tiempo de completar el código.
4 Dedication: I would like to dedicate this project to my family, who have always been supportive with my decisions and the path I chose. A special call to all my university friends must be done; they were there all the road since we began and shared this fantastic moment of our lives.
5 Acknowledgements Angel Rodriguez, my project tutor, was my main source of information and inspiration for this project. He provided help whenever I required and kept a record of how was the project going all the time. Didac Vega, the doctoral student who helped me, especially at the hard moments at the beginning of the project, was also very helpful and willing to help when it was necessary.
6 Revision history and approval record Revision Date Purpose 0 06/10/2015 Document creation 1 dd/10/2015 Document revision DOCUMENT DISTRIBUTION LIST Name e-mail Alfons Martín Torres
[email protected] Angel Rodriguez Martinez [email protected] Didac Vega Bru [email protected] Written by: Reviewed and approved by: Date 06/10/2015 Date 16/10/2015 Name Alfons Martín Torres Name Angel Rodriguez Martinez Position Project author Position Project Supervisor
7 Table of contents Abstract .............................................................................................................................. 1 Resum ................................................................................................................................ 2 Resumen ............................................................................................................................ 3 Acknowledgements ............................................................................................................ 5 Revision history and approval record ................................................................................. 6 Table of contents ................................................................................................................ 7 List of Figures ..................................................................................................................... 8 List of Tables ...................................................................................................................... 9 1. Introduction ................................................................................................................ 10 1.1. Statement of purpose ........................................................................................... 10 1.2. Requirements and specifications ....................................................................... 11 1.3. Methods and procedures ................................................................................... 11 1.4. Work plan ........................................................................................................... 12 1.5. Gantt diagram .................................................................................................... 14 1.6. Final derivations ................................................................................................. 15 2. State of the art of the technology used or applied in this thesis: ............................... 16 2.1. Different types of silicon pores ........................................................................... 16 2.2. Explanation on how do silicon macroporous grow ............................................. 17 3. Methodology / project development: ......................................................................... 18 3.1. Background knowledge ...................................................................................... 18 3.2. Program creation ................................................................................................ 21 3.2.1. Pore function ............................................................................................... 21 3.2.2. Charging area ............................................................................................. 23 3.2.3. Growth function v1 ...................................................................................... 24 3.2.4. Growth function v2 ...................................................................................... 26 3.2.5. Growth v3 .................................................................................................... 29 4. Results ...................................................................................................................... 33 5. Budget ....................................................................................................................... 35 6. Environment Impact .................................................................................................. 36 7. Conclusions and future development: ....................................................................... 37 Bibliography ...................................................................................................................... 38 Appendices ....................................................................................................................... 39 Glossary ........................................................................................................................... 44
8 List of Figures Figure 1: Pore type definition............................................................................................16 Figure 2: Initial pore .........................................................................................................18 Figure 3: Hole allocation...................................................................................................18 Figure 4: Growth area and result......................................................................................19 Figure 5: Alpha..................................................................................................................19 Figure 6: Estimated pore with constant current.................................................................19 Figure 7: Estimated pore with variable current..................................................................20 Figure 8: 2 points from 1...................................................................................................24 Image 1: Gantt diagram....................................................................................................14 Image 2: Real pore with constant current.........................................................................19 Image 3: Real pore with constant current.........................................................................20 Image 4: Case 1 – Pyramidal............................................................................................22 Image 5: Case 2 - Pagoda................................................................................................22 Image 6: Case 3 – Sinusoidal...........................................................................................22 Image 7: Charging area....................................................................................................23 Image 8: Growth v1 first iteration......................................................................................25 Image 9: Growth v1 second iteration................................................................................25 Image 10: Growth v2 first iteration (0.2)............................................................................27 Image 11: Growth v2 5th iteration (0.2).............................................................................27 Image 12: Growth v2 first iteration (0.5)............................................................................28 Image 13: Pos value in growth v2.....................................................................................28 Image 14: Growth v3 first iteration....................................................................................30 Image 15: Growth v3 10th iteration...................................................................................30 Image 16: Growth v3 radius 2...........................................................................................31 Image 17: Growth v3 current 2..........................................................................................31 Image 18: Growth v3 distance 0.5....................................................................................32
15 1.6. Final derivations When we discussed the project, the software development was intended to last for 2 months and once it was functional, try to obtain an equation that described how the pore grew seeing how the code performs the growth. After this start seeing how well it represented the reality simulation crystals under the same condition they were produced. Once we got the results propose enhancements. In spite of this, as we did not obtain the software in the first try, we had to keep on pushing and creating new versions. Third version seemed to be a good approach with interesting results, but we run out of time to fully develop it, therefore we had no time for the following steps.
16 2. State of the art of the technology used or applied in this thesis: 2.1. Different types of silicon pores There are 3 different types of silicon pores: Microporous, mesoporous and macroporous. They are different depending on the procedure of fabrication, according to the following table (extracted from reference [1]): Figure 1: Pore type definition The most common and studied type is the macro one, this type of pore is ruled by quantum physics. There are scientific teams that are specialized in this type of porous materials and work with them. The mesopore is an intermediate pore between the micro and macro. As they are the midpoint between them, they share properties with both of them. Despite this, they are a very rare type of pore which properties are fully studied and no practical use has been given to them up to date. The macropore type is the one that we are working with. They are ruled at most by physics and little research has been performed into them. We know that they can be very good filters and signal selectors. Nonetheless, as we know little about them, they are hard to produce, thus leaving them in an almost theoretical application.
17 2.2. Explanation on how do silicon macroporous grow A piece of silicon, with some holes to be used as guides for the creation of the pores, is put in an HF (Hydrofluoric acid) solution. Once the scenario is ready, the silicon is back-illuminated in order to start the reaction as it drain the electrons leaving the holes in the surface in contact with the HF. This phenomena creates an area from where wholes are drained from the acid that depends on the doping current and voltage applied, the space region generated to drag the holes varies. The whole procedure is explained more detailed in reference [1] from bibliography.
18 3. Methodology / project development: 3.1. Background knowledge First of all, we began by understanding the way pores grow under the effects described in section 2. At the beginning we have a hole we created as a guide, and at the moment we add some lighting, the charge area appears as in the following figure 2. In this picture, the black line represents the original hole and the blue line the charge area generated when the silicon is back illuminated. The shape of the pores can be different depending on the shape we desire to obtain. However, the typical shape is pyramidal either with a sharp or rounded top. The main shape of the charge area is circular with the centre located just below the top of the pore, nevertheless, it may change as the pore grows, becoming more thin or oval shaped, thus losing its circular shape. Once the process begins, holes come to the charging area, and once they reach it, they fall in an almost perpendicular direction towards the pore. For our simulation we will consider them to travel in a perpendicular direction towards the pore and allocate where they meet. This leaves us with a hole allocation like the figure 3 is showing. This is the idea we will use in our program to describe the trajectory that our holes will follow. As it can also be seen in this figure, the holes come in straight lines towards the pore until they encounter the charging area. As the charge area is almost circular and close to the top, most of the holes will end up in the upper part. We must also consider that the amount of holes per minute that come to the charging area is directly related to the current applied to the silicon. An uneven growth appears, that can be seen in the figure 4, leaving the area below the horizontal red line (parallel to the floor) unchanged. This is because the area from base till the horizontal red line is out of reach of the charge area. Figure 3: Hole allocation Figure 2: Initial pore
19 As the charge area is circular, we also observe that both sides of the vertical red line are symmetrical. The position of the horizontal red line depends on many factors, like the current, the pore shape and the proximity of neighbour pores. Symmetry is a key factor in the pores creation and one of the most important aspects to consider when simulating the pore growth. Therefore, by taking into account the constraints mentioned, we can expect the amount on holes received in the pore to be like the green area in figure 3, this means that the holes density is just the current multiplied by the cosine of the angle formed by the tangent line to the charging area and the red line. Figure 5 shows the angle definition. Where the yellow line is the line tangent to the point we are considering (the green spot), and the red line is parallel to the floor. Alpha from now on, is the angle formed between both of them. Once we add the original pore and the amount of holes (green line), we obtain the first iteration of our pore creation, which is the yellow line in figure 4. After iterating multiple times following the method stated until now, we can expect the resulting pore to be like figure 6. Image 2 shows how a real pore made under constant current looks like. Figure 6: Estimated pore with constant current Figure 5: Alpha Figure 4: Growth area and result Image 2: Real pore with constant current 2 µm
20 The shape obtained in figure 7 is from making the current fluctuate in time and the results vary depending in how we change it. This process is described in reference [1]. We also can see a real pore made with variable current in Image 3. We must also mention another case, it happens when current is too high or pores are too small, in this situation we are making a phenomena called electropolishing. The effects of this process are that the surface becomes smooth as time passes and the consumption of silicon is lineal in the whole block. Despite also being interesting, this is not a case of our study and we will avoid it as much as possible. Image 3: Real pore with variable current Figure 7: Estimated pore with variable current
21 3.2. Program creation Once we understood how the pores grow and how to proceed, we started preparing the code in MatLab in order to build the simulator. The first major decision we had to take was the way we defined our workspace. We could choose between a vector approach and a matrix approach. Vector approach Matrix approach Every element is represented by a vector of 2D (x and y) and the space is infinite. All elements are set together in a limited space, determined by a matrix. Movement and directions have to be computed and transferred from one vector to another. Movement and directions are easily allocable by setting a scale, like 0 for no holes or HF area and 100 where the holes are fully present (pore itself). Requires many auxiliary variables. Few auxiliary variables required. More detailed and precise. Limited in options and low flexibility. Table 5: Vector vs. Matrix Once we considered all the pros and cons of each approach, we decided to go with the vector one. The main reason to choose it is its precision and the more ease of interpreting and working with vectors instead of a full matrix, despite being quite more complex and requiring more calculus to be done. In our vector approach, every element (pore, charging area...) is defined using a 2D vector, where the first row is the x component and the second row the y component. Note: All program codes are present in the appendices with the name according to the subtitle they belong to. 3.2.1. Pore function First thing we had to create was the initial pore, se we started by creating a function called “poro” which creates a matrix with the required amount of points for the resolution desired, in function of the needs and capabilities of each case. As we know that not all initial pores have the same shape, we have created a selector which allows you to choose between the different types of initial pores. We have only created 3 which are the most common ones, but more options can be easily added. We will only simulate one pore for simplicity and because for our case we will only study the growth of the pore itself. To have a common procedure, we will also fix the width of all our pores from 0 to 1 regardless the resolution. Inputs: - type: Selects the shape of the pore at the output. - x: Amount of points the pore will have. Outputs: - z: 2D initial pore vector.
22 The pores obtained in each case are the following: Image 4: Case 1 - Pyramidal Image 5: Case 2 - Pagoda Image 6: Case 3 - Sinusoidal In all our simulation images we will use the 3rd case pore, the sinusoidal one, as it is the most commonly used and easier to work with, with 200 points of resolution. We will refer to it as “x” from now on.
23 3.2.2. Charging area After having the initial pores, we require to create the charging area. We will consider the simple case and use a sinusoidal to create a circular charging area slightly below the top of the pore. Inputs: - x: Pore that defines the charging area. - p: Number of points of the charging area. - r: Radius from the centre to the charging area. - dist: Distance of the centre of the charging area below the top of the pore. Outputs: - z: 2D charging area vector. The resulting charging area is shown in Image 7. Image 7: Charging area Note that we must flip the vector to make it consistent with the pore.
24 3.2.3. Growth function v1 Once we have all the elements ready to work with, we start to make the calculus required to make it grow. This is the critical part of the project as we must fulfil the growth requirements while having a functional program. In this very first approach, we do not use the “areacarrega” function; we calculated it in a very basic way, just taking the silhouette of our pore and expanding it using the normal to each point and adding the input radius. The main idea behind this was to have a charging area which was adaptive to the changing shape of the pore. However, this idea became obsolete just by thinking that when the pore is big enough, those parts under the main lobe shouldn’t receive any current. To bypass this excess of charging area, we created a function that located the top lobe of the pore and only sent the points that should receive holes. However, as this part wasn’t implemented finally, it can be found in the annex for further use. We also considered the loss of resolution to be a possible issue to avoid; that is why we made in the growth allocation part a subdivision 2:1 per each point. The theory behind this is that each line has one normal and it is defined by two points, so each point can be assigned two normal lines, which creates 2 different points. Figure 8 is an example of how this principle works. Inputs: - x: Original pore. - r: Radius of the charging area. - j: Current in the charging area. Outputs: - z: Pore after growing Figure 8: 2 points from 1
31 Nonetheless, as this version finally outputs something similar at what we expected, we can try other functions of our program, like different current, charging area radius or distance from the charging area to the pore used. Image 16 is a pore created using a radius 2; input parameters (x,2,1,0.2,200) Image 16: Growth v3 radius 2 Image 17 represents a pore with double current; input parameters (x,1,2,0.2,200) Image 17: Growth v3 current 2 First of all, the increase in the current (Image 17) shows a more rapid growth of the pore. This is the same effect observed when increasing the radius of the charging area in Image 16, this is logical as both effects imply an increase in the amount of holes that reach the pore per iteration.
32 Image 18 is the simulation of a pore with distance peak to centre 0.5; input parameters (x,1,1,0.5,200) Image 18: Growth v3 distance 0.5 After all tests performed, the changes in the input parameters behave as expected. Finally, in Image 18, we can see that increasing the value of dist, thus reducing the height of the charging area, increases the pore surface affected by the growth at the same time the increase is reduced. We can say that we are close to having the simulator we were trying to obtain, just a few corrections had to be done in order to have the growth straight.
33 4. Results If we get back the table of objectives we can review if they were achieved and the conclusions obtained. Key: Green = Achieved, Yellow = Partially achieved, Red = Not achieved Project requirements: Develop a theoretical model for pore growth in macroporous silicon Take into account the effect the following physical phenomena Hole injection and diffusion Space charge zone modulation with current and other factors Current saturation and electropolishing regime Electrolyte concentration variation Develop a simulation software piece capable of predicting the pore profile for a single cell using the above model Obtain an approximate growth equation Table 6: Requirements results Project technical specifications: Software developed in a MATLAB environment. Problem parameters should be the minimum possible Current Voltage Radius Dynamic non-linear effects must be characterized in a first order approach. Single cell (one pore) for the initial model 2D geometry Fast computation Table 7: Technical specifications results
34 Optional: 3D geometry Table 8: Optional results After reviewing the objectives, we have achieved most of them. In spite this, our main objective, which was developing the MatLab program, was not fully achieved. We have obtained a close to our objectives code, but due to lack of time, not fully functional. Nevertheless, we were able to test the program and see that many constrains we imposed to our program worked pretty well. We will make a quick review of them: - Program is MatLab based and with a fast computation (less than 2s per iteration) due to the light and efficient code we used. - We use a 2D simulation for single pore and characterized all non-linear effects (p.e. hole trajectory) with first order approaches. - We can modify 2 out of 3 parameters and see a modification in our pore as expected: Current and radius.
35 5. Budget As our project is to develop software in MatLab, our budget is simply the time spent plus the cost of a MatLab licence. Expense Amount Price per unit Total cost MatLab Education Licence 1 500€ 500€ Junior engineer working hours 300 8€ 2400€ Total 2900€
36 6. Environment Impact Our project was computer based, so the environment impact is almost zero if we just consider the electricity consumed. On the other hand, if we consider the crystals made to learn how pores grow, the impact they have when created is low. We can consider it to be the same as any other electronic device requires to be produced, but actually exists. To avoid this impact, we reused already made crystals to learn from them.
37 7. Conclusions and future development: We successfully started the project by understanding and seeing the needs of our program to simulate the process described by macroporus during their formation. There is not a lot of information in the literature about this topic, so this was achieved through seeing how they behave when created and the knowledge of Angel Rodriguez and Didac Vega, after several years working with them. Despite this, when developing the program, due to the constriction imposed by this process, we required to take different approaches for our growth in order to solve the issues every approach showed. In the first version, as it was a very ambitious one, we required the resolution to grow. However, this functionality lead to a lot of trouble and required a lot of further development. We also worked with an adaptive charging area, which also showed to be a focus of future issues and some incoherence. Due to all of this, we discarded this version. While working with the second version, we changed to a pore approach, which lead to lots of calculus and values to be computed to assign the holes. All of this made the assignation to be erratic and not consistent. Finally, we chose to work with a more theoretical version and use the empirical expertise we had to develop something functional, always keeping in mind the constrictions we had. At the end, we had an interesting program which required a few adjustments in order to work as expected. However, due to the data limit, we could not adjust the code to have the desired program. We also saw that many of the functionalities included in our software worked as expected. Despite this, more functions should be added and further development must be done at the program to be fully functional. In addition, the possibility of creating a 3D simulator, instead of a 2D, would be a huge improvement and successfully obtaining an equation that describes the growth of the pore a great advance in this field.
38 Bibliography [1] S. Matthias, F. Müller, J. Schilling, U. Gösele. “Pushing the limits of macroporous silicon etching “. In Applied Physics A, no 80, pp. 1391-1396. 2005, doi: 10.1007/s00339-004-3193-x. [2] V. Lehmann. “The physics of macroporous silicon formation”. In Thin Solid Films, no 255, pp. 1-4. 1995, doi: 0040-6090(94)05620-x [3] Todorov, T.; Rodriguez, A.; Marsal, L.; Pallares, J.; Alcubilla, R. “Macroporous silicon: A versatile material for 3D structure fabrication”. Sensors and actuators A. Physical, vol 141, no 2. pp. 662-669. 2008. [4] Todorov, T.; Garin, M.; Rodriguez, A.; Marsal, L.; Alcubilla, R. “Tuning the shape of macroporous silicon”. Physica status solidi A. Applications and materials science, vol 204, no 10. pp 3237-3242. 2007. [5] Mathworks official help page and forums <www.mathworks.com>
39 Appendices Pore function function z = poro(type,x) z = zeros(2,x); if type == 1 % pyramidal for i = 1:x if i <= x/2 z(:,i) = [i/x 2*i/max(x)]; end if i > x/2 z(:,i) = [i/x 2*(x-i)/max(x)]; end end end if type == 2 % pagoda for i = 1:x if i <= x/2 z(:,i) = [i/x log(i)/log(max(x)/2)]; end if i > x/2 z(:,i) = [i/x log(x-i)/log(max(x)/2)]; end end end if type == 3 % sinusoidal for i = 1:x z(:,i) = [i/x sin(pi*i/x)]; end end Charging area function function z = areacarrega(x,p,r,dist) for i = 1:(p) z(:,i) = [r*cos(pi*i/p)+0.5 max(x(2,:))+r*sin(pi*i/p)-dist]; end z = fliplr(z);
40 Growth v1 function z = growth(x,r,j) plot(x(1,:),x(2,:)) % Plot input pore hold on ixmin = 0; ixmax = length(x); for i = 1:(length(x)-1) dx(i) = x(1,i+1) - x(1,i); dy(i) = x(2,i+1) - x(2,i); end m = dy./dx; % slope v = [dy;-dx]; % perpendicular t = [dx;dy]; % tangent vn = -v./repmat(l,2,1); % normal value per line pn(:,1) = vn(:,1); for i = 2:(length(x)-1) pn(:,i) = 0.5*vn(:,i) + 0.5*vn(:,i-1); end pn(:,length(x)) = vn(:,length(x)-1); % normal value per point a = 1; % Charging area calucator for i = 1:(length(x)-1) y(:,a) = x(:,i) + vn(:,i) * r; a = a + 1; y(:,a) = x(:,i+1) + vn(:,i) * r; a = a + 1; end plot(y(1,:),y(2,:),’Color’,’Green’) % Plot charging area hold on for i = 1:length(y) - 1 % Growth amount calculation if(ixmin < y(1,i) < ixmax) d(i) = y(1,i+1) - y(1,i); end end s = sqrt(dot(d,d)); l = (d * j) / s; z = x; z(:,1) = x(:,1) + pn(:,1) * 0.5*l(1); % Growth allocation a = 2; for i = 2:(length(x)-1) z(:,a) = x(:,i) + pn(:,i) * (0.5*l(a-1) + 0.5*l(a)); a = a + 1; z(:,a) = x(:,i+1) + pn(:,i) * (0.5*l(a-1) + 0.5*l(a)); a = a + 1; end z(:,length(y)) = x(:,length(x)) + pn(:,length(x)) * 0.5*l(length(y)-1); plot(z(1,:),z(2,:),’Color’,’Red’) % Plot output pore