Sentaurus Process User Guide
Sentaurus Process User Guide
Guide
Version H-2013.03, March 2013
Copyright and Proprietary Information Notice
Copyright © 2013 Synopsys, Inc. All rights reserved. This software and documentation contain confidential and proprietary
information that is the property of Synopsys, Inc. The software and documentation are furnished under a license agreement and
may be used or copied only in accordance with the terms of the license agreement. No part of the software and documentation may
be reproduced, transmitted, or translated, in any form or by any means, electronic, mechanical, manual, optical, or otherwise, without
prior written permission of Synopsys, Inc., or as expressly provided by the license agreement.
Destination Control Statement
All technical data contained in this publication is subject to the export control laws of the United States of America.
Disclosure to nationals of other countries contrary to United States law is prohibited. It is the reader’s responsibility to
determine the applicable regulations and to comply with them.
Disclaimer
SYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH
REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Trademarks
Synopsys and certain Synopsys product names are trademarks of Synopsys, as set forth at
[Link]
All other product or company names may be trademarks of their respective owners.
Synopsys, Inc.
700 E. Middlefield Road
Mountain View, CA 94043
[Link]
Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Smoothing Implantation Profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Automatic Extraction of Implant Moments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Required Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Optional Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Output Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Utilities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Loading External Profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Loading Files Using [Link] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Automated Monte Carlo Run. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Multithreaded Parallelization of 3D Analytic Implantation . . . . . . . . . . . . . . . . . . . . . . 185
Multithreaded Parallelization of Sentaurus MC Implantation . . . . . . . . . . . . . . . . . . . . 185
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
Charge Attractions and Repulsions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Fermi-Level Computation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Updating Charged States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
Electronic Concentrations and Charge-State Ratios. . . . . . . . . . . . . . . . . . . . . . . 485
Mobile Particles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
Pairing and Breakup Reactions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
Electric Drift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
Bandgap Narrowing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Narrowing due to Dopant Concentration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Narrowing due to Strain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
Narrowing due to Presence of an Alloy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
Bandgap Narrowing Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
Charge Model and Boron Diffusion Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Charge Model and Arsenic Diffusion Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
Interfaces and Surfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
Different Interface Models. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
Interfaces for Self-Silicon Point Defects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
Capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
Emission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
Stress. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
Alloys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
Oxidation-enhanced Diffusion (OED) Model . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
Interfaces for Impurities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
Simple Material Side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
Full Material Side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
Oxidation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
Epitaxial Deposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
Including New Impurities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
Impurities Diffusing without Pairing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
Normal Diffusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
Diffusion without Pairing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
Models Used Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
Particle Distribution Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
Cluster Distribution Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Defect Activity Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Interactions Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
PointDefect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
AmorphousPocket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
ThreeOneOne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
ImpurityCluster. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
Event Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
PointDefect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
AmorphousPocket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
ThreeOneOne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
ImpurityCluster. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
Amorphous Defects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
Lattice Atoms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
Simple Materials. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
Extracting KMC-related Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
Transferring Fields from KMC to Continuum Information: deatomize . . . . . . . . . . 524
Smoothing Out Deatomized Concentrations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
Adding and Obtaining Defects in Simulations: add, [Link], and [Link] . 527
Using the Sentaurus Process Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
The select, print, WritePlx, and plot Commands . . . . . . . . . . . . . . . . . . . . . . . . . 529
The init Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
The struct Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
The load Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
The deposit Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
The diffuse Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
Nonatomistic Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
Atomistic Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
Calling Directly the Sentaurus Process KMC Kernel . . . . . . . . . . . . . . . . . . . . . . . . 531
Writing and Displaying TDR Files with KMC Information . . . . . . . . . . . . . . . . 532
Inquiring about KMC Profiles, Histograms, and Defects . . . . . . . . . . . . . . . . . . . . . 535
The histogram Option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
The profile Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
The supersaturation Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
The defects Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
The dose Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
The materials Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
The acinterface Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
Common Dopant and Point-Defect Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
Advanced Calibration for Sentaurus Process KMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
PolyHedronSTIaccv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
PolyHedronCylinder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
PolygonWaferMask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
PolyHedronEpiDiamond . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740
The mask and photo Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741
Photoresist Masks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744
Boolean Masks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744
Line Edge Roughness Effect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746
Geometry Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 748
Refinement Handling during Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . 749
Contact Handling during Transformation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749
The transform reflect Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 750
Refinement Handling during Reflection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 750
The transform stretch Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 750
Refinement Handling during Stretch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751
The transform cut Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751
Refinement Handling during Cut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 752
The transform flip Command and Backside Processing . . . . . . . . . . . . . . . . . . . . . . 752
Refinement Handling during Flip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753
The transform rotate Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753
Refinement Handling during Rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
The transform translate Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
MGOALS Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
MGOALS Boundary-moving Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
MGOALS Boundary-moving Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
MGOALS 3D Boundary-moving Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758
Summary of MGOALS Etching and Deposition Algorithms . . . . . . . . . . . . . . . . . . 759
MGOALS Backward Compatibility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
Boundary Repair Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
Inserting Segments in One Dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
Inserting Polygons in Two Dimensions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
Inserting Polyhedra in Three Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
Reading Polyhedra from a TDR Boundary File . . . . . . . . . . . . . . . . . . . . . . . . . . 763
Creating a Rectangular Prism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
Extruding a 2D Polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
Creating a Polyhedron from Its Constituent Polygonal Faces . . . . . . . . . . . . . . . 764
Sentaurus Structure Editor Interface: External Mode. . . . . . . . . . . . . . . . . . . . . . 764
Inserting Polyhedra. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765
3D Structure Assembly in MGOALS3D Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766
Multithreading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
Sentaurus Structure Editor Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
icwb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 916
[Link] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919
[Link] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921
[Link] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 922
[Link] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924
implant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 926
init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939
insert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942
integrate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 945
interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948
interpolate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 950
KG2E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 952
KG2nu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 953
kmc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 954
KMC2PDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 966
layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 967
line. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 969
line_edge_roughness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971
load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 973
LogFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976
mask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977
mater . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 982
math. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984
mgoals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992
paste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997
pdbDelayDouble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 998
pdbdiff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999
pdbDopantLike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1000
pdbExprDouble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1001
pdbGet and Related Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1002
pdbIsAvailable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004
pdbSet and Related Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1005
pdbUnSet-related Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008
PDE2KMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009
photo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1010
plot.1d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011
plot.2d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013
[Link]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1016
[Link] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1021
point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1022
[Link] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023
polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1024
polyhedron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027
PowerDeviceMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029
print.1d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1030
[Link] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1032
profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033
RangeRefineboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1036
reaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1038
refinebox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1040
region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1047
sde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1050
select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1053
SetAtomistic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056
SetDFISEList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057
SetDielectricOxidationMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058
SetFastMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1059
SetPlxList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1060
SetTDRList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061
SetTemp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1062
SetTS4ImplantMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1063
SetTS4MechanicsMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1064
SetTS4OxidationMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1065
SetTS4PolyMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1066
SheetResistance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1067
simDelayDouble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1068
simGetBoolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1069
simGetDouble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1070
simSetBoolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1071
simSetDouble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1072
slice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1073
smooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075
solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076
sptopo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078
stdiff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1079
strain_profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1080
stressdata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1081
StressDependentSilicidation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1084
strip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1085
struct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1086
substrate_profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090
tclsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1091
temp_ramp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1093
term . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1099
topo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1101
transform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1102
[Link]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1106
translate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1109
UnsetAtomistic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1110
UnsetDielectricOxidationMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111
update_substrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1112
WritePlx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1113
Sentaurus Process simulates all standard process simulation steps, diffusion, implantation,
Monte Carlo (MC) implantation (Taurus MC or Crystal-TRIM), oxidation, etching, deposition,
and silicidation. Capabilities in 3D include meshing of 3D boundary files through the
MGOALS library, implantation through the Imp3D module from FhG Erlangen, mechanics
(stress and strain), diffusion, a limited capability for 3D oxidation, and an interface to
Sentaurus Structure Editor, which is the 3D geometry editing tool based on the ACIS solid
modeling library.
Sentaurus Process uses the Alagator scripting language that allows users to solve their own
diffusion equations. Alagator can be used to solve any diffusion equation including dopant,
defect, impurity, and oxidant diffusion equations. Simulation of 3D diffusion is handled exactly
as for 1D and 2D. Therefore, all the advanced models and user programmability available in
1D and 2D can be used in 3D. In addition, a set of built-in calibrated parameters is available
with Advanced Calibration.
■ Chapter 14 discusses numerics-related issues, time integration methods, and the linear
solvers used in Sentaurus Process.
■ Appendix A lists the available commands, including descriptions, options, and examples.
Audience
This user guide is intended for users of the Sentaurus Process software package.
Related Publications
For additional information about Sentaurus Process, see:
■ The TCAD Sentaurus release notes, available on SolvNet (see Accessing SolvNet on
page xxxiii).
■ Documentation available through SolvNet at [Link]
Typographic Conventions
Convention Explanation
{} Braces
[] Brackets
() Parentheses
Bold text Identifies a selectable icon, button, menu, or tab. It also indicates the name of a field or an
option.
Courier font Identifies text that is displayed on the screen or that the user must type. It identifies the names
of files, directories, paths, parameters, keywords, and variables.
Italicized text Used for emphasis, the titles of books and journals, and non-English words. It also identifies
components of an equation or a formula, a placeholder, or an identifier.
Menu > Command Indicates a menu command, for example, File > New (from the File menu, select New).
Customer Support
Customer support is available through SolvNet online customer support and through
contacting the Synopsys support center.
Accessing SolvNet
SolvNet includes an electronic knowledge base of technical articles and answers to frequently
asked questions about Synopsys tools. SolvNet also gives you access to a wide range of
Synopsys online services, which include downloading software, viewing documentation, and
entering a call to the Synopsys support center.
To access SolvNet:
1. Go to the SolvNet Web page at [Link]
2. If prompted, enter your user name and password. (If you do not have a Synopsys user name
and password, follow the instructions to register with SolvNet.)
If you need help using SolvNet, click Help on the SolvNet menu bar.
Acknowledgments
Sentaurus Process is based on the 2000 and 2002 releases of FLOOPS written by
Professor Mark Law and coworkers at the University of Florida. Synopsys acknowledges the
contribution of Professor Law and his advice in the development of Sentaurus Process. For
more information about TCAD at the University of Florida, visit
[Link]
Sentaurus Process Kinetic Monte Carlo is based on DADOS written by Professor Martin Jaraiz
and coworkers at the University of Valladolid, Spain. Synopsys acknowledges Professor Jaraiz’
contribution and advice. For more information, visit [Link]
[Link].
This chapter describes how to run Sentaurus Process and guides you
through a series of examples.
This chapter is not a comprehensive reference but is intended to introduce some of the more
widely used features of Sentaurus Process in a realistic context. For new users, the sections
Interactive Mode on page 44, Syntax for Creating Input Command Files on page 48, and
Creating the Structure and Initializing Data on page 69 would be useful to refer to while
reading this chapter. For more advanced users who need to adjust model parameters, Like
Materials: Material Parameter Inheritance on page 55 would be useful. For the TCAD
Sentaurus Tutorial and examples, go to:
$STROOT/tcad/$STRELEASE/Sentaurus_Training/[Link]
where STROOT is an environment variable that indicates where the Synopsys TCAD
distribution has been installed, and STRELEASE indicates the Synopsys TCAD release number.
Overview
Sentaurus Process is a complete and highly flexible, multidimensional, process modeling
environment. With its modern software architecture and extensive breadth of capabilities,
Sentaurus Process is a state-of-the-art process simulation tool. Calibrated to a wide range of
the latest experimental data using proven calibration methodology, Sentaurus Process offers
unique predictive capabilities for modern silicon and nonsilicon technologies.
Sentaurus Process accepts as input a sequence of commands that is either entered from
standard input (that is, at the command prompt) or composed in a command file. A process
flow is simulated by issuing a sequence of commands that corresponds to the individual
process steps. You should place parameter settings in a separate file, which is sourced at the
beginning of input files using the source command.
Several commands allow you to select physical models and parameters, grid strategies, and
graphical output preferences if required. In addition, a special language (Alagator) allows you
to describe and implement your own models and diffusion equations.
Sentaurus Process displays version and host information, followed by the Sentaurus Process
command prompt. You now can enter Sentaurus Process commands at the prompt:
sprocess>
This is a flexible way of working with Sentaurus Process to test individual process steps or
short sequences, but it is inconvenient for long process flows. It is more useful to compile the
command sequence in a command file, which can be run in batch mode or inside Sentaurus
Workbench.
To run Sentaurus Process in batch mode, load a command file when starting Sentaurus Process,
for example:
> sprocess [Link]
For example:
> sprocess -rel G-2012.06
The command:
> sprocess -rel G-2012.06 -ver 1.2 nmos_fps.cmd
starts the simulation of nmos_fps.cmd using the 1.2 version of Release G-2012.06 as long as
this version is installed.
If a command file has been prepared, run Sentaurus Process by typing the command:
sprocess <command_filename>
Alternatively, you can automatically start Sentaurus Process through the Scheduler in
Sentaurus Workbench. By convention, the command file name has the extension .cmd. (This is
the convention adopted in Sentaurus Workbench.)
The command file is checked for correct syntax and then the commands are executed in
sequence until the simulation is stopped by the command exit or the end of the file is reached.
Since Sentaurus Process is written as an extension of the tool command language (Tcl), all Tcl
commands and functionalities (such as loops, control structures, creating and evaluating
variables) are available in the command files. This results in some limitations in syntax control
if the command file contains complicated Tcl commands. Syntax-checking can be switched off
with the command-line option -n, for example:
sprocess -n inputfile
Sentaurus Process ignores character strings starting with # (although Sentaurus Workbench
interprets # as a special character for conditional statements). Therefore, this special character
can be used to insert comments in the simulation command file.
A file with the extension .log is created automatically whenever Sentaurus Process is run from
a command line, that is, outside the Sentaurus Workbench environment. This file contains the
run-time output, which is generated by Sentaurus Process and is sent to standard output. When
Sentaurus Process is run by using a command file <root_filename>_fps.cmd, the output
file is named <root_filename>_fps.log.
When Sentaurus Process is run in Sentaurus Workbench, no log file is created. Instead, the file
<root_filename>_fps.out is generated as a copy of the standard output. For a complete
list of all commands, see Appendix A on page 851.
Example: 1D Simulation
Many widely used process and control commands are introduced in the context of a nominal
0.18 μm n-channel MOSFET process flow. The MOSFET structure is simulated in 1D and
2D, and the processing of the isolation is excluded.
The first argument of the line specifies the direction of the grid. For 1D, this is always x.
The grid spacing is defined by pairs of the location and spacing keywords. The keyword
spacing defines the spacing between two grid lines at the specified location. Sentaurus
Process expands or compresses the grid spacing linearly in between two locations defined in
the line command.
NOTE Units in Sentaurus Process can be specified explicitly by giving the units
in angle brackets. For most cases, the default unit of length is
micrometer. Therefore, the statements location=2.0<um> and
location=2.0 are equivalent. In this section, units are given
explicitly.
You can label a line with the tag keyword for later use in the region command.
The keyword silicon specifies the material of the region. The keywords xlo and xhi take
tags as arguments, which are defined in the line command.
NOTE For 2D and 3D, the additional keywords ylo, yhi, zlo, and zhi are
used to define rectangular or cuboidal regions. In general, the initial
simulation domain can consist of several regions.
Here, the initial boron concentration in the silicon wafer (as defined in the previous region
15 –3
command) is set to 10 cm .
The Sentaurus Mesh meshing engine tries to preserve the initial mesh as much as possible and
only modifies the mesh in the new layers and in the vicinity of the new interfaces.
where:
■ The parameter [Link] determines the grid spacing of the first layer starting
from the interface in micrometers.
■ The parameter [Link].2d determines how fast the grid spacing can
increase from one layer to another. This parameter is unitless.
The gas_flow statement is used to specify the gas mixture. The name keyword defines a
gas_flow record for later use in a diffuse command. The pressure of the ambient gas is set
to 1 atm, and the flows of oxygen and nitrogen are set to 1.2 l/minute and 1.0 l/minute,
respectively.
NOTE Other gas flow parameters, such as ambient gases and partial pressures,
can be defined as well (see gas_flow on page 901 for details).
The thermal oxidation step is started with the diffuse command. Here, the wafer is exposed
to the oxidizing gases, defined in the gas_flow statement, for 20 minutes at an ambient
temperature of 900°C .
NOTE More options, such as temperature ramps and numeric parameters, are
available (see Oxidation on page 603 for details).
Sentaurus Process prints information about the progress of the oxidation step:
Anneal step: Time=40min, Ramp rate=0C/s, Temperature=900.0C
Temperature > minT. Diffusion: On Reaction: On Assembly: Serial
SProcess parallel assembly thread count = 1
Reaction : 0s to 0.0001s step : 0.0001s temp: 900.0C
SProcess Pardiso thread count = 1
Mechanics: 0s to 0.0001s step : 0.0001s temp: 900.0C
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --
Initializing:
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --
Initialization is done.
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --
Diffusion: 0s to 0.0001s step (d): 0.0001s temp: 900.0C
Reaction : 0.0001s to 0.0001712s step : 7.125e-05s temp: 900.0C
Mechanics: 0.0001s to 0.0001712s step : 7.125e-05s temp: 900.0C
Diffusion: 0.0001s to 0.0001712s step (d): 7.125e-05s temp: 900.0C
Reaction : 0.0001712s to 0.0002387s step : 6.741e-05s temp: 900.0C
Mechanics: 0.0001712s to 0.0002387s step : 6.741e-05s temp: 900.0C
Diffusion: 0.0001712s to 0.0002387s step (d): 6.741e-05s temp: 900.0C
...
Reaction : 37.29min to 40min step : 2.714min temp: 900.0C
Mechanics: 37.29min to 40min step : 2.714min temp: 900.0C
Diffusion: 37.29min to 40min step (d): 2.714min temp: 900.0C
The select command chooses a quantity for postprocessing. Selecting 1 is a way to obtain
the material thicknesses.
The layers command prints a list of regions with their respective top and bottom coordinates.
This command also gives the integral over the selected quantity in each region. Having selected
1, the integral equals the thickness:
{ Top Bottom Integral Material }
{ -6.178796082035e-03 3.676329713272e-03 9.855125795306e-07 Oxide }
{ 3.676329713272e-03 2.000000000000e+00 1.996323670287e-04 Silicon }
Here, 3.67 nm of silicon was consumed in the thermal oxidation process, and the final oxide
thickness is 9.85 nm.
NOTE Internally, Sentaurus Process uses centimeters (cm) as the unit for
length.
When you want to omit the oxide growth but OED is not negligible, specification of a reacting
ambient together with the following flag:
pdbSetBoolean Grid [Link] 0
switches on OED without applying velocities to the mesh nodes. This is often used in three
dimensions.
The following code segment simulates oxidation or performs a deposition depending on the
value of the Tcl variable SCREEN:
set SCREEN Grow
if { $SCREEN == "Grow" } {
#--- Growing screening oxide -----------------------------------------
gas_flow name=O2_1_N2_1 pressure=1<atm> flowO2=1.2<l/min> flowN2=1.0<l/min>
diffuse temperature=900<C> time=40<min> gas_flow=O2_1_N2_1
} else {
#--- Depositing screening oxide --------------------------------------
deposit Oxide type=isotropic thickness=10.0<nm>
diffuse temperature=900<C> time=40<min>
}
Implantation
14 –2
To implant arsenic with an energy of 50 keV, a dose of 10 cm , an implant tilt of 7° , and
a wafer rotation 0° , use:
implant Arsenic energy=50<keV> dose=1e14<cm-2> tilt=7<degree> \
rotation=0<degree>
The report shows that due to the nonzero tilt angle, Sentaurus Process adapted the beam dose
so that the total dose deposited on the wafer is as specified. The slice angle denotes the angle
between the simulation plane and the normal to the wafer flat. By default, the simulation
domain is parallel to the wafer flat.
The report shows the integrated doping concentrations for each species and region.
The SetPlxList command defines which solution variables are to be saved in the .plx file.
Here, only the total (chemical) boron and the as-implanted arsenic concentrations are saved. If
the SetPlxList command is omitted, all available solutions are saved in the .plx file by
default.
Besides the file name, here [Link], the WritePlx command also accepts a material
specifier, which restricts the plot to the given material. For 2D and 3D structures, the x-, y-, or
z-coordinates of the 1D cutline must be given.
Figure 1 shows the as-implanted arsenic profiles and the background boron concentration. The
black vertical line marks the oxide–silicon interface. Note the boron depletion at the interface,
which is caused by boron segregation during the oxide growth.
Here, the structure is annealed at a constant temperature of 1000°C for 30 minutes. The
annealing is performed in an inert gas because no particular environment is specified.
The annealed profiles are written to the file [Link]. The total (chemical)
concentration of boron and arsenic, as well as the respective electrically active (substitutional)
concentrations are saved.
Figure 2 compares the as-implanted and the annealed arsenic profiles. It is generated by
loading both .plx files into Inspect with:
> inspect [Link] [Link]
Example: 2D Simulation
Many widely used process and control commands are introduced in the context of a nominal
0.18 μm n-channel MOSFET process flow. The MOSFET structure is simulated in 2D, and
the processing of the isolation is excluded. A simplified treatment is presented using only
default parameters and models.
Mesh refinement starts from the user-defined subdivisions; therefore, the specification of lines
helps to compartmentalize mesh refinement. In turn, compartmentalization of the mesh
prevents moving boundaries, and therefore, moving mesh refinement from affecting
geometrically static areas. Whenever mesh lines move, interpolation must be used to obtain
new field values, such as dopant concentrations, and this introduces errors in the simulation.
During the polysilicon reoxidation step, the oxide–silicon and oxide–polysilicon boundaries
move, and this interface movement may cause mesh lines to move as shown in the following
example:
line x location= 0.0
line x location= 3.0<nm> ;# just deeper than reox in silicon
line x location= 10.0<um>
line y location= 0.0
line y location= 85.0<nm> ;# just deeper than reox in poly
line y location= 0.4<um>
To minimize this effect, the silicon and polysilicon regions are isolated from the moving
interfaces by introducing lines immediately inside the final oxide depth in both regions as
shown in Figure 3.
-0.1
0
X
0.1
Sentaurus Process uses coordinate systems such that 1D, 2D, and 3D simulations are
consistent. Independent of the current simulation dimension, the positive x is into the wafer; y
is positive to the right, and z is positive out of the page.
The initial simulation domain is defined with the region command. Many, if not most,
simulations start with a block of silicon. The shorthand for this situation is to define a region
of silicon that spans all defined lines:
region silicon
The region command also can be used to define a new region between specified lines. To limit
the size of the region to be less than all defined lines, the lines must be given a tag with the tag
parameter. These tags are used in the region command with the xlo, xhi, ylo, yhi, zlo,
and zhi parameters.
Finally, the initial mesh and background doping is specified using the init command as
follows:
init concentration=1.0e+15<cm-3> field=Phosphorus [Link]=100
15 –3
Here, an n-doped substrate with a phosphorus concentration of 10 cm is used. The wafer
orientation is set to 100, which is the default.
The refinement boxes can be inserted at any time during the simulation. The simplest form of
the refinement box, used in this example, consists of minimum and maximum coordinates
where the refinement box is valid and local maximum mesh spacing in the x-, y- and
z-directions. A refinement box specified for a 2D simulation will be applied to 1D if it is valid
for y = 0.0. Similarly a 3D refinement box will be applied if it covers z = 0.0.
The following refinement boxes specify refinement only in the x-direction for the 1D part of
the simulation:
#--- Refinement in vertical direction ---------------------------------
refinebox clear ;# remove all default refinement
refinebox min = 0 max = 50.0<nm> xrefine = {2.0<nm> 10.0<nm>}
refinebox min = 50.0<nm> max = 2.0<um> xrefine = {10.0<nm> 0.1<um> 0.2<um>}
refinebox min = 2.0<um> max = 10.0<um> xrefine = {0.2<um> 2.0<um>}
The other type of refinement box used in this example is the interface refinement type. Interface
refinement is a graded refinement that is refined near an interface in the perpendicular direction
and relaxed away from the interface. Using the refinebox command, you can specify
interface refinement using the [Link] or [Link]
parameter:
■ Use [Link] to indicate refinement will occur at all interfaces to the
specified materials.
■ Use [Link] to choose interface refinement only at specific material
interfaces.
#--- Interface refinement ---------------------------------------------
refinebox [Link] = { PolySilicon Silicon }
For more details on mesh refinement, see Mesh Refinement on page 674.
Implanting Boron
First, three sets of boron implants are performed:
implant Boron dose=2.0e13<cm-2> energy=200<keV> tilt=0 rotation=0
implant Boron dose=1.0e13<cm-2> energy= 80<keV> tilt=0 rotation=0
implant Boron dose=2.0e12<cm-2> energy= 25<keV> tilt=0 rotation=0
The first high-energy implant creates the p-well, the second medium-energy implant defines a
retrograde boron profile to prevent punch-through, and the third low-energy implant is for a Vt
adjustment.
The layers command shows that the thickness of the grown oxide is 3.2 nm:
{ Top Bottom Integral Material }
{ -2.500551327519e-03 7.862861879285e-04 1.247399405710e+10 Oxide }
{ 7.862861879285e-04 1.000000000000e+01 3.197435354292e+13 Silicon }
First, 0.18 μm of polysilicon is deposited over the entire structure. The keyword
type=isotropic means that the layer is grown equally in all directions, but since the
simulation is in 1D, it would be the same as type=anisotropic.
A mask is defined to protect the gate area with the mask command. In this project, only half of
the transistor is simulated. Therefore, the left edge of the gate mask is unimportant. In general,
you should run the mask over the sides of the simulation to prevent round-off errors that could
prevent complete mask coverage. The name gate_mask is associated with this mask for later
reference.
The first etch command refers to the previously defined mask and, therefore, only the exposed
part of the polysilicon is etched. The requested etching depth ( 0.2 μm ) is larger than the
deposited layer. This overetching ensures that no residual islands remain. The etching is
specified to be anisotropic, that is, the applied mask is transferred straight down, without any
undercut.
The second etch statement does not refer to any masks. However, the polysilicon naturally
acts as a mask for this selective etching process. Again, a considerable overetching is specified.
Masks must be defined before they are used. For example, ex_mask blocks processing from
–1 to 2 μm and from 4 to 20 μm :
mask clear
mask name=ex_mask segments = { -1.0<um> 2.0<um> 4.0<um> 20.0<um> }
Masks can be inverted using the negative option. For example, etch_mask prevents
processing from 2 to 4 μm :
mask clear
mask name=etch_mask segments = { -1.0<um> 2.0<um> 4.0<um> 20.0<um> } negative
Polysilicon Reoxidation
To release stresses, a thin oxide layer is grown on the polysilicon before the spacer formation:
diffuse temperature=900<C> time=10.0<min> O2 pressure=0.5<atm>
In this step, the 1 atm default is overwritten by explicitly specifying a pressure of 0.5 atm. In
all diffusion steps, Sentaurus Process automatically deposits a thin native oxide layer before
starting oxidation. This layer is always present on silicon exposed to air and quickly forms on
newly created interfaces.
-0.15
-0.1
-0.05
During oxidation, mesh movement is controlled by the TSUPREM-4 mesh library in 2D. In 1D
and 3D, it is controlled by an internal moving-boundary mesh algorithm. Both of these moving-
boundary algorithms perform local atomic mesh operations (element removal, edge splitting,
edge flipping, and so on) which leave the rest of the mesh untouched. Mesh points are moved
with the material to maintain dopant dose conservation and the dopant segregation condition at
oxide–silicon and oxide–polysilicon interfaces. Figure 5 shows a close-up of the mesh after the
polysilicon reoxidation step has been performed. Note that the mesh in the brown oxide layer
follows the growth contours.
-0.01
-0.005
0.005
Figure 5 Mesh in thin oxide layer and in adjacent polysilicon and silicon
Saving Snapshots
To save a snapshot of the current structure, the struct command is used. For example:
struct tdr= NMOS4
The keyword tdr specifies that the snapshot is saved in the TDR file format. The argument
specifies the stem used for the file name. Here, the file NMOS4_fps.tdr is created. The figures
in this section were generated from such snapshots.
For more information about the TDR format, refer to the Sentaurus Data Explorer User Guide.
Now, lateral refinement is required to resolve the source and drain extensions (also known as
low-doped drain (LDD)) as well as the halo implants. This is accomplished by introducing a
new refinebox command that specifies:
■ Lateral refinement using the yrefine parameter.
■ Additional vertical refinement using the xrefine parameter.
The min and max keywords take x-, y-, and z-coordinates. Not all coordinates must be
specified. For example, if only one number is given for minimum, it means that refinement
applies to all y- and z-coordinates less than the max coordinate.
NOTE The refinebox command only specifies a refinement criterion, but the
mesh is not changed. The grid remesh command forces a remesh.
-0.06
-0.04
-0.02
0.02
0.04
0.06
0.08
The implants are activated with a short thermal cycle or rapid thermal anneal (RTA).
First, a uniform, 60-nm thick layer of nitride is deposited over the entire structure. The keyword
type=isotropic ensures that the growth rate of the layer is the same in all directions. Then,
the nitride is etched again; however, now an anisotropic etching is used. This means that the
nitride deposited on the vertical sides of the gate is not fully removed and can serve as masks
for the source/drain implants. For this step, an isotropic overetch is specified. Specifying a
fraction of the etch thickness, 0.01 implies a 1% isotropic component. This is needed because
the oxide formed during poly oxidation has a nonvertical sidewall. Without the small
[Link], a small nitride residual would remain. Finally, the thin oxide layer
grown during the poly reoxidation step is removed.
This refinement box ensures that the grid is fine enough in the vertical direction to resolve the
junction depth.
Implanting Source/Drain
The source and drain regions are created using:
implant Arsenic dose=5e15<cm-2> energy=40<keV> tilt=7<degree> \
rotation=-90<degree>
diffuse temperature=1050<C> time=10.0<s>
To ensure a low resistivity of the source and drain regions, this implant step uses a very high
15 –2
dose of 5 × 10 cm . A tilt of 7° is used to reduce channeling and a rotation of – 90 °
ensures that the plane of incident is parallel to the gate stack, such that the 7° tilt angle does
not lead to asymmetry between the source and drain.
In both cases:
■ The structure bottom is cropped.
■ The full transistor is created by reflecting about the symmetry plane.
■ A new mesh is generated that is better optimized for device simulation.
If the remeshing for device simulations is performed internally, the file NMOS_fps.tdr can be
loaded directly into Sentaurus Device.
To use the external technique after truncation and reflection, the structure is saved using:
struct smesh=NMOS
This command saves the structure and data in the file NMOS_fps.tdr, and the boundary in the
file NMOS_bnd.tdr. These files can serve as input to Sentaurus Structure Editor and Sentaurus
Mesh.
In the following example, the internal technique is used to produce a structure and mesh
appropriate for device simulation. First, the structure bottom is truncated; then a new mesh
strategy is introduced:
#--Remove bottom of structure------------------------------------------
transform cut location= 1.00 down
refinebox name= GDpn1 min= {0.0 0.04} max= {0.06 0.1} xrefine= 0.005 \
yrefine= 0.005 silicon
The new mesh strategy uses a combination of interface refinement, fixed boxwise refinement,
and adaptive refinement on dopants.
Contacts
Next, contacts are added to the structure using the contact command. These contacts are
added to structure files upon writing. They are not present in the internal Sentaurus Process
structure, but are added only as required when writing the structure. There are two types of
contact specification:
■ Box: For these contacts, you specify a box and a material, and all interfaces of that material
that are inside the box become the contact.
■ Point: For this contact, you specify a point inside a chosen region. The chosen region is
removed, and all interfaces between the chosen region and bulk materials become part of
the contact.
The file NMOS_fps.tdr is created with contacts and can be loaded into Sentaurus Device to
obtain device electrical characteristics.
-0.2
-0.1
0.1
0.2
Extracting 1D Profiles
You can save 1D profiles at any point in the process flow using:
SetPlxList {BTotal NetActive}
WritePlx NMOS_channel.plx y=0.0 silicon
as well as:
struct tdr=NMOS_channel.tdr y=0.0
For all the applications involving long thermal diffusion steps or simulations of relatively large
structures (in which doping profiles may evolve greatly), using static mesh criteria is
impracticable because it requires using a fine mesh in many parts of the simulation domain.
Moreover, the placement of the refinement boxes is not straightforward because often the
location of gradients and junctions at the end of the thermal steps is not precisely known. For
such purposes, adaptive meshing could be used. Using this feature, you only have to define
some refinement criteria, more or less stringent depending on the level of accuracy required.
The meshing engine checks the mesh and decides automatically where, when, and if the mesh
needs to be refined.
Overview
Adaptive meshing can be switched on globally with:
pdbSet Grid Adaptive 1
To prevent the number of mesh points from growing too large, switch off the [Link]
option (which is switched on by default in silicon) when using adaptive meshing:
refinebox ![Link]
Many different refinement criteria have been implemented in Sentaurus Process for flexibility
in handling different types of field and structure. For a complete list and detailed descriptions
of the refinement criteria, see Adaptive Refinement Criteria on page 680.
The criteria in the following example are the most commonly used and are referred to as
relative difference and local dose error. Each computes the so-called desired edge length
(DEL), which is defined formally as:
DEL = min (l12 * MaxError/Error)
where l12 is the length of the edge between two mesh points 1 and 2. Error (computed
internally) is the error between points 1 and 2, and MaxError (set by users) is the maximum
allowable error. The right-hand side of the expression is computed over all the fields that can
be refined (by default, all the solution variables): the minimum value is the DEL for the
corresponding criterion. The expression for Error and the name and the meaning of
MaxError vary from criterion to criterion. For the relative difference criterion, these quantities
have the form:
Error = 2*|C1 - C2|/(C1 + C2 + alpha)
MaxError = Rf
where C 1 and C 2 are the concentration of the field in points 1 and 2, respectively, R f is the
relative error that sets the maximum-allowed change of the field across an edge, and alpha is
the absolute error, a type of cutoff threshold below which refinement is smoothed out. They can
be set in the PDB as follows:
pdbSet Grid Boron [Link] 1e15
pdbSet Grid Boron [Link] 0.5
For the definition of Error and MaxError for the local dose error criterion, see Local Dose
Error Criteria on page 683.
All the edges are compared to DEL to check the percentage of long edges by using the
following additional parameter:
pdbSetDoubleArray Grid [Link] {X 2.0 Y 2.0}
These coefficients can be set directionwise and act in the following way: An edge is defined as
long when it is larger than [Link]*DEL for at least one of the selected refinement
criteria. When the percentage of long edges is larger than certain values, adaptive refinement
is actually triggered. This value can be set as:
pdbSet Grid [Link] 0.01
When adaptive meshing is switched on, it automatically affects refinement whenever a mesh is
generated (such as after geometry-changing operations). During the diffuse command, the
mesh is checked after a certain number of steps that can be separately set depending on the
nature of the diffusion step:
pdbSet Diffuse [Link] 10 ;# during inert annealings
pdbSet Diffuse [Link] -1 ;# during oxidation and silicidation
pdbSet Diffuse [Link] -1 ;# during epitaxy
When the number of long edges is larger than [Link], remeshing is performed. The
mesh quality check can be omitted by setting:
pdbSet Grid [Link] 0
which can save some CPU time when performing simulations on large meshes, where the mesh
checking is time consuming.
The relative error criterion is effective in refining doping profiles in steep gradient regions. In
the vicinity of maxima and minima, the profiles are almost flat and some loss of accuracy may
occur there. Further reduction of [Link] would increase significantly the number of
points in the steep slope with negligible improvements at the peaks. In that case, the max dose
loss criterion can be used more effectively. This explains why the combination of these two
criteria provides an optimum adaptive-remeshing strategy.
The line commands are used to compartmentalize the structure according to the meshing
strategy described in the previous example:
line x loc= 2.0<um>
line x loc= 4.0<um> tag=SubTop
line x loc= 6.0<um>
line x loc= 10.0<um> tag=SubBottom
line y loc= 0.0<um> tag=SubLeft
line y loc=1.5<um>
line y loc=2.5<um>
line y loc=8<um>
line y loc=13<um>
line y loc=22<um>
line y loc=24<um>
line y loc=30.0<um> tag=SubRight
Along the x-axis, few lines are specified: the two tagged ones are needed to define the initial
silicon substrate. The other two lines are defined to have uniform spacing within the box
defined to refine the buried layer. Along the y-axis, more lines are defined because a coarse
initial mesh would degrade the quality of the mesh resulting from adaptation during
implantation. These lines are set corresponding to the mask edges: This information is usually
known to users, especially if the simulation starts from a layout, and the process flow is set up
in Ligament.
Three refinement boxes are defined as the structure and the process flow clearly identifies three
main significant areas: buried layer, collector region, and base-emitter region:
refinebox name=BL [Link]= {Antimony Phosphorus} \
[Link]= {Antimony=0.6 Phosphorus=0.6} \
[Link]= {Antimony=1e16 Phosphorus=1e16} Adaptive min= {2.0 -0.1} \
max= {10.1 30.1} [Link]= {0.2 0.4} [Link]= {Antimony=1e8} \
The min and max parameters set an xy pair of coordinates to define the extent of the box. The
keyword all means that refinement must be applied to all materials. When using a material
name, refinement is applied to the specified material only.
NOTE More than one adaptive type can be specified in the same box. In the BL
box, the relative difference and local dose loss criteria are selected by
specifying the parameters [Link] or [Link] and
[Link], respectively.
The BL box is defined to refine the buried layer: a high level of accuracy is not required here
and the values are more relaxed than in the other boxes. The [Link] parameter
adds the additional directionwise constraint not to refine edges below the specified values
(units in micrometers).
The Sinker box is defined to refine the n-doped collector region, which contacts the buried
layer. More restrictive values are used in it.
The Active box is used to refine the base–emitter region. Higher accuracy is required here to
properly catch the base length, which all the main electrical parameters of the device are a
function of:
pdbSet Diffuse [Link] 10
pdbSet Grid [Link] 0.01
According to these last two commands, the mesh is checked every 10 diffusion steps in inert
annealings, and remeshing is performed if there are more than 0.01% of long edges.
Buried Layer
The buried layer is obtained with high-energy and high-dose antimony implantation:
deposit material= {Oxide} type=isotropic time=1 rate= {0.025}
implant Antimony dose=1.5e15<cm-2> energy=100<keV>
etch material= {Oxide} type=anisotropic time=1 rate= {0.03}
Before the implantation, 25 nm of a screening oxide is deposited. After the implantation, the
oxide is etched to clean the surface and to prepare it for the subsequent epi step.
Epi Layer
For speed and simplicity, an epitaxial regrowth step is not performed here. Instead, a simpler
15 –3
deposition of a silicon layer with 1 ×10 cm arsenic concentration is followed by a
diffusion step:
deposit material= {Silicon} type=isotropic time=1 rate= {4.0} Arsenic \
concentration=1e15<cm-3>
diffuse temp=1100<C> time=60<min> maxstep=4<min>
The maximum diffusion step is limited to 4 minutes to avoid having too much diffusion
between two subsequent adaptive remeshing steps. An alternative would be to reduce
[Link], but this would lead to numerous remeshings at the beginning of
the annealing when the time step is small.
The following sections describe the process steps to create sinker, base, and emitter regions. At
the end of each group of steps, results are saved in TDR files.
Sinker Region
This is the beginning of the 2D simulation. A 5-nm screening oxide is deposited before the
phosphorus implantation to contact the buried layer. The Sinker mask protects the silicon area
where the base will be created. The Photo command is used to deposit the photoresist (mask
definition not shown here). The subsequent annealing is long (5 hours). For this reason, the
maximum time step is allowed to increase up to 8 minutes.
Figure 8 on page 30 shows the doping concentration distribution at this point of the simulation:
deposit material= {Oxide} type=isotropic time=1 rate= {0.05}
photo mask=Sinker thickness=1
struct tdr=vert_npn2
10
0 5 10 15 20 25 30
Base Region
14 –2
The p-doped base region is created with a 1 ×10 cm dose of implanted boron followed by
a 35-minute inert annealing:
photo mask=Base thickness=1
implant Boron dose=1e14<cm-2> energy=50<keV>
strip Resist
diffuse temp=1100<C> time=35<min> maxstep=4<min>
struct tdr=vert_npn3
Emitter Region
15 –2
The highly n-doped emitter region is created with a 5 ×10 cm dose of implanted arsenic
followed by a 25-minute inert annealing. Emitter mask is designed such that arsenic is
implanted also in the sinker region to increase the doping concentration at the collector contact.
In addition to a TDR file, 1D profiles are extracted. Figure 9 on page 31 shows the final doping
distribution:
photo mask=Emitter thickness=1
implant Arsenic dose=5e15<cm-2> energy=55<keV> tilt=7 rotation=0
strip Resist
diffuse temp=1100<C> time=25<min> maxstep=4<min>
struct tdr=vert_npn4
10
0 5 10 15 20 25 30
Figure 9 Final doping distribution
Backend
The real backend steps are not simulated here. A sequence of masked etching and deposition
steps are used to define emitter, base, and collector contacts:
etch material= {Oxide} type=anisotropic time=1 rate= {0.055} mask=Contact
deposit material= {Aluminum} type=isotropic time=1 rate= {1.0}
etch material= {Aluminum} type=anisotropic time=1 rate= {1.1} mask=Metal
struct tdr=vert_npn5
0 0
0.5 2
1
4
1.5
6
2
0 1 2 3 18 20 22 24 26 28
Figure 10 Details of final mesh: (left) the emitter–base region and (right) the buried layer
with collector contact
The relative difference criterion refines the doping profiles, not the junctions. Obviously, if the
profiles are reproduced correctly, the junctions also will be in the right place. To obtain a
junction-like refinement with the relative difference criterion, set [Link] close to the
doping level of the less-doped side of the junction. A more effective way is to select
NetDoping as the field to be refined and apply to it the inverse hyperbolic sine (asinh)
difference criterion (for details, see Inverse Hyperbolic Sine (asinh) Difference Criteria on
page 682).
1D NMOS
# 1D Grid definition
#-------------------
} else {
# Depositing screening oxide
#---------------------------
deposit material= {Oxide} type=isotropic time=1.0 rate= {0.01}
diffuse temperature=900<C> time=40<min>
}
# Implanting Arsenic
#-------------------
# Thermal annealing
#------------------
2D NMOS
#----------------------------------------------------------------------
# 2D nMOSFET (0.18um technology)
#----------------------------------------------------------------------
math [Link]
#--- Specify lines for outer boundary and to separate moving boundaries
# from the rest of the structure------------------------------------
#--- Sentaurus Mesh settings for automatic meshing in newly generated layers -
pdbSet Grid SnMesh [Link] 1.0e-3 ;# in micrometers
pdbSet Grid SnMesh [Link].2d 1.4 ;# used in 1D and 2D
select z=Boron
layers
struct tdr=NMOS2 FullD; # GateOx
# - 1D cross sections
SetPlxList {BTotal NetActive}
WritePlx NMOS_channel.plx y=0.0 silicon
#----------------------------------------------------------------------#
#Transfer to device simulation
#----------------------------------------------------------------------#
[Link]= {Silicon}
grid remesh
math [Link]
# Mesh settings
#--------------
# Masks definition
#-----------------
# Buried layer
#-------------
# Epi layer
#----------
struct tdr=vert_npn1
# Sinker
#-------
struct tdr=vert_npn2
# Base
#-----
photo mask=Base thickness=1
implant Boron dose=1e14<cm-2> energy=50<keV>
strip Resist
diffuse temp=1100<C> time=35<min> maxstep=4<min>
struct tdr=vert_npn3
# Emitter
#--------
struct tdr=vert_npn4
# Back end
#---------
struct tdr=vert_npn5
exit
The syntax and features of the command file are described, followed by an overview of the
Sentaurus Process parameter database, which contains all of the model parameters and
technical details regarding the running of the tool.
For new users, see Syntax for Creating Input Command Files on page 48, Creating and
Loading Structures and Data on page 64, and Interactive Mode on page 44. For advanced users
who need to adjust model parameters, see Parameter Database on page 53. For the TCAD
Sentaurus Tutorial and examples, go to:
$STROOT/tcad/$STRELEASE/Sentaurus_Training/[Link]
where STROOT is an environment variable that indicates where the Synopsys TCAD
distribution has been installed, and STRELEASE indicates the Synopsys TCAD release number.
Overview
To familiarize users with the different formatting used in this documentation, input commands
from either a command file or the command line are presented this way:
sprocess -v
****************************************************************************
Interactive Graphics
There are two options for interactive graphics in Sentaurus Process:
■ An X-Windows-based graphical display (which will be phased out in future releases)
■ An interface to Tecplot SV (which will eventually replace the X-Windows display)
The interface of Tecplot SV is available on all platforms and can be used in 1D, 2D, and 3D.
The interface can be started with the simple command graphics on. The X-Windows-based
viewer is launched with either the plot.1d or plot.2d command (see plot.1d on page 1011
and plot.2d on page 1013). When the graphics command is used, graphical updating is
performed automatically.
The Sentaurus Process–Tecplot SV interface is designed to minimize the effects of the start-up
time of Tecplot SV. The usual mode of operation is to have one Tecplot SV window, which has
interprocess communication (IPC) enabled, and to start and stop Sentaurus Process many
times.
Because of the variability in user environments, automated start-up of Tecplot SV from inside
Sentaurus Process is not reliable. Therefore, to use the Sentaurus Process–Tecplot SV
interface, you must first start an IPC-enabled Tecplot SV from the UNIX command line before
starting the Sentaurus Process–Tecplot SV interface from within Sentaurus Process. To start an
IPC-enabled Tecplot SV, issue the following from the UNIX command line:
unix> tecplot_sv -s:ipc
Each time Sentaurus Process is started, it connects to the Tecplot SV window opened by the
above command and creates a new frame where the graphical output is sent. The name of the
frame contains the process ID, the user name, and the name of the computer where Sentaurus
Process is run.
NOTE It is not necessary that the computer where Tecplot SV is launched is the
same as the computer where Sentaurus Process is run, but the home
directory of the user should be the same on both computers (using NFS
or similar networking file-sharing).
In addition, it is possible to have multiple Sentaurus Process jobs sending graphics output to a
single Tecplot SV for comparing multiple simulations in real time. For more information, see
Tecplot SV User Guide, Launching or Connecting to Tecplot SV on page 13).
It is sometimes convenient to use the Sentaurus Process fbreak command when using the
interactive graphics. This command will pause Sentaurus Process in the input command file
where the fbreak command occurs, allowing adjustments to be made to the display settings
such as mesh on or off, selection of field to view, and range of color scale. The fbreak
command puts Sentaurus Process into interactive mode and the command prompt
‘sprocess>’ appears in the terminal window from which Sentaurus Process was run. After
adjustments to the graphics have been made, the command fcontinue can be entered, which
will resume Sentaurus Process execution.
In Sentaurus Workbench or batch mode (that is, sprocess -u or sprocess -b), the
commands fbreak and fcontinue have no effect. Therefore, these commands can be placed
in a Sentaurus Workbench project.
Command-Line Options
Table 1 lists the command-line options that are available in Sentaurus Process.
Interactive Mode
Sentaurus Process runs in interactive mode if no command file is given. In this mode,
commands can be entered (at the command prompt) line-by-line and are executed immediately.
It is useful to run Sentaurus Process in the interactive mode for the following reasons:
■ When debugging Tcl code, the program does not quit if a Tcl error is found. The error is
displayed and you are prompted again for input. You can source a command file repeatedly
if required.
■ To easily obtain pdb parameter names and defaults with the pdbGet command.
■ To print the list of built-in functions with the help command, and to print the list of Tcl
procedures with the info procs command.
■ To obtain command parameter names and defaults for any built-in command by using the
params flag available in all built-in functions.
Another use of the interactive mode is to pause the simulation using the fbreak command.
When the simulation is paused in interactive mode, the state of the simulator can be queried
using a number of commands including grid, mater, select, and so on. Pausing the
simulation can also be useful when using interactive graphics as described in Interactive
Graphics on page 42.
Fast Mode
When working on a new process flow, it is particularly useful to run Sentaurus Process a few
times using the fast mode (-f command-line option). Developing a new process flow can be
complex, involving many etch, deposit, and photo steps, some with masks; sometimes
adjustments are required. In the fast mode, all diffusion, Monte Carlo implantation, and 3D
remeshing commands are ignored. Only process commands for structure generation and
analysis are performed. In this mode, when in three dimensions, all struct commands will
only write a boundary into the TDR file, since the simulation mesh is not synchronized with
the modified structure.
Terminating Execution
You can terminate a running Sentaurus Process job in several ways. In some cases, the
termination will take time or will fail for other reasons. The most fail-safe method is to use the
UNIX command:
kill -9 <process_id>
where <process_id> is the process ID number of the running Sentaurus Process job which
can be obtained with the UNIX ps command. This sends a signal SIGKILL to the
corresponding Sentaurus Process job, which will cause the job to terminate immediately.
If Sentaurus Process is run directly from a UNIX shell, usually you can terminate the run by
using shortcut keys. The key sequence is interpreted by the shell command, which sends a
signal to the job in the foreground. Usually, Ctrl+C sends a SIGINT signal and Ctrl+\
(backslash) sends a SIGQUIT signal. The running Sentaurus Process job catches all SIGINT
signals and waits for three signals to be caught (in case it was typed accidentally) before
terminating itself. However, Sentaurus Process does not catch the SIGQUIT signal, so this
signal will typically cause Sentaurus Process to terminate immediately.
Because the exact behavior may depend on your UNIX shell, the operating system, and the
local configuration, refer to the manual for the UNIX shell you are running or contact your
local systems administrator for more information.
Environment Variables
The Sentaurus Process binary relies on a number of supporting files found using the
environment variables SPHOME and SCHOME. To change default models and parameters without
modifying the installed Sentaurus Process files, copy the default SPHOME and SCHOME
directories and set the environment variables (SPHOME and SCHOME) to the location of the
modified directories.
By default, SPHOME and SCHOME are set based on the Synopsys standard environment variables
STROOT and STRELEASE, and by the version number of Sentaurus Process using:
SPHOME = $STROOT/tcad/$STRELEASE/lib/sprocess-<version number>
SCHOME = $STROOT/tcad/$STRELEASE/lib/score-<version number>
The SPHOME directory has two major subdirectories, TclLib and ImpLib, where:
■ The directory $SPHOME/TclLib contains all the default model selections in a file
[Link].
■ The Tcl files are located in directory $SPHOME/TclLib and $SCHOME/TclLib.
■ The subdirectory $SCHOME/Params contains the Sentaurus Process parameter database
(see Parameter Database on page 53).
■ The subdirectory $SPHOME/ImpLib contains all the implant tables.
Standard Tcl syntax must be followed; for example, a hash symbol (#) at the beginning of a
line denotes a comment and the dollar sign ($) is used to obtain the value of a variable. Major
features of Tcl include for loops, while loops, and if then else structures, switch
statements, file input and output, sourcing external files, and defining procedures (functions).
Variables can be numbers, strings, lists, or arrays. Refer to the literature for more
information [1].
Before execution of the command file takes place, the syntax of the file is checked. This is
accomplished by first modifying the command file so that all branches of control structures
such as if, then else, and switch commands are executed. In addition, a special flag is set
so that no structure operations or operations that depend on the structure are performed. This
allows the syntax check to run quickly, but thoroughly. Sometimes, the modifications made to
the command file during syntax checking interfere with the definition or redefinition of Tcl
variables, generating a false syntax error. In these cases, switch off syntax checking for part of
a command file using the special CHECKOFF and CHECKON commands:
# Skip syntax check for part of command file
# The CHECKOFF/CHECKON commands must start at the beginning of the line
# and be the only command on the line
CHECKOFF
if { $mode } {
array set arr $list1
} else {
set arr $list2 ;# error only if both branches are executed
}
CHECKON
# further commands are syntax checked
Tcl Input
Sentaurus Process has been designed to optimize the use of the Tcl. Some examples of this
interaction include:
■ Command parameter values are evaluated with Tcl. For example, expr can appear in the
value of an expression, that is, parameter=[expr $pp/10.0] is valid Sentaurus Process
syntax. This particular expression sets the parameter parameter to the value of pp/10 if
the Tcl variable pp was previously defined with the Tcl set command.
■ Tcl expressions may appear in model parameter values in the parameter database. In some
cases, Sentaurus Process parameters are set with Tcl commands to be a function of other
parameters.
■ Sentaurus Process contains many callback procedures, which can be redefined by users to
provide flexibility. For example, a callback procedure is used to initialize defects after
implantation.
■ Many modular built-in functions are available for postprocessing, which can be combined
into a Tcl script to create powerful analytic tools.
■ There are special Sentaurus Process versions of set (fset) and proc (fproc), which are
stored in TDR files. When simulations are restarted using a TDR file, the settings given by
fset and fproc from the previous simulation will be available.
Other syntax rules to consider when writing input command files are:
■ One command is entered on one line only. There are two exceptions to this rule:
• A backslash (\) is used to extend a command on to multiple lines if it appears as the last
character on the line.
• If there is an opening brace, Tcl will assume the command has not finished until the
line containing the matching closing brace.
■ Command parameters have the following form:
• Boolean parameters are true if the name appears on the line. They are false if they are
preceded by an exclamation mark (!).
• Parameters that are of type integer or floating point must appear as
parameter=value pairs.
• String parameters are enclosed, in general, in double quotation marks (" "), for
example, parameter="string value".
• Lists can appear enclosed in double quotation marks or braces, for example,
parameter= { item1 item2 ... } or parameter= " item1 item2 ...".
It is necessary to have a space between the equal sign and the opening brace.
NOTE It is important to separate the equal sign from the parameter value by a
space because Tcl delimiters such as ‘"’ and ‘{’ are ignored if they
appear in the middle of a string. Sentaurus Process can handle no space
between an equal sign and a double quotation mark, but it cannot correct
the case where there is no space between an equal sign and an opening
brace.
Material Specification
Materials are specified the same way for all commands that require a material parameter. For
a bulk material, specify only one material. For an interface material, specify two materials: one
with a slash (/) and one without a slash.
In that file, the lines that contain mater add create a material. For more information about
creating new materials, see mater on page 982.
Aliases
Sentaurus Process allows more control over the names of command parameters and
abbreviations of parameter names. These aliases only apply to parameters of built-in Sentaurus
Process commands, and the pdbSet and pdbGet family of commands.
This permits clarity and uniformity to commonly used names. Another benefit is that it is easier
to maintain backward compatibility for parameter names while not restricting future parameter
names that could conflict with common abbreviations (that is, V could refer to either vacancy
or void).
directory is determined). The alias command is used to view and extend the list of allowed
aliases.
To create a new alias for a parameter name, for example, the alias Vaca for the parameter
Vacancy:
sprocess> alias Vaca
Vaca
sprocess> alias Vaca Vacancy
sprocess> alias Vaca
Vacancy
The [Link] file is read once at the beginning of the simulation. You can override
any of the default parameters after the file is read.
The old model and algorithm settings are collected into a file for each release and are available
so that you can recover results from previous releases. Each file contains only those parameter
changes that occurred for that particular release, so that if the release specified in the
Compatibility command is older than the most recent release, the most recent release
parameters are set first, followed by older releases in reverse chronological order.
For example, the command Compatibility E-2010.12 issued for Version H-2013.03 will
first apply parameters consistent with G-2012.06, then parameters consistent with F-2011.09,
and finally parameters consistent with E-2010.12. Aliases are available for the release name so
you do not need to know the release foundation letter. For example, 2011.09 can be used
instead of F-2011.09.
The files with the compatibility parameter settings are stored in $STROOT/tcad/
$STRELEASE/lib/sprocess/TclLib/Compatibility. These files are a useful list of all
default parameter changes for each release.
NOTE As a result of the repair of code flaws and because of numeric accuracy
limitations, exact reproduction of results from previous releases is not
always possible.
For example:
# Apply defaults of the 2011.09 release (first line of input file)
Compatibility 2011.09
NOTE Default parameter and algorithm settings of the tools Sentaurus Mesh,
Sentaurus Structure Editor, and the MGOALS library are not changed
by the Compatibility command. For MGOALS library backwards
compatibility, see Summary of MGOALS Etching and Deposition
Algorithms on page 759. To obtain backwards compatible default
parameters and settings for Sentaurus Mesh and Sentaurus Structure
Editor, see the backwards compatibility mechanisms described for those
tools in the corresponding manual sections.
Parameter Database
The Sentaurus Process parameter database stores all Sentaurus Process material and model
parameters as well as global information needed for save and reload capabilities. There is a
hierarchical directory tree inside the Params directory, which stores the default values. (To
locate the Params directory, see Environment Variables on page 46.)
Data is retrieved by using the pdbGet command and is set by using the pdbSet command. The
pdbGet and pdbSet commands are checked for correctness of syntax and they print the
allowed parameter names if a mistake is made. These commands are used to obtain and set all
types of data stored in the database: Boolean, string, double, double array, and switch.
The higher level pdbSet and pdbGet commands call lower-level type-specific commands
(pdbGetSwitchString, pdbGetDoubleArray, pdbGetString, pdbGetDouble,
pdbGetSwitch, pdbGetBoolean, pdbSetDoubleArray, pdbSetString,
pdbSetBoolean, pdbSetDouble, and pdbSetSwitch) that are not checked for errors and,
therefore, are not recommended for typical use. These commands have a slight performance
advantage and are used internally.
You can set some parameters in a region-specific manner. Regions can be named with the
region and deposit commands and, if region-specific parameters exist, they will override
the material-specific parameters if any. However, there are many circumstances where this will
not give the desired behavior. In that case, you must create a new material that inherits its
parameters from an existing material. Then, you must change the material properties of the new
material as needed. For more information, see Like Materials: Material Parameter Inheritance
on page 55.
Inside the Params directory are subdirectories that define the highest level nodes in the
database. Inside each subdirectory is a file Info, which contains parameters of that level. In
addition, directories in the database have named files that contain parameters, which are under
the node defined by the file name. For example, in the Params database, there is a directory
called Silicon, which contains a file Info. The parameters inside Info are located under the
Silicon node. As another example, inside the Silicon directory is another file
Interstitial that contains parameters under the Interstitial node, which is under the
Silicon node.
Inside the files of the parameter database are commands that set database parameters. The
commands have the form:
array set $Base { <NAME> { <TYPE> <VALUE> } }
where:
■ <NAME> is the parameter name.
■ <TYPE> is one of Boolean, String, Double, DoubleArray, or Switch.
■ <VALUE> is a Tcl expression that sets the default value.
It is often necessary to enclose the <VALUE> expression in braces. Some Tcl procedures have
been created to increase the usefulness of <VALUE> expressions. For example, in many places
in the database, the built-in function Arrhenius is used to set the value of a parameter.
Parameters that contain a Tcl function are evaluated at each diffusion time step so that
temperature-dependent parameters will update correctly during a temperature ramp. It is
important to remember that the Arrhenius function uses the global Tcl variable for
temperature, which defaults to room temperature.
If you start Sentaurus Process and call the pdbGet command of a parameter that contains an
Arrhenius function, it will return the value of that parameter at room temperature. The
temperature can be changed with the SetTemp function. Subsequent calls to the Arrhenius
command through pdbGet return values based on the given temperature. In addition, the
diffusion command changes the global temperature for each time step, and the temperature
after diffusion will be same as the temperature in the last diffusion time step.
Other functions that appear in the pdb parameters are DiffLimit, which calculates a
diffusion-limited reaction rate given the diffusivity of the two reacting species, and pdbGet*
functions, which allow parameters to be set as a function of other parameters.
For the DoubleArray type, a Tcl list is set that is ordered pairwise:
{key1 value1 key2 value2 ...} where the parameter setting for key1 is value1.
Material parameters can be stored under the known region name. To set and obtain the
parameter value, use the region name instead of the material name. If the parameter is not found
under the region name, it is taken from the material of that region.
Sentaurus Process writes directly to the parameter database in a number of ways. Mostly this
is performed to save information for save and reload capabilities using the TDR format. Data
written by the program into the parameter database is not available within the default Params
directory or the Parameter Database Browser (PDB), but can be read using the pdbGet
command.
For information about the TDR format, refer to the Sentaurus Data Explorer User Guide.
Parameter Inheritance
The parameter database has a parameter inheritance feature where parameters at a certain level
or node can inherit the parameters from another node at the same level. The inherited
parameters can be overwritten with new values. Inheritance is indicated by the presence of a
special parameter named Like. In one of the parameter database files, the Like parameter is
specified as follows:
array set $Base {Like <Node>}
which means that parameters at the level of the file inherit parameters from <Node>, which
should be another node at the same level. For example, the file:
Params/Silicon/Arsenic/Info
contains the line array set $Base Base {Like Dopant}, which indicates that Arsenic in
Silicon should inherit the common parameters of all Dopant species in Silicon. Other
parameters specified in that file indicate parameter settings specific to Arsenic in Silicon.
The parameters of a material can be inherited from the parameters of another material using
the special Like parameter in the PDB. When this is the case, the two materials are referred to
as like materials. This can be used to specify different settings in different regions. First, a new
material is created and made to be like an existing material using:
mater add name = <NewMat> [Link] = <ExistingMat>
where:
■ <NewMat> is the name of the material being created.
■ <ExistingMat> is the name of the material whose parameters will be inherited.
Interface Parameters
When using the PDB commands and the Alagator language, interfaces are specified as a pair
of materials separated by an underscore (_), for example, Gas_Oxide and Oxide_Silicon.
The official name follows alphabetic order, and the first letter is capitalized. However, aliases
are provided that allow their order to be reversed; some shorter names are allowed; and all
lowercase is generally available.
As an example of setting an interface parameter, the following command sets the numeric
tolerance [Link] at the gas–silicon interface to 1e3:
pdbSet Gas_Silicon Vac [Link] 1e3
The name of regions can be specified with the region command and deposit command;
however, the name should not contain an underscore (_) or a period (.) because these characters
have special meaning. During the course of the simulation, geometric operations such as etch
and reflect can split regions in two. If this happens, the history of the region is maintained
through its name. For example, if a region is originally named layer1 and it is etched into two
pieces, they will be named layer1.1 and layer1.2 according to rules given below.
These two regions will inherit the parameters of layer1. Furthermore, parameters for
layer1.1 and layer1.2 also can be specified separately. If a subsequent step such as a
deposit reunites layer1.1 and layer1.2, the region will be given the name layer1.
Conversely, if layer1.1 is split into two regions, the regions will be named layer1.1.1 and
layer1.1.2, and so on. In this way, regionwise parameter specification is preserved for the
life of the region or its parts.
The numbering of split regions is performed according to the spatial location of the pieces. The
lowest point of each piece to be renamed is found (in the coordinate system of Sentaurus
Process, this would be the largest x-coordinate). To avoid numeric noise, the coordinates are
compared with a specified epsilon given by pdbGet Grid RenameDelta (hereafter, referred
to as RN). If the x-coordinates of the pieces to be renamed are not within RN of each other, the
regions are ordered from lowest to highest, that is, from the highest x-coordinate to the lowest.
If any piece has its lowest coordinate within RN, its y-coordinate is compared, that is, from the
lowest coordinate to the highest.
For example, in Figure 11, layer1 is split into two regions and the quantity deltax is less
than RN, so the region on the left is given the name layer1.1 and the region on the right is
given the name layer1.2. If deltax had been greater than RN, the region on the right would
have been given the name layer1.1 because it would have been considered lower than the
region on the left. Similarly, in three dimensions, first x and y are compared, and if they are
both within RN, z is used for ordering, that is, from the lowest coordinate to the highest.
layer1
layer1.1 layer1.2
deltax
You can apply the above operation to the whole structure with grid rename. In this case, all
the regions are renamed similarly to the above rules but, instead of the root being chosen by the
user, all regions of the same material have the root given by the names of the materials and the
extension is _<n> where <n> is the region number, for example Silicon_1, Silicon_2, and
so on. This should only be used as a postprocessing step because all region-specific parameters
no longer apply when the name of a region has changed.
For example, if two oxide layers are grown, one with steam (if it is the first oxide region, its
name would be Oxide_1) and one from pure O2 (which would be Oxide_2 if it were the
second oxide region), they can have different densities. This can be considered in an MC
implantation using:
pdbSetDouble Oxide_1 MassDensity <wet oxide density>
pdbSetDouble Oxide_2 MassDensity <dry oxide density>
where <wet oxide density> and <dry oxide density> would be replaced with values
given in g/cm3.
Graphic Window
Status Bar
This searches for the database in the same location as Sentaurus Process. You can set the
environment variables SPHOME and SCHOME to change the location of the parameter database
for the PDB and Sentaurus Process (see Environment Variables on page 46 for details). To view
parameters in an input file merged with defaults, use:
sprocess --pdb <input command file>
Export Tree Saves the whole parameter database into a specified file in the tab-
delimited format. The fields of the file are Parameter Name, Type,
Value Evaluation, Original Value, and Comments.
Find and Find Next Matches the pattern entered against parameter names according to the
selected options. Patterns can include regular Tcl expressions. The
match is highlighted when found (see Figure 13).
Goto Line Highlights a table row or tree node that corresponds to the number
entered.
Plot (Applies only to parameters of type double and double array.) Plots
the dependency of the selected parameter on the temperature in
logarithmic coordinates versus 1/T. The default set of temperature
values is {700.0 800.0 900.0 1000.0 1100.0}. The resulting
graphs are displayed in the graphic window; otherwise, an error
message is displayed.
Plot Over The same as Plot but it does not clear the graphic window of previous
graphs.
NOTE You can zoom by dragging the mouse. To zoom out, use the middle
mouse button, or click the Zoom Out and Zoom Off buttons.
Evaluate Evaluates the value of the selected parameter and displays the result
in the Evaluate column of the table. Values can contain Tcl
expressions.
Edit Opens the appropriate database file with an editor regardless of the
user write-permissions, but the standard installation will switch off
write permissions for the database. The default editor, SEdit, can be
changed. The PDB Browser is updated upon file saving.
Parameter Double-clicking a nonempty table row allows you to view the
Information corresponding parameter information in a separate window. To close
the window, click the Close button.
Arrhenius Fit Finds the best prefactor and energy for an Arrhenius fit of a given
profile, taken from the list of temperature–value pairs. The results can
be plotted in the graphic window.
PDB Preferences
The PDB allows you to reset the default settings for the following values by using the
Preferences menu, shortcut keys, or shortcut menu of the graphic window:
For example:
> pdbBrowser -tdr n10_fps.tdr
reads the Sentaurus Process PDB and then reads parameters from n10_fps.tdr file
overwriting values contained in the database.
For example:
> pdbBrowser -nopdb -tdr n10_fps.tdr
The wafer coordinate system is fixed with respect to the wafer flat or notch, and is used to
define the relationship of all other coordinate systems to the physical wafer. The wafer
coordinate system is shown in Figure 16.
The wafer x- and y-axes form a naturally oriented coordinate system when the wafer is drawn
with the flat pointing down as shown in Figure 16. This coordinate system is used for layout
information, such as mask locations, and for setting a cutline using the CutLine2D command.
ZW YW
YW
XW
ZW
XW
The simulation coordinate system is used to define the mesh for the simulation. All coordinates
that are specified with respect to the mesh are given in simulation coordinates. This includes
all coordinates that are given in the Sentaurus Process command file.
The simulation coordinate system has the x-axis pointing into the wafer and the y-axis rotated
with respect to the wafer y-axis. The simulation coordinate system is shown in Figure 17.
Simulations in 1D use only the x-axis. Simulations in 2D use only the x- and y-axes.
ZW [Link] YW
YS
YS ZS
[Link]
YW
XW
XS
ZS
XS XW
Figure 17 Simulation coordinate system ([Link] = 45)
The rotation of the simulation axes with respect to the wafer axes is given by the [Link]
parameter of the init command. The slice angle is measured from the wafer y-axis to the
simulation y-axis with positive angles counterclockwise about the wafer z-axis.
The default value of [Link] is set to – 90° . This causes the simulation y-axis to match
the wafer x-axis, which is the usual cut direction through the layout for 2D simulations. The
default simulation coordinate system is shown in Figure 18.
ZW YW
[Link]
YW XW
XS
YS
ZS
[Link]
XS YS XW
ZS
NOTE The UCS is the recommended way of visualization and may become the
default in the future.
The DF–ISE coordinate system is the default for visualizing TDR files. It can be set explicitly
by:
math [Link]
The DF–ISE coordinate system is used by the DF–ISE and some TDR file formats as well as
Tecplot SV. Unlike the simulation coordinate system in which the x-axis points into the wafer
for 1D, 2D, and 3D, the visualization coordinate system has different axis conventions for 1D,
2D, and 3D. Figure 19 shows the relationship between simulation coordinates and DF–ISE
coordinates.
Simulation Coordinates DF-ISE Coordinates
1D
x x
2D
y x
x y
3D
z
z y x y
x
The only difference between UCS coordinates and DF–ISE coordinates is that different
conventions are used to label the axes. Sentaurus Process automatically converts the axis labels
when reading and writing DF–ISE or TDR files.
The relationship between DF–ISE coordinates and UCS coordinates shown in Figure 19
applies to all values of [Link]. In other words, the DF–ISE system is not fixed with
respect to the wafer system. It always has the same rotation with respect to the wafer coordinate
system as the simulation coordinate system.
Figure 20 on page 68 shows the relationship between simulation coordinates and visualization
coordinates.
x x
2D
y x
x y
3D
z
z y x y
x
The tensor components, for example, mechanical stresses, in 2D and 3D are the same in UCS
coordinates. For a conversion table for the stress components in 2D and 3D DF–ISE coordinate
systems, see Chapter 9 on page 629. This also applies to other second-order symmetric tensors.
■ The spacing parameter is used to create lines between user-defined lines, so that not every
line must be specified in the command file. Sentaurus Process smoothly grades the line
density between user-defined lines to match as closely as possible the spacing at each user-
defined line. In addition, there will be lines at locations given by the location parameter
of the line command. By default, the spacing parameter is extremely large, so that if it
is not set, only lines given by the location parameter will be in the mesh.
■ The *lo parameter refers to the lowest coordinate value, that is, the location of the line
corresponding to the xlo tag must be less than the coordinate corresponding to the xhi tag.
■ The region command can be used to tag a region as a substrate in two ways:
• If the region is being defined with the material name and the parameters *hi and *lo,
the Boolean keyword substrate will tag this region as the substrate.
• If the structure is being loaded from a previously saved file, the command:
region name=<region_name> substrate
will tag the region with region_name as the name of the substrate. This is the only
occasion when the region command will be called after the init command.
Many process steps such as etching, deposition, diffusion, and implantation require a gas mesh.
By default, Sentaurus Process does not add a gas mesh during the init command, but delays
creating the gas mesh until it is needed. To add the gas mesh immediately, use the command:
pdbSet Grid AddGasMesh 1
NOTE The parameter must be set before the init command to generate the
gas mesh during the init command.
There are several ways to initialize fields at the time the initial structure is created from line
and region commands:
■ To initialize data everywhere in the structure, a field specification can be given in the init
command.
■ To initialize data in one particular region only, a field specification is given in the region
command.
In both the init and region commands, the field parameter specifies the name of the data
field that will be created and either the concentration parameter or the resistivity
parameter is used to specify the value created. Although initialization was intended for
dopants, a field with any name can be initialized with the concentration parameter.
However, it will create a field with nodal values and, because stresses are computed on
elements, it should not be used for initializing stress values (use the stressdata command or
the select command for this). The resistivity parameter only works for fields that have
the resistivity parameters set (which by default are only As, B, P, Sb, and In in silicon). The
init command also is used to read a structure from a file. In this case, the parameter name
serves as the type specification, and the value of the parameter is the file name or root name (in
the case of DF–ISE), for example:
init dfise=file ;# Read '[Link]' and '[Link]'.
# If not available try '[Link]' and '[Link]'
init dfise=[Link] ;# Only read a structure (no data) from '[Link]'
# or '[Link]'
init tdr=file ;# Read a geometry, data, and pdb parameters from
# '[Link]'.
init bnd=file ;# Read a bnd file and mesh it.
The TDR format is used to restart a simulation by default when creating ‘splits’ in Sentaurus
Workbench. This format stores all pdb parameter settings as well as numerous other settings
coming from commands (see Saving a Structure for Restarting the Simulation on page 74).
The bnd parameter is used to load boundaries that are then meshed by MGOALS. In this case,
the structure is meshed with the constrained Delaunay mesher, which makes use of lines
coming from the line command.
The init command is used to specify the principal wafer orientation ([Link]), the
lateral crystal orientation of the wafer flat or notch ([Link]), and the [Link]
for the implant command, that is angle:
init [Link]= {<i> <j> <k>} [Link]= {<i> <j> <k>} [Link]=<n>
where <i>, <j>, and <k> are the crystallographic (Miller) indices. For more information about
the wafer orientation and the slice angle, see 2D Coordinate System on page 89.
You also can set the [Link] by using a 2D cutline, for example:
init [Link]= [CutLine2D <x1> <y1> <x2> <y2>]
The first two values define the start point, and the third and fourth values define the endpoint
in the wafer plane. The two points are defined in the wafer coordinate system (see
Understanding Coordinate Systems on page 64).
Table 2 lists the crystallographic directions of the wafer axes for the most common
crystallographic orientations of the wafer as shown in Figure 16 on page 64.
Sentaurus Process also allows you to define different crystal orientations for different regions
by using the commands:
pdbSetDoubleArray <region_name> [Link] <double array>
pdbSetDoubleArray <region_name> [Link] <double array>
Similarly, if line x, line y, and line z commands have been specified, grid 2D can be
used to extrude a 1D structure to two dimensions, and a 1D or 2D structure is extruded to three
dimensions using grid 3D or grid FullD. This functionality also can be used to increase
the dimension of structures loaded from files. After the structure has been loaded, line
commands can be issued and the dimension of the structure will increase automatically when
necessary or manually using the grid command.
Sentaurus Process does not provide a facility to reduce the dimension of a simulation.
When structures are saved to DF–ISE files or TDR files (other than TDR restart files), the
current maximum dimension as specified with line commands is used by default in the file.
The dimension of the simulation itself is not affected. To save files in the current dimension,
the !FullD parameter of the struct command can be used (see Saving and Visualizing
Structures on page 73). TDR restart files are always saved in the dimension currently used in
the simulation.
The TDR format allows for the saving and loading of geometry and data information along
with pdb parameters. For more information about file types and standard file extensions, see
File Types Used in Sentaurus Process on page 46.
The TDR format is the preferred file format over the DF–ISE format. TDR files can be used to
split a simulation, and restart and continue the simulation as if no file save or file load was
performed. Besides the simulation grid and data, additional information is stored to facilitate
such a restart. Only TDR files provide such restart capability; simulation results will differ if a
simulation is performed in one contiguous run compared to saving and loading the intermediate
state into _bnd.tdr or DF–ISE files.
Setting the parameter math coord.<coord name> configures whether the visualization
coordinates will be identical to the simulation ones (when using [Link]) or will follow
the DF–ISE criteria (when using [Link]).
When using DF–ISE, it is important to understand the difference between the simulation
coordinates used by Sentaurus Process and the coordinates seen in Tecplot SV. For Sentaurus
Process, the positive x-direction always points into the substrate in 1D, 2D, and 3D. TDR and
Tecplot SV have different axis directions in 1D, 2D, and 3D. With [Link], Sentaurus
Process rotates the structure into the DF–ISE coordinate system when saving the structure and
rotates the structure back when reading it.
Figure 19 on page 67 shows the relation between the UCS and DF–ISE coordinates. The
exposed surface of the substrate is oriented upwards; that is, the ‘up’ direction is always in the
negative x-direction in the UCS.
To select the fields stored in TDR files, use the SetTDRList command. Each field name in the
SetTDRList command is added to the list of fields, which are usually saved (if the field is
present in the structure). This command also takes as arguments the macro parameters
Dopants and Solutions, and their negative counterparts !Solutions and !Dopants.
Solutions refers to variables of partial differential equations (PDEs). The solution variables
must be stored in a TDR file if that file is to be used to continue a simulation. The parameter
Dopants refers to the total and active dopant concentration fields. By default, TDR files are
saved with both Solutions and Dopants names in SetTDRList. However, this requires
many fields to be stored in the TDR files and, sometimes, it is more convenient to have fewer
fields.
To do this, set !Solutions in SetTDRList, which unselects all fields. Then, specify the field
names to be stored in the TDR file (see SetAtomistic on page 1056 for saving KMC fields).
When saving files using the TDR format, the current state of the parameter database is, by
default, saved in the file. The parameter database contains all of the information necessary to
restart a simulation including:
■ Model settings
■ Parameter settings
■ Mesh settings from the mgoals command
■ Refinement boxes from the refinebox command
■ Temperature ramps from the temp_ramp command
■ Gas flow specifications from the gas_flow command
■ Line specifications from the line command
■ Region specifications from the region command
■ Reaction specifications from the reaction command
■ Specifications for point, polygon, polyhedron
■ Doping specifications with the doping command
■ User materials created with the mater command
■ Contact definitions created with the contact command
■ Mask definitions created with the mask command
■ Solution commands can be optionally stored using the store parameter of the solution
command
■ Term commands can be optionally stored using the store parameter of the term
command
■ Global Tcl variables can be stored with fset
■ Tcl procedures can be stored using fproc
By default, when loading a TDR file, the changes in the parameter database are read in from
the TDR file and are applied. For information about the TDR format, refer to the Sentaurus
Data Explorer User Guide.
When saving a TDR file, the coordinate system used for visualization is also included in the
file and is used by Tecplot SV when opening it. The visualization coordinate system can be
changed using the math pdb command.
In general, there are three main steps to saving a structure appropriate for device simulation:
1. Define contacts.
2. Remesh the structure with appropriate refinement for device simulation.
3. Save the structure with contacts and with Delaunay weights.
Contacts are defined using the contact command. There are two main ways to define
contacts, either:
■ Using a box where the contact is created at the intersection of a material interface and a box.
■ Using a point contact in which a region is specified by giving a point inside the region; then
all boundaries of this region become a contact.
The contact is given a name and, if the command is executed multiple times with the same
contact and the add parameter, the contact will include all parts specified. There are also
options for creating a contact on the outer boundaries and so on. For more information, see
contact on page 861.
Remeshing the structure is needed to create a mesh that is better suited to device simulation.
Typically, this means discarding process-based refinements, creating a very fine mesh under
the channel, and refining on the p-n junction. A typical sequence of steps is:
■ Clear the process mesh:
refinebox clear
line clear
■ Reset default settings for adaptive meshing:
pdbSet Grid AdaptiveField [Link] 1.e37
pdbSet Grid AdaptiveField [Link] 1e10
pdbSet Grid AdaptiveField [Link] 100.0
To save the structure with contacts and to remove the gas and interfaces, it is easiest to use the
command struct smesh=<filename>. In addition to omitting structural features not
needed for device simulation, this command also chooses the minimal set of fields needed for
device simulation (that is, dopants and nodal stresses).
Delaunay weights can be saved in the structure intended for device simulation by setting these
parameters before generating the mesh:
pdbSet Grid SnMesh StoreDelaunayWeight 1
pdbSet Grid [Link] 1
Basic process simulation capabilities such as etching, deposition, and implantation with Monte
Carlo are available for multicomponent materials, for example, silicon carbide (SiC) and
gallium nitride (GaN). However, there are no activation models for dopants in these materials.
To create active doping concentration fields that are equal to their associated total fields, when
saving a file for transfer to device simulation, use the diffuse command with zero time, for
example:
diffuse time=0 temperature=900
struct smesh= <file name>
To store .plx files, use the WritePlx command. The command SetPlxList selects the
fields to be stored in the .plx file. The command SetPlxList is similar to the
SetDFISEList command, except that no fields are selected by default. Only the field names
specified in SetPlxList are stored in the .plx file (see SetPlxList on page 1060 and WritePlx
on page 1113).
The command struct also saves a 1D TDR file if the proper cutting coordinates are specified.
In 2D, only one cutting coordinate is needed (either x or y; coordinate z makes no sense here).
In 3D, the command saves the intersection of the planes specified by two cutting coordinates
(for example, specifying x and z will save the y line containing those x- and z-coordinates). In
addition to storing the mesh and data, these files save any contacts that apply at the cut point,
so that the file can be loaded into Sentaurus Device for electrical analysis. This file can be
visualized with Tecplot SV.
picks up all the x-coordinates with y=0.5 and saves them in a 1D TDR file.
The select command is a versatile command for many operations such as viewing results,
postprocessing, and initializing or changing datasets. The basic command is:
select z=<expression>
This selected field can be viewed with [Link] or print.1d, for example, or the
integrated values can be obtained using the layers command. The select command can also
be used to set an existing data field or create a new data field, for example:
select z=1.0 name=MyDataField ;# create a new datafield named MyDataField
# and set it to 1.0 (everywhere)
Sentaurus Process reads the file [Link] and sets the field Boron accordingly.
References
[1] B. B. Welch, Practical Programming in Tcl & Tk, Upper Saddle River, New Jersey:
Prentice Hall PTR, 3rd ed., 2000.
Overview
Ion implantation is one of the most widely used processing techniques to introduce impurity
atoms into semiconductor materials. In Sentaurus Process, either analytic functions or the
Monte Carlo (MC) method is used to compute the distribution of implanted ions and the
implantation damage. Analytic implantation models use the simple Gaussian and Pearson as
well as the advanced dual Pearson functions. The implantation damage with analytic models is
calculated according to the Hobler model [1]. The MC method uses a statistical approach to the
calculation of the penetration of implanted ions into the target and accumulation of crystal
damage based on the binary collision approximation [2].
Analytic implantation simulates the spatial distribution of the implanted ions based on the
selected distribution function, which is described by moments. The distribution moments
depend on the ionic species, implantation energy, dose, and tilt and rotation angles. Sets of
moments for a given range of implantation parameters are provided in the form of lookup
tables. Sentaurus Process can use implantation tables in the Dios format, TSUPREM-4
formats, and the Taurus Process table format. The implantation data available includes the
default tables [3], the Advanced Calibration tables [4], the Taurus table set [5], and the original
Tasch tables [6].
Sentaurus Process handles 1D, 2D, and 3D geometries for both analytic implantation
simulations and MC simulations. The algorithms for analytic implantation are an integral part
of Sentaurus Process; whereas, MC simulations are performed with the binary collision code
Sentaurus MC [7] or Crystal-TRIM [8].
Sentaurus Process simulates an analytic implantation step producing output such as:
---------------------------------------------------------------- implant -----
implant energy=35.00<keV> dose=1.00e.+14<cm-2> tilt=7.00<degree>
rotation=-90.00<degree> Boron
------------------------------------------------------------------------------
Species = Boron
Dataset = Boron
Energy = 35keV
Dose (WaferDose) = 1e+14/cm2
BeamDose = 1.0075e+14/cm2
Tilt = 7deg
Tilt2D = 7deg
Rotation = -90deg
Slice angle = -90deg
Temperature = 300.00K
For a description of the analytic implantation mode, see Analytic Implantation on page 90.
To switch from analytic implantation to MC implantation with Sentaurus MC, use the logical
switch [Link] (or its alias tmc):
implant <dopant> [energy=<n>] [dose=<n>] [tilt=<n>] [rotation=<n>]
[[Link]]
To switch from analytic implantation to MC implantation with Crystal-TRIM, use the logical
switch crystaltrim (or its alias ctrim):
implant <dopant> [energy=<n>] [dose=<n>] [tilt=<n>] [rotation=<n>]
[crystaltrim]
A TDR file must be specified with the file selector. [Link] works with files created by
either Sentaurus MC or Crystal-TRIM. For a full description of the file-loading mode, see
Loading External Profiles on page 183.
The implantation energy in the implant <dopant> facility is given in keV by default. The
implantation dose has two modes:
■ The wafer dose (WaferDose), which refers to the expected dose in the structure after the
2
implantation is finished. This dose is measured in ions per cm .
■ Alternatively, the implantation dose can mean the beam dose (BeamDose).
In the wafer dose mode, the final implanted dose does not depend on the wafer orientation with
respect to the ion beam. In the beam dose mode, the final implanted dose may change as tilt
and rotation angles change. For a discussion of the meaning and implications of the tilt and
rotation angles, see Coordinate System on page 87. All angles are measured in degrees.
The mode of the implant dose can be specified with the following pdb switches:
pdbSet ImplantData DoseControl {Default WaferDose BeamDose}
The default value of DoseControl switch is Default, in which case, the mode of implant
dose is chosen automatically based on the implant table format. If the currently selected
implant tables are in Taurus/TSUPREM-4 format, the beam dose mode is used automatically.
Otherwise, the wafer dose mode is applied. If the DoseControl switch is set to WaferDose,
the wafer dose mode is used for all implantations regardless of table formats, likewise for
BeamDose.
To override these global settings, use the logical switch [Link] in the implant
command:
implant <dopant> [dose=<n>] [[Link] ![Link]]
NOTE The main parameters for the implant statements energy, dose, tilt,
and rotation must always be specified. Otherwise, default values are
chosen that may not reflect the assumed process conditions.
In addition to energy, dose, tilt, and rotation, you can specify the implant temperature
and the dose rate. Temperature and current are recognized as parameters by the format moment
tables of Taurus Process.
If the structure is completely covered by photoresist, you can omit an implantation step by
using the following pdb command:
pdbSet ImplantData ResistSkip 1
The amount of information printed to the log file and displayed is controlled by the parameter
info in the implant command. The value of info must be set to an integer value between 0
and 2. The higher the value, the more detailed information is printed to the log file and
displayed. Output messages with an information level less than 3 can be easily understood by
typical users.
NOTE Messages with info=3 or more are better understood by users with
greater knowledge of the Sentaurus Process implantation code and is
reserved for debugging.
Selecting Models
The implanted species must be a previously initialized species. To initialize an implantation
species, use the implant species=<dopant> facility, that is:
implant species=<dopant> <material> [[Link]=<file>] [model] [damage]
Here, dopant can be any name, while material should be an initialized material (see
Material Specification on page 50). To select the implantation table file, containing moments
for the primary and lateral distributions, use the keyword [Link]. The <model> switch
selects the implant model. The available choices are discussed in Primary Distribution
Functions on page 92. The following models are available:
■ Gaussian distribution: gaussian
■ Single Pearson distribution: pearson
■ Single Pearson distribution with linear exponential tail: pearson.s
■ Dual Pearson distribution: dualpearson
■ External distribution: [Link]
The following command, for example, changes the default implantation table for boron in
silicon to my_table.tab and the implant model to pearson. It also switches off the damage
calculation for boron in silicon:
implant species=Boron Silicon [Link]=my_table.tab pearson !damage
At the beginning of a Sentaurus Process run, all species are initialized automatically using the
implant species=<dopant> facility.
Table 3 lists the species that are supported and recognized in a Sentaurus Process run.
Aluminum, Antimony, Arsenic, AsH2,BF2, Used in analytic and MC implantation. Implant tables
Boron, Carbon, Fluorine, B10H14, are available for atomic species and molecular BF2.
Gallium, Germanium, Indium, B18H22, BCl2, For other molecular species, implantation is performed
Nitrogen, Phosphorus, C2B10H12, based on the tables for primary dopant species (As, B,
Silicon C2B10H14,PH2 or P).
You can overwrite or extend these settings at any time during a Sentaurus Process run. There
are three principal ways to change the initial settings. With the previously described command,
you can change the settings for one pair of dopant species and material. To overwrite the
settings for one particular dopant species in all materials, use:
implant [species=<dopant>] tables=<name>
The <name> string selects a set of tables and model switches. Internally, Sentaurus Process
executes a set of implant species=<dopant> <material> commands, which set the
implant parameters for one pair of dopant species and material, respectively.
The possible choices for <name> are discussed in Tables on page 102. The following settings
are available:
■ Mixed dual Pearson and single Pearson tables: Default
■ Taurus Process table set: Taurus
■ University of Texas tables: Tasch
■ Single Pearson tables used in Dios: Dios
■ TSUPREM-4 native implant tables: TSuprem4
For example, the following command changes all implant specifications for the species boron
from the default to the Dios implantation tables and models:
implant species=Boron tables=Dios
If the above command is given without the keyword species, that is:
implant tables=<name>
the implant tables and model switches are overwritten for all species in all materials. The
default setting for <name> is Default and the command:
implant tables=Default
is equivalent to the (default) initialization of all species and models at the beginning of each
Sentaurus Process run.
Taurus Tables
The command:
implant tables=Taurus [[Link]=<suffix>] [[Link]=<suffix>]
switches to the Taurus mode. This means that Sentaurus Process uses the same moment tables
as the Taurus Process implant library in TSUPREM-4. The file names for Taurus tables are
conventionally named as <ion>_in_<material>_<suffix> and
<ion>_damage_in_<material>_<suffix> for implant data and damage data,
respectively. The default suffix is standard for both implant data and damage data. The
optional parameters [Link] and [Link] can be used to change the default suffix for
implant data and damage data, respectively. By using different suffices, different tables for the
same species/material combination can coexist in the same directory.
In addition, if tables=Taurus was specified, several models are switched on that are not used
by default. These models are:
■ Beam dose control: [Link] (see Overview on page 79)
■ Proportional range scaling: [Link] (see Multilayer Implantations on page 109)
■ Effective channelling suppression: [Link] (see Screening (Cap)
Layer-dependent Moments on page 96)
■ Profile reshaping: [Link] (see Profile Reshaping on page 123)
■ Preamorphization implants (PAI): pai (see Preamorphization Implantation (PAI) Model
on page 119)
NOTE This does not give the same results as TSUPREM-4; however, the
results are similar.
Sentaurus Process also can read implant tables in TSUPREM-4 native format. To select native
TSUPREM-4 implant tables, use the command:
implant [species=<c>] tables=TSuprem4 [[Link]=<c>]
If species is specified, TSUPREM-4 implant tables are applied to this particular species only.
If species is not specified, implant tables are applied to all TSUPREM-4 supported species,
which include antimony, arsenic, BF2, boron, fluorine, indium, fluorine, and phosphorus.
The name of the TSUPREM-4 native implant table conventionally uses the species name or the
species name with a prefix. Eight different implant tables in silicon are distinguished by a
prefix. For example, chboron (which means channeling boron) is one of the boron implant
tables in silicon.
The parameter [Link] takes one of the followings values: default, none, le, ch,
dual, ut, tr, or scr:
■ The default value is [Link]=default, which selects TSUPREM-4 default implant
tables, that is, antimony, fluorine, chboron, [Link], [Link], dual.bf2, and
[Link] for antimony, fluorine, boron, arsenic, phosphorus, BF2, and indium,
respectively.
■ If [Link]=none, no prefix is added, so the TSUPREM-4 implant tables (antimony,
boron, and so on) are used for antimony, boron, and so on, respectively. If the
corresponding table for a species in a material is not available, the default table is used.
■ If [Link]=le or ch, then le<species> or ch<species> tables are selected, for
example, leboron or chboron for boron implantation. If the corresponding table for a
species in a material is not available, the default table is used.
■ If [Link]=dual, ut, tr, or scr, then <prefix>.<species> tables are selected,
for example, [Link], [Link], [Link], and [Link] for boron
implantation. If the corresponding table for a species in a material is not available, the
default table is used.
You also can use your own TSUPREM-4 native-formatted implant tables by using the
following command:
implant species=<dopant> <material> [Link]=<file> [Link]=<name>
[Link]=<name>
[Link] specifies the file name (which should have the file-name extension .ts4) that
contains implant moment tables in TSUPREM-4 format, such as mys4imp0.ts4. If the file is
in the same directory where Sentaurus Process is being run, then only the name of the file is
needed for [Link]; otherwise, the full path is required. [Link] specifies the
TSUPREM-4 table name for the dopant, which is one of the predefined impurity names in the
implant data file. For example, in the standard s4imp0, the valid names for boron implant are
boron, leboron, chboron, [Link], [Link], and [Link]. [Link]
specifies the material name used in TSUPREM-4, which is one of the predefined material
names in the implant data file. For example, in the standard s4imp0, the material names
include silicon, polysilicon, oxide, nitride, and so on.
If not specified, [Link] and [Link] default to the species name (for example,
Boron) and the material name (for example, Silicon) used in Sentaurus Process,
respectively.
NOTE Ensure that these names match exactly the names in the TSUPREM-4
implant data file. While these names are not case sensitive, they cannot
be abbreviated. For example, while [Link]=Polysilicon is
acceptable; [Link]=poly will result in an error.
Multirotation Implantation
The simulation of multirotation implantations for both the MC and analytic methods is
controlled by the integer parameter [Link]=<n>. If [Link] is set to a number higher
than 1, an implantation with a revolving ion beam is simulated. Starting with the user-defined
rotation angle, Sentaurus Process performs [Link] implantations with the same energy
and tilt in one implant command.
The rotation angle is incremented by ( 360° )/[Link] and, for each implantation step, the
dose is the 1/[Link]-th part of the user-specified dose.
Then, Sentaurus Process treats the implantation as two separate implantations in the following
order:
implant dose=<n1*fraction> energy=<n3> ...
implant dose=<n1*(1-fraction)> energy=<n2> ...
Coordinate System
ZW YW
tilt ion beam
rotation
YW
XW
rotation
XW
Figure 21 Tilt and rotation angles for implantation; beam angle shown corresponds
to tilt = 20 and rotation = 45
The tilt and rotation angles are measured from the ion beam to the wafer z-axis and wafer y-
axis, respectively. In this definition, the tilt angle is always positive, and between 0° (inclusive)
and 90° . However, for convenience, a negative tilt angle is allowed, and it is converted
automatically to a positive tilt by adding 180° to the specified rotation angle. The rotation
angle is positive when the beam is rotated in the clockwise direction about the wafer z-axis,
and it is negative when it is counterclockwise.
Since the tilt and rotation angles are measured with respect to the wafer axes, the direction of
the beam in the simulation coordinate system depends on the slice angle.
Figure 22 shows the relationship between wafer coordinates, simulation coordinates, and the
beam direction.
ZW tilt ion beam [Link] YW
ZS
YS
rotation
YS
[Link]
YW
XW
ZS XS
rotation
XS XW
Figure 22 Tilt and rotation angles for implantation; angles shown correspond to tilt = 20,
rotation = 45, and [Link] = 60
The default values of tilt and rotation are 7° and – 90° , respectively; in other words, by
default the incident ion beam is directed parallel to the wafer flat tilted away from the wafer x-
axis. For the default slice angle of – 90° , this corresponds to an ion beam in the simulator xy
plane, tilted away from the simulator y-axis. In a 2D simulation, the default ion beam comes
from the left side.
Figure 23 on page 89 shows the projection into the wafer plane of the direction from which the
beam strikes the wafer for tilt > 0 and various rotation angles.
0o
XS
–90o 90o
YS
ZS
180o
Figure 24 shows clearly that the orientations shown in Figure 23 are consistent with the
conventions defined in Figure 21 on page 87. A rotation of 90° corresponds to rotating the
wafer a quarter turn counterclockwise.
ion beam ion beam
90o
rotate wafer +90o
90o
2D Coordinate System
In a 2D simulation, the orientation of the 2D simulation plane with respect to the wafer
coordinate system must be defined. The angle between the 2D simulation plane and the y-axis
is set by the [Link]. The default value is – 90° , which orients the 2D simulation plane
parallel to the wafer flat. The transformed y-axis (ys) is the y-axis in the 2D simulation plane.
The <x1> and <y1> define the start point, and <x2> and <y2> define the end point in the wafer
plane. The two points are in the wafer coordinate system (for more information on coordinate
systems, see Understanding Coordinate Systems on page 64).
In general, the tilt projected to the 2D simulation plane is different from the tilt value. It is
given by the geometric relation:
cos ( tilt )
cos ( tilt2D ) = ----------------------------------------------------------------------------------------------------------------------------------------------------------- (1)
cos 2 ( tilt ) + sin 2 ( tilt ) ⋅ cos 2 ( rotation+[Link] )
The angle tilt2D can be found in the output of Sentaurus Process and can be negative
depending on the rotation angle and slice angle.
The tilt value defines the relation between the wafer dose (dose), which is given at the
command line by default and the dose, which would have to be specified in the beam-dose
mode to obtain the same final implanted dose, that is:
dose
BeamDose = -------------------------- (2)
cos ( tilt )
BeamDose2D as it appears in the Sentaurus Process output is defined using tilt2D, that is:
dose
BeamDose2D = --------------------------- (3)
cos ( tilt2D )
Analytic Implantation
Analytic implantation is performed using empirical point-response distributions. Point-
response distributions are generated using the method of moments. The moments representing
the primary and lateral point-response functions are taken from implantation tables.
For the purposes of 2D simulations based on analytic functions, an ion beam incident at the
point ( ξ, η ) is assumed to generate a distribution function F(x, y, ξ, η) .
C(x,y) = N d F ( x, y, ξ ( s )η
, ( s ) ) ds (4)
Γ gas
where N d is the total dose per exposed area and C ( x, y ) is the doping profile.
(ξ,η)
(x,y)
To perform the computation of the convolution integral in 2D, Sentaurus Process uses a set of
lateral intervals perpendicular to the projected ion beam. A local 1D layer structure is
computed in each interval. The spacing and width of these intervals depend on the complexity
of the exposed gas surface.
In 3D, Sentaurus Process uses a slightly different algorithm. The point-response function is a
3D function. The lateral function f l ( x ) is also used in the third direction:
F ( x, y, z, ξ, η , Θ ) = f p(x – ξ(s)) ⋅ f l ( y – η (s) ) ⋅ f l ( z – Θ ( s ) ) (6)
The previous model selection is used if no selection for <model> is made. The primary
distribution is used to represent the point-response function in 1D or the vertical point-response
in 2D and 3D. Point-response functions are characterized by moments.
Rp = x ⋅ f ( x ) ⋅ dx (7)
–∞
( x – Rp )
i
mi = ⋅ f ( x ) ⋅ dx (8)
–∞
The standard deviation σ , the skewness γ , and the kurtosis β are defined as:
σ = m2 (9)
m3
γ = ------3 (10)
σ
m4
β = ------4 (11)
σ
γ = 0 (13)
β = 3 (14)
The Pearson distributions are the solution to the following differential equations:
d y–a
f ( y ) = ---------------------------------------------2- ⋅ f ( y ) , y = x – Rp (15)
dy b0 + b1 ⋅ y + b2 ⋅ y
γ ⋅ σ ⋅ (β + 3)
a = b 1 = – --------------------------------
A
2 2
σ ⋅ ( 4β – 3γ )
b 0 = – ------------------------------------
A (16)
2
2β – 3γ – 6
b 2 = – ------------------------------
A
A = 10β – 12γ 2 – 18
0 < γ < 32
48 + 39γ 2 + 6 ( γ 2 + 4 ) 3 ⁄ 2 Type V (18)
β = ------------------------------------------------------------
-
32 – γ 2
0 < γ < 32
48 + 39γ 2 + 6 ( γ 2 + 4 ) 3 ⁄ 2 Type VI (19)
3 + 1.5 ⋅ γ < β < ------------------------------------------------------------
-
32 – γ 2
Sentaurus Process automatically switches between the Pearson–IV, Pearson–V, and Pearson–
VI distribution functions depending on the conditions for γ and β given in Eq. 17 to Eq. 19.
The factor K is chosen to fulfill the normalization condition:
∞
fp ( x ) dx = 1 (21)
–∞
A linear exponential tail is added to the Pearson distribution. This is performed in an attempt
to describe more accurately the profile tails for some implantations, that is:
where P p is the Pearson distribution, P v is a transition function, and P i is the exponential tail.
The decay length of the exponential tail is give by the parameter l exp :
x max : P max := P p ( x max ) = maxP p ( x )
1
x a ≥ x max : P a := P p ( x a ) = --- P p ( x max )
2
(23)
P v ( x ) = P p ( x max ) ⋅ exp ( A 1 ( x – x max ) 2 + B ( x – x max ) 3 )
x – xmax x – x max
P l ( x ) = P p ( x ) + -------------------- ⋅ P p ( x max ) ⋅ exp – --------------------
l exp l exp
and:
d d
P (x) = P (x) =: P′ a
dx l xa dx v xa
Pa
3 ln ------------
P max P′ a
A 1 = -----------------------------2- – ----------------------------------
( x a – x max ) P a a – x max )
( x (25)
Pa
– 2 ln ------------
P max P′ a
B = -----------------------------3- + -----------------------------------2-
( x a – x max ) P a ( x a – x max )
NOTE Exponential tail distributions are available with the Dios tables.
However, care is required when using the exponential tail for
implantation with large tilt angles. The l exp -fit in these tables was
performed for a standard 7° tilt in amorphous materials and does not
apply to large tilt angles or strong channeling conditions.
The most advanced primary distributions are available with the dual Pearson function [9],
which can be chosen with the switch dualpearson. The dual Pearson model includes a
superposition of two Pearson functions:
f p ( x ) = ratio ⋅ f head ( x ) + ( 1 – ratio ) ⋅ f tail ( x ) (26)
The head and tail functions are two independent Pearson functions. The head function accounts
for the profile of ions that do not channel (nonchanneling or amorphous part). The tail function
accounts for the channeled ions that form the characteristic tail in the implantation profile.
A dualpearson function is characterized by nine parameters: the two sets of four Pearson
parameters and the ratio between the amorphous and channeling doses. These parameters are
usually taken from moment table files.
You can set the individual moments directly in the Sentaurus Process command line, for
example:
implant species=<dopant> <material> [rp=<n>] [stdev=<n>] [gamma=<n>]
[beta=<n>] [rp2=<n>] [stdev2=<n>] [gamma2=<n>] [beta2=<n>] [ratio=<n>]
[[Link]=<n>] [lat.stdev2=<n>]
This overwrites the parameters found in the specified implant table. Using this facility, it is also
possible to force the Pearson distributions in the dualpearson and pearson models to
behave like a Gaussian distribution, for example:
implant species=Boron Silicon pearson gamma=0 beta=3
The first statement sets the implantation model to a Pearson distribution. The parameters are
read from the default table. The skewness and kurtosis are set according to Eq. 13 and Eq. 14,
overwriting the values found in the table. This results in a Gaussian distribution for the function
characterizing the amorphous part of the profile.
You can enable or disable individual moments using <moment>.isset pdb switches, where
<moment> is the name of the moments such as rp, stdev, rp2, stdev2, and so on. For
example:
pdbSetBoolean Silicon Boron [Link] 0
NOTE All moments set at the command line are ignored after a new implant
table is selected, or an implant table has been specified again using the
implant species=<species> <material> [Link]=<name>
command. In this case, the moments from this new implant table will
then be used, regardless of which moments have been set previously at
the command line.
tj fj
cap eff
ti = (27)
j
that is, as the sum over the thicknesses of all layers above the current layer multiplied by
eff
corresponding efficiency factors f j . These factors can be set for a particular material and a
species using:
implant species=Boron Oxide [Link] 1.0
The default value is 1 for all materials other than silicon, where it is set to zero. Therefore,
silicon layers are effectively not included in the total effective cap layer thickness.
If the implant table for a specific <material>/<species> combination does not contain an
explicit cap layer dependence, the effective channeling suppression model is used. This model
suppresses the channeling tail by multiplying the channeling part in Eq. 26 by a factor
r suppress calculated according to:
1
r suppress = ----------------------------------------------------------------------------------------------------------------------------------------------- (28)
C ( R ) MinRatio – Exponent
--- ⋅ -------------------------------------------------------- + --------------------------------
1 p, head
2 C ( R p, head ) + C ( R p, tail ) σ
where C ( R p, head ) and C ( R p, tail ) are the peak concentrations of the unscaled profile, and σ
is defined as:
ti
σ = -------
R pi
(29)
i
using the values of R p for the amorphous (head) part of the profile for all layers i above the
present layer. The amorphous part of the profile is multiplied by 1 – r suppress to conserve the
total dose.
MinRatio is the minimum value of the ratio σ . The parameters MinRatio and Exponent
can be set in the parameter database, that is:
pdbSet <material> <species> MinRatio
pdbSet <material> <species> Exponent
The model is applied only for values of σ greater than MinRatio and effective cap layer
thickness greater than 2.1 nm. The effective channeling suppression model can be switched on
using:
implant species=<species> <material> [[Link]]
The model remains inactive for explicitly cap layer–dependent implant tables.
NOTE This model is switched off by default and is switched on in the Taurus/
TSUPREM-4 mode.
Lateral Straggle
The lateral straggling of the distribution of implanted ions is specified by defining a lateral
distribution function, which is a Gaussian distribution with a lateral standard deviation σ l :
1 y
2
f l ( x, y ) = ------------------------ exp – ----------------
- (30)
2π σl ( x ) 2σ l2 ( x )
In general, the lateral standard deviation depends on the vertical depth of the profile. The depth
dependence can be switched on or off for a particular combination of dopant species and
material using the flag [Link]:
implant species=<dopant> <material> [[Link]]
The lateral standard deviation can also be set in the command line using the keyword
[Link]:
implant species=<dopant> <material> [[Link]=<n>] [lat.stdev2=<n>]
where lat.stdev2 sets the lateral standard deviation for the tail function. If either
[Link] or lat.stdev2 is set, Sentaurus Process switches to the depth-independent
lateral straggling. All [Link] switches are ignored in this case.
An additional scaling factor for both the depth-dependent and depth-independent lateral
standard deviation can be used to vary the lateral straggling:
implant species=<dopant> <material> [[Link]=<n>] [lat.scale2=<n>]
where lstdev and lv are parameters taken from the implantation table. There are two
independent sets of parameters for the two Pearson functions in the dualpearson model. This
formulation also is used with the Tasch implantation tables.
There is only one set of these parameters in each table entry. In the case of the dualpearson
implant model (see Eq. 32), the same set of parameters p1, p2, ... p5 together with the
standard deviation of the first Pearson function described by stdev is applied to both the
amorphous and the channeling part of the distribution.
σ l ( x ) = σ 0 ⋅ 1 + Δσ ------ – 1
x
Rp
(33)
The depth-independent standard deviation σ 0 and the depth-dependent slope Δσ are read
from the moment table.
This formulation is compatible with the Dios formulation (see Depth-dependent Lateral
Straggle: Dios Formulation) for the following conditions: p4 = 0 , p1 ⋅ p5 = – ∞ . The
remaining parameters can be translated as follows:
σ 0 = stdev ⋅ ( p2 + p3 )
(34)
Δσ = p2 ⁄ ( p2 + p3 )
■ Type 1
For light ion species:
N c exp x-- , x ≤ x0
vac 1 l
fp ( x ) = (36)
( x – R p ) 2
N c exp – ---------------------
- , x > x0
vac 2 2σ 2
where l is the decay length of the exponential function. The joining point x 0 is calculated
by:
2
σ
x 0 = R p – ------ (37)
l
■ Type 2
For heavier ions, the exponential tail is directed towards the bulk:
( x – Rp )
2
N c exp – ---------------------
- , x ≤ x 0
vac 2 2σ
2
fp ( x ) = (38)
N vac c exp x-- , x > x0
1 l
In this model, four parameters R p , σ , l , and N vac are required. These parameters were
obtained by MC simulations between 1 keV and 300 keV. If damage calculation is switched
on, that is, if:
implant species=<dopant> damage
has been set, Sentaurus Process generates these parameters using an internal lookup table,
which contains the original data available for boron, BF2, phosphorus, arsenic, and antimony
in silicon.
NOTE For some other species, the parameters of these original species are used
that are closest with respect to the atomic number in the periodic table
of elements. Nitrogen uses the boron parameters. Silicon and aluminum
use the phosphorus parameters. Germanium and gallium use the arsenic
parameters, and indium uses the antimony parameters. Damage
calculation is automatically switched off for any other species.
Type 0 is used for boron at energies E < 20 keV, phosphorus at E < 55 keV, and arsenic at
E > 170 keV. Type 1 is applied to boron and phosphorus elsewhere, and Type 2 is applied to
arsenic at energies below 170 keV and antimony at all energies.
The lateral distribution is modeled using Eq. 32. The five lateral parameters p1, p2, ...,
p5 are provided in the internal lookup table.
An alternative to the internal lookup table is to load a table file similar to the implant tables.
The keyword for this is [Link]:
implant species=<dopant> <material> [[Link]=<name>]
This overwrites the internal lookup table for the above mentioned species using the parameters
from the table instead. In addition, it enables damage calculation for species other than the
original ones.
Datasets
Several datasets are used to store the as-implanted profile and the implantation damage. Point-
defect profiles are created at the end of the implantation step. Datasets with the ending
_Implant contain profiles generated during subsequent implant steps. These datasets are
deleted at the beginning of the next diffuse step.
Damage Accumulative damage (damage history). At the end of an implant step, the
Damage_LastImp concentration is added using DFactor. This dataset is
deleted by the diffuse command.
Damage_LastImp Damage created during the last implant step. This dataset is deleted at the end
of the implant step.
Tables
Dios Tables
The subdirectory Dios/ contains the tables used by default in Dios. This tables can be made
the default tables for all species in Sentaurus Process by using:
implant tables=Dios
For arsenic, antimony, phosphorus, indium, germanium, gallium, nitrogen, and aluminum, the
data in these tables are taken from the literature [3]. The values for boron are obtained from
simulations with the 1D process simulator TESIM [11]. The values for energies ≥ 1 MeV are
taken from the literature [2]. These tables provide moments that can be used with the Gaussian
and Pearson implantation models.
Taurus Tables
The directory Taurus/ contains the Taurus Process implant tables for boron, BF2, phosphorus,
germanium, indium, antimony, and arsenic. To select these tables as the default, use the
keyword Taurus:
implant tables=Taurus
The tables contain calibrated data from sub-keV to above 10 MeV. The calibration was
performed using both SIMS data and Taurus MC calculations [5].
Default Tables
The directory Default/ contains tables extracted from MC simulations with Crystal-
TRIM [4], which are tabulated in DIOS format. The data are available for arsenic, antimony,
BF2, boron, phosphorus, indium, and germanium in silicon, polysilicon, oxide, and nitride.
These tables provide moments that can be used with all implantation models including the
dualpearson model. For silicon, dual Pearson moments are available that depend on energy,
tilt, dose, and cap-layer thickness. For polysilicon, oxide, and nitride, single Pearson moments
are available that depend on energy and tilt only.
The tables cover different energy ranges. The tilt angles range from 0° to 60° , and the oxide
thickness ranges from 0 nm to 100 nm. There are tables for low, medium, and high doses for
all species except germanium where only one table for a medium to high dose is available.
Sentaurus Process selects the correct table depending on the implant dose. These tables
constitute most of the default tables used in Sentaurus Process.
The default tables used in Sentaurus Process are selected by using the command:
implant tables=Default
This implant command not only selects the tables from the Default/ directory for arsenic,
antimony, BF2, boron, phosphorus, indium, and germanium in silicon, polysilicon, oxide, and
nitride, but also selects the tables from the Taurus/ directory for carbon, fluorine, and
germanium in silicon, polysilicon, oxide, and nitride (see Table 5). For all other species and
materials, the respective Dios tables are used.
NOTE Outside the specified range, the Default implant tables may fall back
to the Dios tables. Therefore, near the boundaries of the Default
tables, inconsistent results may occur.
Tasch Tables
The directory Tasch/ contains the University of Texas (UT) implant tables for boron, BF2,
phosphorus, and arsenic in silicon [12]. For all other materials and species, single Pearson
tables are available. The tables can be selected to be the default by using the keyword Tasch:
implant tables=Tasch
The tables cover different energy ranges. The boron table ibout1.s3 contains cap layer–
dependent implantation moments valid for thicknesses between 1.5–40 nm. The moments in all
other tables are cap-layer independent.
The valid range for the tilt is 0° to 10° and, for the rotation, the range is 0° to 45° . These
tables provide data to be used with all implant models.
The single Pearson tables provide only energy-dependent data covering the range between
10 keV and 1000 keV.
TSuprem4 Tables
The directory TSuprem4/ contains the TSUPREM-4 native implant tables, s4imp0.ts4, for
boron, BF2, phosphorus, indium, antimony, and arsenic. To select these tables as the default,
use the keyword TSuprem4 with an optional prefix:
implant tables=TSuprem4 [[Link]=<c>]
File Formats
Sentaurus Process handles a variety of table formats. The table format of the implantation table
is automatically recognized by Sentaurus Process from the file extension.
This format provides the simplest table format that can be used with Sentaurus Process. It
contains energy-dependent entries for the moments to be used with the (single) pearson or
gaussian model.
There is no dependence of the moments on dose, tilt, rotation, or cap layer thickness. Lines
with an asterisk in the first column are treated as comment lines. Missing or incomplete blocks
are not properly read when the file is parsed.
This format allows the handling of energy, dose, tilt, rotation, and cap-layer thickness–
dependent dual Pearson moments. A SUPREM-III implant table file consists of two sections:
one for the primary moments and one for lateral moments. Both sections start with a header,
which contains the parameter range covered by the table.
Lines with an asterisk in the first column are treated as comment lines. A table entry for a
particular combination of lookup parameters has the format:
*
rp stdev gamma beta rp2 stdev2 gamma2 beta2 ratio1
rp stdev gamma beta rp2 stdev2 gamma2 beta2 ratio2
...
rp stdev gamma beta rp2 stdev2 gamma2 beta2 ratio<NumberOfDoses>
Each line contains eight dualpearson moments and the ratio as defined in Eq. 26, p. 95. The
entries are ordered increasingly with respect to cap layer thickness, energy, tilt, and rotation.
The tables are for one species/material combination only. The cap-layer thickness, rp, rp2,
stdev, and stdev2 should be given in micrometers and the angles, in degrees. The energy
values must be specified in keV. No units must be specified in the tables.
The lateral part is organized in the same manner. Corresponding to the header information, the
entries are ordered in the same manner as in the primary part. Each entry has the format:
*
<void> lstdev lv lstdev2 lv2
The first item is void and can be used for information purposes. The parameters are used in
Eq. 31, p. 98 to calculate the depth-dependent lateral standard deviation. The units for lstdev
and lstdev2 are micrometers, whereas lv and lv2 are unitless.
The Dios table file format for implantation data files allows for dependencies on energy, dose,
tilt, rotation, and the cap-layer thickness. It provides the primary moments for all implantation
models including the dualpearson model. Parameters for depth-dependent lateral straggling
are available as well. The format of the table entries is:
# Look up parameters
material species thickness rotation tilt energy NumberOfFunctions
NumberOfDoses
# Primary moments
rp stdev <void> gamma beta lexp <void>
rp2 stdev2 <void> gamma2 beta2 lexp2 <void>
# Channeling table
dose ChannelingDose
dose ChannelingDose
...
# Lateral straggling
p1 p2 p3 p4 p5
Lines with a # character in the first column are treated as comment lines. Missing or incomplete
blocks are not read properly when the file is parsed.
The first block contains entries for the material and species names, cap-layer thickness, rotation
angle, tilt angle, and energy. The NumberOfFunctions defines the number of components of
the primary distribution function. A maximum of two functions are allowed. NumberOfDoses
defines the number of entries in the channeling table. Each entry consists of a dose and the
corresponding channeling dose. All doses are expected to be positive.
Dose
Nonchanneling Dose
1014
Channeling Dose
1013
Figure 26 Piecewise linear nonchanneling and channeling dose for a dual Pearson profile
as represented in default channeling table
The ratio between the amorphous part and channeling part in Eq. 26, p. 95 is calculated from
this channeling table:
ChannelingDose
ratio = 1 – --------------------------------------------
dose
(39)
The value for ChannelingDose is interpolated linearly using the value of the implant Dose.
The second block contains the moments for all the components of the primary distribution
function. Parameters, which by definition do not exist for the function the set describes, are
ignored.
NOTE Some entries are always ignored since they are not used in the implant
models of Sentaurus Process. For example, the last moment entry
(<void>) is always disregarded.
The third block contains the channeling table ordered with increasing dose, and the fourth
block contains parameters for the depth-dependent lateral straggling.
NOTE The entries must be increasingly ordered with respect to the cap-layer
thickness, rotation, tilt, and energy, so that the values for various
energies (but the same other three parameters) follow each other. All
data entries for the same material–dopant combination should follow
each other with no interruption by entries for another material–dopant
combination. The cap-layer thickness, rp, rp2, stdev, and stdev2
should be given in micrometers and the angles, in degrees. The energy
values must be specified in keV. No units must be specified in the tables.
The damage tables for the Hobler damage model are similar to the Dios table file format, which
allows for dependencies on energy, tilt, and rotation. The Hobler damage model table provides
the primary moments for the damage model. Moments for depth-dependent lateral straggling
are available as well. The format of the table entries is:
# Look up parameters
material species rotation tilt energy
# Primary moments
rp stdev decay nvac type
# Lateral straggling
p1 p2 p3 p4 p5
The syntax is the same as for the Dios table format. The item decay refers to the parameter l ,
and the item nvac refers to the parameter N vac in Analytic Damage: Hobler Model on page 99.
The item type refers to the type of Hobler model.
The Taurus table format, which is the most general table format used in Sentaurus Process,
handles data for all implant and damage models. Implant table files in the Taurus format have
no file extension; that is, an implant table file without a file extension is considered to be in the
Taurus format. It contains a file header and a block of numeric data. The file header consists of
a list of names of the implant conditions. The names should be lowercase only. The following
names are recognized:
energy tilt rotation dose screen temperature current
The sequence of these names can be arbitrary. Some names from this list can be omitted. The
following units should be used for the implant conditions:
energy,[keV]
tilt,[degrees]
rotation,[degrees]
dose,[cm-2]
screen,[um]
temperature,[K]
current,[mA/cm2]
The numeric data consists of an arbitrary number of lines that form the lookup tables for
implant conditions and implant moments. Each line should contain a list of numeric values for
the implant conditions followed by the implant moments. The numeric values should be
separated by space.
The number of the numeric values should be the same on each line. There should be at least
n+4 values per line for a gaussian profile, n+6 values per line for a pearson profile, and
n+13 values per line for a dualpearson profile, where n is the number of the implant
conditions specified in the file header.
The sequence of implant conditions should correspond exactly to the sequence of implant
condition names in the file header. The sequence of the implant moments in one line is fixed
as follows:
Any line that starts with a double slash // is considered a comment and is omitted. Always put
the double slash at the first position in the line.
If the requested set of implant conditions does not have an exact match in the lookup table, a
multidimensional linear interpolation is used. If a requested implant condition extends beyond
the range of the lookup table, the closest value from the lookup table is used.
If the lookup table contains several lines with identical sets of the implant conditions, only the
last set is used, and all the previous lines are discarded.
If a table contains data for the Hobler damage model, the following sequence of moments is
used:
rp stdev [Link] [Link] gamma beta decay nvac
Multilayer Implantations
Point-response functions are valid only for a single material layer. For multiple layers of
different materials, the point-response functions must be combined in a way that corrects the
effect of the different stopping power in the covering layers. This must be performed for each
lateral interval taking into account the local layer sequence parallel to the ion beam. Two
algorithms are available in Sentaurus Process: numerical range scaling (NRS) [13] and dose-
matching [12]. Both algorithms calculate a shift δ i applied to the primary point-response
function. Sentaurus Process also provides an option no, which switches off the matching. In
this case, δ i is set to zero in all layers.
The default value of MatchControl is range. In addition, you can select locally the matching
algorithm with the keyword match in each implant command:
implant <dopant> [match={no range dose}]
The locally selected algorithm overwrites the one globally set in the PDB.
The NRS algorithm accounts for the different stopping power in different materials using the
ratio of the projected ranges of the materials.
C(x) C(x)
Rp2+δ2 Rp2
δ2
x x
Figure 27 NRS algorithm: the point-response function in the second material is shifted and
rescaled (left) due to existence of a layer with different stopping power (shaded
region); the new profile is combined from the point response in the first layer and
shifted point response in the second layer (right).
where t j = d j – d j – 1 represents the thickness of the j -th layer. The profiles are matched
according to:
where α i is a rescaling factor that satisfies the normalization condition. The point-response
function in the first layer is always used without a shift.
The proportional range shift model is used to shift the channeling portion of the implant profile
independent of the amorphous part. To calculate the shift of the channeling part, the shift of the
amorphous part is scaled by the ratio of the channeling range and the amorphous range:
R pi, tail
δ i, tail = δ i, head ----------------------- (42)
R pi, head
The default setting for this model is off. In the Taurus/TSUPREM-4 mode, the switch is set to
on.
The dose-matching algorithm can be selected with the option dose. The shift δ i is calculated
according to the dose accumulated in the above layers:
δ i = d i – d eff
d eff
(43)
D sofar = f p ( x ) dx
0
where d i is the position of the top of the i -th layer. The dose D sofar is the integral over the
primary point-response function.
Lateral Integration
Local 1D layer structures are defined for a set of lateral intervals. These lateral intervals are
chosen perpendicular to the projection of the ion beam into the simulation plane as shown in
Figure 28 on page 113.
The width of the lateral intervals is controlled by several parameters set in the parameter
database. The default values can be changed by using:
pdbSet ImplantData LateralGridSpacing <n>
pdbSet ImplantData VerticalGridSpacing <n>
Starting from an initial grid, the intervals are bisected until a certain limit is reached. This limit
is set by LateralGridSpacing, which has the default value of 0.01 μm . Then, the intervals
are bisected again until a certain vertical limit is reached. This limit is set by
VerticalGridSpacing with the default value of 0.01 μm .
The lateral integration is limited to a certain range of intervals to the left and right of a mesh
node. This integration range depends on the maximum lateral standard deviation applied to the
structure.
Control over the lateral integration is possible by setting the number of lateral standard
deviations used to set the integration range:
y + Nσ l, max
The default value is 5, which means that the total lateral integration width is 10 σ l, max .
In 3D, the integration is performed over a square grid in the plane perpendicular to the ion
beam. The grid is centered about a mesh node. It has a fixed size and resolution. The size is
controlled by the parameter:
pdbSet ImplantData NumLateralStdev3D <n>
having the same meaning as the corresponding 2D parameter. The default value is 3.5. Each
interval is subdivided by a certain number of grid points. The subdivision can be set by using:
pdbSet ImplantData NumGridPoints3D <n>
The default value for NumGridPoints3D is 4. Therefore, the total number of grid points is
784. The size of the integration grid is the parameter that limits the time performance of
analytic implantation in 3D.
The lateral intervals are expanded by a certain amount over the left and right boundaries of the
2D device to ensure flat profiles on the left and right sides. This extension depends on the
implantation tilt and the maximum lateral standard deviation. The maximum extension can
be controlled from the parameter database. The value can be changed by using:
pdbSet ImplantData MaxLateralExtension <n>
The interpretation of the range and lateral range parameters depends on the value of the
implantation parameter primary. This can be set by using:
implant <dopant> [primary={beam wafer}]
The option beam switches to the beam projection mode. In this case, the primary moments are
applied along the projection of the ion beam onto the simulation plane, and the lateral
integration is performed perpendicular to the projection of the ion beam. This is the default
mode in Sentaurus Process. The option wafer switches to the wafer normal mode. Here, the
primary distribution function and the moments are interpreted orthogonally to the wafer
surface.
fp(x) fp(x)
fl(y)
fl(y)
Figure 28 Beam projection mode (left) and wafer normal mode (right) for analytic
implantation
For the same pair of tilt and rotation parameters, different projected tilt angles can be
observed in the 2D simulation plane. This angle is called tilt2D and depends on both
rotation and [Link]. Profiles in quasi-1D parts of the structure away from mask
edges depend on the choice of [Link]. Exactly the same 1D profiles can be observed
only for symmetric primary distribution functions like the ones used in the Gaussian model and
only if the primary and lateral standard deviations have the same value.
To ensure, at least approximately, that the same depth profiles are obtained for different rotation
angles, and for different dimensions, the range parameters for the primary distribution function
are scaled depending on tilt (for 1D and 3D), or tilt2D (for 2D). For example, the projected
range R p is scaled as follows:
R p′ = R p ⋅ s r (46)
For tilt implants, the integrated dopant profile depends on not only the primary range
parameters ( R p , σ p , and so on), but also the lateral straggling ( σ l ). To ensure that the same
depth profiles are obtained approximately for different rotation angles, and for different
dimensions, the primary standard deviation is scaled as follows:
2 2 2 2
σp ′ = sr ⋅ σp + ( 1 – sr ) ⋅ σl (47)
Note that if the ratio σ l ⁄ σ p is too large, the scaling of the primary standard deviation may not
be possible. In such a case, Sentaurus Process issues a warning message and continues by
assuming σ' p = σ p .
The scaling factor s r , which is used to scale R p and σ p , is selected with respect to the values
of primary and [Link], as shown in Table 7.
beam sr = 1 1
s r = ---------------------------
cos ( tilt )
Point-Response Interface
This feature allows the use of externally generated point responses in analytic implantation. As
an alternative to using implant tables, it replaces the moment-based point-response
distributions. Only 1D primary distributions can be loaded with Sentaurus Process.
To use the point-response interface, the implant model must be changed to [Link],
that is:
implant spec=<dopant> <material> [Link] file=<name> [Link]=<n>
The default table setting can be used again since it has not been overwritten by the
[Link] flag.
The external primary distribution function and the damage are read from a plx file. A separate
file can be selected for each dopant–material combination with the file selector and the above
command.
The 1D MC implantation run is started to generate the data if the file is not found. This run is
fully automated. The MC implantation model can be chosen by using the following command:
pdbSet MCImplant model {[Link] | crystaltrim}
The default MC model is [Link]. The 1D layer structure for this run consists of an
oxide layer on top and a layer of the specified material. The thickness of the oxide layer is
chosen as the total effective overlayer thickness at some point of reference at the gas surface of
the structure. The position of this point at the y-axis is specified with the [Link]
parameter.
The integration routine treats the data as a continuous set to be used in the material as specified.
In the convolution integral computation, the zero of the x-axis is locally matched to the surface
of the structure.
The initial damage for the MC implantation simulation is taken from the damage already
present in the device along a line starting from the surface at the [Link] normal to the
wafer surface.
The external profiles are interpreted as taken normal to the wafer surface. Therefore, the
direction of the primary distribution should be switched from beam to wafer (see Primary
Direction and Scaling on page 113). In addition, the multilayer matching method should be set
to dose-matching (see Multilayer Implantations on page 109), that is:
implant <dopant> primary=wafer match=dose
The value for the primary range R p is taken from the implant table if match=range is set.
Implantation Damage
The damage to the crystal is calculated on the basis of analytic damage models. Sentaurus
Process calculates the damage using the model by Hobler and Selberherr [1]. Damage
calculation for a species in a material can be switched on using the logical switch damage:
implant species=<dopant> <material> [damage]
A damage profile is calculated if the damage switch is set and the moments are found in the
internal lookup table. Sentaurus Process can use the moments provided by Hobler [1] as
described in Analytic Damage: Hobler Model on page 99. At the end of an implantation step,
the damage for this step is added to the Damage profile (damage history) using the DFactor:
Damage += DFactor ⋅ Damage_LastImp (48)
The default value for the DFactor is 1, and it can be changed in the parameter database or at
the implant command line.
Point-Defect Calculation
Elemental Materials
The interstitial and vacancy profiles are calculated in a postprocessing step at the end of the
implant command. The model used to calculate point defects is selected with the
[Link] selector:
implant <dopant> [[Link]= {[Link] | [Link].n |
[Link] | [Link]}]
The [Link] switch selects the ‘+1’ model to calculate the interstitial and vacancy profiles
from the as-implanted profile at a particular implantation step <dopant>_LastImp:
Int_Implant += IFactor ⋅ <dopant>_LastImp
(49)
Vac_Implant += VFactor ⋅ <dopant>_LastImp
where IFactor and VFactor are material-dependent factors that can be set in the parameter
database. For example, for boron in silicon, this is performed by using:
pdbSet Silicon Boron IFactor <n>
The internal default values are 1 for IFactor and zero for VFactor. This is motivated by a
simple lattice site balance argument: for each dopant atom that is assumed after implantation
on a lattice site, one free interstitial is produced. The global values for IFactor and VFactor
can be overwritten at the implant command line:
implant <dopant> <material> [ifactor=<n>] [vfactor=<n>]
A third model can be chosen with the selector [Link]. Here, the interstitial and
vacancy profiles are calculated from the damage and dopant profiles resulting from the last
implantation step:
Int_Implant += FPIFactor ⋅ Damage_LastImp + IFactor ⋅ <dopant>_LastImp
(50)
Vac_Implant += FPVFactor ⋅ Damage_LastImp
where <dopant>_LastImp term accounts for the extra interstitials coming from substituted
dopants. FPIFactor and FPVFactor can be set in the parameter database, and can be
overwritten by parameters [Link] and [Link] at the implant command line.
If [Link] is defined, the given value of IFactor in the [Link] and damage models
for point defects is taken from:
The [Link] switch allows you to define your own algorithms to calculate interstitial
and vacancy profiles. It is expected that users will define the algorithm in the
UserPointDefectModel procedure. For example:
proc UserPointDefectModel { Species Name Energy Dose Model IFactor \
VFactor CDose } {
...
}
where Species is the name of the implanted species; Name is the name of the dopant; Energy
is the implant energy; Dose is the implant dose; Model is the implant model (for example,
tables or [Link] or crystaltrim); IFactor and VFactor are the interstitial and
vacancy factors; and CDose is the critical dose.
Multicomponent Materials
To generate distinct types of point defect in multiple-component materials, you must switch on
the DistinctDefects flag, for example:
pdbSetBoolean SiliconCarbide DistinctDefects 1
By default, this flag is true for SiC but false for other materials. As a result, instead of
Int_Implant and Vac_Implant, the generated point-defect datasets in SiC are
IntSilicon_Implant, IntCarbon_Implant, VacSilicon_Implant, and
VacCarbon_Implant.
In this model, the total point-defect concentration is computed in the same way as the elemental
material. The implantation parameters [Link], ifactor, vfactor, [Link],
and [Link] in the implant command still work. ifactor and vfactor are scaling
factors for interstitial profiles and vacancy profiles, respectively, in the [Link] defect
model; while [Link] and [Link] are scaling factors for interstitial profiles and
vacancy profiles, respectively, in the [Link] defect model. The same Tcl procedure
CalcPlusNFactor calculates automatically the plus factors for the [Link].n
defect model.
Then, the individual point-defect concentration is computed by multiplying the total point-
defect concentration by the fraction of each component. The fraction of each component is, by
default, their stoichiometric weight, but it can be changed in the parameter database with the
parameters [Link] and [Link]. For example, in SiC:
pdbSet SiC Composition Component0 [Link] <n>
pdbSet SiC Composition Component1 [Link] <n>
pdbSet SiC Composition Component0 [Link] <n>
pdbSet SiC Composition Component1 [Link] <n>
Backscattering Algorithm
During the implantation, some particles may be backscattered and lost to the ambient. Analytic
implantation accounts for this effect by assuming that the portion of the distribution which
sticks out of the structure is backscattered from the surface, resulting in less dose implanted in
the structure. This backscattering model – the TS4 backscattering model – is switched off by
default. To switch on the model, either specify the logical switch [Link] in
the implant command or use the global switch:
pdbSet ImplantData TS4Backscattering 1
In addition to the TS4 backscattering model, Sentaurus Process uses an advanced integration
algorithm that accounts for particles backscattered from the surface. The lateral integration for
a mesh node also is performed over 1D intervals above the surface. The point response is taken
from the surface layer. The contributions from backscattered ions make a difference in the
profile of vertical mask edges. The mask example in Figure 29 illustrates the difference.
The backscattering algorithm is switched on by default. To switched off the algorithm, use
either the logical switch !backscattering in the implant command, or use the global
switch:
pdbSet ImplantData Backscattering 0
-0.5 -0.5
Y
Y
0 0
2.8e+18 2.8e+18
1.7e+15 1.7e+15
1.0e+12 1.0e+12
where Damage denotes the preexisting implant damage in terms of Frenkel pairs and
PAIThreshold is a normalization parameter that can be specified in the parameter database:
pdbSet <material> <species> PAIThreshold <n>
The extracted equivalent amorphous thickness is added to the total amorphous layer thickness.
If the implant table contains screen (cap) layer-dependent data, the total amorphous thickness
is used as a parameter to select the implant moments as described in Screening (Cap) Layer-
dependent Moments on page 96. Otherwise, the profile reshaping model and the effective
channeling suppression model are used.
The integral over the preamorphizing damage assumes periodic boundary conditions for the
structure in 2D.
NOTE The switch is off by default. The model is switched on for the Taurus
implant tables.
Coimplant Model
The fraction of the ions described by the second Pearson function is taken from implantation
tables, which have been created for single ion implantation steps. This treatment is acceptable
only for low-dose implantations, which create little crystal damage, but leads to a severe
overestimation of the ion channeling in successive implantations with medium and high doses.
Without a thermal annealing step in between several ion implantations, the crystal damage of
the first implantations remains present and reduces the ion channeling of the subsequent
implantations. The channeling tail is lowered. Besides the PAI model as previously mentioned,
analytic implantation provides the Coimplant (CI) model, which also takes this effect into
account. In contrast to the PAI model in which the implant moments are modified locally for
each cutline during the integration, the CI model modifies the channeling ratio globally for
each implant. The CI model is switched on using the command:
pdbSetBoolean ImplantData UseCoImplant 1
NOTE The CI model is active only for Default implant tables, and does not
affect any other implant tables.
The CI model considers damage produced by analytic or MC implantation steps. The damage
information is used in subsequent analytic implantation steps to estimate the channeling ratio.
eq
Using a least-square fit, an equivalent dose D is calculated. This dose is chosen as the dose
that would give the same amount of damage in one implant step (using the present species and
implant conditions) as the preexisting damage, that is:
2
( damage [ D
eq
( x ) ] – damage preexist ) dx = min (53)
new
This is used to calculate the channeling dose D c from the total channeling dose and the
equivalent channeling dose, that is:
new total eq
Dc = Dc – Dc (54)
The channeling dose is calculated from the total dose using the differential channeling dose
total
technique (see Figure 30). D c is the channeling dose corresponding to an implantation of
eq new
D c + D c into undamaged silicon.
Dcnew
Channeling Dose
Dceq
Dose
Deq Dnew
Figure 30 Channeling dose as a function of dose
In Figure 30, due to the creation of damage during implantation, the number of channeling ions
increases sublinearly with the total ion dose, and eventually saturates at very high total doses.
eq
The damage from previous implantations is set equivalent to a dose D . The dose of the
new new
additional implantation is shifted and, consequently, the gradient D c / D and, therefore,
the dual Pearson ratio are reduced.
eq total new
Both D c and D c are stored in lookup tables. The channeling dose D c is used to
calculate the new ratio for the dualpearson model (see Primary Distribution Functions on
page 92).
This simple model is very accurate for mixed species implantations and works best in cases of
subsequent implantations with similar energies. The model is only available for the Default
implant mode.
The simplest way to calibrate the strength of de-channeling is given by using the effective
damage factor that scales the calculated equivalent dose:
pdbSetDouble ImplantData <species> EffDamFac <factor>
The default value is 1. Increased values lead to less channeling; lower values increase the
channeling of the species specified.
To calibrate the effective damage factor depending on parameters of the implantation, the
following procedure must be overwritten:
proc CI::coimp_dosesofar_calib { species energy dose tilt rotation } {
switch $species {
Boron { set cuc <expression_for_Boron> }
default { set cuc 1.0 }
}; # end of switch
return $cuc
}
Sometimes, it will be necessary to reset the accumulated damage field internally used by the
CI model. This can be achieved by using:
CI::Reset
The loaded damage is added to existing accumulated damage. The accumulated damage
produced by any implantation history can be checked with:
CI::Get_Damage_pdb Accumulated_Damage
This returns a list containing the vector describing the damage in the wafer on a logarithmic
depth scale. A zero vector means no damage history is seen by any follow-up table
implantation.
You can choose the PAI or CoImplant model by using the global switch DamageControl:
pdbSet ImplantData DamageControl {Default PAI CoImplant}
The default value of DamageControl is Default in which the PAI model is automatically
switched on when Taurus tables are used; whereas, the CI model is chosen when default tables
are used. If DamageControl is set to PAI, the PAI model is active for all subsequent
implantations regardless of which tables are used. If this switch is set to CoImplant, the CI
model is used for all subsequent implantations (note that the CI model only supports default
tables), and PAI is disabled even for Taurus tables.
NOTE Both the PAI and CI models are designed to take into account the pre-
existing damage. However, the PAI model modifies the implant
moments locally, while the CI model modifies the channeling ratio
globally. Generally, for a complex structure, the PAI model is more
accurate at the expense of longer computation time.
NOTE To avoid double-counting the damage effect, when the PAI model is
active, the CI model is disabled automatically.
Profile Reshaping
Traditionally, it is believed that the first peak of the implanted profile in monocrystalline silicon
is due to random scattering and is described by the first Pearson distribution in the dual-Pearson
analytic model. The second peak (or hump) of the implanted distribution is attributed to ion
channeling and is described by the second Pearson distribution in the dual Pearson model.
This approach works well for implantations with tilt angles above approximately 4° , where
the position and width of the first Pearson distribution do not change as a function of the screen
oxide thickness. However, for low tilt implantations (below 4° ), the position and width of the
first Pearson distribution changes considerably (up to 50%) with the thickness of the screen
oxide.
Typically, for a low tilt implantation performed into bare silicon, the first Pearson distribution
shifts deeper into the substrate and is much wider than for a similar high tilt implantation. As
the screen oxide thickness increases, the projected range and the standard deviation of the first
Pearson distribution relax to their respective values at high tilt angles due to reduced
channeling. Physically, this means that, for a low tilt implantation, even the first peak contains
a considerable number of channeled ions. To model this effect, it is necessary to reshape both
Pearsons in the dual Pearson model. This profile reshaping complements the reduction in
channeling fraction provided by the effective channeling suppression model.
For ions with explicit dependency on the screen oxide thickness in the implant tables, this
change in shape is addressed automatically. Otherwise, a shift is added to the projected range,
the standard deviation, and the lateral standard deviation of both Pearson distributions. The
shift is given by:
–αi t
----------
σ
Δ i = 1 – e ( MH i – ML i ) (55)
where:
■ Δ i is the shift for moment i .
■ α i is the shift factor for moment i .
The shift factor parameters of the profile reshaping model can be set in the parameter database,
that is:
pdbSet <material> <species> RangeFactor
pdbSet <material> <species> SigmaFactor
pdbSet <material> <species> ChannelingRangeFactor
pdbSet <material> <species> ChannelingSigmaFactor
The value of RangeFactor is used when calculating the shift of the projected range; the value
of SigmaFactor is used for both the standard deviation and the lateral standard deviation.
Setting a shift factor to zero effectively switches off this model for the respective moments.
Higher values of the shift factor lead to a faster transition from a low tilt profile to a high tilt
profile, with increasing amorphous layer thickness. By default, the shift factors are zero in all
materials except silicon.
The model remains inactive for explicitly cap layer–dependent implant tables.
NOTE This model is switched off by default and is switched on in the Taurus/
TSUPREM-4 mode.
Since the average mass of the atomic nucleus of the target is heavier in SiGe than in pure
silicon, a scattering angle from a nuclear collision is larger. In addition, SiGe has a larger
electronic stopping power than silicon due to the higher electron density. Therefore, similar to
the PAI model, the Ge effect on implantation can be modeled by using similar models for
profile reshaping and effective channeling suppression.
The following formulas are then used for the projected range reduction and the standard
deviation shift:
t Ge, eqv
ΔR P, Ge = – [Link] ⋅ R P, 0 ⋅ 1 – exp – [Link] ⋅ ---------------- (57)
R P, 0
t Ge, eqv
Δσ Ge = – [Link] ⋅ σ Ge, 0 ⋅ 1 – exp – [Link] ⋅ ---------------- (58)
R P, 0
where:
[Link]
[Link]
[Link]
[Link]
Similar formulas also exist for the channeling projected range and channeling standard
deviation shifts with the parameter names:
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
r Ge = r Ge, 0 ⋅ ----------------------------------------------------------------------- (59)
t Ge, eqv
[Link] + --------------- R P, 0
-
To switch on the damage calculation in silicon for the molecular implant, use:
implant species=<molecule> Silicon damage
where E i is the energy of the i -th species, M i is the atomic mass, and w j is the statistical
weight according to the stoichiometry of the molecule. The constituent and stoichiometry of
the molecule are defined in the PDB.
You can define new molecular species with pdb commands. For example, you can define
carborane as follows:
pdbSetString ImplantData Carborane Atom0 Name Boron
pdbSetDouble ImplantData Carborane Atom0 StWeight 10
pdbSetString ImplantData Carborane Atom1 Name Hydrogen
pdbSetDouble ImplantData Carborane Atom1 StWeight 14
After the above two steps are performed, you can use carborane like any other predefined
implant species. For example, use the following command to perform analytic implantation for
carborane:
implant Carborane energy=10 dose=1e14
NOTE The dose specified for molecular implantation is the dose for the
molecular species. In the above example, the implanted dose for
14 –2 15 –2
carborane is 1 ×10 cm . Therefore, the boron dose is 1 ×10 cm ,
15 –2
and the hydrogen dose is 1.4 ×10 cm .
For convenience, Sentaurus Process predefines the following molecular species: BF2 (BF2),
BCl2 (BCl2), B10H14 (B10H14), B18H22 (B18H22), C2B10H14 (C2B10H14), AsH2 (AsH2),
and PH2 (PH2).
Depending on whether the implant tables are supplied for the molecular species, analytic
molecular implantation will proceed in two different ways:
■ With supplied implant tables
■ Without supplied implant tables
If the implant tables are available for the molecular species (for example, BF2), the
implantation proceeds in the same way as the atomic species; in other words, the specified
energy and dose are used to look up the moments in the implant tables. No scaling is applied
to energy, dose, or the resulting profiles.
The implant tables can be specified for a molecular species with the command:
implant species=<molecule> <material> [Link]=<file> [Link]=<file>
The implant data files should be placed in the current working directory or the full path to the
file should be specified in [Link].
Assuming that there are N i dopant atoms in a molecule, the molecular implantation is
equivalent to a single atomic species implantation with the energy and dose equal to E i and
N i × dose (where dose is the molecular dose), respectively. E i and N i × dose are used for
implant moments lookup. Then, the dopant distribution is calculated in the same way as atomic
implant.
Damage Calculation
If damage tables are not supplied for the molecular species, the damage also can be calculated
using the internal damage tables for the primary dopant species. The Boolean parameter
FullDamage can be used to control the amount of damage for the molecular species:
pdbSetBoolean ImplantData <molecule> FullDamage <bool>
wj Mj
j
S i = ------------------
- (61)
Mi
This damage scaling factor roughly takes into account the damage produced by all atomic
species (including the primary dopant species) and is consistent with the damage calculation
used in TSUPREM-4 for BF2 implantation.
To obtain the same results in one, two, or three dimensions, or with different rotation angles,
Sentaurus Process provides an option to perform 1D or 2D implantation in 3D mode, in which
case, a 1D or 2D structure will first be extruded into a pseudo-3D structure. In other words,
only the surfaces and interfaces (not the bulk) will be extended in the y- or z-direction or both
directions, with the boundary conditions being taken into account. In the case of PAI, damage
integration is performed in a real 1D or 2D structure. Then, the lateral integration proceeds in
exactly the same way as in a 3D analytic implantation. This ensures consistent results for 1D,
2D, and 3D implantation.
To switch on this option, use either the Boolean parameter extrude in the implant command
or the global pdb switch:
pdbSet ImplantData Extrude 1
Since SIMS depth profiles are measured along the wafer normal direction, the extracted
implant moments also are obtained with respect to the wafer normal direction. On the other
hand, analytic implantation is usually calculated by using the beam direction as its primary
direction. If the beam direction is coincidental with the normal direction, the implant moments
can be used directly without modification. However, for tilt implantations, the beam direction
does not coincide with the wafer normal direction. In this case, implant moments to be applied
to the primary beam direction must be scaled, or transformed, to reproduce the 1D profiles in
the wafer normal direction. See Primary Direction and Scaling on page 113 for more details.
where s r is the scaling factor, and the primary standard deviation σ p is scaled as follows:
2 2 2 2
σp ′ = sr ⋅ σp + ( 1 – sr ) ⋅ σl (63)
To use Si(110) implant tables for Si(110) or Si(111) implantations, you must calculate the
corresponding angles on the (100) wafers from the specified implantation angles on the (110)
or (111) wafers. For typical implantations (for example, tilt= 7° ), these angles are very large.
When you know the corresponding angle on the (100) wafer, you can use Eq. 62 and Eq. 63 to
transform R p and σ p . Eq. 62 works by simple geometry consideration. Eq. 63 works
reasonably well for small tilt implantations and, in theory, is accurate for isotropic amorphous
material. However, due to ion channeling, Eq. 63 may not be good under all situations.
The default σ p scaling is the same as the R p scaling (linear scaling). These cases can be
selected by using the command:
pdbSet ImplantData StdevScalingMode {0 | 1 | 2}
Analytic implantation uses the same syntax as MC implantation for specifying boundary
conditions. It is assumed that the simulation domain is rectangular if viewed from the top and
is contained between:
and:
In reflective boundary condition, a reflected image with respect to the domain boundary is first
constructed. Depending on the boundary condition specified on the other side, the composite
structure is then either extended (if the other side is extended) or repeated (if the other side is
also reflective). The added structure including the reflected image is removed after the implant
is completed.
This switches periodicity in the left–right or front–back direction. An array of periodic images
is constructed outside the simulation domain before the implant is started. These periodic
images are removed after the implant is finished.
Alternatively, to select MC implantation as the default implantation model, use a global switch:
pdbSet ImplantData MonteCarlo 1
pdbSet MCImplant model [crystaltrim | [Link]]
When MonteCarlo is set to 1, Sentaurus Process performs all the implantations using one of
the selected MC models (crystaltrim or [Link]).
NOTE For simplicity, you could use the alias tmc instead of [Link]
or ctrim instead of crystaltrim. For example, you may initiate
Sentaurus MC implant with the following command:
implant <dopant> energy=<n> tmc
Fundamental implantation parameters, such as the implantation energy and dose, and the
orientation of the ion beam with respect to the substrate must be specified using energy, dose,
tilt, and rotation in the same way as for analytic implantation.
To run MC implantation in a full-cascade mode or improved BCA (iBCA) damage model, use
the cascades or iBCA switch:
implant <dopant> [ctrim | tmc] [cascades | iBCA]
In the KMC mode, to specify the dose rate of the implantation, use the [Link] parameter:
implant <dopant> [ctrim | tmc] [cascades | iBCA] [[Link]=<n>]
During the implantation, pseudoparticles representing a part of the whole dose are started from
the start surface, which is constructed above the target, parallel to the wafer surface. For 2D
and 3D target geometries, the start surface is subdivided into segments of equal size for which
the required implantation dose is accumulated. The size of these segments can be controlled by
setting:
pdbSet MCImplant Intervals dy <n>
pdbSet MCImplant Intervals dz <n>
or:
implant <dopant> [crystaltrim | [Link]] [particles=<n>]
The default value is 1000. Increasing this number leads to better accuracy and an increase in
simulation time. Together with the sizes of the segments, this parameter determines the
statistical weight of each pseudoparticle.
Launching particles are assumed to be traveling along the direction as specified by the tilt and
rotation angles. However, there is usually a small angular divergence of the ion beam so that
the particles form a right cone. To specify the opening angle of the cone, in which particles are
assumed to be uniformly distributed, use the command:
pdbSet MCImplant BeamDivergence <n>
Parameters controlling the electronic and nuclear stopping as well as the damage accumulation
are available in the parameter database (see Parameter Database on page 53). You can set these
parameters in there.
If the information level is set to 1 or above, a progress report similar to the following will be
shown during the progress of implant:
implanted orig equiv active repl traject CPU time
particles traject classes segm OK fail step total
.............................................................................
1300( 5%) 84 4 26 1216 6 0.22 0.22
2600( 10%) 170 4 26 2430 9 0.21 0.43
3900( 15%) 262 4 26 3638 16 0.21 0.64
5200( 20%) 349 4 26 4851 24 0.30 0.94
6500( 25%) 437 4 26 6063 29 0.47 1.41
7800( 30%) 523 4 26 7277 33 0.28 1.69
...... ...... ......
22100( 85%) 1894 4 5 20206 131 3.15 7.27
23400( 90%) 2875 4 5 20525 272 5.20 12.47
24700( 95%) 3837 4 5 20863 394 4.75 17.22
24960( 96%) 4029 4 5 20931 419 0.99 18.21
25220( 97%) 4231 4 5 20989 453 1.13 19.34
25480( 98%) 4422 4 5 21058 472 0.90 20.24
25740( 99%) 4628 4 1 21112 483 0.93 21.17
26000(100%) 4888 4 0 21112 483 0.45 21.62
.............................................................................
Pseudo particles:
implanted : 26000
lost : 0 (0%)
Trajectories : 4888
Equivalence classes: 4
where:
■ implanted particles: The total number of pseudoparticles implanted, which is, at the
end of the simulation, equal to the product of the specified number of particles and the
total number of segments of the implant surface. This number includes both the calculated
number of particles and the successfully replicated number of particles. The percentage of
already finished particles is also indicated in parentheses.
For 2D structures, the progress of an ion implantation step can be graphically viewed using the
switch [Link], for example:
implant <dopant> [ctrim | tmc] [[Link]]
Composition
For each material, the composition is set in the parameter database. The composition can be
found in the <material> -> Composition entry. For each <n>-component of the material,
the entry Component<n> gives the name and the stoichiometric weight, for example, for
GaAs:
GaAs -> Composition -> Component0 -> Name = Gallium
GaAs -> Composition -> Component0 -> StWeight = 1
GaAs -> Composition -> Component1 -> Name = Arsenic
GaAs -> Composition -> Component1 -> StWeight = 1
The composition for both single-crystalline and amorphous materials is set this way.
Single-Crystalline Materials
Lattice Structure
In the case of a single-crystalline material, the positions of target atoms are calculated based
on the lattice type. Crystal-TRIM supports zinc-blende (Zincblende) lattice only, while
Sentaurus MC supports several lattice types that include simple cubic (Sc), body-center cubic
(Bcc), face-center cubic (Fcc), zinc-blende (Zincblende), and hexagonal (Hexagonal)
lattices. To set the lattice type, use:
pdbSet <material> LatticeType [Sc | Bcc | Fcc | Zincblende | Hexagonal]
Lattice Constants
For all lattice types, Sentaurus MC defines different lattice constants for three different axes.
To define the other two lattice constants, use:
pdbSet <material> LatticeConstant_b <n>
pdbSet <material> LatticeConstant_c <n>
Polytypes
For hexagonal systems, there may exist many different crystal structures due to the different
stacking sequence along the c -axis, which is perpendicular to the plane formed by three a -
axes ( a1 , a2 , and a3 ). This is called polytypism. Four different polytypes are supported in
Sentaurus MC, and you can select them using the following command:
pdbSet <material> Polytype {2H 3C 4H 6H}
The default polytype for silicon carbide (SiC) is 4H. For more details, see MC Implantation
into Silicon Carbide on page 162.
Atomic Basis
The crystal structure consists of an atomic basis attached to the lattice points. A basis can be a
single atom or a group of atoms attached to each lattice point. In Sentaurus MC, for simple
crystals (such as a single-atom basis with simple cubic, face-centered cubic, or body-centered
cubic lattice and binary compounds with zinc-blende and hexagonal lattice), the undisturbed
positions of the lattice sites are constructed automatically using the information of the lattice
type, the polytype (if hexagonal lattice), and the lattice constants. For more complex crystal
structures, the positions of basis atoms should be specified with the pdb parameter
BasisVector. The units of basis vectors are lattice constants in three crystallographic axes.
For example, for zinc-blende silicon, the positions of two basis silicon atoms can be specified
as follows:
Silicon -> Composition -> Component0 -> Name = Silicon
Silicon -> Composition -> Component0 -> StWeight = 1
Silicon -> Composition -> Component0 -> BasisVector = {0 0 0 0.25 0.25 0.25}
For another example, NaCl has a face-centered cubic (Fcc) lattice with an atomic basis of two
atoms. The positions of Na and Cl can be specified as follows:
NaCl -> Composition -> Component0 -> Name = Sodium
NaCl -> Composition -> Component0 -> StWeight = 1
NaCl -> Composition -> Component0 -> BasisVector = {0 0 0}
NaCl -> Composition -> Component1 -> Name = Chloride
NaCl -> Composition -> Component1 -> StWeight = 1
NaCl -> Composition -> Component1 -> BasisVector = {0.5 0.5 0.5}
In Crystal-TRIM, the positions of lattice sites of the basic cell are set in the parameter database
in MCImplant -> Lattice -> Zincblende -> Cell0 in the natural coordinate system
of crystal. The unit is one-half of the lattice constant. The undisturbed positions of all lattice
sites of an ideal zinc blende–type crystal can be obtained from the basic cell by shifting the
atomic positions in the directions of the crystallographic axes. Therefore, for any given position
of the projectile, only the immediate crystalline environment is generated and rebuilt every
time the projectile moves out of the current crystalline cell.
The entry MCImplant -> Lattice -> Zincblende -> Cell1 is a complementary basic
cell and gives the configuration that is obtained by shifting Cell0 by one-half of the lattice
constant.
Thermal Vibrations
The thermal vibrations of the target atoms are important for the treatment of the motion of a
projectile in single-crystalline material. In MC implantation, only instantaneous thermal
displacements of target atoms from their ideal lattice sites are considered.
The substrate temperature for the Debye model can be set by:
pdbSetDouble MCImplant Temperature <n>
Amorphous Materials
Using molar fractions (see Molar Fractions on page 138) is disabled in these materials.
Polycrystalline Materials
A polycrystalline material is characterized by its crystal orientation and grain size. Crystal
orientation (one of 100, 110, and 111) can be specified by using a material-specific command:
pdbSet <material> CrystalOrient <n>
There are two different ways to change the crystallinity (Amorphous, Crystalline, and
Polycrystalline) of a material. If parameter Crystallinity is available (which is true
for polysilicon) in the PDB, use this switch to set the crystallinity, for example:
pdbSet PolySilicon Crystallinity Polycrystalline
This command makes MC implantation models consider both crystal orientation and grain size
for polysilicon.
If Crystallinity does not exist for a material, use parameters Amorphous and Granular:
pdbSet <material> Amorphous 0
pdbSet PolySilicon Granular 1
The first command switches off the amorphous treatment, and the second command makes MC
implantation models consider the grain size.
For more details on ion implantation into polysilicon, see MC Implantation into Polysilicon on
page 160.
Molar Fractions
It is possible to define a compound material with a spatially-dependent molar fraction. For
example, for single-crystalline silicon, the following PDB entry:
array set $Base {BinaryCompounds {String {
{ SiliconGermanium GeTotal "GeTotal/[pdbGetDouble Si LatticeDensity]" }
}}}
specifies a binary compound Si1–xGex with the mole fraction of Ge calculated from the
germanium concentration (GeTotal) divided by the silicon lattice density. Due to more
computational demands, a minimum Ge concentration is required to trigger MC implantation
models to treat this material in a more sophisticated way. To specify this minimum
concentration, use the command:
pdbSet Silicon [Link] 1e20
The calculation used in the Sentaurus MC model assumes that ions lose energy through two
processes:
■ Nuclear scattering, where the nucleus of the ion elastically scatters off the nucleus of an
atom in the target. This interaction is based on the binary collision theory and is described
in the following section.
■ Interaction of the ion with the electrons of the target atoms. This mechanism is inelastic
and does not alter the direction of the motion of the ion.
Therefore, the total change in energy of the ion after the i -th collision is the sum of the nuclear
energy loss ΔE n and the electronic energy loss ΔE e :
E i = E i – 1 – ΔE n – ΔE e (64)
Consider a particle of mass M 1 and kinetic energy E 0 approaching a stationary particle with
mass M 2 . The impact parameter, b , is the distance of closest approach if the particle is not
deflected and gives a convenient measure of how close the collision is. After collision, the first
particle deviates from its original course by an angle θ .
Energy Loss
where:
■ ΔE n is the energy lost by particle 1.
■ E 0 is its energy before collision.
■ I is the integral.
s max ds
I = 0 -----------------------------------------
V( s) 2 2
(66)
1 – ----------- – b s
Er
where s = 1 ⁄ r is the inverse separation between the two particles. V ( s ) is the potential
between the two particles (assumed to be repulsive), and:
E0
E r = ---------------------------- (67)
1 + M1 ⁄ M2
The upper limit of the integral, s max , is the inverse distance of closest approach of the two
particles and is given by the solution to the equation:
V ( s max ) 2 2
1 – ------------------- – b s max = 0 (68)
Er
Scattering Angle
Dimensionless Form
Eq. 65 to Eq. 69 are the basic equations for classical two-body scattering. The scattering
integral, Eq. 66, can be cast into a dimensionless form by assuming the potential has the form:
V ( s ) = Z 1 Z 2 k 1 sg ( a u s ) (70)
where:
■ Z 1 is the charge on particle 1.
■ Z 2 is the charge on particle 2.
■ k 1 is the constant.
2
q –7
k 1 = ------------ = 14.39495 × 10 keVμm (71)
4πε 0
Using Eq. 70, Eq. 73, and Eq. 74 in the scattering integral Eq. 66 and making the substitution
s′ = a u s gives:
1 s′ max ds′
I = -----
au 0 -------------------------------------------------------
2 2
(75)
1 – s′g ( s′ ) ⁄ ε – b n s′
2
From Eq. 65, the quantity of interest is cos ( bI ) , which becomes:
s′ max ds′
cos ( bI ) = cos b n
2 2
------------------------------------------------------- (76)
0 2 2
1 – s′g ( s′ ) ⁄ ε – b n s′
2
Therefore, using Eq. 76, cos ( bl ) can be evaluated in terms of the dimensionless variables b n
and ε , without reference to the charge or mass of a particular particle.
Coulomb Potential
As an example of the above procedure, consider the Coulomb potential between two particles:
Z1 Z2 k1
V ( r ) = ----------------- (77)
r
or:
V ( s ) = Z1 Z2 k1 s (78)
s′ max ds′
cos ( bI ) = cos b n
2 2
------------------------------------------ (79)
0 2 2
1 – s′ ⁄ ε – b n s′
with:
1 + 4b 2 ε 2 – 1
n
s′ max = -----------------------------------------
2
- (80)
2εb n
For a given impact parameter b and incident energy E 0 , the dimensionless b n and ε can be
2
obtained from Eq. 73 and Eq. 74, giving cos ( bI ) from Eq. 81. Then, the energy loss due to
the collision is given by Eq. 65, and the angle at which particle 1 leaves the collision is given
by Eq. 69.
Universal Potential
For the simple form of the Coulomb potential used in the previous example, the scattering
integral can be solved analytically. For more realistic interatomic potentials, however, the
scattering integral cannot be evaluated analytically.
For example, the universal potential [18] that is used in Sentaurus MC is:
Z1 Z2 k – 3.1998r ⁄ a u – 0.94229r ⁄ a u
V ( r ) = --------------- 0.18175e + 0.50986e (82)
r
– 0.4029r ⁄ a u – 0.20162r ⁄ a u
+ 0.28022e + 0.028171e
An analytic solution does not exist since the upper limit of the integral in Eq. 66 is given by
Eq. 68, which becomes a transcendental equation with this potential. In Taurus MC, the
2
quantity cos ( bI ) , in its dimensionless form (Eq. 76), is numerically integrated for a wide
range of its parameters b n and ε . These results are stored in tables. Then, at each collision,
2
cos ( bI ) is obtained from these tables. This scheme eliminates the need to find s max for each
collision, minimizing the amount of arithmetic operations performed during the calculation of
the trajectory of an ion, while retaining accuracy.
Tables for the universal potential over a wide range of energies and impact parameters are
provided for immediate use in Taurus MC. These tables span the normalized energy range of
–5
10 ≤ ε ≤ 100 and the normalized impact parameter range 0 ≤ b n ≤ 30 . For ε > 100 , the
–5
Coulombic form (Eq. 82) is used. Values of ε < 10 are not encountered for ion–atom
combinations of interest at energies above the energy at which the ion is assumed to have
stopped (5 eV). For values of b n > 30 , the ion is assumed to be undeflected.
This section describes how the binary scattering theory of the previous section is used to
calculate ion trajectories in an amorphous solid. Assume an ion with kinetic energy E 0 hits a
target with an angle θ 0 with respect to the target normal. The surface of the target is assumed
to be at y = 0 , with y increasing vertically into the target. To set the incident energy E 0 in
the implant command, use the Energy parameter. To specify the incident angle θ 0 in the
implant command, use the tilt parameter.
Given the atomic density N dens for the target material, the mean atomic separation between
1⁄3
atoms in the target is 1 ⁄ ( N dens ) . Between scattering events, the ion is assumed to travel a
distance:
1⁄3
L = 1 ⁄ ( N dens ) (83)
As the ion enters the target material, it approaches the first target atom with impact parameter
b , defined in the previous section. The probability of finding a target atom between b and
b + δb is given by:
2⁄3
w ( b )δb = 2πN dens b δb (84)
2⁄3
for b < 1 ⁄ πN dens .
If R rand is a uniformly distributed random number between 0 and 1, the probability distribution
gives:
R rand
b = ---------------
2⁄3
- (85)
πN dens
Given the above definitions, the algorithm for calculating the energy loss through nuclear
collisions experienced by the ion proceeds as follows:
■ A random number between 0 and 1 is chosen.
■ The normalized impact parameter for this collision is calculated from Eq. 73 and Eq. 85:
1 R rand
b = ----- ---------------
- (86)
a u πN 2 ⁄ 3
dens
The binary collision calculation for crystalline materials proceeds in the same way as in the
amorphous case, except that the selection of the collision partners of the projectile with target
atoms is conducted in a more sophisticated manner.
Instead of using the density of the target material and a random number, Sentaurus MC
determines the collision partners based on the position of the projectile relative to the sites on
an idealized lattice. The algorithm for selecting the collision partners is based on
[Link]
Incident Particle
If the distance of two or more projected target atoms to the undeflected trajectory of the
incident particle is less than [Link] (simultaneous collision distance), then the multibody
collision algorithm is invoked. For example, in Figure 31, 1 and 2 are considered to be
simultaneous collisions, but 3 is not. To change the default value of [Link], use the command:
pdbSetDouble <material> [Link] <n>
The scattering events are computed for each target individually, and the final moment and
energy of the incident particle are computed by applying momentum and energy conservation
principles.
The simultaneous collisions are handled in the same way as for MARLOWE, except for the
location of the turning point. In MARLOWE, the turning point is assumed to be the average of
those of the simultaneous collision partners. In Sentaurus MC, the turning point is placed at a
point determined by the collision with the minimum impact parameter. Simulations have
indicated that such a scheme obtains better results for ultralow energy implantations, while it
has little impact on implantation energies above 5 keV. This allows Sentaurus MC to treat the
entire implantation energy range, including ultralow energy and very high energy, with the
same model, in exactly the same way.
Ion channeling, which is the preferential penetration of implanted ions along crystal axes or
planes, occurs naturally due to the inclusion of the crystal structure of the lattice. Both axial
and planar channeling show enhanced penetrations. The effect of the tilt and rotation
parameters is much more pronounced for implants into crystalline silicon than into amorphous
silicon.
A moving ion loses energy by inelastic electronic processes, which include both nonlocal and
local stopping power. Sentaurus MC uses the same electronic stopping model for both
amorphous and crystalline materials. For each collision, the energy loss due to electronic
stopping is:
nl nl loc loc
ΔE e = x ⋅ ΔE e + x ⋅ ΔE (89)
nl loc
x +x = 1 (90)
nl
x = min ( [Link] ⋅ ε [Link], 1 ) (91)
[Link] and [Link] are specified in the material parameter database and can be changed
by using:
pdbSet <material> <dopant> [Link] <n>
pdbSet <material> <dopant> [Link] <n>
Nonlocal electronic stopping acts as the dragging (frictive) force on moving ions, which is
proportional to the ion velocity and is independent of the impact parameter:
nl
ΔEe = L ⋅ N dens ⋅ S e (92)
–1
S e = [Link] ⋅ S es ⋅ E m ⋅ f es (93)
where L is the free flight path between collisions and E m is the ion energy at the stopping
power maximum.
E0 ⁄ Em δ⁄2 Em δ ⁄ 2 1⁄δ
f es = --------------------------------------------------------------------- + ------- (95)
ln ( E 0 ⁄ E m + E m ⁄ E 0 + e – 2 ) E0
where:
■ Z 1 is the ion atomic number.
■ Z 2 is the composite target atomic number.
■ e is the base of natural logarithm.
■ δ = 1.425 is a fitting parameter.
Local electronic loss is a result of the electron exchange between the moving ion and the target
atom, which is based on the Oen–Robinson model [21] and is dependent on the impact
parameter:
Se
ΔE eloc = -----------2- ⋅ exp – ---
b
a
(96)
2πa
au
a = f ⋅ ------- (97)
0.3
1.45
f = [Link] ⋅ -------------
2⁄5
(98)
Z1
where [Link] is an adjustable screening length parameter that you can change by using:
pdbSet <material> <dopant> [Link] <n>
As the ions travel through a crystalline target, they collide with the target atoms and displace
many of them from their lattice sites. In the binary collision approximation (BCA) code, it is
assumed that, if the transferred energy exceeds a certain threshold, the target atom is displaced
and, at this lattice site, a vacancy is generated. When the displaced atom comes to rest, it is
identified as an interstitial. This defect production rate can be evaluated either by the modified
Kinchin–Pease formula [22] or by simulating the full cascade. Sentaurus MC provides both
types of damage calculation.
The default damage model calculates the deposit energy E D ( x ) for each collision, which is
then converted to the number of point defects (Frenkel pairs) using the modified Kinchin–
Pease formula [22]:
n ( x ) = κ ( E D ⁄ ( 2 ⋅ [Link] ) ) (99)
If the cascades switch is specified in the implant command, Sentaurus MC traces all of the
generated secondary recoils. After each collision, a calculation is performed to determine the
trajectories of the silicon lattice atoms that are knocked from their sites in the lattice by
collisions with implanted ions. A silicon atom is assumed to be knocked from its site when it
absorbs an energy greater than a damage threshold [Link] from a collision.
The silicon atoms freed from the lattice can, in turn, knock other atoms from their sites so that
cascades of damage result. Sentaurus MC calculates the trajectories of these knock-ions with
the same detail as the implanted ions. A vacancy is assumed to have formed whenever a lattice
atom is knocked from its site. An interstitial is assumed to have formed whenever a silicon
lattice atom that has been knocked from its site comes to rest. This damage model can be used
to calculate the different profiles of interstitials and vacancies, that is, I–V separations.
[Link] and [Link] are specified in the material PDB and you can change them using:
pdbSet <material> <dopant> [Link] <n>
pdbSet <material> <dopant> [Link] <n>
Dynamic Annealing
Not all of the defects as calculated above will survive; some of the generated defects will
recombine within the cascade as well as with the preexisting defects. To achieve computational
efficiency, Sentaurus MC uses a statistical approach to account for the I–V recombination in
both intracascades and intercascades. The encounter probability of the projectile with
interstitials also is accounted for statistically. The net increase of the defects in a local region
with defect concentration C ( x ) is:
[Link] ⋅ C ( x )
Δn ( x ) = [Link] ⋅ n ( x ) ⋅ 1 – -------------------------------------- (100)
N dens
In the cascade damage model, [Link] and [Link] are replaced with [Link] and
[Link]. To conserve particle numbers, interstitials and vacancies are recombined in pairs,
and the model distinguishes between recoiled interstitials and recoiled lattice atoms. When an
interstitial is recoiled, the local interstitial number decreases by one and no vacancy is
produced. On the other hand, when a lattice atom is recoiled, a vacancy is created. However,
defect recombination must be considered.
When a recoil comes to rest, it is only allowed to recombine with vacancies from previous
cascades, which is described by a factor 1 – ( N v ⁄ N dens ) , but not with those of the same
cascade since this recombination has already been accounted for by vacancy intracascade
recombination in the previous step. [Link] and [Link] are specified in the material
PDB and you can change them using:
pdbSet <material> <dopant> [Link] <n>
pdbSet <material> <dopant> [Link] <n>
For light implant species, damage could saturate at certain concentrations due to the balance
between defect production and dynamic annealing. Damage saturation is controlled by the
parameters [Link] and [Link] for the default damage model and cascade damage
model, respectively. The default value is 1 for all implant species. Therefore, with the default
parameter, the maximum damage is equal to the lattice density. If, for example, [Link] is set
to 4.35, damage saturates at 23% of the lattice density and cannot exceed the amorphization
threshold (1.15e22 cm–3 by default). Therefore, the crystal will never be amorphized in this
case. To change these parameters, use:
pdbSetDouble <material> <dopant> [Link] <n>
pdbSetDouble <material> <dopant> [Link] <n>
NOTE For heavy species, a single cascade may amorphize the crystal.
Therefore, the intracascade parameter [Link] may not prevent the
amorphization even if it is set to a very large value.
Damage De-Channeling
The accumulated damage has a significant effect on the destination of the subsequent ions,
thereby altering the shape of the impurity profiles. This effect is known as damage de-
channeling. Sentaurus MC handles this problem by switching from the crystalline model to the
amorphous model based on the damage that has accumulated in the substrate. If the local defect
concentration C ( x ) is greater than the amorphization threshold, this local region is assumed to
be amorphized, and the amorphous collision model is used for this local region.
For the local regions with defect concentrations below the amorphization threshold, the
probability of selecting the amorphous model is proportional to the local defect concentration
C ( x ) and a random number call. The amorphous collision model is selected when:
C( x )
R rand < [Link] ⋅ ------------ (101)
N dens
Increasing [Link] makes the profiles more like those implants into amorphous materials.
For the cascade damage model, [Link] is replaced with [Link]. The parameters
[Link] and [Link] are specified in the material PDB, and you can change them using:
pdbSet <material> <dopant> [Link] <n>
pdbSet <material> <dopant> [Link] <n>
NOTE For low energy implants, due to very shallow projected ranges, the mesh
near the surface should be refined to account fully for the damage de-
channeling effect.
During implantation, energetic ions penetrate into the target and lose their energy through
collisions with atoms and electrons. It is traditionally assumed that only energy deposited in
the form of nuclear collisions contributes to damage generation; whereas, energy transfers to
the electronic system are taken as inelastic losses. While energetic atoms are in the ballistic
regime (that is, they have energies well above the displacement threshold [Link]), they can
be well simulated using binary collision approximation (BCA) algorithms. However, as their
energy decreases to the thermal regime (around and below the displacement threshold),
multiple interactions with target atoms become important. Molecular dynamics (MD)
simulations demonstrate that energy transfers among atoms at this low-energy regime can
generate amorphous pockets, thereby generating more damage than BCA models. The
improved BCA (iBCA) damage model is an attempt to simulate MD simulation results within
the framework of BCA.
The iBCA damage model implemented in Sentaurus MC implant is largely based on an the
published article [23] (for the detailed physical basis of the model, refer to this article).
This section briefly describes the model, its usage, and the parameters that are accessible to
users.
Within BCA, the energy conservation principle applied to elastic binary collisions implies that
the energy of the incident particle must be equal to its energy after the collision plus the recoil
energy plus the energy required to take the recoil away from its lattice site.
A moving atom stops when its energy is insufficient to generate more subcascades. However,
the remaining energy of the generated interstitial at the end of its trajectory can still contribute
to generate more damage if low-energy interactions were modeled. To consider this effect
within the iBCA model, the residual energy of each generated interstitial is equally shared with
its neighboring atoms. Ballistic collision only considers the impinging atom and the closest
target atom (two-body interactions); however, as energy decreases, collisions with several
target atoms occur more often, and groups of energetic atoms are created as the cascade
develops (many body interactions).
After this energy rearrangement, you evaluate which atoms are disordered taking into account
their efficiencies:
ρ – ET
eff = --------------- (102)
DC
where ρ is the energy density, and E T and D C are the threshold energy density and damage
generation cost, respectively. If the calculated efficiency of a given atom is below zero, it is not
disordered.
If eff is between 0 and 1, the atom is disordered with a random probability given by its
efficiency. If eff is 1 or greater, the atom is disordered and a random neighbor is disordered
with the probability given by the remaining efficiency ( eff – 1 ) and so on.
To simulate the energy diffusion process: First, evaluate the efficiency of those atoms with the
highest amount of energy in their environment. Second, repeat the process until no further
energy remains to create more disordered atoms.
This scheme for damage generation can be regarded as a combination of the two traditional
BCA approaches for damage description. As in the full-cascade BCA, ion and recoil
trajectories are followed to generate damage at the atomic level and to provide the individual
positions of Frenkel pairs, but you also must consider the energy deposited in atoms not
displaced by ballistic collisions. This energy is used to generate thermally disordered atoms
following a scheme similar to the modified Kinchin–Pease approach. Nevertheless, since the
residual deposited energies that are being considered to determine efficiencies are always at the
low-energy regime, the local character of damage generation is guaranteed. In addition, the
damage efficiency expression accounts for phase transformation (melting) and heat dissipation
through the dependency of the parameters E T and D C on the number of energetic neighbors.
This feature captures the nonlinear effects on damage generation due to the proximity of
several energetic atoms as it occurs in molecular implants.
To activate the iBCA damage model, specify iBCA in the implant command or switch on the
global switch:
pdbSet MCImplant iBCA 1
You can calibrate the iBCA damage model by changing the minimum energy for hot particles
(MinHotEnergy) and the maximum distance for the local neighbors
(DistLocalNeighbors):
pdbSet Silicon MinHotEnergy <n>
pdbSet Silicon DistLocalNeighbors <n>
In addition, you can calibrate the model by changing the formulas for the threshold energy
density (Et_iBCA) and the damage generation cost (Dc_iBCA) by modifying Tcl procedures.
As noted in the article [23], the default Tcl procedures for these quantities are defined as:
proc Et_iBCA { ln } {
set et [expr 11.348 * pow($ln+1, -0.837) + 0.931]
return $et;
}
proc Dc_iBCA { ln } {
set dc [expr 11.211*exp(-0.146*$ln + 0.00158*$ln*$ln)];
return $dc;
}
NOTE Because the iBCA damage model is substantially more CPU intensive
than the cascade damage model, only low-energy implant is practical
for this damage model.
BCA is valid in a wide range of projectile energies, from approximately 100 eV to many MeV.
It can, therefore, be employed over the whole range of energies of interest for ion implantation.
For energies below approximately 100 eV, collective interactions may play an increasingly
important role and BCA may become invalid. Nevertheless, the applications of Crystal-TRIM
to ultra low-energy implants lead to results that are still sufficiently good compared with
experimental data.
At each collision, the projectile loses a part of its energy due to elastic nuclear scattering at
target atoms and inelastic electronic iterations. The particles are assumed to come to rest if their
energy is in the order of 15 eV.
Single-Crystalline Materials
By default, only the trajectories of implanted ions are simulated. The number of vacancies and
displaced target atoms produced at each collision is calculated approximately using the
modified Kinchin–Pease formula.
In single-crystalline silicon, vacancies and recoils are often identified with the vacancies and
interstitials responsible for transient-enhanced diffusion (TED) of dopants. The choice of a
diffusion model determines whether the full-cascade mode of Crystal-TRIM must be applied.
Electronic Stopping
For crystalline target materials, the loss depends on the local electronic density in the
environment of the projectile. Therefore, the use of a local approach is particularly important
for investigations of channeling effects in single-crystalline substrates.
A simplified local approach, the so-called modified Oen–Robinson formula [21], is used. The
parameter CEX1 describes the variation of the electron density for a projectile moving in the
<110> direction of the crystal, while CEX2 does the same for any other direction. The value for
CEX1 and CEX2 are set in the parameter database and can be changed by using:
pdbSet <material> <dopant> CEX1 <n>
The value for CEX1 should be close to 1 or at least within the range of 0.5 and 3. The default
value for CEX2 is 2.
The automatic calibration of these parameters can be switched off individually using
AutoCEX1, AutoCEX2.
Amorphous Materials
Nuclear Collisions
In amorphous materials, nuclear collisions are described by assuming that consecutive binary
collisions are completely uncorrelated. The only structural parameter that influences nuclear
scattering is the average interatomic distance in the target material, which determines the
maximum free flight-path length to the next collision and the maximum impact parameter.
By default, the impact parameter is assumed to be distributed uniformly between zero and its
maximum value. The free flight-path length is constant and equal to the average interatomic
distance. Alternatively, a slightly different description of the structure of the amorphous
material is possible using the switch AdvancedAmorph:
pdbSet <material> <dopant> AdvancedAmorph 1
In this case, the free flight-path length is assumed to have a half-Gaussian distribution above
the interatomic distance scaled with a value of the parameter AMAV. The standard deviation is
controlled by the parameter AMDEV.
The default values are AMAV=1 and AMDEV=0, which correspond to setting AdvancedAmorph
0. The values of AMAV and AMDEV can be set in the parameter database:
pdbSet <material> <dopant> AMAV { <n> <n> <n> <n> }
pdbSet <material> <dopant> AMDEV { <n> <n> <n> <n> <n> <n> }
The set of parameters is given as an array. A pair of entries always specifies the number and
the value of the parameter, that is:
pdbSet Silicon Boron AMAV {0 -1.25e-4 1 0.93}
sets the two parameters for the calculation of AMAV to –1.25 and 0.93, respectively.
AMAV and AMDEV are made dependent on the atomic number of an implanted ion and its energy.
For arsenic, boron, and phosphorus in silicon, calibrated values are available in the parameter
database, and the AdvancedAmorph flag is set to 1. The calibration can overwrite external
settings of these parameters performed with pdbSet. To switch off the calibration, use:
pdbSet Silicon Boron AutoAMAV 0
NOTE This model should not be applied to implantation energies below 10–
20 keV. For low-energy implants, especially of boron, the default values
lead to wrong results. You should select AMAV and AMDEV manually,
where AMAV should be close to 1 and AMDEV should be a positive
number.
Table 8 Values for AMAV and AMDEV used in Crystal-TRIM AdvancedAmorph mode
Energy [keV] B/BF2 P As
Electronic Stopping
A nonlocal approach based on the ZBL formula [18] is used for amorphous materials. This
formula uses an average density of electrons and has only one fitting parameter, Lambda. This
factor is used for the scaling of the ion-screening length in the ZBL electronic-stopping cross
section. Default values of Lambda are also set in the parameter database. Values of Lambda
close to 1 (between 0.7 and 1.5) are recommended. The automatic calibration of this parameter
can be switched off by using AutoLambda.
The damage accumulation leading to de-channeling of ions and recoils, and the subsequent
crystalline–amorphous transition is described by a phenomenological model [22]. It can be
completely switched off by using:
pdbSet Ctrim DamageAccumulation No
This switches off both the damage accumulation and de-channeling. During the current implant
step, no additional damage will be produced and the existing predamage will have no effect.
Two other model options are available.
This model leads to full amorphization in mesh elements if the damage probability reaches a
critical limit and is chosen by setting:
pdbSet Ctrim DamageAccumulation Full
Below a certain threshold described by the parameter DCrit, the damage probability PD is
assumed to depend linearly on the nuclear energy deposition per atom ( E n ). The
proportionality factor is DAcc. If PD is greater than this value, the volume element is
completely amorphized and PD = 1, that is:
In most cases, DCrit should be less than DAcc to allow amorphization for high implantation
doses.
1.0
Damage Probability PD
DCrit
0.5
DAcc=0.8
DAcc=0.5
0.0
Vacancy Concentration
Figure 32 Onset of amorphization after reaching DCrit for two values of DAcc
According to this model, below a threshold value DCrit, the damage probability PD has the
same linear behavior as in the ‘full’ model, but cannot grow above DCrit:
For both models, the values of the parameters DAcc and DCrit depend mainly on the atomic
number of the implanted ion.
Table 9 lists values for some species. The automatic calibration for these values can be
switched off using AutoDAcc and AutoDCrit.
Table 9 Values for DAcc and DCrit for most important species
BF2 As, Ga, Ge In, Sb, Sn B, C, N Al, P, Si
By default, Crystal-TRIM stores the accumulated damage at the mesh. This makes the damage
accumulation dependent on the mesh and can lead to errors if the mesh is too coarse. Typically,
the amorphous boundary depends nonlocally on the mesh size closer to the surface of the
structure.
An internal grid can be used to accumulate and store as-implanted damage. This can be
switched on by using:
pdbSet Ctrim UseInternalGrid 1
This allows for a mesh-independent storage of the damage information. You can control the
grid spacing by using:
pdbSet Ctrim InternalGridSpacing <n>
In each grid cell, the accumulated as-implanted damage and the amorphization flag are stored.
During postprocessing, the accumulated as-implanted damage is transferred (interpolated)
from the internal grid to Sentaurus Process elements and then to Sentaurus Process nodes.
If two or more Crystal-TRIM steps directly follow each other, you can choose to leave the as-
implanted damage stored on the internal grid instead of transferring it to the mesh. The switch
[Link] must be used within the implant command:
implant As crystaltrim [Link]
To access the damage information, which was stored on the internal grid during the previous
Crystal-TRIM implantation, the switch [Link] (default is ![Link])
must be used within the implant command: An example is:
# first step
# no damage post-processing, keep damage on internal grid for the following
# steps
implant As crystaltrim [Link]
# second step
# use pre-damage on igrid from the previous step
# no damage post-processing: one more step follows
implant B crystaltrim [Link] [Link]
# third step
# use pre-damage on igrid
implant P crystaltrim [Link]
NOTE It is not possible to save the information from the internal grid to a file
using the struct command after the current Crystal-TRIM step.
Molecular Implantations
The MC method allows for the implantation of molecular ions or atomic cluster species such
as BF2. The assumption is that the molecule immediately breaks up into its constituents upon
impact on a solid surface.
+
BF2
Target Surface
F (w=2)
B (w=1)
This is a valid approximation if the binding energy of the molecule is considerably smaller than
the implant energy (for example, for BF2: EB ~ 9 eV).
where E i is the energy of the i -th species, M i is the atomic mass, and w j is the statistical
weight according to the stoichiometry of the molecule.
The constituents move as separate particles. However, particles of different species are not
completely independent because of the interaction through the implantation damage.
Sentaurus Process supports several molecular species: BF2 (BF2), BCl2 (BCl2), B18H22
(B18H22), AsH2 (AsH2), and PH2 (PH2). An implantation of B18H22, for example, can be
performed with:
implant B18H22 energy=100 [ctrim | tmc]
The atomic masses, statistical weights, and the molecular composition are available in the
parameter database. A full molecular implantation is performed if the keyword
[Link] is explicitly set, that is:
implant <dopant> [ctrim | tmc] [Link]
In this case, the trajectories for all atomic species are calculated. At the end of the simulation,
datasets for each ballistic constituent of the original molecule are generated. This is the default.
Only the trajectory of the significant species (B in the case of BF2) is calculated
if ![Link] is chosen.
Crystal orientation (one of 100, 110, and 111) can be specified using the material-specific pdb
command:
pdbSet PolySilicon CrystalOrient 110
This command sets the crystal orientation for all polysilicon regions to <110>.
The grain size also can be scaled with the GrainFactor parameter:
pdbSet PolySilicon GrainFactor <n>
The polycrystalline model works by frequently switching between the crystal algorithm and
the amorphous algorithm. The probability of switching from the crystal model to the
amorphous model is determined by the accumulative path length in crystal (pathlength) and
polycrystalline grain size (GrainSize). It switches from the crystal model to the amorphous
model if:
pathlength > R rand ⋅ ( GrainFactor ⋅ GrainSize ) (106)
where R rand is a random number between 0 and 1. The polycrystalline model shares the same
random number sequence with other modules in MC implantation. Therefore, if the random
seed is reset, the random numbers used in the polycrystalline model are changed as well.
After an amorphous collision is processed, the pathlength is reset to zero, and the crystal
model is selected. The pathlength is accumulated again. The model used for the next
collision is again determined by the same rules. This process is repeated until the particle exits
the polycrystalline region.
specifies a binary compound Si1–xGex with the mole fraction of Ge calculated from the
germanium concentration (GeTotal) divided by the silicon lattice density. This is the default
setting for SiliconGermanium in the PDB. MC models support implants into these
compound materials (binary, ternary, and quaternary).
models to treat this material in a more sophisticated way. To specify this minimum
concentration, for example, use:
pdbSet Silicon [Link] 1e20
If the concentration of GeTotal in any mesh node of silicon regions is greater than or equal to
20 –3
1 × 10 cm , MC implantation model treats this material as a binary compound
SiliconGermanium. In this case, the average charge and mass of the material are calculated
individually for each mesh element. Lattice constant, nonlocal electron stopping power, and
Debye temperatures are interpolated linearly based on the mole fractions. The lattice is
constructed with the primary material, and each lattice site is assigned to a type of atom with
probability proportional to their mole fractions.
Sentaurus MC considers the fact that each specific lattice site will be occupied with certain
types of atoms only. Therefore, the substitution of the lattice atoms occurs only for those with
the same Group number. The default group number for each type of atom is the same as that
in the periodic table. To change the group number, for example, use:
pdbSet ImplantData Carbon Group 4
For example, in compound material Si1–x–yGexCy, Ge and C have the same group number (IV)
as Si, so both of them can substitute silicon atoms in its lattice sites.
Another example is InxGa1–xAs1-yPy; In and Ga belong to the same group (III), and As and P
belong to the same group (V). Suppose Ga occupies site 0, and As site 1 in zinc-blende
structures, then In can only occupy site 0, and P site can only occupy 1 with the occupation
probabilities proportional to their mole fractions.
Silicon carbide exists in many different crystal structures, called polytypes. All polytypes have
a hexagonal frame with a carbon atom situated above the center of a triangle of Si atoms and
underneath a Si atom belonging to the next layer. The difference among the polytypes is the
stacking sequence between the succeeding double layers of carbon and silicon atoms. For
example, 2H-SiC, 4H-SiC, and 6H-SiC have the AB, ABCB, and ABCACB stacking
sequences, respectively. 3C-SiC has an ABC stacking sequence and is the only form of SiC
with a zinc-blende crystal lattice structure. The default polytype for SiC is 4H. To change to a
different polytype, use the following command:
pdbSet SiliconCarbide Polytype {2H 3C 4H 6H}
NOTE The lattice constants may be different for different polytypes. For
convenience, Tcl procedures (set2H-SiC, set3C-SiC, set4H-SiC,
and set6H-SiC) are provided to set to different SiC polytypes.
Two silicon carbide wafer orientations (<0001> and <11-20>) are supported. To specify these
wafer orientations, use the pdb command:
pdbSet SiliconCarbide CrystalOrient {0001 1120}
The default wafer orientation is <0001>. For (0001) SiC wafer; the primary flat orientation is
<10-10>. For (11-20) SiC wafer, the primary flat orientation is <0001>.
For details of the model and comparison with experimental data for various implant conditions,
see [24].
A miscut of 3.5° – 8.5° typically exists in SiC (1000) wafers. Sentaurus MC implantation takes
into account this wafer miscut by specifying [Link] and [Link] in the init
command. [Link] is the angle by which the wafer normal is tilted with respect to the
a-axis in the crystal coordinate system. [Link] is the angle that specifies the
direction into which the wafer normal is tilted. The default value of [Link] is 0,
that is, the projection of the wafer normal to the crystal plane, formed by the b-axis and c-axis,
is coincidental to the <110> direction in silicon. If [Link]=90, the wafer normal is
tilted by [Link] towards the right with respect to the crystal coordinate system. (Or, in
terms of the simulation coordinate system, if [Link]=90, the crystal coordinate
system is tilted towards the left with respect to the wafer normal.) By default, there is no wafer
miscut, that is, [Link]=0.
Recoil Implantation
Sentaurus MC implantation provides a general model for recoil implant, such as an oxygen
knock-on effect. Generally, recoil species are handled the same way as cascade atoms, except
that no vacancies are created at the displaced sites and the recoil species are not recorded as
interstitials when they stop. Instead, a separate dataset is created for each recoil species.
The recoil species is specified in the material composition. For example, to simulate the oxygen
knock-on effect, the following is defined in the parameter database:
Oxide -> Composition -> Component0 -> Name = Silicon
Oxide -> Composition -> Component0 -> StWeight = 1
Oxide -> Composition -> Component1 -> Name = Oxygen
Oxide -> Composition -> Component1 -> StWeight = 2
Oxide -> Composition -> Component1 -> Recoil = 1
To initiate oxygen recoil implant simulation, you must specify the keyword recoils in the
implant command:
implant <dopant> energy=<n> dose=<n> recoils
The datasets Oxygen_Implant and Oxygen are created, which contain displaced oxygen
distributions that can be used to analyze the oxygen knock-on effect.
Plasma Implantation
Three-dimensional tri-gate devices (FinFETs) have been employed at the 22 nm node and are
expected to continue at and beyond the 16 nm node. Doping of FinFETs must be 3D, and
conformal doping with plasma implantation (PLAD) is a promising approach. Likewise,
doping of planar devices is challenging, and PLAD offers capabilities not available in beamline
implantations.
To offer this simulation capability, Sentaurus Process provides a PLAD doping module that
accurately reflects both the hardware and process signatures as well as the physical properties
of the associated deposition, etching, sputtering, implantation, knock-on, defect creation, and
annihilation processes. This MC implantation module includes the following features:
■ Perform alternating steps of deposition and MC implantation. The number of steps can be
specified by users.
■ Deposition of material on the surface is performed isotropically (that is, constant growth
rate over the surface). The thickness is specified by users. A minimum thickness is imposed
by the program, which reduces the number of steps if necessary to prevent the deposition
of a layer that is too thin. The deposit material should be defined as usual, and material
composition of the layer must be specified by users.
■ The MC implantation module allows the specification of multiple ions incidents on the
wafer. The ion species should be defined before implantation as usual, and some typical ion
species used in plasma implantation will be predefined. You can specify the dose, energy
distribution, and angular distribution of each ion species. The dose for each ion is applied
evenly for each step.
■ An empirical model for conformal doping, in which the level of conformity can be
specified by users.
■ In addition to computing the concentration of ions that penetrate through the deposited
overlayer, the MC implantation module allow for atoms to be knocked out of the overlayer
and into the wafer and tracks damage and amorphization as usual.
You must define the plasma source before implantation can be performed. To avoid overly
complex syntax in the implant command, Sentaurus Process provides two ways to specify the
plasma source: simple source and complex source.
Simple Source
Assuming that the multiple ion species in plasma have the same energy and angle distributions,
simply specify the multiple species as a list in the implant command (other parameters such
as dose, energy, tilt, and so on can be specified like a regular implantation):
[Link] = {<species1>=<n> <species2>=<n> <species3>=<n> ...}
where:
■ [Link] specifies a list of ion species to be implanted. These species must be
predefined in ImplantData as usual.
■ The number after each species is the fraction of the total dose (as specified by the dose
parameter) for the given species.
■ All these species will have the same energy, tilt, [Link], and [Link] as
specified.
Complex Source
In more complex cases, different species may have different energy and angle distributions. In
this case, each species can be specified with their own implantation parameters (energy,
tilt, [Link], and [Link]). So for each species, define it with an implant
command:
implant species=<species1> energy=<n> tilt=<n> [Link]=<n> [Link]=<n>
implant species=<species2> energy=<n> tilt=<n> [Link]=<n> [Link]=<n>
implant species=<species3> energy=<n> tilt=<n> [Link]=<n> [Link]=<n>
...
Then, you can perform the real implantation in the same way as in the simple source case:
implant [Link]= {<species1>=<n> <species2>=<n> ...} dose=<n> energy=<n>
tilt=<n> [Link]=<n> [Link]=<n> ...
where:
■ [Link] specifies a list of ion species to be implanted. These species must be the
same as those in previous implant commands.
■ The regular implantation parameters (dose, energy, and so on) will be the default for
those species that are not specified. Essentially, this syntax is consistent with that for the
simple source and reduces to the simple source if no implantation parameters are specified
for each individual species.
Deposition of Material
To specify the deposition of the material during implantation, use the [Link]
parameter in the implant command:
implant [Link]= {<species1>=<n> <species2>=<n> ...}
[Link]= {material=<c> thickness=<n> steps=<n>}
dose=<n> energy=<n> tilt=<n> ...
where:
■ material is the name of the material to be deposited, which must be specified before the
implantation.
■ thickness is the total thickness of the deposit material.
The MC implantation module simulates the dopant knock-on and knock-off effect by
specifying the recoils parameters in the implant command. In addition, you must specify
the recoil species to be simulated in material composition.
For example, assuming the deposit material is BHx, and Atom0 is Boron, the following
commands specify Boron as a recoil species:
pdbSetString BHx Composition Atom0 Name Boron
pdbSetDouble BHx Composition Atom0 StWeight 1
pdbSetBoolean BHx Composition Atom0 Recoil 1
pdbSetString BHx Composition Atom1 Name Hydrogen
pdbSetDouble BHx Composition Atom1 StWeight <x>
Conformal Doping
To account for such effects, an empirical model has been developed that is compatible with the
current plasma implantation. In this model, instead of launching all ions from above the device,
as in standard implantation, some ions are launched along the device surface (that is, the solid–
ambient interface). A fraction of ions launched along the surface can be specified by the
parameter conformity in the implant command:
implant <dopant> energy=<n> dose=<n> conformity=<n> [Link]
where conformity is a number between 0 and 1.0. For example, if conformity=0, you will
obtain standard plasma implantation results, and if conformity=1, you will obtain fully
conformal doping.
Sentaurus Process provides a simple model for taking into account the energy and tilt angle
distributions of the plasma source. Given the mean and standard deviation of the implantation
energy and tilt angles, Sentaurus MC implantation samples the given energy and tilt
distributions for each implantation particle. When the implantation energy and tilt angle are
determined, the particle tracing proceeds in a typical fashion.
In addition to the normal implantation parameters, such as energy and tilt, you can specify the
standard deviation of implantation energy ([Link]) or the standard deviation of the tilt
angle ([Link]) or both. For example:
implant <dopant> plasma dose=<n> energy=<n> [Link]=<n> tilt=<n>
[Link]=<n> [Link]
where the implantation parameters energy and tilt are the mean energy and mean tilt,
respectively.
You also can specify the minimum energy that is allowed for implantation using the command:
pdbSet MCImplant MinEnergyCutoff <n>
Energy below the minimum energy will be truncated. The default minimum energy is zero. In
addition, you can specify the maximum energy that is allowed by using the command:
pdbSet MCImplant MaxNumStdevCutoff <n>
MaxNumStdevCutoff must be an integer (default is 5). The highest energy for a given implant
should not exceed the mean energy by the amount of [Link] x MaxNumStdevCutoff.
Energy higher than this number will be truncated.
The energetic distribution of different molecular and atomic ions, after extraction from the
plasma, is known to cover the range from zero to the maximum energy E max , which is equal
to the product of the ion charge multiplied by the extraction voltage. Sentaurus Process allows
easy selection and addition of various energy distribution models. In addition to the default
Gaussian distribution, Sentaurus Process implements an alternative Burenkov model [25]. In
this model, the energy distribution, as presented by Tian et al. [26] as an integral number of
particles having their energy in a given interval, can be written in a differential form as
follows [25]:
f ( E ) = ------------------- ⋅ -----------
5 E –1 / 6
(107)
6 ⋅ E max E max
The energy distribution f ( E ) presented in Eq. 107 is normalized, that is, the integral over all
possible energies of the extracted ions, ranging from 0 to E max , is equal to one. Burenkov et
al. have shown that by using the energy distribution given by Eq. 107, excellent agreement can
be obtained between simulations and experiments for BF3 plasma implantation [25].
To provide maximum flexibility for energy and tilt angle distributions, you also can provide
your own distributions by modifying the following Tcl procedures in [Link]:
Plasma::Energy_Distribution { energy stdev }
Plasma::Tilt_Distribution { mean stdev }
NOTE Sentaurus Process does not check the validity of these user-defined
distributions. If you change these distributions, you must provide the
correct distributions to ensure the correct implantation results.
The default value for MCDFactor is 1 and can be changed in the parameter database or at the
implant command line:
pdbSetDouble <material> <dopant> MCDFactor <n>
implant <dopant> [tmc] [[Link]=<n>]
The damage information calculated during Crystal-TRIM simulations is stored in the damage
probability dataset PD. This information is used in the model of APs to treat the nuclear
collisions in the partially damaged crystalline region. Within a certain volume element, PD
gives the probability that the collision can be treated as if the material were amorphous. The
material is locally considered to be completely amorphized if PD = 1.
The PD dataset is not deleted after an implant step and, consequently, can be reused in
subsequent Crystal-TRIM runs (damage history).
If the PD dataset has been deleted or has not yet been created, the Damage dataset is used to
initialize the damage history in all crystalline materials:
PD = Damage / Threshold, max(PD) = 1 (109)
where Threshold is the amorphous threshold, which is the minimum of the lattice density and
amorphous density. Both parameters can be set in the parameter database:
pdbSet <material> LatticeDensity <n>
pdbSet <material> AmorpDensity <n>
At the end of the simulation, the Damage dataset is increased according to:
Damage = Damage + PD_LastImp ⋅ Threshold (110)
Point Defects
Elemental Material
Point-defect profiles after a MC run can be generated from the ballistic dopant profile using the
[Link] or [Link].n model, or from the ballistic vacancy (Frenkel pair) and
recoil profiles using the [Link] model. The [Link].n model is the
default for all MC simulations. In this case, the ballistic dopant profile <dopant>_LastImp
is used according to Eq. 49, p. 116.
Interstitial and vacancy profiles can also be calculated using the ballistic vacancy dataset
Vac_LastImp generated during a MC run. The switch [Link] must be set to
[Link]:
implant <dopant> [crystaltrim | [Link]] [[Link]=[Link]]
Using the MC-specific factors MCIFactor and MCVFactor, the profiles are calculated
according to:
Int_Implant += MCIFactor ⋅ Vac_LastImp + IFactor ⋅ <dopant>_LastImp
(111)
Vac_Implant += MCVFactor ⋅ Vac_LastImp
The default values for MCIFactor, MCVFactor, and IFactor are 1. These factors can be
changed in the parameter database:
pdbSet <material> <dopant> IFactor <n>
pdbSet <material> <dopant> MCIFactor <n>
pdbSet <material> <dopant> MCVFactor <n>
Setting ifactor, [Link], and [Link] in the implant command overwrites the
parameter database entries.
In this case, the interstitial and vacancy densities increase according to the following:
Multicomponent Materials
To generate distinct types of point defect in multiple-component materials, you must switch on
the DistinctDefects flag, for example:
pdbSetBoolean SiliconCarbide DistinctDefects 1
By default, this flag is true for SiC but false for other materials. As a result, instead of
Int_Implant and Vac_Implant, the generated point-defect datasets in SiC are
IntSilicon_Implant, IntCarbon_Implant, VacSilicon_Implant, and
VacCarbon_Implant.
In this model, the total point-defect concentration is computed the same way as the elemental
material. The implantation parameters [Link], ifactor, vfactor, [Link],
and [Link] in the implant command still work. ifactor and vfactor are scaling
factors for interstitial profiles and vacancy profiles, respectively, in the [Link] defect
model; while [Link] and [Link] are scaling factors for interstitial profiles and
vacancy profiles, respectively, in the [Link] defect model. The same Tcl procedure
CalcPlusNFactor calculates automatically the plus factors for the [Link].n
defect model.
Then, the individual point-defect concentration is computed by multiplying the total point-
defect concentration by the fraction of each component. The fraction of each component is, by
default, their stoichiometric weight, but it can be changed in the parameter database with the
parameters [Link] and [Link].
In this case, the interstitial and vacancy densities increase according to the following:
Statistical Enhancement
The energetic pseudoparticles in a MC simulation are statistical objects representing several
actual particles or only a fraction of an actual particle. Pseudoparticles start their motion at a
plane above the target parallel to the wafer surface. The starting surface is subdivided into
segments of equal size. The size of these segments can be controlled by setting dy and dz in
the MCImplant -> Intervals entry in the parameter database.
or:
implant <dopant> [crystaltrim | [Link]] [particles=<n>]
The default value for particles is 1000. The random number generator can be started with
a specified random seed. The integer value used can be set with the parameter RandomSeed:
pdbSet MCImplant RandomSeed <n>
The default is 1. Random seeds also can be chosen randomly by using the internal clock,
thereby giving different results for different runs. This feature is useful for statistical analysis
for MC implantations. To use this feature, use the following command:
pdbSet MCImplant Randomize 1
Trajectory Splitting
Trajectory splitting artificially increases the number of trajectories calculated in regions with
low trajectory density. It can be switched on or off by using:
pdbSet MCImplant TrajectorySplitting 1
If a projectile reaches an element with a small trajectory density, a split point is set, that is, the
particle is replaced by two daughter particles having half the statistical weight of the mother
projectile. Then, the trajectories of both daughter particles are simulated in the same manner
as for the original particle. Further splitting may occur that leads to a splitting tree related to
the mother projectile. At a split point, the two daughter projectiles start under identical
conditions.
However, the consideration of thermal vibrations of target atoms leads to a deviation of the
trajectories of the daughter projectiles after a few collisions. In this manner, a high number of
different particle trajectories with low statistical weight is obtained, which leads to an
important decrease of the statistical noise in the tail parts of the dopant distribution.
In Sentaurus MC, the maximum depth of the splitting tree is defined by a global parameter
MaxSplitLevels:
pdbSet MCImplant MaxSplitLevels <n>
In Crystal-TRIM, a similar parameter is defined for each species. For a given ion species, the
maximum depth of the splitting tree is defined by the parameter MaxSplits:
pdbSet <material> <dopant> MaxSplits <n>
pdbSet <material> <dopant> MaxSplitsPerElement <n>
The parameter MaxSplitsPerElement defines the maximum number of split events within
one element.
Dose Split
In the conventional pseudoparticle Monte Carlo approach, all particles have the same
weighting. In contrast, dose split algorithm uses smart particle weighting with first-coming
ions weighing less than later ions. This prevents crystalline from amorphizing too quickly,
thereby allowing more ions to enter the channeling regions. This model can drastically reduce
the noises of the channeling tails. By default, dose split is switched off. To activate the model,
use the command:
pdbSet MCImplant DoseSplit 1
The dose split model is especially effective for high-dose amorphizing implants, such as
15 –2
arsenic implant with a dose of 8 ×10 cm . For a typical run, the CPU time is about 2 to 3
times slower than that without dose split for the same number of particles. However, dose split
improves the statistics in the channeling tails by at least two orders of magnitude.
To achieve the same statistical significance, the conventional approach requires at least 100
times more particles; this means that the effective speedup is about 30 to 50 times.
Trajectory Replication
The trajectory replication algorithm uses the fact that in almost all 2D or 3D target structures,
several regions with 1D topology can be found. A particle trajectory going through such a part
can be copied many times by shifting its origin. Within the 1D region, each shifted trajectory
is a valid particle trajectory. Its reproduction by copying is much faster than its physical
calculation.
The subdivision into 1D parts or equivalence classes is performed automatically during the
implantation. A subdivision is performed using the segments of the start surface. At the
beginning, all the start segments are in the same equivalence class.
First, the whole trajectory tree is calculated including splits and recoils. The increments of all
concentration-type values between entering and leaving a grid element are stored for each
trajectory point (at least one per grid element). A start segment is chosen from the same
equivalence class. The starting point of the copy trajectory is set randomly within this start
segment. The point where the copied trajectory enters the material is found in the same way as
for the original trajectory. The vector between the first material point of the master and the
copied trajectory serves as a shift vector. All the increments of the master trajectory are
transferred point by point into grid elements that correspond to the shifted points.
–4
If the materials are not identical within geometry tolerance ( 1.5 ×10 μm ), or the initial
damage is different by more than 1% at the master and the replica points, replication fails and
the start segment is taken out of the present equivalence class and placed into a new equivalence
class. The generation of new equivalence classes stops after a certain number of particles has
been implanted. These initial particles are called probing ions.
Due to the random nature of ion trajectories, for the same structure, the equivalent classes as
discovered by the probing ions could be slightly different depending on the random seeds,
implanted species, or the number of probing ions.
The number of probing ions is empirically set to the total number of start segments. However,
depending on the situation, this number may be too small for 2D simulations; whereas, it may
be too large for 3D simulations. You can control this number by using the command:
pdbSet MCImplant ReplicationLearningFactor <n>
After this command, the new number of probing ions will be equal to the original number of
probing ions multiplied by ReplicationLearningFactor. Generally, the more probing
ions, the more equivalent classes will be created for a given structure. More equivalent classes
will reduce the ratio of the replicated trajectories to the calculated trajectories, thereby
providing more accurate results at the expense of more CPU time.
The total number of implanted particles is given as the number of start segments multiplied by
the number of particles per segment, which can be set by using the parameter particles. Due
to the replication, the number of physically calculated trajectories is usually much smaller and
is given rather by the number of equivalence classes multiplied by particles.
The trajectory replication algorithm is based on the heuristic argument that the 1D part of the
structure should be equivalent. However, some parts of the 1D region may be close to the
sidewalls. Therefore, the dopant concentration is contributed to not only from the direct
exposure to the ion beam, but also from the particles scattered from the sidewalls and re-
entering the 1D region. In such situations (such as high-energy implant into a photoresist mask
or pocket implants), trajectory replication may not give accurate results near the sidewalls. In
addition, for high tilt pocket implants, saving CPU time by trajectory replication is limited.
Therefore, under such circumstances, you should switch off the trajectory replication.
and:
Transparent Boundary
pdbSet MCImplant LeftBoundary Transparent
pdbSet MCImplant RightBoundary Transparent
pdbSet MCImplant BackBoundary Transparent
pdbSet MCImplant FrontBoundary Transparent
All particles crossing the boundary leave the simulation domain and are lost.
Periodic Structure
pdbSet MCImplant BoundaryPeriodicY 1
This switches periodicity in the left-right direction. Correspondingly, for the back-front
direction:
pdbSet MCImplant BoundaryPeriodicZ 1
All particles leaving the material will re-enter the material at the opposite side.
Reflective Boundary
pdbSet MCImplant LeftBoundary Reflect
pdbSet MCImplant RightBoundary Reflect
pdbSet MCImplant BackBoundary Reflect
pdbSet MCImplant FrontBoundary Reflect
A particle hitting the boundary will have its position and direction of motion reflected with
respect to the boundary plane.
Instead of reflecting the direction of the moving particles at the boundary, Sentaurus Process
provides a new boundary condition TrueReflect, which automatically reflects the structure,
performs the implantation, and then cuts the structure to its original domain. To specify the
TrueReflect boundary condition, use the following commands:
pdbSet MCImplant LeftBoundary TrueReflect
pdbSet MCImplant RightBoundary TrueReflect
pdbSet MCImplant FrontBoundary TrueReflect
pdbSet MCImplant BackBoundary TrueReflect
where the function f is between 0 and 1. If tilt equals 0, f equals 0. Therefore, for tilt
equals 0, extension length equals MinExtension. The default value for MinExtension is
0.1 μm , which is usually sufficient for low-energy implants. For high-energy implants, you
may need to increase MinExtension to avoid decaying concentration at the boundaries.
Datasets
The datasets used in a MC run follow the same naming conventions as those used in analytic
implantation. Datasets unique to the MC implantation method are:
■ The ballistic vacancy density Vac_LastImp.
■ The damage probability PD, which is used to store and initialize damage history in
Crystal-TRIM.
■ The nuclear energy deposition EnergyDeposition, which is created in Sentaurus MC
implantation.
Damage_LastImp Damage created during the last implant step. This dataset is used by
Sentaurus MC only.
<dopant>_LastImp Ballistic dopant concentration generated during the last implant step. It is
reset at the beginning of each implant step.
Vac_LastImp Ballistic vacancy density generated during the last implant step.
∂C
– ( D ⋅ ∇C ) = 0 (115)
∂t
where:
■ C is the concentration.
■ D is the diffusion coefficient.
■ D ⋅ t is the characteristic diffusing distance.
To smooth all as-implanted profiles, specify the Boolean parameter smooth in the implant
command or, alternatively, use the global switch Smoothing, which can be specified as
follows:
pdbSet MCImplant Smoothing 1
In this case, all as-implanted fields are smoothed including dopant, damage, and point-defect
profiles.
For flexibility, Sentaurus Process also provides facilities for smoothing selected fields by using
parameter [Link]=<list of fields>. If this parameter is specified, only the
specified fields are smoothed. The valid fields are <dopant> or Damage. For example, for BF2
implantation, the valid fields are Boron, Fluorine, or Damage. Note that point defects
(interstitial and vacancy) are generally not independent and cannot be specified in
[Link]. In addition, depending on the point-defect model used, the smoothing of
dopant or damage fields also may cause the point defects being smoothed.
If no pdb parameter is available for a given species, the global default (2 nm) is used.
If only point defects are smoothed, you must use the smooth command after the implant
command (instead of specifying smooth or [Link] in the implant command). The
syntax is as follows:
smooth [Link]=<list of fields> [Link]=<double array>
This is a general command that can be used to smooth any field. For example, to smooth point
defects after implantation, use the command:
smooth [Link]= {Int_Implant Vac_Implant} [Link]= {1<nm> 5<nm>}
NOTE If using the smooth command to smooth a field, the pdb parameter for
smooth distance will not be read. Therefore, [Link] must
be specified in the smooth command if it is different from the default
2 nm.
The critical part of automatic extraction of implant moments is the optimization (or least square
fit) algorithm, that is, given a profile or a set of m pairs of data points (x i,y i) , optimize the
parameter set β of the model function f ( x, β ) , so that the sum of the squares of the errors at
each point becomes minimal:
m
[ yi – f ( xi, β ) ]
2
S( β ) = (116)
i=1
Sentaurus Process uses the same optimizer as TSUPREM-4, which implements the popular
Levenberg–Marquardt algorithm, also known as the damped least-squares method. Since this
algorithm only finds the local minimum, the initial parameter values may affect the extracted
results.
Required Parameters
To extract the moments, you must specify the parameters [Link] and [Link]
in the implant command. The parameter [Link] simply indicates that instead of
performing an implantation or setting implantation parameters, the implant command is used
to extract implant moments. The parameter [Link] specifies the ASCII data file from
where implant moments will be extracted.
Optional Parameters
To better control the extraction process, the following optional parameters are available in the
implant command:
■ dualpearson (default), gaussian, and pearson specify the type of moments to be
extracted.
■ rp, stdev, gamma, beta, rp2, stdev2, gamma2, beta2, and ratio specify the initial
values for optimization. If not specified, initial values will be guessed from the profile data.
■ [Link], [Link], [Link], [Link], [Link], [Link], and
[Link] specify how the data in [Link] will be interpreted and retrieved.
■ [Link] specifies the maximum number of iterations allowed in the optimization loop.
Default is 500.
■ tolerance specifies the tolerance of target errors. Default is 0.1.
Output Format
Extracting implant moments provides two types of output, at the same time, to facilitate further
manipulation of the moments:
■ Command line. This is useful for copying and inserting the output into the implant
command. The extracted moments are printed on the screen and in the log file in the format:
rp=<n> stdev=<n> gamma=<n> beta=<n> ...
■ Tcl list. The output list of moments has the format:
{model dualpearson rp <n> stdev <n> gamma <n> beta <n> ...}
The output Tcl list can be converted into a Tcl array by using array set, which then can be
used to access the moments conveniently. For example:
set moms [implant [Link] [Link]=myfile]
array set m $moms
LogFile ''model = $m(model)''
LogFile ''rp = $m(rp)''
LogFile ''stdev = $m(stdev)''
Utilities
The Tcl script ImplantTableMaker can be used to guide users through selecting
implantation conditions to automatically create a Taurus format implant table from MC
implantations. This script must be run in interactive mode, and you must input various implant
parameters that are necessary to create an implant table. The resulting table is named
<species>_in_<material>_mystandard.
If the [Link] switch is set in the implant command, Sentaurus Process takes the TDR file
specified with the file selector and loads the datasets into the present structure. Interpolation
of the datasets is performed if the structure in the TDR file is different from the present
structure.
Sentaurus Process attempts to find the doping profiles required from the implant species and
the damage probability (for Crystal-TRIM) or damage dataset (for Sentaurus MC). For
example, in the following statement:
implant Boron [Link] file=my_data energy=10 dose=1e14
Sentaurus Process opens the files my_data{_fps}.tdr, and checks for the datasets
Boron_LastImp and PD_LastImp (for Crystal-TRIM) or Damage_LastImp (for
Sentaurus MC). If successful, these datasets are restored. If one or more of the required
datasets is missing, the respective fields remain empty. Then, during implantation
postprocessing, Boron_LastImp and Damage_LastImp are added to the Boron_Implant
and Damage datasets.
NOTE The switch [Link] restores the datasets from the files without
checking the implant conditions specified in the implant command.
Therefore, [Link] by itself does not require the implant parameters
such as energy and dose be specified. However, Advanced Calibration
and CoImplant models may use these parameters (energy and dose)
for their calculations. Therefore, it is recommended that energy and
dose always be specified along with [Link].
Example
implant BF2 dose=1e14 energy=40 tilt=20 rotation=-90 [Link] \
file=bf2_1e14_40 particles=500 cascades
In the first run of this command, Sentaurus Process checks for the TDR file with the name
bf2_1e14_40. Since there is no file with this name, a full-cascade Crystal-TRIM or
Sentaurus MC run is started using the process parameters specified. At the end, the TDR file
bf2_1e14_40_fps.tdr is saved. The following are stored as well:
■ All datasets related to the BF2 impurity profile (Boron_LastImp, Fluorine_LastImp).
■ The damage probability (PD_LastImp) or damage (Damage_LastImp).
■ The recoil profile (Silicon_LastImp) and vacancy profile (Vac_LastImp) because the
command is run in the full-cascade mode.
In a subsequent run of the same command, Sentaurus Process loads and restores these datasets
in a preprocessing step. The postprocessing is the same as after a MC run.
You also can modify the stack size for each thread using the command:
math [ threadStackSize = <n> ]
18
The default stack size ( 2 = 262144 bytes) is usually sufficient for 3D analytic implantation.
You also can modify the stack size for each thread using the command:
math [ threadStackSize = <n> ]
18
The default stack size ( 2 = 262144 bytes) is usually sufficient for MC implantation.
References
[1] G. Hobler and S. Selberherr, “Two-Dimensional Modeling of Ion Implantation Induced
Point Defects,” IEEE Transactions on Computer-Aided Design, vol. 7, no. 2, pp. 174–
180, 1988.
[2] J. P. Biersack, “Basic Physical Aspects of High Energy Implantation,” Nuclear
Instruments and Methods in Physics Research, vol. B35, no. 2, pp. 205–214, 1988.
[3] J. F. Gibbons, W. S. Johnson, and S. W. Mylroie, Projected Range Statistics:
Semiconductors and Related Materials, Pennsylvania: Dowden, Hutchinson & Ross,
2nd ed., 1975.
[4] C. Zechner et al., “New Implantation Tables for B, BF2, P, As, In and Sb,” in 14th
International Conference on Ion Implantation Technology (IIT), Taos, NM, USA,
pp. 567–570, September 2002.
[5] S. Tian, V. Moroz, and N. Strecker, “Accurate Monte Carlo Simulation of Ion
Implantation into Arbitrary 1D/2D/3D Structures for Silicon Technology,” in MRS
Symposium Proceedings, Silicon Front-End Junction Formation—Physics and
Technology, vol. 810, San Francisco, CA, USA, pp. 287–292, April 2004.
[6] S. J. Morris et al., “An Accurate and Efficient Model for Boron Implants Through Thin
Oxide Layers into Single-Crystal Silicon,” IEEE Transactions on Semiconductor
Manufacturing, vol. 8, no. 4, pp. 408–413, 1995.
[7] S. Tian, “Predictive Monte Carlo ion implantation simulator from sub-keV to above
10 MeV,” Journal of Applied Physics, vol. 93, no. 10, pp. 5893–5904, 2003.
[8] M. Posselt, “Crystal-TRIM and Its Application to Investigations on Channeling Effects
During Ion Implantation,” Radiation Effects and Defects in Solids, vol. 130–131,
pp. 87–119, 1994.
[9] A. F. Tasch et al., “An Improved Approach to Accurately Model Shallow B and BF2
Implants in Silicon,” Journal of the Electrochemical Society, vol. 136, no. 3, pp. 810–
814, 1989.
[10] G. Hobler, E. Langer, and S. Selberherr, “Two-Dimensional Modeling of Ion
Implantation with Spatial Moments,” Solid-State Electronics, vol. 30, no. 4, pp. 445–
455, 1987.
[11] A. Stolmeijer et al., “General Expressions for the Impurity Distributions of B and P
Implanted in SiO2,” Journal of the Electrochemical Society, vol. 135, no. 9, pp. 2309–
2311, 1988.
[12] FLOOPS process and device simulator: [Link] January 2013.
[13] H. Ryssel, W. Krüger, and J. Lorenz, “Comparison of Monte Carlo Simulations and
Analytical Models for the Calculation of Implantation Profiles in Multilayer Targets,”
Nuclear Instruments and Methods in Physics Research, vol. B19/20, no. 20, pp. 40–44,
1987.
[14] G. Hobler and V. Moroz, “Initial Conditions for Transient Enhanced Diffusion: Beyond
the Plus-Factor Approach,” in International Conference on Simulation of
Semiconductor Processes and Devices (SISPAD), Athens, Greece, pp. 34–37, September
2001.
[15] S. Strauss et al., “Analytic model for ion channeling in successive implantations in
crystalline silicon,” Materials Science and Engineering B, vol. 124–125, pp. 376–378,
December 2005.
[16] S. Tian, “Accurate Monte Carlo simulation of fluorine and BF2 ion implantation into
crystalline silicon,” Nuclear Instruments and Methods in Physics Research B, vol. 215,
no. 3-4, pp. 403–412, 2004.
[17] H. Goldstein, Classical Mechanics, Cambridge, Massachusetts: Addison-Wesley Press,
1950.
[18] J. F. Ziegler, J. P. Biersack, and U. Littmark, “The Stopping and Range of Ions in
Solids,” The Stopping and Ranges of Ions in Matter, vol. 1, New York: Pergamon Press,
1985.
[19] M. T. Robinson and I. M. Torrens, “Computer simulation of atomic-displacement
cascades in solids in the binary-collision approximation,” Physical Review B, vol. 9,
no. 12, pp. 5008–5024, 1974.
[20] J. Lindhard and M. Scharff, “Energy Dissipation by Ions in the kev Region,” Physical
Review, vol. 124, no. 1, pp. 128–130, 1961.
[21] O. S. Oen and M. T. Robinson, “Computer Studies of the Reflection of Light Ions from
Solids,” Nuclear Instruments and Methods, vol. 132, pp. 647–653, 1976.
[22] M. Posselt et al., “Modeling of Damage Accumulation during Ion Implantation into
Single-Crystalline Silicon,” Journal of the Electrochemical Society, vol. 144, no. 4,
pp. 1495–1504, 1997.
[23] I. Santos et al., “Improved atomistic damage generation model for binary collision
simulations,” Journal of Applied Physics, vol. 105, p. 083530, April 2009.
[24] S. Tian, “Monte Carlo Simulation of Ion Implantation in Crystalline SiC With Arbitrary
Polytypes,” IEEE Transactions on Electron Devices, vol. 55, no. 8, pp. 1991–1996,
2008.
[25] A. Burenkov et al., “Simulation of BF3 Plasma Immersion Ion Implantation into
Silicon,” in 19th International Conference on Ion Implantation Technology (IIT),
Valladolid, Spain, pp. 233–236, June 2012.
[26] X. B. Tian, D. T. K. Kwok, and P. K. Chu, “Modeling of incident particle energy
distribution in plasma immersion ion implantation,” Journal of Applied Physics, vol. 88,
no. 9, pp. 4961–4966, 2000.
Overview
During the fabrication process, dopants are introduced into the substrate with different
concentration profiles. As processing proceeds through various thermal annealing cycles, the
dopants diffuse and redistribute through the structure. The following effects contribute to
dopant redistribution and can be modeled by Sentaurus Process:
■ Dopant (de)activation
■ Dopant–defect interaction
■ Chemical reactions at interfaces and in bulk materials
■ Material flow
■ Moving material interfaces
■ Internal electric fields
The diffuse command represents the main simulation capabilities of Sentaurus Process. It
simulates:
■ Thermal annealing of impurities.
■ Material growth processes during annealing, for example, oxidation, silicidation, and
epitaxy (see Epitaxy on page 270 and Oxidation on page 603).
■ Process-induced stress (see Chapter 9 on page 629).
Basic Diffusion
The diffuse command is used to model the diffusion of impurities under oxidizing and non-
oxidizing conditions. The options of the diffuse command set diffusion conditions as well
as time-stepping options. (See diffuse on page 875 for all options.) For example, a command
for a simple non-oxidizing annealing at a temperature of 900°C for 10 s is:
diffuse temperature=900<C> time=10<s>
If you want to perform the same anneal with a wet (H2O) oxidizing ambient, execute the
following command:
diffuse temperature=900<C> time=10<s> H2O
A simple temperature ramp can be specified directly in the diffuse command by the keyword
ramprate. This keyword sets the change in the temperature over time:
diffuse temperature=900<C> time=10<min> O2 ramprate=10<C/min>
This example describes a dry oxidation of 10 minutes, starting at 900°C and ending at
1000°C . The same example can be repeated using the temp_ramp command as follows:
temp_ramp name=MyTempRamp temperature=900 time=10 O2 ramprate=10<C/min>
diffuse [Link]=MyTempRamp
The first line creates a temperature ramp with given conditions, and the second line specifies a
diffusion referring to this temperature ramp.
To describe more complex temperature cycles within one diffuse command, multiple
instances of the temp_ramp command can be used. A temperature ramp can consist of several
segments and, for each segment, one temp_ramp command is required. In addition, segments
can be grouped by using the same name for each segment. For example, a ramp-up, plateau,
and ramp-down can be specified as:
temp_ramp name=MyCycle temperature=500<C> time=5<min> H2O ramprate=100<C/min>
temp_ramp name=MyCycle temperature=1000<C> time=10<min> O2
temp_ramp name=MyCycle temperature=1000<C> time=10<min> ramprate=-50<C/min> \
last
diffuse [Link]=MyCycle
The keyword last in the third temp_ramp command declares the last segment of the
temperature ramp.
Sentaurus Process allows for thermal oxidation from O2 and H2O. The gas_flow command
is used to specify a mixed gas flow by specifying directly either the partial pressures of the gas
components or the flow [volume/time]. If the flows are defined, they are converted to partial
pressures by taking ratios. The use of the gas_flow command is similar to the temp_ramp
command; however, multiple gas flows using the same name must not be specified. When a
gas_flow is specified, it can be referred to from both the temp_ramp and diffuse
commands:
gas_flow name=MyGasFlow pH2O=0.5 pO2=0.5 pH2=0.1
or:
diffuse temperature=1000<C> time=10<min> [Link]=MyGasFlow
Sentaurus Process also allows you to select various diffusion models for point defects and
dopants (see Transport Models on page 197). Diffusion model setting and parameter setting are
performed with the pdbSet command. The basic settings are:
pdbSet <material> Dopant DiffModel <model>
Epitaxy can be simulated if either the Epi (also known as epi) or LTE ambient is specified in
either the temp_ramp or diffuse command. If Epi is specified, Silicon will grow on
Silicon and PolySilicon will grow on PolySilicon. If the LTE ambient is specified,
Silicon will again grow on Silicon, but PolySilicon will grow on Oxide, Nitride, and
PolySilicon.
pdbSet Silicon Dopant DiffModel Pair
diffuse temperature=800<C> time=60<min> Epi thick=0.01 \
[Link] = {Germanium = 8e21}
This example sets the dopant diffusion model for all dopants in silicon to the Pair model and
21
grows a 0.01 μm thick epi layer with a Germanium concentration of 8 × 10 .
It is also possible to set the initial diffusion time-step and the minimum annealing temperature
with the diffuse command.
diffuse [Link]=MyCycle minT=600<C> init=0.01<s>
This example uses the temp_ramp created in the earlier example. The initial time step is set to
0.01 s and the minimum annealing temperature is set to 600°C . The diffusion and reaction
equations will be switched off below 600°C but the mechanics will be solved.
If you want to set the minimum annealing temperature and initial time-step globally for all
diffusion commands, the following commands can be used:
pdbSet Diffuse minT {<n>}
pdbSet Diffuse InitTimeStep {<n>}
It is also possible to set minimum and maximum temperature limits for the annealing process
using the following commands:
pdbSet Diffuse minAnnealT <n>
pdbSet Diffuse maxAnnealT <n>
If the annealing temperature goes above or below these limits, Sentaurus Process will quit with
an error message.
See Viewing the Defaults: Parameter Database Browser on page 58 for other parameters
related to Diffuse.
Similarly for other commands that can change the dopant concentrations, the active and total
concentrations are not updated. These commands include, but are not limited to, select,
load, init, and profile.
After one of these commands is issued, the active and total dopant concentrations may not be
current. To update the active and total dopant concentrations use the diffuse time=0 ...
command.
NOTE To update the active and total concentrations of the dopants without
dopant redistribution, the diffuse command with zero time can be
used. For example, to calculate the active dopant concentration at
850°C for the chosen diffusion model, use:
diffuse time=0.0 temperature=850
NOTE Since the diffuse command performs the recrystallization and the
initialization of clusters even with zero time, it must not be added
between consecutive implantation steps.
See diffuse on page 875 for all options of the diffuse command.
Transport Models
Sentaurus Process has several basic transport models with varying levels of complexity for
computing flux, J . This diversity of models is needed to balance accuracy with simulation
times, which vary widely depending on the model selection:
■ The React (see React Diffusion Model on page 204) and ChargedReact (see
ChargedReact Diffusion Model on page 198) diffusion models, also known as five-stream
diffusion models, are the most advanced dopant diffusion models in Sentaurus Process.
They solve up to three separate equations per dopant – a substitutional dopant – and up to
two dopant–defect pairs and two defect equations. The ChargedReact model is the most
accurate model available in Sentaurus Process. but because of the large number of
equations required, it also is the most computationally expensive. The React model, which
is an uncharged version of the ChargedReact model, is provided for backward
compatibility.
■ The Pair (see Pair Diffusion Model on page 208) and ChargedPair (see ChargedPair
Diffusion Model on page 206) diffusion models, also known as three-stream diffusion
models, assume that dopant–defect pairs are in local equilibrium but still solve for separate
point-defect equations. These models solve one equation per dopant and two defect
equations. The ChargedPair diffusion model allows the pairing coefficients to vary with
charge state. These models are the most commonly used for advanced CMOS processes as
they represent a balance between accuracy and computational expense. For extremely fast
ramp rates or for customized initial conditions, the ChargedReact model or React model
is a better choice. The Pair model, which is an uncharged version of the ChargedPair
model, is provided for backward compatibility.
■ The Fermi (see Fermi Diffusion Model on page 211) and ChargedFermi (see
ChargedFermi Diffusion Model on page 209) diffusion models both assume that point
defects as well as dopant–defect pairs are in equilibrium. The ChargedFermi diffusion
model allows the diffusivity of each charge state to be set separately. An uncharged version
of the model is provided for backward compatibility. These models can be used for long-
term high-temperature anneals where the transient effect of annealing implant damage is
minimal.
■ The Constant diffusion model (see Constant Diffusion Model on page 212), unlike all
other transport models, assumes a constant diffusivity and no electric-field effect, and is
used mainly for dopant diffusion in oxide.
where <model> must have one of the valid diffusion model names – Constant, Fermi, Pair,
React, ChargedFermi, ChargedPair, or ChargedReact.
It is also possible to select a different diffusion model for each dopant in the same material. In
this case, use the command:
pdbSet <material> <dopant> DiffModel <model>
The ChargedFermi, ChargedPair, and ChargedReact diffusion models take into account
each charged point defect individually. Otherwise, they are very similar to the Fermi and Pair
diffusion models.
NOTE Even though you can select any diffusion model individually for each
dopant, it is not recommended to mix the ChargedFermi,
ChargedPair, or ChargedReact models with the uncharged
versions.
ChargedReact
ChargedFermi
Type
ChargedPair
Constant
React
Fermi
Pair
pdbSet <material> <dopant> <defect> D Diffusivity X X X X
In Table 11, <material> is a valid material name, <dopant> is a valid dopant name, and
<defect> is either Int or Vac.
Boundary Conditions
Sentaurus Process can simulate various boundary conditions for dopants and defects. You can
select eight different boundary conditions:
■ HomNeumann can be applied to any boundary (see HomNeumann on page 344).
■ Natural is for point defects (see Natural on page 345).
■ Segregation is for dopants (see Segregation on page 348).
■ Dirichlet is for dopants and defects (see Dirichlet on page 351).
■ ThreePhaseSegregation is for dopants (see ThreePhaseSegregation on page 352).
■ GrainBoundarySegregation is for dopants in polycrystalline materials (see Boundary
Conditions on page 248).
■ GrainGrainBoundarySegregation is for dopants in polycrystalline materials (see
Boundary Conditions on page 248).
■ Trap is for dopants such as fluorine and nitrogen in trap-dependent oxidation.
■ TrapGen is for dopants such as nitrogen in N2O oxidation.
■ Continuous is for dopants used only during epi growth (see Continuous on page 356).
The Natural and Dirichlet boundary conditions consider interstitial injection during
oxidation for oxidation-enhanced diffusion (OED) of dopants.
General Formulation
The general expression for the particle current of a diffusing species A of charge c is given by:
n –c c n c
J = – d c ---- ∇ A ---- (117)
A n n i
c
A
i
c
where A is the concentration, d Ac is the diffusivity, n is the electron concentration, and n i is
the intrinsic electron concentration.
trans
where the recombination/reaction term is split into two parts: R Ac is a possible contribution
clus
coming from the transport model selection (see Transport Models on page 197) and R Ac can
contain terms from other reactions, which are most often clustering reactions but could include
c
any type of reaction. Reactions that transform species A into another species will introduce
clus
positive terms into the expression for R Ac . Total dopant concentration of dopant A will be
equal to the sum of all dopants, dopant–defect pairs, and any related clusters (for example,
c c c c
A Total = A + A pair + A clus ).
For the models that do not consider different charge states, computation of the electron
concentration by default is given by the charge neutrality condition – n + p + ΔN = 0 , where
ΔN is given by the active dopant concentrations (for example, ΔN = N d – N a where N d is the
active donor concentration and N a is the active acceptor concentration). For the charged
models, the charge states of the defects or defect pairs are considered individually.
It is expected that the charge reactions are in equilibrium, so that the ratio in the various charged
states is set by the Fermi level:
n –( c )
= k c C r ----
c+r
A
A A n
(119)
i
where r is a reference charge state, which is chosen as 0 for interstitials and vacancies, and is
chosen as the dopant charge for dopant–defect pairs. The k Ac are parameters that are set by
default to an Arrhenius expression. In addition, for the charged models, it is necessary to solve
a coupled equation for the electron concentration. The default equation is the same as for the
uncharged case, that is, the charge neutrality equation – n + p + ΔN = 0 but, in this case, ΔN
is a function of n because it contains contributions from charged defects or charged defect
pairs as well as dopants. It is also possible for both the charged and uncharged models to solve
the Poisson equation (see Electron Concentration on page 267).
Transport Models
Transport models compute the particle flux of dopants and are the core diffusion models solved
by Sentaurus Process. In addition to particle flux, pairing reactions can be computed depending
on the transport model selection. Transport models are usually used with one or more
clustering or activation models available. The reaction or clustering models will not modify the
c
dopant flux, but will compute terms to be added to R clus from Eq. 118. The models are
described in detail here.
where <material> is the material name; <dopant> can be either "Dopant" to apply to all
dopants or a named dopant such as boron, arsenic, phosphorus, antimony, and indium; and
<model> is one of the models ChargedReact, React, ChargedPair, Pair,
ChargedFermi, Fermi, or Constant.
CX Int Vac
*
CX EqInt EqVac
*
C 0 IntNeutralStar VacNeutralStar
X
C 0 IntNeutral VacNeutral
X
z i (z + j)
A + V ↔ AV – ( i – j )e (121)
i j
I + V ↔ – ( i + j )e (122)
(z + i) j z
AI + V ↔ A – ( i + j )e (123)
(z + i) j z
AV + I ↔ A – ( i + j )e (124)
∂C A clus
= – R AI – R AV + R AI, V + R AV, I – R A (125)
∂t
∂C AI clus
= – ∇ • J AI + R AI – R AI, V – R AI (126)
∂t
∂C AV clus
= – ∇ • J AV + R AV – R AV, I – R AV (127)
∂t
∂C I clus
= – ∇•J I – R IV – R AI – R AV, I – R I (128)
∂t
∂C V clus
= – ∇•J V – R IV – R AV – R AI, V – R V (129)
∂t
Next, the flux of the mobile defect pair is considered. Working with Eq. 117, p. 196 for the
charged pairs, the equation will be written in terms of the total concentration of pairs.
where X is either I or V, z is the charge of the dopant A , and k AXc is the pairing coefficient for
the pair AX , and is given by:
E
0 – k AXc
k c = k c exp ------------- (131)
AX AX kB T
where <material> is a material name (see), <dopant> is one of the existing Sentaurus
Process dopants, <defect> is either Interstitial or Vacancy, <c> is the charge state, and
<n> is a Tcl expression that returns a number – it can be simply a number.
One commonly used Tcl procedure for setting parameters is Arrhenius. This procedure takes
a prefactor and an energy as arguments and returns prefactor ⋅ exp -------------------- .
– energy
kB T
J AX = – J c
AX
c
–c –z C z
(132)
D c ---- ∇ -------------------------------------------------- ----
n n
= –
AX
AX n n – q n i
c
i
C 0 k q k q ----
*
X AX X n
i
q
where C AX is the total concentration of pairs that is the sum of the concentrations of pairs at
every charge state and D AXc is an effective diffusivity of dopant point-defect pairs at charge
state c and is related to the self diffusivity d AXc by:
*
D c = C 0k c k cd c
AX X AX X AX
E (133)
0 – D AX c
= D c exp ---------------
AX kB T
*
where C X0 is the equilibrium concentration of the neutral defects and is related to the total
equilibrium intrinsic concentration of defect X by:
*
* C X ( intrinsic )
C
X
0 = ----------------------------- (134)
kc X
c
* *
The quantities C I ( intrinsic ) and C V ( intrinsic ) , which by default follow an Arrhenius law, can be
changed by using the command:
pdbSet <material> <defect> Cstar {<n>}
where X is either I or V, and k Xc is the charging coefficient for the defect X and is given by:
E
0 – k Xc
k c = k c exp ---------- (136)
X X kB T
To set k Xc , use:
pdbSet <material> <defect> ChargeStates <c> {<n>}
Similar to the pairs, the defect fluxes are computed from Eq. 117, p. 196:
JX = – J c
X
c
–c *
kX DX n----i
n
c c
CX (137)
C X
c
= – ---------------------------------------------- ∇ ------*-
– q
C X
kXq n----i
n
q
where C X is the total concentration of defects that is the sum of the concentrations of defect X
at every charge state and D Xc is the diffusivity of the defect X of charge state c and is given by:
D c = d c
X X
E
– D X c (138)
0
= D c exp ------------
X kB T
To set D Xc , use:
pdbSet <material> <defect> D <c> {[Arrhenius <prefactor> <energy>]}
Now, the reaction rates can be written by considering Eq. 120, p. 198 to Eq. 124, p. 198 and
the general formula for the rate of all combinations of charge states:
a b c
A + B ↔ AB + ( c – a – b )e
f C C r n ( c – a – b )
(139)
R = k –k b C c ----
A , B , c A B A , B , c AB n
a b a b a b a
A ,B ,c
i
f C AX
R AX ≡ – K AX C A C X – ---------
- (140)
K AX
r
f r * *
R AI, V ≡ K AI, V ( C AI C V – K AX C I C V C A ) (141)
f r * *
R AV, I ≡ K AV, I ( C AV C I – K AX C I C V C A ) (142)
where:
–i
Kf KOi kX n----i
n
i
X
f
K AX ≡ --------------------------------------------
i
- (143)
n –c
---
X nik c -
c
–i
kAX kX n----i
n
i i
r
K AX ≡ --------------------------------------
i
- (144)
n –c
---
Xc ni
k -
c
n –( i + j )
Kf k k j ----
AI V n
i
i j FT
f AI , V i
K AI, V ≡ ---------------------------------------------------------------------------
i j
–c
- (145)
----
n n –z
---
AIc ni Vz ni
k k -
c z
n –( i + j )
Kf k k j ----
i j FT
AV , I
AV I
i
n i
f
K AV, I ≡ ---------------------------------------------------------------------------
i j
- (146)
n –c
--- n –z
---
AV ni I ni
k c - k z -
c z
f
where K AX is fthe forwardf
reaction rate for the kick-out mechanism, and X is either interstitial
orrvacancy, K AI, V and K AV, I are forward reaction rates for the Frank–Turnbull mechanism and
K AX is the equilibrium constant.
The forward ( K fX KOi, j ) kick-out reaction rates can be set by using the following commands:
pdbSet <material> <dopant> <defect> kfKickOut <c> {<n>}
where c is the charge state. By default, kfKickOut values for each charge state are given as:
kX
*
D C
i i
AX X
Kf ≡ i
--------------------------------
- (147)
X KOi 2
k 0λ
X
where λ is the hopping length, which can be set using the command:
pdbSet <material> <dopant> <defect> lambdaK
f f
Similarly, the forward ( K AI, V , K AV, I ) Frank–Turnbull reaction rates can be defined using the
commands:
pdbSet <material> <dopant> <defect> kfFTM <i,j> {<n>}
NOTE The indices of the forward recombination rates have the form of i, j .
Both i and j are integers and are separated by a comma; no space is
allowed between the indices.
where:
* *
C I ( intrinsic ) C V ( intrinsic ) –( i + j )
KI V kI kV n----i
n
K IV = ---------------------------------------------------------- i j i j (149)
C I C V k z k z
* *
i j
I V
z z
The superscript ‘*’ refers to the equilibrium concentration, and the subscripts I and V are for
the interstitials and vacancies, respectively. The subscripts z, i, j are the charge states of the
defects. K Ii Vj is the bulk recombination rate for interstitials and vacancies at the charge stated
i and j , respectively. The bulk recombination rate K Ii Vj for each charged point defect can be
set using the command:
pdbSet <mater> <defect> KbulkChargeStates <i,j> {<n>}
The equilibrium concentration of the unpaired point defect can be calculated by:
–c
kX n----i
n
c
* * c
C X = C X ( intrinsic ) -----------------------------
- (150)
k Xc
s
s
where k X
c is the scaled charging coefficient for the defect X and can be set by using:
pdbSet <material> <defect> ChargeStatesScale <c> {<n>}
s
k X
c is set to k Xc as a default.
NOTE The indices for the parameter KbulkChargeStates have the form of
i, j . Both i and j are integers and are separated by a comma; no space
is allowed between the indices.
A + V ↔ AV (152)
∂C A clus
= – R AI – R AV – R A (153)
∂t
∂C AX clus
= – ∇•J AX + R AX – R AX (154)
∂t
∂C X clus
= – ∇•J X – R IV – R AX – R X (155)
∂t
Next, the flux of the mobile–defect pair is considered. In this model, the reaction rates are
assumed to be independent of the charge state, so the pair charging constants are only needed
for the flux of the pairs and are absorbed into the diffusivity of the pairs in this way:
n – c – z
– D c ----
AX n
i C AX n z
J AX = ------------------------------------------------ ∇---------
c
- ----
*
(156)
B AX CX ni
where z is the charge state of dopant A , X is either interstitial or vacancy, and D AXc is the
effective diffusivity of dopant point-defect pair at charge state c and is related to the bare
diffusivity, d AXc by:
*
D c = C 0 B AX k c d c
AX X X AX
E (157)
0 – D AX c
= D c exp ---------------
AX kB T
where k Xc is a set of equilibrium charging constants for defect X defined by Eq. 135, p. 200
and Eq. 136, p. 200, and C*X0 is the equilibrium concentration of the neutral defects defined by
Eq. 134, p. 200.
where:
■ <material> is a material name (see Material Specification on page 50).
■ <dopant> is one of the existing Sentaurus Process dopants.
■ <defect> is either Interstitial or Vacancy.
■ <c> is the charge state.
■ <n> is a Tcl expression that returns a number; it can be simply a number.
One commonly used Tcl procedure for setting parameters is Arrhenius. This procedure takes
a prefactor and an energy as arguments and returns prefactor ⋅ exp -------------------- .
– energy
kB T
You can modify the entire array with the command (for example, arsenic–vacancy pairs):
pdbSet Si Arsenic Vac D {
0 {[Arrhenius 0.0 3.45]}
-1 {[Arrhenius 12.8 4.05]}
}
The defect flux J X is the same as the ChargedReact model and is given by Eq. 137, p. 201.
The reaction can be written as:
C AX
R AX ≡ K AXr C A C X – ----------
+
(158)
B AX
where X is either interstitial or vacancy, B AX is the binding coefficient of defect X and dopant
+
A , K AXr is the rate constant for the chemical reaction, and C A is the active portion of C A .
The binding term between the defect and dopant also follows the Arrhenius law:
– B AXE
B AX = B AX0 exp ---------------- (159)
kT
The defect recombination rate R IV is the same as in the ChargedReact model and is given by
Eq. 148, p. 203.
z c (z + c)
A + V ↔ AV (162)
and is assumed to be in equilibrium. In these two equations, A is the dopant, I is the interstitial,
V is the vacancy, and c is the charge state.
∂C A clus
= – ∇•J A – R A (163)
∂t
∂ clus
(C ) = – ∇•J X – ∇•J A – R IV – R X (164)
∂ t X total
To write an expression for the pair fluxes, it is necessary to first define the equilibrium
constants, k AXc , for the pairing reactions:
–c
kAX kX n----i
+ n
C AX ≡ C A C 0 c c (165)
X
c
+
where X is either interstitial or vacancy, c is the charge state of the point defect, C A is the
active portion of C A , and C X0 is the concentration of the neutral point defect X . The ionization
equilibrium constant k Xc is given by Eq. 135, p. 200 and Eq. 136, p. 200.
The pairing coefficients for the dopant–defect pairs with different charge states, k AXc , can be
modified with the command:
pdbSet <material> <dopant> <defect> ChargePair <c> {<n>}
where <material> is a material name (see Material Specification on page 50), <dopant> is
one of the existing Sentaurus Process dopants, <defect> is either Interstitial or
Vacancy, <c> is the charge state, and <n> is a Tcl expression that returns a number; it can be
simply a number.
C z
n –c –z + X0 n
---
JA = – D - ∇ C A -------- ---
- (166)
AX
c
n i * n
c, X C X0 i
where D AXc is the effective diffusivity of dopant point-defect pair at charge state c , z is the
+
charge state of dopant A , C A is the active portion of C A , C X0 is the concentration of the neutral
*
point defect X , and C X0 is the equilibrium concentration of the same defect and is given by
Eq. 134, p. 200.
The effective diffusivity is related to the bare dopant–defect diffusivity, d AXc , by:
*
D c = C 0k ck c
d c
AX X X AX AX
E (167)
0 – D AX c
= D c exp ---------------
AX kB T
NOTE Diffusion coefficients D for the ChargedPair model and Dstar for
the ChargedFermi model include the interstitial efficiency factors.
Both the flux for the defects ( J X ) and the defect recombination rate ( R IV ) are the same as the
ChargedReact model and are given by Eq. 137, p. 201 and Eq. 148, p. 203, respectively.
A + V ↔ AV (169)
and is assumed to be in equilibrium. In these two equations, A is the dopant, I is the interstitial,
and V is the vacancy.
∂C A clus
= – ∇•J A – R A (170)
∂t
∂ clus
(C ) = – ∇•J X – ∇•J A – R IV – R X (171)
∂ t X total
An equilibrium constant for the pairing reactions is defined and given by:
+
C AX ≡ B AX C A C X (172)
where X is either interstitial or vacancy, B AX is the binding coefficient of defect X and dopant
+
A , and C A is the active portion of C A .
The binding term between the defect and dopant also follows the Arrhenius law:
– B AXE
B AX = B AX0 exp ---------------- (173)
kT
n – c –z + C X n z
---
JA = – D - ∇ C A ------*- ---- (174)
AX
c
n i C X n i
c, X
where D AXc represents the diffusivity of dopant point-defect pairs at charge state c , z is the
+
charge state of dopant A , C A is the active portion of C A , and X is either interstitial or vacancy.
The effective diffusivity is related to the bare dopant–defect diffusivity, d AXc , by:
*
D c = C 0k cB d c
AX X X AX AX
E (175)
0 – D AX c
= D c exp ---------------
AX kB T
*
where C X0 is the equilibrium concentration of the neutral point defect X and the ionization
equilibrium constant, k Xc , is defined by Eq. 135, p. 200 and Eq. 136, p. 200.
Both the flux for the defects ( J X ) and the defect recombination rate ( R IV ) are the same as the
ChargedReact model and are given by Eq. 137, p. 201 and Eq. 148, p. 203, respectively.
∂C A
= – ∇•J A (176)
∂t
As in the ChargedPair model, a set of pairing constants ( k AXc ) that define the pair
concentration is defined:
n –c
k c ----
+
C AX ≡ C A C k (177)
X n
0 c
X AX
i
c
where:
■ X is either interstitial or vacancy.
■ c is the charge state of the point defect.
■ z is the charge state of dopant A .
+
■ C A is the active portion of C A .
The ionization equilibrium constant k Xc is given by Eq. 135, p. 200 and Eq. 136, p. 200.
C z
n –c –z + X0 n
---
JA = – D - ∇ C A -------- ---
- (178)
AX
c
n i * n
c, X C X0 i
where:
■ D AXC is the effective diffusivity of dopant point–defect pairs at charge state c .
■ C X0 is the concentration of the neutral point defect X .
*
■ C X0 is the equilibrium concentration of the same defect and is given by Eq. 134, p. 200.
*
■ C X0 will be equal to C X0 if the point-defect equations are switched off.
■ D AXC is related to the bare diffusivity d AXc by:
*
D c = C 0k c k cd c
AX X AX X AX
E (179)
0 – D AX c
= D c exp -
--------------
AX kB T
The pairing coefficients for the dopant–defect pairs with different charge states, k AXc , can be
defined with the command:
pdbSet <material> <dopant> <defect> ChargePair <c> {<n>}
NOTE If the point-defect clusters are switched off and oxidation is switched
on, only the interstitial point-defect equation will be switched on.
∂C A
= – ∇•J A (180)
∂t
where J A is the sum of AI and AV pair fluxes, and C A is the total dopant concentration
including clusters.
An equilibrium constant for the pairing reactions is defined and given by:
+
C AX ≡ B AX C A C X (181)
where X is either interstitial or vacancy, B AX is the binding coefficient of defect X and dopant
+
A , and C A is the active portion of C A . The dopant flux is given by:
n – c – z + n z
---
JA = – D - ∇ C A ---- (182)
AX
c
n i n i
X, c
where:
■ c is the charge state of the point defect.
■ z is the charge state of dopant A .
+
■ C A is the active portion of C A .
■ X is either interstitial or vacancy.
■ D AXC is the effective diffusivity of dopant point-defect pairs at charge state c and is related
to the bare diffusivity d AXc by:
*
D c = C 0 B AX k c d c
AX X X AX
E (183)
0 – D AX c
= D c exp -
--------------
AX kB T
The pairing ratio B AX only appears in the formula for D and cannot be modified independently
in the Fermi model. You can set D AXc by using:
pdbSet <material> <dopant> <defect> Dstar <c> {<n>}
∂C A +
= ∇•( D star ∇C A ) (184)
∂t
+
where D star is the intrinsic diffusivity of the impurity A and C A is the active portion of C A .
The diffusivity follows the Arrhenius law:
– D starE
D star = D star0 exp ------------------- (185)
kT
NOTE Unlike the ChargedFermi model, Dstar is not defined as an array for
the Constant model.
AI + V ↔ A (187)
* *
R Dissociation ≡ K fV ( C AI C V – C I C V B AV C A ) (189)
where:
■ C A is the concentration of substitutional dopant atoms.
■ C AI is the concentration of mobile dopant atoms.
■ Kf I and Kf V are the forward reaction rates.
■ B AI and B AV are the binding coefficients.
∂C A
= R Dissociation – R KickOut (190)
∂t
∂C AI
= ∇•( D 0 ∇C AI ) + R KickOut – R Dissociation (191)
∂t AI
where D AI0 is the diffusivity of mobile dopant–interstitial pairs and can be set using the
command:
pdbSet <material> <dopant> Interstitial D 0 {<n>}
Carbon diffusion is a typical example for the NeutralReact diffusion model. The kick-out
reaction rate is defined by:
pdbSet Silicon Carbon Interstitial Kf {\
[expr ([pdbGetElement Si Carbon D 0]/([pdbDelayDouble Si Carbon\
MigrationLength]* [pdbDelayDouble Si Carbon\
MigrationLength]*[pdbDelayDouble Si Int Cstar]))]\
}
D 0
C
will set K fI to ----------------------------------------
2 *
.
λ C I ( intrinsic )
λ is the migration length (cm) of carbon atoms and D C0 is the diffusivity of carbon, and these
parameters can be set using the commands:
pdbSet <material> Carbon MigrationLength {<n>}
pdbSet <material> Carbon D 0 {<n>}
For the details of the carbon-clustering model, see Carbon Cluster on page 290.
In the above reaction, NI is the monomer, in other words, nitrogen interstitial N i , and N2
denotes the dimer ( N i ) 2 , which has the solution name NDimer. The nitrogen monomer and
dimer equations are formulated by:
∂C N
= R Dissociation – R KickOut – R NV (193)
∂t
∂C NI
= ∇•( D 0 ∇C NI ) + R KickOut – R Dissociation – R N2 (194)
∂t NI
∂C N2
= ∇•( D N2 ∇C N2 ) + R N2 – R N2V (195)
∂t
∂C N2V
= R N2V – R N2V2 (196)
∂t
∂C N2V2
= R N2V2 (197)
∂t
where:
■ C NI is the concentration of nitrogen monomers.
■ C N2 is the concentration of nitrogen dimers.
■ K fN2 is the forward reaction rate.
■ B N2 is the binding coefficient.
For details on the nitrogen clusters NV, N2V, and N2V2, see Nitrogen Cluster on page 291.
The model reduces the mobile concentration of dopant species by the following factors:
Np
f pd = 1 – ------ for donor species (199)
N d
Np
f pa = 1 – ------ for acceptor species (200)
Na
where:
■ N d and N a are the total concentrations of electrically active donors and acceptors,
respectively.
■ N p is the concentration of ion pairs.
■ f pd and f pa are the ion-pairing factors for donors and acceptors, respectively.
where [Link] is a parameter for material; the default value for silicon and
polysilicon is 6.0 [3].
The ion-pairing model is enabled or disabled for each material by the [Link] parameter.
By default, it is disabled for all materials.
The boundary movement is described with the specific solution fields, either the distance field
by the level-set method or the phase field by the phase-field method. You can select one of the
models by:
pdbSet Diffuse [Link] {LevelSet | PhaseField} ;# default=LevelSet
Level-Set Method
The level-set method solves the equation for the distance field ϕ , which is named with
AmorpDistance:
∂ϕ
------ + v ∇ϕ = 0 (203)
∂t
where:
■ v is the recrystallization velocity perpendicular to a boundary surface.
■ ϕ is positive in an amorphous region, negative in a crystalline region, and zero at an
amorphous–crystalline boundary.
where:
■ f v is the scaling factor.
■ v ori is the orientation-dependent velocity.
■ s v is the scaling factor of velocity near surfaces.
■ d is the shortest distance from the surface.
■ L vr is the characteristic length for velocity reduction near surfaces.
pdbSet Silicon SPER [Link] {<expression>} ;# f_v (unitless)
pdbSet Silicon SPER V100 {<n>} ;# cm/sec
pdbSet Silicon SPER V110 {<n>} ;# cm/sec
pdbSet Silicon SPER V111 {<n>} ;# cm/sec
pdbSet Silicon SPER VsurfScale {<n>} ;# s_v (unitless)
pdbSet Silicon SPER VsurfScaleLength {<n>} ;# L_vr (um)
The tensor mesh structure to solve the level-set equation is defined by:
pdbSet Grid SPER TensorMeshSpacing {X <n> Y <n> Z <n>} ;# (um)
The level-set algorithm used is the general time-stepping initial-value formulation as described
in MGOALS Interface on page 754.
It is assumed that all dopant atoms are mobile in an amorphous region. The diffusion
coefficient of the mobile species in the amorphous region is specified by:
pdbSet Silicon <dopant> DAmor {<n>} ;# cm2/sec
It has been experimentally observed that during regrowth of an amorphous layer, dopants can
be swept along by the amorphous–crystalline boundary. The physical mechanism for this
sweeping behavior is not well understood. To model this effect, a phenomenological model has
been introduced as follows:
∂X
= ∇ ⋅ f D αv D L d 1 – ( 1 – P ) exp – -------- X∇α S
d
(205)
∂t L dr
where:
■ f D is the user-defined multiplication factor.
■ v D is the local speed of distance variation.
■ L d is the characteristic length of dopant drift.
■ P is the drift probability near material interfaces.
■ d is the shortest distance from material interfaces.
■ L dr is the characteristic length for drift reduction near material interfaces.
where w T is the phase transition width. α is 1.0 and 0.0 in a completely amorphous and
crystalline region, respectively.
■ α S is the shifted amorphous state given by:
1 ϕ – dD
α S = --- ⋅ erfc(– ----------------) (207)
2 wD
To control the clustering rate in the region between amorphous and crystalline regions, an
additional term can be defined by:
pdbSetString Si <cluster> SPERBoundaryTerm {<expression>}
pdbSetString Si <dopant> SPERBoundaryTerm {<expression>}
∂X ∂X
= (1 – α) (208)
∂t ∂t crystal
9ϕ 2
+ α∇ ⋅ D amor ∇X + ∇ ⋅ f D αv D L d 1 – ( 1 – P ) exp – -------- X∇α S – R ⋅ exp – --------2-
d
L dr WT
The phase field method solves the equation for the phase field ϕ , which is named with
SPERPhase:
∂ϕ 2 2 2 2
τ ------ = w ∇ ϕ – ( ϕ – 1 ) ( ϕ – λ ( ϕ – 1 ) ) (210)
∂t
where:
■ τ , w , and ϕ are the relaxation time, the phase transition width, and the phase (–1 for
completely amorphous, 1 for completely crystalline), respectively.
■ w and λ are given by the parameters PhaseTransWidth and [Link], respectively.
where:
■ f iso and f aniso are the isotropic and anisotropic multiplication factors, respectively.
■ R is the relaxation rate.
■ E aniso , E Sv and E Ss are the orientation-dependent, the hydrostatic stress–dependent, and
shear stress–dependent activation energies, respectively.
∇ϕ
E aniso = [Link] ⋅ ------------
∇ϕ
(212)
100, 110, 111
E Sv = P ⋅ VFrecrys (213)
E Ss = [Link] ⋅ ( ε xy + ε yz + ε zx ) (214)
The phase field method assumes no diffusion in a crystalline region during SPER, so that the
diffusion equation of a dopant is formulated by:
∂X 1–ϕ E seg
------ = ------------ ∇ ⋅ D amor ∇X + D amor X ----------∇ϕ (215)
∂t 2 kT
where E seg is the chemical potential energy difference to cause the dopant segregation at an
amorphous–crystalline boundary.
E seg is given by the parameter [Link] that you can define with a string expression:
pdbSet Silicon <dopant> [Link] {<expression>} ;# E_seg (eV)
As soon as regrowth is completed, the dopant activation in the regrowth region is performed
with the pdb parameter AmInit or the term ${Sol}AmInit.
The solution name of the local temperature T (in kelvin) is Temperature. The model is
switched on by specifying the Boolean parameter laser in a diffusion statement. For example:
diffuse temperature=500 time=1<ms> laser
For a melting laser anneal, the phase field variable ϕ is introduced to describe whether the
material is liquid or solid. The solution name of the phase ϕ is HeatPhase. The melting laser
anneal model is invoked by switching on the Boolean parameter [Link]:
pdbSet Heat [Link] 1
∂T 2 2 ∂ϕ
ρc P ------ = ∇•( κ ∇T ) + G + 30ρLϕ ( 1 – ϕ ) (217)
∂t ∂t
where:
■ κ , ρ , and c P are the conductivity, the mass density, and the specific heat capacity,
respectively. κ and c P can depend on temperature.
■ L is the unit mass latent heat (Eq. 229). The phase-dependent term takes the heat
consumption (or generation) due to the solid-to-liquid (or liquid-to-solid) phase change
into account.
κ = ϕκ s + ( 1 – ϕ )κ l (219)
where I , α , and d represent the intensity, absorptivity, and depth, respectively. The
absorptivity is given by the user-defined expression:
pdbSet <material> Absorptivity {<expression>} ;# cm-1
See Intensity Models for Flash Anneal on page 227 and Intensity Model for Scanning Laser on
page 229 for the intensity models.
∂ϕ μγ v int 2 2
------ = μγ ∇2ϕ – -----2- ϕ ( 1 – ϕ ) ( 1 – 2ϕ ) + 5 -------ϕ ( 1 – ϕ ) + s ( T, ϕ ) (221)
∂t δ δ
where:
■ μ , γ , and δ are the melting interface mobility, the surface tension, and the interface
thickness, respectively. μ and γ depend on material crystallinity.
■ s ( T, ϕ ) is the seed function to start liquidation.
■ ν int is the interface response function to describe the front moving velocity of the flat
melting interface:
μ = αμ a + ( 1 – α )μ c (222)
γ = αγ a + ( 1 – α )γ c (223)
where the subscripts a and c of μ and γ indicate the amorphous and crystalline materials,
respectively. The α is the degree of the structural disorder in a material that is calculated
by:
D FP
α = --- 1 + tanh 10 ln ------------
1
(224)
2 D max
where D FP is the Frenkel pair concentration by implantation damage, and D max is the
amorphous threshold to determine the amorphous and crystal transition.
pdbSet <material> [Link] {<n>} ;# uc (cm4/J/sec)
pdbSet <material> [Link] {<n>} ;# ua (cm4/J/sec)
pdbSet <material> [Link] {<n>} ;# gammac (J/cm2)
pdbSet <material> [Link] {<n>} ;# gammaa (J/cm2)
pdbSet <material> AmorpDensity {<n>} ;# Dmax (cm-3)
where T m is the melting point, the multiplier to control initial liquidation. f s and T s are the
multiplier and the temperature to control initial liquidation. The seed term in Eq. 221 is
switched off when ϕ is reduced to less than the SeedOffPhase value:
pdbSet Heat [Link] {<expression>} ;# fs (unitless)
pdbSet Heat [Link] {<n>} ;# Ts (K)
pdbSet Heat SeedOffPhase {<n>} ;# unitless
It is known that the melting point varies with the dopant concentration, such as for germanium,
as well as material crystallinity. The melting point is calculated by:
Cx Cx
T m = α T ma0 + ( T ma1 – T ma0 ) ------------ + ( 1 – α ) T mc0 + ( T mc1 – T ma0 ) ------------ (226)
C max C max
where α , T ma0 , and T mc0 are the degree of structural disorder, and the melting point of
amorphous material and crystalline material, respectively. C x is the concentration of the
dopant that affects the melting point. For example:
pdbSet Silicon [Link] 1690 ;# Tmc0
pdbSet Silicon [Link] 1420 ;# Tma0
pdbSet Silicon [Link] { Ge {960 1211} } ;# Tma1 and Tmc1
The interface response function V int is modeled by the Frenkel–Wilson law [5]:
ρL ⁄ C max
V int = v 1 – exp ----------------------- ( T – T m ) (227)
kTT m
where C max is the lattice density. The liquid-to-solid interface transfer rate ν is given by:
v 0 exp – ------
H
for Arrhenius model
kT
v = (228)
v 0f exp – -----------------------
B
for Vogel–Fulcher model
k ( T – T g )
The latent heat and the liquid-to-solid interface transfer rate depend on crystallinity as follows:
L = αL a + ( 1 – α )L c (229)
v 0 = αv 0a + ( 1 – α )v 0c (230)
H = αH a + ( 1 – α )H c (231)
B = αB a + ( 1 – α )B c (233)
T g0 = αT ga + ( 1 – α )T gc (234)
where the subscripts a and c indicate the parameter for the amorphous and crystalline
materials, respectively.
pdbSet <material> [Link] {<n>} ;# Lc (J/kg)
pdbSet <material> [Link] {<n>} ;# La (J/kg)
pdbSet <material> [Link].0 {<n>} ;# v0c (cm/sec)
pdbSet <material> [Link].E {<n>} ;# Hc (eV)
pdbSet <material> [Link].0 {<n>} ;# v0a (cm/sec)
∂C C eq C eq0
= ∇• D ----------- ∇ C ----------- (235)
∂t C eq0 C eq
D ϕ
liquid + ( D ils – D liquid ) -----ϕL
- for ( ϕ ≤ ϕ L )
D for ( ϕ L < ϕ ≤ ϕ S )
D =
ils
(236)
1–ϕ
D solid + ( D ils – D solid ) --------------- for ( ϕ S ≤ ϕ )
1 – ϕS
ϕD solid + ( 1 – ϕ )D liquid if ( ϕ L > ϕ S )
2 2
C eq ϕE seg + 16ϕ ( 1 – ϕ ) E intf
----------- = exp – ---------------------------------------------------------------- (237)
C eq0 kT
where:
■ D liquid , D ils , and D solid are the dopant diffusivities in a liquid, a liquid–solid interface, and
solid regions, respectively. D solid is calculated by an Arrhenius formula with global
temperature.
■ E seg and E intf are the chemical potential energies in a solid state and an interface state
relative to that in a liquid state, respectively.
pdbSet Heat [Link] {<n>} ;# phi_L (unitless)
pdbSet Heat [Link] {<n>} ;# phi_S (unitless)
pdbSet <material> <dopant> Dliquid.0 {<n>} ;# cm2/sec
pdbSet <material> <dopant> Dliquid.E {<n>} ;# eV
pdbSet <material> <dopant> Dils.0 {<n>} ;# cm2/sec
To solve the dopant diffusion equation by coupling it with the heat and phase equations, use:
solution name= <solution> Heat
The instant recrystallization of an amorphous region, that is, the initialization of cluster
solutions, is performed before diffusion. The cluster solutions are reset to zero in a melted
region during diffusion by multiplying ϕ by the cluster solutions, which implies that all
dopants in a liquid region are activated fully. Like the cluster solutions, the point-defect and
defect-cluster solutions are reset to zero in liquid regions.
Boundary Conditions
At the top surface, that is, the gas interface, the heat emission flux from the top material is given
by:
– 12 4 4
F = – 5.6703 ⋅ 10 ⋅ Emissivity ⋅ ( T – T 0 ) (238)
At the bottom, the boundary condition depends on whether the thermal resistor is attached. If
AttachThermalResistor is switched on, the emission flux at bottom is calculated by:
κ
F = – -------------------- ( T – T 0 ) (239)
t w – x bot
where t w and x bot are the wafer thickness and the bottom coordinate of a simulation structure,
respectively. Otherwise:
F = – HeatSinkTransfer ( T – T 0 ) (240)
Structure Extension
The heat transfer is much faster in comparison with an impurity or a point-defect diffusion. For
example, in silicon, the diffusion length of the heat temperature is 20–30 times longer than that
of interstitials at 800°C . Therefore, solving the heat equation requires a much larger structure
size than for diffusion equations. The model provides the method to temporarily extend the
current structure for solving the heat equation, and then recovers the original structure after
finishing the laser or flash anneal. The downward extension is controlled by the Boolean
parameter ExtendBottom.
Since the flash light source transfers heat to the whole wafer surface at the same time, no heat
flux is assumed at the structure sides so that you do not have to extend the structure along the
side directions. However, since the laser anneal scans a wafer by beaming a laser on a localized
spot, the structure must be extended to the side directions to correctly take into account the heat
transfer from the beamed spot. The extended distance in micrometers to the sides is defined
with:
pdbSet Heat SideExtension <n>
To reduce the computation time for the extension, one side among the left and right sides is
extended first, and then the extended structure is reflected on the side that is defined by:
pdbSet Heat ReflectSide <Left | Right | None>
For example, the following statements specify an extension of 200 μm in the right direction
and a reflection of the extended structure on the left side:
pdbSet Heat SideExtension 200
pdbSet Heat ReflectSide Left
When ReflectSide is set to None, each side (that is, both the left and right sides) is extended.
The material of all the extended regions is set to HeatSubstrate. The thermal properties of
the HeatSubstrate material are defined internally to the same as the BulkMaterial
material (default value: Si). In the region of HeatSubstrate, only the heat equation is solved.
Gaussian Model
The intensity I can be given by the Gaussian profile as follows:
2
Fluence ( t – t0 )
I = ------------------------- exp – ------------------
- (242)
2πt s 2t s
2
Pulse
t s = ------------------- (243)
2 2 ln 2
where Pulse is the full width at half maximum (FWHM) time interval. The parameter
2
Fluence is the energy dose in J/cm .
2 ln 2 ⁄ π ⋅ Fluence/Pulse
ln 2 ⁄ π ⋅ Fluence/Pulse
PULSE
Gaussian
0 3 ts 6 ts Time
User-specified Model
2
You can define the heat intensity profile by using IntensityProfile (unit is J/cm /s ). The
heating time, that is, the light-sourcing time for the user-specified intensity is given by the
parameter HeatingTime. For example, for the sum of two different Gaussian intensities:
set ttime "\[simGetDouble Heat time\]"
set rt2pi [expr sqrt(2*3.141592)]
set tp1 3e-3 #from 3*sigma = 3*1e-3
set tp2 6e-3 #from 3*sigma = 3*2e-3
set ts1 2e-6 #from 2*sigma*sigma = 2*1e-3*1e-3
set ts2 8e-6 #from 2*sigma*sigma = 2*2e-3*2e-3
Here, [simGetDouble Heat time] returns the current time that is used to solve the heat
equation.
The intensity specification for laser beam precedents that of a flash light source. When a
positive ScanSpeed is specified, the laser scanning model is assumed and the heat intensity is
calculated with the laser beam parameters.
Two complementary error functions are multiplied to generate the laser beam intensity as
shown in Figure 35.
I/BeamIntensity
BeamWidth
0.5
0.0786 BeamFadeDistance
0 Distance
Beam Location
(BeamWidth-BeamOverlap)(um)
reality
model
(BeamWidth-BeamOverlap)/ScanSpeed (10-4s)
0
Time
Figure 36 Beam location along time
I/BeamIntensity
BeamOverlap
0.5
0
Distance
Figure 37 Laser beam displacement at each time step
Control Parameters
Table 14 lists the control parameters. These parameters must be used with:
pdbSet Heat
For example:
pdbSet Heat HeatingTime 12e-3
pdbSet Heat MaxTimeStep 500
HeatingTime <n> 0.0 ms Defines the time the heating source is switched
on. Not applicable to the scanning laser model.
2
HeatSinkTransfer <n> 1e5 W/(cm K) Defines the heat transfer rate coefficient at the
extended structure bottom. Only applicable
when AttachThermalResistor is set
to 0.
MaxTimeStep <n> 600.0 s Defines the maximum time step for solving the
heat equation.
ReflectSide <Left|Right|None> Left Specifies the side at which the structure will be
reflected after extending the structure to the
other side by SideExtension. Only
applicable for positive SideExtension.
Options are Left | Right | None.
TimeSampleSize <n> 20.0 Specifies the number of time steps during the
sourcing of the heat energy. Not applicable to
the scanning laser model. The maximum time
step is given by the minimum time step among
MaxTimeStep and
3 ⋅ Pulse
----------------------------------------------------------------------- (ms)
TimeSampleSize ⋅ 2 ln 2
for HeatingTime <= 0.0, or
HeatingTime/TimeSampleSize.
UpdateHeatRate <0|1> 0 Updates heat rate at each time step. Options are
0 | 1.
WaferThickness <n> 700.0 μm Defines the wafer thickness to which the
simulation structure is to be extended if
ExtendBottom is set to 1.
Notes
■ It takes three times the standard deviation time to reach the peak intensity. After six times
the standard deviation time, the heat source is switched off.
■ The global temperature, which is calculated by averaging the local temperature
distribution, is used for solving the diffusion equations.
■ When the Boolean parameter UseTemperatureField in mechanics is on, the local
temperature is used for solving the mechanics equations.
Vi Ti
i=1
T global = -------------------
n
- (244)
Vi
i=1
where V i and T i are the volume and the local temperature at a node in BulkMaterial
material. By default, the nodes on the nonreflecting surfaces of BulkMaterial are taken.
When you set TempAverageBox, the nodes within the specified box are taken.
Diffusion in Polysilicon
Polysilicon has a microstructure composed of small monocrystalline grains of different
crystalline orientation. The grains are separated by 2D surfaces – the grain boundaries.
g gb
Here, c A denotes the total concentration inside the grain per grain volume and c A denotes the
concentration inside the grain boundaries per grain boundary volume. Both quantities are
defined in the entire polysilicon region representing average concentrations.
The ratio of grain volume to the polysilicon volume is known as the volume share. The volume
share of the grain regions f g depends on the shape and size of the grain. The volume share of
the grain boundary is defined as:
f gb = 1 – f g (246)
The grain volume share and grain boundary share are defined by the terms GVolShare and
GbVolShare, respectively.
The concentration of the grain boundary is assumed to be electrically inactive. The grain
+
density is identified with the active portion of the total concentration C A . The active
concentration is stored in the dataset <dopant>Active. The grain boundary concentration
gb gb
C A = f gb ⋅ c A is stored in the dataset <dopant>Gbc and is initialized with the portion of the
total dopant concentration in the grain boundary f gb ⋅ C A . In the absence of clusters, the total
dopant concentration is given as:
+ gb
CA = fg ⋅ CA + CA (247)
In Sentaurus Process, a columnar grain structure is assumed by default. The grains are assumed
to be columns that are oriented along the vertical axis, extending through the entire
polycrystalline layer.
δ δ
L L
d
Figure 38 Columnar (left) and cubic (right) grains: L is the grain size, δ is the grain
boundary thickness, and d is the layer thickness
The grain size L defines the average edge length of the square cross section of the columns.
The grain size is stored in the dataset GSize. The volume share of the grain region is given as:
L 2
f g = ------------ (248)
L + δ
L 3
f g = ------------ (249)
L + δ
The grain shape and the initial values for the grain size L (cm) and grain boundary thickness
δ (cm) can be set in the parameter database, that is:
pdbSet PolySilicon GrainShape <model>
pdbSet PolySilicon GrainSize 5.0e-6
pdbSet PolySilicon GrainBoundaryThickness 5.0e-8
where <model> is either Columnar or Cubic. It is assumed that the layer thickness d is a
constant value set as:
pdbSet PolySilicon LayerThickness 1.0e-6
The grains grow during thermal processes. During the grain growth, the volume share of the
grains increases and the volume share of the grain boundary decreases. The grain growth is
modeled by:
c gb
2
dL τ a 0 b 02 Dλ 1
L = ------------------------- ⋅ -------------- ⋅ 1 – --------------- (250)
dt kT 1 C Si
1 + -----
ar
where a r denotes the ratio between the grain boundary volume inside the polycrystalline layer
and the grain boundary volume at the material interfaces of the polycrystalline layer bounding
other materials. The grain size, L , is represented with the solution name GSize and can be
monitored like other solution fields.
The grain growth parameters can be specified in the parameter database in the material entry.
The following names are used: τ Tau, λ Lambda, and a 0 A0. The parameter b 0 is twice the
lattice spacing of silicon. The Arrhenius values for the various contributions to the silicon self-
diffusivity D can be specified with the parameter Dself.
τ a 0 b 02 Dλ c gb
2 2
dL 2( L + δ)
L 1 + ------------------------ = ------------------------- ⋅ 1 – --------------- (252)
dt ( 2L + δ )d kT C Si
τ a 0 b 02 Dλ c gb
2 2 3 2
dL d ( 3L + 3Lδ + δ ) + ( L + δ )
L -----------------------------------------------------------------------
- = - ⋅ 1 – ---------------
------------------------ (254)
d t d ( 3L 2 + 3Lδ + δ 2 ) – ( L + δ ) 3 kT C Si
The grain shape switches from Columnar to Cubic when the grain size L reaches the layer
thickness d and the grain shape is set to Columnar, that is:
pdbSet PolySilicon GrainShape Columnar
This is the default. No switching is performed if the grain shape is set to Cubic. The grain
growth equation is solved with the dopant diffusion equations.
Note that the GSize and the dopant distribution in the grain boundary <dopant>Gbc are not
reset automatically at the beginning of a new diffusion step. The pdb switch GbcNew can be
used to reset the grain size dataset GSize to the current value of GrainSize, that is:
pdbSet PolySilicon GrainSize 1e-6
pdbSet PolySilicon GbcNew 1
will reset the grain size in polysilicon to 10 nm. It also resets the <dopant>Gbc dataset to the
value calculated using the grain size and the grain-boundary volume share.
The GSize and the initial <dopant>Gbc distribution in a newly deposited layer can be
specified in the fields and in the values list in the deposit command, that is:
deposit PolySilicon type=isotropic rate=1.0 time=0.1 fields= {GSize Arsenic} \
values= {4e-6 1e19}
This will initialize the GSize to 40 nm and the arsenic concentration to a constant value of
19 –3
10 cm . The ArsenicGbc solution will be created and the value of the corresponding
dataset will be set automatically.
Diffusion Equations
The diffusion in polycrystalline materials is modeled with two separate diffusion fluxes for the
+ gb
diffusion of C A inside the grains and the diffusion of c A along the grain boundaries. The
diffusion inside the grain regions is modeled as for crystalline silicon with the ChargedFermi
diffusion model. The diffusion fluxes are scaled with the ratio of the grain boundary volume to
the polysilicon volume, that is:
n – c – z + n z
---
JA = –fg D - ∇ C A ---- (255)
AX
c
n i n i
X, c
∂C A
= – ∇•J A – R (256)
∂t
For details on the ChargedFermi model parameters, see ChargedFermi Diffusion Model on
page 209. The diffusivity D AXc for the grain interior is set as usual for the ChargedFermi
model, for example:
pdbSet PolySilicon Boron Int Dstar \
{ 0 {[Arr 0.743e2 3.56]} 1 {[Arr 0.617e2 3.56]} }
For the fluxes along the grain boundaries, the gradient of the concentration in the grain
boundary is multiplied by a constant diffusivity and the grain boundary volume share f gb :
gb
∂C A gb
= – ∇•J A + R (257)
∂t
gb
gb gb cA gb
J A = – f gb D A 1 – -------- ∇( c A ) (258)
C Si
gb
The grain boundary diffusivity D A can be set in the parameter database using:
pdbSet PolySilicon Arsenic Dgb {[Arrhenius 1100.0 3.53]}
The segregation term depends on the transport coefficient K , multiplied by the grain surface
area per unit volume of polysilicon a ( L ) .
The dopant segregation coefficient s g for the segregation between the grain and grain boundary
can be specified by using:
pdbSet PolySilicon Arsenic Sgb {[Arrhenius 2.75 -0.44]}
The grain surface area per unit volume a ( L ) depends on the grain structure. For columnar
grain structures, this is:
4⋅L
a ( L ) = -------------------2- (260)
(L + δ)
L GSize
To set the model to the TSUPREM-4 compatible mode, use the command:
SetTS4PolyMode
∂c g qE g
-------- = – ∇ ⋅ – D g ∇c g – z s c g --------- – G (262)
∂t kT
where c g is the active concentration in the grain interior. The diffusivity D g and electric field
E g in the grain interior are calculated from the electron concentration n g , which is in turn
calculated from the doping concentrations c g . G accounts for the segregation of dopant to
grain boundaries as described in Segregation Between Grain Interior and Boundaries on
page 241.
The parameter [Link] specifies the initial crystallinity of the grain interiors.
If [Link] is set to Crystalline, the initial active concentration is
determined by the pdb parameter AcInit or the term ${Sol}AcInit. If
[Link] is set to Amorphous, the initial active concentration is determined
by the pdb parameter AmInit or the term ${Sol}AmInit. The initialization is performed for
the remainder after some implantation atoms go to a grain boundary according to Eq. 271,
p. 241.
Diffusion along grain boundaries is described in terms of the dopant concentration per unit
area of grain boundary c gb , and the average area of grain boundaries per unit volume:
ρ′ = ρ + δ if (263)
where ρ is the average area of grain boundaries per unit volume in the bulk of the poly layer
and δ if accounts for the dopant at interfaces between poly and other materials (or ambient). ρ
is inversely proportional to the average grain size L g :
GBGeomFactor
ρ = ------------------------------------------------ (264)
Lg
where GBGeomFactor is a geometric factor specified for the polycrystalline material, for
example:
pdbSet PolySilicon GBGeomFactor 2.0
δ if is a function of position defined by the fact that its integral over any volume is equal to the
area A if of the polysilicon interface passing through that volume:
δif dV = A if (265)
The concentration of dopants in the grain boundaries per unit volume of material is then given
by:
gb
c A = ρ′c gb (266)
∂c A
gb
q E gb
----------- = – ∇ ⋅ – FD gb ∇c gb – z s c gb -----------
-
kT + G
(267)
∂t
The diffusivity D gb and electric field E gb along the grain boundaries are calculated from the
electron concentration n gb ; n gb is calculated by assuming that the net donor and acceptor
concentrations are calculated from c gb ⁄ K , the equilibrium dopant concentrations in the grain
interior near the grain boundary, where K is the segregation coefficient given by Eq. 273,
p. 241. G accounts for the segregation of dopant to grain boundaries as described in
Segregation Between Grain Interior and Boundaries on page 241.
F is a tensor that describes the diffusion paths available to dopant in the grain boundaries. It is
composed of two parts: F = F b + ( 1 – F bu )F if . F b describes the available paths within the
bulk of the poly layer. For a horizontal poly layer, it is given by:
Because of the columnar grain structure, Dgb.F22 is larger than Dgb.F11, which implies that
diffusion through the layer is faster than diffusion parallel to the layer.
Dgb.F11 and Dgb.F22 are defined for the polycrystalline material, for example:
pdbSet PolySilicon Dgb.F11 1.0
pdbSet PolySilicon Dgb.F22 2.0
F if describes the available paths for diffusion along material interfaces. In the vicinity of a
horizontal interface, it has the value:
F if = diag ( 0, δ if, δ if ) (270)
For the interface between polysilicon and silicon, the phenomenon of interfacial breakup
accompanied by epitaxial realignment can occur, as described in Interface Oxide Breakup and
Epitaxial Regrowth on page 245. F bu is the fraction of the polysilicon–silicon interface that has
broken up. For layers or interfaces that are not horizontal, F b and F if are rotated by the angle
of the layer or interface, respectively, with respect to the horizontal axis.
When dopant is initially introduced into a polycrystalline material, some of the dopant
occupies sites in the interior of a grain and some occupies sites on a grain boundary. The initial
segregation of dopant is given by:
GBMaxDensity
c gb = ------------------------------------------------ GSegInit cg (271)
GMaxConc
GBMaxDensity, GMaxConc, and GSegInit represent the density of available sites on grain
boundaries, and in the grain interiors and the initial segregation entropy, respectively. In the
case of ion implantation, c g and cgb describe the additional dopant introduced by the
implantation; dopant that is present before the implantation is not redistributed.
Dopant atoms are free to move between sites in the interior of a grain and sites on the grain
boundary during high-temperature processing. The rate of segregation is given by:
c gb
G = ( ρq b + ( 1 – F bu )δ if q if ) fgb c g – fg ------- (272)
K
GBMaxDensity, GMaxConc, GSegInit, and Sgb are defined for dopants, for example:
pdbSet PolySilicon Dopant GBMaxDensity 2.5e15
pdbSet PolySilicon Dopant GMaxConc 5e22
pdbSet PolySilicon Dopant GSegInit 1.0
pdbSet PolySilicon Boron Sgb {[Arrhenius 0.2 -0.38]}
The segregation velocities associated with the bulk of the poly region and the material
interfaces are given by:
1 ∂L g Dg
q b = ------------------------------------ --------- + KsgbFactor ------ (274)
GBVFactor ∂t Lg
GBVFactor is the parameter for the material. KsgbFactor and q if , which is defined by Vsgb,
are specified for dopants. For example:
pdbSet PolySilicon GBVFactor 1.33
pdbSet PolySilicon Dopant KsgbFactor {[Arr 4.0 0.0]}
pdbSet PolySilicon Dopant Vsgb {[Arr 1e7 3.0]}
c gb
fgb = 1 – ------------------------------------------------ (276)
GBMaxDensity
where the sum is taken over all the dopant species present in the structure. F bu is the fraction
of the polysilicon–silicon interface that has broken up, as described in Interface Oxide Breakup
and Epitaxial Regrowth on page 245.
The initial grain size is determined by the temperature of the poly deposition process:
max ( [Link] × t a, GrainSize ) T c ≤ GrainSizeTempC
Lg = (277)
GrainSize + 2 ⋅ GrainSizeFactor ⋅ z T c > GrainSizeTempC
where:
■ T c is the deposition temperature (specified on the deposit command) in degree Celsius.
■ t a is the thickness of the amorphous silicon layer produced by low-temperature deposition.
■ z is the distance from the bottom of the layer.
For high-temperature depositions, grain size depends on the thickness specified in the
deposit command. Dividing a deposition into multiple smaller depositions produces
different results for the grain size. For low-temperature depositions, the material is assumed to
be amorphous (a negative grain size is reported in printing or plotting). The initial grain size is
calculated from the thickness t a of the amorphous layer at the beginning of the next diffusion
step.
Besides the deposition rates, two types of nuclei are considered: 2D or 3D islands. The
following formulas are used to compute the nucleation density:
n = n 0 R p exp ------
E
kT
(278)
where p and E are given by Table 17 on page 244. The choice of regime is set with:
pdbSet [Link] <regime>
E = ( E i + iE d ) ⁄ ( i + 2.5 ) E = ( E i + iE d ) ⁄ ( i + 2 )
NOTE Default values for parameters of the surface nucleation model have not
been calibrated for any process. They have simply been set to give
approximately the same values as the grain size model in polysilicon
diffusion. This model is in an experimental state. The default values of
the model may change in the future if reasonable values can be found
for typical technology conditions.
R [Link]
n0 [Link]
i [Link]
Ea [Link]
Ed [Link]
Ei [Link]
Grain Growth
A0, DselfFactor, and Dself represent the empirical geometric factor, the enhancement
factor of silicon self-diffusivity at the grain boundary, and the silicon self-diffusivity in the
vicinity of a grain boundary, respectively:
pdbSet PolySilicon A0 6.0
pdbSet PolySilicon DselfFactor {[Arrhenius 5.6e-6 -1.73]}
pdbSet PolySilicon Dself { -2 {[Arrhenius 5.6e-6 2.86]}
-1 0.0
0 {[Arrhenius 4.29e-7 2.18]}
1 0.0
2 0.0 }
E gb is the surface energy per atom associated with the grain boundary [12][13][14]; F seg
models the segregation drag effect; and G EA models epitaxial regrowth of the poly layer (see
Interface Oxide Breakup and Epitaxial Regrowth on page 245).
2 1 Lg
E gb = ( 2 ⋅ LatticeSpacing ⋅ Tu ) ⋅ Lambda ⋅ ---------------------------------------------- + Lambda.1 ----------- (280)
1 + Lambda.h f n t poly
Lg
-------------------------- L g < t poly
2t poly – L g
fn = (281)
Lg
----------- L g ≥ t poly
t poly
The segregation drag effect reduces the grain growth rate [15]:
c gb – SegDragExponent
F seg = 1 + ------------------------------------------------ (282)
GBMaxDensity
The oxide breakup is modelled by the formation of voids in the interfacial oxide layer
[16]–[19]. The radius of the voids R void increases as:
dR void β E bu
- × exp – --------
---------------- = ----- (283)
dt 3 kT
t ox
where:
■ β is a constant.
■ t ox is the initial oxide thickness.
■ E bu is the activation energy of the breakup process.
■ R void is initialized to zero whenever poly is deposited on exposed silicon.
The parameters for the model are specified in terms of a characteristic breakup time for the
thinnest (5 Å) interfacial oxide layers:
·3 E bu
5A
t bu ≡ --------------------- × exp -------- (285)
πN β EA
kT
· 3
dR void 1 5A 1
---------------- = ------ ------- ------------------ (286)
dt t bu t ox πN EA
Epitaxial regrowth is modeled by increasing the poly grain size to a value larger than the
thickness of the poly layer. This grain growth is described by G EA in Eq. 270, p. 241 for the
grain size:
G EA = F bu v EA δ if (288)
It serves as a driving force for epitaxial regrowth from the interface at the silicon–polysilicon
interface. Parameters for this model are given by:
v EA = EpiGrowthVelocity (289)
It has been observed experimentally that the oxidation rate for fine-grained polysilicon is faster
than for coarser-grained polycrystalline or single-crystalline silicon, presumably because of
enhanced oxidation at the grain boundaries.
This enhancement can be modeled by assuming a faster surface reaction rate where grain
boundaries intersect the oxide–poly interface:
k s = ( 1 – f )k g + fk gb (290)
where:
B C ox
k g = --- --------
- (291)
A C*
is the surface reaction rate in the absence of grain boundaries, k gb is the reaction rate at a grain
boundary, and:
δT
f = min ------, 1 (292)
Lg
is the fraction of the surface within a distance δT ⁄ 2 of a grain boundary. The enhancement
factor at grain boundaries is specified as:
k gb
------- = GBFactor (293)
kg
Boundary Conditions
Several boundary conditions to control the grain size (GSize) in the grain growth equation are
available. The reflective (HomNeumann) boundary condition assumes that the interface value
grows like the bulk value. The minimum value (MinimumSize) boundary condition sets the
interface value at the minimum value for GSize. The minimum value is set with:
pdbSet <material> GSize minConc {<n>}
The initial size (InitialSize) boundary condition fixes the interface value at the initial value
of GSize.
The default setting for the grain growth boundary condition is HomNeumann.
The total dopant fluxes at the interfaces between the grain boundary and the neighboring layer
are balanced. The fluxes are given by:
CA
gb
j • n = k Transfer CA
other
– ----------------------------------------------
gb
(294)
f gb s g k Segregation
other gb
where C A is the concentration of dopant on the other side of the interface, C A is the grain
gb
boundary concentration, k Transfer is the transfer rate, and k Segregation is the segregation rate
of dopant A in the grain boundary. To set these parameters, use:
pdbSet <interface material> <dopant> Transfer {<n>}
pdbSet <interface material> <dopant> SegregationGb {<n>}
The total dopant fluxes at the interfaces between the grain and the neighboring layer and the
grain boundary and neighboring layer are balanced. The fluxes are given by:
+
other fg CA
j g • n = k Transfer CA – ----------------------------- (295)
k Segregation
gb
other CA
j gb • n = k Transfer C A -
– -------------------------------------- (296)
s g k Segregation
gb
and:
j • n = j g • n + j gb • n (297)
+
where C A is the active concentration of dopant in the grain and k Segregation is the segregation
rate of dopant A in the grain. To set this parameter, use:
pdbSet <interface material> <dopant> Segregation {<n>}
The total dopant fluxes at the interfaces between the grain and the neighboring layer and
between the grain and the grain boundary are balanced. The fluxes are given by:
+
other fg CA
j • n = k Transfer CA – ----------------------------- (298)
k Segregation
fg C
+
C
gb
j gb • n = k Transfer ----------------------------
A A
- – ----------------------------------------------
gb
(299)
k Segregation
f gb s g k Segregation
NOTE For the anisotropic polycrystalline model, use the Segregation model
for the boundary condition:
pdbSet PolySilicon_Silicon Boron BoundaryCondition Segregation
pdbSet Oxide_PolySilicon Boron BoundaryCondition Segregation
pdbSet Gas_PolySilicon Boron BoundaryCondition Segregation
Bandgap Effect
The effect of the bandgap narrowing on the dopant diffusion arises from the change in the
intrinsic carrier concentration n i ( Si ) . This has been implemented in Sentaurus Process as
follows:
– ΔEg
--------------
2kT
n i = n i ( Si )e (300)
where ΔEg is bandgap narrowing due to germanium content. It can be defined using the
command:
pdbSet <material> Germanium delEg {<n>}
The band gap, delEg ( ΔEg ), is a function of germanium concentration and is given by:
ΔEg ≡ ΔEgs + ( ΔEgr – ΔEgs ) ( 1 – Fpm ) (301)
2
ΔE gs = 0.835x – 1.01x (302)
2
ΔE gr = 0.33x – 0.55x (303)
C Ge
x = ---------------------
22
(304)
5.0 ×10
where ΔEgs [20] is the bandgap narrowing in strained silicon, ΔEgr [21] is the bandgap
narrowing in the relaxed silicon, Fpm is a pseudomorphic factor that shows the degree of the
relaxation, and x is the germanium fraction in silicon. Fpm is calculated with respect to lattice
mismatch in the substrate. For example:
( a SiGe – a )
Fpm = --------------------------- (305)
a SiGe – a Si
where:
■ a SiGe is the lattice-spacing of the silicon-germanium region.
■ a Si is the lattice-spacing of silicon.
■ a is the lattice-spacing calculated in the mechanics.
If the system is fully relaxed, Fpm is zero. If it is fully strained, Fpm is one. ΔEg will be used
if the germanium percentage is greater than 0.1%, and the bandgap narrowing effects due to
other strain sources will be ignored (see Pressure-dependent Defect Diffusion on page 266).
Potential Equation
The permittivity of “Ge-doped” silicon can be calculated by the following formula, in which
x Ge is the germanium concentration in silicon:
ε = ( 1 – x Ge ) × ε Si + x Ge × ε Ge (306)
These effects are modeled in Sentaurus Process by modifying the equilibrium point-defect
concentrations:
– ( ΔV X P + ΔV GeX )
--------------------------------------------
* * kT
CX = C X ( Si, P ≡ 0 )e (308)
C Ge
ΔV GeX = ΔV olGeX Δa SiGe ----------------
22
- (309)
5 ×10
*
where C X is the equilibrium concentration of point defects (interstitial or vacancy), and ΔV X
is the activation volume change of equilibrium point defects due to the pressure P .
ΔV GeX is the total activation volume change of equilibrium point defects due to the presence
of germanium and is calculated from the activation volume change ΔV olGeX , the lattice
mismatch coefficient Δa SiGe , and the germanium fraction in the structure (see Eq. 309). These
quantities can be modified using the following commands:
pdbSet Silicon Germanium Interstitial delVol 11.8
pdbSet Silicon Germanium Vacancy delVol 25.6
pdbSet Silicon Germanium LatticeMismatch 0.0425
3
NOTE delVol is given in units of eV and Volume is given in units of cm .
NOTE The MultiplyTerm command is not saved to the TDR files. If the input
file is split, the command must be included in the new input file.
NOTE The MultiplyTerm command is not saved to the TDR files. If the input
file is split, the command must be included in the new input file.
During assembly of the diffusion equations, Sentaurus Process checks each dopant and
material for whether such diffusion factors exist. The diffusivity through dopant–interstitial or
dopant–vacancy pairs is then multiplied by the corresponding diffusion enhancement factors.
A separation between interstitial and vacancy effects is necessary because with increasing
germanium content of SiGe, the fractions of diffusion mediated by dopant–interstitial and
dopant–vacancy pairs change.
Since the emission rate for the silicon side in the three-phase segregation model is proportional
to the solid solubility, a corresponding modification also must be included in the boundary
condition. For example, this can be achieved by the following line for boron:
pdbSetString Si B [Link] "exp(3.636e-24*Pressure_Silicon*$kT_i)"
NOTE You can define the arbitrary Alagator expressions for the dopant solid
solubility prefactors in Sentaurus Process. The name of strings used for
the solid solubility, the total solid solubility, and the emission rate
correction are [Link], [Link], and
[Link], respectively.
Germanium–Boron Pairing
Germanium can pair with boron and the pairs are known to be electrically active [24] but not
mobile:
Ge + B ↔ GeB (311)
In Sentaurus Process, this reaction is modeled with the following differential equation:
∂C GeB
= Kf ( C Ge C B – KbC GeB ) (312)
∂t
∂C Ge
= ∇•( D ∇C Ge ) (313)
∂t
where D is the diffusivity of germanium and can be set using the command:
pdbSet Silicon Germanium Dstar {<n>}
Of course, if boron is present in silicon, the reaction in Eq. 312 is automatically added to
Eq. 313.
C Ge Germanium
C GeB GeB
Material Conversion
At the beginning of a diffusion, the adjacent III–V materials or a III–V material doped with
other group III or V atoms can be merged into the proper ternary or quaternary compound
When different III–V material regions are adjacent and there is a common material derived
from each III–V material, the regions merge into the common derived material region. For
example, if the neighbor region of a GaAs material region is InAs, two regions are merged and
converted into InGaAs material if InGaAs is the derived material from both GaAs and InAs.
The derived material is specified by:
pdbSet <material> [Link] { <derivedmaterial list> }
For example:
pdbSet GaAs [Link] { InGaAs AlGaAs GaPAs }
pdbSet InAs [Link] { InPAs InGaAs }
When group III or group V atoms are doped into a III–V material, and the atoms are a different
species from the components of the material, the material is converted to the new III–V
material with the component list, including the doping species, if the doping concentration
exceeds the minimum concentration [Link] for conversion. For example, when
indium atoms are doped into a GaAs material region, GaAs is converted to InGaAs if InGaAs
is one of the derived materials of GaAs, and the maximum concentration of indium atoms in
the region exceeds the indium [Link] parameter value of InGaAs:
pdbSet InGaAs Indium [Link] {<n>}
The atoms of the material components are filled into the region before the material conversion
for the mole fraction calculation and the interdiffusion simulation.
For example:
pdbSet InGaAs [Link] { x Gallium } ;# In(1-x)Ga(x)As
pdbSet AlInGaAs [Link] {x Aluminum y Indium} ;# Al(x)In(y)Ga(1-x-y)As
If a physical parameter is not specified on a ternary (or quaternary) material, the parameter
value is extracted by the linear interpolation with the parameter values of their base materials
that is, binary materials. For the value P M of the parameter of material M :
P III = P III ⋅ x + P III ⋅ (1 – x) (314)
A ( x ) III B ( 1 – x ) V C A VC B VC
NOTE For the energy bandgap and affinity, the second-order mole-fraction
dependency can be specified (see details in Table 22 on page 264).
Dopant Diffusion
To model dopant diffusion in a III–V material, the following assumptions are applied:
■ Point defects diffuse by the second nearest neighbor hopping.
■ Group II dopants react only with group III point defects.
■ Group VI dopants react only with group V point defects.
■ There are no antisite defects.
■ The charging reaction is in equilibrium.
■ There are two types of vacancy (that is, at group III and V sites): VacIII and VacV.
Since the substitutional concentrations of group IV dopants on group III sites and group V sites
are modeled and calculated separately, the autocompensation effect due to the amphoteric
behavior is implicitly taken into account.
ChargedReact Model
∂AI – j – z Am AI m z Am ( ko ) ( ft )
--------- =
∂t ∇ ⋅ DAI mj
η η
∇ ----------- η + R AY – R AIV
α AIm Y m m
(317)
m j m
∂AV – j – z Am AV m z Am ( ko ) ( ft )
----------- =
∂t ∇ ⋅ DAV mj
η η
∇ ------------η + R AV – R AVY
α
AV m m m
(318)
m j Y m
∂A m, s ( ko ) ( ko ) ( ft ) ( ft )
-------------- = – R AY – R AV + R AIV + R AVY (319)
∂t m m m m
Ym Ym
where:
( ko ) ( ko ) – j Y m AI m Y m, s
R AY = k AY j Y m, i∗ φ Y j η A m, s --------- – ----------- -------------- (320)
m
j m m
Y m
∗ α AI Y m, s∗
m
( ko ) ( ko ) – j V m AV m
R AV = k AV j V m, i∗ φ V j η A m, s ---------- – ------------ (321)
m
j m m
V m∗ α AV m
( ft ) ( ft ) – ( j + k ) AI m V m
R AIV = k AI jk α AI , j V ∗ φ V k η ----------- ---------- – A m, s (322)
m
j, k m m m, i m α
AIm V m ∗
( ft ) ( ft ) – ( j + k ) AV m Y m Y m, s
R AVY = k AV jk α AV , j Y m, i∗ φ Y k η ------------ --------- – A m, s -------------- (323)
m
j, k m m m α
AVm m Y ∗ Y m, s
∗
αAI , j η
–j
α AI = and αAIm, j ≡ DAIm j ⁄ d AIm j (324)
m m
j
αAV , j η
–j
α AV = and αAVm, j ≡ D AVm j ⁄ dAVm j (325)
m m
j
–1
α AI η
III
AI III = ------------------------------------------------------------AI
–1 1
(326)
α AI η + α AI η ⁄ r IIIV
III V
1
α AI η
AI V V
= --------------------------------------------------------
–1
- AI
1
(327)
r IIIV α AI η + α AI η
III V
–1
α AV η
III
AV III = --------------------------------------------------------------
–1 1
- AV (328)
α AV η + α AV η ⁄ r IIIV
III V
1
α AV η
V
AV V = -----------------------------------------------------------AV
–1 1
(329)
r IIIV α AV η + α AV η
III V
m The Mendeleev group number of a constituent atom of III–V material, m ∈ { III, V } . Unitless
–3
A m, s Substitutional dopant concentration at group m lattice sites. cm
–3
AI Dopant–interstitial pair concentration. For example, AI is SiInt for Silicon. cm
–3
AI m Dopant–group m interstitial pair concentration. cm
–3
AV Dopant–vacancy pair concentration. For example, AV is SiVac for Silicon. cm
–3
AV m Dopant–group m vacancy pair concentration. cm
–3
Ym Self-interstitial concentration. For example, Y III is GaInt or InInt, and Y V is cm
AsInt in InGaAs.
–3
Y m, s Constituent atom concentration. For example, Y III, s is Gallium or Indium, and cm
Y V is Arsenic in InGaAs.
* –3
Ym Self-interstitial concentration in equilibrium (Eq. 343, p. 262). cm
* –3
Y m, i Self-interstitial concentration in intrinsic equilibrium: cm
pdbSet InGaAs GaInt Cstar {<n>}
* –3
Y m, s Constituent atom concentration in equilibrium: cm
pdbSet InGaAs Gallium CsubStar {<n>}
r IIIV Ratio of the substitutional concentration at group III lattice sites to group V sites in Unitless
intrinsic equilibrium. r IIIV ≡ ( A III, s ⁄ A V, s ) i∗ . Applies only to group IV dopants. For
example:
pdbSet GaAs Si [Link] {<n>}
Fermi Model
∂A
∇ ⋅ ( DI ∇( A m, s η )
–zm zm
------ = + D V )η (330)
∂t m m
m
where:
–1
η
A III, s = -----------------------------------
–1 1
- As (331)
η + η ⁄ r IIIV
1
η
A V, s = --------------------------------A
–1 1 s
(332)
r IIIV η + η
Constant Model
where:
1
A III, s = --------------------------- A s (334)
1 + 1 ⁄ r IIIV
1
A V, s = -------------------- A s (335)
r IIIV + 1
Activation Model
The solid solubility model can be specified. For more information, see Dopant Active Model:
Solid on page 280.
For group IV dopants, the amount of substitutional concentration on group III and group V sites
is reduced by the ratio of a given parameter [Link] to the clustering
concentration, respectively:
+ 1 +
A III, s = A III, s – --------------------------------------------------------- ( A s – A s ) (336)
1 + 1 ⁄ [Link]
+ 1 +
A V, s = A V, s – -------------------------------------------------- ( A s – A s ) (337)
[Link] + 1
Point-Defect Diffusion
∂Y m – j Y m ( ko ) ( ft )
---------- = ∇ ⋅ d Y , j Y m, i∗ φ Y j η ∇ --------- – R YV – R YY′ – ( R AY + R AVY ) (338)
∂t j m m
Y m∗ m
Y′
m
A
m m
m
∂V m – j V m ( ko ) ( ft )
---------- = ∇ ⋅ d V , j V m, i∗ φ V j η ∇ ---------- – R YV – ( R AV + R AIV ) (339)
∂t m m
V m∗ m m m
j Ym A
∂Y m, s ( ko ) ( ft )
-------------- = R YV + R YY′ + ( R AY + R AVY ) (340)
∂t m m m m
Y′ m A
where:
– ( j + k ) Y m V m Y m, s
R YV = k YV j ( Y m, i∗ φ Y j ) ( V m, i∗ φ V k )η --------- ---------- – -------------- (341)
m
j, k m m m
Y m∗ V m∗ Y m, s∗
– j Y m Y′ m, s Y′ m Y m, s
R YY′m = k YY′ j Y′ m, s∗ ( Y m, i∗ φ Y j )η --------- --------------- – ----------- -------------- (342)
j m m ∗
Y m Y′ m, s ∗ Y′ m∗ Y m, s∗
Y m, i ∗ φ Y
–j
Y m∗ = η (343)
mj
j
Vm, i∗ φV
–j
V m∗ = η (344)
mj
j
m The Mendeleev group number of a constituent atom of III–V material, m ∈ { III, V } . Unitless
–3
Ym Self-interstitial concentration. For example, Y III is GaInt or InInt, and Y V is cm
AsInt in InGaAs.
–3
Y m, s Constituent atom concentration. For example, Y III, s is Gallium or Indium, and cm
Y V is Arsenic in InGaAs.
Poisson Equation
∇•( ε r ε 0 ∇( ψ – θ ) )
– j AI m – j AV m
= – q p – n + ( z Am A m, s ) + ( ( z Am + j )α AI , j η ) ----------- + ( ( z Am + j )α AV , j η ) ------------
j m α
AIm j m
α AV m
A m A m
– j Y m – j V m
+ jY m, i∗ φ Y j η --------- + jV m, i∗ φ V j η ----------
j
m Y
m
Y m∗ j m
V m∗
m
(345)
where:
E g kT N c
qθ = χ + ------ + ------ ln ------ (346)
2 2 N v
3⁄2
N c = N c300 ---------
T
300
(348)
T 3⁄2
N v = N v300 --------- (349)
300
Eg
ni = N c N v exp – --------- (350)
2kT
2 2
E g = E g300 + E gα ------------------ – -------------
300 T
300 + β T + β
(351)
Eg Band gap. eV
E g300 Band gap at 300 K, which depends on the mole fraction x . If Eg300 is eV
specified on the material, then E g300 = Eg300 + Eg.X1 ⋅ x + Eg.X2 ⋅ x ( 1 – x ) .
Otherwise, E g300 = E g300 interpolated + Eg.X2 ⋅ x ( 1 – x ) , where E g300 interpolated
is calculated by Physical Parameter Interpolation on page 256.
pdbSet <material> Potential Eg300 {<n>}
pdbSet <material> Potential Eg.X1 {<n>}
pdbSet <material> Potential Eg.X2 {<n>}
where defect is interstitial or vacancy, and model is one of the available models.
* *
The Constant model simply sets C X to C X ( intrinsic ) , the FermiLevelDependent model is
given in Eq. 150, and the FermiPressureDependent model includes both Fermi effects and
pressure-field effects.
The pressure effects are modeled in Sentaurus Process by modifying the equilibrium point-
defect concentrations:
( ΔV X P )
– ------------------
-
* * kT
CX = C X ( Si, P ≡ 0 )e (352)
*
where C X is the total equilibrium concentration of point defect X (interstitial or vacancy). ΔV X
is the activation volume change of equilibrium point defects due to the pressure P and is given
by:
3
ΔV I = ε4πr o (353)
2 (1 – η) Γ
ΔV V = -2πr s 3 ----------------- --- (354)
1+η μ
where ε is the dilatation, r o is the measure of the sphericity of the interstitial, r s is the radius
of the vacancy, η is the Poisson ratio of silicon, Γ is the surface tension of the vacancy, and μ
is the shear modulus of silicon. The following set of commands can be used to modify ΔV X :
pdbSet Silicon Interstitial Volume 8.59e-24
pdbSet Silicon Vacancy Volume -5.52e-24
3
The unit of Volume is cm .
Electron Concentration
To calculate the electron concentration or, alternatively, the electron potential, Sentaurus
Process solves either the Poisson equation or charge balance equation. By default, the
ChargedReact, ChargedPair, and ChargedEquilibrium models all solve the charge
balance equation. The uncharged models do not require a separate equation because the
electron concentration can be computed directly from the net doping.
where ε is the permittivity, ψ is the potential, n and p are the electron and hole
concentrations, and ΔN is the net charge.
In Eq. 355 and Eq. 357, the ΔN must be calculated. The net charge is given by:
( c + zj )
ΔN = z j C A + cC c + ( z j + c )C A X
+
j X j
(358)
j c X, c , j
where:
■ c is the charge state of the defect X , interstitial, or vacancy.
■ C Xc is the concentration of the defect X in the charge state c .
■ z j is the charge state of dopant A j .
■ A j X is the dopant A j and defect X pair.
You can exclude or include the charged dopant–defect pairs or charged defects in Eq. 358, for
example:
pdbSet Si Dopant ChargeModel DopantOnly
pdbSet Si Dopant ChargeModel DopantDefect
The first command, which is the default behavior for dopants, includes only the charged
dopants in silicon in Eq. 358. The second command includes the charged dopants as well as the
charged dopant–defect pairs in Eq. 358.
In a similar way:
pdbSet Si Defect ChargeModel None
pdbSet Si Defect ChargeModel Defect
The first command, which is the default behavior for defects, excludes the charged defects in
silicon in Eq. 358 and the second command includes them.
NOTE The diffusion models Constant, Fermi, Pair, and React always
exclude the charged dopant–defect pairs.
NOTE The above switch is used to switch from or to the Poisson equation to or
from the charge balance equation.
If it is switched off, the charged defects and charged dopant–defect pairs are not included in
Eq. 358, and Eq. 359 is used to calculate the potential:
where V ti is 1 ⁄ kT , and n i is the intrinsic concentration of electrons and can be set using the
command:
pdbSet <material> Potential ni {<n>}
To switch on or off the solution of the Poisson equation or the charge balance equation,
regardless of the diffusion model selected, use the commands:
pdbSetBoolean Potential ForcedTurnOff 0/1
pdbSetBoolean Potential ForcedTurnOn 1/0
Bandgap Narrowing
If bandgap narrowing effects need to be considered, Sentaurus Process uses the effective
intrinsic electron density, n ie , instead of n i . n ie is given by:
ΔEg
– ----------
2kT
n ie = n i e (360)
where ΔE g is the reduction in the bandgap energy of silicon and is defined as:
ΔEg = ΔEgu + ΔEgs (361)
where ΔEgu is the user-defined bandgap narrowing and can be set using the command:
pdbSet <material> Potential delEg {<n>}
ΔEgs is the bandgap narrowing due to strain in the structure. To switch on this effect, the
intrinsic electron density model (niMod) must be set to StrainDependent. To select the
model, use:
pdbSet <material> Potential niMod <model>
niMod can have either the value Constant or StrainDependent. The Constant model
will ignore ΔEgs .
ΔEvi = D vi ( ε xx + ε yy + ε zz )
2 2 2 2 2 2 2 2
(363)
± ( 0.5D vbi ( ( ε xx – ε yy ) + ( ε yy – ε zz ) + ( ε zz – ε xx ) ) + D vdi ( ε xy + ε xz + ε yz ) )
where ε is the strain in the respected direction, and D ci, D vi are the dilatational deformation
potentials for the conduction and valence band valleys, respectively.
D cxi, D cyi, D czi and D vbi, D vdi are the deviatoric deformation potential of conduction and
valence band valleys. They can be set using the commands:
pdbSet Si Potential Ec Deviatoric(1) {
1 9.5
2 0.0
3 0.0
}
Sentaurus Process uses the averaged values of conduction and valence bands energies,
ΔEci, ΔEvi :
3 – Δ-----------
Eci
-
ΔEc = – kT log --- e
1 kT
3
(364)
i=1
2 Δ-----------
Evi
-
ΔEv = kT log --- e
1 kT
2
(365)
i=1
Epitaxy
Epitaxial growth is simulated when an Epi type ambient is specified on either the diffuse
command or in a temp_ramp ramp used by the diffuse command.
By default, two Epi type ambients are available: one is called Epi and the other is called LTE.
If Epi is specified, Silicon will grow on Silicon and PolySilicon will grow on
PolySilicon. If the LTE ambient is specified, Silicon will again grow on Silicon, but
PolySilicon will grow on Oxide, Nitride, and PolySilicon. The layer thickness is
specified with the thick parameter and doping is specified with the [Link] parameter.
Epitaxy is solved using the Alagator general growth scheme (see Alagator for Generic Growth
on page 584). This allows the creation of new epi growth modes (that is, specifying which
materials grow) and material-dependent growth rates.
An unlimited number of species can be incorporated into the epitaxial layer. Doping is
specified using the [Link] and [Link] parameters in either the diffuse
command or a temp_ramp included in a diffuse command. The parameters <material>
<solution> Cepi0 and <material> <solution> CepiE set the default value of fields
in the growing material. The defaults are overwritten by setting the [Link] and
[Link] parameters of the diffuse or temp_ramp commands. The same set of
equations as for the single-crystalline silicon is solved for the epitaxial silicon during the
diffusion step simulation. If the growth temperature goes below the minimum diffusion
temperature, the diffusion equations will be switched off, but the boundary conditions for
dopant incorporation will be applied. The Continuous boundary condition is applied to all
the mobile species at the interface between the epitaxial layer and single-crystalline silicon to
take into account the variable jump.
It is also possible to incorporate the auto-doping of dopants during the epitaxial growth using
the [Link] parameter in either the diffuse command or a temp_ramp included in a
diffuse command. Auto-doping can be switched on only for dopants that are not listed in the
[Link] or [Link] parameters (see Epi Auto-Doping on page 272).
In certain examples, it is easier to specify resistivity to obtain the required doping concentration
in the epi layer. The resistivity can be specified using the [Link] parameter in either the
diffuse command or a temp_ramp included in a diffuse command.
Two different methods can be selected to simulate the epitaxial growth. The [Link]
parameter of the diffuse command is used to switch between them:
■ If [Link]=0 (default), a moving-boundary algorithm similar to the oxidation one is
applied.
■ If [Link]=1, alternating doped deposition and inert annealing steps are used. Model 1
supports selective epitaxy, graded doping, and material-dependent growth rates, and can be
used with both the Sentaurus Structure Editor and MGOALS3D modes. Furthermore, for
3D epitaxy, Model 1 is recommended because of the computational time and reliability
issues related to moving boundaries (Model 0) in 3D.
To set the grid spacing, use the [Link] parameter. This sets the number of grid layers
that are deposited during the corresponding diffuse or temp_ramp steps.
NOTE Model 1 is recommended for 3D epitaxy and can be used with 2D.
Epi Doping
Two parameters of the diffuse and temp_ramp commands are used to control doping:
[Link] and [Link]. Both parameters take a list of parameters, that is,
dopant and field names, as their arguments.
If a dopant or field name appears in only one of the lists or in both of the lists with the same
value, the value of the doping is constant throughout the step. If the dopant or field appears in
both lists with different values, a linear gradient of the doping is applied. For example:
temp_ramp name=t1 temperature=550 [Link]=700 time=1<min>
temp_ramp name=t1 [Link]=700 time=5<min> Epi thick=0.1<um> \
[Link] = { Boron=1e18 Germanium=1e21 } \
[Link] = { Germanium=5e21 }
diffuse [Link]=t1
In this example, epitaxy is simulated after an inert temperature ramp. During epitaxy, the boron
18 –3 21 –3
concentration is a constant 10 cm , and germanium is ramped from 10 cm to
21 –3
5 × 10 cm . In addition, all these parameters can be set in the diffuse command, for
example:
diffuse temperature=700 time=5<min> LTE \
[Link] = { Arsenic=1e18 } thick = 0.1<um>
18 –3
In this case, a constant arsenic doping of 10 cm is applied to an LTE epitaxial growth.
Epi Auto-Doping
The [Link] parameter of the diffuse and temp_ramp commands controls doping.
The parameter takes a list of parameters, that is, dopant and field names, as its arguments. If a
dopant or field name appears in [Link] and in either [Link] or
[Link], auto-doping of this dopant is ignored. For example:
temp_ramp name=t1 temperature=550 [Link]=700 time=1<min>
temp_ramp name=t1 [Link]=700 time=5<min> Epi thick=0.1<um> \
[Link] = { Boron Germanium } [Link] = { Germanium=1e21 } \
diffuse [Link]=t1
*
where k Transfer is the transfer rate, k Segregation is the segregation rate, C A is the peak value of
min
the dopant concentration in the auto-doped region, C A is the minimum value of the dopant
concentration, k Decay is the decay rate of the auto-doping, and C A is the dopant concentration.
These parameters can be modified using the commands:
pdbSet <interface material> <dopant> TransferAutoDoping <n>
pdbSet <interface material> <dopant> SegregationAutoDoping <n>
pdbSet <interface material> <dopant> Cstar <n>
pdbSet <interface material> <dopant> minConc <n>
pdbSet <interface material> <dopant> DecayRate <n>
where <interface material> is the Gas and epitaxially grown material interface. In
Eq. 367, Δt is the percentage of the simulation time since the diffusion started, and t is the
total simulation time from the beginning to the end of diffusion. Eq. 367 is created
automatically and stored in a term called <dopant>AutoDoping. You can overwrite this by
defining your own reactions.
For example:
term name=BoronAutoDoping EpiOnSilicon /Gas add eqn = \
"1e-3*(1e16-Boron_EpiOnSilicon/0.1)"
NOTE Since the model does not solve equations in gas, the dose loss or gain of
the dopant is expected.
If more than one dopant name appears in the list, the doping concentration is calculated
individually for each dopant by ignoring the other ones. For example:
temp_ramp name=t1 temperature=550 [Link]=700 time=1<min>
temp_ramp name=t1 [Link]=700 time=5<min> Epi thick=0.1<um> \
[Link]= { Arsenic=1e-2 Phosphorus=2e-3 }
diffuse [Link]=t1
In this example, epitaxy is simulated after an inert temperature ramp. During epitaxy, the
19 –3
arsenic concentration is a constant 4.3 × 10 cm and the phosphorus concentration is
19 –3
9.7 × 10 cm . In addition, all of these parameters can be set in the diffuse command, for
example:
diffuse temperature=700 time=5<min> LTE \
[Link]= { Arsenic=1e-2 Phosphorus=2e-3 } thick= 0.1<um>
The doping concentration calculations use the silicon-based mobility models (see Resistivity
on page 832).
where <n> is in seconds. For the case of LTEOnOxide, <starting material> is Oxide and
<ambient> is LTE.
NOTE The exposure time is not saved, so nucleation must happen within one
diffuse command (use the temp_ramp command to create long
diffusion steps with optional ramp-up or ramp-down).
The growth rate for all materials is determined by default from the native layer thickness as
well as the thick and time parameters of the diffuse or temp_ramp commands. However,
the growth rate can be set manually using a callback procedure like this:
pdbSet <growing material>_Gas <ambient> GrowthRateProc <proc name>
Inside <proc name>, you should set the pdb parameter GrowthReaction. For example:
pdbSet Gas_LTEOnOxide LTE GrowthRateProc MyGRProc
proc MyGrProc { Mat Sol } {
set myGrowthRate 1.0e-7 ;# in cm/s
pdbSetString $Mat $Sol GrowthReaction "$myGrowthRate"
}
or:
pdbSet <interface material> [Link] {
angle1(degrees) factor1(unitless) angle2 factor2 ...
}
where the interface material would be, for example, EpiOnSilicon_Gas for epi growth on
silicon and Gas_LTEOnSilicon for LTE on silicon. There are aliases for all materials, so the
order of the interface materials is not important.
To form facets, a large range of degrees near 0 that have a factor of 1.0 is needed. For larger
angles, the factor should monotonously decrease to 0 at the required facet angle. For example,
to form 35° facets during epi on silicon, the following setting could be used:
temp_ramp thick=<thick> epi time=<time> temperature=<temp> [Link]=<nlay> \
[Link] = {
EpiOnSilicon_Gas = { 0.0 1.0 20.0 1.0 35.0 0.0 }
}
By default, facets form at all triple points. To switch off these facets, use:
pdbSet AnisoGrowthTriplePoints 0
By default, facets will not form on the outer boundaries. To switch on faceting on the outer
boundary, use:
pdbSet AnisoGrowOuterBoundaries 1
Time-stepping
This algorithm and anisotropic growth in general can be inherently unstable. If a ‘bump’
develops during growth, it may persist or perhaps even grow larger. To prevent bumps from
forming, it is necessary to take small time steps. The parameter dThicknessAnisoGrowth
can be used to control time-stepping during anisotropic growth. It sets a maximum thickness
per time step:
pdbSet Diffuse dThicknessAnisoGrowth <thickness in um> #; default 0.001um
where C is the concentration, D is the diffusivity, and D SS and D SP are user-definable terms.
You can define both factors. To switch the model on or off, use the command:
pdbSet <material> <dopant> StressModel <model>
For example, in the case of specified boron in silicon, this is given by:
term name=BoronIntSSFactor add Silicon eqn = {User defined equation}
term name=BoronIntSPFactor add Silicon eqn = {User defined equation}
To allow Sentaurus Process to use these terms, specify a term with the name
<dopant><defect>SSFactor or <dopant><defect>SPFactor.
If the model is switched on and you do not provide the terms, D SS and D SP are calculated as:
( ΔV V P )
– -------------------
kT
D SS = e (369)
( ΔV S P )
– ------------------
kT
D SP = e (370)
where ΔV V and ΔV S are activation volumes and can be set using the commands:
pdbSet <material> <dopant> <defect> delVolV {<n>}
pdbSet <material> <dopant> <defect> delVolS {<n>}
Diffusion Prefactors
Dopant diffusivities can be enhanced or retarded due to various new process conditions. If a
new model does not exist to simulate the observed behavior, you may want to multiply the
existing diffusivity with a prefactor. Sentaurus Process allows diffusivities to be multiplied by
user-defined factors as follows:
j = – DD F ∇C (371)
where C is the concentration, D is the diffusivity, and D F is the diffusion prefactor. For
example, in the case of specified boron in silicon, this is given by:
term name=BoronDiffFactor add Silicon eqn = "exp(0.042 * $Vti * 125 * \
Germanium / 5e22)"
where D CI is the diffusivity of the dopant–interstitial pair, D CV is the diffusivity of the dopant–
vacancy pair, and D IF and D VF are the diffusion prefactors for each dopant–defect pair. For
example:
term name=BoronIntDiffFactor add Silicon eqn = "exp(0.042 * $Vti * 125 * \
Germanium / 5e22)"
term name=BoronVacDiffFactor add Silicon eqn = "exp(0.042 * $Vti * 25 * \
Germanium / 5e22)"
To allow Sentaurus Process to use these terms, specify a term with the name
<dopant>DiffFactor or <dopant><defect>DiffFactor.
C A C pow
D F = 1 + ---------- (374)
C ref
20
where C As is the active concentration of arsenic, and C ref ∼ 2 ×10 cm–3 and C pow ∼ 4 for
arsenic. The correction factor can be applied to all dopant–defect pairs as long as the
parameters are supplied. The model can be switched on with the command:
pdbSet <material> <dopant> <defect> HighConcDiffEffect 1
The default of the model is off (0). The model parameters are set using the command:
pdbSet <material> <dopant> <defect> Cref {<n>}
pdbSet <material> <dopant> <defect> Cpow {<n>}
For example:
pdbSet Silicon Arsenic Vacancy Cref 1.6e20
pdbSet Silicon Arsenic Vacancy Cpow 4.0
C H C pow
D F = 1 + ---------- (376)
C ref
15
where C H is the active concentration of hydrogen, and C ref ∼ 1 ×10 cm–3 and C pow ∼ 1 for
boron. If hydrogen is present in the structure, the enhancement factor for boron will be applied
automatically.
For example:
pdbSet Oxide Hydrogen Boron Cref 1.6e20
pdbSet OxideHydrogen Boron Cpow 4.0
The correction factor can be applied to other dopants if the dopant is given in the dopant list
using the command:
pdbSet <material> Hydrogen Dopants <list>
The diffusion of hydrogen itself is modeled using the constant diffusion model (see Constant
Diffusion Model on page 212).
where <dopant> is a valid dopant name and <model> is one of the valid active models (None,
Solid, Transient, Cluster, ChargedCluster, BIC, FVCluster, or Equilibrium).
NOTE BIC is valid only for boron and is not recommended because the
ChargedCluster model is better suited for modeling boron–
interstitial clusters. FVCluster is valid only for fluorine.
SS
C A is calculated by:
SS ss0
CA = f ⋅ CA (378)
when [Link] is set to Analytic. However, when [Link] is set to Table, the solid
solubility is taken from the temperature-versus-solid solubility table.
With the table, the solid solubility for the given temperature is logarithmically interpolated or
extrapolated when the given temperature is out of range.
C Appt is the precipitates concentration of the dopant and C *Appt is the equilibrium precipitates
concentration given by:
where:
■ C A is the total chemical concentration.
■
nCACl represents the total dopant concentration in other clusters than precipitates.
■ C AEq is the equilibrium active concentration calculated by Dopant Active Model:
Equilibrium on page 293.
nCACl in Eq. 380 and Eq. 381 are included only when the other clustering model is invoked
with the list of [Link], for example:
pdbSet Si Boron [Link] { Precipitation }
pdbSet Si Boron ActiveModel Transient
*
τ Appt = DeclusteringTime for C Appt > C Appt (383)
The solution for C Appt is named with <species name>Ppts; for example, BPpts for boron
precipitates. The parameters ClusteringTime and DeclusteringTime are defined for the
precipitates in the material, for example:
pdbSet Silicon BPpts ClusteringTime {[Arr 8e-16 -4.2]}
pdbSet Silicon BPpts DeclusteringTime {[Arr 8e-16 -4.2]}
+
C Amin is the minimum active concentration defined by the parameter MinimumActive, for
example:
pdbSetString Silicon Boron MinimumActive "0.0"
The initialization of the precipitation concentration depends on the value of the parameters
AmInit and AcInit. The initial level of active concentration in amorphized and crystalline
regions can be specified per dopant as AmInit and AcInit, respectively. You can specify the
AmInit and AcInit parameters using:
pdbSet <material> <dopant> AcInit {<n>}
pdbSet <material> <dopant> AmInit {<n>}
If the AcInit parameter is not defined, the solid solubility of the dopant is used to calculate
the AcInit parameter. If you want AcInit and AmInit to be a function of other fields for a
specific dopant, define the terms <dopant>AcInit and <dopant>AmInit in your input files.
The precipitation model can be used with other activation models, for example:
pdbSet Si B ActiveModel BIC
pdbSet Si B [Link] { Precipitation }
When the precipitation model is invoked with other activation models, the initial
concentrations of the clusters and the precipitates are set as follows.
where the fraction ratio f Appt for precipitation and f Aclust, i for the cluster of other activation
model i are written as:
FractionAmor ppt
f Appt = ------------------------------------------------------------------------------------------------------------------------------------------------- (386)
FractionAmor ppt + FractionAmor dopant + FractionAmor i
i
FractionAmor i
f Aclust, i = ------------------------------------------------------------------------------------------------------------------------------------------------- (387)
FractionAmor ppt + FractionAmor dopant + FractionAmor i
i
where:
FractionCryst ppt
f Appt = ---------------------------------------------------------------------------------------------------------------------------------------------- (390)
FractionCryst ppt + FractionCryst dopant + FractionCrysti
i
FractionCryst i
f Aclust, i = ---------------------------------------------------------------------------------------------------------------------------------------------- (391)
FractionCryst ppt + FractionCrystdopant + FractionCryst i
i
The parameters FractionAmor and FractionCryst for the precipitation are written as:
pdbSet <material> <precipitates> FractionAmor <number>
pdbSet <material> <precipitates> FractionCryst <number>
∂C AC n kc 1 kc – 1 + lc kc + lc n –zl c
= k f ---- ---------------- ---
zl c – zl c
- n K ( C ) – K k ( n ) n C (392)
∂t ni 18 i Ffwd A Fbwd b ss i AC n-i
1 ×10
where:
■ k f is the forward-clustering reaction rate.
■ k b is the de-clustering rate.
+
■ C A is the active dopant concentration.
■ C AC is the concentration of clusters.
■ l c is the number of substitutional dopants.
■ k c is the number of electrons participating in the reaction.
■ n is the electron concentration.
■ n i is the intrinsic electron concentration.
■ n ss is the electron concentration assuming that the dopant A reached the limits of solid
solubility.
where KcEqu and CluRate correspond to k b and k f . Initialization of transient dopant clusters
is explained in Ion Implantation to Diffusion on page 340. The default value of KcEqu is
calculated by using:
lc
C ss
K cEqu = l c ---------------------------- (393)
C sstot – C ss
where C ss is the solid solubility of the unpaired dopant and C sstot is the solid solubility of total
concentration of the dopant. K cEqu can be set directly using the command:
pdbSet Silicon Arsenic KcEqu 1e66
In addition, K Ffwd and K Fbwd are forward and backward reaction factors, respectively. They
can be defined as:
term name = <dopant>TClusterForwardFac <mater>
eqn = { User defined equation }
term name = <dopant>TClusterBackwardFac <mayer>
eqn = { User defined equation }
If you switch on the transient dopant cluster model or cluster model, initialization of the dopant
clusters is performed in the diffPreProcess procedure (see Ion Implantation to Diffusion
on page 340). The initialization of the dopant-cluster concentration depends on the value of the
parameters AmInit and AcInit. The initial level of active concentration in amorphized and
crystalline regions can be specified per dopant as AmInit and AcInit, respectively.
If the AcInit parameter is not defined, the solid solubility of the dopant is used to calculate
the AcInit parameter. If you want AcInit and AmInit to be a function of other fields for a
specific dopant, define the terms <dopant>AcInit and <dopant>AmInit in your input files.
For example:
term name=ArsenicAcInit silicon add eqn = "Germanium/5e22 * [pdbDelayDouble
Silicon Arsenic Solubility]"
term name=ArsenicAmInit silicon add eqn = "Germanium/5e22*1e19"
In this case AcInit and AmInit for arsenic are replaced with ArsenicAcInit and
ArsenicAmInit.
If the dopant concentration is lower than AcInit in crystalline regions, dopants are considered
to be active. If the dopant concentration is higher than AcInit, the number of active dopants
is initially AcInit, and the concentration of clustered dopants is given by Dopant – AcInit.
The following outlines the initilization of dopant clusters.
In crystalline regions:
Dopant = Dopant + min(AcInit, Dopant_Implant)
(394)
DopantCluster = DopantCluster + Dopant_Implant - min(AcInit, Dopant_Implant)
In amorphous regions:
Dopant = min(AmInit, Dopant+DopantCluster+Dopant_Implant)
DopantCluster = Dopant + DopantCluster + Dopant_Implant (395)
– min(AmInit, Dopant+DopantCluster+Dopant_Implant)
where Dopant is the dopant name (for example, Boron, B4, and Boron_Implant).
Smoothing also can be applied to dopant profiles using the parameter AmorpGamma (see Ion
Implantation to Diffusion on page 340).
The model assumes that arsenic–vacancy clusters are formed in silicon during arsenic
deactivation [28][29]. It is also assumed that neutral clusters ( As m V k ) are formed. Different
charge states are taken into account by:
[j]
mAs + f ↔ As m V k + kI (396)
f = ( m – kj )h, if ( kj – m ) ≥ 0 (398)
where j denotes interstitial charge, e and h are the electron and hole densities, and m and k
are the dopant and defect sizes, respectively.
The following commands can be used to set the reacting defect species, m and k , respectively:
pdbSet <material> <dopant> ClusterDefects <c>
pdbSet <material> <dopant> <defect> ClusterSizes {{<n> <n>}}
for example:
pdbSet Silicon Arsenic ClusterDefects Vac
pdbSet Silicon Arsenic Vacancy ClusterSizes {{4 1}}
where 4 is the number of arsenic atoms in the cluster and 1 is the number of vacancies in the
cluster. They form the As4Vacancy clusters.
NOTE Cluster sizes are defined as {i j} where i and j are integers and are
separated by a space.
The reaction rate for the cluster formation can be written as:
m n m – kj n kj
R j ≡ K fj C As ---- – K rj C As V C 0 ---- (399)
n i m k I n
i
is the intrinsic electron concentration, K fj is the forward reaction rate, and K rj is the backward
reaction rate. An additional assumption was made for all j :
K rj
------- = K equ (400)
K fj
for example:
pdbSet Silicon Arsenic Vacancy CluRateChargeStates
{-2 {[Arrhenius 5.0e-42 7.8]}
-1 {[Arrhenius 5.0e-42 7.8]}
0 {[Arrhenius 5.0e-42 7.8]}
1 {[Arrhenius 5.0e-42 7.8]}
2 {[Arrhenius 5.0e-42 7.8]}}
where n ss is the electron concentration assuming that arsenic reached the limits of solid
*
solubility and C I is the equilibrium concentration of interstitials. K cEqu is given as:
m
C ss
K cEqu = m ---------------------------- (403)
sstot
C – C ss
where C ss is the solid solubility of the unpaired arsenic dopants and C sstot is the solid
solubility of total arsenic concentration.
You can either set the solid solubility values or K cEqu using the commands:
pdbSet Silicon Arsenic Solubility 1e20
pdbSet Silicon Arsenic TotSolubility 1e21
pdbSet Silicon Arsenic Vac KcEqu 1e66
C As As4Vac
m Vk
Ai Ij + I ↔ Ai Ij + 1 (404)
Ai Ij + V ↔ Ai Ij – 1 (405)
A i I j + AI ↔ A i + 1 I j + 1 (406)
Ai Vj + V ↔ Ai Vj + 1 (407)
Ai Vj + I ↔ Ai Vj – 1 (408)
A i V j + AV ↔ A i + 1 V j + 1 (409)
where i, j are the number of dopant and defect atoms in the cluster, respectively. The clusters
can be specified using the command:
pdbSet <material> <dopant> <defect> ClusterSizes <list>
NOTE If you add new cluster sizes, you must define the aliases for the new
clusters, for example:
alias C2I2 Carbon2Int2
where:
■ K fIAi Ij , K fVAi Ij , K fAIAi Ij , K fIVAi Vj , K fIAi Vj , and K fAVAi Vj are the forward reaction rates.
■ B I Ai Ij , B V Ai Ij , B AIAi Ij , B VAi Vj , B I Ai Vj , and B AVAi Vj are the binding coefficients.
where <cluster> is a valid cluster name (for example, C2, C2I, C3I, C3I2), and <pair> is
a dopant–interstitial pair (for example, CarbonInt) or a dopant–vacancy pair.
For example:
pdbSet Silicon Carbon CarbonInt KfCluster C3I2 {[Arrhenius 1e-10 0.3]}
sets the forward reaction rate of the CarbonInt and C3I2 reaction to {[Arrhenius 1e-10
0.3]}.
Initially, cluster concentrations are set to zero. If there is an existing cluster concentration field,
the field is used. If there are amorphized regions, dopant–defect pairs and clusters are
redistributed in these regions (see Dopant and Dopant-Defect Cluster Initialization on
page 302).
In addition, you can initialize any of the cluster concentration fields using the select
command in the command file.
Carbon Cluster
The carbon-clustering model uses the NeutralCluster model. The following solutions are
solved for the carbon model.
C Carbon
CI CarbonInt
C2 C2
C2 I C2I
C3 I C3I
C3 I2 C3I2
C4 I2 C4I2
C4 I3 C4I3
C5 I3 C5I3
C5 I4 C5I4
Nitrogen Cluster
The nitrogen-clustering model uses the NeutralCluster model. The following solutions are
solved for the nitrogen model.
N Nitrogen
NI NitrogenInt
NV NV
N2 NDimer
N2 V N2V
N2 V2 N2V2
NV is not a mobile pair but an immobile cluster. For example, the reaction is defined by:
pdbSet Si N Vac ClusterSizes { {1 0} {1 1} }
pdbSet Si N Vac KfCluster N {[expr [DiffLimit Silicon Vac 0.0]]}
pdbSet Si N Vac BindCluster N {[Arr 5e22 1.58]}
F 3 V ↔ 3F + V (417)
C F
3
R 1 ≡ K I D I0 C F V C I – -----------
- (418)
3 *
C F V
3
C F C V
3
R 2 ≡ K V D I0 C F V – -------------------------
- (419)
3 * * *
C F V C I C V
3
where K I and K V are the forward reaction rates. They can be defined using the commands:
pdbSet <material> Fluorine F3V KfI {<n>}
pdbSet <material> Fluorine F3V KfV {<n>}
Quantities with a superscript (*) correspond to their equilibrium values. The equilibrium value
of C F3 V can be set by:
pdbSet <material> Fluorine F3V Cstar {<n>}
∂C F
= ∇•( D 0 ∇C F ) + 3R 1 + 3R 2 (420)
∂t
∂C F
3V
= – R1 – R2 (421)
∂t
NOTE The fluorine model is switched off by default. To switch it on, use the
following commands:
solution add name = Fluorine ifpresent = "Fluorine" !negative
solution add name = F3V ifpresent = "F3V Fluorine" !negative
CF Fluorine
CF F3V
3V
You can select a different initialization model for fluorine with the command:
pdbSet <material> Fluorine [Link] <model>
If the [Link] model is selected, it is assumed that the complete fluorine dose is implanted as
fluorine–vacancy clusters ( C F3 V ). Since the ‘+1’ model is used to generate the excess
interstitials, this effectively introduces interstitials of a concentration equal to C F3 V , except in
amorphous regions.
If the DAC model is selected, initially, the fluorine–vacancy cluster concentration is set to zero.
If there is an existing cluster concentration field, this field is used. If there are amorphized
regions, clusters are redistributed in these regions (see Dopant and Dopant-Defect Cluster
Initialization on page 302). In addition, you can initialize any of the cluster concentration fields
using the select command in the input command file.
NOTE The DAC model does not modify the vacancy field during initialization
of F3V.
+ K CTN.F
C AS = C A + ( K CTN C A+ ) (422)
where K CTN and K CTN.F are clustering parameters and can be set by:
pdbSet <material> <dopant> Kctn {<n>}
pdbSet <material> <dopant> Kctn.F {<n>}
CA
C A < 0.9C A
SS
SS 2
C SS – (------------------------------------
C A – 1.1C A )
- SS SS
C AS = A SS 0.9C A ≤ C A ≤ C A (423)
0.4C A
CA >
SS
1.1C A
CA
SS
SS
where C A is the total unpaired dopant concentration, and C A is calculated as described in
Dopant Active Model: Solid on page 280.
If the clustering parameters K CTN.F and K CTN are zero, the active concentration is determined
by Eq. 423; otherwise, Eq. 422 is solved numerically.
The model makes no assumptions regarding the diffusion model to generate the diffusion
equation for the substitutional and the mobile species. However, it should be used with either
the Pair or React model. The model does not take charge-state–dependent reaction rates into
account.
Bi Ij + V ↔ Bi Ij – 1 (425)
B i I j + BI ↔ B i + 1 I j + 1 (426)
where i, j are the number of boron and interstitial atoms in the cluster B i I j , respectively.
For example:
pdbSet Silicon Boron Interstitial ClusterSizes {{1 0} {1 1} {1 2} {2 1} \
{3 1} {3 2}}
NOTE Cluster sizes given in the ClusterSizes list are increasing in size. For
example, the following command is incorrect:
pdbSet Si B Int ClusterSizes { {1 0} {3 1} {1 1} }
R V ≡ K fVB I ( C B I C V – B V B I C ) (428)
i j i j i j Bi Ij – 1
R CI ≡ K fBI ( C B I C BI – B BI CB ) (429)
Bi Ij i j Bi Ij i + 1 Ij + 1
where K fIBi Ij , K fVBi Ij , and K fBIB I are the forward reaction rates, and B I Bi Ij , B V Bi Ij , and B BIB I are
i j i j
the binding coefficients.
where <cluster> is a valid cluster name, for example, BI2, B2I, B3I, B3I2.
For example:
pdbSet Silicon Boron BoronInt KfCluster B3I2 {[Arrhenius 1e-10 0.3]}
sets the forward reaction rate of the BoronInt and B3I2 reaction to {[Arrhenius 1e-10
0.3]}.
The reactions R I , R V , and R BI are added to the appropriate point-defect equations, and
substitutional and mobile boron diffusion equations.
CB Boron
C BI BoronInt
C BI BI2
2
CB B2I
2I
CB B3I
3I
CB B3I2
3 I2
Initially, boron–interstitial cluster concentrations (for example, B3I) are set to zero. If there is
an existing cluster concentration field, the field is used. If there are amorphized regions, boron
defect pairs, and clusters are redistributed in these regions. For details, see Dopant and Dopant-
Defect Cluster Initialization on page 302. In addition, you can initialize any of the cluster
concentrations field using the select command in the input command file.
The model makes no assumptions regarding the diffusion model to generate the diffusion
equation for the substitutional and the mobile species. However, it should be used with either
the Pair or ChargedPair or React or ChargedReact model.
c z y
CA + C AI ↔ C A + ( y – c – z )e (432)
m In m + 1 In + 1
c z y
CA + CV ↔ CA + ( y – c – z )e (433)
m In m In – 1
c z y
CA + C AV ↔ C A + ( y – c – z )e (434)
m In m + 1 In – 1
where:
■ m, n are the number of dopant and interstitial atoms in the cluster C Am In , respectively, and
they are the number of dopant and vacancy atoms in the cluster C Am Vn , respectively.
■ C I, C V are the concentration of interstitials and vacancies.
■ c, y, z are different charge states of clusters and point defects.
For example:
pdbSet Silicon Boron Interstitial ClusterSizes {{1 0} {1 1} {1 2} {2 1} \
{3 1} {3 2}}
NOTE Cluster sizes given in the ClusterSizes list are increasing in size. For
example, the following command is incorrect:
pdbSet Si Boron Int ClusterSizes { {1 0} {3 1} {1 1} }
Cc Cz – K y n ( y – c – z )
---
RA ≡ K fA rA m I n + 1 C A I - (435)
m In + 1 m In + 1 Am In I m n+1 n i
Cc Cz y n ( y – c – z )
---
RA ≡ K fA – K rA C - (436)
m + 1 In + 1 m + 1 I n + 1 A m I n AI m + 1 In + 1 A m + 1 I n + 1 n i
Cc Cz – K y n ( y – c – z )
---
RA ≡ K fA rA m I n – 1 C A I - (437)
m In – 1 m In – 1 Am In V m n – 1 n i
Cc Cz – K y n ( y – c – z )
---
RA ≡ K fA rA m + 1 I n – 1 C A - (438)
m + 1 In – 1 m + 1 In – 1 Am In AV m + 1 n – 1 n i
I
where:
■ K fAm In + 1 , K fAm + 1 In + 1 , K fAm In – 1 , and K fAm + 1 In – 1 are the forward reaction rates.
■ K rAm In + 1 , K rAm + 1 In + 1 , K rAm In – 1 , and K rAm + 1 In – 1 are the equilibrium constants.
The forward reaction rates are a function of the lattice spacing ( L ), the capture radius factor
z z z z
( r ), and the diffusion of point defect ( D I , D V ) or dopant-defect pair ( D AI, D AV ):
z
K fA α 4πLr A DI (439)
m In + 1 m In + 1
z
K fA α 4πLr A D AI (440)
m + 1 In + 1 m + 1 In + 1
z
K fA α 4πLr A DV (441)
m In – 1 m In – 1
z
K fA α 4πLr A D AV (442)
m + 1 In – 1 m + 1 In – 1
To set the capture radius factor parameter, use the following command:
pdbSet <material> <dopant> <defect|mobile> CaptureRadiusFactor <cluster> \
{<expression>}
where mobile is the mobile species (for example, BoronInt, BoronVac). For example:
pdbSet Silicon Boron BoronInt CaptureRadiusFactor B2 1.3
means that the capture radius for B 2 + BoronInt ↔ B 3 I is 1.3 times the lattice spacing.
where N is the cluster degeneracy, c is the cluster charge, and E form is the formation energy
of the cluster.
where <cluster> is a valid cluster name, for example, BI2, B2I, B3I, B3I2.
For example:
pdbSet Silicon Boron Int ClusterFormE B3I2 {0.3}
∂C A
m In
= – RA – RA – RA – RA (444)
∂t m In + 1 m + 1 In + 1 m In – 1 m + 1 In – 1
The reactions are added to the appropriate point-defect equations, and substitutional and
mobile boron diffusion equations.
CB Boron
C BI BoronInt
C BI BI2
2
CB B2I
2I
CB B3I
3I
CB B3I2
3 I2
Initially, dopant–interstitial cluster concentrations (for example, B3I) are set to zero. If there is
an existing cluster concentration field, the field is used. If there are amorphized regions,
dopant-defect pairs and clusters are redistributed in these regions (see Dopant and Dopant-
Defect Cluster Initialization on page 302).
In addition, you can initialize any of the cluster concentration fields using the select
command in the command file.
where:
■ X and Y denote two different dopant species.
■ X n1 Y n2 P 2, m1 is a complex cluster.
For example:
pdbSetDoubleArray Silicon BCI [Link] { Boron 1 Carbon 1 Int 1 }
When the charge state of the complex cluster, P 3 , m 2 , and m 3 are given, the other unknowns
P 1 , n 3 , and n 4 are determined automatically.
For example:
pdbSetDoubleArray Silicon BCI [Link] { Electron 1 }
pdbSetDoubleArray Silicon BCI ChargeState { 0 1.0 }
The forward and reverse reaction rates, K f and K r , are calculated by:
K f = factor f × K f0 (448)
K r = factor r × K r0 (449)
The ComplexCluster model can be used with other activation models, for example:
pdbSet Si B ActiveModel BIC
pdbSet Si B [Link] { ComplexCluster }
For the initialization of the clusters with the other activation models, see Initializing
Precipitation Model on page 281.
When the multiple dopant species are involved in the reaction of the ComplexCluster model,
the initialization is more complicated because the dose conservations of both dopant species
20 –3
must be satisfied. For example, the silicon substrate is doped with 1 × 10 cm boron atoms
20 –3
and 1 × 10 cm carbon atoms, and the following specifications for their activation models
and initializations are given by:
pdbSet Si B ActiveModel ComplexCluster
pdbSet Si C ActiveModel ComplexCluster
pdbSet Si B AmInit 4E19
pdbSetDouble Si C AmInit 1E19
pdbSet Si BCI FractionAmor 1.0
In the amorphous region, the initial boron active concentration needs to be set to
19 –3 19 –3
4 × 10 cm . This means that the BCI concentration must be 6 × 10 cm , while the initial
19 –3
active concentration of carbon is set to 1 × 10 cm . Therefore, the BCI concentration is
19 –3 19 –3
supposed to be set to 9 × 10 cm . In this case, the smaller BCI concentration 6 × 10 cm
19 –3
is set for BCI, so that the active concentration of carbon is adjusted to 4 × 10 cm ; although,
19 –3
AmInit for carbon is given as 1 × 10 cm .
The initialization of the dopant and dopant-defect clusters depends on the value of the
parameters AmInit, AcInit, FractionCryst, and FractionAmor. The initial level of
active concentration of dopants in amorphized and crystalline regions can be specified per
dopant as AmInit and AcInit, respectively. You can specify the AmInit and AcInit
parameters by using:
pdbSet <material> <dopant> AcInit {<n>}
pdbSet <material> <dopant> AmInit {<n>}
22
If the AcInit or AmInit parameter is not defined, the default value of 5 × 10 is used. If you
want AcInit and AmInit to be a function of other fields for a specific dopant, define the terms
<dopant>AcInit and <dopant>AmInit in your input files. For example:
term name=ArsenicAcInit silicon add eqn = "Germanium/5e22 * [pdbDelayDouble
Silicon Arsenic Solubility]"
term name=ArsenicAmInit silicon add eqn = "Germanium/5e22*1e19"
In this case, AcInit and AmInit for arsenic are replaced with ArsenicAcInit and
ArsenicAmInit.
The FractionCryst and FractionAmor parameters are used to calculate the fraction of
dopants and dopant-defect clusters in crystalline and amorphized regions. To specify the
FractionCryst and FractionAmor parameters, use:
pdbSetDouble <material> <dopant | cluster> FractionCryst {<n>}
pdbSetDouble <material> <dopant | cluster> FractionAmor {<n>}
In crystalline regions:
FractionCryst
Crytalline% = ------------------------------------------------------------------------------------------ (450)
DopantSize FractionCryst
Dopant|Cluster
In amorphous regions:
FractionAmor
Amorphous% = -------------------------------------------------------------------------------------------------------- (452)
DopantSize FractionAmor
Dopant|DopantCluster
where:
■ Dopant is the dopant name (for example, Boron).
■ DopantCluster is the cluster name (for example, B4I2).
■ DopantTotal is the total dopant (for example, Boron+4*B4I2).
■ Dopant_Implant is the implanted dopant (for example, Boron_Implant).
■ DopantSize is the size of the dopant (for example, 4 for B4I2).
where C AI is the mobile dopant, C A311 is the concentration of mobile dopants trapped at {311}
defects, and C ADL is the concentration of mobile dopants trapped at dislocation loops.
The capture rate for the mobile dopant and {311} defect reaction is written as:
capture 311
R A311 ≡ k f311 ( C 311 C max – C A311 ) (457)
where k f311 is the forward reaction rate, C 311 is the concentration of interstitials in {311}
311
defects and C max is the density of traps along the {311} defects for the mobile dopants.
where <trapped dopant> is C A311 (for example, B311). For boron, it is currently set to:
k f311 = 4πr A311 C AI D AI (458)
where r A311 is the capture radius and D AI is the diffusivity of neutral dopant defect pair, C AI .
The release rate for the mobile dopant and {311} defect reaction is written as:
release
R A311 ≡ C A311 E A311 (459)
where E A311 is the emission rate of trapped mobile dopant from {311} defects. To change it,
use:
pdbSet <material> <dopant> EOREmissionRate <trapped dopant> <n>
The capture rate for the mobile dopant and dislocation loop reaction is written as:
capture DL
R ADL ≡ k fDL ( C DL C max – C ADL ) (460)
DL
where k fDL is the forward reaction rate and C max is the density of traps along the edge of
dislocation loops for the mobile dopants. To change k fDL , use:
pdbSet <material> <dopant> EORForwardReaction <trapped dopant> <n>
where r ADL is the capture radius. To change the capture radius, use:
pdbSet <material> <dopant> EORCaptureRadius <trapped dopant> <n>
DL
C max is proportional to the density of dislocation loops. It is defined as a term and is user
definable:
term name = EORDopantDL_Max <material> add eqn = {c}
The release rate for the mobile dopant and dislocation loop reaction is written as:
release
R ADL ≡ C ADL E ADL (462)
where E ADL is the emission rate of trapped mobile dopant from a dislocation loop. To change
it, use:
pdbSet <material> <dopant> EOREmissionRate <trapped dopant> <n>
The unfaulting of {311} defects in the presence of trapped mobile dopants is given as:
Unfold C A311
R A311 → ADL ≡ K D311 → DLoop s 311 -------------- (463)
C 311
where K D311 → DLoop is the unfaulting rate of {311} defects to dislocation loops and comes from
the Loop model (see Defect Cluster Model: Loop on page 315). s 311 is the size of {311} defect.
C AI BoronInt
C A311 B311
C ADL BDL
Initially, trapped dopants at EOR are set to zero. If there is an existing cluster concentration
field, the field is used. If there are amorphized regions, dopant–defect pairs and clusters are
redistributed in these regions. For details, see Dopant and Dopant-Defect Cluster Initialization
on page 302. In addition, you can initialize any of the cluster concentration fields using the
select command in the command file.
Defect Clusters
The available cluster models are None, Equilibrium, 311, Loop, LoopEvolution,
FRENDTECH, 1Moment, 2Moment, Full, and the model is selected with the command:
pdbSet <material> <defect> ClusterModel <model>
where <defect> is interstitial or vacancy, and <model> is one of the valid model names.
In some cases, multiple cluster equations must be switched on. The following command can be
used:
pdbSet <material> <defect> MultiClusterModel < < cluster model> <list> >
For example:
pdbSet Silicon Int MultiClusterModel { Full {1Moment} }
Loop {311} }
switches on the 1Moment model if the interstitial cluster model Full is selected. In the same
way, it will switch on the 311 model if the interstitial cluster model Loop is selected.
For example:
pdbSet Si Int ClusterModel Full
pdbSet Si Int MultiClusterModel Full {2Moment Loop}
In this model, seven equations are solved to describe the kinetics of self-interstitial clusters:
■ Three data fields (I2, I3, I4) describe small interstitial clusters (SMICs).
■ Two data fields (D311, density of {311} defects, and C311, density of interstitials bound
in {311} defects) describe the presence of {311} defects.
■ Two data fields (DLoop, density of dislocation loops, and CLoop, density of interstitials
bound in dislocation loops) describe dislocation loops.
where k b is the equilibrium constant, X is either interstitial or vacancy, 4 is the size of the
cluster, and C XC is the concentration of point-defect cluster. k b can be specified with:
pdbSet <material> <defect> KCluster {<n>}
NOTE The equilibrium cluster model is defined only for interstitials in silicon.
Nucleation of defects occurs during the implantation process. Initial distribution of defects
comes from the implant code (see Ion Implantation to Diffusion on page 340), in particular, all
interstitials created during the implantation process are assumed to be in immobile SmicS.
Vacancies and interstitials recombine or may form di-interstitials and di-vacancies. Some
interstitials will also form small interstitial clusters (SmicS, Smic) or {311} defects. The SMICs
dissolve to the surface through the release of interstitials. The capture and release of interstitials
on the {311} defects occur only at the end of the defects and, therefore, are proportional to the
number of defects D 311 .
V + V ↔ V2 (466)
2
RI = kf ( CI – BI CI ) (467)
2 form 2
2
RV = kf ( CV – BV CV ) (468)
2 form 2
where I 2 and V 2 are di-interstitials and di-vacancies, and B X2 is the binding coefficient
between the di-defect, for example, I 2 , and the base defect, I (where X refers to either I or V),
and k f is the forward reaction rate for the recombination of di-defects.
I2 + V ↔ I (469)
V2 + I ↔ V (470)
V2 + I2 ↔ 0 (471)
* * CI
RI = k f C I C V – C I C V -----*- (472)
2 rec
2 2
CI
* * C V
RV = k f C V C I – C V C I ------*- (473)
2 rec
2 2
C V
* *
RI = kf ( CI CV – CI CV ) (474)
2 V 2 rec 2 2 2 2
*
where C X is the equilibrium concentration of the respective defect or di-defect, and k f is the
forward reaction rate for the respective recombination process.
Aggregation or emission of interstitials from SmicS and Smic are given by:
SmicS + I ↔ ( SmicS + 1 ) (475)
3
This process increases the concentration of interstitials in SmicS by 1/cm .
Smic + I ↔ ( Smic + 1 ) (477)
3
This process increases the concentration of interstitials in Smic by 1/cm . k fI is the forward
reaction rate for SMIC–interstitial reactions, and B ISmicS and B ISmic are the binding
coefficients between interstitials and SMICs.
3
This process decreases the concentration of interstitials in SmicS by 1/cm .
Smic + V ↔ ( Smic – 1 ) (481)
3
This process decreases the concentration of interstitials in Smic by 1/cm .
SmicS + V 2 ↔ ( SmicS – 2 ) (483)
RV
2 SmicSrec
= k fV C V C SmicS
2 2
(484)
3
This process decreases the concentration of interstitials in SmicS by 2/cm .
Smic + V2 ↔ ( Smic – 2 ) (485)
RV
2 Smicrec
= k fV C V C Smic
2 2
(486)
3
This process decreases the concentration of interstitials in Smic by 2/cm . k fV and k fV2 are the
diffusion-limited SMIC–(di-)vacancy capture rates and are defined as:
k fV = 4πaD
V
0 (487)
k fV = 4πaD
V2
0 (488)
where D V0 and D V 0 are the diffusivities of neutral vacancies and di-vacancies, and a is the
2
lattice spacing of silicon.
A Smic is assumed to contain N size interstitials, with a default value of 4. A SmicS contain two
interstitials less than a Smic. A SmicS can be converted to a Smic by combining with a di-
interstitial. Formation of a Smic from a SmicS and bi-interstitials is given by:
SmicS + I 2 → Smic (489)
R Smicform = k fI C SmicS C I
2 2
(490)
3
This process increases the concentration of interstitials in Smic by N size /cm and decreases the
3
concentration of interstitials in SmicS by ( N size – 2) /cm . k fI2 is the forward reaction rate for
SMIC–di-interstitial reactions.
When a Smic combines with an additional di-interstitial, they form a {311} defect. Formation
of a new {311} defect from a Smic and bi-interstitials is given by:
I 2 + Smic → 311 (491)
R 311nIform = k nI C Smic C I
2 2
(492)
3
This process increases the concentration of {311} defects by 1/cm and the concentration of
3
interstitials in {311} defects by ( N size + 2) /cm , and deceases the number of interstitials in a
3
Smic by N size /cm . k nI2 is the reaction rate.
RC
311 Iem
= C 311 D Rate (494)
3
This process decreases the concentration of interstitials in {311} defects by 1/cm , but does
not change the number of {311} defects. The {311} defect simply became shorter. C 311 is the
concentration of interstitials in the {311} defects and D Rate is the decay rate.
RD
311 decay
= D 311 D Rate (496)
This process changes the number of {311} defects, but does not affect the number of
interstitials in the {311} defects. The interstitials released in this process immediately
aggregate on other {311} defects. D 311 is the concentration of {311} defects and D Rate is the
defect decay rate.
A set of 14 interstitials can nucleate at the end of a {311} defect. The formation or dissolution
of a {311} defect from interstitials is given by:
14I ↔ 311 (497)
3
This process increases the concentration of interstitials in {311} defects by 14 /cm ; the
number of defects remains unchanged. k fI is the forward reaction rate, R I is the capture
(reaction) range, and B D311 I is the binding coefficient between the {311} defect and the
interstitial.
A set of 14 di-interstitials can nucleate at the end of a {311} defect. The formation of two {311}
defects from seven bi-interstitials is given by:
14I 2 ↔ 311 (499)
3
This process increases the concentration of interstitials in {311} defects by 28 /cm ; the
number of defects remains unchanged. k fI2 is the forward reaction rate, R I2 is the capture
(reaction) range, and B D311 I2 is the binding coefficient between the {311} defect and the
interstitial.
A {311} defect can dissolve into interstitials or di-interstitials. The probability of this process
is proportional to the inverse length of the defect, which can be expressed as the ratio of the
concentration of defects and the concentration of interstitials in defects ( D 311 ⁄ C 311 ). Then, the
dissolution of {311} defects is given by:
D 311
RD
311 Iem
= D 311 14C Rate ----------- k fI R I B D I (501)
C 311 311
D 311
RD
311 I 2 em
= D 311 14C Rate ----------- k fI R I B D I (502)
C 311 2 2 311 2
This process does not change the number of free interstitials or the number of interstitials in
{311} defects. It is assumed that all interstitials were released from the defect aggregate in
other {311} defects. C Rate is the spontaneous combustion rate and gives the percentage of
interstitials dissolved from {311} defects by dissolution of all defects.
The following set of differential equations is solved with the {311} model. The point-defect
equations are:
∂C I
= – ∇•J I – R IV – 2R I form + R I rec – R V rec – R C Iform
∂t 2 2 2 311 (503)
+R C Iem – R ISmicSagg – R ISmicagg
311
∂C V
= – ∇•J V – R IV – 2R V form + R V rec – R I rec – R VSmicSrec – R VSmicrec (504)
∂t 2 2 2
∂C I
2
= ∇•( D I ∇C I ) + R I – RI – RI – R Smicform – R 311nIform – R C (505)
∂t 2 2 2 form 2 rec 2 V 2 rec 311 I 2 form
∂C V
2
= ∇•( D V ∇C V ) + R V – RV – RI – RV – RV (506)
∂t 2 2 2 form 2 rec 2 V 2 rec 2 SmicSrec 2 Smicrec
∂C SmicS
= – R VSmicSrec – 2R V SmicSrec + R ISmicSagg – R Smicform (507)
∂t 2
∂C Smic
= – R VSmicrec – 2R V Smicrec + R ISmicagg + R Smicform N Size + R 311nIform N Size (508)
∂t 2
∂C D
311
= – RD – RD – 2R D + R 311nIform (509)
∂t 311 decay 311 Iem 311 I 2 em
The equation for the concentration of interstitials in {311} defects is given by:
∂C C
311
= – RC + RC + 2R C + ( N size + 2 )R 311nIform (510)
∂t 311 Iem 311 Iform 311 I 2 fom
The initialization of {311} defect fields is given in Ion Implantation to Diffusion on page 340.
NOTE Even though the {311} model and the model parameters are given in
general format, they are defined only for silicon. If these models need to
be used in other materials, their parameters must be copied.
C 311 C311
D 311 D311
C Smic Smic
C SmicS SmicS
CI I2
2
CV V2
2
The defect-cluster concentrations I2, V2, C311, SmicS, Smic, and D311 are initialized in the
diffPreProcess procedure. The model assumes that all the free implant interstitials
(Int_Implant) are transferred to SmicS. Initially, other transient defect-cluster
concentrations are set to zero. If there is an existing cluster concentration field, the field is used.
By default, clusters are assumed to break apart in the amorphous regions. You can specify the
percentage of clusters retained in the amorphous region per cluster solution variable using the
parameter AmPercent:
pdbSet <mater> <cluster> AmPercent {<n>}
For example:
Direct Model
If the [Link] is set to Direct, the following reaction equations as well as the {311}
defect equations (see Defect Cluster Model: 311 on page 307) are solved:
∂C Loop
= K 311 C 311 + 2π 2 R Loop D Loop D 0 K CLoop ( C I – C ILoop
* ) (513)
∂t I
γΩ
--------- μbΩ 8R Loop
--------------------------------------------
- ln ----------------
bkT 4πR b
-
*
C ILoop ≡ C I* e e Loop kT ( 1 – υ ) (514)
∂D Loop 2D Loop
= K 311 D 311 – K DLoop -----------------
- (515)
∂t R
2
Loop
where:
■ K 311 is the unfaulting rate of {311} defects to dislocation loops.
■ R Loop is the average radius of loops.
■ D I0 is the diffusivity of neutral interstitials.
2
■ μ is the shear modulus (dyn/ cm ).
■ γ is the stacking fault energy (dyn/cm).
– 23
■ Ω is the atomic value of silicon ( 2 ×10 ).
■ υ is the Poisson ratio.
■ b is the magnitude of Burger’s vector.
■ K CLoop and K DLoop are fitting parameters for the model.
Size-dependent Model
If the [Link] is set to SizeDependent, the following reaction equations and the
{311} defect equations (see Defect Cluster Model: 311 on page 307) are solved:
∂C Loop 2
= K 311 C 311 C T + 2π 2 R Loop D Loop D 0 K CLoop ( C I – C ILoop
* ) (516)
∂t I
2 *
∂D Loop 2π 2 R Loop D Loop D 0 K CLoop C ILoop
I
= K 311 D 311 C 311 C T K D311 – ------------------------------------------------------------------------------------ (517)
∂t C Loop
where K D311 is the scaling factor for the unfaulting rate and can be defined using the command:
pdbSet <material> CLoop KD311 {<n>}
C T is the user-defined term to further modify the unfaulting rate and can be defined using the
command:
term name=CLoopTransfer <material> eqn = {User defined Equation}
The model is used to simulate all three phases of dislocation nucleation and evolution:
nucleation, Ostwald ripening, and dissolution.
*
To modify the equilibrium concentration of interstitials at the loop boundaries ( C ILoop ) by
complex prefactors, you can define the following terms in the command file:
term name=CLoopDissIntFactor silicon add eqn = { equation }
*
C ILoop increases dramatically as the loop radius becomes smaller. To avoid convergence
*
problems, C ILoop dFactor as follows:
is limited by a minimum loop radius ( R LoopMin ) and C Loop
*
C ILoop ( R LoopMin )C ILoop * ( R Loop ) dFactor
C Loop
*
C ILoop = ---------------------------------------------------------------------------------------- 1 – -
------------------------------------------ (518)
C ILoop ( R LoopMin ) + C ILoop ( R Loop )
* * C Loop + C Loop dFactor
The minimum radius and the damping factor are set with the commands:
pdbSet <material> CLoop RLoopMin {<n>}
pdbSet <material> CLoop DampFactor {<n>}
If the Loop model is used with the 2Moment model, to avoid convergence problems, the
interstitial evaporation terms in Eq. 556, Eq. 557, Eq. 558, and Eq. 559 are scaled by:
dFactor
C 311
R limit = 1 – --------------------------------------
- (519)
C 311dFactor + C 311
C Loop CLoop
D Loop DLoop
You can specify the percentage of loops retained in the amorphous region per solution variable
using the parameter AmPercent:
pdbSet <mater> DLoop AmPercent {<n>}
pdbSet <mater> CLoop AmPercent {<n>}
For example:
γΩ
--------- μbΩ 8R Loop
--------------------------------------------
- ln -----------------
bkT 4πR b
*
C ILoop ≡ C I* e e Loop kT ( 1 – υ ) (523)
where:
■ R Loop is the average loop radius.
■ D Loop is the loop density.
■ D I is the diffusivity of interstitials.
■ K CLoop is the fitting parameter.
2
■ μ is the shear modulus (dyn /cm ).
■ γ is the stacking fault energy (dyn/cm).
– 23
■ Ω is the atomic value of silicon ( 2 ×10 ).
■ υ is the Poisson ratio.
■ b is the magnitude of Burger’s vector.
∂R Loop π
= ------ K CLoop D I ( C I – C ILoop
* ) (524)
∂t N0
15 –2
where N 0 is the {111} planar density of silicon ( 1.57 × 10 cm ).
*
The equilibrium concentration of interstitials at the loop boundaries ( C ILoop ) increases
dramatically as the loop radius becomes smaller. To avoid convergence problems, R I is limited
by a minimum loop radius ( R LoopMin ) as follows:
R Loop Damp 0 ( 4.605 )
Damp 0 ≡ ----------------------- ; Damp ≡ --------------------------------------
R LoopMin Damp 0 + 4.605 (525)
– ( Damp )
R I ≡ R I ( R Loop ) ( 1 – e )
R Loop RLoop
Loops are produced in that portion of the structure where the interstitial concentration (due to
implant damage, before recombination) is in the range:
Dmax > Damage > Dmin (527)
The concentration of interstitials corresponding to the edge of the amorphous region is from
the work of Fair and Pappas [2]. The concentration of interstitials is not reduced by the
formation of end-of-range loops if DLoop is set to a constant value. Pre-existing dislocation
loops in the region are presumed to be destroyed by the implant.
NOTE In this model, CLoop and DLoop are terms. Therefore, they should be
converted to data fields with the select command or added to the plx/
DFISE list to save in a file.
In + 1 ↔ In + I (529)
where I n and I n + 1 are the interstitial defects consisting of n and n + 1 silicon atoms. The
reactions can be written as:
R1 ≡ kf CI – kr CI (530)
n–1 n–1 n n
R2 ≡ –( kf CI – kr CI ) (531)
n n n+1 n+1
∂C I
n
= R1 + R2 (532)
∂t
where:
■ D I0 is the diffusion coefficient of neutral interstitials.
*
■ C I is the equilibrium concentration of interstitials.
An – 1
■ ----------- is the capture efficiency of the defect.
R eff
■ E fn is its formation energy.
A
where C I is the concentration of interstitials. -------n- and E fn can be defined using the command:
R eff
pdbSet <material> Interstitial BindCluster <cluster> {<n>}
where <cluster> is a valid cluster name A (for example, I2, I3, I21) and <n> must be an
Arrhenius expression with a prefactor of -------n- and an activation energy of E fn .
R eff
For example:
pdbSet Silicon Interstitial BindCluster I6 {[Arrhenius 3.82578e-07 -1.29]}
A
sets the -------n- to 3.82578 x 10–7 eV and E fn to –1.29 eV for n = 6 .
R eff
Since cluster sizes can change easily from a few atoms to a few thousand atoms, it is not
feasible to solve all cluster equations. Therefore, the number of equations to be solved is
reduced by using the method proposed by FRENDTECH partners [39]. The method allows for
the logarithmic discretization of clusters:
–u –u
ρ ( u ) = – 1 + ------- ------- ( k F ρ u + α – k F ρ u – α )
d e e
dt 2 2α u+α u–α
–u –u
+ 1 – ------- ------- ( k R ρ u + α – k R ρ u – α )
e e
2 2α u+α u–α
– 2u (535)
e
+ ---------2- ( k F ρ u + α – 2k F ρ u + k F ρ u – α )
u+α u u–α
2α
– 2u
e
+ ---------2- ( k R ρ u + α – 2k R ρ u + k R ρ u – α )
u+α u u–α
2α
where ρ ( u ) is the density function, and α is the step of the logarithmic discretization. k Fu and
k Ru are related to the capture and emission rate k fn and k rn by the relations:
kF = kf
u u
(536)
n=e
kR = kr
u u
(537)
n=e
The discretization is regular on a regularities scale. For example, the step in the reduced region
is calculated by:
log ( n max ( – 1 ) ) – log ( n lastlin + 1 )
α = ------------------------------------------------------------------------------- (538)
n logsteps
where n max is the biggest cluster size, n lastlin is the number of small interstitial clusters in the
linear region, and n logsteps is the number of steps in the reduced region.
You can specify n max , n lastlin , and n logsteps using the following commands:
pdbSet <material> Int BiggestClusterSize {<n>}
pdbSet <material> Int NumberofSmallClusters {<n>}
pdbSet <material> Int logSteps {<n>}
For example:
pdbSet Silicon Int BiggestClusterSize 10000
pdbSet Silicon Int NumberofSmallClusters 11
pdbSet Silicon Int logSteps 5
allow Sentaurus Process to solve the cluster equations for I2, I3, I4, I5, I6, I7, I8, I9, I10,
I11, I12, I46, I177, I679, I2605, I10000.
The capture and emission rate k fn and k rn are stored in the parameter database for cluster sizes
less than 10. If you do not specify the rates for bigger clusters, they will be calculated using the
following formulas:
An 2
4πaL + 4πaW + 8πa
--------- = ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- (539)
R eff 2 2( L + a) 2 2( L + a)
log 1 + 1 + ------ – log ------ + log 1 + 1 + -------------------- – log --------------------
{ 311 } 2a 2a
W W W W
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2a 2 2( L + a) 2
--- 1 + ------ + ------------ 1 + --------------------
1 1
a W L+a W
2 2 2
μb L μb W ( sin θ )
E strain = ----------------------- log -------- + -------------- ( cos θ ) + ------------------ log ------
n 2W 2 2L
(540)
2π ( 1 – v ) b 2π 1 – v b
n+1 n
E fn = E strain + γ ⋅ ( n + 1 ) – E strain + γ ⋅ n (541)
where:
–9
■ L and W are the length and width of the {311} defect ( L = n ⋅ 5 × 10 cm and
–7
W = 4 × 10 cm).
■ a is the lattice spacing of silicon.
11
■ μ denotes the shear modulus of silicon ( μ = 7.55 × 10 dyn/cm).
■ v is the Poisson ratio ( v = 0.3 ).
–8
■ b is the length of Burger’s vector ( b = 1.1 × 10 cm).
■ θ is the angle between Burger’s vector and the normal vector perpendicular to the plane of
the defect ( θ = 77.8° ).
■ γ is the stacking fault energy per atom ( γ = 0.38 eV).
Burger’s vector and the stacking fault energy can be set using the commands:
pdbSet <material> C311 BurgersVec {<n>}
pdbSet <material> Int StackingFauldEng {<n>}
CI I2
2
CI I3
3
CI I10
10
For example:
Since not all clusters have been incorporated into the parameter database, the pdbSetDouble
command must be used; the shorthand pdbSet command cannot be used to specify these
parameters. The value specified for the AmPercent parameter must be between 0 and 1.
Interstitial
If you set the model to 1Moment, the model for the formation and dissolution of interstitial
clusters ({311} or {113} defects) is included. The 1Moment model uses a single equation to
calculate the total number of interstitials bound in clusters. The following nonlinear algebraic
equation along with the related diffusion equations are solved:
∂C ICluster
= R CI – R CV (543)
∂t
where C ICluster is the concentration of clustered interstitials, and R CI and R CV describe cluster
interaction with interstitials and vacancies, respectively.
The interstitial interaction includes two terms describing the clustering of interstitials and one
describing the de-clustering:
I fi I fc
( CI ) ( CI ) I cr
R CI = I kfi ----------------
- + I kfc -----------------
I sfi I sfc
( C ICluster + I kfci C I ) – I kr ( C ICluster ) (544)
( C I* ) ( C I* )
where R sIcl ( max + 1 ) is given in Defect Cluster Model: Full on page 333. The smallest large
cluster forms when the small cluster captures one free interstitial by the reaction rate
R sIcl ( max + 1 ) . The vacancy interaction includes one recombination and one generation term:
V rv
( CV ) V crv V sfv V cfv
- ( C ICluster )
R CV = V krv -------------------
V srv
– V kf ( C V* ) ( C ICluster ) (546)
( C V* )
To modify the dissolution rates I kr and V kf by complex prefactors, you can define the
following terms in the input file:
term name=IClusterDissIntFactor silicon add eqn = { equation }
term name=IClusterDissVacFactor silicon add eqn = { equation }
If the 1Moment model is used with the Full cluster model, Eq. 546 is modified as follows:
V rv
( CV ) V crv V sfv V cfv
R CV = ( max + 1 )R sIcV ( max + 1 ) + V krv -------------------
V srv
- ( C ICluster ) – V kf ( C V* ) ( C ICluster ) (547)
( C V* )
where R sIcV ( max + 1 ) is given in Defect Cluster Model: Full on page 333. It is the reaction rate
of small interstitial clusters with vacancies. The reaction constants of the model can be
modified using the following commands:
pdbSet <material> ICluster Ikfi {<n>}
pdbSet <material> ICluster Ikfc {<n>}
pdbSet <material> ICluster Ikr {<n>}
pdbSet <material> ICluster Ifi {<n>}
pdbSet <material> ICluster Isfi {<n>}
pdbSet <material> ICluster Ifc {<n>}
pdbSet <material> ICluster Isfc {<n>}
pdbSet <material> ICluster Icf {<n>}
pdbSet <material> ICluster Icr {<n>}
pdbSet <material> ICluster Ikfci {<n>}
pdbSet <material> ICluster Vkrv {<n>}
pdbSet <material> ICluster Vrv {<n>}
pdbSet <material> ICluster Vsrv {<n>}
pdbSet <material> ICluster Vcrv {<n>}
pdbSet <material> ICluster Vkfv {<n>}
pdbSet <material> ICluster Vsfv {<n>}
pdbSet <material> ICluster Vcfv {<n>}
C ICluster ICluster
Vacancy
If you set the model to 1Moment, the model for the formation and dissolution of vacancy
clusters or voids is included. The 1Moment model uses a single equation to calculate the total
number of vacancies bound in clusters. The following nonlinear algebraic equation along with
the related diffusion equations are solved:
∂C VCluster
= R CV – R CI (548)
∂t
where C VCluster is the concentration of clustered vacancies, and R CV and R CI describe cluster
interaction with vacancies and interstitials, respectively.
The vacancy interaction includes two terms describing the clustering of vacancies and one
describing the declustering:
V fi V fc
( CV ) ( CV ) V cr
R CV = V kfi ------------------
V sfi
- ( C VCluster + V kfci C V ) – V kr ( C VCluster )
- + V kfc ------------------
V sfc
(549)
( C V* ) ( C V* )
where R sVcl ( max + 1 ) is given in Defect Cluster Model: Full on page 333. The smallest large-
cluster forms when the small cluster captures one free vacancy by the reaction rate
R sVcl ( max + 1 ) .
The interstitial interaction includes one recombination and one generation term:
I rv
( CI ) I crv I sfv I cfv
- ( C VCluster ) – I kf ( C I* ) ( C VCluster )
R CI = I krv -----------------
I srv
(551)
( C I* )
To modify the dissolution rates V kr and I kf by complex prefactors, you can define the following
terms in the command file:
term name=VClusterDissVacFactor silicon add eqn = { equation }
term name=VClusterDissIntFactor silicon add eqn = { equation }
If the 1Moment model is used with the Full cluster model, Eq. 551 is modified as follows:
I rv
( CI ) I crv I sfv I cfv
R CI = ( max + 1 )R sVcI ( max + 1 ) + I krv -----------------
- ( C VCluster ) – I kf ( C I* ) ( C VCluster )
I srv
(552)
( CI ) *
where R sVcI ( max + 1 ) is given in Defect Cluster Model: Full on page 333. It is the reaction rate of
small vacancy clusters with interstitials. The reaction constants of the model can be modified
using the following commands:
pdbSet <material> VCluster Vkfi {<n>}
pdbSet <material> VCluster Vkfc {<n>}
pdbSet <material> VCluster Vkr {<n>}
pdbSet <material> VCluster Vfi {<n>}
pdbSet <material> VCluster Vsfi {<n>}
pdbSet <material> VCluster Vfc {<n>}
pdbSet <material> VCluster Vsfc {<n>}
pdbSet <material> VCluster Vcf {<n>}
pdbSet <material> VCluster Vcr {<n>}
pdbSet <material> VCluster Vkfci {<n>}
pdbSet <material> VCluster Ikrv {<n>}
pdbSet <material> VCluster Irv {<n>}
pdbSet <material> VCluster Isrv {<n>}
pdbSet <material> VCluster Icrv {<n>}
pdbSet <material> VCluster Ikfv {<n>}
pdbSet <material> VCluster Isfv {<n>}
pdbSet <material> VCluster Icfv {<n>}
C VCluster VCluster
The initial concentration of interstitial clusters or vacancy clusters after implantation is set in
the diffPreProcess procedure (see Ion Implantation to Diffusion on page 340) and can be
changed using the parameter InitPercent as follows:
pdbSet <material> ICluster InitPercent {<n>}
pdbSet <material> VCluster InitPercent {<n>}
InitPercent is the percentage of free implant interstitials used to initialize the model, for
example:
The value of InitPercent must be between 0 and 1. The model assumes that existing
interstitial or vacancy clusters in the amorphized region break apart.
Interstitial
If you set the model to 2Moment, the model for the formation and dissolution of interstitial
clusters ({311} or {113} defects) and conversion of {311} clusters into dislocation loops are
included [39]. The model calculates the first two moments of the size distribution of interstitial
clusters, in other words, the number of clusters and the number of interstitials contained in the
clusters. It can be used with the existing model for dislocation loops (LoopEvolution),
although it is designed to include modeling of at least some dislocation loops.
∂D 311 2 *
= D I λ 0 ( C I – D 311 C Ii C s γ 0 ) (555)
∂t
∂C 311 ∂D 311 *
= 2 + D λ 1 D 311 ( C I – C s C Ii γ 1 ) (556)
∂t ∂t I
where C I and D I are the concentration and diffusivity of free interstitials. If the 2Moment
model is used with the Full cluster model, Eq. 555 and Eq. 556 are modified as follows:
∂D 311 *
= R sIcl ( max + 1 ) – R sIcV ( max + 1 ) – D I λ 0 D 311 C Ii C s γ 0 (557)
∂t
∂C 311 *
= ( max + 1 ) ( R sIcl ( max + 1 ) – R sIcV ( max + 1 ) ) + D I λ 1 D 311 ( C I – C s C Ii γ 1 ) (558)
∂t
C s γ 0 , which gives the dependence of the dissolution rate on the average cluster size, is given
by:
K1
C ss ----------
-
s–1 s < n crit
Cs γ0 = (559)
1 α
C K ---------- s > n crit
sl 3 s – 1-
where:
■ K 1 controls the dissolution of two atom clusters.
■ s = C 311 ⁄ D 311 is the average number of interstitials in a cluster.
C s γ 1 , which gives the dependence of the rate of interstitial release on the average cluster size,
is given by:
s–2 ( K 0 + 2 )K 2
C ss --------------- 1 + ---------------------------
s + K 0 s + K0 s < n crit
Cs γ1 = (560)
K 0 + 2
α s > n crit
C sl 1 + K 4 ---------------
s + K0
where K 3 and K 4 are chosen to make C s γ 0 and C s γ 1 continuous at s = n crit . C ss ,C sl are the
solid solubility of smaller and larger clusters.
To modify C s γ 0 and C s γ 1 by complex prefactors, you can define the following terms in the
command file:
term name=C311DissIntFactor silicon add eqn = { equation }
Eq. 555 models the nucleation and dissolution of two-atom clusters. λ 0 is the capture length
for these processes.
Eq. 556 models the absorption and release of interstitials by clusters. The three terms on the
right side model the absorption of interstitials during nucleation, the absorption of interstitials
by nucleated clusters, and the release of interstitials by nucleated clusters. λ 1 is the capture
*
length for absorption and release of interstitials by nucleated clusters. C Ii C ss is the
concentration of interstitials in equilibrium with a population of large {311} clusters.
For s > n crit , some of the {311} defects unfault to form dislocation loops. These dislocation
loops are included in the 2Moment model by modifying the cluster dissolution rates. α
*
controls the dissolution rate when loops are present, and C Ii C sl is the concentration of
interstitials in equilibrium with a population of large dislocation loops, C Ii C sl .
C 311 C311
D 311 D311
Vacancy
If you set the model to 2Moment – the model for the formation and dissolution of vacancy
clusters – the model calculates the first two moments of the size distribution of vacancy
clusters, that is, the number of clusters and the number of vacancies contained in the clusters.
∂D void 2 *
= D V λ 0 ( C V – D void C Vi C s γ 0 ) (561)
∂t
∂C void ∂D void *
= 2 + D λ 1 D void ( C V – C s C Vi γ 1 ) (562)
∂t ∂t V
If the 2Moment model is used with the Full cluster model, Eq. 561 and Eq. 562 are modified
as follows:
∂D void *
= R sVcl ( max + 1 ) – R sVcI ( max + 1 ) – D V λ 0 D void C Vi C s γ 0 (563)
∂t
∂C void *
= ( max + 1 ) ( R sVcl ( max + 1 ) – R sVcI ( max + 1 ) ) + D V λ 1 D void ( C V – C s C Vi γ 1 ) (564)
∂t
C s γ 0 , which gives the dependence of the dissolution rate on the average cluster size, is given
by:
K1
C s γ 0 = C ss ----------- (565)
s–1
where:
■ K 1 controls the dissolution of two atom clusters.
■ s = C void ⁄ D void is the average number of vacancies in a cluster.
C s γ 1 , which gives the dependence of the rate of vacancy release on the average cluster size, is
given by:
s–2 ( K 0 + 2 )K 2
C s γ 1 = C ss --------------- 1 + --------------------------- (566)
s + K0 s + K0
To modify C s γ 0 and C s γ 1 by complex prefactors, you can define the following terms in the
command file:
term name=CVoidDissVacFactor silicon add eqn = { equation }
Eq. 561 models the formation and dissolution of di-vacancy clusters. λ 0 is the capture length
for these processes.
Eq. 562 models the absorption and release of vacancies by clusters. The three terms on the right
side model the absorption of vacancies during di-vacancy cluster formation, the absorption of
vacancies by clusters, and the release of vacancies by clusters. λ 1 is the capture length for
*
absorption and release of vacancies by clusters. C Vi C ss is the concentration of vacancies in
equilibrium with a population of large vacancy clusters.
C void CVoid
D void DVoid
The initial concentration of interstitial clusters after implants is set in the diffPreProcess
procedure (see Ion Implantation to Diffusion on page 340). By default, clusters are assumed to
break apart in the amorphous regions. You can specify the percentage of clusters retained in the
amorphous region per cluster solution variable using the parameter AmPercent:
pdbSet <material> C311 AmPercent {<n>}
pdbSet <material> D311 AmPercent {<n>}
pdbSet <material> CVoid AmPercent {<n>}
pdbSet <material> DVoid AmPercent {<n>}
For example:
Interstitial
If you set the defect cluster model to Full, the TS4 style transient small interstitial cluster
model is used. The reactions associated with the size-n small interstitial cluster is as follows:
In – 1 + I ↔ In (568)
In + I ↔ In + 1 (569)
In + V ↔ In – 1 (570)
In + 1 + V ↔ In (571)
I n denote the n-size interstitial small cluster; I, V are the interstitials and vacancies. The
transient equation for the n-size small interstitial cluster is:
∂C n
= R cI ( n ) – R cV ( n ) 2 ≤ n < n max (572)
∂t
R cV ( n ) = R cV ( ( n ) → ( n – 1 ) ) – R cV ( ( n + 1 ) → ( n ) ) (574)
(n) CI (n)
R cI ( ( n – 1 ) → ( n ) ) = k fi C I ( n – 1 ) -----*- – k ri C I ( n ) (575)
CI
(n + 1) CI (n + 1)
R cI ( ( n ) → ( n + 1 ) ) = k fi C I ( n ) -----*- – k ri CI ( n + 1 ) (576)
CI
(n) CV (n)
R cV ( ( n ) → ( n – 1 ) ) = k rv C I ( n ) ------*- – k fv C I ( n – 1 ) (577)
CV
(n + 1) CV (n + 1)
R cV ( ( n + 1 ) → ( n ) ) = k rv C I ( n + 1 ) ------*- – k fv CI ( n ) (578)
CV
here:
n –z
f nz k I z ----
( n)
* i
k fi = C Ii n>2 (579)
n i
z
*2
C Ii n –( z + q )
f k k ----
(2)
* 2qz I z I q n
i
k fi = -------- n = 2 (580)
C I z, q i
n –z
k ri = C Ii r nz k I z ----
(n) * i
n>2 (581)
n i
z
n –( z + q )
k ri = C Ii r 2qz k I z k I q ----
(2) * i
n i
n = 2 (582)
z, q
n –z
k fv = C Vi f nz k V z ----
(n) * v
n>2 (583)
n i
z
* *
C Ii C Vi n –z
f k ----
(2)
* 2z V z n
v
k fv = ---------------
- n = 2 (584)
CI z
i
n –z
k rv = C Vi r nz k V z ----
(n) * v
n i
(585)
z
i v i v
The reaction rate constants, f = k fI, f = k fV, r = k rI ,r = k rV , can be set using the
commands:
pdbSet Si I2 kfI {<i,j>} {<n>}
pdbSet Si I2 krI {<i,j>} {<n>}
pdbSet Si I2 kfV {<i>} {<n>}
pdbSet Si I2 krV {<i>} {<n>}
pdbSet Si I3 kfI {<i>} {<n>}
pdbSet Si I3 krI {<i>} {<n>}
pdbSet Si I3 kfV {<i>} {<n>}
pdbSet Si I3 krV {<i>} {<n>}
pdbSet Si I4 kfI {<i>} {<n>}
pdbSet Si I4 krI {<i>} {<n>}
pdbSet Si I4 kfV {<i>} {<n>}
pdbSet Si I4 krV {<i>} {<n>}
pdbSet Si I5 kfI {<i>} {<n>}
The indices i and j are integers representing the charge state of interstitials and reacting
interstitials. The shorthand pdbSet command can be used for clusters up to size 5. For all other
clusters, the longhand pdbSetDoubleArray command must be used.
NOTE The indices for the parameters kfI and krI for I2 clusters have the form
i, j . The indices are separated by a comma; no space is allowed between
the indices.
If you want to use same reaction rate constants for all charges, use the command:
pdbSet Si Int [Link] {1|0}
If [Link] is set to 1, the model uses the 0th indexed reaction rate constants (for example,
kfI(0,0) or kfI(0), krV(0) and so on) in the reaction calculation for all charged states.
To modify k ri and k fv by complex prefactors, you can define the following terms in the
command file, for example, for I2:
term name=I2DissIntFactor silicon add eqn = { equation }
term name=I2DissVacFactor silicon add eqn = { equation }
The net capture rate of free interstitials by the small interstitial clusters is given by:
max
The net capture rate of free vacancies by the small interstitial clusters is given by:
max
CI I2
2
CI I3
3
CI I4
4
CI I5
5
Vacancy
If you set the defect cluster model to Full, the TSUPREM-4-style transient small-vacancy
cluster model is used. The reactions associated with the n -size small interstitial cluster are:
Vn – 1 + V ↔ Vn (588)
Vn + V ↔ Vn + 1 (589)
Vn + I ↔ Vn – 1 (590)
Vn + 1 + I ↔ Vn (591)
where V n denotes the n -size small vacancy cluster, and I, V are the interstitials and vacancies.
The transient equation for the n -size small vacancy cluster is:
∂C n
= R cV ( n ) – R cI ( n ) 2 ≤ n < n max (592)
∂t
R cI ( n ) = R cI ( ( n ) → ( n – 1 ) ) – R cI ( ( n + 1 ) → ( n ) ) (594)
(n) CV (n)
R cV ( ( n – 1 ) → ( n ) ) = k fv C V ( n – 1 ) ------*- – k rv C v ( n ) (595)
CV
(n + 1) CV (n + 1)
R cV ( ( n ) → ( n + 1 ) ) = k fv C V ( n ) ------*- – k rv CV ( n + 1 ) (596)
CV
(n) CI (n)
R cI ( ( n ) → ( n – 1 ) ) = k ri C V ( n ) -----*- – k fi C V ( n – 1 ) (597)
CI
(n + 1) CI (n + 1)
R cI ( ( n + 1 ) → ( n ) ) = k ri C V ( n + 1 ) -----*- – k fi CV ( n ) (598)
CI
here:
n –z
f nz k V z ----
(n)
* i
k fv = C Vi n>2 (599)
n i
z
*2
C Vi n –( z + q )
f k k ----
(2)
* 2qz V z V q n
i
k fv = -------- n = 2 (600)
C V z, q i
n –z
k rv = C Vi r nz k V z ----
(n) * i
n>2 (601)
ni
z
n –( z + q )
k rv = C V r 2qz k V z k V q ----
(2) * i
i n i
n = 2 (602)
z, q
n –z
= C Ii f nz k I z ----
( n) * i
k fi n>2 (603)
n i
z
* *
C Ii C Vi n –z
- f 2z k I z ----
(2) i
k fi = ---------------
* n i
n = 2 (604)
CV z
n –z
k ri = C Ii r nz k I z ----
(n) * i
n i
(605)
z
v i v i
The reaction rate constants, f = k fV, f = k fI, r = k rV ,r = k rI , can be set using the
commands:
pdbSet Si V2 kfV {<i,j>} {<n>}
pdbSet Si V2 krV {<i,j>} {<n>}
pdbSet Si V2 kfI {<i>} {<n>}
pdbSet Si V2 krI {<i>} {<n>}
pdbSet Si V3 kfV {<i>} {<n>}
pdbSet Si V3 krV {<i>} {<n>}
pdbSet Si V3 kfI {<i>} {<n>}
pdbSet Si V3 krI {<i>} {<n>}
pdbSet Si V4 kfV {<i>} {<n>}
pdbSet Si V4 krV {<i>} {<n>}
pdbSet Si V4 kfI {<i>} {<n>}
pdbSet Si V4 krI {<i>} {<n>}
pdbSet Si V5 kfV {<i>} {<n>}
pdbSet Si V5 krV {<i>} {<n>}
pdbSet Si V5 kfI {<i>} {<n>}
pdbSet Si V5 krI {<i>} {<n>}
pdbSet Si V6 kfV {<i>} {<n>}
The indices i and j are integers representing the charge state of vacancies and reacting
vacancies. The shorthand pdbSet command can be used for clusters up to size 8. For all other
clusters, the longhand pdbSetDoubleArray command must be used.
NOTE The indices for the parameters kfV and krV for V2 clusters have the
form of i, j . The indices are separated by a comma; no space is allowed
between the indices.
If you want to use same reaction rate constants for all charges, use the command:
pdbSet Si Vac [Link] {1|0}
If [Link] is set to 1, the model uses the 0th indexed reaction rate constants (for example,
kfV(0,0) or kfV(0), krI(0) and so on) in the reaction calculation for all charged states.
To modify k rv and k fi by complex prefactors, you can define the following terms in the
command file, for example, for V2:
term name=V2DissVacFactor silicon add eqn = { equation }
term name=V2DissIntFactor silicon add eqn = { equation }
The net capture rate of free vacancies by the small vacancy clusters is given by:
max
The net capture rate of free interstitials by the small vacancy clusters is given by:
max
CV V2
2
CV V3
3
CV V4
4
CV V5
5
CV V6
6
CV V7
7
CV V8
8
The initial concentration of interstitial or vacancy clusters after implantation is set in the
diffPreProcess procedure (see Ion Implantation to Diffusion on page 340). By default,
clusters are assumed to break apart in the amorphous regions. You can specify the percentage
of clusters retained in the amorphous region per cluster solution variable using the parameter
AmPercent:
pdbSet <material> <cluster> AmPercent {<n>}
For example:
In addition, you can specify the initial concentration of interstitial or vacancy clusters after
implantations by using the parameter InitPercent as follows:
pdbSet <material> <cluster> InitPercent {<n>}
The parameter InitPercent is the percentage of free implant interstitials or vacancies used
to initialize the model, for example:
Int_Implant and Vac_Implant represent the total number of interstitial and vacancy point-
defects coming from the ion implantation. Since it is possible that the point defects already
exist in the structure or amorphization occurred due to ion implantation, the point-defect fields
must be updated before any diffusion step.
Sentaurus Process calls a default procedure, diffPreProcess, to process these fields. The
main goal of the procedure is to process the point-defect fields and to store the processed fields
in the Interstitial and Vacancy data fields. These data fields represent the total number
of interstitials and vacancies that will be used to initialize the total number of unpaired
interstitials (Int) and vacancies (Vac) (see Initializing Solution Variables on page 342):
First, interstitials and vacancies from implants (Int_Implant, Vac_Implant) are added to
existing Interstitial and Vacancy fields in the crystalline regions. If the fields do not
exist, they are created and set to their equilibrium values.
The Damage field is used to determine whether the material is amorphized. The threshold value
for the amorphization can be set by:
pdbSet <material> AmorpDensity {<n>}
It is assumed that if a material amorphizes due to ion implantation, the amorphized portion of
the material will grow to a perfect crystalline material and point-defect densities in this region
will be equal to their thermal equilibrium values (see Eq. 611). If a material is an amorphized
material (that is, polysilicon), the point-defect densities in this material are set automatically to
their equilibrium values.
The abovementioned amorphization algorithm leads to very steep interstitial profiles at the
amorphous–crystalline boundary. This boundary can be softened using an error function. The
degree of smoothing can be controlled using the parameter AmorpGamma, that is:
pdbSet <material> AmorpGamma {<n>}
The value of this parameter must be between 0 and 1, where 1 means a very steep transition.
Smoothing also will be applied to dopant profiles if the transient or cluster model is selected.
To find out whether a material is amorphous, use the commands:
pdbGet <material> Amorphous
pdbSet <material> Amorphous 1 or 0
When the point-defect concentrations are set to their equilibrium values in the amorphous
regions, their densities in non-amorphous regions are compared to the solid solubility values
of these defects in each material. If the solid solubility values are defined, the defect profiles
are cut off at the solid solubility values. To specify the solid solubility numbers for the
Interstitial and Vacancy fields, use:
pdbSet <material> Int TotSolubility {<n>}
pdbSet <material> Vac TotSolubility {<n>}
However, the interstitial point-defect equation will be solved for the same dopant diffusion
models if the oxidation is switched on and dopants are present in the structure. Both point-
defect equations are solved if the dopant diffusion models are set to Pair, React,
ChargedPair, or ChargedReact in any material.
Although it is not recommended, you may want to switch on or off the point-defect equations
for any chosen dopant diffusion model. In this case, use the commands:
pdbSetBoolean Defect Int ForcedTurnOff 1
pdbSetBoolean Defect Vac ForcedTurnOff 1
pdbSetBoolean Defect Int ForcedTurnOn 1
pdbSetBoolean Defect Vac ForcedTurnOn 1
NOTE These parameters are not in the parameter database and are provided for
advanced users.
where <model> is either None or Equilibrium. The default is None and follows the
initialization procedure previously explained in Initializing Solution Variables on page 342.
The Equilibrium model sets the unpaired total interstitial (Int) and vacancy (Vac)
*
concentrations to the user-defined equilibrium values, C X (see Eq. 150, p. 203).
The diffPreProcess procedure also initializes the fluorine model (see Initializing the
FVCluster Model on page 293), the active dopant models Cluster and Transient (see
Initializing Transient Model on page 285), the {311} defect-clustering model (see Initializing
311 Model on page 314), and the 1Moment defect-clustering model (see Initializing 1Moment
Model on page 328).
When the preprocessing of the data fields is completed, most implant fields are deleted.
Sentaurus Process also calls the diffPostProcess procedure as soon as diffusion has
finished. In this procedure, remaining implant fields are cleared and total defect concentrations
are stored for use with the next diffusion command during initialization.
You also can define special callback procedures to initialize solution variables in different
ways. This section covers the callback procedures and the keywords used by Sentaurus Process
to initialize solution variables.
No nonlinear or partial differential equations are solved to initialize dopant solutions. Dopant
data fields generated during implantation are simply added to existing ones. For example, if
you select the dopant diffusion model React (see React Diffusion Model on page 204), there
is no contribution to the dopant–defect pair fields from the implant. However, you can use the
select command to distribute dopants among the other fields as required.
Conversely, Sentaurus Process uses callback procedures (see Using Callback Procedures on
page 574) to initialize the total number of unpaired interstitials (Int) and vacancies (Vac),
which are used as solution names. Since extra dopant–defect equations are not solved for the
Pair, ChargedPair, or ChargedFermi dopant diffusion models, transferring all point
defects from implantation to their respective solution names may cause an artificial increase of
dopant–defect pairs in the structure. To prevent this artificial dopant–defect pair increase,
defects from implantation must be added to the total interstitials and vacancies.
There are two main callback procedures to initialize solution variables: InitSolve and
EquationInitProc. To initialize a solution variable, the keyword InitStep must be
defined with the solution variable. This is different from the typical use of callback procedures
(see Using Callback Procedures on page 574):
pdbSetString <material> <solution> InitSolve <callback procedure>
pdbSetString <material> <solution> EquationInitProc <callback procedure>
The procedures take three arguments: a material, a solution, and the name of the callback
procedure. For example, the command:
pdbSetString Si Int InitSolve ResetInt
‘informs’ the code to invoke the ResetInit procedure every time that solutions are checked.
This is usually performed at the very beginning of a diffusion step.
When a solution variable requires initialization, Sentaurus Process searches for whether the
EquationInitProc callback procedure is used for the solution name. If it is used, Sentaurus
Process executes the procedure given with the command. Otherwise, you must provide the
initialization equation. The command:
pdbSetString Si Int EquationInitProc InitializeInt
‘informs’ Sentaurus Process to call the procedure InitializeInt before parsing the
initialization equation for the solution Int.
In this case, the initialization equation for the solution name Int will be set to Int-1e17=0.
17
When the initialization is completed, Int will have the value of 1 × 10 in the specified
material. This is a trivial example, but you can define any valid equation in this procedure.
For example, the default initialization equation for Int in Sentaurus Process, which can change
depending on the dopants and diffusion models, can be:
Interstitial - (Int + (I0 * BActive * (( [expr [Arrhenius 5.68 0.48] * \
[pdbGetDouble Si Boron Int Binding] ] + [expr 0.0 * \
[pdbGetDouble Si Boron Int Binding] ] * Noni) * Noni + ( \
where I0, BActive, Noni, and Poni are a function of the solution Int.
Boundary Conditions
Different boundary conditions can be selected in Sentaurus Process:
■ HomNeumann
■ Natural
■ Segregation
■ Dirichlet
■ ThreePhaseSegregation
■ Trap
■ Trapgen
■ Continuous
Even though you can select any boundary conditions, they should be used with appropriate
species. It is possible to set a general boundary condition for all dopants or a specific boundary
condition for a single species, for example:
pdbSet Oxide_Silicon Boundary BoundaryCondition HomNeumann
pdbSet Oxide_Silicon Int BoundaryCondition Dirichlet
The first line switches the boundary condition for dopants at an oxide–silicon interface from
its default Segregation boundary condition to the HomNeumann boundary condition. The
second line sets the boundary condition at the oxide–silicon interface for interstitials to the
Dirichlet boundary condition.
HomNeumann
It is assumed that there are no fluxes and transfers across the interface. This is chosen by default
at the left, right, and bottom boundaries, and can be applied to any boundary.
Natural
This is the default boundary condition for point defects at gas–silicon and oxide–silicon
interfaces. The normal flux across an outer surface is given by:
*
j • n = h(C – C ) (613)
*
where h is the surface recombination rate, and C and C are the concentration of interstitials
or vacancies and equilibrium concentration of interstitials and vacancies, respectively. The
equilibrium concentration of point defects at the surface can be modified using user-defined
parameters (see Modifying Point-Defect Equilibrium Values at Surface on page 348). There
are four surface recombination velocity models:
■ PDependent
■ InitGrowth
■ Simple
■ Normalized
where:
■ <interface material> is an interface material name (see Material Specification on
page 50).
■ <defect> is either Interstitial or Vacancy.
■ <model> is one of the model names.
In each case, the surface recombination rate depends on the motion of the interface due to
oxidation.
The PDependent model is the pressure-dependent surface recombination model. The flux that
takes into account the interstitial injection during oxidation is given by:
V k pow k
ppow
j • n = k s 1 + k Rat --------------
ox *
- Po ( C 0 – C 0 ) – G ox (614)
V Scale X X
where:
■ k s is the surface recombination rate.
■ G ox is the generation rate.
■ P o is the oxygen partial pressure.
■ V ox is the local oxidation rate (ReactionSpeed).
■ V Scale is the reference oxidation rate for bare, undoped silicon.
■ k Rat , k pow , and k ppow are model parameters.
G pow , G gpow , and υ are model parameters to adjust the interstitial injection during oxidation.
G Scale is the scaling factor for the generation rate and given by:
C Xi *
G 0 = --------- (617)
CX
mm + m + 1 + p + pp
G 1 = --------------------------------------------------------------------------------------------------------------------------------------------------------
2PotOx PotOx
- (618)
p PotOx p 2PotOx
mm ---- + m ---- + 1 + p ---- + pp ----
n n
n i n i n i n i
G low , PotOx , mm , m , p , and pp are model parameters that can be modified with the
commands:
pdbSet <interface material> <defect> PotOx {<n>}
pdbSet <interface material> <defect> mm {<n>}
pdbSet <interface material> <defect> m {<n>}
pdbSet <interface material> <defect> p {<n>}
pdbSet <interface material> <defect> pp {<n>}
pdbSet <interface material> <defect> Glow {<n>}
The Simple model takes into account the interstitial injection through total free and
equilibrium point-defect concentrations during oxidation. The recombination flux is given by:
V
j • n = k s 1 + k Rat --------------
ox *
- ( C – C X ) – G ox (619)
V Scale X
V ox G pow
G ox = θL den V ox --------------- G Scale (622)
V Scale
The equilibrium value of point defects at the interface can be enhanced as follows:
* V ox Pox
= C X 1 + F ox G 1 -------------
*
CX
(623)
Enhanced
V ref
V ref , F ox , and P ox are model parameters that can be modified with the commands:
pdbSet <interface material> <defect> VrefRate {<n>}
pdbSet <interface material> <defect> Fox {<n>}
pdbSet <interface material> <defect> Pox {<n>}
Segregation
This is the default boundary condition for dopants. The total dopant fluxes at the interfaces are
balanced. The fluxes are assumed to be proportional to the deviation from the segregation
equilibrium. The fluxes are given by:
b
a C
j • n = h C A – ------A- (624)
s
where:
a
■ C A is the concentration of dopant on one side of the interface.
b
■ C A is the concentration of dopant on the other side of the interface.
■ h is the transfer rate.
■ s is the segregation rate of dopant A .
If the charge states of the dopants must be included or the boundary condition for dopant defect
pairs must be set, use the command:
pdbSet <interface material> <dopant> [Link] <diffmodel> <model>
where:
■ <interface material> is an interface material name (see Material Specification on
page 50).
■ <dopant> is a valid dopant name.
■ <diffmodel> is the Constant or Fermi or ChargedFermi or Pair or ChargedPair
or React or ChargedReact dopant diffusion model.
■ <model> is either Default or PairSegregation.
If the surface recombination model is set to Default for any dopant diffusion model, the
segregation fluxes are given by:
b
a CA
j • n = k Transfer C A – ----------------------------
- (625)
k Segregation
If the surface recombination model is set to PairSegregation for the Constant, Fermi,
ChargedFermi, Pair, or ChargedPair diffusion models, the segregation fluxes are given
by:
a n z
C A ----
b a n z
n i
j • n = k Transfer k rate k rate CA ---- – ----------------------------
a a
- (626)
n i b k Segregation
C *0 C 0
*
k rate = f I ------*-
a⁄b I V
+ ( 1 – f I ) -------- (627)
*
C I0 a⁄b
C 0
V a ⁄ b
where f I is the intertitial fraction of dopant trapping in equilibrium and can be set using the
following command:
pdbSet <interface material> <dopant> [Link] {<n>}
To use the total unpaired interstitial concentration, instead of the neutral one, use the command:
pdbSet <interface material> <dopant> UseUnpairedTotalInt { 1|0 }
a
If the dopant diffusion model is not Pair or ChargedPair model on interface side a , k rate is
b
set to 1. If the same is true for interface side b , k rate is set to 1.
b n z
C AI ----
b a n z n i
j • n = k Transfer k AIrate [ C 0 ] C ---- – -------------------------------------------------------------------
a * b
(629)
I A n
n –z
i a k Segregation k AIz k I z ---- b b
n i
b
z
n z
C AV ----
b
b a n z n i b
j • n = k Transfer k AVrate [ C 0 ] C ---- – ---------------------------------------------------------------------
a *
- (630)
V A n
n – z
i a k Segregation k AV z k V z ---- b b
n i
b
z
a fI a
k AIrate = --------------b- k rate (631)
*
[C 0]
I
a 1 – fI a
k AVrate = ---------------b- k rate (632)
*
[C 0]
V
To use the total unpaired interstitial and vacancy concentrations, Eq. 631 and Eq. 632 will be:
–c
kI n----i
n
c
a fI c a
k AIrate = --------------b- ---------------------------
-k rate (633)
k Ic
* s
[C 0]
I
c
–c
kV ---n-i
n
c
a 1 – fI c a
k AVrate = ---------------b- -----------------------------
- k rate (634)
k Vc
* s
[C 0]
V
c
Dirichlet
The Dirichlet boundary condition can be used with both point defects and dopants. However,
it can be set only at gas and any other material interfaces for dopants. In this way, ‘in-diffusion’
for a dopant can be simulated using the Dirichlet boundary condition. If the Dirichlet boundary
condition is selected, the defect or dopant concentration at the boundary is set to its equilibrium
value. The equilibrium value can be specified with:
pdbSet <material> <dopant|defect> Cstar <n>
where:
■ <material> is a material name (see).
■ <dopant> is a valid dopant name.
■ <defect> is Interstitial or Vacancy.
■ Cstar is the equilibrium value of the solution variable.
If the Dirichlet boundary condition is selected and the oxidation is switched on, the modified
Dirichlet boundary condition is used for interstitials. The equilibrium value of interstitial point-
defects at the interface is enhanced (see Modifying Point-Defect Equilibrium Values at Surface
on page 348) and the new equilibrium at the interface becomes:
* V ox P ox
= C 0 1 + F ox G 1 -------------
*
C
(635)
V ref
0
I ox I
ThreePhaseSegregation
Dose loss during diffusion can be modeled with three-phase segregation in Sentaurus Process.
Dopants can segregate from both silicon and oxide to the silicon–oxide interface where they
are considered inactive. The model in Sentaurus Process is based on the original model by Lau
et al. [40], and Oh and Ward [41]. The diffusion equation at the interface is given by:
∂C A
= ∇D 0 ∇C A + F a + F b (636)
∂t
where D 0 is the diffusivity of the dopant at the interface, and F a and F b are the flux towards
the interface from material a and material b , respectively.
where:
■ <interface material> is an interface material name (see Material Specification on
page 50).
■ <dopant> is one of the existing Sentaurus Process dopants.
■ <c> is the charge state.
■ <n> is a Tcl expression that returns a number; it can be simply a number.
The fluxes F a and F b depend on the surface recombination model used. The surface
recombination models are Default or PairSegregation, and can be set for different
diffusion models using the command:
pdbSet <interface material> <dopant> [Link] <diffmodel> <model>
where:
■ <diffmodel> is the Constant, Fermi, ChargedFermi, Pair, ChargedPair, React,
or ChargedReact dopant diffusion model.
■ <model> is either Default or PairSegregation.
If the surface recombination model is set to Default for any dopant diffusion model, the
segregation fluxes are given by:
where:
■ T Rate is the trapping rate.
Tmax
■ CA is the maximum number of sites in the adjacent bulk regions.
■ C Ai is the concentration of trapped dopant A i .
SS
■ C A is the solid solubility of the dopant.
+
■ C A is the active concentration of dopant A .
■ z is the charge state of the dopant.
■ E Rate is the emission rate.
where <side> is one side of the interface and <interface material> is the interface
material. For example, the side would be either Oxide or Silicon for an oxide–silicon
interface.
Tmax
Sentaurus Process allows the C A parameter to be multiplied by user-defined factors as
follows:
Tmax Tmax
C AFactor × C A (638)
For example, in the case of oxide silicon interface, this is given by:
term name=CMaxFactor add Oxide /Silicon eqn = "exp(0.02)"
To allow Sentaurus Process to use this term, specify a term with the name CMaxFactor for the
interface material.
Similarly, you can modify T Rate and E Rate (the trapping and emission rates, respectively) using
user-defined factors such as:
The factors are specified for an interface, for a particular dopant and specific to the side from
which the interface is being approached. For example, given an oxide–silicon interface and an
arsenic dopant, the EmissionRateFactor from the oxide side can be specified as:
term name=ArsenicEmissionRateFactor_Oxide add Oxide /Silicon eqn="exp(2.0)"
You also can use the individual trap density by switching off the UseTotalInterfaceTrap
flag by:
pdbSet <interface material> <dopant> UseTotalInterfaceTrap 0
By default, the flag is switched on (1). If the flag is switched off, Eq. 637 becomes:
a⁄b max a ⁄ b + a ⁄ b n z a⁄b ss a ⁄ b + a⁄b
F a ⁄ b = T Rate ( [ C A ] – CA ) [ CA ] ---- – E Rate C A ( [ C A ] – [ CA ] ) (640)
n i
a⁄b
max
where C A is the maximum number of sites in the adjacent bulk region for this solution
variable.
For example, in the case of specified boron at the oxide–silicon interface, this is given by:
term name=BoronCMaxFactor add Oxide /Silicon eqn = "exp(0.02)"
To allow Sentaurus Process to use this term, specify a term with the name
<dopant>CMaxFactor for the interface material.
SS
Sentaurus Process also allows the parameter C A to be multiplied by a user-defined factor
defined as [Link], for example:
pdbSetString Si B [Link] "exp(3.636e-24*Pressure_Silicon/$kbT)"
C0 a⁄b a⁄b
C 0
= ------*- ( 1 – f I )T Rate ×
I a⁄b V a⁄b
Fa ⁄ b f I T Rate + --------
*
C I0 C 0
V
(642)
a ⁄ b Ea ⁄ b
[ C Tmax ] a ⁄ b – C [ C + ] a ⁄ b ---
nz Rate
Ai A n-i a ⁄ b – CA [ CA ] ------------
ss
-
A a⁄b
i T Rate
To use the total unpaired interstitial concentration, instead of the neutral one, use the command:
pdbSet <interface material> <dopant> UseUnpairedTotalInt { 1|0 }
C X0 a ⁄ b CX a ⁄ b
In this case, -------
*
- in Eq. 642 will be replaced with -----*- .
C X0 CX
If the surface recombination model is set to PairSegregation for the React or
ChargedReact diffusion model, the segregation fluxes are given by:
n z
[ C AI ] a ⁄ b ----
f I T Rate Tmax a ⁄ b
a⁄b a⁄b
n i a ⁄ b ss a ⁄ b E Rate a ⁄ b
Fa ⁄ b = - [ CA
-------------------
* a ⁄ b
] – CAi -------------------------------------------
-– z– C A [ C A ] ------------
a⁄b
- [ C 0]
×
kAIa ⁄ zb kIaz ⁄ b n----i T Rate I
[C 0] n
i
I
b
z
(643)
n z
[ C AV ] a ⁄ b ----
( 1 – f I )T Rate Tmax a ⁄ b
a⁄b n i a⁄b
a⁄b ss a ⁄ b E Rate a ⁄ b
------------------------------
* a ⁄ b
[ C A ] – Ai
C -------------------------------------------
a ⁄ b k a ⁄ b ---
- –
n –z A A
C [ C ] ------------
a⁄b
T Rate V
- [ C 0 ]
[C 0]
V
i k AV z Vz
-
ni b
z
where f I is the interstitial fraction of dopant trapping in equilibrium and can be set using the
command:
pdbSet <interface material> <dopant> [Link] {<n>}
To use the total unpaired interstitial and vacancy concentration, f I in Eq. 643 will be scaled
with:
–c
kX n----i
n
c
c
-----------------------------
- (644)
X
s
k c
If the individual trap density is switched off, [ C A ] – C Ai will be replaced with
Tmax a ⁄ b
max a ⁄ b
( [ CA ] – CA ) . i
C AI and C AV are the concentrations of dopant-defect pairs. C A is the concentration of the total
unpaired dopant. If the surface recombination model is set to PairSegregation for the
Constant, Fermi, or ChargedFermi diffusion model, the Default model will be used.
Trap
The Trap boundary condition is used to trap species at the interface. This boundary condition
is a combination of the Segregation model (see Segregation on page 348) and the
ThreePhaseSegregation model (see ThreePhaseSegregation on page 352).
The model is used mainly to trap nitrogen and fluorine during oxidation to reduce the oxidation
rate (see Trap-dependent Oxidation on page 614).
TrapGen
The TrapGen boundary condition defines not only dopant trapping, but also dopant generation
depending on the reaction velocity at a boundary.
Continuous
For all of the same material interfaces (for example, Silicon_Silicon), by default,
continuous flux and solution boundary conditions apply:
C1 ( x → i ) = C2 ( i ← x ) (645)
D 1' ∇C 1 = κ 2 ∇C 2 (646)
n1 n2
where:
■ Indices 1 and 2 indicate the two sides of the interface i .
■ n indicates the component of the dopant gradient normal to the interface.
■ D is the diffusivity, and C is the concentration of the solution variable.
If the boundary condition is not specified using the callback procedures for the solution
variable at the interface, the continuous boundary condition can be set using the command:
pdbSetBoolean <mater> <dopant> Continuous 1
where <mater> is the interface material, and <dopant> is the solution variable name. For
example:
pdbSetBoolean PolySilicon_Silicon Potential Continuous 1
will set the potential solution and its fluxes continuous at the polysilicon–silicon interface if
Potential is solved on both sides of the interface.
In Eq. 614, p. 345, the injection rate is given as a function of the reaction speed
( V ox = ReactionSpeed) and is used to simulate OED effects.
Conserving Dose
The mesh of the simulated structure is modified during the growth of materials with each
diffusion step. Some elements of the mesh will become bigger and some will shrink during this
process. The change in the element size from one diffusion step to another will artificially
change the dopant doses in the structure.
This artificial effect has two components. One is due to the change of element sizes and the
other is due to the material consumption at the moving boundaries. The first effect is accounted
for internally by applying an up-wind term to the solution equations. The second effect is
accounted for using the Alagator scripting language. If the total dopant concentration on one
side of the interface is different from the other side, the total concentration of the consumed
material is used.
For example, if you assume that there are no dopant clusters and the React diffusion model
for boron is selected on the silicon side and the Constant diffusion model is selected on the
oxide side of an oxide–silicon interface, the total boron concentration would be
Boron+BoronInt+BoronVac on the silicon side and Boron on the oxide side. Since the
consumed material is silicon during the oxidation, the dopant consumption due to growth is
passed using the command:
pdbSetString Oxide_Silicon Boron Consumed_Silicon \
"Boron_Silicon+BoronInt_Silicon+BoronVac_Silicon"
This is performed automatically. If the React diffusion model for boron was also selected on
the oxide side, the total dopant concentration on the oxide side would be
Boron+BoronInt+BoronVac, and the following command would be used:
pdbSetString Oxide_Silicon Boron Consumed_Silicon "Boron_Silicon"
will set the dopant diffusion model in silicon to React and the active model to None for boron
in silicon. Assuming that there is only boron in the structure, various terms and data fields will
be created after the diffusion. The most important ones are Boron, BActive, BTotal,
BoronInt, BoronVac, Int, ITotal, Interstitial, Vac, VacTotal, and Vacancy.
Boron, BoronInt, BoronVac, Int, and Vac are the solution names:
BActive Active boron concentration. (Since the active model is none, it will be equal
to Boron).
Boron Total unpaired boron concentration (for example, no clusters, no boron–
defect pairs).
BoronInt Concentration of boron–interstitial pairs.
BoronVac Concentration of boron–vacancy pairs.
BTotal Boron + BoronInt + BoronVac = Total boron concentration.
Int Total unpaired interstitial concentration.
Interstitial Total interstitial concentration used to initialize Int. (In this example, it will
be Int.)
ITotal Int + BoronInt = Total interstitial concentration.
Vac Total unpaired vacancy concentration.
Vacancy Total vacancy concentration used to initialize Vac. (In this example, it will
be Vac.)
VTotal Vac + BoronVac = Total vacancy concentration.
If the cluster models for both interstitial and boron are switched on, as follows:
pdbSet Si Dopant DiffModel React
pdbSet Si B ActiveModel Transient
pdbSet Si I ClusterModel 1Moment
some of the previous fields will be updated. Two additional solution variables, ICluster and
B4, will be solved. ICluster is the clustered interstitials used with the 1Moment model (see
Defect Cluster Model: 1Moment on page 324), and B4 is the clustered boron used with the
Transient model (see Dopant Active Model: Transient on page 283).
Sentaurus Process uses the ChargedPair diffusion model (see ChargedPair Diffusion Model
on page 206) and the Transient active model (see Dopant Active Model: Transient on
page 283) for boron, and the Equilibrium cluster model (see Defect Cluster Model:
Equilibrium on page 307) for interstitials.
In this case, Boron, B4, Int, and Vac will be the solution names. BoronInt and BoronVac
will not be solved, but there will be BoronInt and BoronVac terms to calculate boron–
interstitial and boron–vacancy concentrations. In this case, total unpaired Boron also will
include BoronInt and BoronVac since they are not solved. The important fields are:
NOTE If the dopant, defect, or cluster fields are modified by other process steps
(for example, implant, deposition, and so on), terms that define active
dopant concentration and total dopant concentration may not be current.
They be updated with the next diffusion step.
References
[1] B. Colombeau and N. E. B. Cowern, “Modelling of the chemical-pump effect and C
clustering,” Semiconductor Science and Technology, vol. 19, no. 12, pp. 1339–1342,
2004.
[2] R. B. Fair and P. N. Pappas, “Diffusion of Ion-Implanted B in High Concentration P-
and As-Doped Silicon,” Journal of the Electrochemical Society, vol. 122, no. 9,
pp. 1241–1244, 1975.
[3] N. E. B. Cowern and D. J. Godfrey, “A Model for Coupled Dopant Diffusion in Silicon,”
in Fundamental Research on the Numerical Modelling of Semiconductor Devices and
Processes: Papers from NUMOS I, the First International Workshop on the Numerical
Modelling of Semiconductors, pp. 59–63, Dublin, Ireland: Boole Press, 1987.
[4] F. Wittel and S. T. Dunham, “Diffusion of phosphorus in arsenic and boron doped
silicon,” Applied Physics Letters, vol. 66, no. 11, pp. 1415–1417, 1995.
[5] A. Mittiga, L. Fornarini, and R. Carluccio, “Numerical modeling of laser induced phase
transitions in silicon,” Applied Surface Science, vol. 154–155, pp. 112–117, February
2000.
[6] S. K. Jones and A. Gérodolle, “2D Process Simulation of Dopant Diffusion in
Polysilicon,” COMPEL, vol. 10, no. 4, pp. 401–410, 1991.
[7] A. Gérodolle and S. K. Jones, “Integration in the 2D Multi-layer Simulator TITAN of
an Advanced Model for Dopant Diffusion in Polysilicon,” in Simulation of
Semiconductor Devices and Process (SISDEP), Zurich, Switzerland, vol. 4, pp. 381–
387, September 1991.
[8] S. K. Jones et al., “Complete Bipolar Simulation Using STORM,” in IEDM Technical
Digest, San Francisco, CA, USA, pp. 931–934, December 1992.
[9] A. G. O’Neill et al., “A new model for the diffusion of arsenic in polycrystalline
silicon,” Journal of Applied Physics, vol. 64, no. 1, pp. 167–174, 1988.
[10] M. M. Mandurah et al., “Dopant segregation in polysilicon silicon,” Journal of Applied
Physics, vol. 51, no. 11, pp. 5755–5763, 1980.
[11] J. A. Venables, Introduction to Surface and Thin Film Processes, Cambridge University
Press, 2000.
[12] L. Mei and R. W. Dutton. “A Process Simulation Model for Multilayer Structures
Involving Polycrystalline Silicon,” IEEE Transactions on Electron Devices,
vol. ED-29, no. 11, pp. 1726–1734, 1982.
[13] L. Mei et al., “Grain-Growth Mechanisms in Polysilicon,” Journal of the
Electrochemical Society, vol. 129, no. 8, pp. 1791–1795, 1982.
[14] C. V. Thompson, “Secondary grain growth in thin films of semiconductors: Theoretical
aspects,” Journal of Applied Physics, vol. 58, no. 2, pp. 763–772, 1985.
[15] D. Gupta, D. R. Campbell, and P. S. Ho, “Grain Boundary Diffusion,” in Thin Films–
Interdiffusion and Reactions, New York: John Wiley & Sons, pp. 161–242, 1978.
[16] C. Hill and S. K. Jones, “Modelling Diffusion in and from Polysilicon Layers,” in MRS
Proceedings, Polysilicon Thin Films and Interfaces, San Francisco, CA, USA, no. 182,
pp. 129–140, April 1990.
[17] S. A. Ajuria and R. Reif, “Early stage evolution kinetics of the polysilicon/single-crystal
silicon interfacial oxide upon annealing,” Journal of Applied Physics, vol. 69, no. 2,
pp. 662–667, 1991.
[18] J. D. Williams, Epitaxial Alignment of Polycrystalline Silicon and Its Implications for
Analogue Bipolar Circuits, Ph.D. thesis, University of Southampton, UK, 1992.
[19] F. Benyaïch et al., “Kinetic and structural study of the epitaxial realignment of
polycrystalline Si films,” Journal of Applied Physics, vol. 71, no. 2, pp. 638–647, 1992.
[20] D. Dutartre et al., “Excitonic photoluminescence from Si-capped strained Si1-xGex
layers,” Physical Review B, vol. 44, no. 20, pp. 11525–11527, 1991.
[35] R. Y. S. Huang and R. W. Dutton, “Experimental investigation and modeling of the role
of extended defects during thermal oxidation,” Journal of Applied Physics, vol. 74,
no. 9, pp. 5821–5827, 1993.
[36] C. J. Ortiz et al., “Modeling of extrinsic extended defect evolution in ion-implanted
silicon upon thermal annealing,” Materials Science and Engineering B, vol. 114–115,
pp. 184–192, December 2004.
[37] C. J. Ortiz et al., “A physically based model for the spatial and temporal evolution of
self-interstitial agglomerates in ion-implanted silicon,” Journal of Applied Physics,
vol. 96, no. 9, pp. 4866–4877, 2004.
[38] E. Lampin et al., “Prediction of boron transient enhanced diffusion through the atom-by-
atom modeling of extended defects,” Journal of Applied Physics, vol. 94, no. 12,
pp. 7520–7525, 2003.
[39] E. Lampin et al., “Combined master and Fokker–Planck equations for the modeling of
the kinetics of extended defects in Si,” Solid-State Electronics, vol. 49, no. 7, pp. 1168–
1171, 2005.
[40] F. Lau et al., “A Model for Phosphorus Segregation at the Silicon–Silicon Dioxide
Interface,” Applied Physics A, vol. 49, pp. 671–675, 1989.
[41] Y.-S. Oh and D. E. Ward “A Calibrated Model for Trapping of Implanted Dopants at
Material Interface During Thermal Annealing,” in IEDM Technical Digest, San
Francisco, CA, USA, pp. 509–512, December 1998.
All diffusion models previously described are based on the conventional (continuum)
simulation approach. The atomistic approach described in this chapter is based partially on the
kinetic Monte Carlo (KMC) diffusion simulator DADOS [1][2][3], and is available with the
optional Sentaurus Process Kinetic Monte Carlo license.
Overview
The continuum approach to modeling dopant diffusion in process simulation tools is used to
solve a system of partial differential equations (PDEs) that describe transport of the dopants
and conservation of the dose. This approach has proven to be useful in designing
semiconductor devices in the past, but several trends in the manufacturing process of sub-100-
nm devices may make it difficult to maintain a high predictability in future devices.
The shrinking thermal budget significantly reduces diffusion and, therefore, reduces the need
to accurately model diffusion. On the other hand, dopant activation phenomena, including the
formation of a variety of dopant-defect pairs and extended defects of different configurations,
often do not reach thermodynamic equilibrium and necessitate transient rather than
equilibrium simulation. In the continuum diffusion model, this requires the use of one equation
per each dopant-defect configuration, which leads to a large number of equations to be solved.
The trend of reducing device sizes results in a small number of impurity atoms (as small as tens
or hundreds) that determine the threshold voltage of a transistor. It is likely that a limit soon
will be reached where small discretized distribution can no longer be accurately modeled with
a continuum description.
already gone a long way towards making the KMC diffusion method competitive with the most
detailed continuum diffusion methods today in terms of the required computational resources.
Unlike the continuum approach, the large number of different dopant-defect configurations
does not present a problem for the MC approach, which simply needs to introduce the
probabilities for the additional reactions. These probabilities are calculated based on the
binding energies that can be plugged in directly from experiments, molecular dynamics, or ab
initio calculations.
Besides, atomistic implantation and diffusion models provide a natural way of determining
statistical variations for a specific process flow/device geometry combination.
KMC Method
Sentaurus Process Kinetic Monte Carlo (Sentaurus Process KMC) considers only defects and
impurities, and ignores the lattice, (except for some SPER and epitaxial deposition models).
This drastically reduces memory requirements compared to molecular dynamics or lattice
KMC techniques and allows you to investigate simulation domains that are large enough to
contain deep-submicron devices. As Sentaurus Process KMC tracks the diffusion and
interaction of defects, the fastest process is the jumping of a point defect with a period of
–9
approximately 10 s. When there are no mobile point defects in the structure, the time step is
increased automatically to an emission of mobile particles from the surface or from an
–3
extended defect, which has a period of approximately 10 s.
Therefore, typically, Sentaurus Process KMC would begin with time steps of approximately
–9
10 s. As the point defects are trapped by the clusters and extended defects, Sentaurus
–3
Process KMC switches automatically to the larger time steps of the order of 10 s that are
large enough to model typical process steps.
Operating Modes
Sentaurus Process KMC can operate in two different modes:
■ The atomistic mode handles data atomistically throughout the simulation and is expected
to be the most accurate method.
■ The nonatomistic mode allows Sentaurus Process KMC to be used for only part of a
simulation. Sentaurus Process KMC transfers data back and forth to the continuum solver
to allow you to take advantage of the efficiency of the continuum solver for steps closer to
equilibrium and to allow Sentaurus Process KMC to handle one or more steps that are far
from equilibrium (such as fast RTA/flash annealing) to take advantage of its accuracy.
Atomistic Mode
When Sentaurus Process KMC is in atomistic mode, the data fields are handled completely
atomistically. To select the atomistic mode at the very beginning of the simulation, use:
SetAtomistic
The SetAtomistic command sets the parameter AtomisticData to true, allowing the
Sentaurus Process commands diffuse, deposit, etch, implant, init, line, photo,
profile, region, select, strip, and struct to work in the atomistic mode when
possible, and to properly synchronize Sentaurus Process KMC when the structure changes.
SetAtomistic also sets the diffuse method as Sentaurus Process KMC, and the implant
mode as MC implantation. Finally, it calls PDE2KMC to atomize the available continuum fields
into atomistic ones. The atomistic mode can be finished using:
UnsetAtomistic
The UnsetAtomistic command calls the procedure KMC2PDE to translate the atomistic
quantities to fields and finishes the atomistic mode.
When AtomisticData is true, Sentaurus Process KMC does not populate continuum data
fields with its own results, unless instructed to do so (using kmc deatomize).
Restrictions
The other commands work as expected, although the ones listed in Table 43 have been
especially adapted to operate in this mode.
diffuse If the parameter kmc is specified or Diffuse KMC is set to 1 in the parameter database,
diffuse calls Sentaurus Process KMC. If AtomisticData is not set to 1, a new
KMC object is created, and it will be removed at the end of the diffusion step. Oxidation,
nitridation, epitaxial deposition, and so on are accepted.
etch Synchronizes the Sentaurus Process KMC structure removing the etched material, its
contained particles, and setting the material to gas.
implant Works in MC mode and sends the cascades directly to Sentaurus Process KMC. Dynamic
annealing also is simulated during the implant using Sentaurus Process KMC.
line Adds a new line to the Sentaurus Process KMC internal mesh, when possible.
load Loads a Sentaurus Process KMC distribution from a TDR file and replaces the current one.
photo Creates photoresist mask and synchronizes the new Sentaurus Process KMC structure.
region When region changes the material, Sentaurus Process KMC is synchronized.
select (Only when select creates a new field or modifies an existing one). If this field is known
by Sentaurus Process KMC, the Sentaurus Process KMC concentration of particles is
synchronized with the value of the field, removing or creating extra particles.
strip Sentaurus Process KMC is synchronized with the new material. If there are particles in the
stripped materials, they are removed.
struct Automatically deatomizes some Sentaurus Process KMC data fields to make them accessible
when saving to a file. It also saves Sentaurus Process KMC restart information.
transform The Sentaurus Process KMC structure is updated after the transformation. Particles are
removed or modified depending on the particular materials being created or removed. The
option stretch is not allowed.
Implant
Sentaurus Process KMC requires the damage morphology (coordinates of each point defect)
for its damage accumulation model; this information is not available in analytic implantations.
In atomistic mode, implant automatically uses the Sentaurus MC model as well as the
cascades option for storing full cascades. The implantation time also is needed because while
implanting, Sentaurus Process KMC automatically performs diffusion at the specified
temperature (default is ambient). Typically, the temperature and time during the implantation
affect only slightly the distribution of dopants, but they may affect damage accumulation,
amorphization, and subsequent recrystallization and impurity cluster formation. The
implantation time is returned by the function DoseRate defined in the file [Link].
12
This time is computed by default using a fixed dose rate equal to 1 ×10 /cm2s. If a dose rate
is specified in an implant command by the [Link] argument, it is used to compute the
implantation time for this particular implantation instead.
For each implant dose and surface size, the number of implanted ions is computed. For
14 –2 2
example, 1 × 10 cm boron dose in a simulation cell with a surface of 40 × 40 nm and
–7 –7 14
250-nm depth implants 40 × 10 × 40 × 10 × 10 = 1600 boron cascades (being a cascade
one ion and all its generated damage). The information is passed to Sentaurus Process KMC
for annealing. These diffusion steps occur internally and are not user-specified, but the total
“diffused” time can be controlled by the function DoseRate explained above. Afterwards, the
implant report issued by Sentaurus Process KMC names the backscattered particles as outside
particles.
Molecular implants are allowed. To perform a molecular implant, specify the name of the
molecule as the implant species (see Implant on page 372). The components of implanted
molecules are introduced as isolated species in Sentaurus Process KMC; in other words, an
implanted BF2 molecule will split into 2F and 1B inside Sentaurus Process KMC.
Diffuse
For the first diffuse after the implant, the use of a small temperature ramp-up is recommended.
The time for this ramp-up should be chosen as realistically as possible. At the end of an
implant, the simulation cell contains the implanted ions plus a large amount of damage (point
defects). During the ramp-up, this damage recombines and forms different types of clusters.
The use of a realistic ramp-up produces more accurate results.
You can set the pdb parameters automaticRampUp and automaticRampDown to true to
automatically perform ramps whenever the requested diffuse temperature is different from the
current one. These ramps are performed with a ramp rate specified by rampUpRate and
rampDownRate in C/s:
sprocess> pdbGet KMC rampUpRate
100
sprocess> pdbGet KMC automaticRampUp
0
Sentaurus Process KMC performs different annealings at different temperatures during the
ramp-up. The objective is to perform few large annealings at low temperature and short ones
at high temperatures. This maintains a high accuracy without spending too much time at low
temperatures (changes in the temperature have a performance penalty).
The way these ramp-ups are performed can be configured using the following parameters of
the parameter database:
sprocess> pdbGet KMC dTBase
2.0
sprocess> pdbGet KMC nInit
1
sprocess> pdbGet KMC dTLimit
20.0
The temperature steps for the highest temperature (the end of the ramp-up or the beginning of
the ramp-down) are computed as:
For example, using the above parameters, in a ramp-down from 600°C to 500°C , the first
1+0
annealing is performed at 600°C – 2 = 598°C , the second one is performed at
1+1
598°C – 2 = 594°C , and so on. When ( ΔT base ) ninit + n is greater than dTLimit, the value
dTLimit is taken.
NOTE The above parameters are used only for temperature ramps induced by
automaticRampUp or automaticRampDown. For temperature ramps
specified with the command temp_ramp, the parameters to control the
ramp are specified in the commands temp_ramp or diffuse.
Oxidation options are allowed in Sentaurus Process KMC. For more information, see
Oxidation-enhanced Diffusion (OED) Model on page 500 and Oxidation on page 506.
Nonatomistic Mode
Sentaurus Process KMC also can be used only for one diffusion step, synchronizing the status
of the simulation before and after the diffuse step. This is performed with the kmc parameter
in the diffuse command as follows:
diffuse kmc temperature=<n> time=<n>
When Sentaurus Process KMC runs with AtomisticData set to false, a new Sentaurus
Process KMC simulation is launched at the beginning of the diffuse command:
■ First, it receives the information (atomized from the data fields).
■ Second, the diffusion is completed and, at the end of this command, Sentaurus
Process KMC transfers the information to Sentaurus Process as data fields.
■ Third, the Sentaurus Process KMC information is removed from memory.
Atomistic/Nonatomistic Translation
These transformations of information back and forth from concentrations to particles are
performed by the Tcl procedures PDE2KMC and KMC2PDE. These transformations may degrade
the accuracy of the obtained results. By default, the transformation to continuum data is
mapped to the ChargedReact (five-stream) model.
If you need to add a customize transformation, you can rewrite the procedures PDE2KMCUser
and KMC2PDEUser with your own map. PDE2KMCUser (KMC2PDEUser) returns a string
mapping the array of transformation from continuum to atomistic (atomistic to continuum).
KMC2PDEUser cannot modify already existing fields, but it adds new ones. These maps contain
three columns: the name of the original field, the name of the translated field, and the factor to
be applied during the translation. For example, the following will transfer a new helium field
into Sentaurus Process KMC:
fproc PDE2KMCUser {} {
return "Helium He 1 \
HeInt Hei 1 \
HeVac HeV 1"
}
PDE2KMC uses the PDB parameter KMC Si Damage TrimField to trim the PDE fields
exceeding this maximum value. This is useful to trim the concentration of Is and Vs in
amorphized regions to more realistic values, avoiding the wasteful creation of excessive point
defects. A value being at least 20% higher than the Sentaurus Process KMC amorphization
threshold is suggested to properly amorphize the material.
For further customization, you can overload the Tcl procedures with your own. For more
information on how to create and manipulate continuum and atomistic data, see select on
page 1053 and kmc on page 954.
NOTE KMC2PDE and PDE2KMC may consume CPU time in large simulations.
To improve efficiency, KMC2PDE keeps track of a previous translation
and does not perform a new one if the previous one is still valid.
Sano Method
The Sano method for converting particles to continuum profiles can be performed inside
Sentaurus Process. The conversion is performed using the same module as the one available in
Sentaurus Mesh.
For more details about this method, see Mesh Generation Tools User Guide, Defining Particle
Profiles on page 35 and Mesh Generation Tools User Guide, Appendix B on page 179.
To apply the Sano method to all dopants and the computed quantity NetActive, select the
sano option of the UnsetAtomistic command. However, to take full advantage of having
the Sano method inside Sentaurus Process, do the following:
1. Generate a mesh tailored for device simulation, including the use of adaptive refinement
based on NetActive.
2. Add contacts using the contact command.
3. Use the smesh option of the struct command that will, by default, create a mesh with
contacts present and will store only those fields appropriate for device simulation.
As an example:
# Place mesh settings before UnsetAtomistic command in 3D, because
# a new mesh will be created during UnsetAtomistic using the
# current refinement settings
pdbSet Grid Adaptive 1
refinebox adaptive [Link]= { BActive AsActive NetActive } \
[Link]= { BActive = 1.1 AsActive = 1.1 NetActive = 1e30 } \
[Link]= { NetActive = 5 } \
[Link] = 1e5 [Link] = 0.5<nm> UnsetAtomistic sano
contact name = c1 box xlo = 0.0 ylo = 0.0025 xhi = 0.04 yhi = 0.0125 \
silicon [Link]=oxide
contact name = c2 box xlo = 0.025 ylo = -0.01 xhi = 0.075 yhi = 0.01 \
silicon
struct smesh= n10
The following parameter is available to control the accuracy of the Sano smoothing
computation:
pdbSet KMC SanoMethod <species> ScreeningFactor <n>
The screening factor sets the inverse of the screening length of the Sano method. The smaller
the screening factor, the smoother the profile and the longer the computation time.
For more options of the UnsetAtomistic command, see UnsetAtomistic on page 1110. In
addition, smoothing and remeshing based on Sano fields can be called directly using the grid
command (see grid on page 906).
Simulation Domain
All Sentaurus Process KMC simulations are performed internally in a 3D domain. If the
Sentaurus Process structure is 1D or 2D, the missing lateral dimensions are created
automatically to form a 3D simulation domain for Sentaurus Process KMC. For a 2D structure,
the extension in the z-direction is taken from MinZum and MaxZum. For a 1D structure, the
default extension is MinYum to MaxYum and MinZum to MaxZum.
The Sentaurus Process KMC simulation domain is the same as the Sentaurus Process
simulation domain, including the top of the simulation, and it cannot be changed. For Y and Z,
the values MinYum, MinZum and MaxYum, MaxZum are used only when they are not set up in
the input file (because the dimensionality of the simulation is smaller).
Consequently, the Sentaurus Process KMC dimensions fit Sentaurus Process dimensions. The
size of the Sentaurus Process KMC simulation domain is reported in the output, for example:
KMC domain (-0.1, 0, 0) to (0.02, 0.02, 0.025) um Sentaurus domain (-0.1, 0, 0)
to (0.02, 0.02, 0) um.
For a 1D simulation (that can be compared to SIMS data), Sentaurus Process KMC uses as
small as possible lateral domain sizes to save CPU time. However, simulation domains with
lateral sizes smaller than 20 nm may be too small to represent extended defects. If you are
interested in a 1D profile with less statistical noise, you should increase the lateral size.
NOTE The minimum recommended size for accurate implant cascades and
damage accumulation is 40 nm x 40 nm.
The lateral domain area is multiplied by the implant dose to obtain the number of ions
implanted. For high impurity concentration levels, you may obtain enough particles in a
15 –2
relatively small simulation domain. For example, the implant dose of 10 cm creates 16000
ions for the 40-nm x 40-nm lateral domain side. This might be sufficient to obtain low
statistical noise, while any further increase in the 40-nm x 40-nm lateral domain size only slows
the simulation.
To obtain good statistics for lower concentrations or lower doses, you must increase the lateral
12 –2
size of the simulation domain. For example, an implant dose of 10 cm creates only 16 ions
for the 40-nm x 40-nm lateral domain.
One way to reduce the statistical noise without increasing the waiting time is to use the KMC
parallel features available for 1D and 2D simulations. For more information, see Parallelism on
page 381.
NOTE When using Sentaurus Process KMC, try to use the smallest (but
realistic) domain possible. If the simulation is too noisy or not
representative, increase the lateral size. CPU time typically is
2
proportional to the surface area. If a simulation with a 20 × 20 nm
2
surface takes 5 minutes to finish, you can expect a 40 × 40 nm
simulation to take four times longer.
Internal Grid
Sentaurus Process KMC uses an internal grid to:
■ Store the geometry and material assignments of the structure being simulated.
■ Accelerate the search for possible interaction partners for each defect in the simulation.
■ Compute the electronic properties.
■ Be the minimum volume of amorphized silicon.
■ Be the base to compute the concentrations written in the TDR file (using the kmc extract
tdrWrite command).
The Sentaurus Process KMC grid is a tensor-product grid. This grid is different and isolated
from the regular Sentaurus Process grid. The minimum size for each rectangular grid box is set
3
to 0.8 × 0.8 × 0.8 nm and a minimum value than 0.8 nm in any axes will not be accepted.
There is no maximum size. The grid is built using Sentaurus Mesh and can be adjusted using
the following pdb parameters (default values in parenthesis):
There are no XMinCell and XMaxCell for x. The maximum size for X is fixed to 100 nm, but
is further controlled with refinements, as explained below. The final mesh is similar to the one
obtained by Sentaurus Mesh using the following script:
tensor {
mesh {
mincellsize = 8e-4
maxcellsize direction "x" 1e-1
maxcellsize direction "y" $YMaxCell
mincellsize direction "y" $YMinCell
maxcellsize direction "z" $ZMaxCell
mincellsize direction "z" $ZMinCell
minbndcellsize = 8e-4
maxbndcellsize = 1e-3
grading = {$XGrading $XGrading}
}
}
where $Name means the value of the parameter. The default parameters are set to try to
minimize the Manhattan geometry at the interfaces, while maximizing the performance of the
simulation. All of these parameters can be set using pdbSet KMC, for example:
pdbSet KMC ZMaxCell 3e-3
Further customization can be added in the form of refinements. To refine the KMC internal
grid, the command refineBox, with the parameter kmc, is used. By default, Sentaurus
Process KMC applies one refinement when using SetAtomistic. This refinement is defined
as:
refinebox kmc min = { 0 0 } max = { 0.1 2 } xrefine = { 0.0012 0.0015 0.0015 }
Finally, the lines and spacing specified with the line command also will be included in the
simulation if possible.
For more information on the internal grid and how it affects the simulation, see Materials and
Space on page 386.
Randomization
You can investigate statistical variations of a process flow by selecting a different seed for the
random number generator used by Sentaurus Process KMC in each run. You can specify the
value of the seed changing the parameter randomSeed in the parameter database:
pdbSet KMC randomSeed <n>
Boundary Conditions
By default Sentaurus Process KMC uses periodic boundary conditions at the left, right, front,
and back sides of the simulation domain. To change these conditions, use the parameters KMC
PeriodicBC_Y and KMC PeriodicBC_Z.
There also is an option to use only periodic boundary conditions for extended defects like
{311}s and dislocation loops. To define this option, set DebugFlag to 4 in the PDB. This
option applies periodic boundary conditions only to the extended defects and still uses
reflective boundary conditions for everything else. You can use this option to reduce the lateral
simulation domain for investigating 1D simulations. Even when the lateral simulation domain
is comparable or smaller than the typical length of the extended defect, the periodic boundary
conditions allow you to obtain meaningful results.
NOTE This option should not be used for 3D simulations if there are lateral
variations in geometry or profiles.
When Sentaurus Process KMC detects an improper choice of the periodic boundary
conditions, it changes the periodic conditions:
** Warning **
KMC. The material structure is not the same in the plane y=0 and y=ymax.
Periodic boundary conditions for defects have been disabled!
The boundary conditions for the x-axis are mirror. You can transform them into a sink using
the parameter sinkProbBottom. This parameter is defined for any material. For example, to
specify that 20% of the incoming positive interstitials should be sunk when reaching the
maximum coordinate in silicon, use:
pdbSet KMC Silicon I sinkProbBottom IP 0.2
It is also possible to define sink boundary conditions for the y- and z-axis, independently of the
general mirror or periodic conditions described below. Similarly to the sinks defined in the x-
axis, a probability for particles crossing the boundary to be annihilated will be defined. This
probability is applied before the general boundary conditions. For example, if a 50% sink is
defined for interstitials at the left boundary, 50% of them surviving the sink will be either
mirrored or moved to the opposite side to simulate periodicity.
The parameter names for the y-axis are sinkProbLeft and sinkProbRight and, for the z-
axis, they are sinkProbFront and sinkProbBack.
Parallelism
You can use several CPUs during a Sentaurus Process KMC simulation. This feature is
configured with the math command:
math numThreadsKMC=<n>
where <n> is the number of threads to launch. When also using MC implantation, the number
of threads used by Sentaurus Process KMC overwrites the number of threads used by MC
implantation.
The KMC to PDE "smooth" algorithm (see Smoothing Out Deatomized Concentrations on
page 525) also can work in parallel:
math numThreadsDeatomize=<n>
Sentaurus Process KMC uses the sparallel licenses in the same way as Sentaurus Process
does. In particular, if no licenses are available, the code will continue in serial or abort
depending on the [Link] or [Link] options specified by the user.
The main simulation domain is divided into <n> subdomains; n is the number of threads to be
used. Each subdomain is then run as an independent simulation. Then, the boundary conditions
selected for the Z boundary are applied to the new Zi boundaries. At the end of the simulation
(implantation or diffusion), the main domain is recreated as the simple addition of all the
subdomains. All these “splits” and “forks” of the simulation domains are performed
automatically and are transparent to users.
When using parallelization, one big parallel simulation domain is run as several smaller
domains. At the end of the simulation, the third dimension will be collapsed and averaged to
produce a 2D result (third and second dimensions for 1D results). In any case, the subdomains
must be large enough to allow an accurate representation of the physics involved in the
simulation. In particular, since a minimum surface of 40 nm by 40 nm is recommended, the
minimum suggested size for parallel simulations is 40 nm in the y-axis and n × 40 nm in the
z-axis, where n is the number of threads.
When instructing Sentaurus Process KMC to work in parallel with <n> threads, the domain is
divided into <n> subdomains in the z-direction, and each one is processed by a different CPU.
Later, the subdomains are appended together. These manipulations are transparent to users.
Z
CPU #2
#3
PU
C
#2
#1
PU
C
Figure 39 When Sentaurus Process KMC works in parallel with <n> threads, the domain is
divided into <n> subdomains in the z-direction, and each one is processed by a
different CPU. Later, the subdomains are appended together. Here, <n> = 3.
In equilibrium conditions without implant damage, concentrations of mobile species are low
and events are rare. Therefore, the simulation requires few events to reach the required
diffusion time and proceeds quickly.
For transient-enhanced diffusion after an implant step, it takes some time to anneal the implant
3
damage. Depending on the implant conditions, each implanted ion generates up to 10
5
interstitials and vacancies. Each interstitial and vacancy makes up to 10 jumps before
recombining at the surface. This means that it takes approximately 1 second of CPU time to
anneal one implanted ion.
NOTE The above numbers are only estimations. The CPU speed differs
depending on the machine, operative system, and other factors.
Clustering and emission processes take longer internally than diffusion (hops) processes in
Sentaurus Process KMC, and similar numbers of simulated clustering or declustering
processes may lead to a larger wall clock time.
NOTE The use of parallelization also changes the time estimation (see
Parallelism on page 381).
NOTE The use of different hopping modes (KMC HoppingMode) also changes
the time needed to run the simulation, with doublelong being the
fastest mode (see Hopping Mode on page 411).
311
Figure 40 The nonlattice KMC method tracks only atoms in defects; lattice silicon atoms are
not included
In molecular dynamics, all lattice atoms and all defect atoms must be simulated, but in the
nonlattice KMC method, only defect atoms are considered. Lattice atoms vibrate with a high
frequency because of thermal energy and, occasionally, one of the point defects diffuses and
moves to a neighboring position. Since Sentaurus Process KMC uses the nonlattice KMC
method, it discards the lattice information and only follows the defect atoms. This greatly
– 13 –9
affects CPU time, from approximately 10 s for lattice vibrations to approximately 10 s
for fast diffusing particles. During diffusion, moving particles can be captured by extended
defects that emit isolated particles with frequencies orders of magnitude smaller than
frequency of point defects jumps.
Sentaurus Process KMC takes the input parameters of migration, binding, emission energies,
and so on and simulates the frequencies at which these different events occur. Sentaurus
Process KMC starts with short time steps, but when the simulation evolves and the fast moving
point defects disappear, the average time step automatically changes to adapt to the new
situation.
Single particles can move alone or belong to an extended defect, like a {311}.
■ For self-silicon point defects, in other words, interstitial and vacancy models, see Point
Defects, Impurities, Dopants, and Impurity-paired Point Defects on page 403.
■ For diffusing dopants, see Impurities on page 405.
■ For self-silicon extended defects, see Damage Accumulation Model: Amorphous Pockets
on page 420 and Extended Defects on page 430.
■ For clusters involving dopants, see Impurity Clusters on page 460.
Units
The units used by Sentaurus Process KMC are:
■ Micrometer ( μm ) for length
■ Second (s) for time
■ Electron volt (eV) for binding energies
3
■ Atoms per cm for concentrations
2 –1
■ cm s for diffusivities
3
■ nm for stress activation volumes
Space Management
Sentaurus Process KMC assumes an orthogonal simulation cell to manage space. The
minimum and maximum x-, y-, and z-dimensions (that is, the bounding box) are passed to
Sentaurus Process KMC as simulation parameters. Sentaurus Process KMC assumes that the
x-axis is the depth of the silicon wafer; whereas, yz is the wafer area.
When Sentaurus Process KMC has the simulation cell size, it splits the space (see Figure 41)
using Sentaurus Mesh. This creates an internal grid inside the rectangular simulation boundary
box. This grid is used only by Sentaurus Process KMC and is fully isolated from the Sentaurus
Process finite-element mesh. These rectangular elements cannot be smaller than twice the jump
distance ( 0.8 nm ). To customize the internal grid, see Internal Grid on page 378.
Figure 41 Sentaurus Process KMC divides the space (left) into small rectangular elements
(right); these elements are used for neighbor search, amorphization, and charge
models
In the above example, the x-axis minimum cell is 1 nm and the maximum one is 100 nm. For
y, these values are 0.9 and 1.7 nm, respectively. Finally, all of the cells have the same size in
the z-axis: 2 nm. There are 155 cells in the x-direction, and 11 and 25 for y and z, respectively.
The total number of elements is 430125.
To add user lines to the simulation, use the line command. You also can specify the option
spacing in this command. In this case, and in contrast with the nonatomistic mode, there is a
minimum size of 0.8 nm between lines. If you specify a very thin spacing, and Sentaurus Mesh
tries to add some lines later to better refine a surface, these last lines could be discarded in the
KMC mesh only to keep the 0.8 nm limitation. Because of this, the use of spacing is not
suggested, and it is usually better to rely on the results of Sentaurus Mesh.
KMC Original
The meshing algorithm included in Sentaurus Mesh tries to fit the interfaces using a
nonuniform tensor. This fit is perfect when the interfaces are flat, axis-aligned and there are no
limitations with the element size due to spacing or very thin features. Since the minimum
dimension for an element is 0.8 nm, interfaces thinner than that will not be accurately
represented.
After the material assignment, Sentaurus Process KMC checks that there are no mistakes in the
translation by reviewing the original interface elements and checking that there is a
corresponding KMC interface associated with them. Whenever this correspondence is not
satisfied, Sentaurus Process KMC issues a warning:
** Warning **
KMC. 1.79 percent of the Oxide/PolySilicon interface is lost when translating
to KMC. Please, review the results carefully.
... continuing execution
NOTE In some cases, these warnings may be produced by thin, but negligible,
structure shapes. In these cases, the percentage of interface lost is small.
When the percentage is significant, they point to important problems
that must be resolved before continuing the simulation.
Supported Materials
The materials already defined in Sentaurus Process KMC include:
■ Silicon (crystalline silicon)
■ Amorphous silicon
■ Silicon oxide
■ Polysilicon
■ Nitride
■ Gas
■ Germanium
■ Germanium oxide
■ Amorphous germanium
Amorphous can be assigned by users, but it also is created automatically by changing the
crystalline regions during simulation when the damage reaches an amorphization level (see
Amorphization and Recrystallization on page 442).
The materials supported by Sentaurus Process KMC are defined in the PDB:
sprocess> pdbGet KMC Materials
Silicon true
AmorphousSilicon true
Oxide true
PolySilicon true
Nitride true
Gas true
Unknown true
Every new material in Sentaurus Process KMC requires the following pdb parameters:
The full model allows all models: point defects (interstitials and
vacancies), extended defects, impurity clusters, damage accumulation,
amorphization, recrystallization, and the Fermi level–dependent diffusivity
models (for example, silicon).
ShortName This is the short name of the material when reading parameters defined for
the interfaces. For example, the interface Oxide_Silicon contains the
parameters Eb_SurfOx and Eb_SurfSi, where Ox and Si are the short
names of silicon and oxide.
Crystalline A Boolean value. True if the material is crystalline (silicon) and false if it is
amorphous (amorphous silicon).
Equivalent Name of the amorphous/crystalline equivalent. For example, silicon will
have amorphous silicon as its equivalent, and the amorphous silicon
equivalent is silicon.
Oxide Specify with true or false whether the material is an oxide or is not an
oxide, respectively. This is used for oxidation models. For example,
SiOxide and GeOxide have this field as true.
Alloy Specify if this material can alloy with another material to form binary alloys
with corrections to activation energies. Write the alloy material here. For
example, for silicon alloying with germanium, write Germanium in the
Alloy field of the silicon material.
After the material is properly defined, the parameters for all the particles in this new material
must be defined as well. These parameters depend on the model defined for the new material
(for an overview of these parameters, see Including New Impurities on page 510). Finally,
parameters for all interfaces between the existing materials and the new material must also be
defined.
Any other material existing in Sentaurus Process, but not defined by Sentaurus Process KMC,
is mapped as ‘Unknown’. The model for this material is discard, and all particles inside these
materials are discarded and removed. They do not need parameters because they contain no
particles to simulate.
Material Alloying
Sentaurus Process KMC allows materials containing an alloying element to be treated in a
quasi-atomistic framework. Such an alloying element is specified using the Alloy parameter
of the material specification. In the following, as an example, it is assumed that the material is
silicon and the alloy is germanium (although, this can be reversed, or any pair of materials can
be used with "full" modeling).
The quasi-atomistic framework means that alloy particles (Ge) are not created as particles, but
they will be taken into account as a field, so as to produce a local concentration. This saves
memory and speeds up the concentration. Diffusion of the alloying element is possible using
the model specified in Alloy Diffusion on page 419.
The inclusion of an alloy changes the bandgap narrowing as specified in Narrowing due to
Presence of an Alloy on page 492. Such a model uses a quadratic interpolation to smooth from
the band gap of the pure material to the band gap of the pure alloy. Since the positions in the
band gap of all particles are scaled with the total band gap, the positions for charged defects
are scaled accordingly.
All activation energies for diffusion-, emission-, and activation-related processes are corrected
by a term linear on the alloy concentration. If a given mechanism is simulated by following an
Arrhenius expression similar to:
ν = P exp ( – E ⁄ k B T ) (648)
the mechanisms under an alloy concentration are corrected by a linear term in the activation
energy with the concentration of the alloy (Ge):
ν = P exp ( – ( E + α [ Ge ] ) ⁄ k B T ) (649)
The same applies to the formation energies of point defects and the potential energies of
impurity clusters. Examples of these corrections are available in Alloy Effects on page 420.
Point Defects
Sentaurus Process KMC can distinguish between different interstitials, depending on the
material, using different syntax. The syntax "I" refers to an interstitial in the particular
material where it is positioned; otherwise, a more concrete notation must be used. For example,
in a structure where the first half is Ge and the second half I, "I" refers to Gei in the first half
and Sii in the second half. While Sii, for example, would have the same meaning as in the
second half, but it would produce Si in the first half.
Ambiguous Alloying
Sentaurus Process KMC allows the use of a material (for example, Si) with an alloy (for
example, Ge) without having to define the material alloyed (Ge). Nevertheless, it is also
possible to define the alloyed material as the main material (Ge) with the other one as the
alloyed material (Si). However, having all alloys defined twice is ambiguous. For example,
Si0.2Ge0.8 can be defined as main Si with 80% Ge, or as main Ge with 20% Si.
The main material is the one specified in the input file as material. In this case, it can be
silicon, and then you can use the select command or similar to include 80% Ge (or
germanium) and 20% silicon. Unfortunately, the complexity of the models and their calibration
produce different results when these two ways to have the same alloy are used. To solve this
issue, using Si as the main material up to 80% Ge concentration and Ge up to 20% silicon is
suggested.
Time Management
The main component in Sentaurus Process KMC is an algorithm that sequentially selects the
possible random events (migration of point defects, emission of extended defects, and so on)
according to their corresponding frequencies, similar to the Bortz–Kalos–Liebowitz (BKL)
algorithm so widely used in KMC methods. Figure 43 illustrates the selection procedure for
the atomistic configuration shown in Figure 40 on page 383, consisting of three vacancies (V),
two interstitials (I), and one {311} defect.
rand
0 3000 3200 3210
I jump
V jump {311} emission
Figure 43 Events are selected according to their rates, which in turn, depend on the current
atomistic configuration
–1 –1
Assuming the vacancy and interstitial migration frequencies are 1000 s and 100 s ,
–1
respectively, and the {311} emission rate is 10 s , to simulate 1 s, you have to simulate a total
of 3210 events. Consequently, simulating one event corresponds to simulating 1/3210 s. This
implies that the simulated time step is not fixed, but depends on the particular simulation
configuration. In addition, you must choose a V with a probability of 3000/3210, and Is and
{311} defects with probabilities of 200/3210 and 10/3210. A random number between 1 and
3210 (or 0 and 3209) is generated. For example, in Figure 43, the number 3147 selects an I
migration event.
After several migration events, when one interstitial reaches and interacts with a vacancy, the
simulator generates an IV pair called an amorphous pocket (AP) (see Damage Accumulation
Model: Amorphous Pockets on page 420).
The simulation contains two Vs, one Is, one IV, and one {311}. You can assume the IV pair will
–1
recombine with a frequency of 500 s . The new random number will be between 1 and
2000 + 100 + 500 + 10 = 2610. Consequently, the time step will be 1/2610 s. If the IV
recombination event is chosen and this IV pair is annihilated, the new simulation contains only
two Vs, one I, and one {311}, and the following time step is 1/2110 s.
NOTE The time step is not a fixed quantity in Sentaurus Process KMC, but it
depends on the state of the simulation.
The number of events to be simulated is inverse to the average time step (which changes during
the simulation, as explained above). The speed at which the simulator processes events depends
on the type of simulated events. Migration events usually are simulated rapidly. Simulations
involving changes in the electronic concentration or temperature or both are much slower
because updating the dependencies with the temperature and the Fermi level takes extra time.
Generally, the smaller the simulation, the shorter the time.
In simulations with implants, the implant MC module also adds time to the simulation while
computing the cascades. In amorphizing conditions, the Sentaurus Process KMC amorphous
model requires extra time to smooth out the damage and create amorphous layers. Finally,
simulations with strong gradients in the electronic concentration need more charge updates,
which take extra time.
Finally, the hopping mode allows you to chose whether long hops or double hops are allowed,
thereby speeding up the simulation. Both are switched on by default (see Hopping Mode on
page 411).
NOTE You can estimate the time needed for simulation by running a small
simulation and assuming the CPU time is proportional to the number of
particles (proportional to the surface area) and to the number of the
internal reported time.
Sentaurus Process KMC shows the status of the current simulation, printing log messages each
time the temperature changes during a temperature ramp, or whenever there is a new snapshot
(see Snapshots on page 394). These log messages are as following:
Reaction : 31s to 63s step : 32s temp: 950.0C
Mechanics: 31s to 63s step : 32s temp: 950.0C
Diffusion: 31s to 63s step (d): 32s temp: 950.0C
KMC: Time(s) Temp(C) Events Events/s Average step(s) %Done
46.416 950.01 3600728007 1877077 4.749174e-08 7.74% (36% V)
Reaction : 1.05min to 2.117min step : 1.067min temp: 950.0C
Mechanics: 1.05min to 2.117min step : 1.067min temp: 950.0C
Diffusion: 1.05min to 2.117min step (d): 1.067min temp: 950.0C
KMC: Time(s) Temp(C) Events Events/s Average step(s) %Done
100.000 950.01 4742533558 1865695 4.692958e-08 16.67% (33% V)
Reaction : 2.117min to 4.25min step : 2.133min temp: 950.0C
Mechanics: 2.117min to 4.25min step : 2.133min temp: 950.0C
Diffusion: 2.117min to 4.25min step (d): 2.133min temp: 950.0C
KMC: Time(s) Temp(C) Events Events/s Average step(s) %Done
215.444 950.01 6881748852 1868310 5.396525e-08 35.91% (34% I)
Reaction : 4.25min to 7.125min step : 2.875min temp: 950.0C
Mechanics: 4.25min to 7.125min step : 2.875min temp: 950.0C
Diffusion: 4.25min to 7.125min step (d): 2.875min temp: 950.0C
Reaction : 7.125min to 10min step : 2.875min temp: 950.0C
Mechanics: 7.125min to 10min step : 2.875min temp: 950.0C
Diffusion: 7.125min to 10min step (d): 2.875min temp: 950.0C
KMC: Time(s) Temp(C) Events Events/s Average step(s) %Done
464.159 950.01 11927967061 1864825 4.928753e-08 77.36% (35% I)
It is easy to identify the log immediately after the Diffusion statement because it is preceded
by a “KMC:” header. In the above example, the total simulated (annealed) time is 600 s. The
10
(current) temperature is 950°C . A total of 1.4 × 10 events has been simulated so far, and the
simulator processed 1.9 million events each CPU second. The averaged time step is
–8
4.9 × 10 s . Finally, Sentaurus Process KMC writes the particle with the biggest percentage
of diffusion jumps. In the example, the diffusion of the neutral interstitial (I) has taken 33 to
36% of the total diffused particles.
This information may change from one simulation to another, and also at different times during
the same simulation. The events per second and average step statistics are recomputed between
sentences.
Table 44 lists the CPU times that can be expected when running on different numbers of
threads. However, the exact time depends on the particular simulation.
1 S 1x
2 S/2.3 2.3x
4 S/4.8 4.8x
8 S/8 8x
12 S/9.5 9.5x
16 S/10.5 10.5x
The total simulation time is superlinear for n < 8 and starts saturating for n ≥ 12 . The reason
for being superlinear for a small number of threads is that the CPU time depends superlinearly
on size. Consequently, simulating a size XYZ/n takes less CPU time than S/n. Nevertheless, as
n increases, different mechanisms (such as the waiting time of threads to be synchronized)
conspire to degrade the total simulation time.
Snapshots
A snapshot is an interruption of the normal Sentaurus Process KMC simulation flow to print
the status of the simulation and to allow you to run a customizable Tcl command (see Movie
on page 395). To control these interruptions, set the pdb parameters listed in Table 45.
Decade <n> Sets how many snapshots will be generated per decade. 0 disables it.
InitOutputTime <n> No snapshots per decade are generated when the simulated time is smaller than n.
maxSnapshots <n> Maximum number of snapshots to be stored. After this limit is reached, the oldest
ones are erased to make space for the new ones.
For example:
pdbSet KMC Decade 2
Movie
The Sentaurus Process KMC Movie command is similar to the Sentaurus Process Movie
command and executes the contents of the parameter KMC Movie any time a new snapshot is
generated. You can use this command interactively to obtain information about the simulation,
to add data to the TDR file of Sentaurus Process KMC, and so on.
For example, it can be used to add concentration information and the positions of particles to
the TDR file during the simulation:
pdbSet KMC Movie {kmc extract tdrAdd concentrations defects}
Particles
Particles are represented in Sentaurus Process KMC with three spatial coordinates (x, y, z) and
two labels:
■ The particle type label identifies the species, charge state, and role of the particle in the
simulation.
■ The defect type indicates when the particles are agglomerated with others or when they
stand alone.
Particle Types
To obtain a list of the standard particles currently defined for Sentaurus Process KMC, use the
command:
sprocess> kmc particletypes
I V B As C F In P Sb N Nn H IMM IM IP IPP VMM VMMM VM VP VPP VPPP Asi AsiP AsV
AsVP AsVM Bi BiP BiM Ci FV FI Ini IniM InV InVM Pi PiP PV PVM PVP Sbi SbiP SbV
SbVP SbVM NnV
Dopants are user defined in Sentaurus Process KMC, while interstitials and vacancies are fixed
and cannot be customized. The standard list of interstitials and vacancies defined in Sentaurus
Process KMC is:
V Vacancy–neutral
VM Vacancy–negative
VP Vacancy–positive
The dopants are defined in the parameter database. By default, particles for As, B, P, In, C, F,
N, Nn (N2), H, and Sb are defined. For example, the default particles for As, B, and P are:
As Substitutional arsenic–positive
B Substitutional boron–negative
Bi Interstitial arsenic–positive
P Substitutional phosphorus–positive
Pi Interstitial phosphorus–neutral
PV Vacancy phosphorus–neutral
NOTE Since P at the end of the name means positive, to specify a cluster
containing P, the P cannot be at the end in any case. This means that
AsiP is an arsenic–interstitial positive, while PAsi is a phosphorus
arsenic–interstitial cluster. Similarly, AsP will be interpreted as arsenic
positive, while PAs is phosphorus–arsenic.
NOTE These lists show the most commonly used particles, but the list is not
exhaustive. An exhaustive list contains all point defects (Is and Vs) with
charges from –3 to +3, and all impurity pairs with charges from –2 to +2.
Particles in Models
The dopants allowed in the simulation are defined in the parameter database under the label
KMC Impurities. The database lists the impurity name, the charge, and a Boolean parameter
indicating whether the particle is allowed in the Sentaurus Process KMC simulation.
The particle name and the charge must be delimited by a comma without spaces. For example,
in the case of arsenic and boron:
pdbSet KMC Impurities As,1 true
pdbSet KMC Impurities B,-1 true
When the dopant type has been defined, the paired particles (particles with I or V) can be
defined in KMC Pairs. The definitions are a string containing the name of the pair, the name
of the dopant, the type of pair (I or V) and the charge. These fields are separated with commas.
Finally, a Boolean parameter instructs Sentaurus Process KMC to take the particle into
account.
In the previous example, the particle boron vacancy is not defined (set to false). A particle is
not defined when it does not appear in the Pairs list, or when its Boolean variable is false.
For example, when As+ is defined as an impurity, AsV+ can be defined. The existence of AsV+
allows you to define AsV0, and now AsV-. AsV-- cannot be defined (no charge –2). For B-, you
can define Bi-, Bi0, and Bi+.
Alias
Aliases of particle names are defined in KMC aliases, which is a list of particle names and
alternative names separated by commas. These aliases are used only when Sentaurus
Process KMC tries to map a name as particles or defects. For example, if there is an alias such
as:
Bi BoronInt,BI
the commands:
kmc present defectname=Bi
kmc present defectname=BI
create fields with different names, but the atomized particle is the same (Bi).
Colors
You can change the default visualization color for the atomistic representation of particles and
defects in Tecplot SV, or add new colors to existing particles and defects. The list of colors is
KMC colors, and it is an array of particle names and colors in #rrggbb format (red, green,
blue).
New particles need new parameters. For every impurity specified in Impurities, a new file
must be created for each material folder and surface. The name of these files is obtained using
the command alias with the name of the Sentaurus Process KMC impurity as a parameter:
sprocess> alias B
Boron
Table 46 lists the parameters required for materials defined to use the simple model.
When amorphous materials (where the best example is amorphous silicon) use the dangling
bond model (see Indirect Diffusion on page 445), the parameters listed in the previous table
plus those in Table 47 are required.
EBarrier_Surf?, Interface binding energies for dopants. ? denotes the material. Gas for gas, Si
Eb_Surf? for silicon, Ox for oxide, Ni for nitride, Po for polysilicon, and Unknown for
the rest.
Table 49 lists the parameters required for materials using full modeling.
Dm, Em Diffusivities.
e0 Electronic levels.
Finally, amorphous, simple and full materials allow the definition of impurity clusters. These
clusters are defined using the parameters listed in Table 50.
For further explanations on these parameters, see the comments in the parameter database and
the model descriptions.
Undefining Particles
Particles can be undefined erasing their definition in the parameter database or setting its
Boolean to false. If an impurity is undefined or erased, Sentaurus Process KMC also
undefines all its pairs.
NOTE Undefining particles that will not be used in the simulation saves some
small memory and CPU time. If an undefined dopant is used (for
example, it is implanted or introduced with select), it causes an error.
Defect Types
For a list of the defects implemented in Sentaurus Process KMC, use the command:
sprocess> kmc defecttypes
PointDefect AmorphousPocket Amorphous Void ThreeOneOne Loop ImpurityCluster
Interface
Defects implemented in Sentaurus Process KMC include those listed in Table 51.
Amorphous Amorphous region inside the crystalline silicon. Only I, V, impurity clusters, and dopants are
allowed. See Amorphization and Recrystallization on page 442.
AmorphousPocket Disordered agglomeration of Is and Vs (damage). Only I and V particle types are allowed.
See Damage Accumulation Model: Amorphous Pockets on page 420.
ImpurityCluster Impurity clusters. Agglomeration of dopants with Is or Vs. See Impurity Clusters on
page 460.
LatticeAtom Atom in the silicon lattice used for SPER or epitaxial deposition. See LKMC: Fully
Atomistic Modeling of Solid Phase Epitaxial Regrowth on page 451
PointDefect Single particles (IMM, IM, I, IP, IPP, VMM, VM, V, VP, VPP, As, and B) or paired ones
(Asi, AsiP, AsVM, AsV, AsVP, BiM, Bi, and BiP) that do not belong to any extended
defect or particle agglomeration; in other words, impurities, dopants, and impurity-paired
point defects.
Void Vacancy clusters with spherical shape. Only Vs are allowed. See Voids on page 439.
NOTE Not all possibilities of particle and defect types are allowed. Some
particle types, like the paired ones (Asi, BiM…), are only allowed as
PointDefect. Others, like As or B, can stand alone (PointDefect),
can be trapped in interfaces (Interface), or can belong to an impurity
clusters (ImpurityCluster). Neutral interstitials, for example, can
stand alone (PointDefect), can be in damaged clusters
(AmorphousPocket), {311} defects (ThreeOneOne), or dislocation
loops (Loop). Single particles can be mobile point defects (in other
words, interstitials and vacancies), immobile impurity atoms (like
substitutional boron and arsenic), and also mobile impurity-defect pairs
such as Bi or AsV. All are considered PointDefect.
where:
■ ν j m is the jump frequency for the axis j .
■ ν 0, m is the prefactor.
■ E m is the migration energy.
■ σ' i are the principal stresses (the stresses in the coordinate system where all the stress
tensor nondiagonal components are null).
■ ΔV par is the activation volume for stress-parallel diffusion.
These parameters are called Dm (prefactor), Em (energy), VD (activation volumes), and EmGe
(for α m ) in the parameter database. They are defined only in the full model materials:
sprocess> pdbGet KMC Si I Dm
IMM 5e-2
IM 5e-2
I 5e-2
IP 5e-2
IPP 5e-2
sprocess> pdbGet KMC Si I Em
IMM 0.8
IM 0.8
I 0.8
IP 0.8
IPP 0.8
sprocess> pdbGet KMC Si I VD
IMM 0,0
IM 0,0
I 0,0
IP 0,0
IPP 0,0
sprocess> pdbGet KMC Si I EmGe
0
The activation volumes for parallel and perpendicular diffusion, respectively, are separated by
a comma (no spaces) in VD.
The stresses σ ij are produced by Sentaurus Process and imported by Sentaurus Process KMC.
This stress tensor is diagonalized to obtain the principal stresses σ' i . The directions x, y, and z
used in the equation refer to the system in which the stress tensor is diagonal.
NOTE You can calibrate these parameters if necessary to change the point-
defect diffusivity and DC product.
Sentaurus Process KMC simulates point-defect migration, modifying the particle coordinates
in the orthogonal directions a fixed distance, called λ , which corresponds to the second
neighbors distance in the silicon lattice (0.384 nm). Exceptionally, it may change the value of
λ , as explained in Hopping Mode on page 411.
After each diffusion event, the charge state of the point defect is updated according to the new
local Fermi level (see Fermi-Level Effects: Charge Model on page 478 and Updating Charged
States on page 485). Whenever a jumping point defect encounters another particle, defect, or
interface, the jumping point defect interacts according to the specific situation. These
interactions are allowed depending on the following:
■ Incoming species—for example, substitutional boron plus interstitial (B + I) is allowed,
and the incoming species form a boron interstitial. Boron plus vacancy is not allowed. This
interactions can be enabled or disabled in the parameter database.
■ Energetics—Sentaurus Process KMC allows interactions for {311} defects, dislocation
loops, and pairing because the binding energies are greater than 0. For impurity clusters, if
the reaction is unfavourable, the newly formed defect breaks up and dissolves in the
original components or is rejected before reacting.
■ Charge states—interactions between repulsive species are forbidden, except for the
‘percolation’ model (see Percolation on page 465).
Mobile particles can interact with other mobile particles or with the particles belonging to
extended defects, whenever they enter in the capture radius of the other particle or defect (see
Figure 44). The capture radius for a mobile particle is λ , assumed to be the same as the
jumping distance. For extended defects, the capture volume is the sum of the capture volumes
of its constituent particles. Mobile particles can interact with surfaces/interfaces as explained
in Interfaces and Surfaces on page 495.
y
Particle Type: Interstitial
Defect: PointDefect
Coords: x1, y1, z1
Particle Type: Vacancy
Defect: PointDefect
Possible Coords: x2, y2, z2
Migrations
Jump
Simulation Cell x
Figure 44 Point defects diffuse by jumping a distance λ in any orthogonal direction and can
interact with neighbor particles
Impurities
Isolated impurities in Sentaurus Process KMC can be in a substitutional state or can be paired
with interstitials or vacancies. Substitutional impurities are electrically active and typically
immobile. The acceptor and donor impurities (Groups III and V of the periodic table,
respectively) can move in silicon only by pairing with an interstitial or a vacancy, as shown in
the literature [4][5][6][7][8]. Other impurities, such as fluorine, may diffuse without the aid of
an extra I or V (see Impurities Diffusing without Pairing on page 512).
Impurity atoms are modeled like interstitials or vacancies. They have a position and a defect
type and particle type. The defect type is PointDefect, and the particle type characterizes the
species, charge state, and the presence of a paired I or V. For example, BiM indicates a
negatively charged boron paired with an interstitial.
Paired impurities can perform two possible types of events (see Figure 45):
■ Diffusion jump
■ Breakup of the impurity–defect pair
Bi
I
Bi
Migration Breakup
Migration (Diffusion)
The diffusion event is defined as for point defects (see Eq. 650, p. 403). Nevertheless, the
equation defines an instant diffusivity that is different from the effective diffusivity. Effective
diffusivity measured in experiments involves a large number of microscopic migration steps
and long times. Microscopically, dopants diffuse using the kick-out mechanism. For example,
when an interstitial reacts with a substitutional boron, a boron–interstitial pair is generated:
B + I → B i . In contrast with the boron in substitutional position, the generated pair is mobile.
Then, B i begins to diffuse, using the diffusivity parameters specified in Eq. 650. After some
time, the interstitial boron breaks up, releasing the interstitial. This boron will not move until
a new incoming I reacts with it. Consequently, the macroscopic diffusivity is related not only
with the boron interstitial diffusivity, but also with its breakup frequency as:
E diff ( B )
D eff ( B ) = D 0 ( B ) exp – --------------------
eff
(651)
kB T
eff
D 0 ( B ) depends on the Bi and I migration prefactors and on the Bi breakup prefactor.
E diff ( B ) is related with the Bi microscopic migration energy ( E m ( B i ) ) , the formation energy
of an interstitial ( E f ( I ) ) and the Bi binding energy ( E b ( B i ) ) (assuming there are no stress or
SiGe corrections):
E diff ( B ) = E m ( B i ) + E f ( I ) – E b ( B i ) (652)
Finally, the total boron diffusivity is given as the sum of the contribution of all mobile species.
For boron interstitial, and assuming there are three mobile species, negative, neutral, and
positive:
[ B i- ] [ B i0 ] [ B i+ ]
D ( B ) = D ( B i- ) ---------- + D ( B i0 ) ----------
- + D ( B i+ ) ----------
- (653)
[B ] - [B ] - [B-]
Breakup
where ν 0, bk is the prefactor and E bk is the activation energy, defined as the binding energy plus
the migration energy of the emitted species and the SiGe and stress corrections:
E bk ( A i ) = E b ( A i ) + E m ( I ) + P ( ΔV f ( I ) + ΔV f ( A ) – ΔV f ( A i ) ) + [ Ge ] ( α f ( I ) + α f ( A ) – α f ( A i ) ) (656)
where:
P = – --- ( σ' x + σ' y + σ' z )
1
■
3
is the hydrostatic pressure, computed as the mean value of the
principal stresses.
■ ΔV f are the activation volumes for the formation energies.
■ [ Ge ] is the germanium concentration.
■ α f accounts for the variation of the formation energy with the germanium concentration.
The corrections to the migration energies induced by the stress and SiGe are (as previously
explained in Interstitials and Vacancies on page 403):
( σ'i ΔVort )
i
ΔE m = σ' j ΔV par + α m [ Ge ] + (657)
i≠j
Sentaurus Process KMC assumes that the activation volume and the SiGe variation for the
formation energy do not depend on the charge. All the charge states of the same species share
the same activation volume and SiGe dependencies for the formation energy.
Figure 46 shows the energies for boron involved in this mechanism. It is easy to deduce that a
change in the formation energies due to stress and SiGe will change the binding energy as:
ΔE b ( B i ) = ΔE f ( I ) + ΔE f ( B ) – ΔE f ( B i ) (658)
Em (I)
Eb (Bi)
Ef (B)
Em (Bi)
Em (I)
Ef (Bi)
Ef (I)
Figure 46 Energies involved in the kick-out mechanism for B–+ I0 = Bi–. Migration energy of
the interstitials and boron interstitial are specified in the parameter database as
Em. The binding energies are Eb, and the I formation energy is specified as
Eform. The formation energy for dopants in pure silicon is assumed to be 0
because the dopants are already in the simulation; the dopants are not created
by the system.
Percolation
In a percolation event, an impurity can react with any other defect in its neighborhood without
need for diffusion. In this aspect, it can simulate the reactions that occur through distortions in
the lattice but without the need for the migration of particles. The neighborhood of the particle
is defined in the same way as for diffusing point defects.
The percolation rate, that is, the frequency at which the particle attempts to interact with any
valid defect in its neighborhood, is defined as:
E per
ν per = P per exp – --------- (659)
k B T
where P and E are the prefactors for percolation, specified as input parameters. Percolation
only applies to substitutional dopants or impurities. It can provide an extra mechanism for
dopant deactivation at very high concentrations.
Parameters
The dopant diffusion parameters are stored in the parameter database for each material and
dopant, under the names Dm, Em for diffusivities, and Db, Eb for binding energies. Dm and Db
are prefactors, Em and Eb energies. The activation volumes for the formation energies have the
name VF and α f is called EfGe. The prefactor and the activation energy for percolation are
called D0_Percolation and E0_Percolation, respectively.
For the migration energy, the prefactor, the SiGe dependency, and the activation volumes for
stresses, the specified material must be modeled as full or simple (in other words, any
material that does not discard particles). For binding energies, only the full materials are
valid. Percolation parameters are applied to simple and full materials.
Immobile species (substitutional dopants) have the migration prefactor set to 0, and the
migration energy high, to clarify that the species will not perform diffusion steps. Finally, since
Sentaurus Process KMC assumes substitutional atoms to be ionized (in other words, B– and
As+), the binding parameters (both the prefactor and the binding energy) are only defined for
– 0 – + 0 +
pairing reactions with a neutral I or V, like B + I → B i or As + V → AsV . The binding
energies for the other breakup reactions are computed automatically using these parameters.
Parameter Examples
Migration energies for boron in oxide. The only allowed boron particle is B.
sprocess> pdbGet KMC Oxide B Em
B 3.53
and prefactor:
sprocess> pdbGet KMC Si B Db
BiM .37
Finally, the binding energy cannot be defined for any material but full model ones, the result
should be blank:
sprocess> pdbGet KMC PolySilicon B Eb
Hopping Mode
The parameter KMC HoppingMode controls the way Sentaurus Process KMC performs
diffusion events. This mode accepts the modes short, long, double, and longdouble, and
it is set by default to longdouble. Changing the hopping mode only changes the results
statistically (in other words, it is similar to changing the random seed); although, it may change
the CPU time significantly. The default hopping mode, longdouble, is the fastest one.
The short mode implies that the jumping distance for all the diffusion events λ is the same
and is equal to the second neighbor distance. In addition, only one diffusion event is performed
at a time.
Figure 47 Even if the long hop model is available, it is used only for particles diffusing
on empty volumes
The longdouble mode is the default mode and enables both long and double hops.
NOTE For more information on these models, refer to the literature [9].
The interactions allowed between one mobile particle and other particles are specified in the
parameter database as the parameter ReactionsPointDefect. The interactions between this
type of defect are assumed to be always energetically favorable.
This parameter needs a string and Boolean value. The Boolean value specifies if the interaction
is allowed (true) or not (false). The string contains the name of the two interacting particles,
separated by a comma. For example:
sprocess> pdbGet KMC Si C ReactionsPointDefect
C,I true
C,V false
C,Ci true
Ci,I true
Ci,V true
Ci,Ci true
Therefore, in this example, the interaction between C and V is disabled. To enable it, use the
command:
pdbSet KMC Si C ReactionsPointDefect C,V true
When enabling an interaction, the result does not have to be specified because Sentaurus
Process KMC already knows it. The possible interaction results are:
The reactions for each single charged state must be introduced, so the charged I also interacts
with V and with other charged states of V:
sprocess> pdbGet KMC Si I ReactionsPointDefect
I,V true
I,VM true
I,VMM true
I,VP true
I,VPP true
IP,V true
IM,V true
IM,IP true
(...)
All interactions are listed in the parameter database. With that list of interactions, you can
understand which reactions are considered and how they work.
Interaction Rules
Sentaurus Process KMC does not accept all possible interactions within every two particles,
but only interactions with a physical meaning, or with an available model. Consequently, the
following rules apply:
■ Reactions must include existing particles.
■ Some reactions are only allowed in materials with full modeling.
■ Reactions for a pair must be defined in the file of the involved dopant (for example, a
reaction with Bi must be in the boron file, not in interstitial).
■ If the result of a reaction does not exist, the reaction is discarded (in other words, the
reaction C + V is specified, but the particle CV is not defined).
■ Repulsive reactions are not allowed (for example, Bi– + Bi–) except for ‘percolation’
models such as As + As or B + B (see Percolation on page 465).
■ Reactions must satisfy microscopic reversibility. For example, if the reverse reaction is not
possible, the reaction is discarded.
■ Reactions creating impurity clusters must give a defined cluster. For example, Bi + Bi is
allowed as long as there is a B2I2 cluster defined; in this case, Bi + BiM would also be
allowed.
Examples
B and I can react, giving a mobile Bi particle. B and IP also give a Bi particle. The charge state
of the resulting Bi particle is computed automatically by Sentaurus Process KMC depending
on the Fermi level, temperature, and Bi levels in the band gap. B– + IM is an electrostatically
repulsive reaction, and is not allowed.
Bi possible charge states are neutral, positive, and negative. The reactions for these also states
should be specified. Bi and its different charges can react with I, V, and Bi. Bi + I produces an
impurity cluster. Only reactions microscopically reversible are allowed. Because a BI2 cluster
breaks up as Bi + I, any nonrepulsive reaction involving Bi and I is allowed. Bi + V recombines
the IV pair, depositing substitutional boron. All nonrepulsive reactions between Bi and V are
allowed, and all are specified in this example. Finally, there are more ways to produce impurity
clusters including BiP + B, producing B2I, and B ia + B ib ↔ B 2 I 2 , as long as a ⋅ b ≤ 0 giving
B2I2.
The reaction B + V is not specified here. Typing B,V false produces the same effect. Setting
this reaction to true implies defining a BV particle (and its parameters) and specifying
reactions for this BV particle, such as BV + I → B .
NOTE Only advanced users should change the default interaction list because
improper modifications can drastically change the diffusion models.
A, B, and C must be single particles (point defects or dopants). They are defined as
SpecialReaction in the folder including the first species:
pdbSet KMC Si A SpecialReaction A,B,C true
The reactions defined with this mechanism are not reversible: C will not break into A and B
back.
Interaction Rules
The difference between a regular interaction and a nonstandard one is that the set of rules the
latter one obeys is a very reduced subset of the rules for the regular one. In particular, a
nonstandard interaction must follow only these rules:
■ Reactions must include existing particles. The result is always a point defect, not a cluster
or another defect type.
■ Reactions are only allowed in materials with full modeling.
■ Reactions must be defined in the files of the involved dopant (for example, a reaction with
Bi must be in the boron file).
■ If the result of a reaction does not exist, the reaction is discarded (that is, the reaction C +
V is specified, but the particle CV is not defined).
In particular, these reactions can be nonconservative. For example, you can define a carbon–
interstitial interaction giving arsenic ( C + I → As ). These reactions are nonstandard because
they lack a physical sense, but they are allowed because they offer extra flexibility to define
new models.
Example
A model for nitrogen diffusion can be defined using a nonstandard interaction, in particular,
when you want to model the following:
N i + N i → N 2, i (661)
N 2, i + V ↔ N 2 V (662)
where N 2, i is mobile but N 2 V is immobile. The second reaction is not a problem. You can
define a dopant called Nn to be N 2, i , and make it mobile, and you can define an NnV as the
result of Nn + V. These reactions are standard. The problem is that it is impossible to have a N
+ N reaction giving as Nn using the standard mechanisms. For this exception, you define N i as
N and use the special reaction:
pdbSet KMC Si N SpecialReaction N,N,Nn true
Sentaurus Process KMC uses the stress provided by Sentaurus Process, but Sentaurus
Process KMC does not compute it. The stress fields are updated from Sentaurus Process for
each diffuse step.
Stress local dependency is introduced into Sentaurus Process KMC using the correction of the
migration and binding energies of point defects and impurity-paired point defects.
Stress also affects the bandgap narrowing, as explained in Bandgap Narrowing on page 488.
Migration Energy
where ΔE i m are the corrections to the migration energy when diffusing in the i' axis; σ' i are
the principal stresses; and ΔV par and ΔV ort are the activation volumes for diffusion parallel
and perpendicular to stress, respectively. They are included in the PDB as VD.
The relation between the i' axes and the standard ones is established by a rotation R tensor. This
tensor diagonalizes the stresses tensor:
σ xx σ xy σ xz σ' x 0 0
T
[ R ] σ xy σ yy σ yz [ R ] = 0 σ' y 0 (664)
σ xz σ yz σ zz 0 0 σ' z
Setting the parameter ChangeAxis to false disables this rotation, using the standard xyz axis
instead of the i' ones.
Binding Energy
where ΔV f is the activation volume for the formation energy. The activation energy for an
impurity-paired point-defect breakup is defined (without stress) as the sum of the binding
energy plus the migration energy of the emitted species (I for Ai). Then, an extra correction of
the migration energy of the emitted species under stress is needed.
Since the migration energy corrections depend on the axis, but the breakup of an impurity pair
in Sentaurus Process KMC does not, an average of the corrections for all the axes is performed,
and the frequency is computed as:
1 x, y, z
0 i
ν stress bk = ν bk exp ( – ΔE b ⁄ ( k B T ) ) --- exp ( – ΔE m ⁄ ( k B T ) ) (666)
3
i
Alloys
Alloys are included in Sentaurus Process KMC simulations as a field instead of as a particle.
Using Ge as an example of an alloy in Si, it means that Sentaurus Process KMC discards the
particular position of Ge (the xyz coordinates) and only keeps track of how many Ge atoms
were introduced in each internal element. Doing this saves a huge amount of memory, while
allowing Sentaurus Process KMC to account for SiGe effects. Ge works as usual, except for
the following limitations:
■ There are no Ge particles in the atomistic 3D plot.
■ Ge (including implanted Ge) is shown as a field in the atomistic 3D plot.
■ There are no events or reports associated with Ge because there are no Ge particles.
■ There are no Ge models (for example, no Ge clusters) except for Ge diffusion.
Alloy Diffusion
where D IGe ( x ) and D ISi ( x ) are the transport capacity associated with Ge and Si interstitials in
Si1–xGex, respectively.
where α 0, Si , α 0, Ge , E Si , and E Ge are input parameters specified in the PDB. Both interstitials
and vacancies have a different α .
The parameters α 0, Si , α 0, Ge , E Si , and E Ge are specified in the PDB with the names
D0alphaSi, D0alphaGe, EalphaSi, and EalphaGe. In particular:
sprocess> pdbGet KMC Si I EalphaSi
0.4
sprocess> pdbGet KMC Si I EalphaGe
0
sprocess> pdbGet KMC Si I D0alphaSi
35
sprocess> pdbGet KMC Si I D0alphaGe
2.2
sprocess> pdbGet KMC Si V EalphaSi
0.25
sprocess> pdbGet KMC Si V EalphaGe
0
sprocess> pdbGet KMC Si V D0alphaSi
30
sprocess> pdbGet KMC Si V D0alphaGe
2.2
Alloy Effects
The following sections discuss alloy effects on point defects, impurities, dopants, and impurity-
paired point defects. In the next sections, Ge in silicon is used as an example for these models.
Binding Energy
Bandgap Narrowing
The Ge inclusion changes the band gap as explained in Bandgap Narrowing on page 488.
Experimentally, electron irradiation and light-ion implantation create isolated point defects
inside the silicon. In contrast, heavy ions generate highly disordered regions called amorphous
There is much discussion on how this damage is annealed. Some papers point to an annealing
of the disordered region [12]: APs using an internal recombination of IV pairs rather than
through the emission of point defects. Only when the AP does not contain further IV pairs does
it begin to emit its remaining Is or Vs, behaving as a small I or V cluster.
Sentaurus Process KMC simulates the damage accumulation using APs, disordered collections
of point defects (Is and Vs) stable at low temperatures. APs dissolve fast at higher temperatures,
leaving only clusters with the net excess of Is or Vs. APs can contain IV pairs or only Is and Vs.
In the first case, APs try to recombine the pairs; in the second, APs behave as small clusters
and can emit their constituent particles. Whenever an AP containing only Is or Vs (but not IV
pairs) reaches a threshold size, the AP transforms into an extended defect ({311}s for Is, voids
for Vs).
APs can grow capturing new incoming point defects, and they can dissolve by internal
recombination of IV pairs or by particle emission when there are no more IV pairs (see
Figure 48).
2D Projection
Growth
Growth
Internal Recombination
Amorphous Pocket
Figure 48 Growth of APs showing their internal recombination
Shape
APs have an irregular shape. Sentaurus Process KMC does not reshape the defect as new;
incoming particles join the AP: particles are left in their incoming positions. Figure 49 shows
some APs resulting from an implanted cascade.
Figure 49 APs formed in Sentaurus Process KMC after some implanted as cascades:
interstitials are red, vacancies are green, arsenic is yellow
Growth
APs capture any incoming point defect (I or V) within their capture radius. The capture radius
of APs is the sum of all their constituent particles. Point defects with any charge state are
captured by APs containing both Is and Vs. Only neutral Is or Vs are captured when APs
contain only Is or only Vs.
Recombination
APs containing IV pairs (that is, APs with both interstitials and vacancies) can recombine pairs
using a recombination event, which recombines one I with one V at a time. This event is
performed with a frequency given by:
ν diss = ν 0, diss ⋅ size β exp ( – ( E diss ( size ) + PΔV diss + α IV [ Ge ] ) / ( k B T ) ) (670)
where the prefactor ν 0, diss is called D0_AmorphousPocket in the parameter database, and
size is the size of the cluster.
The size of a cluster InVm is a Tcl procedure of n and m specified in the file [Link] under the
name getAmorphousPocketSize:
fproc getAmorphousPocketSize { sizeI sizeV } {
return [expr ($sizeI + $sizeV)/2]
}
Parameters
The parameters needed by the damage accumulation model are specified using:
pdbSet KMC Si Damage <Parameter> <value>
For the above parameters, the Eb_AmorphousPocket values for IxVx, with x > 1 and x < 199
will be generated by Sentaurus Process KMC as a linear interpolation between the points (1,
0.65) and (199, 2.4):
Silicon/Damage Eb_AmorphousPocket(IV) = 0.65
Silicon/Damage Eb_AmorphousPocket Interpolated (2) = 0.658838
Silicon/Damage Eb_AmorphousPocket Interpolated (3) = 0.667677
...
NOTE You can change these parameters to calibrate the damage accumulation
model.
Emission
When all IV pairs have been recombined, APs behave as small I or V clusters, allowing the
emission of their extra constituent particles. These defects emit neutral Is or Vs particles with
a frequency given by:
ν emit = ν 0, emit ⋅ exp ( – E emit ( size )/ ( k B T ) ) (671)
The prefactor is proportional to the input parameter D0_Cluster, but also includes a
dependency on the size of the cluster. The activation energy for emission of an X (in other
words, either I or V) is:
E emit = E b ( X ) + E m ( X ) + ΔE b ( X ) + ΔE m ( X ) (672)
the sum of the corrected binding energy (that depends on the cluster size) and the migration
energy. The cluster size is defined as the number of contained Is or Vs (see Figure 50).
Em
E(n–1) + E(1)
Eb E diss
E(n)
Ef
E(n–1)
D0_Cluster is the constant proportional to the emission prefactor, and Eb_Cluster is the
cluster binding energy, where dependency with size is explicitly assigned. For sizes bigger than
the last specified cluster, the binding energies are computed using:
size a – ( size – 1 ) a
E b ( size ) = E b, L – ( E b, L – E b, S ) ------------------------------------------- (673)
2a – 1
where:
■ E b, L (Eb_LargeCluster) is the binding energy for the largest cluster.
■ E b, S (Eb_SmallestCluster) is the binding energy for the smallest cluster (size 1).
■ a (exponent_Cluster) is the exponent, usually 2/3 or 3/4.
Figure 51 shows some binding energy values and compares them with the numbers obtained
using Eq. 673.
Interstitial Cluster Binding Energies Vacancy Cluster Binding Energies
3 3.5
2.9 3
2.8 2.5
2.7
2
2.6
1.5
2.5
1
2.4
2.3 0.5
Discrete Discrete
2.2 Continuum energies 0
Continuum energies
2.1 -0.5
0 20 40 60 80 100 120 0 5 10 15 20 25 30
I Cluster Size V Cluster Size
Figure 51 Interstitial cluster (left) and vacancy cluster (right) binding energies; discrete
values are assigned in the parameter database and the continuum energies are
computed using Eq. 673
Finally, the correction applied for the migration is the normal one:
1 x, y, z
ΔE m ( X ) = α m [ Ge ] + ---
i
exp ( – ΔE m ⁄ ( k B T ) ) (674)
3
i
extended
where ΔV b is called VFCluster in the PDB and αCl is the Germanium correction to
binding (Eb_ClusterGe).
Parameters
The parameters for Is and Vs emission are specified only for the silicon material. They can be
found in the interstitial and vacancy files included in the parameter database.
Prefactors
sprocess> pdbGet KMC Si I D0_Cluster
150.0
sprocess> pdbGet KMC Si V D0_Cluster
10
Energies
sprocess> pdbGet KMC Si I Eb_Cluster
I2 2.45
I3 2.45
(...)
I13 2.853
I103 2.889
sprocess> pdbGet KMC Si V Eb_Cluster
V2 1.4
V3 1.4
V4 2.4
(...)
For sizes between specified sizes (for example, I14 to I102), the parameters are computed as
linear interpolations of the specified values:
Silicon/I Eb_Cluster(I13) = 2.853
Silicon/I Eb_Cluster Interpolated (14) = 2.8534
(...)
Silicon/I Eb_Cluster Interpolated (102) = 2.8886
Silicon/I Eb_Cluster(I103) = 2.889
NOTE When changing these parameters, their values affect not only the
damage accumulation model, but also the interstitial and vacancy
supersaturation and, consequently, the transient-enhanced diffusion
(TED). Because the damage accumulation model is the seed for
subsequent extended defects or recrystallization, these values also affect
the formation of extended defects.
For example, assuming there is an AP with two Vs and seven Is (I7V2), since the AP contains
both Is and Vs, the only possible event is the recombination of IV pairs. The first IV pair
recombines with the recombination energy assigned to size 2, leaving an I6V1. The second
recombination energy, with a recombination energy assigned to size 1, leaves an I5 AP. This
AP begins to emit Is, with a frequency associated to its size (5). However, if it captures a V, it
becomes an I5V1 and must recombine the IV pair with an associated recombination size of 1.
An AP must satisfy the following conditions before being transformed into a {311} or void:
■ It can contain only Is or only Vs, but not both.
■ It must be bigger than or equal to a threshold size.
■ Transition must be enabled.
The threshold size is specified with the parameters Min311Size and MinVoidSize for Is and
Vs, respectively. The transition is enabled by a value between 0 and 1. This value is computed
as:
P = E 0 × exp ( ( – ( E + ΔE ) ) ⁄ ( k B T ) ) (676)
The prefactor E 0 is specified as D0_APto311 for {311}s and D0_APtoVoid for voids, and the
energies as E_APto311 and E_APtoVoid. For {311}s ΔE are the corrections for pressure and
Ge; for voids ΔE = 0 :
ΔE = PV 311toLoop + α 311toLoop [ Ge ] . (677)
The volume correction is called VF311toLoop, and the Germanium one VF311toLoop.
For P = 0 , the transition is disabled; for P = 1 , it is enabled. For P > 1 , the value is rounded
to 1. Values between 0 and 1 establish a probability for the transition.
Parameters
Transition probabilities:
sprocess> pdbGet KMC Si Damage D0_APto311
200000000.0
sprocess> pdbGet KMC Si Damage E_APto311
1.3
sprocess> pdbGet KMC Si Damage D0_APtoVoid
200000000.0
sprocess> pdbGet KMC Si Damage E_APtoVoid
1.3
To customize AP reactions, change the parameters defined for I, V, and IV clusters using the
command:
pdbSet KMC Si Damage <ReactionsClusterType> <species> <true/false>
Parameters
Small interstitial and vacancy clusters may react with neutral interstitials and vacancies.
Charged interstitials or vacancies are not allowed due to microscopic reversibility reasons:
sprocess> pdbGet KMC Si Damage ReactionsClusterI
I true
V true
sprocess> pdbGet KMC Si Damage ReactionsClusterV
I true
V true
APs with both Is and Vs accept interstitials or vacancies with any charge. In this case, because
they do not emit particles, there are no microscopic reversibility restrictions:
sprocess> pdbGet KMC Si Damage ReactionsClusterIV
I true
IP true
IM true
V true
VP true
VPP true
VM true
VMM true
APs do not trap impurities, but can interact with them. In this interaction, impurities can lose a
point defect, becoming substitutional (for example, B i + I 2 V 3 → B + I 3 V 3 ) or can gain some
of them being transformed into an impurity cluster (for example, B i + I 2 V 3 → BI 2 + IV 3 ).
Consequently, the interaction within impurities and APs plays a crucial role in deactivating
dopants, typically during implantation and low-temperature anneals.
–
For example, the reaction B i + I n V m → BI 2 + I n – 1 V m can be disabled for mixed clusters with:
pdbSet KMC Si B ReactionsClusterIV BiM,BI2 false
NOTE A comma must separate the incoming particle from the result, without
any space in between.
Parameters
The reactions between boron (for example) and mixed clusters can be displayed with:
sprocess> pdbGet KMC Si B ReactionsClusterIV
BiM,BI2 true
Bi,BI2 true
BiP,BI2 true
B,BI2 true
Extended Defects
Small clusters are defined as immobile agglomerations of interstitials or vacancies, and are
modeled using the AP defects previously explained. When the number of Is or Vs in these
clusters grows above a specified threshold, the small clusters are converted into extended
defects ({311} or void types). Finally, when the ripening of {311}s overcomes some limit, the
{311}s are transformed into dislocation loops.
Shape
Sentaurus Process KMC models {311} defects as parallel stripes (rows) of I particles lying in
one of the twelve orientations, randomly chosen, of a {311} plane. The {311} shape is modeled
as Nr rows of Is lying on a <011> line with a distance of a ⁄ 2 between Is in the same line,
and as Nc columns keeping a distance of a 22 ⁄ 4 between them, with a = 0.543 nm , the
silicon lattice constant.
W ≈ CL (678)
being C = 0.5 nm . This ratio is maintained reshaping the {311} defect (that is, changing the
number of row and columns) when necessary (see Figure 52).
Figure 52 {311} defects are simulated by Sentaurus Process KMC as parallel stripes (rows)
of I particles lying in a {311} plane: red is silicon interstitials in {311}; green is I
and V in APs; and blue is arsenic
The {311} defects only exist above a size threshold. Smaller defects are assumed to be APs,
and they have an irregular shape (see Amorphous Pockets Life Cycle on page 427).
When {311} defects grow enough, they are transformed into dislocation loop defects (see
Dislocation Loops on page 435). The threshold size (number of interstitials) between {311}
defects and dislocation loops is assumed to follow an Arrhenius plot:
size = prefactor × exp ( E ⁄ ( k B T ) ) (679)
The formation energy of the dislocation loop must be smaller than the {311} formation energy
at the threshold size; otherwise, the threshold is taken as the size where both energies are equal.
Both prefactor and E are parameters available in the database with names D0_311toLoop
and E_311toLoop, respectively.
Parameters
The parameters to control the transformation between {311}s and loops are specified for
interstitials in silicon:
sprocess> pdbGet KMC Si I D0_311toLoop
1.6
sprocess> pdbGet KMC Si I E_311toLoop
0.68
NOTE These parameters can be changed to fit the {311} to dislocation loop
transition size.
Capture
Each time a neutral I point defect interacts with an I belonging to a {311} defect, the {311}
captures the point defect. Since {311} defects grow and shrink at their ends, the new particle
is attached at the nearest end of the defect. When the end cannot grow because it is too close
to a interface or a boundary, the other end is used.
When 311DopantModel is set to 1, impurities also can be trapped. These trapped impurities
will remain in the captured location until they are re-emitted. Only neutral impurities (or
neutral impurity pairs) are captured and re-emitted.
Emission
To preserve microscopic reversibility between the capture and the emission processes, emitted
particles (neutral interstitials) are taken randomly from one of the two ends and released from
a random point at the {311} surface (see Figure 53 on page 433).
2D Projection
Emission
Recombination Growth
where the considerations for the AP emission, including all the corrections, apply. The binding
energies are taken from the list supplied with the Eb_Cluster parameter. These energies are
shared with the APs. As explained above, for sizes less than a threshold value, defects are
considered APs. Otherwise, they are rearranged as {311} defects. Consequently, only binding
energies for sizes equal or bigger than APs-{311} threshold applies for {311} defects.
Corrections are applied for both pressure and Germanium content. These corrections are
specified as VF311 and Eb_311Ge, respectively.
{311}s may also emit captured dopants if the 311DopantModel is set to 1. The emission
frequency for them is:
ν emit ( A i ) = ν 0, emit ( A i ) × exp ( – E emit ( ( A i ) ⁄ ( k B T ) ) ) (681)
being the prefactor and activation energy called D0_311 and Eb_311, respectively, in the PDB.
Parameters
Recombination
The {311} defects recombine incoming Vs with any charge by annihilation of the Is at the
nearest {311} defect end. When {311} defects dissolve, they do not become APs when the
threshold AP-{311} size is reached. The emission frequency depends on the binding energy,
and the binding energy only depends on the size of the defect. Since a interstitial cluster and a
small {311} defect have the same binding energy when they have the same size, the defect
shape affects only the capture volume, but not the emission frequency. Consequently,
rearranging {311} as small defects and vice versa only changes the capture volume, and these
changes are negligible for small clusters. Nevertheless, the capture volume differences between
small {311} defects and irregular clusters are negligible, and there is no information about the
shape of dissolving {311} defects.
Finally, when a {311} reaches size 2, it releases the particles as two interstitials and the {311}
disappears.
Interactions
Interactions between {311} defects and mobile particles can be modified with:
pdbSet KMC Si <I/V/Impurities> Reactions311 <species> <true/false>
Only neutral Is react with {311} defects and, consequently, only paired dopants with the same
charge as the substitutional dopant react with {311} defects. Any charge state is allowed for
the recombination of vacancies.
Parameters
You can define the parameter 311DopantModel globally as a default for all dopants, but
define it locally with a different value that overwrites the global value for a particular dopant.
For example:
pdbSet KMC Si I 311DopantModel 0
pdbSetDouble KMC Si B 311DopantModel 1
sets the model for all the impurities as ‘release dopant,’ except for boron.
Dislocation Loops
Dislocation loops are planar defects lying on {111} planes [18]. A dislocation loop can be
either a faulted dislocation loop (FDL) or perfect dislocation loop (PDL). FDLs are circular
stacking faults surrounded by a dislocation line. PDLs are not implemented in Sentaurus
Process KMC.
{311} defects are the precursors of dislocation loops. When the implant conditions (available
concentration of I, distance to the free surface) are appropriate, {311} defects grow until they
reach the threshold size and transform into dislocation loops. Dislocation loops are more stable
than {311} defects; consequently, the supersaturation created by dislocation loops is lower.
Shape
The shape of dislocation loops is computed as a filled circle in a {111} orientation (see
Figure 54). All {111} orientations are allowed, and one is randomly chosen.
Capture
Dislocation loops capture any incoming neutral interstitial. The original position is lost, and
the particle is moved to the proper position in the disk. The capture radius is the sum of the
capture radius of the constituent particles.
When the ReactionsLoop is set and LoopDopantModel is true, dislocation loops capture
incoming impurities. When LoopDopantModel is false, the impurity is not captured.
However, when it carries a point defect (in other words, is an impurity pair), the pair is broken;
the impurity is deposited as a substitutional impurity; and the point defect reacts with the loop.
Emission
ν 0, emiss includes both a prefactor and a linear dependency with the dislocation loop size, and
E b, loop ( size ) is the binding energy of the dislocation loop, which only depends on the size.
Sentaurus Process KMC computes the binding energies as:
E b, loop ( size ) = E f ( I ) + E f, loop ( size – 1 ) – E f, loop ( size ) (683)
The dislocation loop formation energies are taken from [19] as:
a2μ
E f, loop ( size ) = πγR 2 + -------------------- ⋅ R ⋅ log ------- – nE f ( I )
8R
b
(684)
6(1 – ν)
where:
■ R = size ⁄ ( πd 111 ) is the loop radius.
■ γ is the stacking fault energy per unit area.
■ μ is the shear modulus.
■ ν is the Poisson ratio.
■ b is Burger’s vector modulus.
■ a is the silicon lattice parameter.
–2
■ d 111 is the atomic density in a {111} plane, in nm .
The above parameters are specified in the parameter database. γ is called gamma, μ is mu, ν
is nu, and b is named burgVectMod. The emission prefactor is called D0_Loop.
The corrections applied to the migration energy of interstitials are the usual ones:
1 x, y, z
ΔE m ( I ) = α m [ Ge ] + ---
i
exp ( – ΔE m ⁄ ( k B T ) ) (685)
3
i
loop
where ΔV b is called VFLoop, and α loop is called Eb_LoopGe in the PDB.
Captured impurities (when LoopDopantModel is true) re-emit impurities into the bulk with a
frequency given by:
ν emit ( A i ) = ν 0, emit ( A i ) × exp ( – E emit ( ( A i ) ⁄ ( k B T ) ) ) (687)
being the prefactor and activation energy called D0_Loop and Eb_Loop in the PDB,
respectively.
Parameters
The parameters needed for the simulation of dislocation loops are defined for interstitials in
silicon:
sprocess> pdbGet KMC Si I D0_311toLoop
1.6
sprocess> pdbGet KMC Si I E_311toLoop
0.68
sprocess> pdbGet KMC Si I D0_Loop
1000000.0
sprocess> pdbGet KMC Si I gamma
0.4375
sprocess> pdbGet KMC Si I mu
472
sprocess> pdbGet KMC Si I nu
0.3
sprocess> pdbGet KMC Si I burgVectMod
0.3135
sprocess> pdbGet KMC Si I VFLoop
0
sprocess> pdbGet KMC Si Eb_LoopGe
0
NOTE These parameters can be changed to fit the dislocation loop formation
and dissolution.
Figure 55 shows how a dislocation loop grows capturing interstitials, and how it shrinks
recombining incoming vacancies or emitting interstitials.
Growth
Dislocation Loop
2D Projection
Recombination
Emission
Interactions
Parameters
Voids
Small vacancy defects have been reported (using paramagnetic resonance and
photoluminescence) [20][21][22][23]. Theoretical studies [24][25] indicate that some of these
small clusters can be particularly stable. Sentaurus Process KMC models these small clusters
as APs and, consequently, they have irregular shapes. Nevertheless, size-dependent binding
energies are considered for their V emission (see Damage Accumulation Model: Amorphous
Pockets on page 420).
Vacancy clusters appear as spheroidal voids when they are big enough to be seen by TEM [26].
Tight-binding molecular dynamics studies show that the binding energies are a function of the
cluster size [27] (see Figure 56 on page 440).
Figure 56 Voids are simulated with a spherical shape; this one contains 654 vacancies
Shape
The threshold size between irregular small vacancy clusters (APs) and voids is specified with
the parameter MINVoidSIZE. Another parameter, MAXVOIDSDIAM, is used to set up the
maximum-allowed diameter (in nanometers) for these defects.
Reshaping the small clusters into voids above the mentioned limit is necessary to maintain the
right volume/surface ratio, as the V cluster grows. A large cluster of n vacancies is reshaped to
be spheroidal, occupying the volume corresponding to the same number of silicon lattice sites.
Sentaurus Process KMC manages the void shape to assert that its density is correct.
Parameters
The parameters for voids are specified for silicon material and vacancy as species:
sprocess> pdbGet KMC Si V MinVoidSize
27
sprocess> pdbGet KMC Si V MaxVoidDiam
5.0
Capture
Voids capture neutral vacancies, rearranging them to have a spheroidal shape. Figure 57 shows
the possible interactions between voids and point defects.
Void Growth
2D Projection
Recombination
Emission
Figure 57 Voids are big cluster vacancies with a spherical shape that grow trapping neutral
vacancies and shrink by recombination and vacancy emission
Emission
ν 0 is a prefactor which includes a constant and a dependency with the surface of the void, and
E b, void ( size ) is the binding energy of a void. These binding energies are assigned in the
parameter database together with the small vacancy cluster binding energies. For information
on how to locate and modify them, see Amorphous Pockets Life Cycle on page 427. For voids,
only the values for sizes bigger than the AP-Void threshold apply.
Finally, corrections to the migration energy of vacancies and the binding of them to the void
are applied. The migration correction is the usual one:
1 x, y, z
ΔE m ( V ) = α m [ Ge ] + ---
i
exp ( – ΔE m ⁄ ( k B T ) ) (689)
3
i
and for the binding energy, it is corrected using the parameter for small vacancy clusters:
ΔE b, void = PΔV bcluster ( V ) + α void [ Ge ] (690)
Recombination
Interactions
Interactions between void defects and other particles fall into these categories:
■ Trapping of neutral vacancies (growth):
pdbSet KMC Si V ReactionsVoid V <true/false>
■ Recombination of interstitials:
pdbSet KMC Si V ReactionsVoid <I/IM/IP> <true/false>
■ Impurity pair breakup. Voids do not trap impurities, but they can trap or recombine the
interstitial or vacancy associated with a paired impurity. (For example,
–
B i + V n → B + V n – 1 ). The pair must have the same charge as the substitutional dopant (in
other words, Bi– for B–, AsV+ for As+).
pdbSet KMC Si <impurity> ReactionsVoid <species> <true/false>
Parameters
Amorphization
C
a–c
Figure 58 Damage concentration profile after an implant
There are two different concentrations in Figure 58 (A and C) and one concentration threshold
called Amorphization. This threshold is stored in the parameter database in the damage
section as AmorphizationThreshold:
sprocess> pdbGet KMC Si Damage AmorphizationThreshold
1.5e+22
NOTE You can change this limit if necessary. The damage accumulation model
is dependent on the AmorphizationThreshold.
The behavior of the simulator while adding new point defects (damage) differs depending on
the local concentration of the internal grid elements. A new point defect is inserted into a box
depending on the concentration of that box. If the concentration is smaller than the
Amorphization threshold (C, crystalline region), the point defect is inserted as it is. In other
words, a particle is placed inside the simulator with its three coordinates, the defect, and
particle type. Finally, the damage concentration can be higher than the amorphization threshold
(region A (amorphous) in Figure 58). In this case, if a particular crystalline volume (specified
by the parameter minAmorphousVol) has an averaged damage concentration larger than the
threshold, the entire internal volume is assumed to be amorphous. The atomistic 3D
coordinates for Is and Vs are discarded for amorphous boxes because the definition of a point
defect is now meaningless in an amorphous region, and only their concentration is stored.
Finally, the material of the internal box changes from crystalline (such as silicon) to amorphous
(such as amorphous silicon) and an interface, which is capable of simulating a three-phase
segregation model, is created between them.
Amorphous Defects
An amorphous defect is a special defect assigned to each grid element of Sentaurus
Process KMC with a damage level above the amorphization threshold.
Material
Amorphous defects are always associated with amorphous materials. Each amorphous internal
element is paired with an amorphous defect.
Shape
The shape of an amorphous defect coincides with the element containing it. Amorphous layers
are created as a set of several amorphous defects. Consequently, amorphous layers can follow
any complicated amorphous geometry, but always as a set of Sentaurus Process KMC
elements.
Growth
Amorphous defects do not grow because they are limited to the size of the element. Amorphous
layers grow when new elements are amorphized and become amorphous. These amorphous
elements capture any incoming particle.
Recombination
These defects can recombine their damage and become crystalline silicon. Amorphous defects
do not emit particles; recrystallization is the only event they can perform.
To select the model to use, set KMC <material> Damage [Link] to true,
where <material> is the crystalline material.
Direct diffusion
Dopants can diffuse in amorphous materials using direct diffusion. The implemented
diffusivity is:
D m ( X ) = D m, 0 ( X ) exp ( – E m ( ( X ) ⁄ ( k B T ) ) ) (691)
Parameters
The parameters D m, 0 and E m needed for diffusion in amorphous materials are specified in the
PDB as Dm and Em, respectively, under the amorphized material:
pdbSet KMC <amorphous material> <dopant> Em <dopant> <value>
For example:
pdbSet KMC AmorphousSilicon B Em B 0.8
pdbSet KMC AmorphousSilicon B Dm B 1e-3
Indirect Diffusion
The observed boron diffusion in amorphous silicon does not seem to obey a standard Fick’s
law with constant diffusivity prefactors and activation energy, thereby making the direct
diffusion model in amorphous silicon inaccurate. A different model has been proposed
[29][30] that relies on the presence and distribution of dangling bonds and floating bonds and
that interacts with the boron atoms. In this model, an initial number n 0 of dangling bonds
(threefold-coordinated atoms) and floating bonds (fivefold-coordinated atoms) is created
during amorphization.
These dangling bonds and floating bonds are allowed to evolve using a simple direct diffusion
D d for dangling bonds and D f for floating bonds. Dangling bonds and floating bonds can
interact with them, annihilating each other. Dangling bonds also can interact with boron (or any
other user-defined impurity) with a proportionality constant α .
In this model, boron in amorphous silicon can exist in two different states: an immobile
4 3
fourfold-coordinated B state and a highly mobile threefold-coordinated B state. Boron
changes between these two states by capturing and releasing a dangling bond. The threefold
mobile boron is allowed to diffuse with a simple Arrhenius plot. Boundary conditions can be
set at the AmorphousSilicon_Silicon and AmorphousSilicon_Oxide interfaces for
dangling bond (DB) and floating bond (DB) recombination. Finally, despite the initial
concentration n 0 of dangling bonds produced by amorphization, an extra contribution of γ [ B ]
is added to produce a total DB concentration of:
nB = n0 + γ [ B ] (692)
where γ is a coefficient relating to the presence of boron atoms in amorphous silicon with an
excess of dangling bonds, and [ B ] is the concentration of boron in amorphous silicon.
B 4 + DB ↔ B 3 (694)
Implementation
To minimize the number of species and physical mechanisms, the implementation of indirect
diffusion through dangling bonds and FBs has been done by renaming:
■ Dangling bonds as interstitials in amorphous silicon
■ Floating bonds as vacancies in amorphous silicon
4
■ B as substitutional boron in amorphous silicon
3
■ B as interstitial boron in amorphous silicon
In this way, all that is needed is to allow I and V inclusion, and the following reactions in
amorphous silicon:
I+V→∅ (695)
B + I ↔ Bi (696)
The B interaction with I and further emission by B i are modeled as a regular kickout
mechanism. Consequently, the parameter α is modeled indirectly through the binding energy
and prefactor of the B i pair.
When amorphizing an element with volume ΔV , an initial number of n 0 ΔVδ Is and Vs will be
created inside, where δ is the silicon density. If there are boron atoms inside or boron atoms
are introduced through implantation or any other means (for example, using the select or
profile commands), an extra number of γ Is will be introduced per boron atom.
Parameters
The parameters needed for this model are introduced in different places. If you want to model
the indirect diffusion of boron in amorphous silicon (other impurities or amorphous materials
are accepted also), you can use aSi as an alias for AmorphousSilicon.
KMC Si Damage amorphous.n0 <value> Initial dangling bond and floating bond n0
percentage (versus silicon density).
Recrystallization
Two recrystallization models are implemented:
■ The simple KMC quasiatomistic model assigns a recrystallization rate to each amorphous
defect for recrystallization simulations. No orientation dependencies are allowed.
■ The fully atomistic model uses a lattice kinetic Monte Carlo (LKMC) method to simulate
the evolution of the amorphous–crystalline interface. This model includes orientation-
dependent solid phase epitaxial regrowth (SPER) and facet formation.
where <material> is the crystalline material (typically, silicon), and <model> is one of the
following:
■ LKMC model
■ Simple KMC quasiatomistic model
E recrys ( n ) parameters are specified as E_recryst. ΔV SPER is the activation volume for SPER
(dependency on hydrostatic pressure) called VFRecryst, and n is the percentage of
amorphous material around a given element. The time it takes to recrystallize an amorphous
cell depends on the number of amorphous neighbors; the more neighbors that are amorphous,
the longer it takes. The longer recrystallization takes, the more stable the amorphous defect, so
its activation energy is bigger. V 0Fermi accounts for the prefactor, including dependency on the
Fermi level. This dependency is introduced as:
V 0Fermi ( n ) = V 0 ( n ) ( 1 + K × Doping ) (698)
being V 0 ( n ) and the input parameter called V0_recryst. Doping is the local amorphous
element doping, and K is a calibration parameter (different for n-type and p-type materials)
called V0_recrys_ntype and V0_recrys_ptype, respectively.
Finally, c takes into account the changes in SPER regrowth due to local impurity
concentration. This correction term is modeled as:
[ Impurity ]
x
[ Impurity ] x
c = 5 × 10 22 Erecrys ( 50 ) + ---------------------------
1 – ---------------------------
-
5 × 10 22 f
- E ( Impurity ) (699)
Impurities
E f ( Impurity ) is the parameter controlling how much each impurity changes the planar
recrystallization activation energy (assumed to have 50% amorphous neighboring elements). x
is an exponent to control how this correction depends on the dopant concentration. A null
impurity concentration gives a zero correction, while an impurity concentration of 5 × 10 22
produces c = E f ( Impurity ) – E recrys ( 50 ) . Consequently, E f ( Impurity ) represents the planar
recrystallization activation energy if the sample contains only the impurity, while x allows it
to control the transition between these two opposite situations. These parameters are called
E_recrys and E_recrys_exponent, respectively in the PDB.
This model, in which elements with fewer amorphous neighbors recrystallize faster, extends
the ideas described in the literature [28] for amorphous elements. This simple method can
simulate the faster recrystallization of amorphous corners or thin amorphous panhandlers
embedded in crystalline silicon.
Finally, if a recrystallization event that will break the compactness of the amorphous layer is
detected, its recrystallization will be retarded by the parameter CompactFactor. This
prevents the formation of amorphous isolated islands and ensures a better compactness of the
amorphous material.
Parameters
15 1.72
40 2.7
70 2.7
95 3.3
99 5
NOTE To produce consistent notation, the suffix has changed from recryst
to recrys.
The unspecified values between two specified ones are computed by linear interpolation.
The parameters controlling the Fermi level and impurity concentration dependencies are
specified for each dopant (and material). For example, for boron, they are:
sprocess> pdbGet KMC Si B E_recrys
2.7
sprocess> pdbGet KMC Si B E_recrys_exponent
1
It is well known that the SPER velocity depends on the substrate orientation with approximate
ratios of 20:10:1 for orientations (100), (110), and (111), respectively. In addition, the
recrystallization of thin layers in fin transistors is shown as an ‘arrow tip’ shape formed by two
(111) planes that slow down the SPER, leading to the formation of polycrystalline silicon in
regions still not recrystallized.
This model, based on the literature [32], introduces the lattice in the amorphous–crystalline
interface and assigns a recrystallization event to each of the atoms there. When an internal
mesh element is detected to be amorphous as explained in Amorphization and
Recrystallization on page 442, the silicon lattice is recreated around it. This lattice takes into
account the wafer orientation specified in the init command. Those lattice atoms belonging
to crystalline elements are assigned a “crystalline” flag, while those belonging to the
amorphous element are assigned an “amorphous” flag. This produces the initial amorphous–
crystalline interface. At this point, even when the amorphous–crystalline interface still follows
the contour of the internal mesh, it is formed by a set of individual lattice atoms.
From this point, different recrystallization rates are assigned to each atom at the interface. The
interface is defined as the set of lattice atoms that, having an amorphous state, has at least one
first neighbor with a crystalline state. Any other lattice atom that does not belong to this
interface has a recrystallization rate of 0. This means that crystalline-lattice atoms have a zero
probability of recrystallizing (because they are already crystalline).
In some cases where regular SPER is very slow, random nucleation and growth can produce
polysilicon material [33] not simulated here. Inclusion of defective silicon created during
SPER also is not simulated.
For amorphous lattice atoms belonging to the interface (in other words, surrounded by at least
one crystalline lattice atom), a SPER rate is assigned. The model assumes that an atom in the
amorphous phase must form two undistorted bonds with its first neighbors in the silicon phase
to become crystalline. For amorphous atoms close to a (001) surface, this happens naturally.
For (011) surfaces, two adjacent amorphous atoms have to cluster together so that each atom
has two undistorted bonds. Finally, for (111) orientations, three atoms are needed to cluster
together.
Consequently, there will be three different recrystallization prefactors – K(1), K(2), and K(3)
– depending on the number of amorphous atoms needed to complete two undistorted bonds.
These K(1), K(2), and K(3) prefactors will be related but not proportional to the different (001),
(011), and (111) SPER velocities. In particular, K(2) and K(3) are probabilities for two and
three atoms, respectively, to come together in an amorphous phase and form spontaneously
undistorted crystalline bonds between them. Consequently, K(2) is expected to be smaller than
K(1), and K(3) is expected to be smaller than K(2), by several orders of magnitude.
( E recryst
LKMC + ( ε
xy + ε xz + ε yz )λ + PΔV
SPER + c )
ν LKMC = ν 0Fermi × K ( n ) × exp – ----------------------------------------------------------------------------------------------------------------------- (700)
kB T
K ( n ) are the K(1), K(2), and K(3) prefactors explained above where:
■ ν 0Fermi = 1 + K × Doping is a Fermi-level correction similar to Eq. 698.
recrys ( 50 ) in Eq. 697.
■
LKMC is taken as E
E recryst
■ ε xy , ε xz , and ε yz are the absolute value of the shear stresses.
■ λ is a parameter coupling the shear stresses.
■ PΔV SPER and c are the same terms as those defined in Eq. 697.
Figure 60 on page 453 shows the evolution of an amorphized fin during SPER when this model
is used, after 2-, 4-, and 6-minute annealing at 550°C . When the arrow tip is formed by the
two lateral 111 planes, the recrystallization is almost stopped (middle and right images). The
planes are formed by the presence of the oxide–silicon interface. Since the oxide does not
provide the needed undistorted bonds for silicon recrystallization, it is used as a starting point
for the (111) plane formation.
A similar model using LKMC for epitaxial regrowth can be read in Epitaxial Deposition on
page 507.
Figure 60 SPER evolution (blue is crystalline silicon; red is amorphous one) with time (left to
right) 2, 4, and 6 minutes at 550°C ) of a thin (20 nm) silicon fin. The oxide (brown
material) does not provide the correct template for the lattice atoms to form
undistorted bonds, stopping the recrystallization and leading the way to the (111)
planes. When the two (111) planes are formed, no further fast (100) SPER is
possible, and the SPER occurs through the very slow and defect-prone (111)
recrystallization.
Several corrections are applied to the recrystallization rate of a lattice atom. Three of them –
the pressure correction ( PΔV SPER ), the impurity correction (through the term c ), and the
Fermi-level correction ( ν 0Fermi ) – are the same in both this model and the simple KMC model
(see KMC: Quasiatomistic Solid Phase Epitaxial Regrowth on page 448).
Shear-Strain Correction
The correction for shear strain, ( ε xy + ε xz + ε yz )λ , is unique to this model. Its inclusion
allows the LKMC model to successfully simulate the evolution of line-shaped amorphized
regions. The experimental rate at the corners of line-shaped amorphized regions is very small,
producing a pinching of the SPER interface at the corners [34]. This can be simulated with the
inclusion of this shear stress term [32]. The shear strain is generated during amorphization due
to the different density of the amorphous phase. The expansion of the amorphous phase is not
possible in embedded amorphous regions. The compression of the amorphous phase leads to a
sharp gradient of shear stress at the corners. The model uses the shear strain to simulate the
anomalous regrowth patterns and facet formation experimentally seen in rectangular-shaped
amorphized regions, as shown in Figure 61 on page 454.
Z
ElasticStrainELXY [1]
1.1e-02
Y
6.1e-03
X 1.2e-03
-3.6e-03
0
-8.5e-03
-1.3e-02
Y [µm]
0.02
0.04
Figure 61 (left) shows the distribution of lattice atoms at the amorphous interface side. A (111)
plane, featuring a small nano-island, can be observed close to the interface. The trench formed
at the corner is due to the perturbation introduced by shear strain. Figure 61 (right) shows the
xy shear strain distribution; its maximum intensity occurs at the corner.
Since this model relies on the strain created by the different density of the amorphous material
versus the silicon one, some extra commands must be introduced in the script to account for it.
First, a new material to account for amorphous silicon in the mechanics simulator must be
introduced:
mater add name = Amorph
and Sentaurus Process KMC must be instructed that stress is being taken into account:
pdbSet KMC Stress 1
Finally, the synchronization between the atomistic and the mechanics simulator is automatic.
After every mechanics step, the KMC Stress 1 parameter instructs Sentaurus Process KMC
to update the stress and strain fields. After each diffusion (atomistic diffusion) step, Sentaurus
Process KMC updates the “Amorph” distribution by automatically calling the procedure
KMCSync written in [Link]. This procedure, which can be modified by the user but, in
principle, does not need to be, contains the lines responsible for updating the amorphous region
in mechanics to properly account for the strain and stress:
LogFile IL2 "A/C synchronization: KMC -> PDE"
kmc deatomize name=AC
sel Silicon z=1e22*AC name=Amorph store
Parameters
Table 53 lists the parameters used in this model. It is assumed that silicon (Si) is the crystalline
material and amorphous silicon (aSi) is the amorphous material.
KMC Si Damage [Link] <model> Use LKMC to set the model, KMC to unset. None
KMC Si Damage [Link].100 <value> Value for the prefactor associated with 100 SPER. K(1)
KMC Si Damage [Link].110 <value> Value for the prefactor associated with 110 SPER. K(2)
KMC Si Damage [Link].111 <value> Value for the prefactor associated with 111 SPER. K(3)
KMC Si Damage VFRecrys <value> SPER pressure correction (same as the KMC ΔV SPER
model).
KMC Si Damage E_recrys 50 <value> Activation energy for recrystallization (same as the LKMC
E recryst
KMC model).
KMC Si Damage V0_recrys_ntype <value> Fermi-level corrections (same as the KMC model). ν 0Fermi
KMC Si Damage V0_recrys_ptype <value>
KMC Si Damage E_recrys <value> Impurity corrections (same as the KMC model). c
KMC Si Damage E_recrys_exponent <value>
It is known that when (111) planes have formed in a simulation, the recrystallization beyond
these planes is defective, and silicon of low quality, or even polysilicon, is formed. A simple
predictive LKMC model for defect formation during SPER based on [35] and [36] is included.
Such modeling is performed by assigning two tags after every recrystallization event in the
lattice: a normal tag for sites sharing the substrate configuration, and a defective tag for sites
assumed not to bond to their neighbors and that form twin defects. Although this modeling
does not physically set the atoms in twin positions, but only assigns them a tag while remaining
in a perfect crystalline position, it is sufficient to predict the defective regions in silicon and to
slow down SPER in a similar way to experiments [35][36].
The definition of a coordination number, a keystone in this model to identify the microscopic
configurations, also is modified to distinguish between normal and defective sites. In this way,
the formation of defects slows down the recrystallization of neighboring sites.
The formed defects are represented in the non-LKMC module as an IV twin defect in the TDR
file. No actions are associated with them in the regular KMC simulator. Consequently, when
they are formed, twin defects do not disappear and do not interact with other particles. They
are created for users to identify the regions predicted to have highly defective silicon.
The only new parameter needed for the model is the probability of (111) recrystallizations to
produce twin defects. This parameter is specified in:
pdbSet KMC Si Damage [Link] <0-1>
Figure 62 Evolution of a thin (20 nm width) amorphized silicon fin (amorphous is red,
crystalline is blue) annealed at 600oC; arrow-shaped a/c interface is represented
by yellow atoms and formation of defects (twins) is shown as white spheres
Figure 62 on page 456 and Figure 63 show two examples where twin-defect formation is
involved. Figure 62 represents the formation of defects during the SPER of a thin silicon fin.
Figure 63 shows the defective triangular-shaped region, bounded by a (111) plane, typical of
SPER close to SiO2-filled trenches.
Redistributing Damage
The recrystallization event forces all IV pairs inside an amorphous defect to recombine. The I
or V excess is redistributed to the neighboring amorphous boxes if any. Otherwise, the excess
is recombined at the surface. If there is no free surface/interface neighboring amorphous boxes,
it is left as point defects. If the recrystallization front has crossed several elements, the amount
of excess point defects can be high. When the defects are deposited in the crystalline silicon,
they grow and ripen into extended defects depending on the annealing conditions.
Parameters
Impurity Sweep/Deposit
The recrystallization process may affect the impurity concentration. The recrystallization front
moves indium and other dopants away, changing the concentration profiles [37][38]. To model
this effect, the amorphous defects transfer impurities during recrystallization:
■ Dopants usually (recrysDeposit) remain in the box or move away with the
recrystallization front (see Figure 64 on page 459). The two available models for this
movement are Elements and Hops, chosen by the RedistributionModel parameter:
• The Elements model takes all the n particles in one internal element and moves
n × recrysDeposit to the adjacent one. If moving the dopant with the
recrystallization front increases the concentration of the neighboring element more
than a limit (recrysMaxTotal), it will be deposited in the current element, no matter
what its moving probability.
• The Hops model goes particle-by-particle inside the affected element and decides
whether the particle should be displaced a second neighbor distance, depending on
recrysDeposit. If the particle is not displaced, it remains where it was. The
algorithm continues with the next particle (which may still be the same one, pushing it
again through the adjacent element little by little) until no more particles remain. To
prevent the concentration of displaced particles being too high, the algorithm forces the
deposit probability to be 1 when a particle has 25 or more dopant neighbors. The
algorithm corrects this probability by linear interpolation starting when the number of
neighbors is a given a percentage of 25. This percentage is controlled by the parameter
recrysDepositThreshold.
■ When the box is recrystallized, if the remaining dopant concentration is bigger than the
solubility limit (C0_recrysMaxActive, E_recrysMaxActive) after SPER, the extra
dopants are deposited as impurity clusters. These clusters have a limited size, and there are
two different models to deposit these clusters depending on whether recrysMaxSize is
defined.
1022
SiO2 Total As
Concentration [cm–3]
Swept As
21
10
1020
Amorphous layer
before recrystallization
1019
0 5
Depth [nm]
Figure 64 Impurity sweep example showing that arsenic has been pushed through the
surface during recrystallization or SPER
The parameters for the recrystallization model are defined only for impurities in silicon (or
other full material). P_recrysDeposit and E_recrysDeposit define (prefactor and
energy) the probability for a dopant remaining in the same box after the recrystallization front
passes. Setting this value to 1 disables the swept of impurities. recrysMaxTotal establishes
the maximum concentration piled up during SPER. recrysMaxActive is the maximum
allowed concentration of an active dopant in the recrystallized areas. Finally, if
recrysMaxSize is defined (and it is by default), the old model to limit the maximum size of
the deposited impurity clusters will be used. To undefine this parameter, use:
sprocess> pdbUnSetDouble KMC Si B recrysMaxSize
This instructs Sentaurus Process KMC to use the new model to deposit impurity clusters after
SPER. This model deposits the clusters specified in recrysDeposit_Complex with the
probabilities defined there.
Finally, the active dopants after SPER are deposited as substitutional impurities, but you can
change this default using recrysDeposit_Active. This parameter accepts a list of
impurities and impurity pairs with the probability to be deposited. For example:
sprocess> pdbSet KMC Si F recrysDeposit_Active F .1
sprocess> pdbSet KMC Si F recrysDeposit_Active Fi .9
Parameters
Impurity Clusters
At certain concentrations, dopants are electrically inactive in crystalline silicon [7]. At the
same time, high I concentration can make a fraction of boron electrically inactive even when
its concentration is below its solubility [39]. This phenomena can be explained by a BmIn
clustering mechanism [15][40] or dopant precipitation [7]. Sentaurus Process KMC considers
these mechanisms, implementing the impurity clusters.
Recent studies [41] show that boron precipitation in amorphous silicon occurs through
formation of a boron complex, thereby making the inclusion of impurity clusters in amorphous
materials necessary. Consequently, pure dopant clusters, B n , are allowed in amorphous
materials and other materials modeled as simple.
The AnBo...Xm impurity clusters allow powerful modeling of the interaction of several
impurities between them. For example, fluorine–boron clusters (FnBoIm and FnBoVm) can be
tried to explain the effects of boron coimplanted with fluorine, or AsnPoVm clusters to allow a
satisfactory explanation, as seen in [52]. Nevertheless, the most common use of impurity
clusters is the traditional one where only one dopant is present. Consequently, except where
indicated, the description of impurity clusters that follows assumes that the clusters are in the
more common form AnXm with only one impurity involved. Starting with Version H-2013.03,
impurity clusters have a simple model for diffusion, that is, they can migrate. For more
information, see Diffusion on page 462.
Finally, impurity clusters do not need to be neutral. Consequently, the charge state of each
impurity cluster can be defined by using the parameter e0_Complex. When needed, an
impurity cluster with a particular charge as AnXmcharge will be denoted. In addition, clusters
can react with charged particles, as long as the reaction is not between a cluster and a particle
with the same sign, in other words, it is not an electrostatic repulsive reaction.
To simplify the following descriptions, this section describes, the AnXm clusters with only one
impurity, and neutral reactions (in other words, reactions similar to
A n X ma + AX b ↔ A n + 1 X mc + 1 , a + b = c ). To see how the model works when this is not the case,
see Charge Dependency on page 473.
NOTE Since P is used both for positive and phosphorus, clusters containing
phosphorus cannot have the P at the end of the cluster name. For
example, AsIP will be interpreted as a positive interstitial arsenic, while
AsPI or PAsI will be a phosphorus–arsenic–interstitial cluster; the same
is true for AsP, PAs, and so on.
Shape
An impurity cluster is an irregular agglomeration of impurities (A, B, ...) with or without
interstitials and vacancies (X) that can be written as AnBo...Xm, with n impurity atoms of type
A, o of type B, and so on, and m Is or Vs. If m = 0, it is a pure impurity cluster (the only ones
allowed in simple materials).
For Sentaurus Process KMC, the notation AnBo...Xm means any possible configurations with
n impurities of type A, o of type B, and so on, and m interstitial (vacancy) atoms. The
interstitial (vacancy) atoms can be both silicon self-interstitials or dopant atoms in an
interstitial position. Since Sentaurus Process KMC assumes all the AnBo...Xm configurations
to be the same with only one effective formation energy, A,B, ... are represented always as a
substitutional but inactive dopant or impurity, and X as a silicon interstitial or vacancy.
Figure 65 AsV impurity clusters simulated with Sentaurus Process KMC; blue is arsenic
and green is vacancy
Diffusion
A diffusion mechanism has been added to impurity clusters. This means that impurity clusters
can perform migration hops similar to the ones performed by point-defects, impurities, and
dopants. An impurity cluster migration event involves all its constituent particles: The whole
cluster is displaced. The particle coordinates are modified isotropically at a fixed distance of
λ = 0.384 nm in the orthogonal direction (parallel to the x-axis, y-axis, or z-axis).
where ν 0, m is the prefactor for each cluster, called Dm_Cluster in the parameter database,
and E m is the migration energy for each cluster, specified as Em_Cluster in the PDB.
Parameters
As previously stated, the names of the diffusion parameters for impurity clusters are
Dm_Cluster and Em_Cluster:
sprocess> pdbGet KMC Si As Dm_Complex As2V
1e-3
sprocess> pdbGet KMC Si As Em_Complex As2V
1.5
Limitations
The migration events for impurity clusters, although similar to the ones for single particles, do
not share all their features. In particular, the following limitation applies:
■ The diffusivity for impurity defects is global, isotropic, and constant. There are no SiGe,
stress, strain, or charge dependencies on diffusivity.
■ Impurity defects do not interact with interfaces at all (Si–SiO2 and so on). All interfaces
are considered mirrors.
■ Periodic boundary conditions or mirror conditions are correctly applied to the limits of the
simulation box.
■ There is no recombination probability at the boundaries. This means that the parameters
sinkProbTop, sinkProbBottom, sinkProbBack, sinkProbFront, sinkProbLeft,
and sinkProbRight do not apply to diffusing impurity clusters.
■ Speedup migration does not apply to impurity cluster diffusion: no long hops or double
hops.
Growth
Impurity clusters grow trapping neutral mobile particles (see Figure 66).
(a) Growth (b) Growth (c) Growth
Recombination
Emission
Emission
(g) (h) I V
A
Ai Av
Frank–Turnbull
Impurity Clusters
Frank–Turnbull and
Emission
Figure 66 Impurity clusters are disordered agglomerations of dopants and silicon point
defects that trap and emit particles. FT mechanisms and IV recombinations also
are possible.
a b c
An Im + I ↔ An Im + 1
(702)
a +A ↔Ab c
An Im i n + 1 Im + 1
The trapping is not automatic as it was for extended defects. In extended defects, the binding
energy is always positive, so the trapping is always allowed. For impurity clusters, the cluster
can grow in both Is (Vs) or dopants. The energy between the initial and final states is not always
favorable. Sentaurus Process KMC computes the probability for an impurity cluster AnIm to
trap an I or Ai as:
E capture
P capture = exp – -------------------- (703)
kB T
where:
AnIm
E capture = E barrier ( A n I m ) + max ( 0, – E AnIm b ) (704)
The binding energies E AnIm b are computed using the potential impurity cluster energies:
E AnIm b ( I ) = E pot ( A n I m + 1 ) – E pot ( A n I m ) (705)
The potential energy for the neutral A i , assuming that the substitutional A is negative, is given
–
by – E b ( A i ) – e ( –, 0 ) ( A i ) , where the binding energy includes the pressure and Ge corrections.
The minus sign accounts for the fact that the binding must have a sign that is opposite that of
the potentials.
Initial Seeds
The clusters A 2 I , AI 2 , A 2 I 2 , and A 2 are the initial seeds for the impurity cluster ripening. The
formation of A 2 is discussed in Percolation on page 465. The others are formed by the
reactions:
a b c
■ A + Ai ↔ A2 I
a b c
■ A i + I ↔ AI 2
a b c
■ Ai + Ai ↔ A2 I2
a a c
■ A + A ↔ A2
where a and b are the charge states for the reactants, and c for the result. All these reactions
provide a cluster starting with impurities or impurity pairs. In the cases where a + b ≠ c for the
first reactions or 2a ≠ c for the last one, the reaction is not neutral, and the special
considerations of Charge Dependency on page 473 should be taken.
These initials seeds can be enabled and disabled independently by the parameter
ReactionsPointDefect, as explained in Enabling and Disabling Interactions on page 412.
Percolation
Some dopants deactivate without visible diffusion when they are in high concentrations [42].
They also can form impurity clusters [43]. Sentaurus Process KMC models this deactivation
allowing the substitutional dopants to interact with impurity clusters or with other dopants right
after its inclusion in the simulation (for example, after being implanted or selected).
As can react with As giving As2. Substitutional As does not migrate, so this reaction is only
possible when two arsenic are close enough to each other. The higher the arsenic concentration,
the higher this possibility. An As + As2 reaction and As3 + As reaction also are possible. These
species also are immobile. They react only when they are close enough. Consequently, the
probability of forming an As4 cluster using this mechanism is low because it needs four As
atoms close enough to each other. This probability increases with the concentration. With high
concentration, the probability is not negligible, and the substitutional As react with each other
forming As clusters and becoming inactive.
In simple materials, such as amorphous silicon, this ‘percolation’ model is the only one
allowing impurity clusters to be formed. Since all particles are neutral in simple materials, the
percolation reaction does not constitute an exception there.
Parameters
The potential and binding energies for impurity clusters are defined only in materials with
full and simple modeling, including amorphous. They are defined in arrays whose index is
the cluster name. For example, for F clusters:
sprocess> pdbGet KMC Si F Etotal_Complex
FV2 -4.20
F2 -0.5 F2V -4.63 F2V2 -7.07
F3 -1 F3V -7.08 F3V2 -9.04
F4 -1.5 F4V -7.12 F4V2 -11.47
F5 -3 F5V -8.5 F5V2 -13.29
F6 -4.5 F6V -9.7 F6V2 -16.09
F7V 3
FI2 -4.20
F2I -4.63 F2I2 -7.07
F3I -7.08 F3I2 -9.04
F4I -7.12 F4I2 -11.47
F5I -8.5 F5I2 -13.29
F6I -9.7 F6I2 -16.09
F7I 3
A particular value for only one element also can be obtained. The current potential energy for
As4V is:
sprocess> pdbGet KMC Si As Etotal_Complex As4V
-5.4
NOTE The impurity cluster model and the activation or deactivation of clusters
can be calibrated further fitting the potential energies. For further
accuracy, Advanced Calibration also can be used.
When a particular energy for a particular configuration is not specified (in other words, when
input in the parameter file exists for an AnIm or AnVm impurity cluster), Sentaurus
Process KMC assumes this configuration to be unstable. When a barrier energy is not
specified, a value of 0 eV (no barrier) is assigned.
All impurities are allowed to form impurity clusters with I, V, or both. If an impurity does not
form impurity clusters, the default can be changed, modifying the parameters and the
interactions (see Interactions on page 475).
Emission
Impurity clusters can emit both neutral interstitials (vacancies) or mobile dopants:
An Im ↔ An Im – 1 + I (708)
An Im ↔ An – 1 Im – 1 + Ai (709)
E m is the migration energy of the emitted species, and both E AnIm b ( I ) and E AnIm b ( A i ) have
been shown above. The emission prefactors for dopant and I or V emission depend on the
model used.
When UseCaptVol_Complex is set to true, the emission prefactors are proportional to the
capture volumes of the impurity clusters:
■ ν 0, emission ( A i ) = K ( A i )V capt ( A n I m )
■ ν 0, emission ( I ) = K ( I )V capt ( A n I m )
V capt ( A n I m ) is the capture volume for each impurity cluster, defined in the PDB as
CaptVol_Complex, and the constant K is a parameter named D0_Cluster in the PDB.
NOTE The unit of the capture volumes is the capture volume of one single
point defect.
If UseCaptVol_Complex is set to false, Sentaurus Process KMC uses the default old
model, in which the capture volumes are internally fixed to be m for I emission and min(n, m)
for A i emission. The use of this default model is not suggested, since it does not lead to
microscopic reversibility.
When a particle is emitted, the impurity cluster tests if the number of remaining particles is
enough to maintain the cluster. If there is only an interstitial (vacancy) or an interstitial and a
dopant, the cluster dissolves leaving an interstitial or a mobile, paired dopant, respectively.
Parameters
The notation for these prefactors is as follows: two strings are needed, separated by a comma.
The second string represents the emitted particle for which the parameter is being defined. The
first string represents the type of cluster. This first string is needed to define a different prefactor
for emitting a Bi from a B cluster rather than from a hypothetical BF cluster. For example, the
emission of Bi from a B2I2 will use B,Bi, while from a B2F3I2 will use BF,Bi. This last one
can be defined in KMC Si B and KMC Si F, but if defined in both of them with different values,
it will produce an error.
The notation for capture volumes is as following: if only the cluster is specified, that applies to
all emissions for that particular size, but if a cluster size and a particular particle are specified,
separated by a comma, that applies to that cluster emitting only that particle. For example, the
following applies only to emission if I by B2I2:
pdbSet KMC Si B CaptVol_Complex B2I2,I 6
The rest of the parameters needed for emission are the same as in Growth on page 463.
Recombination
Impurity clusters can trap incoming neutral Vs (Is) and recombine them with internal Is (Vs):
An Im + V ↔ An Im – 1 (713)
and:
E AnIm b = E ( A n I m – 1 ) – E ( A n I m ) (716)
After the IV pair recombination, the cluster size is tested and, if necessary, dissolved, as
previously explained.
Parameters
The parameters used for recombination of point defects are the same as in Growth on page 463.
Frank–Turnbull Mechanism
A generalized Frank–Turnbull (FT) mechanism is the emission of a neutral V (I) from an AnIm
(AnVm) impurity cluster by the formation of a Frenkel pair (IV):
An Im → I + V + An Im → An Im + 1 + V (717)
or:
An Vm → I + V + An Vm → An Vm + 1 + I (718)
being:
E emission ( V ) = E m ( V ) + max ( 0, E AnIm b ( V ) ) (720)
and:
E AnIm b ( V ) = E pot ( I ) + E pot ( V ) + E pot ( A n I m + 1 ) – E pot ( A n I m ) (721)
where the potential energies for the clusters and the point defects include pressure and Ge
corrections.
Parameters
The parameters used are the same as in Growth on page 463. The potential energies for
interstitial and vacancies are specified for the material as Ef:
sprocess> pdbGet KMC Si I Ef
4.0
sprocess> pdbGet KMC Si V Ef
3.8
The corrections to the potential energies for I and V are VF and EfGe for pressure and Ge,
respectively:
sprocess> pdbGet KMC Si I EfGe
I 0.0
sprocess> pdbGet KMC Si I VF
I 0.0
The prefactor for I and V emission is computed automatically for impurity clusters with only
one dopant (for example, BnIm or AsnVm clusters) and must be specified for other cases. For
example, in a case with AsPV clusters, the prefactors for Frank–Turnbull emission are
specified as follows:
pdbSet KMC Si As D0_Cluster AsP,V 50
pdbSet KMC Si As D0_Cluster AsP,I 50
Complementary Recombination
Some impurities diffuse using both the interstitial and vacancy mechanisms. For these cases,
the impurity clusters can react with both of them. For example, an AnVm impurity cluster can
grow trapping AsV, as previously explained, and can interact with an incoming Asi, trapping
the As and recombining the I with one internal vacancy. This implies to take into account the
reaction:
As n V m + As i ↔ As n + 1 V m – 1 (722)
These complementary recombinations of neutral particles are allowed with a probability of:
exp ( – E capture ⁄ ( k B T ) ) E capture > 0
P capture = (723)
1 E capture ≤ 0
E pot ( A n + 1 V m – 1 ) – E pot ( A n V m ) – E f ( V ) – E f ( I ) – E pot ( A i ) m>0
E capture = E pot ( A n + 1 V m ) – E pot ( A n V m ) – E pot ( A i ) + E m ( I ) – E m ( A i ) m ≡ 0, n > 1 (724)
E ( Ai → A ) m ≡ 0, n ≡ 1
Parameters
The parameters used are the same as in Frank–Turnbull Mechanism on page 469. The potential
energy for the paired dopant is the binding energy of the pair corrected with the Fermi-level
dependency.
Complementary Emission
To maintain microscopic reversibility, the reaction reverse to the complementary
recombination must be defined (see Figure 68).
Figure 68 Example of complementary emission: the cluster emits an interstitial that takes
an impurity and generates a vacancy; blue is arsenic and white is silicon
where:
E AnIm b ( A V ) = E f ( I ) + E f ( V ) + E pot ( A n – 1 V m + 1 ) – E pot ( A n I m ) (727)
Parameters
For simple impurity clusters, those with only one impurity (BnIm, AsnVm, and so on), the
prefactor for emission is calculated automatically. For complex impurity clusters, (AsnPoVm
and so on), the prefactor must be written explicitly:
pdbSet KMC Si As D0_Cluster AsP,Asi 50
Charge Dependency
Neutral Reactions
In the previous discussions, all the impurity clusters are assumed to be neutral and,
consequently, there are no explicit charge Fermi-level dependencies. Nevertheless, there are
nonexplicit dependencies. In particular, for clusters emitting impurity-paired dopants, the
emission energy depends on the binding of the paired dopants, which, in turn, contains a Fermi-
level dependency.
The Fermi-level dependency of the binding energy is related to the level of the neutral-paired
dopant in the band gap. This level also depends on the temperature and the bandgap narrowing.
All the previous dependencies are included by default, except the indirect dependency on the
bandgap narrowing, which can be switched off and on using:
pdbSet KMC <material> BandGap Correct_Complex <true/false>
Nonneutral Reactions
The potential energy for B n I ma is defined with respect to a ground state that produces the
impurity cluster in a neutral reaction. This means that:
nB - + mV 0 + – ( a + n ) e a + n < 0
-
(729)
( a + n )h + a + n > 0
is the ground state for As n V ma . Consequently, an account of holes and electrons must be
followed during the reaction. In particular, calling the initial cluster i and the final one f , these
accounts are:
■ h i+ = a + n a + n > 0 , e i- = 0a+n>0
0a+n<0 –a–na+n<0
+ = b+on+o<0 -
, ef1
0b+o>0
■ h f1 =
0b+a<o –b–ob+o<0
The final state must account for the charge in the emitted particle. Calling d the charge of the
substitutional dopant of the emitted species X (in other words, d = – 1 if X c = B ic or d = 0
if X c = I c ), the final accounts for holes and electrons are:
h f+ = h f1 + c – d c – d > 0
+
■
0c–d<0
e f- = e f1 + 0 c – d > 0
-
■
d–cc–d<0
This allows writing the first energetic term for the binding energy as:
E ch arg es = ( e i- – e f- ) ( E g – e F ) + ( h i+ – h f+ )e F (730)
The binding energy of the emitted particle is also needed, including the transition from the
neutral state d to the current emitted state:
d
E b ( X c ) = E b ( X d ) + E X + ( d – c )e d – c > 0 → X c
-
(732)
( c – d )h + c – d > 0
NOTE All the previous energies (potential, binding, migration, and so on) are
computed including hydrostatic pressure, SiGe, and bandgap narrowing
local corrections.
Interactions
You can modify all the interactions involved in the impurity cluster model. The impurity
clusters can be enabled or disabled with the Boolean parameter Implement_Complex. For
example, to disable the FnVm impurity clusters, use:
pdbSet KMC Si F Implement_Complex 0
When the impurity clusters are enabled, you can set and unset the particular reactions using the
ReactionsCluster parameter:
pdbSet KMC Si <dopant> ReactionsCluster <reaction> <true/false>
where reaction is a string with two fields, separated by a comma. The first field is the name
of the impurity cluster, and the second is the name of the reacting particle. Spaces are not
allowed between these fields. The setting or unsetting of these reactions enables or disables the
specified reactions and its reverse ones. This is performed to maintain the microscopic
reversibility. For example, to disable the capture of a vacancy by As2 to growth to As2V:
pdbSet KMC Si As ReactionsCluster As2,V false
This also disables the inverse reaction, in other words, the emission of V by As2V. To enable
the recombination of I by an As4V cluster:
pdbSet KMC Si As ReactionsCluster As4V,I true
Enabling a reaction does not mean that the reaction will happen; it depends on the energetics.
If the reaction is unfavorable, it will not occur (but the inverse will). Disabling a reaction will
forbid the reaction to occur, even if it is described by the parameters as favorable. Any reaction
not listed in ReactionsClusters is disabled.
To enable impurity clusters with more than one dopant (for example, an As2PV), the switches
for both the As and P clusters should be on:
pdbSetBoolean KMC Si As Implement_Complex 1
pdbSetBoolean KMC Si P Implement_Complex 1
The energy and capture volume of this new cluster must be defined as usual:
pdbSet KMC Si P Etotal_Complex PAs2V -3.0
pdbSet KMC Si P CaptVol_Complex PAs2V 1.3
Finally, for AsV emission from the cluster As2PV, allow the reaction AsP + AsV ↔ As 2 PV by
defining:
pdbSet KMC Si P ReactionsClusters PAs,AsV true
This also enables the formation of the clusters through the reaction of these particles.
Parameters
To show the parameters involved in the impurity cluster reactions, arsenic is used as an
example. AsV clusters are allowed:
sprocess> pdbGet KMC Si As Implement_Complex
1
Since AsV clusters are allowed in the Sentaurus Process KMC simulation, they require some
enabled reactions. The reactions are explained in Percolation on page 465 and allow
deactivation without arsenic diffusion:
sprocess> pdbGet KMC Si As ReactionsCluster
As2,As true
As3,As true
The following rules must be satisfied to allow a reaction between a particle and an impurity
cluster:
■ The first field must be a correct impurity cluster, and the second must be a defined particle.
■ The particle must be an interstitial or a vacancy of a paired dopant. The resulting cluster
must be defined (in Etotal_Complex and CaptVol_Complex).
■ Only nonrepulsive interactions are allowed, except for percolation. The reactions do not
need to conserve the charge.
Impurity clusters require an initial impurity cluster or ‘seed’ to begin the ripening. This initial
cluster is formed with the reactions of two particles. These reactions are explained in Enabling
and Disabling Interactions on page 412.
■ Third, for these clusters to form, you must introduce a reaction path:
pdbSetArray KMC aSi B ReactionsPointDefect { B,B true }
pdbSetArray KMC aSi B ReactionsCluster { B2,B true }
■ None of this will happen without a mobile particle allowing for growing and emission:
pdbSet KMC aSi B Dm B 3.0e-3
pdbSet KMC aSi B Em B 2.1
For example, interstitials and vacancies can be triple negative, double negative, double positive,
triple positive, neutral, positive, or negative. Some species and charged states are listed in
Table 54. You can customize these definitions. The maximum charge state for point defects is
± 3 and for impurity paired defects ± 2 .
C C0,Ci0
C, Ci
Charge states can be modeled using different approaches. The most intuitive approach is
adding a charge ‘label’ to each particle. Nevertheless, because the migration energy (and
maybe some other parameters) change with the charged state, each of these states requires a
full set of parameters.
The charge is represented in a quasiatomistic approach to account for the fact that the electron
transport is several orders of magnitude faster than the atomic transport. The charge
magnitudes (for example, Fermi level and bandgap width) are associated with each internal box
in the simulation. Consequently, there can be local changes between different boxes, but the
charge magnitudes are considered to be homogenous in each Sentaurus Process KMC internal
element.
Assumptions
Sentaurus Process KMC takes the energy reference in the valence band. The following
assumptions also are taken:
■ Charge reactions are faster than structural reactions [44]. Consequently, the charges are
updated instantaneously.
■ Formation energy for neutral species (for example, Ef(I0)) are not dependent on the Fermi
level. Sentaurus Process KMC takes the formation energies for neutral species as
parameters using them to compute the energies for the nonneutral species.
■ Potential energies for impurity clusters are not dependent on the Fermi level. For example,
a
Sentaurus Process KMC defines the potential energy for As n V m as the energy returned by
+ - a
the system in the reaction nAs + mV 0 + ( n – a )e → As n V m (assuming that n – a > 0 ).
■ The electronic level dependency with temperature is proportional to the bandgap
temperature dependency. The same applies for the bandgap narrowing. This assumption
allows Sentaurus Process KMC to establish proportionality relations to compute the
electronic levels and bandgap narrowing at different temperatures using a known value for
one particular temperature.
■ Substitutional dopants are always ionized; that is, substitutional boron is always B– and
substitutional arsenic As+.
■ The properties inside each Sentaurus Process KMC element are constant. Properties can
change between internal elements.
the energy needed to take an electron from an I0 and obtain I++ e– is denoted as e(+,0), and is
measured from the valence band. The formation energy for a positive interstitial is:
+ 0
E f ( I ) = E f ( I ) + e F – e ( +,0 ) (737)
where e F is the Fermi level. Consequently, the concentration between different interstitial
charge species using as a reference the neutral concentration is:
[I ]
0 e F – e ( +,0 )
- = exp ---------------------------
-------- (738)
+ kB T
[I ]
[I ]
- e F – e ( 0, - )
- = exp ---------------------------
-------- (739)
0 kB T
[I ]
The electronic levels (for T = 0 K) are specified in the parameter database as e0. They are
defined only for silicon. They can be changed with:
pdbSet KMC Si <I/V/impurity> e0 <species> <n>
for example:
pdbSet KMC Si I e0 IP 0.35
Parameters
The bandgap levels for interstitials and vacancies can be retrieved with:
sprocess> pdbGet KMC Si I e0
IM 1.0
IP 0.35
sprocess> pdbGet KMC Si V e0
VMM 1.06
VM 0.6
VP 0.03
VPP 0.13
NOTE The modification of these parameters affects both extrinsic and intrinsic
diffusion.
0 0 +
The activation energy for the B i breakup is E b ( B i ) + E m ( I ) . Because electronic levels scale
with E g (as shown below), a slight dependency with T is introduced in these calculated binding
energies.
Temperature Dependency
The bandgap width used in Sentaurus Process KMC is given by the expression [47]:
2
AT
E g ( T ) = E g ( T=0 ) – ------------- (741)
B+T
Using the assumption of proportionality with the band gap, Sentaurus Process KMC assumes
that the electronic levels at different temperatures can be computed as:
Eg ( T )
e ( j + 1, j ) ( T ) = e ( j + 1, j ) ( 0 ) × -------------- (742)
Eg ( 0 )
Effective state density of conduction and valence bands follows similar expressions:
T expNc
N c ( T ) = N c ( 300 ) × --------- (743)
300
T expNv
N v ( T ) = N v ( 300 ) × --------- (744)
300
Finally, Sentaurus Process KMC uses the values to compute the intrinsic levels and intrinsic
carrier densities:
Eg ( T ) kB T Nv
e i ( T ) = -------------- + --------- ln ------ (745)
2 2 N c
Eg ( T )
ni ( T ) = N c N v × exp – -------------- (746)
2k B T
Parameters
The needed parameters are specified in the parameter database under the folder BandGap:
They can be changed using pdbSet. For example, to set the bandgap width at 0 K, use:
pdbSet KMC Si BandGap Eg0 1.17
The parameters for the bandgap temperature dependency are defined for silicon in the
BandGap folder:
sprocess> pdbGet KMC Si BandGap Eg0
1.17
sprocess> pdbGet KMC Si BandGap Agap
0.000473
sprocess> pdbGet KMC Si BandGap Bgap
636.0
sprocess> pdbGet KMC Si BandGap Nc300
3.2e+19
sprocess> pdbGet KMC Si BandGap Nv300
1.8e+19
sprocess> pdbGet KMC Si BandGap expNc
1.5
sprocess> pdbGet KMC Si BandGap expNv
1.5
Fermi-Level Computation
Sentaurus Process KMC computes the Fermi level assuming charge neutrality and Fermi–
Dirac statistics. It simply makes the number of charges in each cell element equal to the
concentration of substitutional dopants and charged impurity clusters in the box. The presence
of mobile charged particles is neglected.
The charge concentration for each element is an average of the charge concentration in the
neighborhood. The averaging radius is taken as the parameter smoothRadius. The power of
this average is controlled with the parameter smoothPower. This average is important because
of the atomistic nature of the simulation.
Without this averaging, a medium-dose doped sample, with some elements filled up with
particles and some empty ones, could be considered as a set of intrinsic (empty) boxes and a
few boxes with a very high concentration.
20 –3 3
For example, a dopant concentration of 1 × 10 cm corresponds to one particle in 10 nm .
3
The volume of an internal element may be as small as 1 nm . This means one particle per
10 boxes. Without any charge averaging, a moving interstitial would diffuse intrinsically in
nine empty boxes and extrinsically in one box. With the average, the interstitial ‘sees’ the right
20 3
concentration of 1 × 10 cm and diffuses according to this concentration (see Figure 69).
1011 1014
V0
1013 V–
1010 V––
Concentration [cm–3]
Concentration [cm–3]
1012 V+
108 V++
1011
107 1010
V0
V– 109
106 V––
V+ 108
105 V++ 107
10 20 30 40 50 60 70 80 90 100 10 20 30 40 50 60 70 80 90 100
Depth [nm] Depth [nm]
Figure 69 Simulated vacancy profiles for a p-sample (from 30 to 60 nm) for different
vacancy charged states: (left) smoothing out the charge concentration and (right)
incorrect results without smoothing
Parameters
NOTE To switch off this local computation and to set up a constant, user-
defined dopant concentration, experienced users may want to use:
There are two reasons for local changes in the Fermi level:
■ Mobile particles diffusing between elements with different Fermi levels
■ Change of the electronic concentration in one element
Besides, each time a new particle appears or disappears because of pairing or breakup
reactions, it is necessary to ensure that the charge state of the new particle is consistent with its
local Fermi level.
Different mechanisms are implemented to maintain the right charge ratios. All are performed
at the same time, but they apply to different scenarios.
An update algorithm periodically reviews all the particles and updates the Fermi level and the
proportions of charged particles in each element. The algorithm:
■ Smooths the charge distribution.
■ Computes the Fermi level for each box using the charge neutrality assumption.
■ Establishes the appropriate charge ratios.
NOTE This update algorithm slows down the simulation. It is crucial to follow
the changes in the Fermi level, but without spending too much CPU
time.
Mobile Particles
Mobile particles see different Fermi levels when they move from one element to another.
Therefore, it is needed to update its charge each time it crosses the boundaries between boxes.
At the same time, particles change their charge state to maintain the proper charge distribution;
consequently, they need extra updates. This is implemented with an algorithm that updates the
charge of mobile particles each time they perform a migration jump. This algorithm also
considers the migration frequency of each particle, as explained in [46], to avoid artificial
concentration increases in the slow diffusing species concentration.
n(x)
ni
Concentration
1–(x) 1+(x)
x
1–7
Figure 70 A mobile particle (I–) sees different electronic properties when jumping from one
element to a different one. Its charge state must be updated to reproduce the
expected macroscopic concentration.
After pairing or breakup reactions, some species appear and disappear in the Sentaurus
Process KMC elements. To ensure that the concentration of these species maintains the correct
proportions, a breakup, pairing charge update mechanism is implemented. It computes the
probability of the new particles to be in a particular charge state.
Parameters
The charge update algorithm only uses one external parameter in the database called
ChargeVarPercent and accounts for the maximum relative error allowed for the Fermi-level
updates. This parameter is a compromise between accuracy and efficiency.
Decreasing its value leads to more accurate but slower simulations, and the charge model can
overload your computer resources.
Electric Drift
The charge model of Sentaurus Process KMC considers the:
■ Introduction of an electric field, related to the local charge variations.
■ Existence of forces acting over the charged species; these forces generate a bias in the
diffusion – the electric drift.
Sentaurus Process KMC models electric bias modifying the jump probabilities to account for
the space anisotropy produced when an electric field is present.
A particle inside the electric field can jump in both directions, but the probability of jumping
following the electric field is higher. Consequently, a ‘migration barrier’ is implemented. The
barriers are related to the relative concentration of each species. For example, for an I+ jumping
from a position x 2 in a box to a position x 1 in a different box, if P ( x 2 ) > P ( x 1 ) , where P is
the probability of an interstitial having a positive charge, the jump is always possible.
Otherwise, there is a probability of 1 – [ P ( x 2 ) ] ⁄ [ P ( x 1 ) ] of being rejected.
P ( x2 ) [ e F – e ( +,0 ) ] 2 – [ e F – e ( +,0 ) ] 1
-------------- = exp --------------------------------------------------------------------------- (747)
P ( x1 ) kB T
P ( x2 ) e F 2 – e F 1
-------------- = exp ---------------------- (748)
P ( x1 ) kB T
The subscripts 1 and 2 refer to magnitudes in different elements. Figure 71 shows an energy
diagram of this process. The number of rejected jumps for each axis is shown in a report at the
end of the annealing.
eF2 – eF1
x1 x2
Bandgap Narrowing
Sentaurus Process KMC includes doping-induced energy shifts of the conductions band
minimum and the valence band maximum. The narrowing of the fundamental band gap is
presented as the function [48] for n-type semiconductors:
+ 1/4 + 1/3 + 1/2
ΔE g dc = A cn1/4 ----------
N
+ A cn1/3 ----------
N
+ A cn1/2 ----------
N
10 18 10 18 10 18
(749)
Since the distance between bands shrinks, Eq. 753 gives negative values.
Ec
DEv
Ec
eF
eF
DEc
Ev Ev=0
Figure 72 Bandgap narrowing; Sentaurus Process KMC assumes the valence band has
zero energy
Parameters
The parameters A cn1/4 and so on are extracted from [47] and are listed in the parameter
database for BandGap in silicon. For the conduction band:
pdbGet KMC Si BandGap Acn1_4
0
sprocess> pdbGet KMC Si BandGap Acn1_3
-0.01484
sprocess> pdbGet KMC Si BandGap Acn1_2
0.00078
sprocess> pdbGet KMC Si BandGap Acp1_4
-0.01627
sprocess> pdbGet KMC Si BandGap Acp1_3
0
sprocess> pdbGet KMC Si BandGap Acp1_2
-0.00018
There are two models available for modeling the narrowing due to stress. A simple one and a
full narrowing model.
The full narrowing model is chosen setting the pdb parameter FullNarrowing to true. This
model is the same as in Bandgap Narrowing on page 268:
ΔEci = D ci ( ε xx + ε yy + ε zz ) + D cxi ε xx + D cyi ε yy + D czi ε zz (754)
2 2 2
ΔEvi = D vi ( ε xx + ε yy + ε zz ) ± 0.5D vbi ( ( ε xx – ε yy ) + ( ε yy – ε zz ) + ( ε zz – ε xx ) )
(755)
2 2 2
+D vdi ( ε xy + ε xz + ε yz )
Sentaurus Process KMC also uses the averaged values of conduction and valence bands
energies:
3 – Δ-----------
Eci
-
= – kT log --- e
1 kT
ΔE cs (756)
3
i=1
2 Δ-----------
Evi
-
ΔE vs = kT log --- e
1 kT
2
(757)
i=1
When Ge is present, the narrowing is computed as a linear interpolation between the narrowing
produced by strain for pure Si ( ΔE gs
Si ), and the one for pure Ge ( ΔE Ge ). In this way, the total
gs
narrowing for Si1–xGex is:
ΔE gs = ΔE gs
Si + x ( ΔE Ge – ΔE Si )
gs gs (760)
Parameters
The parameters used for the full model for pure Si are defined in the Sentaurus Process KMC
dataset as:
sprocess> pdbGet KMC Si BandGap EcDilatational
1 -8.6
2 -8.6
3 -8.6
sprocess> pdbGet KMC Si BandGap EvDilatational
1 -2.1
2 -2.1
sprocess> pdbGet KMC Si BandGap EcDeviatoric(1)
1 9.5
2 0.0
3 0.0
The parameters used for pure Ge are similar to the ones for pure Si, but with the Ge. prefix:
sprocess> pdbGet KMC Si BandGap [Link]
1 0.59 2 0.59 3 0.59
sprocess> pdbGet KMC Si BandGap [Link]
1 -1.24 2 -1.24
sprocess> pdbGet KMC Si BandGap [Link](1)
1 -9.42 2 0.0 3 0.0
sprocess> pdbGet KMC Si BandGap [Link](2)
1 0.0 2 -9.42 3 0.0
sprocess> pdbGet KMC Si BandGap [Link](3)
1 0.0 2 0.0 3 -9.42
sprocess> pdbGet KMC Si BandGap [Link](1)
1 2.55 2 5.50
sprocess> pdbGet KMC Si BandGap [Link](2)
1 2.55 2 5.50
sprocess> pdbGet KMC Si BandGap [Link]
1.75
Finally, the simple (0) or full (1) narrowing models are selected:
sprocess> pdbGet KMC Si BandGap FullNarrowing
0
The narrowing due to an alloy concentration is computed as (assuming, in this example, that
Ge is the alloy in Si material):
ΔE gGe = – [ Ge ] ( β 1 + β 2 [ Ge ] ) (761)
where [ Ge ] is the germanium concentration, and β 1, β 2 are the parameters needed for the
quadratic interpolation between the silicon gap (1.12 eV) and the Ge gap (0.78 eV). They are
respectively called GeNarrowing and GeNarrowing2.
Parameters
sprocess> pdbGet KMC Si BandGap GeNarrowing
6.8e-24
sprocess> pdbGet KMC Si BandGap GeNarrowing2
0
is used to correct e i , n i , e F , and the dopant levels in the gap, e ( j, j + 1 ) ( A ) . For these last
ones, they are assumed to be proportional to the band gap. This means that these new values,
after applying the bandgap narrowing correction, are:
ΔE g
= e ( j, j + 1 ) ( A ) 1 + ----------
corrected
e ( j, j + 1 ) ( A ) (763)
Eg
Whenever a Sentaurus Process KMC model needs a bandgap level, the bandgap narrowing–
corrected value is used. The only exception is the activation energy for the impurity pair
emission from impurity clusters where the narrowing correction can be controlled by:
pdbSet KMC <material> BandGap Correct_Complex <false/true>
NOTE The bandgap narrowing due to doping, stress, and SiGe is always
switched on by default. To disable it, set the proper parameters to zero.
+ - 0
I + B ↔ Bi (765)
- 0 +
Bi ↔ Bi ↔ Bi (766)
0 +
I ↔I (767)
Direct breakup of Bi+ is not included because I++ is not implemented. Boron effective
diffusivity D ( B ) is given by the sum of the contribution of all mobile species:
- 0 +
- [ Bi ] 0 [ Bi ] [ Bi ]
+
D(B) = D ( B i ) ---------
-
- + D ( B i ) ----------
+ D ( B i ) ----------
-
- -
- (768)
[B ] [B ] [B ]
Using the Maxwell–Boltzmann approximation, the previous equation is usually written as:
p 2
D ( B ) = S I D X ( B ) + D P ( B ) ---- + D PP ( B ) ----
p
(769)
ni n i
where S I is the interstitial supersaturation, and p and n i are the hole concentration and the
intrinsic concentration, respectively.
The relations between the above diffusivity components and the microscopic parameters are
[46]:
-
0 0 * νm ( Bi )
D X ( B ) = v capt D ( I ) [ I ] -------------------------
-
- (770)
ν break ( B i )
0
0 * νm ( Bi ) e ( B i ) ( 0, - ) – e i
exp ------------------------------------
0
D P ( B ) = v capt D ( I ) [ I ] --------------------------
0
(771)
ν break ( B i ) kB T
-
0 * νm ( Bi ) e ( B i ) ( 0, - ) + e ( B i ) ( +,0 ) – 2e i
- exp ------------------------------------------------------------------------
0
D PP ( B ) = v capt D ( I ) [ I ] ------------------------- (772)
- kB T
ν break ( B i )
These expressions can be used as a bridge between the parameters of continuum simulators and
those used by Sentaurus Process KMC. The above continuum expression assumes Maxwell–
Boltzmann and quasi-equilibrium conditions, which are not needed in Sentaurus
Process KMC.
- + 0
I + As ↔ As i (774)
0 -
I ↔I (775)
+ 0
As i ↔ As i (776)
and:
0 + +
V + As ↔ AsV (777)
- + 0
V + As ↔ AsV (778)
-- + -
V + As ↔ AsV (779)
0 - --
V ↔V ↔V (780)
+ 0 -
AsV ↔ AsV ↔ AsV (781)
f I is the fraction of interstitial-assisted diffusion. Note, however, that this last continuum
description conveys several simplifying assumptions compared with the model included in
Sentaurus Process KMC. The common assumption that D X and D M fit an Arrhenius plot is
only true if the contributions of AsV+ and Asi+ have the same activation energy. The same
applies for the AsV0 and Asi0 contributions. The continuum equation also assumes that the
interstitial fraction, f I , is independent of the Fermi level (the same for the three charged states)
and is independent of the temperature.
As explained in Materials and Space on page 386, Sentaurus Process KMC divides the space
in small rectangular elements and assigns to each of them a material. The interfaces are the set
of element faces between different materials.
The element faces are independent. The interface behaves as the sum of all of its faces, but such
an ‘interface’ does not really exist. What exists are the element faces, all of them emitting and
trapping with different rates depending on its area, local stress, and so on. In the following
sections, these element faces are called interface.
Interfaces set the equilibrium concentration for self-silicon point defects and the solubility
concentration for impurities. Sentaurus Process KMC models the interfaces differently for
silicon point defects than for impurities.
SiO2
Boxes
Si
Interface
Allcharges Three-phase segregation model for dopants. Emission and capture of all the
charge states of point defects on materials with full modeling. Capture of
all the charge states of impurity-paired defects on materials with full
modeling.
Amorphous When one material is full and the other is simple, this interface acts as an
asymmetric mirror. Particles going from the simple to the full material
are reflected, while particles going from the full to the simple material
are allowed to pass. No trapping or emission of particles on either side.
Interface Three-phase segregation model for dopants. Emission and capture of neutral
point defects on materials with full modeling.
none No interface between materials. This model is only possible when the model
of the materials involved in the interface is the same; that is, both are
simple or full.
Reflective The interface acts as a mirror. Particles are not trapped. No emission of
particles on either side.
Surface
Silicon bar
Figure 74 Recombination length is the distance between the interface and the point in which
the prolongation of the point-defect concentration joins its equilibrium
concentration
The microscopic meaning of L r can be associated with the probability of a point defect being
trapped at the surface:
λ
P trap = ----- (784)
Lr
where λ is the point-defect jumping distance. The smaller L r , the better sink is the surface.
For interstitials in the silicon–oxide interface, it is close to a perfect sink with L r < 5 nm
[49][50].
Capture
Interfaces capture neutral interstitials and vacancies with the probability set in Eq. 784. When
L r is set to zero, the probability is set to 1, a perfect sink.
Emission
In [1], the point-defect (for example, interstitials) equilibrium concentration is related to the
interface frequency emission prefactor and energy as:
2 D 0 FS Ef ( I )
- exp – ------------
*
[ I ] = --- × ------------- (785)
λ a2 kB T
where:
■ sites is the number of capture sites in the interface (proportional to its surface and equal
2
to ----
-YZ ).
2
a
■ D 0 FS is the surface emission prefactor.
■ E m and E f are the migration and formation energies of the point defects, respectively.
■ ΔE mstress, ΔE fstress are the regular corrections to migration and formation due to stress.
■ ΔE mGe, ΔE fGe are the corrections to migration and formation due to Ge concentration,
explained below.
The point defects are emitted from a randomly chosen position at the surface. Only neutral Is
or Vs are emitted when the interface model is Interface. All charge states are emitted and
captured when using Allcharges. In equilibrium, these two models give the same results.
Stress
The presence of stress changes the migration and formation energy of interstitial and vacancies
and, consequently, the emission frequency. Each interface (where, as previously stated,
interface was called to the independent element faces) is oriented in a unique axis ‘j’, and the
projections of the principal axes into ‘j’ should be accounted. Then, the total emission
frequency is:
x', y', z'
where P j axis are the projections of the principal axis into the surface axis. Finally, for each axis,
the migration and formation energies including stress effects are computed as:
1 f
σ'i
stress stress
Em + Ef = E m + E f + σ' axis ΔV par + σ' i ΔV ort + --- Δ V (788)
3
i ≠ axis i
f
where ΔV ort , ΔV par , and ΔV are the perpendicular and parallel activation volumes for
diffusion and the activation volume for formation, respectively.
For more information on these parameters and the stress models, see Stress Effects on Point
Defects, Impurities, Dopants, and Impurity-Paired Point Defects on page 416.
Alloys
The presence of an alloy (assumed to be Ge in this example) changes the migration and
formation energy of point defects in the following way:
ΔE m
Ge = α [ Ge ] (789)
Ge
ΔE f = β [ Ge ] (790)
where [ Ge ] is the germanium concentration, and α, β are the dependencies of migration and
formation with germanium, specified as EmGe and EfGe in the PDB.
Parameters
The parameters that control the point-defect interface model can be found in the PDB by
looking in the Oxide_Silicon folder. By default, interfaces, other than the oxide–silicon
interface, have their point-defect interface model set to None and do not require any
parameters. The formation energies are listed for the material, not for the interface.
For example, the formation energy of interstitials in silicon is under Silicon, not in
Oxide_Silicon or any other interface.
The migration energies are displayed in the point defect section of the file (see Point Defects,
Impurities, Dopants, and Impurity-paired Point Defects on page 403). The surface values can
be easily obtained using the command line.
NOTE You can modify these values. Changes in the formation energy or
surface emission prefactor will modify the DC equilibrium product of
point defects and the diffusivity of all the species. A change, both in the
formation and migration parameters, that maintains the DC product
constant will not produce this undesirable effect, but may change the
extended defects dissolution times.
j ⋅ n = Ks ( [ I ] – [ I * ] ) (791)
being:
1
K s = --- ν m ( I )λ 2 ⁄ L r (792)
6
and λ the jumping distance. An extra term is included to account for oxidation:
j ⋅ n = K s ( [ I ] – [ I * ] ) – G ox (793)
This term G ox tries to combine the Sentaurus Process continuum model (see Surface
Recombination Model: PDependent on page 345) with an atomistic implementation. In
particular, its definition is:
G pow
V ox E θ + PΔV θ
G ox = ( θ ⋅ n ) V ox G scale -------------- exp – --------------------------- (794)
V scale kB T
where θ is a vectorial prefactor and n is the normal to the interface, so that ( θ ⋅ n ) gives the
proper component for a planar, axis-oriented, interface in an internal element.
V ox is the ReactionSpeed computed by the PDE solver in Sentaurus Process and used here
by Sentaurus Process KMC. V scale and G pow are additional model parameters to adjust the
interstitial injection. G scale is a term defined to account for Fermi-level effects, and defined
similarly to the continuum one as:
mm + m + 1 + p + pp
G scale = -------------------------------------------------------------------------------------------------------------------------------------------------------------
- (795)
mm ---- n 2PotOx
+ m ---- n PotOx
+ 1 + p ----
n – PotOx
+ pp ----
n – 2PotOx
n i n i n i n i
E θ is the activation energy for point-defect injection and, finally, ΔV θ is a parameter to include
a hydrostatic dependency for OED.
Consequently, this is a hybrid model in which the continuum solver computes and generates a
ReactionSpeed value to be used by Sentaurus Process KMC to compute the point-defect
injection prefactor.
Parameters
Table 55 lists the parameters defined for the oxide–silicon interface only.
To use this model, call diffuse with any oxidation parameter (for a list of oxidation
parameters for diffuse, see diffuse on page 875).
Oxide/Silicon Interface
Oxide Silicon
Barrier (Ox)
Barrier (Si)
Figure 75 Dopants reaching the interface may be trapped by it with a different binding
energy for each interface side. Energy barriers for capture and emission also can
be present.
These interfaces are modeled between any two materials; however, depending on the material
model, the interface will behave differently.
The simple material side faces a material using the simple model. In these materials, only
direct diffusion of dopants is allowed. Since there are no paired dopant impurity point defects,
the model is as follows: Dopants arriving at the nonsilicon side may be captured with certain
probability, and they can be remitted later.
Capture
where A is the dopant being trapped, Barrier is the barrier energy, Trapped is the number of
particles trapped at the interface, and MaxTrapped is the maximum number of them that can be
trapped.
If the particle is trapped, there is a probability to evaporate (annihilate) the just-trapped dopant.
Emission
Interfaces emit particles to the nonsilicon side with a frequency given by:
non-Si
ν emiss ( A ) = Trapped ( A )Pref exp ( – Ener ⁄ ( k B T ) ) (797)
The emission is proportional to the number of trapped dopants and to a parameter Pref that
acts as a prefactor. The emission energy is:
Ener ( A ) = Barrier ( A ) + E m ( A ) + Binding ( A ) (798)
The migration energy contains stress and Ge corrections. The binding energy contains a
pressure correction:
ΔE bsurface ( A ) = PΔV bsurface ( A ) (799)
Parameters
Si Silicon
Ox Oxide
Ni Nitride
Po PolySilicon
Gas Gas
Unknown Unknown
The pressure correction to the binding energy of the dopants to the surface is given by the
parameter VF_Surf<mat>:
sprocess> pdbGet KMC Oxide_Silicon B VF_SurfOx
The maximum number of trapped particles per cubic centimeter follows an Arrhenius plot with
prefactor C0Max_Surf:
sprocess> pdbGet KMC Oxide_Silicon B C0Max_Surf
2e+14
Capture
Neutral (or charged, if the model Allcharges is selected) impurity-paired point defects are
trapped at the surface with a probability given by:
Trapped ( A )
= exp ( – Barrier ( A i ) ⁄ ( k B T ) ) 1 – -------------------------------------------
Si
P cap ( A i ) (800)
MaxTrapped ( A )
Emission
Particles are not emitted by themselves, but the interface allows particles to be moved to the
material bulk. Point defects (interstitials and vacancies) can react with the dopants trapped at
the surface, forming mobile impurity-paired point defects. The probability of these reactions
being successful depends on the binding of the dopant to the surface and the barrier energy:
Si
P emiss ( A i ) = exp ( – Ener ( A i ) ⁄ ( k B T ) ) (801)
where:
Ener ( A i ) = Binding ( A i ) + Barrier ( A i ) (802)
Parameters
The parameters that control the maximum number of trapped particles have already been
discussed in Simple Material Side on page 502. The barrier energy is called
EBarrier_SurfSi:
sprocess> pdbGet KMC Oxide_Silicon As EBarrier_SurfSi
Asi 0.0
AsV 0.0
Oxidation
Sentaurus Process KMC is fully coupled with oxidation. Consequently, any oxidation
conditions issued in the diffuse command of Sentaurus Process are transferred to Sentaurus
Process KMC. Setting Grid [Link] to 1 (it is 0 by default) disables
boundary movement at the oxide–silicon interface. Otherwise, the Sentaurus Process oxidation
algorithm is allowed to work during the reaction step, and the new structure (with expanded
oxide) is imported into Sentaurus Process KMC immediately before the atomistic diffusion
step. The velocities at which the interfaces and the oxide move are used to compute the
displacement of the particles.
Sentaurus Process KMC uses the displacement to relocate the displaced particles and finishes
the remeshing. After this, regular atomistic diffusion occurs. Since there are several
interpolations performed in this process, minor inaccuracies in the final position of particles
can be introduced during remeshing, especially during large oxidations. Regular diffusion
occurring at the same time as oxidation should make these interpolation inaccuracies
negligible.
In principle, Sentaurus Process KMC can be used successfully for 1D, 2D, and 3D oxidation.
In particular, since the precision of the Sentaurus Process KMC solution does not depend on a
fine continuum mesh, a coarse Sentaurus Process mesh can be specified, increasing the
stability of oxidation, while the Sentaurus Process KMC part takes care of the position of
particles. The example in Figure 76 shows the results of such an approach.
Sentaurus Process KMC also allows OED (see Oxidation-enhanced Diffusion (OED) Model
on page 500).
Z Z
Y Y
X X
Figure 76 Example of Sentaurus Process KMC coupled with an oxidation in 3D: (left) KMC
simulation in which the internal mesh is coupled to (right) continuum oxidation
simulation
Epitaxial Deposition
Epitaxial deposition can be performed by using one of the following:
■ Regular Sentaurus Process epitaxy
■ Native epitaxial deposition using an LKMC model based on [51]
This section describes the native epitaxy model only. The model is switched off by default and
must be switched on for the native epitaxy:
pdbSet KMC Epitaxy true
The model shares many features with LKMC (to fully understand this model, see LKMC: Fully
Atomistic Modeling of Solid Phase Epitaxial Regrowth on page 451).
The model introduces the silicon lattice and assigns a flag to each lattice position. This flag is
switched on for lattice positions that match the silicon material and is switched off for positions
lying in the gas. The simulator assigns a frequency to all the off positions to become on, that
is, to accept a silicon atom (coming from the gas). Only off lattice positions that have an on
lattice in the neighborhood have a frequency different from zero. Consequently, the silicon
grows slowly, simulating an epitaxial deposition.
The frequency for an off position at the silicon–gas interface to accept a silicon atom and
become on is:
ν Epi = K' × ν SEG
LKMC (804)
where ν SEG
LKMC is the frequency for selective epitaxial growth (SEG), very similar to the one
LKMC ( site ) is a prefactor that accounts for the local microscopic growth for each
K SEG
configuration. This prefactor depends on two variables: n and m. n can be 100, 110, or 111
defined very similarly to K(1), K(2), and K(3) in LKMC: Fully Atomistic Modeling of Solid
Phase Epitaxial Regrowth on page 451. m is used to distinguish between configurations with
the same n but different second neighbor coordination numbers. In this model, also published
in [51], 100 configurations only are split into three different ones: 100, 100.7, and 100.8 for
100 configurations with six or fewer, seven, and 8 or more second neighbor coordination
numbers.
ΔE ( site ) is a correction energy applied to special sites. It is used to simulate the formation of
{311} facets during SEG. As such, only 1 site is defined to have a non null correction: the
{311} local configuration. This configuration is in two different situations a) and b). a) is a
(100) generic site that lacks half of its third neighbors, and b) is a (110) where the second atom
in the chain needed to define the place as 110 would have first coordination number equal to 2.
Assigning a slower rate to configuration a) prevents the {311} facet becoming a {111} facet.
The slower rate for configuration b) assures that the local {311} configuration is not broken by
a lateral (110) regrowth.
K' is an empirical factor to fit the epitaxial deposition thickness to the specified thickness. This
empirical factor is computed automatically by Sentaurus Process KMC trying to match the
thickness specified in the processing conditions. In particular:
K' = K thickness × thickness ⁄ ( ν SEG
LKMC ( 100 ) × time × K
nanolayer ) (806)
where:
■ thickness is the specified thickness.
■ time is the annealing time.
■ K nanolayer is the length of a nanolayer of recrystallized silicon. A nanolayer is assumed to be
half the lattice constant.
■ ν SEG
LKMC ( 100 ) = K ( 100 ) × exp ( – E LKMC ⁄ ( k T ) ) is the frequency for recrystallization in a
SEG B
pure (100) substrate.
■ K thickness is an empirical constant, available in the PDB as Damage
[Link], that relates the microscopic growth of a lattice atom in a (100)
local neighborhood with the macroscopic growth of a (100) substrate.
This epitaxial deposition can create {111} facets and maintain the same (100):(110):(111)
growth rate as SPER. Under regular selective epitaxial conditions, the shapes generated agree
with experimental ones.
At the end of the LKMC epitaxial deposition, the simulator smooths the generated atomistic
interface and reinserts it into Sentaurus Process. The algorithm used to mesh the atomistic
shape uses the parameter KMC [Link]. A bigger value provides a faster and
more stable insertion, but with a loss of surface details.
The inclusion of doping is possible during LKMC epitaxy. If a doping profile with a linear
change is indicated, the included doping will be linear with time, and not with thickness.
Finally, the generation of an LKMC starting surface from Sentaurus Process and the reinsertion
after LKMC epitaxy are delicate and time-consuming operations if they are performed only
once at the start of the diffuse command and at the end. This means that the state of the
simulator at intermediate steps during the diffuse command may not be synchronized with
the KMC simulator.
NOTE To avoid problems, the KMC Movie command is disabled during LKMC
epitaxy. In addition, the diffuse movie command must not be used
during LKMC epitaxial deposition.
Parameters
The parameters needed for this model are defined in the parameter database under KMC Si
Epitaxy. Table 56 lists the parameters for the site prefactors.
[Link].100.8 For (100) sites with 8 or more second neighbor coordination number
[Link].100 For (100) sites with 6 or fewer second neighbor coordination number
Figure 77 (Left) Initial shape and (right) final shape after LKMC epitaxial deposition with
thickness of 175 nm
For the parameter database, the pdbSet family of commands allows overwriting previous
values or defining new ones. For the procedures written in the file [Link], defining the new
procedure in the input file is enough; the new one will be executed instead of the old one.
2. Include the impurity-related particle pairs (Xi or XV or both) in KMC Pairs (see Particles
in Models on page 397). If your model does not have impurity pairs (in other words,
simple material), you do not need to specify them, including Dm and Em.
3. Be careful about which charge states you include because not all are allowed; you must
specify parameters for all those included.
4. Include possible aliases for the particle in KMC Aliases. If the particle already exists for
Sentaurus Process, include this name as an alias in Sentaurus Process KMC (see Alias on
page 398).
5. You can customize the colors for this particle (although it is optional) in Tecplot SV in
KMC Colors (see Colors on page 399).
6. To create parameters for the new particle, define the parameters explained in Particles and
Parameters on page 399 under KMC <mat> X, where <mat> is every material defined in
your simulation, and X is the name of the new defined dopant. Be sure to include all of
them. Parameters for the impurity cluster model are not needed if Implement_Complex
is set to false. All others require values since they specify how the surface and amorphous
regions interact with the new dopant X.
7. Specify the reactions for KMC <mat> X in ReactionsPointDefect. Typical reactions
here include the pair formation (such as X,I true) and impurity cluster formation (such
as Xi,X true). These reactions only need to be defined in materials with the full model.
8. Specify also the reactions with damage and extended defects if there are any. You can leave
these fields empty. See Interaction with Impurities on page 429, Interactions on page 434,
Interactions on page 438, and Interactions on page 442.
Finally, you must define some variables set in the [Link] file placed in TclLib. This can
(and should) be performed locally in your input file:
1. Add the names of your new impurities and pairs to the nameOf array.
2. Complete the map of MC implantation to Sentaurus Process KMC with MCnameOf.
If you need to transfer information back and forth from continuum to KMC, you also must
modify the procedures PDE2KMCUser and KMC2PDEUser:
■ Add the new particles and clusters to the lists in PDE2KMCUser. The first field is the field
name in Sentaurus Process (continuum models), the second is the name in Sentaurus
Process KMC, and the third is the conversion factor. For example:
fproc PDE2KMCUser {} {
return "Dopant X 1 \
DopantInt Xi 1 \
DopantVac XV 1 \
DopantCluster X2 .5 \
DopantCluster X3 .3333"
}
■ Add the new particles in KMC2PDEUser. The first name is the name in Sentaurus
Process KMC, the second is the Sentaurus Process field, and the third is the factor. For
example:
fproc KMC2PDEUser { } {
return "X Dopant 1\
Xi DopantInt 1\
XV DopantVac 1\
X2 DopantCluster 1\
X3 DopantCluster 1.5\
X4 DopantCluster 2"
}
Normal Diffusion
For impurities with +1 or –1 charge, in other words, dopants, the substitutional dopant is active,
but it does not diffuse. The substitutional dopant reacts with interstitials or vacancies, forming
a pair that diffuses. These pairs break up with a given frequency, releasing the dopants back
into the substitutional positions.
For neutral impurities, the normal diffusion is still available. An alternative diffusion
mechanism is migration without pairing. In these cases, the impurity diffuses as it is, that is,
the substitutional impurity has a nonzero diffusivity and continues forming pairs with point
defects.
• Consequently, the binding energies involved in the capture and emission of impurities
will be:
E AnIm b ( A ) = E pot ( A n + 1 I m ) – E pot ( A n I m ) (808)
Reports
Sentaurus Process KMC prints several reports in the log file including:
■ Models used
■ Particle distribution
■ Cluster distribution
■ Defect activity
■ Interactions
■ Event
|Fluorine | |
| DiffModel |Direct(F) |
| ChargeModel |FI( 0 ) FV( 0 ) |
| ClusterModel |F+F FnIm FnVm |
| SPERModel |F2Im F2Vm 30% deposited 70% moved |
+----------------+-------------------------------------------------+
| Stress model | Disable |
+----------------+-------------------------------------------------+
| SPER model |Non-Lattice KMC |
+----------------+-------------------------------------------------+
ChargeModel The particles and their allowed charged states are displayed.
ClusterModel The interactions between the impurity or point defect and extended defects and clusters are
displayed.
DiffModel The diffusion model can be direct or kick-out. Kick-out means that the particle does not
diffuse unless paired with an interstitial or vacancy.
SPERModel Recrystallization model shows the percentage of dopant being deposited, and the bigger
deposited cluster, if any. Point defects are just cleaned during the recrystallization.
SPER model The algorithm for SPER can be non-lattice KMC (isotropic) or lattice KMC (anisotropic).
This summary is printed for any particle allowed in the simulation, even if this particle is not
going to be used.
full material Particles can be active (substitutional dopant) or inactive (anything else).
simple material Particles can be mobile (single impurity) or immobile (impurity in a
cluster).
Interface Number of particles trapped at the interface.
For example, in the above report, all the BICs are B2I2. The As–vacancy clusters are distributed
between different types, but the most common one is As4I.
The report contains two columns with three subcolumns each. The first report shows when the
model was first used; the last report shows when the model was last used. If the model is still
being used, the number of particles or defects using it is displayed followed by “here.” The
three subcolumns report the time, number of simulated events, and temperature.
For example, the previous report shows the first {311} defect (ThreeOneOne) was formed at
–3
2.2 × 10 s , with a temperature of 950°C , and with one {311} still in the simulation. There
–4
was silicon amorphous, from 47 s, 27°C to 6.7 × 10 s at 1110°C . Since any anneal resets
the time to zero, the first time applies to a previous anneal or implant (since there is damage
accumulation, in other words, room temperature annealing, during implants).
For the interface models, the report shows how many interfaces are in the simulation (I and V),
and how many of them contain trapped dopants (936 for As). It also lists the first and last time
the interfaces let As go in the form of Asi.
This information shows how the different models were used during the simulation and when
the damage was annealed.
Interactions Report
This reports shows, for each material and interface, all the reactions between a mobile particle
(point defect or impurity-pair point defect) and the number of times they happened.
The first column lists the name of the interacting defect, the second the interaction itself, and
the third the number of times it happened from the beginning of the simulation. Columns 4, 5,
6, and 7 are the same as 2 and 3. This report explains which reactions may be important and
which are not. For example, in the report below, the reaction I+VP (31 times) is negligible in
comparison with I+V (111848 times) and does not play a significant role in this simulation for
the formation of AP.
Finally, depending on the defect reported, the output can be slightly different.
PointDefect
-- KMC interactions report --
Reaction #Times Reaction #Times Reaction #Times---
Silicon ---
PointDefect I+I 278778 I+V 111848 I+As 1435719
PointDefect I+B 644803 I+IM 862 I+IP 7856
PointDefect I+VMM 83 I+VM 3316 I+VP 31
PointDefect I+AsV 273 I+AsVP 2480 I+AsVM 35
PointDefect I+Bi 2809
PointDefect V+V 56907 V+As 25324 V+IM 103
PointDefect V+IP 3541 V+VMM 288 V+VM 4248
PointDefect V+VP 77 V+Asi 12480 V+AsiP 3405
PointDefect V+Bi 433 V+BiP 1924 V+BiM 44
PointDefect As+As 243 As+IM 1313602 As+VMM 38966
PointDefect As+VM 30332 As+AsVM 2666
PointDefect B+IP 285066 B+BiP 203
Indirect Diffusion
When using the indirect diffusion model for amorphous materials, the results are similar to
crystalline ones, but I and V mean dangling bond and floating bond, respectively.
Reaction #Times Reaction #Times Reaction #Times
--- AmorphousSilicon ---
PointDefect I+V 40475 I+B 30707
AmorphousPocket
AmorphousPocket Ix+I 713391 Ix+V 210933 Ix+VMM 305
AmorphousPocket Ix+VM 4575 Ix+VP 25
AmorphousPocket Vx+I 31202 Vx+V 43040 Vx+IM 126
AmorphousPocket Vx+IP 11372 Vx+Bi 1281 Vx+BiM 47
AmorphousPocket IxVy+I 312602 IxVy+V 910338 IxVy+B 204
AmorphousPocket IxVy+IM 154 IxVy+IP 15555 IxVy+VMM 110
AmorphousPocket IxVy+VM 4930 IxVy+VP 5 IxVy+Bi 4683
AmorphousPocket IxVy+BiP 618 IxVy+BiM 106
It includes the reaction between small interstitial clusters (Ix), small vacancy clusters (Vx), and
APs including both Is and Vs (IxVy). To keep the report small, all the sizes are condensed into
only one Ix, Vx, or IxVy.
ThreeOneOne
ThreeOneOne Ix+I 1035217
All the {311} sizes are condensed under the term Ix.
Loop
Loop Ix+I 177885 Ix+BiM 10
All the dislocation loop sizes are written under the term Ix.
ImpurityCluster
ImpurityCluster B2+I 31 B2+Bi 6
ImpurityCluster B3+I 3
ImpurityCluster B2I+I 463 B2I+V 25 B2I+Bi 21
ImpurityCluster B3I+I 27591 B3I+V 1148
ImpurityCluster BI2+V 3835 BI2+Bi 278
ImpurityCluster B2I2+I 1518 B2I2+V 86 B2I2+Bi 1314
ImpurityCluster B3I2+I 26
ImpurityCluster B2I3+V 26
ImpurityCluster As2+V 1728 As2+As 5 As2+AsV 1251
ImpurityCluster As3+V 100 As3+AsV 69
ImpurityCluster As4+V 3
ImpurityCluster As2V+I 56605 As2V+Asi 20411
ImpurityCluster As3V+I 87723 As3V+Asi 18437
ImpurityCluster As4V+I 1973488
Since impurity clusters are important for the correct activation and deactivation of dopants, and
their sizes are small numbers, all are written in the report.
Interface
--- Oxide_Silicon ---
Interface I 11364 I+As 73 V 1141
Interface AsV 410 Asi 1440
The name of each particle interacting with any interface, and the number of times it happened,
is reported last.
Event Report
The event report is the reverse of the reaction report. The reaction report shows the forward
reactions; the events report shows the reverse ones. Since the reactions and other events depend
strongly on the defects, this report changes from defect to defect.
PointDefect
-- KMC event report --
Name Jump X Jump Y Jump Z Break-up
PointDefect I 2921360317 2921305233 2921406601
PointDefect V 1285293026 1285290404 1285265687
PointDefect As 1120 1071 1163
PointDefect B 7 23 15
PointDefect IM 228653836 228646801 228625103
PointDefect IP 1074734274 1074760443 1074719693
PointDefect VMM 86102860 86115025 86090069
PointDefect VM 846251937 846307626 846269323
PointDefect VP 7881794 7875672 7878359
PointDefect Asi 1144728 1144688 1142864 832840
PointDefect AsiP 51512 52143 51812 1894402
PointDefect AsV 18255 17863 17967 30572
PointDefect AsVP 3544 3436 3438 22783
PointDefect AsVM 3585 3586 3460 37804
PointDefect Bi 13459181 13453297 13458878 257929
PointDefect BiP 94930 95115 95524
PointDefect BiM 124899 123825 124860 670411
The second column shows the name of the mobile particle. The 3rd, 4th, and 5th columns show
how many diffusion events (hops or jumps) have every particle perform in the x-, y-, and z-axis,
respectively. In the absence of anisotropies, these three numbers must be approximately the
same. Finally, the last column shows the number of breakups. Since not all the mobile particles
can break up (for example, Bi will break in B + I, but I cannot break up), some of the particles
will have an empty column there. The relative number between the number of diffusion steps
and the number of breakups gives an estimation of the stability of the particle. The more stable
the particle (more diffusion events and less breakups), the larger its long-hop distance.
In this report, the third column reports the number of jumps in opposite directions. The fourth
column reports the number of jumps in the same direction, and the fifth column lists jumps in
orthogonal directions. For further information, see Hopping Mode on page 411.
AmorphousPocket
Name IV Recom I Emis V Emis
AmorphousPocket Ix 300905
AmorphousPocket Vx 59627
AmorphousPocket IxVy 802007
Ix are small interstitial clusters. They can only emit interstitials. Vx are small vacancy clusters
that can only emit vacancies. Finally, IxVy are APs. They can recombine (destroy) an internal
IV pair.
ThreeOneOne
Name I Emis
ThreeOneOne Ix 1038899
Loop
Name I Emis
Loop Ix 181927
Dislocation loops, like the {311}s, can only emit neutral interstitials.
ImpurityCluster
Name Emis
ImpurityCluster B3 10 V
ImpurityCluster B3I3 913 I 14203 Bi
ImpurityCluster B2I3 4710 I
ImpurityCluster B3I2 13570 I
ImpurityCluster B2I2 656 I
ImpurityCluster BI2 1 I 32 Bi
ImpurityCluster B2I 578 BiP
An impurity cluster (for example, a BIC) emits Bi and I. B2I also can emit BiP particles.
Finally, an internal Frenkel pair can be created, trapping the I and emitting the V. This has been
the case in this simulation for 10 B3 ( B 3 → B 3 I + V ). Since BV is not defined by default, it
cannot be emitted.
Name Emis
ImpurityCluster B3 1 V
ImpurityCluster B2 10 V
ImpurityCluster B3I2 6 I
ImpurityCluster C2I 3 I 1 V 32 Ci
ImpurityCluster B3I 1 V 6 Bi
ImpurityCluster B2I 107 Bi
ImpurityCluster CB2I 84 Bi 2 Ci
ImpurityCluster CBI 42 I 1 Bi
In this case, apart from more or less standard boron and carbon clusters, there is a hypothetical
carbon–boron–interstitial (CBI) cluster. Two members of this CBI cluster are present here,
CB2I, emitting Bi and Ci, and CBI, emitting I and Bi.
Amorphous Defects
Name Recryst.
Amorphous Ele. 4932 B3I3 4598 B2I3 7087 BI2
Lattice Atoms
Name SPER
LatticeAtom I 2070434
Example of output related with epitaxial growth, showing the number of atoms that were
incorporated into crystalline silicon.
Simple Materials
Indirect Diffusion
The report for amorphous materials with indirect diffusion is similar to the one of crystalline
materials, but the I and V mean dangling bond and floating bond, respectively.
--- AmorphousSilicon ---
When the field is created, Sentaurus Process KMC will not modify it unless there is a new
deatomize command. This means that the field is synchronized with the Sentaurus
Process KMC simulation when it is created. However, after that, if the simulation changes (for
example, performing another diffusion), the field will conserve the initial values.
Some fields compute the defect concentration (concentration of APs, impurity clusters, and
extended defects). You can transform them into particle concentrations multiplying by the size
of the defect.
For example, you can obtain the concentration of boron particles in B2, B3, BI2, and B2I2 in the
field BICs with the following set of commands:
kmc deatomize name=B2; kmc deatomize name=B3
kmc deatomize name=BI2; kmc deatomize name=B2I2
select z="2*B2 + 3*B3 + BI2 + 2*B2I2" name=BICs
The direct deatomization of Sentaurus Process KMC quantities into continuum mesh elements
produces values with strong gradients between neighboring elements. This is especially true
for small concentrations, where Sentaurus Process KMC contains a few particles that are
deatomized as an “all or nothing” distribution; that is, some cells may contain one particle, and
this is a concentration of 1 ⁄ ( ΔV ) , while others contain no particles, thereby having a zero
concentration.
In some cases, especially when the Sentaurus Process KMC output is used as a device
simulation input, a smoother concentration is desirable, as seen in Figure 78. This can be
performed by setting the PDB parameter:
KMC [Link] <field> <number>
where:
■ <field> is the field name to be smoothed (for example, NetActive).
■ <number> is an integer.
A value of 0 produces no smoothing; larger numbers produce more smoothed profiles. The
smoothing algorithm works as follows:
■ For each node in the standard Sentaurus Process mesh, the number of particles N
associated with the node is counted.
■ The concentration set to that node is, in principle, N ⁄ V Voronoi , where V Voronoi is the Voronoï
volume associated with the node.
■ N is compared to M , where M is the number specified in [Link] for this field.
■ If the field name does not exist in [Link], 0 is assumed.
■ If N < M , the smoothing algorithm applies. Starting at the node, the algorithm looks for
particles not associated with the Voronoï volume of the node, with an increasing radius.
■ When M – N particles are found in a radius R , it stops searching. At this point, there are
M particles inside the radius, M – N outside the Voronoï volume, and N inside the
Voronoï volume.
where V R is the volume associated with a segment (1D), circle (2D), or circumference (3D)
of radius R , and weight is the PDB value [Link]:
pdbSet KMC [Link] 0.01
This technique is not intended to perfectly conserve the total dose, but to fill the nodes with low
concentrations with values depending on the distance to the nearest particles. The factor
weight is included to limit the extra dose introduced in those nodes.
The smooth algorithm can be relatively slow for simulations with a large number of nodes or
a large number of particles. This can be resolved by calling it in parallel mode with the
following option:
math numThreadsDeatomize=<n>
This option is independent from the KMC parallel mode and does not interfere with it. It
applies to the smooth algorithm only, not to the whole deatomization.
First, the defects are queued in the creation queue with the command:
kmc add queue
You can queue as many defects as you want. Queueing a defect does not actually introduce it
in the simulation. You must use the command kmc add alone to empty all of the queue by
generating defects in the simulation.
The option name specifies the defect to be created (examples are B, B2I4, I54, and
BInterface). The options coordx, coordy, and coordz provide the place where the defect
(or the center of mass of the defect) will be created. Finally, the optional arguments
amorphous and crystalline provide a way to tell the simulator whether this defect should
be created in an amorphous or a crystalline material. For example, if the current material is
crystalline, but the option amorphous is specified, the simulator not only creates a defect, but
also changes the material from crystalline to amorphous phase.
An alternative way to add defects to the simulation is using the [Link] command,
which requires the name of a text file to be specified with [Link], for example:
kmc [Link]=my_filename
This command takes all the defects specified in the file and adds them consecutively in a very
similar way to the add command. Similar to the add command, only the center of mass is
specified for defects having more than one particle.
One line specifies one defect. The format of each line is:
defect_type defect_name coord_x coord_y coord_z
where:
■ defect_type is the generic name of the defect, for example, PointDefect, Loop,
ThreeOneOne, Interface, ImpurityCluster.
■ defect_name is the particular name of the defect, for example, B, P, I50, BiM, B3I2.
■ coord_x, coord_y, coord_z are the coordinates (in nanometers) for the center of mass
of the defect.
For example:
Interface P 1.000000 11.250000 13.000000
PointDefect As 5.032000 5.320000 1.032000
ThreeOneOne I50 10.000000 10.222565 9.777436
PointDefect B 10.000000 5.000000 6.000000
PointDefect BiM 30.000002 5.000000 14.000000
ThreeOneOne I100 19.554871 20.445129 20.000000
Loop PI59 13.000000 13.000000 13.000000
PointDefect Bi 26.000000 26.000000 26.000000
ImpurityCluster B2I 6.235641 7.115777 7.077633
ImpurityCluster B3I2 4.287220 7.497602 4.604665
PointDefect Ge 6.696747 7.492962 0.834044
Similarly, the command kmc [Link] writes all the defects currently in the
simulation into a file with the above format. The name of the file must be specified as:
kmc [Link]=my_filename
Files written with [Link] can be read later with [Link]. Since only the
center of mass of the particle is written, this is an inaccurate way to save a simulation. To save
a simulation, use instead struct or kmc extract tdrWrite.
The commands select, print, WritePlx, and plot work as expected. If you need a field
for them, create it using kmc deatomize (see Transferring Fields from KMC to Continuum
Information: deatomize on page 524).
In particular, select creates particles inside Sentaurus Process KMC whenever the name of
the field is recognized as a particle or defect. These names are:
Dopants As, B, …
Impurities C,F, …
Any of the above particles with a different charge IM, VPP, BiM, AsVP, …
Example
For a typical situation with a 1D SIMS-like simulation (implant and anneal), the 1D profiles
can be extracted in a .plx file using WritePlx:
SetPlxList BTotal B
WritePlx file
Calling WritePlx without selecting the list with SetPlxList also works. It generates a list
of the most common fields:
WritePlx file
The init command works as expected. Background dopings can be assigned. A TDR file to
be loaded can also be assigned with:
init tdr=filename
and, if the file has been saved with Sentaurus Process KMC and contains atomistic information
(see the option defects for tdrAdd, kmc on page 954), Sentaurus Process will load it, and
the simulation can be continued.
NOTE Loading a file and continuing a simulation with init will give results
similar, but not identical, to performing the simulation without the save/
load process. The differences between the results are only statistical; in
other words, both represent possible solutions.
The struct command also saves restart information, allowing the Sentaurus Workbench
#split command to work properly with Sentaurus Process KMC.
The load command accepts the options kmc and replace only. It is intended to load a TDR
Sentaurus Process KMC simulation to replace the existing one. It performs the necessary
conversions between the existing internal Sentaurus Process KMC and the one read from the
TDR file, conserving the existing one.
The diffuse command works as expected with Sentaurus Process KMC, except that the
diffusion is done with the atomistic solver. In particular, the options for oxidation and
silicidation are supported (see Oxidation on page 506). Epitaxial options also are supported.
For lattice LKMC epitaxy, see Epitaxial Deposition on page 507.
Nonatomistic Mode
When Sentaurus Process KMC operates in the nonatomistic mode (see Nonatomistic Mode on
page 374), it transforms the five-stream model fields into atomistic information before every
annealing and converts the atomistic information to five-stream model information after any
annealing. Sentaurus Process KMC is disabled between annealings; consequently, all
information should be accessed using the standard Sentaurus Process interface. The only way
to access atomistic information is by using the Movie option during the Sentaurus
Process KMC annealings.
Atomistic Mode
When operating in atomistic mode, Sentaurus Process KMC does not automatically perform
any transformation from atomistic to continuum, or vice versa, except if the command struct
is called (see Atomistic Mode on page 371).
The command:
kmc extract tdrWrite filename=<filename>
The parameter concentrations includes a list of standard fields. These fields are the total
concentration for each particle, the time-averaged concentrations of mobile particles,
NetActive, the electronic concentration, the concentration of impurities in the surface,
amorphous and impurity clusters, and the concentration of point defects in APs, amorphous
layers, impurity clusters, and extended defects. These concentrations are displayed with the
same dimension as the simulation.
Since Sentaurus Process KMC always works in 3D, for 1D simulations, the displayed
concentrations are averaged for yz planes and, for 2D simulations, they are averaged in z-lines.
An extra A/C field also is stored to let you know whether the material is amorphous or
crystalline.
The histogram option includes a 2D graph representing the APs and impurity cluster
histograms. These histograms give the number of defects existing in the simulation for each
different size (I and V for APs, impurities, and point defects for impurity clusters). One-
dimensional histograms, giving the number of extended defects versus its size, are included as
well when using the histogram option. Stress and strain information can be added to these
concentrations and histograms with the stress option.
Figure 79 on page 533 shows one snapshot saved with the concentrations and histogram
options for a 2D simulation.
The parameter defects includes atomistic information about the defects in the simulation.
This atomistic information can be used to obtain an atomistic 3D plot that is independent of the
simulation dimensions. It offers the most realistic representation of the simulation.
Figure 79 Example of a TDR file of Sentaurus Process KMC displayed with Sentaurus
Workbench Visualization. The concentrations and histogram options have been
used; 1D histograms for clusters and 2D histograms for APs and impurity clusters
are included. The concentration (in this case, for a 2D simulation) for several
fields is included with this option.
Figure 80 shows an example of the information saved with the defects option.
Figure 80 Example of TDR file of Sentaurus Process KMC including atomistic information;
the defects option has been used
The defects option also includes extra information necessary to restart or load the simulation.
A file saved with this parameter can be reloaded into Sentaurus Process KMC, and the
simulation can be continued. To load the simulation, use the command init.
Using the KMC Movie option, you can include the command kmc extract tdrAdd to view
the evolution of the simulation with time.
Finally, the option visual stores atomistic 3D information in a way similar to defects. The
differences between using visual and defects are:
■ Files saved with visual cannot be restarted.
■ The visual option produces smaller file sizes than defects. In particular, visual stores
the defects, but it does not store the information needed to restart. The visual files are
intended for visualization purposes only.
■ The visual option requires a list of defects, separated by commas, to be saved. The all
option saves all the defects.
■ Other valid defects include defect names (such as BiM or B2I3), general defect names
(such as ThreeOneOne), and material names (Silicon). This lets you control which
defects will be saved and visualized later, making it easier to visualize information without
saving a large file with all the 3D information.
Sentaurus Process visualization does not represent all the particles inside APs. Since the
number of particles (interstitials and vacancies) in APs can be large after an implant, only 1 in
50 particles is visualized by default. This default behavior is written in the TDR file as set by
the parameter VisualizeDamage:
sprocess> pdbGet KMC VisualizeDamage
50
Sentaurus Process visualization can overwrite the default set for each file using the option:
-s:psf n
The default field name for time-averaged concentrations in the TDR file is ‘mobile’, but it can
be defined with the parameter KMC tdr averageTag.
IV
BI
kmc extract histogram name= [meansize [minsize=<n>]]
[materialname=<material>] I
…
Sentaurus Process KMC includes several models where the defects are not isolated, but
agglomerated in extended defects that can contain many particles. The histogram option
allows you to extract information about the sizes (number of particles) of these extended
defects.
The histogram option needs a valid name to compute the following available histograms:
The optional parameter meansize displays the average size of clusters instead of displaying
the whole list of clusters when using this parameter. Without specifying minsize, the average
size begins with size 0.
Finally, the parameter materialname restricts the output to the material specified instead of
the whole simulation.
Interstitial Histograms
These histograms extract the number of defects in the simulation for each size. The histograms
contain information about the small, irregular clusters (see Amorphous Pockets Life Cycle on
page 427), {311} defects (for size bigger than the established limit), and dislocation loops. For
example:
LogFile [kmc extract histogram name=I]
These histograms are similar to the interstitial-extended defects histogram, except that the
extracted number of particles versus size is for vacancies:
sprocess> LogFile [kmc extract histogram name=V]
V5 1
V7 2
V8 5
V9 2
V10 5
(...)
sprocess> LogFile [kmc extract histogram name=V meansize]
12.9143
sprocess> LogFile [kmc extract histogram name=V meansize minsize=10]
15
The AP histograms contain the number of cluster versus I and V size. APs with null Is or Vs
can be considered as APs or small I or V clusters.
sprocess> LogFile [kmc extract histogram name=IV]
I2 367
I3 69
I4 22
I5 1
IV 823
I2V 249
I3V 61
I4V 23
I5V 2
V2 408
IV2 251
I2V2 111
(...)
The average size can be requested for these clusters. It will return values for both I and V:
sprocess> LogFile [kmc extract histogram name=IV meansize]
I2.3501V0.796781
The parameter meansize applies here and specifies the minimum size to begin the average for
both species.
Boron–Interstitial Clusters
The boron–interstitial cluster histogram offers information about the number of BICs for each
BIC configuration (BnIm).
sprocess> LogFile [kmc extract histogram name=BI]
B2I 16
B3I 347
sprocess> LogFile [kmc extract histogram name=BI meansize]
B2.95592I1
Arsenic–Vacancy Clusters
The arsenic–vacancy cluster histogram offers information about the number of arsenic and
vacancies in impurity clusters for each configuration (AsnIm):
sprocess> LogFile [kmc extract histogram name=AsV]
As2 277
As3 109
As4 3
As2V 752
As3V 281
As4V 178
sprocess> LogFile [kmc extract histogram name=AsV meansize]
As2.47V0.756875
Sentaurus Process KMC computes the profiles concentration versus size as a convenient way
to directly obtain useful data. holes
electrons
particles ( B, As , … )
i
clusters ( I V , B I , … )
n m n m
kmc extract profile [timeaveraged] name= stress
strain
GapNarrowing
dopants
totals ( BTotal,AsTotal )
ThreeOneOne
Interface
defectname= [materialname=] [coordx=] [coordy=] [coordz=]
Loop
…
For example, 1D profiles can be compared with SIMS experiments. The profiles are an average
of the concentration of particles. For 3D, Sentaurus Process KMC takes a volume to be
averaged equal to an element defined by the parameters extractDeltaX, extractDeltaY,
and extractDeltaZ. For 2D and 1D, this volume includes all the elements in y and z,
respectively.
The parameter name chooses the profiles to be obtained. holes and electrons return the
concentration of holes and electrons, respectively. GapNarrowing returns the bandgap
narrowing, in eV. Stress can be stressXX, stressYY, and stressZZ, and strain is one of
strainXX, strainXY, strainXZ, strainXY, strainXZ, or strainYZ. A particle name
(like Bi, IM, or AsVP) returns the concentration of all the particles in the simulation matching
the given one. A cluster name (for example, As4V) will return the concentration of that cluster
in the simulation. For particles, the concentration of particles is returned; for clusters, the
concentration of clusters is returned. For example, an As4 cluster is considered to be four As
particles when you request the concentration of As, but only one defect when you request the
concentration of As4 clusters. An impurity name followed by the word “Total”, like BTotal,
will return the total profile of that impurity (active, inactive, in pairs, clusters and so on) in the
simulation.
When a particle profile is specified, the optional parameter defectname can be used to further
specify the kind of particle. For example, the command:
kmc extract profile name=I
computes the concentration of interstitials in any kind of defect, in other words, the total
interstitial concentration.
The command:
kmc extract profile name=I defectname=ImpurityCluster
The parameter defectname should not be specified with cluster concentration, electrons,
holes, GapNarrowing, stresses or strains.
Finally, the parameter materialname restricts the output to the material specified instead of
the whole simulation.
The returned concentration has the same dimensionality as the performed simulation. Use the
optional parameters coordx, coordy, and coordz to change this default. These parameters
specify cutlines. For example, in a 3D simulation the command:
kmc extract profiles name=I
returns the concentration for all the volume elements in the simulation. The command:
kmc extract profiles name=I coordx=20<nm> coordz=10<nm>
Finally:
kmc extract profiles name=I coordx=20<nm> coordy=15<nm> coordz=10<nm>
The use of the parameters coordx, coordy, and coordz depends on the simulation
dimensions. As previously explained, specifying coordx for 1D, 2D, or 3D simulations,
coordy for 2D or 3D, or coordz for 3D, returns the concentrations only on elements
including the specified cutlines. On the other hand, the use of coordy or coordz in 1D
simulations, or coordz in 2D, is quite different. In this case, the result returned is not averaged
for the whole remaining dimensions (y and z for 1D, z for 2D), but only calculated in the
specified cutlines. In other words, specifying coordy in a 3D simulation returns all the
concentrations in the x, z volumes for the y specified in coordy; while specifying coordy in
a 1D simulation returns concentrations versus the x-axis, but instead of being averaged for
every y and z, they will be averaged only for every z in the plane marked by coordy. In 3D, it
will reduce the size of the output (since only the output for the specified plane y is written). In
1D, the output has the same number of lines (one for each x position), but the concentration
displayed is different because it is averaged into z only, and not into y and z.
Sentaurus Process KMC returns the instantaneous concentration by default. For mobile
particles the instantaneous concentration does not usually contain any information rather than
noise. The parameter timeaveraged instructs Sentaurus Process KMC to return the average
concentration of mobile particles between the current time and the last time Sentaurus
Process KMC created a snapshot (see Snapshots on page 394).
For example, Figure 81 has been produced with the input script:
pdbSet KMC MaxYum 40e-3
pdbSet KMC MaxZum 40e-3
SetAtomistic
pdbSet KMC Movie ""
pdbSet IncrementalHops 0
line x loc=0.0 tag=xleft spacing = 0.002
line x loc=1.5e-3 tag=xmed spacing = 0.002
line x loc=5e-3 tag=xright spacing = 0.002
region oxide xlo=xleft xhi=xmed
region silicon xlo=xmed xhi=xright
init
diffuse time=1e7<s> temp=700 info=1
kmc extract tdrClear
kmc extract tdrAdd concentrations
kmc extract tdrWrite filename=equil
The concentrations of neutral, positive, and negative interstitials also can be obtained with:
sprocess> kmc extract profile timeaveraged name=IP coordx=2.5<nm>
162487
sprocess> kmc extract profile timeaveraged name=I coordx=2.5<nm>
1.0276e+06
sprocess> kmc extract profile timeaveraged name=IM coordx=2.5<nm>
18170.5
Figure 81 Equilibrium concentrations of neutral (green), positive (red), and negative (blue)
interstitials at 700oC
Sentaurus Process KMC computes the supersaturation for Is and Vs. The current global
concentration is calculated involving a time average between the current time and the last
snapshot:
sprocess> LogFile [kmc extract supersaturation name=I]
1.00555
To obtain the supersaturation evolution with time, use the KMC Movie parameter as shown in
the following example:
SetAtomistic
set kmcSupersat ""
pdbSet KMC MaxYum 30e-3
pdbSet KMC MaxZum 30e-3
pdbSet KMC Movie {lappend kmcSupersat $time [kmc extract \
supersaturation name=I]}
pdbSet KMC automaticRampUp 1
line x loc=0.0 tag=xleft spacing = 0.002
line x loc=1.5e-3 tag=xmed spacing = 0.002
line x loc=350e-3 tag=xright spacing = 0.002
region oxide xlo=xleft xhi=xmed
region silicon xlo=xmed xhi=xright
init
implant Silicon energy=40 dose=2e13 tilt=7
diffuse time=100000<s> temp=600
LogFile $kmcSupersat
10002.8 113849
21551.6 132116
46419.1 110329
100006 81506.4
107
Interstitial Supersaturation
106
105
104
103
102
100 101 102 103 104 105
Time [s]
Figure 82 Supersaturation evolution with time, after a silicon implant (2 x 1013 dose, 40 keV
energy) annealed 1 x 105 s at 600oC. (Experimental points modified from [50] to
use the same B diffusivity.) Points are experiments, lines are KMC.
The defects option allows access to the raw atomistic information of any simulation. The
obtained information must match the parameters name and defectname when they are
specified.
ThreeOneOne
particles ( B, A i, … ) Interface
kmc extract defects name = defectname=
clusters ( I n V m, B n I m, … ) Loop
…
When there are no restrictions, all defects are accessed. For example, for the following added
defects:
kmc add queue name=BI2 coordx=2<nm> coordy=2<nm> coordz=3<nm>
kmc add queue name=I2 coordx=3<nm> coordy=2e-3 coordz=4e-3
kmc add queue name=I3 coordx=4<nm> coordy=3<nm> coordz=1<nm>
kmc add
NOTE The command kmc extract defects can produce large outputs.
When there are amorphous defects in the simulation, the result may not be the expected.
Amorphous defects do not store the damage, but only its concentration (see Amorphous
Defects on page 444). Consequently, amorphous defects will not report any interstitial or
vacancy inside them. Impurities are stored and displayed. Nevertheless, if the indirect diffusion
model is used in amorphous silicon, the dangling bonds, floating bonds, and mobile and
immobile impurities will be obtained as I, V, Bi and B (for boron) (see Indirect Diffusion on
page 445).
The parameter materialname restricts the output to the material specified instead of the
whole simulation.
The options countparticles and countdefects do not display the atomistic information,
but they count the number of particles and defects, respectively, for the given conditions. For
example, this example shows how to count the particles and defects listed in the last example:
sprocess> kmc extract defects countparticles
8
sprocess> kmc extract defects countdefects
3
sprocess> kmc extract defects name=I countparticles
7
sprocess> kmc extract defects name=I defectname=AmorphousPocket countdefects
2
The parameter acinterface displays the lattice atoms belonging to the amorphous–
crystalline interface. All the lattice atoms can be obtained by using acinterface detailed.
This parameter generates an output only when the LKMC model is used for recrystallization
(see LKMC: Fully Atomistic Modeling of Solid Phase Epitaxial Regrowth on page 451).
The dose option extracts the concentration per surface unit (in other words, cm–2) for the
whole simulation cell. dose can be used to look at the evolution of the species with the time.
Particles ( I, AsV, B i-, … )
kmc extract dose name = Defects ( I , V , I V , B I , … )
n n n m n m
Totals ( AsTotal, BTotal, ... )
ImpurityCluster
defectname = ThreeOneOne [countdefects] [materialname=<material>]
…
The parameters name and defectname restrict the species to compute the dose. name can be
any particle or defect. defectname can be specified only when name is a particle, and it
restricts the particles to be of the specified type. A list of defect types is obtained with kmc
defecttypes. A “total” name: the name of an impurity followed by the work “Total”, like
BTotal, applies to all the circumstances where the specified impurity is present, that is, in
clusters, substitutional, pairs, and so on.
This command counts the number of particles (such as kmc extract defects with the
same restrictions and the countparticles option) and it divides this number by the surface
area. Finally, the parameter materialname restricts the output to the material specified
instead of the whole simulation. For interfaces, instead of specifying a material name, specify
a particle name such as AsInterface, BInterface.
As an example, the following input file implants silicon into silicon and extracts the dissolution
of {311} during annealing:
set silicon_depth 350e-3
set size 50e-3
set SiO2gate 1.5e-3
SetAtomistic
set sol ""
pdbSet KMC Movie {lappend sol $time [kmc extract dose name=I \
defectname=ThreeOneOne]}
pdbSet KMC MaxZum $size
pdbSet KMC MaxYum $size
pdbSet KMC GasUm $SiO2gate
pdbSet KMC automaticRampUp true
line x loc=0.0 tag=xtop spacing = 0.002
line x loc=$silicon_depth tag=xbottom spacing = 0.002
region silicon xlo=xtop xhi=xbottom
init
deposit oxide fill coord=[expr -$SiO2gate]
implant silicon energy=40 dose=5e13 tilt=7
diffuse time=3100 temp=670
LogFile $sol
1013
1012
1011
1000 10000 100000
Time [s]
Figure 83 Dissolution of {311} extended defects at 670oC after a silicon into silicon implant
of 40 keV, 5 x 1013 cm–2
The command kmc extract materials produces the list of materials currently in the
simulation:
sprocess> kmc extract materials
Silicon Oxide Gas
The option detailed produces a list of coordinates and materials. This list contains the same
number of dimensions as the simulation (except if you use coordx, coordy, or coordz). For
example, in a 1D simulation:
sprocess> kmc extract materials detailed
-0.002 Gas
-0.000625 Oxide
0.00075 Oxide
0.002125 Oxide
0.0035 Oxide
0.004875 Oxide
0.00625 Oxide
0.007625 Oxide
0.009 Oxide
0.010375 Silicon
0.01175 Silicon
0.013125 Silicon
0.0145 Silicon
0.015875 Silicon
0.01725 Silicon
The parameters coordx, coordy, and coordz affect the output of detailed by changing its
dimensionality. They work exactly the same as in kmc extract profile (see The profile
Option on page 539).
When the KMC model for SPER is detected, the option acinterface displays all the places
where the amorphous–crystalline field crosses the threshold specified in
KMC ACInterfaceAt. A value of 1 means perfectly amorphous and 0 means perfectly
crystalline. The default value is 0.9. The output also displays the materials at both sides of the
interface, displaying first the material with a smaller coordinate value. In this case, the interface
is at 0.0165 μm , and the transition is from Amorphous to Crystalline as the x-coordinate
increases. When the LKMC model is used for SPER, the parameter ACInterfaceAt is
ignored, and a more precise interface is extracted directly from the LKMC atomistic
information.
The commands considered for the referenced tables, and the symbols used to represent them,
are:
■ kmc add queue (Add)
■ kmc extract profile (Pro)
■ kmc extract histograms (His)
I Neutral interstitial in point defects, clusters, and Sup, His, Add, Pro, Dos, Def, Dea, Pre
extended defects
IMM I--, point defect Add, Pro, Dos, Def, Dea, Pre
IPP I++, point defect Add, Pro, Dos, Def, Dea, Pre
ITotal Total interstitial concentration; similar to I + IMM + Dea, Pre, Pro, Dos
IM + IP + IPP
V Neutral vacancy in point defects, clusters, and Sup, His, Add, Pro, Dos, Def, Dea, Pre
extended defects
VMMM V---, point defect Add, Pro, Dos, Def, Dea, Pre
VMM V--, point defect Add, Pro, Dos, Def, Dea, Pre
VPP V++, point defect Add, Pro, Dos, Def, Dea, Pre
+++
VPPP V , point defect Add, Pro, Dos, Def, Dea, Pre
B Boron, substitutional, at interfaces or in clusters Add, Pro, Dos, Def, Dea, Pre
BV Neutral-paired defect, boron vacancy Add, Pro, Dos, Def, Dea, Pre, His
BVM BV-, paired defect Add, Pro, Dos, Def, Dea, Pre
+
BVP BV , paired defect Add, Pro, Dos, Def, Dea, Pre
Bi Neutral-paired defect, boron interstitial Add, Pro, Dos, Def, Dea, Pre, His
BiM Bi-, paired defect Add, Pro, Dos, Def, Dea, Pre
BiP Bi+, paired defect Add, Pro, Dos, Def, Dea, Pre
As Arsenic, substitutional at interfaces or in clusters Add, Pro, Dos, Def, Dea, Pre
AsV Neutral-paired defect of arsenic and a vacancy Add, Pro, Dos, Def, Dea, Pre, His
AsVM AsV-, paired defect Add, Pro, Dos, Def, Dea, Pre
AsVP AsV+, paired defect Add, Pro, Dos, Def, Dea, Pre
Asi Neutral-paired defect of arsenic and an interstitial Add, Pro, Dos, Def, Dea, Pre, His
AsiM Asi-, paired defect Add, Pro, Dos, Def, Dea, Pre
AsiP Asi+, paired defect Add, Pro, Dos, Def, Dea, Pre
AsTotal Total arsenic; similar to As + AsV + AsVM + AsVP Dea, Pre, Pro, Dos
+ Asi + AsiM + AsiP
AsInterface Arsenic attached at interfaces Add, Pro, Dos, Def, Dea, Pre
C Carbon, substitutional, at interfaces or in clusters Add, Pro, Dos, Def, Dea, Pre
CV Neutral-paired defect of carbon and a vacancy Add, Pro, Dos, Def, Dea, Pre, His
Ci Neutral-paired defect of carbon and an interstitial Add, Pro, Dos, Def, Dea, Pre, His
CInterface Carbon attached at interfaces Add, Pro, Dos, Def, Dea, Pre
F Fluorine, substitutional at interfaces or in clusters Add, Pro, Dos, Def, Dea, Pre
FI Neutral-paired defect of fluorine with an interstitial Add, Pro, Dos, Def, Dea, Pre, His
FV Neutral-paired defect of fluorine with a vacancy Add, Pro, Dos, Def, Dea, Pre, His
FInterface Fluorine attached at interfaces Add, Pro, Dos, Def, Dea, Pre
In Indium, substitutional, at interfaces or in clusters Add, Pro, Dos, Def, Dea, Pre
InV Neutral-paired defect of indium and a vacancy Add, Pro, Dos, Def, Dea, Pre, His
-
InVM InV , paired defect Add, Pro, Dos, Def, Dea, Pre
InVP InV+, paired defect Add, Pro, Dos, Def, Dea, Pre
Ini Neutral-paired defect of indium and an interstitial Add, Pro, Dos, Def, Dea, Pre, His
IniM Ini-, paired defect Add, Pro, Dos, Def, Dea, Pre
+
IniP Ini , paired defect Add, Pro, Dos, Def, Dea, Pre
InTotal Total indium; similar to In +InV + InVM + InVP + Dea, Pre, Pro, Dos
Ini + IniM + IniP
InInterface Indium attached at interfaces Add, Pro, Dos, Def, Dea, Pre
PV Neutral-paired defect of phosphorus and a vacancy Add, Pro, Dos, Def, Dea, Pre, His
PVM PV-, paired defect Add, Pro, Dos, Def, Dea, Pre
PVP PV+, paired defect Add, Pro, Dos, Def, Dea, Pre
Pi Neutral-paired defect of phosphorus and an Add, Pro, Dos, Def, Dea, Pre, His
interstitial
PiM Pi-, paired defect Add, Pro, Dos, Def, Dea, Pre
PiP Pi+, paired defect Add, Pro, Dos, Def, Dea, Pre
PTotal Total phosphorus; similar to P + PV + PVM + PVP Dea, Pre, Pro, Dos
+ Pi + PiM + PiP
PInterface Phosphorus attached at interfaces Add, Pro, Dos, Def, Dea, Pre
Sb Antimony, substitutional, at interfaces or in clusters Add, Pro, Dos, Def, Dea, Pre
SbV Neutral-paired defect of antimony and a vacancy Add, Pro, Dos, Def, Dea, Pre, His
SbVM SbV-, paired defect Add, Pro, Dos, Def, Dea, Pre
SbVP SbV+, paired defect Add, Pro, Dos, Def, Dea, Pre
Sbi Neutral-paired defect of antimony and an interstitial Add, Pro, Dos, Def, Dea, Pre, His
SbiP Sbi+, paired defect Add, Pro, Dos, Def, Dea, Pre
SbTotal Total antimony; similar to Sb + SbV + SbVM + Dea, Pre, Pro, Dos
SbVP + Sbi + SbiP
N Nitrogen, substitutional, at interfaces or in clusters Add, Pro, Dos, Def, Dea, Pre
Nn N2, substitutional, at interfaces or in clusters Add, Pro, Dos, Def, Dea, Pre
NnV Moving N2V particle Add, Pro, Dos, Def, Dea, Pre, His
NnInterface N2 stored at the interface Add, Pro, Dos, Def, Dea, Pre
H Hydrogen, substitutional, at interfaces or in clusters Add, Pro, Dos, Def, Dea, Pre
Ge Germanium (stored as a field, not as a particle) Add, Pro, Dos, Def, Dea, Pre
IV Interstitial–vacancy amorphous pocket. His, Add, Pro, Dos, Def, Dea, Pre
I3V2 Amorphous pocket. Any other IxVy with x and y Add, Pro, Dos, Def, Dea, Pre
integers is also valid.
I8 Extended defect formed by eight interstitials. Any Add, Pro, Dos, Def, Dea, Pre
other Ix, where x is an integer, is also valid.
V4 Extended defect formed by four vacancies. Any Add, Pro, Dos, Def, Dea, Pre
other Vx, with x an integer, is valid.
B2I3 Boron–interstitial cluster. Other integers are also Add, Pro, Dos, Def, Dea, Pre
valid.
As4V Arsenic–vacancy cluster. Other integers are also Add, Pro, Dos, Def, Dea, Pre
valid.
B2IC3 Dopant cluster. Any combination of dopants with Add, Pro, Dos, Def, Dea, Pre
(or without) interstitials or vacancies is valid.
P2As2I Another example for dopant cluster Add, Prod, Dos, Def, Dea, Pre
This command includes the calibration of point-defect diffusivity, extended defects formation
and dissolution, boron diffusivity, boron–interstitial clustering process (activation and
deactivation of boron), surface trapping and re-emission of boron, and so on.
This command must be written after SetAtomistic since it detects the presence of an
atomistic simulation to load the Advanced Calibration parameters related to Sentaurus
Process KMC:
SetAtomistic
...
AdvancedCalibration
In cases where Advanced Calibration for Sentaurus Process KMC must be loaded, but it is not
possible to call it after SetAtomistic, the following workaround can be used. In particular,
this is the preferred mode to call Advanced Calibration for Sentaurus Process KMC in hybrid
simulations, and the only way to do it when using the kmc option in the diffuse command:
pdbSet AtomisticData 1
AdvancedCalibration
pdbSet AtomisticData 0
References
[1] I. Martin-Bragado, Simulación atomística de procesos para Microelectrónica, Ph.D.
thesis, Universidad de Valladolid, Valladolid, Spain, 2004.
[2] M. Jaraiz et al., “Atomistic Front-End Process Modelling: A Powerful Tool for Deep-
Submicron Device Fabrication,” in International Conference on Simulation of
Semiconductor Processes and Devices (SISPAD), Athens, Greece, pp. 10–17, September
2001.
[3] N. Strecker, V. Moroz, and M. Jaraiz, “Introducing Monte Carlo Diffusion Simulation
into TCAD tools,” in Technical Proceedings of the International Conference on
Modeling and Simulation of Microsystems (Nanotech 2002), vol. 1, San Juan, Puerto
Rico, USA, pp. 462–465, April 2002.
[4] R. A. Casali, H. Rücker, and M. Methfessel, “Interaction of vacancies with interstitial
oxygen in silicon,” Applied Physics Letters, vol. 78, no. 7, pp. 913–915, 2001.
[5] N. Cowern and C. Rafferty, “Enhanced Diffusion in Silicon Processing,” MRS Bulletin,
vol. 25, no. 6, pp. 39–44, 2000.
[6] N. E. B. Cowern et al., “Impurity Diffusion via an Intermediate Species: The B-Si
System,” Physical Review Letters, vol. 65, no. 19, pp. 2434–2437, 1990.
[7] P. M. Fahey, P. B. Griffin, and J. D. Plummer, “Point defects and dopant diffusion in
silicon,” Reviews of Modern Physics, vol. 61, no. 2, pp. 289–388, 1989.
[8] P. A. Stolk et al., “Physical mechanisms of transient enhanced dopant diffusion in ion-
implanted silicon,” Journal of Applied Physics, vol. 81, no. 9, pp. 6031–6050, 1997.
[9] I. Martin-Bragado, N. Zographos, and M. Jaraiz, “Long and double hop kinetic Monte
Carlo: Techniques to speed up atomistic modeling without losing accuracy,” Materials
Science and Engineering B, vol. 154–155, pp. 202–206, December 2008.
[10] P. Castrillo et al., “Atomistic Modeling of Defect Diffusion in SiGe,” in International
Conference on Simulation of Semiconductor Processes and Devices (SISPAD), Vienna,
Austria, pp. 9–12, September 2007.
[11] P. J. Schultz et al., “Crystalline-to-amorphous transition for Si-ion irradiation of
Si(100),” Physical Review B, vol. 44, no. 16, pp. 9118–9121, 1991.
[12] T. Diaz de la Rubia and G. H. Gilmer, “Structural Transformations and Defect
Production in Ion Implanted Silicon: A Molecular Dynamics Simulation Study,”
Physical Review Letters, vol. 74, no. 13, pp. 2507–2510, 1995.
[13] D. J. Eaglesham et al., “Implantation and transient B diffusion in Si: The source of the
interstitials,” Applied Physics Letters, vol. 65, no. l8, pp. 2305–2307, 1994.
[14] S. Takeda, “An Atomic Model of Electron-Irradiation-Induced Defects on {113} in Si,”
Japanese Journal of Applied Physics, vol. 30, no. 4A, pp. L639–L642, 1991.
[45] I. Martin-Bragado et al., “Physical modeling of Fermi-level effects for decanano device
process simulations,” Materials Science and Engineering B, vol. 114–115, pp. 284–289,
December 2004.
[46] I. Martin-Bragado et al., “Fermi-level effects in semiconductor processing: A modeling
scheme for atomistic kinetic Monte Carlo simulators,” Journal of Applied Physics,
vol. 98, p. 053709, September 2005.
[47] C. Persson, U. Lindefelt, and B. E. Sernelius, “Band gap narrowing in n-type and p-type
3C-, 2H-, 4H-, 6H-SiC, and Si,” Journal of Applied Physics, vol. 86, no. 8, pp. 4419–
4427, 1999.
[48] S. C. Jain and D. J. Roulston, “A Simple Expression for Band Gap Narrowing (BGN) in
Heavily Doped Si, Ge, GaAs and GexSi1–x Strained Layers,” Solid-State Electronics,
vol. 34, no. 5, pp. 453–465, 1991.
[49] D. R. Lim, C. S. Rafferty, and F. P. Klemens, “The role of the surface in transient
enhanced diffusion,” Applied Physics Letters, vol. 67, no. 16, pp. 2302–2304, 1995.
[50] N. E. B. Cowern et al., “Transient enhanced diffusion in preamorphized silicon: the role
of the surface,” Nuclear Instruments and Methods in Physics Research B, vol. 148,
no. 1–4, pp. 257–261, 1999.
[51] I. Martin-Bragado and V. Moroz, “Modeling of {311} facets using a lattice kinetic
Monte Carlo three-dimensional model for selective epitaxial growth of silicon,” Applied
Physics Letters, vol. 98, no. 15, p. 153111, 2011.
[52] B. Sahli et al., “Ab initio calculations of phosphorus and arsenic clustering parameters
for the improvement of process simulation models,” Material Science and
Engineering B, vol. 154–155, pp. 193–197, December 2008.
The equations are expressed in a Newton iteration–ready form. They are specified as text
strings that are assumed to be equal to zero. Most mathematical operators are supported to
specify equations, and various operators for differential terms are available. For terms that
include the gradient (grad) operator, Sentaurus Process automatically calculates the
divergence. It is not necessary to specify the divergence in the equations.
Binary operators, functions, constants, and parameters are supported. Care must be exercised
with Tcl expansion of variables and strings, as usually users want variables to be evaluated at
run-time, not when they are read.
Operators
The Alagator language operators and variables consist of binary operators, simple functions,
differential functions, string names, solution names, subexpressions, constants, and
parameters.
NOTE The Tcl command expr pow(a,b) is not supported in the Alagator
language when a and b do not evaluate to an integer or double value.
Many comparison operators are implemented. These do not support derivative operations, so
they cannot be used in the gradient expression. However, they can be used in the select
command (see select on page 1053). The operators >, <, >=, <=, ==, and != are implemented
with their usual meanings. Care must be used with equals and not equals, since a comparison
of floating point values in this way can be problematic.
Logical operators and (&&) and or (||) are also provided for use with callbacks and
initialization. When these operators are used as part of a differential equation, care must be
taken as the Newton method does not ensure convergence for problems that are not first-order
continuous.
In addition to these, a conditional operator (?:) is provided, which takes three operands. The
first operand is a condition, the second operand is the value of the entire conditional expression
if the condition is true, and the third operand is the value of the entire conditional expression if
the expression is false. For example, the command:
sel z = "(Vac>1e15) ? (1e15) : (Vac)" name = Vac
15 15
sets the value of Vac to 1 × 10 on mesh points where Vac is greater than 1 × 10 and does
15
not change Vac on mesh points where Vac is smaller than 1 × 10 . Since the select
command works on mesh nodes, the conditional operator is very useful for truncating profiles.
Simple Functions
All simple functions take one argument that must be enclosed in parentheses. The argument
can be any expression. Most common functions are available, including ‘exp’ natural
exponentiation, ‘log’ natural log, ‘log10’ log base 10, and ‘sqrt’ square root. Additionally, the
complementary error function ‘erfc’ and error function ‘erf’ are provided to help build initial
doping profiles. All of these functions have supported derivatives and can be used in the
specification of partial differential equations (PDE).
‘abs’ and ‘sign’ provide an absolute value and sign operation. The sign operation is positive if
the argument is greater than zero and minus one for less than zero. These functions do not
provide derivatives and cannot be used as part of a differential equation.
Differential Functions
The differential functions are used in partial differential equations only and are not evaluated
with the select command. There are two differential operators: ddt and grad. Time
derivatives are supported with the ddt operator. It takes a single argument and computes the
first-time derivative of the argument for use in a partial differential equation. Time-step
integration is provided automatically using the Bank–Rose TRBDF method [1].
Spatial derivatives are supported in two ways. A simple gradient is supported with grad.
Implied is the evaluation in a discrete sense and the integral around a control volume. For this
reason, div is not required. For example, A*B*grad(C) is treated as div(A*B*grad(C)).
Special Functions
The special operator diag provides the modeling of anisotropic diffusion. The special operator
(anisotropic diffusion matrix) has the form:
a 0 0
diag (a,b,c) ≡ 0 b 0 (811)
00 c
where a, b, and c are any valid Alagator expression. It also can include diffusion solution
variables. For discretization, the diag operator projects the vector to the edge direction. For
1D structures, a must be specified. For 2D structures, a and b must be specified. For 3D
structures, a, b, and c must be defined.
3σ
---------x
3σ x 2σ y kT
--------
- – --------- e 0 0
kT kT
diag ( e ,e , 1) ≡ 2σ (812)
– ---------y
kT
0 e 0
0 0 1
String Names
Strings that are not recognized as real numbers, operators, or functions are handed to the
resolution phase of the parser. These strings are compared to four sets of possible matches. The
first set is valid solution names created with the solution command (see solution on
page 1076). The second set is the data field name. The third set is named subexpressions
created with the term command (see term on page 1099). Finally, any remaining strings are
passed to the Tcl expression function to see if they can be parsed to a real number constant.
This allows parameters from the parameter database to be used in differential equations.
When defining parameters, care must be given to the nested declaration. Especially when
parameters are derived using the pdbDelayDouble command from other parameters, the Tcl
expression parser may be unable to expand the whole expression and evaluate it correctly. For
example:
pdbSetDouble Si Test Param1 {[Arr 1 2]} (1)
pdbSetDouble Si Test Param2 {2.0*[pdbDelayDouble Si Test Param1]}(2)
pdbSetDouble Si Test Param3 {2.0*[pdbGetDouble Si Test Param1]}(3)
pdbGet Si Test Param2 (4)
pdbGet Si Test Param3 (5)
The first three lines set Param1, Param2, and Param3. Param2 and Param3 are derived
parameters from Param1. While Param2 uses pdbDelayDouble to obtain the value of
Param1, Param3 uses pdbGetDouble. When retrieving data, line 4 will return an error
message and line 5 will return a valid double number without an error message. The error
message is issued because pdbDelayDouble returns an expression of Param1, which is
treated as a string by the Tcl parser during the evaluation of Param2. To prevent such errors,
Param2 can be encapsulated with the expr command:
pdbSetDouble Si Test Param2 {[expr 2.0*[pdbDelayDouble Si Test Param1]]}
∂C X
= ∇•D∇C X (813)
∂t
where CX is the solution variable and D is the diffusivity term (see Solution Names and
Subexpressions: Terms on page 562).
NOTE Since the examples given in this chapter use parameters that are not in
the PDB, long-hand pdbSet commands are used (see pdbSet and
Related Functions on page 1005).
Basics
The simplest diffusion equation uses a constant diffusivity and can be described by Fick’s first
law and second law. Two main steps are required to initialize and solve this equation. First, a
solution must be defined (see solution on page 1076). Second, the equation must be entered
into the parameter database.
The first line creates a new solution named CX and adds it to the solution list. The solution
cannot take negative values and numeric damping is not applied to the updates of the Newton
iteration. The solution is always to be solved.
NOTE Aliases are defined only for pdb commands. In the above example, the
solution name used in the definition of partial differential equations
must match the one defined with the solution command.
The second line makes an entry into the parameter database. This is created for the material
Silicon and the solution variable CX. An entry is made for an Equation, which is the
predefined entry that Alagator looks for to find a differential equation. The string value set is
the differential equation that will be solved for this variable in this material. The equation uses
a time operator (ddt) and gradient operator (grad) to implement a simple diffusion equation.
The divergence operator is implied and computed as part of the discretization of the equations.
Whenever a gradient operator grad is in an Alagator script, it is assumed that the divergence
will be taken of that term during assembly.
In this first example, the diffusivity does not depend on the temperature. To use a temperature-
dependent diffusivity, use the following command lines:
set diff {[Arrhenius 0.138 1.37]}
pdbSetString Silicon CX Equation "ddt(CX) - $diff * grad(CX)"
In the first line, a local Tcl variable is created to hold a string representing the diffusivity. The
braces are necessary to prevent immediate evaluation of the Arrhenius function (see Arrhenius
on page 857). The Arrhenius function is a predefined helper function that allows for the simple
creation of Arrhenius expressions. It uses the temperature set by the diffusion command or
the SetTemp command (see SetTemp on page 1062). The presence of braces means that the
Arrhenius function is inserted directly into the parameter database equation and is evaluated
during the diffusion. For each diffusion time-step, the Arrhenius function will then be
evaluated at the current temperature.
A further enhancement can be made by adding the diffusivity to the parameter database. This
allows other users to change the value in the equation by accessing the properties directly. The
following changes make the equation dependent on the stored value in the database:
pdbSetDouble Silicon CX D {[Arrhenius 0.1 3.62]}
set diff [pdbDelayDouble Silicon CX D]
pdbSetString Silicon CX Equation "ddt(CX) - $diff * grad(CX)"
The first line sets the diffusivity in the database. This can be made permanent by directly
editing the hierarchy files. The second line uses pdbDelayDouble to return the expression
stored in the database. This is necessary so that the evaluation of the expression does not occur
until the diffuse command is executed. Now, the equation depends on the database entry.
(You can change this entry to observe the effect of different diffusivities on the final profile.)
In addition, it is possible to solve for CX only after it is introduced into the structure or
otherwise present in the material. This is performed by modifying the solution command:
solution name=CX !negative !damp ifpresent=CX add
The ifpresent option enables the solution as a variable for the diffusion equation only if a
real data field exists with that name. This means that only structures already having CX defined
(with the select command, for example) will solve the differential equation. This is useful
for controlling CPU time and matrix size by not requiring solutions of systems that do not have
that species present.
The previous example can be enhanced by adding a boundary condition to allow in-diffusion
of this species from a gas source. For simplicity, it is assumed that the gas source fixes the
19 –3
surface concentration of species CX at 5 × 10 cm .
Both commands work on the gas–silicon interface for the CX variable. The first command states
that the value is to be fixed on the silicon side, that is, a Dirichlet boundary condition is to be
applied. The keyword Fixed is used only with the Dirichlet boundary condition.
Fluxes will be ignored at this node and the boundary condition will control the concentration.
The _Silicon option on Fixed indicates the value is to be set on the silicon side. This is
critical because there can be three components on any interface, one for each material and one
for the interface. The second command sets the boundary condition equation on the silicon side
19 –3
to be the concentration of 5 × 10 cm .
NOTE Equations are set to zero by definition. The CX variable also has
_Silicon appended to indicate that the concentration is set on the
silicon side.
NOTE The interface names are lexically ordered. Most interface names are set
to the right order using the alias command (for example,
Silicon_Gas will be interpreted as Gas_Silicon). If a new interface
name is introduced, the order must be followed.
Of course, this boundary condition assumes that the diffusion equation for CX is solved in the
oxide region as well. Otherwise, the diffusion equations would be unbalanced at this interface.
Both of the commands work on the oxide–silicon interface. The _Silicon and _Oxide
options on Equation indicate the side of the interface to which the given flux will be applied.
The same options on the solution variable CX indicate whether the solution variable value at
this interface is taken from the oxide side or the silicon side. It should also be noted that the
–7
fluxes have opposite signs. The first number ( 1.6 × 10 ) in the flux equation is the transfer
coefficient and the second number (0.28) is the segregation coefficient.
If a natural boundary condition is needed, the following three commands will create this
boundary condition:
set Ksurf {[Arrhenius 1.17e6 1.37]}
set CXStar {[Arrhenius 3.6e27 3.7]}
pdbSetString Gas_Silicon CX Equation_Silicon "- $Ksurf * (CX_Silicon - \
$CXStar)"
The first two lines set the surface recombination rate and the equilibrium concentration, and
the third line sets the equation. In this case, a flux is added to the equation on the silicon side,
so there is no need for the Fixed flag. Recombination at an interface obtains a negative sign
and generation obtains a positive sign. The variable again needs to have _Silicon appended
to indicate the value on the silicon side of the interface.
Interface Traps
Interfaces can act like traps for diffusing species. It is also possible that the trapped species may
diffuse along the interface and segregate into neighboring materials.
The first three lines set the diffusivity, trapping rate, and equilibrium concentration of CX at the
gas–silicon interface, respectively. The fourth line sets the trapping equation at the gas–silicon
interface. The solution variable name (CX) without the suffix _Silicon indicates the value at
this interface. The variable with _Silicon appended indicates the value on the silicon side of
the interface. The grad() operator has the usual meaning as previously explained (see Basics
on page 564). The last term in the equation is the flux, which depends on the trapping rate. The
last line adds the corresponding flux to the equation on the silicon side.
where:
■ <material> is the material name.
■ <solution> is the solution name.
■ <boundary> is specified with one of the following: LeftSide, RightSide,
FrontSide, BackSide, or Bottom.
The specified equation is added to the bulk equation of the solution at the nodes on the specified
side.
Using Terms
It is possible to extend the previous example by introducing a new solution variable, CY, and
the following recombination reaction between CX and CY:
X+Y↔0 (814)
* *
R CXCY ≡ K f ( CXCY – CX CY ) (815)
The reaction states that two species (CX and CY) annihilate each other when they react. K f is
the forward reaction rate, and CX∗ and CY∗ are the equilibrium values of the solution
variables. The new solution variable is assumed to diffuse according to Fick’s law of diffusion.
Building on the previous example, the above equation can be implemented by the following
command lines:
solution add name=CX !damp !negative solve
solution add name=CY !damp !negative solve
The first two lines create solutions for CX and CY. The third line is the forward reaction rate.
The next two lines set the equilibrium concentrations of CX and CY. The sixth line sets the
RCXCY variable to be a subexpression for the recombination reaction. Any excess of CX and CY
is annihilated until the concentrations are at the equilibrium product. Finally, the diffusivity is
obtained and the equation is set, similar to the previous example. The recombination reaction
is added to both solution variable equations.
A common error is not to add reaction terms to all affected equations. When the recombination
is positive, it forces the time derivative to become negative to make the equation equal to zero.
The implementation cited above is difficult to read. The RCXCY variable is used more than once
and may need to be used in other equations. To reduce the maintenance of the code, a term can
be created and used everywhere, not only in the local scope where the term is defined (see term
on page 1099).
A term is a common subexpression that can be used in multiple instances. When the term
appears in multiple equations, the values are easily retrieved from memory and accumulated,
for example:
solution add name=CX !damp !negative solve
solution add name=CY !damp !negative solve
This is almost identical to the previous example, except that a term was created, not a local
variable. Due to this change, the dollar sign (indicative of a Tcl variable) is no longer needed
in the equation. It has become a simple text string, which will be resolved to the term. The terms
are kept until you exit the simulator, so it can be used in other equations or in a select
command (if you want to monitor the recombination rates).
A further enhancement can be made by adding the diffusivity, equilibrium concentrations, and
reaction rate to the parameter database as previously. The following changes make the equation
dependent on the stored values in the database:
pdbSetDouble Silicon CX D {[Arrhenius 0.138 1.37]}
pdbSetDouble Silicon CY D {[Arrhenius 0.02 0.3]}
pdbSetDouble Silicon CX Kf {[Arrhenius 4.2e-11 0.1]}
pdbSetDouble Silicon CX Cstar {[Arrhenius 3.6e27 3.7]}
pdbSetDouble Silicon CY Cstar {[Arrhenius 4.0e26 3.97]}
term name = RCXCY Silicon eqn = "$Kf * (CX * CY- $CXStar * $CYStar)"
As stated in the previous section, the first five lines use pdbDelayDouble to return the
expression stored in the database. This is necessary so that the evaluation of the expression does
not occur until the diffuse command is executed.
Callback Procedures
Callbacks allow additional ‘intelligence’ to be built into the equations by allowing procedures
to be called at run-time. These procedures build the Alagator equation strings according to
user-specified options. By selecting model switches, you can choose between different
physical models to be represented in the equation strings. By having callback procedures that
use a material name, a dopant name, or a defect name as arguments, the same type of equation
can be built for several materials, dopants, and defect species. In Sentaurus Process, all
frequently used equations are built-in callback procedures.
■ EquationInitProc
■ EquationProc
■ GrowthRateProc
InitGrowth and EquationGrowthProc are used to define generic growth equations (see
Alagator for Generic Growth on page 584), and GrowthRateProc is used with the epi model
(see Epitaxy on page 270). Using the pdbSet command, you can point Alagator to use various
Tcl callback procedures.
This section focuses on the remaining keywords. All of these keywords provide a Tcl callback
procedure name to Sentaurus Process:
EquationInitProc Provides the Tcl callback procedure name that sets up the
initialization equations.
EquationProc Provides the Tcl callback procedure name that sets up diffusion
equations.
InitProc Provides the Tcl callback procedure name that is usually used to reset
or delete existing parameter database equations or terms at the
beginning of a diffusion simulation.
InitSolve Provides the Tcl callback procedure name that is used to reset or
delete existing parameter database equations or terms.
The Tcl callback procedures are called at various stages during the execution of a diffuse
command. In addition to the callback procedures, Sentaurus Process calls the
diffPreProcess Tcl procedure before executing the diffuse command and the
diffPostProcess Tcl procedure after executing the diffuse command. The default
behavior is described in Ion Implantation to Diffusion on page 340.
Figure 84 shows the flowchart of this process. Sections relating to generic growth are omitted.
They are explained in Alagator for Generic Growth on page 584.
diffuse
diffPreProcess
Next
Next
Solve initialization
equations
InitPostProcess
Next
Next
Solve diffusion
equations
diffPostProcess
Figure 84 Flowchart with calls to the callback procedures during the execution of a diffuse
command by Sentaurus Process; callbacks related to material growths are
omitted
The execution of every diffuse command starts with a call to the diffPreProcess Tcl
procedure. The diffPreProcess Tcl procedure is used to initialize various data fields or to
preprocess the existing data fields. For example, the truncation of interstitial and vacancy
profiles in the amorphous regions is performed in this procedure. In diffPreProcess, the
point-defect equations are switched on or off according to the diffusion models selected.
Initialization
After the execution of diffPreProcess, Sentaurus Process checks for all materials and
solution names, and whether a procedure name is specified for the keyword InitSolve for
the material and solution names. If a procedure name is defined, the procedure will be called,
using the material name and solution name as arguments.
Subsequently, Sentaurus Process checks for all marked materials and solutions to see if a
procedure name is specified with the keyword EquationInitProc for the solution variable
that needs to be initialized. If this is the case, the procedure will be executed with the material
name and solution name as arguments. Typically, in this procedure, the equation string is built,
which is to be solved at time=0 in the diffusion solver. Alternatively, if no callback procedure
name is defined for the keyword EquationInitProc for a material and solution, the equation
string to be used for the initialization can be specified directly on the command line.
After that, Sentaurus Process will solve the initialization equations for all materials and
solutions that need to be initialized. The initialization equations are solved for the initial
temperature of the temperature ramp specified in the diffuse statement. Such an initialization
is usually not required for all solutions. It is typically necessary for solutions whose initial
value depends in a complex way on the data fields (see Complex Initialization Procedures:
InitSolve and EquationInitProc on page 580).
If initialization is not required at all, it can be omitted using the !isolve option with the
diffuse command.
A Tcl procedure called InitPostProcess is provided for convenience. It is called after the
initialization is completed. It can be used to plot or save the solution variable profiles after the
initialization. By default, InitPostProcess is an empty procedure.
After the initialization, Sentaurus Process checks for all materials and solution names to see
whether a procedure name is specified for the keyword InitProc. If the procedure is defined,
it will be called for the specified material name and solution name. These procedures are
usually used to set the equation strings to empty strings and to remove terms defined in
previous diffusion steps. By having empty equation strings, the equations and terms can be
built up piecewise, by adding expressions for each selected model that contributes to an
equation or a term. This is necessary because different diffusion models may be used for
different diffusion steps, and because additional species may be added between diffusion steps,
which may require terms to be added to the equations for existing species.
In the next step, Sentaurus Process checks for all materials and solution names to see whether
a procedure name is specified for the keyword EquationProc. If the procedure is defined, it
will be called with the material name and the solution name as parameters. These procedures
are used to set the diffusion equations for the solution variable. Alternatively, if no callback
procedure is defined for a material and a solution, the equation string can be set in a command
line without specifying any callback procedures.
After the diffusion equations are set, Sentaurus Process solves the equations for the whole
temperature cycle specified in the diffuse statement.
Finally, the procedure diffPostProcess will be called. The main purpose of the procedure
is to delete the data fields that are no longer needed and to store the total concentration of point
defects. The procedures diffPreProcess, diffPostProcess, and InitPostProcess
can be found in the Tcl library (see Ion Implantation to Diffusion on page 340) in the file
[Link].
The keyword InitProc is used to clean up equation strings. It specifies the name of the
callback procedure to be called by Sentaurus Process. For example, the first command below:
pdbSetString Silicon CX InitProc ResetEquations
defines the ResetEquations procedure as the callback procedure of the solution variable CX
in silicon. The callback procedure itself takes two arguments: a material name and a solution
name. In this example, Sentaurus Process will call the ResetEquations procedure with two
arguments. The first argument Mat will be Silicon and the second argument Sol will be CX.
The argument names Sol and Mat are arbitrary, and they can be any valid Tcl variable but the
first argument is always the material name and the second argument is always the solution
name.
The procedure is called every time the solutions are checked during the diffusion. The
procedure prints the message 'This callback procedure unsets CX equation in
Silicon' and removes the pdb equation if it was defined.
Note that neither the solution name CX nor the material name Silicon is used in the
implementation of the ResetEquations callback procedure. Therefore, the callback
procedure is a generic procedure and can be used for several materials and solutions. This
example can be extended with the following commands:
pdbSetString Silicon CX InitProc ResetEquations
pdbSetString Silicon CY InitProc ResetEquations
pdbSetString Oxide CX InitProc ResetEquations
pdbSetString Oxide CY InitProc ResetEquations
In this case, the same callback procedure, ResetEquations, is used for the solution variables
CX and CY in the materials oxide and silicon. Sentaurus Process will print the following
messages:
This callback procedure unsets CX equation in Oxide.
This callback procedure unsets CX equation in Silicon.
This callback procedure unsets CY equation in Oxide.
This callback procedure unsets CY equation in Silicon.
The advantage of using callback procedures is clear. With four new command lines, the
equations for CX and CY in both oxide and silicon can be unset. At the same time, there is only
one callback procedure to maintain. If you change the callback procedure, the changes will
apply to all four settings.
The primary responsibility of the equation procedure is to construct the equation string. It uses
the keyword EquationProc in the parameter database. The keyword determines which
callback procedure name will be called by Sentaurus Process. For example, the first command
below:
pdbSetString Silicon CX EquationProc SetEquations
defines the SetEquations procedure as the callback procedure of the solution variable CX in
silicon. The callback procedure itself takes two arguments: a material name and a solution
name. In this example, Sentaurus Process will call the SetEquations procedure with two
arguments. The first argument Mat will be Silicon and the second argument Sol will be CX.
The argument names Sol and Mat are arbitrary, and they can be any valid Tcl variable, but the
first argument is always the material name and the second argument is always the solution
name.
The SetEquations procedure is called every time the solutions are checked during the
simulation. In the above example, the procedure will print the message ‘This callback
procedure sets CX equation in Silicon.’ and will set the pdb equation for CX in
silicon.
NOTE Neither the solution name CX nor the material name Silicon is used in
the implementation of the SetEquations callback procedure.
Therefore, the callback procedure is a generic procedure. The equation
setting is similar to the one explained in Basics on page 564. The only
difference is that instead of using a solution name and material name,
only Tcl variables are used.
In this case, the same callback procedure, SetEquations, is used for the solution variables
CX and CY in silicon. Sentaurus Process will print the following messages:
This callback procedure sets CX equation in Silicon.
This callback procedure sets CY equation in Silicon.
The advantage of using callback procedures is clear. With two new command lines, you can set
the diffusion equations for CX and CY in silicon. At the same time, there is only one callback
procedure to maintain. If you change the callback procedure, the changes will apply to both
settings.
The above implementation uses the same diffusivity for both CX and CY. In order to use
different diffusivities for each solution variable, the callback procedure SetEquations needs
to be modified and diffusivities for each solution variable should be set as follows:
pdbSetString Silicon CX EquationProc SetEquations
pdbSetString Silicon CY EquationProc SetEquations
pdbSetDouble Silicon CX D {[Arrhenius 0.138 1.37]}
pdbSetDouble Silicon CY D {[Arrhenius 0.02 0.3]}
The first change above is the setting of CX and CY diffusivities in the database. The second
change is in the SetEquations callback procedure. Instead of having a hard-wired diffusivity
number, pdbDelayDouble is used to obtain the expression stored in the database. Now, the
diffusivities depend on the database entry. You can change these entries to observe the effect
of different diffusivities on the final profile.
The example given in Using Terms on page 568 can be enhanced further by using both terms
and callback procedures as follows:
pdbSetDouble Silicon CX D {[Arrhenius 0.138 1.37]}
pdbSetDouble Silicon CY D {[Arrhenius 0.02 0.3]}
pdbSetDouble Silicon CX Kf {[Arrhenius 4.2e-11 0.1]}
pdbSetDouble Silicon CY Kf {[Arrhenius 4.2e-11 0.1]}
pdbSetDouble Silicon CX Cstar {[Arrhenius 3.6e27 3.7]}
pdbSetDouble Silicon CY Cstar {[Arrhenius 4.0e26 3.97]}
pdbSetString Silicon CX Recomb “CY”
pdbSetString Silicon CY Recomb “CX”
term name = RCXCY $Mat eqn = "$Kf * ($Sol * $Recomb- $CXStar * $CYStar)"
First, the diffusivity, equilibrium concentration, and forward reaction rate for the
recombination of CX and CY are stored in the parameter database. Since CX and CY recombine
with each other, this information (Recomb) is also stored in the database. Then, the callback
procedure is modified to read these database entries. The Tcl variable Recomb in the callback
procedure will have the value of CY for CX and CX for CY. The forward recombination rate
RCXCY is the same for both solution variables. The callback procedure will be called once for
CX and once for CY. During each call, the term RCXCY will be created. Since the term name does
not depend on the solution name, the first term created during the CX equation setup will be
deleted during the CY equation setup. This is performed intentionally for this example since
both equations use exactly the same term. If you want to create a unique term for each call, the
callback procedure must be modified as follows:
proc SetEquations { Mat Sol } {
LogFile "This callback procedure sets $Sol equation in $Mat."
Sentaurus Process can initialize solution variable fields on the command line using various
commands, such as select (see select on page 1053) and profile (see profile on
page 1033). If the initialization can be standardized, it is better to use the diffPreProcess
callback procedure. By default, diffPreProcess is used to initialize the data fields for
interstitials, vacancies, dopants, dopant clusters, dopant-defect clusters, and defect clusters (see
Ion Implantation to Diffusion on page 340). The procedure also switches on and off point-
defect solutions and various cluster solutions.
This procedure will create a Gaussian profile for the solution variable CX with a peak at the
18 –3
depth x = 0.5 and a maximum concentration of 2 ×10 cm . Ten percent of the CX profile will
be added to the existing data field CY.
More complex examples can be created by combining pdb commands and the Tcl callback
procedures, for example:
pdbSetDouble Silicon CY minDose 1e10
proc diffPreProcess { } {
LogFile "This procedure is used to initialize data fields CX and CY"
sel z = CY
set dose [FindDose]
if { $dose > [pdbGetDouble Silicon CY minDose] } {
solution add name=CY !damp !negative solve
} else {
solution add name=CY !damp !negative nosolve
}
}
In this example, a parameter called minDose is created for CY in the database to set the
minimum allowed dose for diffusion to occur. In the callback procedure diffPreProcess,
the CX profile is set as previously explained. The second and fourth lines calculate the dose of
CY in silicon. The ‘if-else’ statement retrieves the minimum dose value from the database. If
the existing dose of CY is below the minimum dose, the solution for CY is switched off;
otherwise, it is switched on.
In some cases, the initialization of solution variables can be very complex and cannot be
accomplished by using the select command (see select on page 1053). In these cases,
Sentaurus Process defines the initialization equations using the Alagator language and callback
procedures.
Assume that the CX solution variable is initialized by solving the following equation:
β
CX Total = CX + ( αCX ) (816)
where CX Total is the total concentration of CX, and α and β are user-defined initialization
parameters. Depending on the value of α and β , you need to solve Eq. 816.
To initiate the initialization setup procedure, the solution name must be defined as:
solution add name=CX !damp !negative solve InitStep
The keyword InitSolve determines which callback procedure name will be called by
Sentaurus Process. For example, the first command below:
pdbSetString Silicon CX InitSolve ResetInitEquations
After calling the callback procedures defined by InitSolve, Sentaurus Process will look for
an equation string for the solution variable. This is performed by defining a callback procedure
using the keyword EquationInitProc.
In this procedure, the equation string for initialization is constructed. For example, the first
command below:
pdbSetString Silicon CX EquationInitProc SetInitEquations
defines the SetInitEquations procedure as the callback procedure of the solution variable
CX in silicon. The callback procedure itself takes two arguments: a material name and a
solution name. In this example, Sentaurus Process will call the SetInitEquations
procedure with two arguments. The first argument Mat will be Silicon and the second
argument Sol will be CX. The argument names Sol and Mat are arbitrary, and they can be any
valid Tcl variable, but the first argument is always the material name and the second argument
is always the solution name.
The EquationInitProc and EquationProc keywords work in the same way. The callback
procedure defined with the keyword EquationInitProc is called only during initialization.
The callback procedure defined with the keyword EquationProc is called only during
diffusion. It is assumed that Alpha and Beta are already entered into the database and
CXTotal is defined.
This part corresponds to the parameter database (see Parameter Database on page 53). All
default Sentaurus Process model parameters are stored in the parameter database. The second
part is the definition of the names of the solution variables and the names of the callback
procedures:
solution add name=CX !damp !negative solve
solution add name=CY !damp !negative solve
The information for the default Sentaurus Process models are stored in the TclLib directory
(see Environment Variables on page 46) in the file [Link], which is read by
Sentaurus Process as soon as the simulation starts. The file also contains information with
regard to solver types, implant directories, and material names.
The third part is the definition of diffusion and initialization models. The models are stored in
the TclLib directory (see Environment Variables on page 46):
proc UserDiffPreProcess { } {
LogFile "This procedure is used to initialize data fields CX and CY"
sel z = "CX + 2.0e18 * exp( -(x-0.5)*(x-0.5) / (0.01 * 0.01) ) + 1.0" \
name=CXTotal store
sel z = "CY + CXTotal * 0.1" name = CY store
}
term name = RCXCY $Mat eqn = "$Kf * ($Sol * $Recomb- $CXStar * $CYStar)"
pdbSetString $Mat $Sol Equation "ddt($Sol) - $diff * grad($Sol) + RCXCY"
}
Basics
In this section, examples of varying complexity are used to illustrate how to specify growth
equations using the Alagator scripting language. Most of the definitions are identical to those
of the diffusion equation. However, the keywords used to define the callback procedures and
the definition of solution variables differ. In addition, the reaction equations interact with the
reaction command.
GXGas_TEOS
TEOS n
n
GXSilicon_TEOS
Gas
Silicon
Figure 85 Flux, ambient concentration, and motion of the growth front during the growth
process
Consider a reaction where the ambient GX reacts with silicon and forms a new material called
TEOS. The schematic in Figure 85 shows the ambient concentration at each interface and the
motion of the growth during the process. J represents the fluxes towards the Gas_TEOS and
Silicon_TEOS interfaces, and the flux of GX inside TEOS.
Since TEOS is a new material, first, it must be entered into the existing material list using the
command:
mater add name=TEOS
Then, the reacting materials must be defined using the reaction command (see reaction on
page 1038).
It is possible to create a reaction based on existing ambients, but in this case, a new react type
(named GX) ambient is created:
ambient name=GX react add
reaction name=TEOSreaction mat.l=Silicon mat.r=Gas [Link]=TEOS \
[Link]=oxide [Link]=GX [Link]=GX
Silicon (mat.l) is on the left side of the reacting interface and Gas (mat.r) is the material
on the right side of the reacting interface. The newly formed material ([Link]) at the reacting
interface is TEOS. The new material and its interfaces with other materials also are defined to
be like Oxide and Oxide interfaces (for example, TEOS = Oxide, PolySilicon_TEOS =
Oxide_PolySilicon). For the GX reaction, it requires an ambient, and the ambient name is
GX. The reaction will not occur unless the ambient GX is present in a gas flow or directly in the
diffuse command. (For more information about how to specify ambients, see Ambients and
Gas Flows on page 605.) Reactions that require a react-type ambient cannot have more than
one diffusing species name. If the reaction does not require an ambient, it can have multiple
names of diffusing species. In this case, the reaction occurs if the reacting interfaces exist in
the structure.
The reaction command automatically adds the diffusing species GX to the general solution
list. This is performed internally by using the command:
solution name=GX add !negative GrowthStep solve
where GrowthStep identifies this solution name as a reaction solution name. When the
solution name and the new material are defined, the reaction and diffusion equations are written
as follows:
pdbSetString TEOS GX Equation "ddt(GX)- \[Arrhenius 0.2 1.86\]*grad(GX)"
pdbSetString Gas_TEOS GX Equation_TEOS "-(GX_TEOS - 1e17)"
pdbSetString Silicon_TEOS GX Equation_TEOS "-5e-2*(GX_TEOS)"
pdbSetString Silicon_TEOS GX GrowthReaction " 5e-2*(GX_TEOS)"
The first line sets the diffusion equation of GX in TEOS. The next two lines set the boundary
fluxes at the Gas_TEOS and Silicon_TEOS interfaces. One of the commands works on the
Gas_TEOS interface and the other one works on the Silicon_TEOS interface. The _TEOS
option on Equation indicates the side of the interface to which the given flux will be applied.
The same option on the solution variable GX indicates that the solution variable value at this
interface is taken from the TEOS side. These settings are identical to the ones described in
Setting Boundary Conditions on page 566.
The last line is unique to the generic growth equations. The keyword GrowthReaction is
used to define the growth reaction flux at the reacting interface. In this example, the growth
reaction flux is identical to the diffusion flux at the reacting interface. In addition, the sign of
the growth reaction flux is the opposite of the sign of the diffusion flux.
Finally, it is necessary to specify the ambient in a gas flow (see gas_flow on page 901) and use
it with the diffusion command or specify it directly in the diffusion command in order
for the reaction to occur. For example:
gas_flow name=gxflw partial_pressure = { GX = 1.0 }
diffuse time=100 temp=1000 gas_flow = gxflw
or:
diffuse time=100 temp=1000 GX
will both switch on reactions involving the ambient GX and will set the partial pressure of GX
to 1. Using the gas_flow command is more flexible in that the partial pressure can be set to
any value (not just 1.0) or the partial pressure can be computed from gas flows and gas
reactions.
Epi Reactions
This is an example of using the reaction command to create a new epitaxial growth mode:
ambient name=MyEpi epi add
# Now, create the new temporary material to be used during epi growth
# the name <Ambient>On<Material> is not necessary, it is just
# the same convention as used internally
mater name=MyEpiOnNitride add
reaction name= MyEpiOnNiReact mat.l=Nitride mat.r=Gas [Link]=MyEpiOnNitride \
[Link]=MyEpi [Link]=PolySilicon [Link]=PolySilicon
In this example, there is an additional parameter [Link], which is the final name of the
epi material. There is a conversion from [Link] to [Link] at the end of the diffuse
command. For details on how to set up epi reactions and growth rates, see Epitaxy Growth
Rate: GrowthRateProc on page 593.
The model can be enhanced by adding the model parameters to the PDB. This allows other
users to change the values in the equations by accessing the properties directly. The following
changes make the equations dependent on the stored value in the database:
pdbSetDouble TEOS GX Dstar "\[Arrhenius 0.2 1.86\]"
pdbSetDouble Gas_TEOS GX Cstar "1e17"
pdbSetDouble Silicon_TEOS GX Kfd "5e-2"
pdbSetDouble Silicon_TEOS GX Kfg "5e-2"
The first lines set the diffusivity, equilibrium value of GX, and forward reaction rates for the
diffusion and growth fluxes in the database. This can be made permanent by directly editing
the hierarchy files. The pdbDelayDouble command is used to return the expression stored in
the database. This is necessary so that the evaluation of the expression does not occur until the
diffuse command is executed. Now, the equation depends on the database entry.
It is possible to use terms with the generic growth equations. For example:
pdbSetDouble TEOS GX Dstar "\[Arrhenius 0.2 1.86\]"
pdbSetDouble Gas_TEOS GX Cstar "1e17"
pdbSetDouble Silicon_TEOS GX Kfd "5e-2"
pdbSetDouble Silicon_TEOS GX Kfg "5e-2"
a term called Reaction is created in TEOS. Note that the term also takes the _TEOS option to
indicate that the value of Reaction will be taken from the TEOS side.
The velocities regarding the growth reaction flux are calculated internally as follows:
Beta
υ Growth = --------------------------------------------------------------------------------- F Growth (817)
[Link] * [Link]
where F Growth is the growth reaction flux defined using the pdbSetString command and
GrowthReaction keyword as previously explained. Beta is the stoichiometry of the growing
material, [Link] is the conversion ratio from consumed material to the growing
material, and [Link] is the density of the growing material. The default values for
22
Beta, [Link], and [Link] are 1, 2.2, and 2.2 ×10 , respectively. They
can be changed by using the following commands:
pdbSetDouble <interface material> <ambient> Beta <n>
pdbSetDouble <interface material> <ambient> [Link] <n>
pdbSetDouble <interface material> <ambient> [Link] <n>
For example, for the above example, you can change these values with the following
commands:
pdbSetDouble Silicon_TEOS GX Beta 1.1
pdbSetDouble Silicon_TEOS GX [Link] 2.0
pdbSetDouble Silicon_TEOS GX [Link] 3e22
If [Link] is set to 0, the material will dissolve but the new material will not form.
(For example, silicon will dissolve but no TEOS will form. This is useful for silicidation.)
Callback Procedures
Callbacks allow additional ‘intelligence’ to be built into the equations by allowing procedures
to be called at run-time. These procedures build the equation strings according to user-specified
options. By selecting model switches, the user can choose between different physical models
to be represented in the equation strings. Having callback procedures that use a material name
and a solution name as arguments, the same type of equation can be built for several materials,
dopants, and defect species. In Sentaurus Process, all frequently used equations are built-in
callback procedures.
The Tcl callback procedures are called at various stages during the execution of the diffuse
command. In addition to the callback procedures, Sentaurus Process calls the
diffPreProcess Tcl procedure before executing the diffuse command, and the
diffPostProcess Tcl procedure after executing the diffuse command (see Ion
Implantation to Diffusion on page 340).
Figure 86 on page 589 shows the flowchart of the execution of a diffuse statement by
Sentaurus Process, including generic material growth. The sections regarding diffusion are
represented on a smaller scale and are shown in Figure 84 on page 572.
diffuse
growthPreProcess
Next
Next
Solve generic
growth equations
diffPreProcess
For each: solution and material
Next
For each: marked solution and material
Next
Solve initialization
equations
Next
For each: solution and material
Next
Solve diffusion
equations
diffPostProcess
Figure 86 Flowchart with calls to the callback procedures during execution of diffuse
command
The procedures specified by the keyword InitGrowth are used to clean up the equation
strings and terms. The keyword determines the callback procedure name to be called by
Sentaurus Process. For example, the first command below:
pdbSetString TEOS GX InitGrowth ResetEquations
defines the ResetEquations procedure as the callback procedure of the solution variable GX
in silicon. The callback procedure itself takes two arguments: a material name and a solution
name. In this example, Sentaurus Process will call the ResetEquations procedure with two
arguments. The first argument Mat will be TEOS and the second argument Sol will be GX. The
argument names Sol and Mat are arbitrary, and they can be any valid Tcl variable, but the first
argument is always the material name and the second argument is always the solution name.
The above procedure ResetEquations will print the message ‘This callback
procedure unsets GX equation in TEOS.’ and will remove the pdb equation for GX
in TEOS if it was defined. Note that neither the solution name GX nor the material name TEOS
is used in the ResetEquations callback procedure. Therefore, the callback procedure is a
generic procedure. The example can be extended with the following commands:
pdbSetString TEOS GX InitGrowth ResetEquations
pdbSetString Gas_TEOS GX InitGrowth ResetEquations
pdbSetString Silicon_TEOS GX InitGrowth ResetEquations
In this case, the same callback procedure, ResetEquations, is used for the solution variables
GX inside TEOS, and at the Gas_TEOS and Silicon_TEOS interfaces. Sentaurus Process will
print the following messages:
This callback procedure resets GX equation in TEOS.
This callback procedure resets GX equation in Gas_TEOS.
This callback procedure resets GX equation in Silicon_TEOS.
Since the interface equations can be written for the interface material itself or the neighboring
materials, all of them must be unset including the growth reaction equation. In this case, you
can write a special Tcl procedure for the interfaces as follows:
proc ResetInterfaceEquations {Mat Sol} {
set mater1 [FirstMat $Mat]
set mater2 [SecondMat $Mat]
The primary responsibility of the equation procedure is to construct the equation string for
material growth reaction. It uses the keyword EquationGrowthProc in the parameter
database. The keyword specifies the name of the callback procedure to be called by Sentaurus
Process.
has the effect that, according to the flowchart presented in Figure 86 on page 589, Sentaurus
Process calls the procedure SetEquations with the arguments TEOS and GX.
The SetEquations procedure is called every time the solutions are checked during the
reaction. The procedure above will print the message ‘This callback procedure sets
GX equation in TEOS.’ and will set the pdb equation for GX in TEOS. Note that neither the
solution name GX nor the material name TEOS is used in the SetEquations callback
procedure. Therefore, the callback procedure is a generic procedure. The equation setting is
similar to the one explained in Basics on page 564. The only difference is that instead of using
a solution name and a material name, only Tcl variables are used. Since the interface equations
settings are different, this example can be extended with the following commands:
pdbSetString Gas_TEOS GX EquationProc SetInterfaceEquations
pdbSetString Silicon_TEOS GX EquationProc SetInterfaceEquations
Here, the same callback procedure, SetInterfaceEquations, is used to set up the interface
equations on both the Gas_TEOS and Silicon_TEOS interfaces. The commands FirstMat
and SecondMat used in the procedure return the names of the neighboring materials (for
example, Gas and TEOS for Gas_TEOS). The command pdbIsAvailable returns true (1) if
the Cstar value is entered to the parameter database for the given solution name and material.
In this example, it will return true for the Gas_TEOS interface and false for the Silicon_TEOS
interface. Using this information and the ‘if-else’ statement, the equations can be set for the
Gas_TEOS and Silicon_TEOS interfaces. Now, the diffusivities, reaction rates, and
equilibrium values depend on the database entries.
The GrowthRateProc callback procedure can be used to set the GrowthReaction pdb
variable during epitaxial growth. The requirements are similar to EquationGrowthProc,
except that there can be a different GrowthRateProc for each epitaxial ambient. For example:
proc mygrproc { Mat Amb } {
pdbSetString $Mat $Amb GrowthReaction \
"([simDelayDouble Diffuse EpiThick]- \
[pdbDelayDouble $Mat $Amb NativeOffset])/ \
[simDelayDouble Diffuse AnnealStepTime]"
}
This example demonstrates a number of simulation status values that are available to the
GrowthRateProc implementer. The quantity simDelayDouble Diffuse EpiThick is
the value of the thick parameter set in the diffuse or temp_ramp commands. The quantity
pdbDelayDouble $Mat $Amb NativeOffset is set to the native layer thickness if a native
layer was deposited; otherwise, it is 0. Finally, simDelayDouble Diffuse
AnnealStepTime is the total time of the current temp_ramp segment or diffuse time.
If a new material is being deposited that is not a standard Sentaurus Process epi material, the
following parameters should be set:
pdbSetDouble <[Link]>_Gas <[Link]> [Link] 1.0
pdbSetDouble <[Link]>_Gas <[Link]> [Link] 1.0
where <[Link]> is the name of the new material being grown and <[Link]> is the
name of the ambient triggering the growth of <[Link]>.
The execution of every diffuse command starts with a call to the growthPreProcess Tcl
procedure. The growthPreProcess Tcl procedure is used to initialize various reaction-
related data fields or to preprocess the existing data fields.
This part corresponds to the parameter database (see Parameter Database on page 53). All
default Sentaurus Process model parameters are stored in the parameter database. The second
part is the definition of reaction variable names, material names, and callback procedure
names:
mater add name=TEOS
reaction name=TEOSreaction mat.l=Silicon mat.r=Gas [Link]=TEOS \
[Link]=oxide [Link]=GX ambient
pdbSetString TEOS GX InitGrowth ResetEquations
pdbSetString Gas_TEOS GX InitGrowth ResetInterfaceEquations
pdbSetString Silicon_TEOS GX InitGrowth ResetInterfaceEquations
pdbSetString Gas_TEOS GX EquationGrowthProc SetInterfaceEquations
pdbSetString Silicon_TEOS GX EquationGrowthProc SetInterfaceEquations
pdbSetString TEOS GX EquationGrowthProc SetEquations
The information for the default Sentaurus Process models is stored in the TclLib directory
(see Environment Variables on page 46) in the [Link] file, which is read by
Sentaurus Process as soon as the simulation starts. The file also contains information regarding
solver types, implant directories, and material names.
The third part is the definition of diffusion/reaction models. The models are stored in the
TclLib directory (see Environment Variables on page 46):
proc ResetEquations {Mat Sol} {
LogFile "This callback procedure resets $Sol equation in $Mat."
pdbUnSetString $Mat $Sol Equation
}
where:
■ <material> is any valid material name.
■ <solution> is any valid solution variable name.
■ <expression> is the new expression to be added to or subtracted from the solution
variable.
■ <side> is the side of the interface material where the new expression will be added or
subtracted.
where:
■ <material> is any valid material name.
■ <term> is an existing term name.
■ <expression> is the new expression to be added to or subtracted from the existing term.
References
[1] R. E. Bank et al., “Transient Simulation of Silicon Devices and Circuits,” IEEE
Transactions on Electron Devices, vol. ED-32, no. 10, pp. 1992–2007, 1985.
Overview
The Synopsys Consulting and Engineering group is working continually on improving the
simulation models and optimizing the model parameters for the latest technology. This effort
is based on long-standing experience of model calibration for customers and a comprehensive,
growing database of state-of-the-art secondary ion mass spectrometry (SIMS) profiles.
With Advanced Calibration in Sentaurus Process, you have a set of models and parameters that
have been calibrated to deep-submicron CMOS technology. With these parameters, you can
obtain accurate results for many processes in device fabrication such as ion implantation,
ultrashallow junction formation, surface dose loss, and channel and halo dopant diffusion.
The Advanced Calibration set of models and parameters is located in a single file. For the
current Sentaurus Process, it has the file name AdvCal_2013.[Link] and is located in the
directory $STROOT/tcad/$STRELEASE/lib/sprocess/TclLib/AdvCal.
Advanced Calibration also is available for Sentaurus Process Kinetic Monte Carlo (see
Advanced Calibration for Sentaurus Process KMC on page 553).
or:
AdvancedCalibration 2013.03
You have the option to use Advanced Calibration parameters and models from previous
releases, for example:
AdvancedCalibration 2012.06
For deep-submicron process simulation, Advanced Calibration is usually a good starting point.
You can further increase the accuracy of a certain technology by additional fine-tuning of a few
physical parameters. This should only be performed by experienced users with a good
understanding of the diffusion models and callback procedures of Sentaurus Process.
The best way to perform this is to put all additional calibration in a user calibration file, for
example, user_calibration.fps. This file includes all project-specific changes of
physical parameters or callback procedures with respect to Advanced Calibration.
In the process simulation file, at the beginning of the process simulation, insert the lines:
AdvancedCalibration 2013.03
source ./user_calibration.fps
Oxidation
Sentaurus Process can simulate the thermal oxidation of silicon. Due to the conversion ratio
from Si to SiO2 being greater than one, new ‘volume’ is generated, which, in turn, leads to the
motion of materials and mechanical stress in the structure. The oxidation process has three
steps:
■ Diffusion of oxidants (H2O, O2) from the gas–oxide interface through the existing oxide to
the silicon–oxide interface.
■ Reaction of the oxidant with silicon to form new oxide1.
■ Motion of materials due to the volume expansion, which is caused by the reaction between
silicon and oxide.
The oxidant diffusion equation is solved using the generic partial differential equation (PDE)
solver of Sentaurus Process. For the simulation of thermal oxidation, there are two
requirements:
■ The silicon or polysilicon region is in contact with gas or an oxide region, which, in turn,
is in contact with gas.
■ The diffuse command specifies a reactive atmosphere.
If silicon or polysilicon is in contact with gas at the beginning of a thermal oxidation, an initial
oxide layer is created automatically. The default thickness of this layer is 1.5 nm. The value of
the initial oxide thickness is specified in the parameter database by:
pdbSet Grid NativeLayerThickness 1.5e-7
which controls the native layer thickness for oxidation and silicidation. There are several ways
to specify a reactive atmosphere. Furthermore, temperature can vary during oxidation, and the
ambient can contain contributions from different oxidants. The following sections describe
how to handle these cases using Sentaurus Process.
It is important to note that oxidation occurs in conjunction with mechanics. The details of the
mechanical equations, boundary conditions, and material models are given in the next chapter.
Basic Oxidation
The diffuse command is used to specify two reactive ambients for oxidation, either H2O or
O2. The oxidation temperature and time must be given. For example, a command for a simple
oxidation using wet ambient temperature at 1000°C for 10 minutes is:
diffuse temperature=1000<C> time=10<min> H2O
A simple temperature ramp can be specified directly in the diffuse command by the keyword
ramprate. This keyword sets the change in the temperature over time:
diffuse temperature=1000<C> time=10<min> O2 ramprate=10<C/min>
This example describes a dry oxidation of 10 minutes, starting at 1000°C and ending at
1100°C .
Temperature Cycles
The second example given in Basic Oxidation also can be specified by using the temp_ramp
command, for example:
temp_ramp name=MyTempRamp temperature=1000 time=10 O2 ramprate=10<C/min>
diffuse temp_ramp=MyTempRamp
The first line creates a temperature ramp with given conditions, and the second line specifies a
diffusion referring to this temperature ramp.
To describe more complex temperature cycles within one diffuse command, multiple
instances of the temp_ramp command can be used. A temperature ramp can consist of several
segments and, for each segment, one temp_ramp command is required. In addition, segments
can be grouped by using the same name for each segment. For example, a ramp-up, plateau,
and ramp-down can be specified as:
temp_ramp name=MyCycle temperature=1000<C> time=5<min> H2O ramprate=20<C/min>
temp_ramp name=MyCycle temperature=1100<C> time=10<min> O2
temp_ramp name=MyCycle temperature=1100<C> time=10<min> ramprate=-10<C/min>
diffuse temp_ramp=MyCycle
If you want to set the minimum and maximum reaction/oxidation time steps in minutes
globally, for all diffusion commands, the following commands can be used:
pdbSet Diffuse MinGrowthStep <n>
pdbSet Diffuse MaxGrowthStep <n>
O2 react Oxidation
N2 inert None
The react and inert ambients can be specified in any combination using the gas_flow
command. The inert ambients are inert in the sense that they do not switch on material
reactions. However, inert ambients can be used in gas flows to change the partial pressure of
react ambients through gas reactions or just taking part of the total pressure as is the case with
N2, for example. As the name implies, react ambients cause material reactions to occur, such
as oxidation. The epi-type ambients trigger epitaxial growth and should not be used with any
other ambient.
To specify an ambient is present and to set the partial pressure to 1.0 * total pressure, use the
shorthand parameter name <ambient name> in the diffuse or gas_flow command. The
parameter pressure sets the total pressure and also is available on the diffuse or gas_flow
command line. The default for total pressure is 1 atm. Only one ambient should be specified
using the shorthand parameter <ambient name>. For epitaxy, specify the appropriate ambient
by name.
The gas_flow command is used to specify a mixed gas flow by specifying directly either the
partial pressures of the gas components or the flow <volume/time>. When a gas_flow is
specified, it can be referred to from the temp_ramp and diffuse commands.
The gases present during diffusion can either be specified as partial pressures or using gas
flows. When using flow specifications, the partial pressure is computed from gas reactions, the
presence of inert gases, and the total pressure. Alternatively, the partial pressure can be
specified directly. The partial pressure can be set with either the p<ambient name>
parameters or the [Link] parameter of the gas_flow command:
gas_flow name=MyGasFlow pH2O=0.5 pO2=0.5
or:
gas_flow name=MyGasFlow [Link] = {H2O=0.5 O2=0.5}
Instead of specifying partial pressures directly, the gas components can be given in terms of
flows using flow<ambient name> or the flows parameter, for example:
gas_flow name=MyGasFlow flowH2O=0.5 flowO2=0.5 flowH2=0.2 flowN2=1.0
or:
gas_flow name=MyGasFlow flows = {H2O=0.5 O2=0.5 H2=0.2 N2=1.0}
If flows are specified, Sentaurus Process calculates the partial pressures of the components
assuming a complete reaction of the gases. Because the only effect of inert ambients in
Sentaurus Process is to change the partial pressure of reacting ambients, inert ambients should
only be set using flows in the gas_flow command.
or:
diffuse temperature=1000<C> time=10<min> gas_flow=MyGasFlow
Given a flow of O2 in addition to a flow of H2 or HCl for example, a chemical reaction between
the components is taken into account: O2 is reduced and H2O increases. A complete
stoichiometric reaction is assumed. The final flows1 after the reaction are computed in the
AmbientReactions procedure as shown in Eq. 818.
else:
flowO2 final = 0
In the case where not all of the H2 is consumed by the reaction, a warning is displayed. If a
contribution of HCl is given, the equations read as follows.
else:
flowO2 final = 0
1. The index init refers to the initial flows specified by users in the gas_flow command, and final describes the
flow after the chemical reaction.
The final flows are used internally to compute the partial pressure of each component. Partial
pressures are the relevant quantity for the subsequent simulation. These are computed as:
flow Comp
p Comp = pressure ⋅ --------------------------------------------
final
- (822)
flow Comp
final
Comp
where Comp holds for a certain component of the gas mixture and pressure is the total
pressure.
The oxidant species H2O, O2, and N2O are defined in the [Link] file (see Default
Simulator Settings: [Link] File on page 51) using the reaction command (see
reaction on page 1038):
reaction name=dryoxSi mat.l=Silicon mat.r=Gas [Link]=oxide \
[Link]=O2 [Link]=O2
reaction name=wetoxSi mat.l=Silicon mat.r=Gas [Link]=oxide \
[Link]=H2O [Link]=H2O
reaction name=n2ooxSi mat.l=Silicon mat.r=Gas [Link]=oxide
[Link]=N2O [Link]=N2O
For mixed oxidant flows, for each species, one diffusion–reaction system is solved. For each
3
oxidant, one dataset is allocated: H2O or O2 or N2O [ 1/cm ].
Growth reaction fluxes at the reacting interfaces are defined using the Alagator scripting
language (see Alagator for Generic Growth on page 584). These fluxes are divided internally
by the particle density of oxide in order to obtain the growth velocities. Manipulation of these
fluxes is essential for the implementation of empirical growth models, such as the Massoud
model, which is not yet covered by a diffusion equation.
In the case of a mixed gas flow, the contributions of both fluxes are summed. At the reaction
front, the following reactions are assumed:
Si + O 2 → SiO 2
(823)
Si + 2H 2 O → SiO 2 + 2H 2
The conversion from Si to SiO2 leads to a volume increase of 125%, which leads to motion and
mechanical stresses in the compound.
The oxidant diffusion described by Fick’s law leads to the diffusion equation:
∂c
+ ∇j = 0, where j = – D ∇c (824)
∂t
where D is the diffusivity of the oxidant and j is the particle flux. The flux of oxidants in the
normal direction to the surface, going from the gas region to the oxide, is given by:
j = h ⋅ ( c* – c ) (825)
where h is the mass transfer coefficient and c * is the solid solubility of the oxidant. If h is
sufficiently large, the concentration of oxidant at the gas–oxide interface is approximately
equal to the solid solubility.
The coefficient h is defined in the parameter database as MassTransfer and can be set using
the commands:
pdbSet Gas_Oxide O2 MassTransfer <n>
pdbSet Gas_Oxide H2O MassTransfer <n>
pdbSet Gas_Oxide N2O MassTransfer <n>
The flux caused by the chemical reaction at the oxidation front is described by:
j = β kcsi (827)
The stoichiometry coefficient β is 1 for O2 and 2 for H2O, k is the chemical reaction rate, and
c si is the particle density at the oxide–silicon interface. The reaction rate and diffusivity are
computed from the linear and parabolic rate constants used in the Deal–Grove model.
Assuming the stationary state in Eq. 824, the growth rate in the 1D case can be described by
the Deal–Grove model:
dx ox B
----------- = --------------------- (828)
dt 2x ox + A
where x ox describes the thickness of the 1D oxide layer. This equation can be solved
analytically. The parabolic rate constant is given by B and the linear rate constant is given by
B/A. A deeper analysis reveals relations between the parabolic rate and diffusivity, and the
linear rate and reaction rate. Assuming h » k :
βBc ox
D = ---------------
2c *
(829)
c ox B
k ≈ ------- ---
c * A
where C ox is the equivalent oxygen concentration in oxide, for example, it is equal to the
concentration of H2O and one half (1/2) the concentration of O2. Both the parabolic rate and
linear rate are functions of pressure and temperature. For the temperature dependency, two
Arrhenius functions, for a low-temperature and high-temperature regime, are available:
The parameters B0.h, BW.h, B0.l, BW.l, [Link], and [Link] can be found in the
parameter database in Oxide H2O | O2 | N2O.
with the corresponding set of parameters, BA0.h, BAW.h, BA0.l, BAW.l, [Link], and
[Link]. These can be found in the parameter database:
Oxide_Silicon H2O | O2 |N2O 100 | 110 | 100
Oxide_PolySilicon H2O | O2 |N2O 100 | 110 | 100
and can be set using the pdbSet command (for example, pdbSet O2 110 BA0.h <n> or
pdbSet H2O 100 [Link] <n>).
Parameters defining the diffusivity and parabolic rate constant are bulk properties and,
therefore, are defined in oxide. Parameters defining the reaction rate and linear rate constants
are interface properties and, therefore, are defined on interfaces. This data can also depend on
the crystal orientation when crystalline materials are involved.
Massoud Model
The Massoud model is an empirical model that describes an enhanced growth rate in the initial
regime of the oxidation. The model can be seen as an extension of the Deal–Grove model and
is in good agreement with measurement. Sentaurus Process uses a slightly different form of the
originally suggested model:
dxox x ox
----------- = --------------------- + C exp – -------
B
(833)
dt 2x ox + A L
x ox is the one-dimensional unmasked oxide thickness. To account for the enhanced growth in
the initial regime, the second term of Eq. 833 contributes to the flux (compare with Eq. 828).
Both the parameters L and C depend on the crystal orientation and temperature:
The parameters L0.h, LW.h, L0.l, LW.l, C0.h, CW.h, C0.l, CW.1, and [Link] can be
found in the parameter database:
Oxide_Silicon O2 | H2O | N2O 100 | 110 | 111
Oxide_PolySilicon O2 | H2O | N2O 100 | 110 | 111
Orientation-dependent Oxidation
For different crystal orientations, different reaction rates can be applied. Internally, Sentaurus
Process computes the data fields Ori100, Ori110, and Ori111. If the normal vector on an
interface coincides with a certain crystal orientation, the value for this orientation is one; if it
is orthogonal, the value equals zero. Interpolation is used to compute the rates on orientations
not coinciding with the crystallographic directions.
When saving results in TDR format, these data fields are not stored; however, they can be
accessed by using the Alagator scripting language. The Tcl procedure proc
OxidantReaction creates the terms ReactionRateO2 and ReactionRateH2O:
The reaction rates k <100> , k <110> , and k <111> are computed from the linear rates B/A given for
different orientations. The parameters L0 and C used in the Massoud model depend on the
crystal orientation as well.
For information about the TDR format, refer to the Sentaurus Data Explorer User Guide.
Stress-dependent Oxidation
Stress-dependent oxidation (SDO) usually refers to the coupling of the oxidant diffusivity and
reaction rate to the local stress field. To handle the stress-dependent oxidant diffusion and
stress-dependent reaction rate, two data fields are created internally. The data field Pressure
is stored by default, while NStress is not; however, both can be accessed by using the
Alagator scripting language.
and:
NStress = – σ jk n j n k (838)
j k
The components of the stress tensor are given by σ jk and the normal vector at the reaction front
is given by n j . The definition of NStress is only meaningful at an interface. If:
pdbSetBoolean Oxide Oxidant SDO 1
or:
pdbSet Oxide_PolySilicon H2O | O2 | N2O SDO 1
pdbSet Oxide_Silicon H2O | O2 | N2O SDO 1
is selected, the reaction rate and diffusivity are modified in the following way:
– NStress ⋅ Vk
----------------------------------------
-
kB T
k ( NStress, T ) = k ( T ) ⋅ min S max , e (839)
and:
---------------------------------------------
– Pressure ⋅ VD
kB T
D ( Pressure, T ) = D ( T ) ⋅ min S max , e (840)
The activation volume VD, being a bulk property, is defined in Oxide O2 | H2O | N2O. The
activation volume Vk controls the impact of the normal stress at the reaction front and,
therefore, is defined on interfaces:
Oxide_Silicon | Oxide_PolySilicon O2 | H2O | N2O
For example:
pdbSet Oxide_Silicon O2 Vk <n>
S max is the maximum stress factor and is used to cap the exponential parts. S max is defined in
Oxide O2 | H2O | N2O as MaxStressFactor.
For example:
pdbSet Oxide O2 MaxStressFactor <n>
For improved numerical stability, the exponential part can be approximated by a reciprocal
function for a small exponent and a linear function for a large exponent. This option is switched
off by default and can be switched on with the following command:
pdbSet Mechanics TS4CappedExp 1
and replaces the maximum stress factor used to cap the exponential part.
Trap-dependent Oxidation
Impurities such as nitrogen and fluorine can be trapped at Oxide_Silicon interfaces during
oxidation. This will reduce the number of oxidizing sites; therefore, the oxidation rate is
reduced. To switch on the model, use the command:
pdbSet <interface material> O2 | H2O | N2O TrapDependent 1 | 0
For example, the following command switches on the trapping flux for nitrogen and fluorine:
pdbSet Oxide_Silicon O2 TrapList {Nitrogen Fluorine}
Two models are available for the trapping flux of impurities: Trap and TrapGen.
Trap Model
The trapping flux of impurities is described with the interface Trap model by ignoring the
detrapping flux. The total impurity flux at interfaces is the sum of the trapping flux into
interfaces and the two-phase segregation. This can be achieved by setting the boundary
condition to Trap (see Boundary Conditions on page 344). For example:
pdbSet Oxide_Silicon Nitrogen BoundaryCondition Trap
Since the surface reaction rate is proportional to the number of available oxidizing sites, the
rate of oxidant consumption at the oxidizing interface is given by:
σC
F = k s C oi 1 – ------------------- n i (841)
σ TCMax
where:
■ k s is the surface recombination rate.
■ C oi is the oxidant concentration at the interface.
■ σ C and σ TCMax are the impurity trapped density and the maximum trap density,
respectively.
The maximum trap density is orientation dependent and can be specified using the following
commands:
pdbSet <interface material> <trapped impurity> 100 CMax {<n>}
pdbSet <interface material> <trapped impurity> 110 CMax {<n>}
pdbSet <interface material> <trapped impurity> 111 CMax {<n>}
TrapGen Model
The interface TrapGen model calculates not only the trapping flux, but also the generation flux
of impurities. The generation flux by reaction due to the [Link] gas is added to the
[Link] side. For example:
pdbSet Oxide_Silicon Nitrogen BoundaryCondition TrapGen
pdbSet Oxide_Silicon Nitrogen [Link] N2O
pdbSet Oxide_Silicon Nitrogen [Link] Oxide
where:
■ ρ is the generation density.
■ v is the reaction velocity.
■ v norm is the normalization velocity.
■ α is the power of normalized velocity.
ρ , v norm , and α are specified with the parameters [Link], [Link], and
[Link], respectively.
Dopant-dependent Oxidation
k T, ----- = k ( T ) ⋅ lc
n
n i
(843)
where:
lc = 1 + γ ( C – 1 ) (844)
V V
– GAMMAW
γ = GAMMA0 × exp ------------------------------- (845)
V kT
and:
= n 2
1 + C -----i + C ----- + C -----
+ n _ n
n n i n
i -
C = ----------------------------------------------------------------------------- (846)
V + _ =
1+C +C +C
_
_ Ei – E
C = exp ----------------- (848)
kT
_ =
= 2E i – E – E
C = exp --------------------------------- (849)
kT
+
E = 0.35eV (850)
_
E = E g – 0.57eV (851)
=
E = E g – 0.12eV (852)
Eg
E i = ------ + 0.75 ln ( 0.719 )kT (853)
2
–4 2
( 4.73 ×10 )T
E g = 1.17 – ------------------------------------ eV (854)
T + 636
The dependence on carrier concentration is a function of the location along the oxidizing
interface.
Dopant-dependent oxidation is off by default and can be switched on with the flag:
pdbSetBoolean Oxide_Silicon <O2|H2O> DopantDependentReaction 1
In Eq. 845, the quantities GAMMA0 and GAMMAW are set as follows:
pdbSetDouble Oxide_Silicon <O2|H2O> Gamma0 2360
pdbSetDouble Oxide_Silicon <O2|H2O> GammaW 1.1
The quantities E g and E i are defined as procedures called DFactorEg and DFactorEi, each
taking a single argument, which is temperature. If you want to overwrite them, use:
proc DFactorEg { temp } {
# enter the function here
}
+ 0 – = 0
Finally, Eq. 846 is implemented using the expressions for C , C , C , and C , where C is
identically equal to 1. To overwrite them, use:
pdbSetDoubleArray Oxide_Silicon <O2|H2O> \
DopantReactFactor {1 <expr 1> 0 <expr 2> -1 <expr 3> -2 <expr4>}
Diffusion Prefactors
The reactant diffusivities can be enhanced or retarded due to various new process conditions.
If a new model does not exist to simulate the observed behavior, you may want to multiply the
existing diffusivity with a prefactor. Sentaurus Process allows diffusivities to be multiplied by
user-defined factors. For example, in the case of specified O2 and H2O, these are given by:
term name=O2DiffFactor add Oxide eqn=1.0e18/(1.0*N2ox+1.0e18)
term name=H2ODiffFactor add Oxide eqn=1.0e18/(1.0*N2ox+1.0e18)
The first step involves the dissolution of the oxidant species at the gas–dielectric interface and
the oxidant transport in the bulk dielectric. The second step is modeled by the boundary
condition between the dielectric and oxide.
N2O Oxidation
In N2O oxidation or oxynitridation, nitrogen is trapped at Si–SiO2 interfaces so that the number
of oxidizing sites and, in turn, the oxidation rate are reduced. N2O oxidation is performed by
specifying the N2O parameter in the diffuse statement. For the thick oxidation regime (in
other words, the Deal–Grove model), the parameters for N2O oxidation are specified similar to
O2 or H2O. However, for thin oxidation, the Massoud model is modified by multiplying the
nitrogen effect as follows:
x ox σN
r thin = C exp – ------- 1 – ------------ (855)
L σ max
σ max can be defined for each of the three available silicon orientations and for polysilicon by
specifying the [Link] values for the N2O ambient. For example:
pdbSet Oxide_Silicon N2O 100 [Link] {Double {[Arrhenius 1.55e14 0.0]}}
pdbSet Oxide_PolySilicon N2O 100 [Link] {Double {[Arrhenius 1.55e14 0.0]}}
C max (p H2,flow) calculates the maximum oxygen-atom concentration depending on the partial
pressure of hydrogen and the total flow of the hydrogen–oxygen mixtures:
flow = flowH 2 + flowO 2 (857)
[Link].W
C max (p H2,flow) = C max ( p H2 ) ⋅ ( flow ⁄ 1slm ) (859)
C.H2.L.W
C max ( p H2 ) = C.H2.L.0 ⋅ min ( [Link], p H2 ) + C.H2.H.S ⋅ max ( p H2 – [Link], 0 )
(860)
BPD ( α, β, P max ;P ) determines the profile of the oxygen-atom concentration with a given
pressure. The dependence on the pressure is modeled by the beta prime distribution (BPD) as
follows:
α–1 –α–β
Pn ( 1 + Pn )
BPD ( α, β, P max ;P ) = -------------------------------------------------------------
- (861)
α – 1 α – 1 α + β – α – β
------------ -------------
β + 1 β + 1
α–1 P
P n = ------------ ⋅ ------------ (862)
β + 1 P max
where α and β are specified by the parameters Alpha and Beta, respectively. The pressure
at the peak oxygen-atom concentration, P max , is modeled as follows:
[Link].H2.W [Link].W
P max = [Link].H2.0 ⋅ p H2 + [Link].0 ⋅ ( flow ⁄ 1slm ) (863)
RRZ ( P lim ;P ) defines the rapid reaction zone where the oxygen atoms do not reach the silicon
surface:
1
RRZ ( Plim ;P ) = --- erfc ( [Link] ⋅ ( P – Plim ) ⁄ 1torr ) (864)
2
– [Link].W ⋅ p H2
P lim = [Link].0 + [Link].A + [Link].B ⋅ e ⋅ flow
(865)
The values of the parameters from Eq. 859 through Eq. 865 can be modified by:
pdbSet Oxide ISSG <parameter> <value>
The diffusivity and reaction rates of the oxygen atoms can be modified respectively by:
pdbSet Oxide ISSG D <value>
pdbSet Oxide_Silicon ISSG Ks <value>
The process conditions to invoke the ISSG oxidation are defined in the diffuse or gas_flow
commands, for example:
diffuse temp=1000 time=1 pressure=12<torr> flowH2=6 flowO2=12 ISSG
Silicide Models
Sentaurus Process allows you to define models for new materials and reactions. This ability has
been used to define models for the growth of titanium, tungsten, cobalt, and nickel silicides.
The following sections describe the kinetics of TiSi2 growth, the specification of the model and
parameters, and suggestions for modeling other silicides.
υTiSi2 υSi
dissolve
Titanium silicide is assumed to form when silicon atoms react in the silicide with titanium at
the titanium silicide–titanium (TiSi2–Ti) interface. The dissolution of silicon and the
consumption of titanium lead to the deformation of the material layers in the structure.
NOTE While the discussion that follows describes the growth of TiSi2 on
silicon, it also applies to growth of TiSi2 on polycrystalline silicon.
NOTE The name of the silicide reactant field (which represents the
concentration of silicon atoms in the silicide) is iSilicon to
distinguish it from the dopant field Silicon in III–V materials.
The value of the initial TiSi2 thickness is specified in the parameter database by:
pdbSet Grid NativeLayerThickness 1.5e-7
Sentaurus Process automatically recognizes the silicidizing interfaces and switches on the
reaction equations.
where Si Si is the silicon as a diffusing species on the silicon material side and SiTiSi2 is the
silicon as a diffusing species on the TiSi2 material side. Therefore, silicon (on the Si side of the
interface) reacts to form silicon atoms (on the TiSi2 side of the interface). The reaction is
reversible, allowing for the reformation of silicon (if silicon is released by nitridation of TiSi2,
for example):
R f ≡ K f ( C Si – C star )
(867)
R g ≡ Beta R f
R f and R g are the diffusion flux and growth reaction flux, respectively, at the TiSi2–silicon
interface. The forward rate of this reaction depends only on temperature, while the reverse rate
is also proportional to the concentration of diffusing silicon atoms in TiSi2. C Si is the
concentration of silicon in TiSi2 and C Star is the equilibrium concentration of silicon at the
TiSi2–silicon interface. Beta is the stoichiometry of the growing material whose default is 1.0.
K f is the mass transfer coefficient.
For each silicon atom removed from the silicon side of the interface, the volume of silicon is
reduced by:
Beta
ΔV = ----------------------------------- (868)
[Link]
22
where [Link] is the density of the growing material whose default value is 5 ×10 .
There is no new material formation at the TiSi2–silicon interface. Silicon dissolves at this
interface and is transported across the TiSi2 layer by simple diffusion:
∂C Si
= ∇•( D star ∇C Si ) (869)
∂t
where C Si is the concentration of silicon in TiSi2 and D star is the diffusivity of silicon in TiSi2.
The following command changes the diffusivity:
pdbSet TiSilicide iSilicon Dstar {<n>}
R f and R g are the diffusion flux and growth reaction flux, respectively, at the TiSi2–titanium
interface. The reaction rate is proportional to the concentration of diffusing silicon at the TiSi2
side of the interface. C Si is the concentration of silicon in TiSi2 and C star is the equilibrium
concentration of silicon at the titanium–TiSi2 interface. Beta is the stoichiometry of the
growing material whose default is 0.5. K f is the mass transfer coefficient.
where [Link] is the conversion ratio from consumed material to the growing
material, and [Link] is the density of the growing material. The default values for
22
[Link] and [Link] are 2.42 and 2.34 ×10 , respectively. They can be
changed by using the commands:
pdbSet TiSilicide_Titanium iSilicon [Link] <n>
pdbSet TiSilicide_Titanium iSilicon [Link] <n>
Stress-dependent Silicidation
The stress-dependent silicidation model is experimental, and can become unstable and produce
irregular shapes. Fundamental changes to the model are possible in future releases.
Similar to oxidation, the silicide reaction rate and the reactant diffusivity can be affected by
local stress. For the silicide reaction, the speed of the reaction is assumed to be affected by the
total stress energy, so that the stress effect is incorporated symmetrically with respect to tension
versus compression.
When the stress-dependent silicidation model is switched on, the reaction rate given in Eq. 867
and Eq. 871 (that is, at both metal–silicide and silicon–silicide interfaces) is suppressed by the
normal stress:
abs ( NStress ) ⋅ Vk
– --------------------------------------------------------
kB T
K f ( NStress, T ) = K f ( T ) e (873)
The activation volume VD is a bulk property and is defined in the silicide. The activation volume
Vk controls the impact of the normal stress at the reaction front and is defined on interfaces:
Nickel_NickelSilicide | NickelSilicide_Silicon
For example:
pdbSet Nickel_NickelSilicide iSilicon Vk <n>
pdbSet NickelSilicide iSilicon VD <n>
Oxygen-retarded Silicidation
The silicidation process may be influenced by the presence of oxygen in the silicide. This
oxygen is assumed to enter the silicide at interfaces with silicon dioxide and to diffuse in the
silicide according to Fick’s law. The oxygen retards the reaction of silicon atoms at the silicide–
silicon and silicide–metal interfaces and the diffusion of silicon in the silicide; this is called
oxygen-retarded silicidation (ORS). The retardation factor is assumed to be in the form of:
ORSOxygen
R factor ≡ 1 – -------------------------------
22
- (875)
1 ×10
where ORSOxygen is the retardant solution name. The model can be switched on and off by
using the command:
pdbSet TiSi2 Silicon ORS {0 | 1}
If the model is on, R factor is multiplied by R f of Eq. 867, p. 621, D Star of Eq. 869, p. 622, and
R f of Eq. 871. You can define the retardation factors using the term command, for example:
term name=SiliconReactFactor add TiSilicide /Titanium \
eqn = "((1-ORSoxygen_TiSilicide/1e22)>0)?(1-ORSoxygen_TiSilicide/1e22):(0.0)"
Triple-Point Control
During silicidation, triple points where more than two materials come together (such as oxide,
silicon, silicide node) may move inadvertently due to material consumption around the node.
To control the movement, a retardation factor around the triple point is applied to the velocities.
The retardation factor is assumed to be:
2 ( 1 – 2Factor )
R = Factor + ----------------------------------- atan ------------------------
SDistance
Distance
(876)
π
Factor is the suppression value at the triple point, and Distance is the rolloff length for
silicidation triple-point suppression. The distance determines how far the suppression factor
will be effective from the triple point. SDistance is the distance to the nearest node from the
triple point and is calculated internally. The other parameters can be changed using the
following commands:
pdbSet <mater> SilicidationTripleDistance {<n>}
pdbSet <mater> SilicidationTripleFactor {<n>}
where <mater> is the interface material (for example, Silicon_TiSilicide). If you want
to switch the triple-point control on or off, use the command:
pdbSet Mechanics SilicidationCorrection {1 | 0}
While the current oxidation model specifies the generation of interstitials by the consumption
of silicon, the current titanium silicide model specifies the generation of vacancies by the same
mechanism.
Numerics
During oxidation or silicidation, one material grows at the expense of another material. To
handle the growth of materials, Sentaurus Process uses two different time loops – inner and
outer – as shown in Figure 88 for the case of oxidation.
After removing small elements, the next grid time step is computed. The smaller of the two
time steps (grid time step and diffusion time step) is applied in the next time cycle. The inner
time loop runs as long as the time step of the outer loop (oxidation time step) is fulfilled. Then,
the code goes into its second time step of the outer loop. An example of typical output during
oxidation is:
...
Reaction Solve from 14.86min to 15.11min. Time step: 15.32s.
Mechanics Solve from 14.86min to 15.11min. Time step: 15.32s.
Diffusion Solve from 14.86min to 14.99min. Time step: 8.144s.
Diffusion Solve from 14.99min to 15.11min. Time step: 7.176s.
Reaction Solve from 15.11min to 15.37min. Time step: 15.4s.
Mechanics Solve from 15.11min to 15.37min. Time step: 15.4s.
Diffusion Solve from 15.11min to 15.25min. Time step: 8.361s.
Diffusion Solve from 15.25min to 15.29min. Time step: 2.077s.
Diffusion Solve from 15.29min to 15.37min. Time step: 4.967s.
...
This output reproduces the time-stepping scheme: Reaction Solve and Mechanics Solve
occur in the outer time loop; whereas, Diffusion Solve occurs in the inner time loop.
As previously mentioned, after solving the mechanics problem, velocities are given on all mesh
points. Mesh points are moved according to these velocities. This leads to a change in the
geometry and, in some cases, also to a change in the topology of the structure at each time step.
At a reactive interface, for example at the oxidation front, two velocities apply: one describes
the growth of a material and one describes the consumption of another material.
The velocity describing the growth of the material is used to solve the mechanics problem, and
the velocities describing the consumption of a material are used to update the structure or mesh.
Therefore, mesh elements on the growing side of the oxidation front are stretched, and
elements on the shrinking side are compressed. Edges on the growing side, which become too
long with time, are split. Edges and elements on the shrinking side of the interface which
become too small are removed. This is demonstrated in Figure 89.
Silicon Oxide
References
[1] N. Sullivan et al., “Exploring ISSG Process Space,” in 9th International Conference on
Advanced Thermal Processing of Semiconductors (RTP), Anchorage, AK, USA, pp. 95–
110, September 2001.
[2] S-L. Zhang, R. Buchta, and M. Östling, “A study of silicide formation from LPCVD-
tungsten films: Film texture and growth kinetics,” Journal of Materials Research, vol. 6,
no. 9, pp. 1886–1891, 1991.
[3] G. Giroult, A. Nouailhat, and M. Gauneau, “Study of a WSi2/polycrystalline silicon/
monocrystalline silicon structure for a complementary metal-oxide-semiconductor for a
compatible self-aligned bipolar transistor emitter,” Journal of Applied Physics, vol. 67,
no. 1, pp. 515–523, 1990.
[4] C. M. Comrie and R. T. Newman, “Dominant diffusing species during cobalt silicide
formation,” Journal of Applied Physics, vol. 79, no. 1, pp. 153–156, 1996.
[5] R. Stadler et al., “Ab initio calculations of the cohesive, elastic, and dynamical properties
of CoSi2 by pseudopotential and all-electron techniques,” Physical Review B, vol. 54,
no. 3, pp. 1729–1734, 1996.
[6] S.-L. Zhang and F. M. d’Heurle, “Stresses from solid state reactions: a simple model,
silicides,” Thin Solid Films, vol. 213, no. 1, pp. 34–39, 1992.
[7] F. Cacho et al., “Numerical modeling of stress build up during nickel silicidation under
anisothermal annealing,” Materials Science and Engineering B, vol. 135, no. 2, pp. 95–
102, 2006.
Overview
Mechanical stress plays an important role in process modeling. It controls the structural
integrity of the device, the yield from the process depends on stresses, the mobility of charged
carriers is changed by stresses, and leakage currents also are a function of the stress in the
system.
On a finer scale, stresses can affect dopant diffusion rates by modifying the band gap. They can
affect oxidation rates and, therefore, can alter the shapes of thermally grown oxide layers.
damage. Sentaurus Process provides a nonlinear material model with a von Mises yield
criterion and a bilinear isotropic hardening law.
■ Fourth, the mechanisms that drive the stresses are defined. In Sentaurus Process, this is
performed through intrinsic stresses, thermal mismatch, material growth, lattice mismatch
(silicon germanium), and densification. All these processes are additive in the linear elastic
regime. In the nonlinear regime, they must be updated from the available stress history.
Stress is solved in all materials. However, during an inert diffusion, the stress computation can
be switched off. Parameters describing material behavior, which will be introduced in this
chapter, can be found in the parameter database:
<material> Mechanics
In the following sections, the constitutive equations are discussed in detail. These tensor
equations can be split into two parts:
■ The dilatational part, which corresponds to the trace of the tensor, describes the material
behavior in the case of a pure volume change.
■ The deviatoric part describes an arbitrary deformation but without changing the volume.
For example, the strain tensor can be decomposed as follows:
+ 1--- ε ll δ jk
3
ε jk = ε'jk (877)
l
deviatoric
dilatational
This decomposition will be used in subsequent equations to discuss the constitutive equation
for the dilatational and deviatoric parts independently.
Material Models
Sentaurus Process implements the viscous, viscoelastic, and elastic models in a general
manner, where the viscous model and elastic model can be derived from the viscoelastic model.
The viscous and viscoelastic models use shear stress–dependent viscosity. The elastic model
also has the anisotropic elasticity where the elastic coefficients are dependent on the crystal
orientation. The plasticity model describes the material behavior beyond yield, in other words,
the transition from elastic behavior to plastic behavior.
Viscoelastic Materials
The viscoelastic model for a Maxwell body is used to describe the stress–strain relationship.
The equations are written in terms of dilatational and shear components. The equations for the
volumetric part of the stress tensor1 take the form:
· σv
σv ·
----- + ----------------------- = 3ε v (878)
K η v ( T, σ s )
and:
σkk = – 3p = 3σ v (879)
k
where η v is the bulk viscosity. In addition, the relation of the stress and strain tensor to the
hydrostatic pressure p is shown. The bulk modulus K can be computed from the Poisson ratio
PoissRatio and Young’s modulus YoungsMod as:
YoungsMod
K = -------------------------------------------------------- (880)
3 ( 1 – 2 ⋅ PoissRatio )
where η' is the shear viscosity. The shear modulus G can be computed from the Poisson ratio
and Young’s modulus as:
YoungsMod
G = ------------------------------------------------- (882)
2 ( 1 + PoissRatio )
By default, the viscoelastic response is applied to the deviatoric parts. The linear elastic model
is used for the pressure-volume response, that is:
σ v = K ε kk (883)
k
To apply the viscoelastic response to both the deviatoric parts and the volumetric part, use:
pdbSet Mechanics NoBulkRelax 0
1. The subscripts of vectors and tensors hold for the Cartesian coordinates x, y, and z.
The shear viscosity η' is a function of the shear stress and the temperature T , where:
Usually, the value of ViscosityW is negative and, therefore, the shear viscosity η' decreases
with increasing temperature. The bulk viscosity has a similar Arrhenius expression defined by
the parameters Viscosity0.K and ViscosityW.K. The dependency on the shear stress σ s
is discussed in Shear Stress–dependent Viscosity on page 632.
Eq. 885 describes the deviatoric part of a purely viscous material. The relaxation time
τ = η' ⁄ G typically gives a good estimate of the behavior of a viscoelastic material. If τ is
much greater than the process time, the material is in the elastic regime. The material behaves
viscoelastically if τ is in the range of the process time. If τ is very small, the material is in the
viscous regime.
For viscous and viscoelastic materials, the viscosity may depend on the temperature and the
shear stress σ s . The temperature dependency is described by Eq. 884. The dependency on the
shear stress is given by:
σ s ⁄ σ crit
η ( σ s, T ) = η ( T ) ⋅ ----------------------------------- (886)
sinh ( σ s ⁄ σ crit )
The shear stress σ s is computed from the local stress distribution based on the second invariant
of the deviatoric part of the stress tensor:
3
σs = --- σ' σ' (887)
2 jk kj
j k
where:
By default, oxide and nitride are treated as viscoelastic materials with shear stress–dependent
viscosity. The values for Vcrit0 and VcritW also are set in the PDB:
<material> Mechanics
This equation describes the deviatoric part of a purely elastic material. By default, silicon and
polycrystalline silicon are treated as purely elastic materials. To achieve this, the viscosity of
40
these materials is set to 1 ×10 poise .
NOTE K and G are the primary parameters describing elastic materials, and
not Young’s modulus and the Poisson ratio. When changing material
properties with the pdb command, only a change of the primary
parameters has an effect on the simulation. To obtain Young’s modulus
and the Poisson ratio, use the following commands, respectively (see
KG2E on page 952 and KG2nu on page 953):
KG2E <BulkModulus> <ShearModulus>
KG2nu <BulkModulus> <ShearModulus>
NOTE When material data is given in terms of Young’s modulus and the
Poisson ratio, use the following commands to convert them to the shear
modulus and the bulk modulus, respectively (see Enu2G on page 886
and Enu2K on page 887):
Enu2G <YoungsModulus> <PoissonRatio>
Enu2K <YoungsModulus> <PoissonRatio>
where σ i and ε j are the components of the engineering stress and strain, respectively, and C ij
is the component of the stiffness matrix. The engineering stress σ i (i=1, …, 6) corresponds to
the stress-tensor components σxx, σyy, σzz, σxy, σyz, σxz, and the engineering strain ε j
(j=1, …, 6) corresponds to the strain-tensor components εxx, εyy, εzz, 2εxy, 2εyz, 2εxz.
The mechanical responses of a crystalline solid vary along various crystal orientations. For a
cubic crystal, the axes of reference are chosen to be parallel to the crystal axes. In a coordinate
system with axes aligned along the crystal axes, the symmetric stiffness matrix C has the
following nonzero components:
C11 = C22 = C33, C12 = C23 = C13
C44 = C55 = C66
All other components are zeros. The anisotropic stress and strain relation is completely defined
when three independent modulus parameters C11, C12, and C44 are specified.
The degree of anisotropy for a given material can be measured by the departure from unity of
the ratio A = 2 C44/(C11 – C12). The anisotropic model reduces to the isotropic model if
the ratio A is equal to 1. When the simulation coordinate axes do not coincide with the crystal
axes, the stiffness matrix C must be transformed accordingly. For this, note that C is actually a
rank-4 tensor.
By default, the anisotropic elasticity model is switched off. The following command is required
to switch on the model:
pdbSet Silicon Mechanics Anisotropic 1
The values of these three modulus parameters with respect to the cubic crystal axis can be
defined using the following commands, which also show the default values for the crystalline
silicon:
pdbSet Silicon Mechanics C11 16.57E11
pdbSet Silicon Mechanics C12 6.39E11
pdbSet Silicon Mechanics C44 7.96E11
This model depends on the [Link] and [Link] parameters specified in the
init command.
Orthotropic Model
Orthotropic materials have three planes of symmetry. In a coordinate system with axes aligned
along the symmetry planes, the symmetric stiffness matrix C has the following nonzero
components:
C11, C22, C33, C44=C55=C66, C12=C21, C13=C31, C23=C32
The symmetry planes of the model are specified in the wafer coordinate system (see Wafer
Coordinate System on page 64) and depend on the [Link] and [Link]
parameters specified in the init command. The default symmetry plane directions are given
by these two parameters. Therefore, the wafer in-plane symmetry plane directions are given by
(the default) [Link]={1 1 0}, that is, at a 45° angle to the xy plane of the wafer
coordinate system. To align the symmetry planes with the wafer coordinate system, the
[Link] parameter should be {0 0 1} (the default) and the [Link] parameter
should be set to {0 1 0}.
NOTE When the symmetry plane directions are specified, they remain the
same for the entire structure and cannot be set regionwise.
The stiffness matrix components are calculated from the specified material properties:
C kk = E k ( 1 – ν ij υ ji ) (893)
C ij = E i ( υ ji + υ jk υ ki ) (894)
and i, j ≠ k .
By default, the orthotropic model is switched off, and it is switched on using the command:
pdbSet <material> Mechanics Orthotropic 1
specifically:
pdbSet Silicon Mechanics YoungsModulus1 162E10
pdbSet Silicon Mechanics YoungsModulus2 162E10
pdbSet Silicon Mechanics YoungsModulus3 162E10
pdbSet Silicon Mechanics PoissonRatio12 0.28
pdbSet Silicon Mechanics PoissonRatio13 0.28
pdbSet Silicon Mechanics PoissonRatio23 0.28
pdbSet Silicon Mechanics ShearModulus12 63.28E10
pdbSet Silicon Mechanics ShearModulus13 63.28E10
pdbSet Silicon Mechanics ShearModulus23 63.28E10
The values given also are the default values used. The units for the Young’s modulus and shear
modulus are dyn/cm2.
Orthotropic thermal expansion also is considered in this material model, and different
coefficients of thermal expansion can be specified along the three symmetry planes:
pdbSet Silicon Mechanics ThExpCoeff1 3E-06
pdbSet Silicon Mechanics ThExpCoeff2 3E-06
pdbSet Silicon Mechanics ThExpCoeff3 3E-06
Temperature-dependent material properties can be specified for all the material parameters
specified above. The variation of a property ξ can be specified as:
·
ξ ( T ) = ξ ref + ξ ( T – T ref ) (895)
where the reference value is the material parameter value specified in the input deck.
for example:
pdbSet Silicon Mechanics ThExpCoeff1Rate 0
Plastic Materials
Materials such as metals show linear elastic behavior at lower stresses but undergo permanent
deformation at higher stresses. At low temperatures, permanent deformation in these materials
is not sensitive to the rate of loading. Such material behavior is defined as plastic or elastic-
plastic. Depending on the type of loading, plastic deformations may be computed using
incremental plasticity or deformation plasticity.
Incremental Plasticity
Incremental plasticity uses the von Mises yield criterion with associative flow and bilinear
hardening. The von Mises yield criterion for isotropic solid materials takes the form:
2
Y(α) = --- ( σ y + H iso α ) (897)
3
is a function describing the change of yield surface with progressive yielding. The Einstein
summation convention is used to define the tensor product in the above equation. σ y is the
yield stress in uniaxial tension. H iso is the isotropic hardening modulus, which is constant for
bilinear isotropic hardening. To set these two parameters, use the commands:
pdbSet <material> Mechanics FirstYield <n>
pdbSet <material> Mechanics [Link] <n>
Under a small strain assumption, the strains (and strain rates) are decomposed additively:
e p
εij = ε ij + ε ij (898)
e p
where ε ij are the elastic strains, and ε ij are the plastic strains.
For incremental plasticity, the plastic strains are determined by the plastic flow rule:
·p · ∂Q
ε ij = γ ---------- (899)
∂σ ij
·
where γ ≥ 0 is the slip rate, and Q is the plastic potential. Plastic flow is assumed to be volume
preserving, so that plastic strain is purely deviatoric:
p p p
ε ij δ ij = 0 ε' ij = ε ij (900)
For associative plastic flow, the plastic potential Q is set equal to the yield function F . The
evolution of the isotropic hardening variable and the back-stress variable are given by:
· ·p 2·
α = e = --- γ (901)
3
and:
2· ( σ' ij – q ij )
q· ij = --- γ H kin --------------------------------------------------------- (902)
3 ( σ' – q ) ( σ' – q )
kl kl kl kl
·p
where H kin is the kinematic hardening modulus, and e is the equivalent plastic strain rate. To
set the kinematic hardening modulus, use the command:
pdbSet <material> Mechanics [Link] <n>
For linear isotropic hardening, the hardening modulus is interpreted as the slope of the stress
dσ
versus the plastic strain curve (as obtained from uniaxial tension test) H iso = -------
- . It differs from
p
dε
the elastic-plastic tangent modulus, which is defined as the slope of the stress versus total strain
curve Eep = dσ------ .
dε
For combined isotropic and kinematic hardening, a common choice for hardening moduli is:
where H is a constant.
The rate equations are discretized using backward Euler scheme and then solved using a radial
return mapping algorithm (see [1] for more details).
The nonlinear nature of the plasticity model requires Newton iterations to achieve the
equilibrium state for each loading step. At the end of each iteration, a check on the satisfaction
of convergence criteria is made. More Newton iterations are performed until all the
convergence criteria are satisfied within the specified tolerance or until the maximum number
of iterations is reached. See Time-Step Control for Mechanics on page 847 for details on
convergence criteria and time-stepping for mechanics.
NOTE To define the plastic model, use nonzero values for the isotropic or the
kinematic hardening modulus along with yield stress. In the absence of
hardening, the numeric simulation of plastic deformation may become
unstable.
Deformation Plasticity
Plastic materials that do not have well-defined yield stress can be modeled using deformation
plasticity. This model is based on the Ramberg–Osgood formula [2][3], which is only valid for
monotonic loading. It is used mostly for plastic deformation around crack tips since it is well
suited to the J-integral calculation.
For one dimension, an additive decomposition of strains under a small strain assumption is
given as:
σ σy σ n
ε = ε + ε = --- + α ----- -----
e p
E σ y
(904)
E
where α and n are material parameters, σ is the stress in one dimension, ε is the total strain
in one dimension, and E is Young’s modulus.
Extending the formula to three dimensions, the strain components can be expressed as:
elastic plastic
n (905)
σ' ij σ kk δ ij 3 σ y σ σ' ij
eq
ε ij = ε ije + ε ijp = ------- + -------------- + --- α ----- -------- -------
-
2G 9K
2 E σ y σ eq
eq 3
where σ = --- σ' ij σ' ij is the equivalent stress.
2
The plastic flow is assumed to be associative and is governed by the von Mises yield criterion.
Under monotonic loading, the total plastic strain can be written as:
3 p σ' ij
ε ijp = --- e -------
- (906)
2 σ eq
σ σ eq n
where e = α -----y ------- is the total equivalent plastic strain.
p
E σy
Inverting the plastic strain expression gives:
E m p m
= σ y ---------- ( e )
eq
σ (907)
ασ y
1
with m = --- defining the work hardening exponent.
n
The deformation plasticity equations do not require any integration due to total stresses and
strains. However, the nonlinear expressions require Newton iterations to achieve the
equilibrium state for each loading step. At the end of each iteration, a check on the satisfaction
of convergence criteria is made. More Newton iterations are performed until all the
convergence criteria are satisfied within the specified tolerance or until the maximum number
of iterations is reached. See Time-Step Control for Mechanics on page 847 for details on
convergence criteria and time-stepping for mechanics.
NOTE Deformation plasticity must be used only with monotonic loading since
the equations are not valid for unloading. This model must be used if the
J-integral must be calculated around a crack tip with plastic strains.
Viscoplastic Materials
Materials, such as metals at high temperatures, exhibit rate-dependent plasticity also known as
viscoplasticity or creep. There are different ways to model such behavior:
■ Anand model
■ Power law creep
Anand Model
The Anand model [4][5] is used for rate-dependent plasticity that combines creep and plastic
deformation.
Assuming small strains, the strain rates and strains can be decomposed into elastic and
viscoplastic parts in an additive manner:
· · e · vp
ε ij = ε ij + ε ij (908)
e vp
ε ij = ε ij + ε ij (909)
The elastic strains are evaluated using Hooke’s law, while the Anand model is used to evaluate
the viscoplastic part. The Anand model assumes that plastic deformation occurs at all values
of strain, so instead of a yield function, a constitutive equation is used to relate stresses to
viscoplastic strains. The flow rule for evolution of viscoplastic strains (volume preserving) is
assumed to be of the familiar form:
· vp 3 · vp σ' ij
ε' ij = --- e --------- ; σ' = σ' ij σ' ij (910)
2 σ'
The saturation value of deformation resistance at a given temperature and strain rate is
expressed as:
· vp n
Values for the material parameters A, Q, ξ, m, h 0, a, s̃ and n , and the initial value for
deformation resistance s 0 are obtained by fitting experimental data for stress–strain (obtained
from tension or compression tests conducted at various temperatures and strain rates) to the
above equations. For details on how to obtain such data, refer to the literature [4][6][7][8].
NOTE For other materials, use the long form of the pdb commands to set
parameter values.
A new material named Solder has been added to the PDB to model viscoplastic behavior. The
default values for the above parameters for Solder material are based on 96.5Sn3.5Ag solder
alloy as reported in [6].
To solve the above nonlinear equations, the rate terms are discretized using the backward Euler
method, and the resulting algebraic equations are evaluated locally at every integration point
using the Newton–Raphson iterative scheme.
This flag must be switched on during the simulation if viscoplastic deformation exists. The
nonlinear nature of the viscoplasticity model also requires Newton iterations to achieve
equilibrium of mechanics equations at each loading step. At the end of each iteration,
convergence criteria are checked. More iterations are performed until all the convergence
criteria are satisfied within the specified tolerance or until the maximum number of iterations
is reached. See Time-Step Control for Mechanics on page 847 for details on convergence
criteria and time-stepping for mechanics.
NOTE To avoid convergence problems, use small time steps at the beginning
of the analysis. You can increase the number of time steps later, during
the analysis, if it does not adversely affect the solution.
The power law creep [9], also known as the Bailey–Norton creep, assumes creep strain to be
of the following form:
Q n (m – 1)
ε = A exp – ------- σ mt̃
· cr
RT
(914)
· cr 2 · cr · cr
■ ε = --- ε ij ε ij is the equivalent creep strain rate.
3
■ A is a pre-exponential factor.
■ Q is the activation energy.
The above form is referred to as a time hardening form. A more commonly used form called
the strain hardening form is obtained by eliminating the time variable:
1
----
Q n cr ( m – 1 ) m
ε = m A exp – ------- σ ( ε )
· cr
RT
(915)
Under a small strain assumption, strains (and strain rates) can be decomposed additively as:
e p cr
ε ij = ε ij + ε ij + ε ij (916)
3 · cr σ' ij
ε ij = --- ε -------
· cr
(917)
2 σ
When incremental plasticity is also active, the creep flow rule is modified to account for
hardening:
3 · cr σ' ij – q ij
ε ij = --- ε --------------------
· cr
(918)
2 σ
where:
3
■ σ = --- ( σ' ij – q ij ) ( σ' ij – q ij ) is the equivalent stress.
2
■ q ij is the back stress for kinematic hardening.
■ Plastic flow equations are solved simultaneously with creep flow.
The material parameters A , Q , n , and m are obtained by fitting experimental data. To set
these parameters, use the commands:
pdbSet <material> Mechanics Creep.A <n>
pdbSet <material> Mechanics Creep.Q <n>
pdbSet <material> Mechanics Creep.n <n>
pdbSet <material> Mechanics Creep.m <n>
NOTE For materials other than Solder, use the long form of these commands
to set parameter values.
The default values for the above parameters have been added to the PDB to the Solder
material based on the 96.5Sn3.5Ag solder alloy as reported in [10].
To solve the creep equations, the rate terms are discretized using the backward Euler method,
and the resulting algebraic equations are evaluated locally at every integration point using the
Newton–Raphson iterative scheme.
This flag must be switched on during the simulation if creep deformation exists. The nonlinear
nature of the creep model also requires global Newton iterations to achieve equilibrium of
mechanics equations at each loading step. At the end of each iteration, convergence criteria are
checked. More iterations are performed until all the convergence criteria are satisfied within
the specified tolerance or until the maximum number of iterations is reached. See Time-Step
Control for Mechanics on page 847 for details on convergence criteria and time-stepping for
mechanics.
NOTE To avoid convergence problems, use small time steps at the beginning
of the analysis. You can increase the number of time steps later, during
the analysis, if it does not adversely affect the solution.
Swelling
Swelling refers to volumetric expansion of material. Swelling material behavior is defined by
specifying strain rates at various temperatures that are interpolated linearly. To switch on the
model, use the command:
pdbSetBoolean <material> Mechanics IsSwelling <n>
where <temp> is the temperature in degree Celsius, and <SSR1>, <SSR2>, and <SSR3> are
–1
strain rates in the x-, y-, and z-direction, respectively, in s .
Strain rates can be the same (isotropic) or different (anisotropic) in each of the three directions.
For cyclic temperature loading, strain rate data must be given for loading (temperature
increment) as well as unloading (temperature decrement). For example:
pdbSetDouble Mold Mechanics SwellingStrainRate Temperature {
27 {0.0 0.0 0.0}
77 {0.001 0.001 0.001}
127 {0.002 0.002 0.002}
80 {0.0012 0.0012 0.0012}
25 {0.0 0.0 0.0}
}
If strain rate data is not given for unloading, loading data is used for increasing as well as
decreasing temperatures.
Since strains are assumed to be small, swelling strain rates are added to other strain rates:
· · e · sw
ε ij = ε ij + ε ij (919)
· sw
where ε ijsw = ε ij = 0 for i ≠ j .
For a given material, only one set of strain rate data can be specified for a solve step. If
necessary, different strain rate data may be specified for the same material in a subsequent solve
step.
where:
■ C AB denotes the elastic moduli of binary compound A 1 – x B x .
The mole fraction–dependent moduli for Si1–xGex are linear combinations of the elastic moduli
of each material. The binary compound Si1–xGex is treated as silicon regions with germanium.
The mole fraction–dependent model can be switched on for silicon with:
pdbSetBoolean Si IsCompound 1
Next, a list of binary compound materials with mole fraction–dependent elastic moduli is
created by:
pdbSetString Mechanics BCompoundList {Silicon Germanium}
The mole fraction dependency can be applied to thermal expansion coefficients of materials
using the command:
pdbSet Mechanics [Link] 1
The temperature dependence of elastic moduli is assumed to be linear and included by a rate
coefficient. For isotropic elasticity, this parameter is specified with:
pdbSet <material> Mechanics YoungsModulusRate <n>
to specify the rate coefficient. For the nonlinear temperature-dependent thermal expansion
coefficient, a piecewise linear interpolation function is used. To switch on the model, use the
command:
pdbSet Mechanics [Link] 1
For the first yield stress of plastic materials, an Arrhenius expression is used for the
temperature-dependent effect. The prefactor and exponent of the Arrhenius expression are
specified respectively with the following commands:
pdbSet <material> Mechanics FirstYield <n>
pdbSet <material> Mechanics FirstYieldW <n>
While this is good for structures where the strain in the third direction is very small compared
to the cross section, it would give inaccurate results for thin structures. Thin plate-like
structures where one dimension is very small compared to the other two can be modeled under
the plane stress assumption:
ε zz ≠ 0 ; σ zz = 0 (923)
The strain ε zz is obtained as a function of other strains, for example, for purely elastic
structures:
ε zz = – ν ( εxx + ε yy ) (924)
The plane stress model can be switched on for a particular region using:
pdbSetBoolean <material> Mechanics PlaneStress 1
NOTE You can combine plane stress and plane strain formulations within a
structure by switching on plane stress in only a few regions. However,
such a simulation is not advisable.
If both plane stress and plane strain regions are present in a structure, the material thickness of
regions can be specified by:
pdbSetDouble <material> Mechanics Thickness <d>
The strain rate tensor is related to the symmetric part of the velocity gradient and is given by:
1 ∂v j ∂v k
ε jk = --- ------- + -------
·
(925)
2 ∂x k ∂x j
Strain is then related to stresses through any of the material models defined in Material Models
on page 630. For all models, the global equilibrium condition is given by:
∂σ jk ( v )
------------------- = 0
∂x k
(926)
k
The above equations are solved using the finite-element method. The solution is a vector
representing the velocity components at each node. These velocities are used to compute the
strain and stresses. The stresses and the boundary conditions determine the mechanical state of
the system.
NOTE The stress and strain are derivatives of the velocity. They are, therefore,
computed at one order of accuracy lower than the solution variable. This
also means that they are discontinuous across the elements. When
visualized, the stress values may appear badly converged even if the
linear solver has converged.
In addition, the quasistatic mechanics equations are elliptic in nature and, therefore, are prone
to high levels of shape dependence. This is most frequently seen at gate corners during
polysilicon reoxidation steps or at the corners of the STI trench during liner oxidation. These
equations also exhibit a high sensitivity to the mesh modification algorithms at these corners.
Boundary Conditions
Equations for stress equilibrium require boundary conditions to define the system completely.
Vy=0 Vy=0
Vx=0
where:
■ <side> is Left, Right, Front, or Back.
■ <model> is HomNeumann or Dirichlet.
The default boundary conditions are zero velocities in the direction perpendicular to the
boundary planes. Since velocities are set to fixed values along the boundaries, these boundary
conditions are referred to as Dirichlet boundary conditions in directions perpendicular to
boundary planes. The HomNeumann boundary condition is used when the plane must be free.
For example, if you want to set the ‘right’ plane to be free, use the command:
pdbSet Mechanics Right BoundaryCondition HomNeumann
The HomNeumann boundary condition implies a zero normal stress (shown in Figure 91).
Vy=0 s y=0
Vx=0
Dirichlet boundary conditions are imposed using the penalty method, by default. To adjust the
penalty factor, use the command:
pdbSet Mechanics [Link] {<n>}
The default penalty factor is 1.0e12. The larger this factor, the more accurate the enforcement
of Dirichlet boundary conditions. However, using an extremely large penalty factor could lead
to an ill-conditioned matrix and, therefore, could slow down the linear equation solver.
Alternatively, you can use the matrix reduction method to impose Dirichlet boundary
conditions. To choose the penalty method or matrix reduction method, use the command:
pdbSet Mechanics [Link] {<model>}
Sentaurus Process also provides a general way to specify boundary conditions for stress
analysis through the stressdata command:
stressdata [Link]=<c> [Link]= { dx=<n> | dy=<n> | dz=<n> }
where:
■ [Link] can be Left|Right|Front|Back|Bottom.
■ dx, dy, and dz are used to specify displacement rates (default unit: cm/s).
The displacement rates are applied to the area defined through [Link], where
Left|Right|Front|Back|Bottom refer to the outer boundary surfaces of the simulation
domain. At least at one node, the displacement along any coordinate system direction must be
fixed to remove the rigid body motion.
where:
■ [Link] can be Left|Right|Front|Back|Bottom.
■ dx, dy, and dz specify displacement rates (default unit: cm/s).
■ rx, ry, and rz specify rotational velocities (default unit: rad/s).
■ xa, ya, and za specify the coordinates of the point around which the rotation occurs
(default unit: cm).
U1L U1R
U2L U2R
To apply the periodic boundary condition to the outer bounding surfaces, use the command:
pdbSet Mechanics <Left | Right | Front | Back> Periodic 1
Both the periodic and coupling boundary conditions are implemented using the penalty
method. To adjust the penalty factor, use the command:
pdbSet Mechanics [Link] <n>
13
The default penalty factor is 1.0 ×10 . The larger this factor, the more accurately the periodic
or coupling boundary conditions will be enforced. Using an extremely large penalty factor
could lead to an ill-conditioned matrix and, therefore, slow down or even fail the linear
equation solver.
NOTE If you choose to apply periodic boundary conditions, all other boundary
conditions defined through the old pdbSet method will be ignored and
must be redefined using the stressdata command.
Time-stepping can be controlled with the displacement increment and with the relative
relaxation time. To switch on these two options, use:
pdbSet Mechanics [Link] [Link] 1
and:
pdbSet Mechanics [Link] [Link] 1
respectively. For more control parameters, see “Mechanics [Link]” in the Parameter
Database Browser.
Stress-causing Mechanisms
Every mechanical system needs a set of stress-driving mechanisms to reach a stressed state.
The stress-inducing mechanisms in Sentaurus Process are listed here.
Densification-induced Stress
A typical densification process uses thermal heating to increase the density of a porous
material. As the material density increases, its volume shrinks and the volume shrinkage
generates stresses.
The total amount of density increase can be specified per material or per region for a given
diffuse (or temp_ramp) step as shown above. A proportional amount of density increase is
applied during each time step of the densification process.
The densification operation can be performed for all existing materials, as well as new
materials defined using the mater command:
mater add name=TEOS [Link]=oxide
diffuse time=1 temp=1000 [Link] = { TEOS = 0.03 }
For densification processes involving large amounts of volume shrinkage, the material
boundaries and meshes can be updated using the following settings:
pdbSet Grid [Link] 1
pdbSetDouble TEOS Grid MinimumVelocity 0
For a complete densification process that has distinguished density changes, multiple diffuse
steps can be used with different density increases for each segment of the process.
The parameter MinimumVelocity can be used to selectively switch off point or interface
movement. This can be useful, for example, when a mechanics simulation computes a small
amount of boundary movement that is either unwanted or could cause element quality to suffer
in the vicinity, and the approximation of no movement is acceptable. In general, the command
is:
pdbSet <material> Grid MinimumVelocity <speed>
If <material> is a bulk material (no underscore), the parameter applies to bulk points. If the
speed of the bulk points is less than <speed> (in cm/s), Sentaurus Process truncates the speed
to zero. On the other hand, if <material> is an interface material (having an underscore such
as PolySilicon_Silicon), the parameter only applies to points on that interface.
NOTE The moving mesh operations can become unstable for values of
MinimumVelocity that are neither very large nor zero. Very large
values stop all motion, and 0 allows all motion.
NOTE If viscous or viscoelastic materials are present in the structure, the stress
distribution may change even without a change in the temperature due
to viscoelastic relaxation.
The thermal expansion coefficient for certain materials can be found in the parameter database
as follows:
<material> Mechanics ThExpCoeff
Thermal expansion only affects the dilatational part of the constitutive equation:
σkk = 3K ε kk – 3α rel ΔT
k
(927)
k
The change in the temperature is described by ΔT and α rel = α mat – α subs is the relative
thermal expansion coefficient of a certain material with respect to the thermal expansion
coefficient of the substrate.
In certain examples, like bending, you may want to use absolute expansion coefficients instead
of relative. This can be achieved by setting a parameter called RefThExpCoeff as follows:
pdbSetDouble Mechanics RefThExpCoeff 0.
All the thermal expansion coefficients are computed with respect to the substrate. This
reference value is changed by setting a certain region as substrate and resetting the thermal
expansion coefficient. A region can be tagged as the substrate in several ways:
■ Use the substrate keyword when defining regions with the region command before the
init command.
■ If a saved structure is being loaded into Sentaurus Process, a region is tagged as the
substrate with the command:
region name=<region_name> substrate
This command overwrites the reference thermal expansion coefficient setting from the
substrate.
Materials expand differently in different temperature ranges. The linear dependency of the
thermal expansion coefficient on temperature can be specified by:
pdbSet Silicon Mechanics ThExpCoeffRate 4e-9
So the total thermal expansion coefficient at the elevated temperature T can be expressed as:
a = ThExpCoeff + ThExpCoeffRate × ( T – RoomTemperature ) (928)
Lattice Mismatch
The presence of impurities, such as germanium and carbon, can change the lattice parameters
of crystalline silicon. This effect has been exploited in two ways technologically:
■ Introducing an impurity during epitaxy to form a strained layer.
■ Growing a substrate (typically, a very thick layer grown on a standard substrate) to produce
a customized lattice constant.
However, most technological applications are based on the first use, for example, when SiGe
source/drain pockets are grown on silicon substrates. For strained SiGe epitaxy, Sentaurus
Process automatically computes and applies the strain, and no user input is necessary.
For customized lattice-spacing substrates or other material systems, more setup of the tool is
required. This section explains the theory and implementation of this model and gives an
example. Figure 93 shows a simple SiGe wafer.
Ge Concentration
Strained Layer
0.01
Relaxed Layer
0.5
Graded Layer
0.7
Pure Silicon
X µm
There are four main regions of the manufactured substrate. The silicon region has the graded
buffer layer where the Ge concentration increases linearly from zero to the required
concentration. The manufacturing process of this layer is designed such that all the dislocations
are forced energetically to nucleate here, and the wafer is completely relaxed. The relaxed layer
that is grown on top of the graded layer has no dislocations and no strain. The lattice-spacing
of this layer is determined by the Ge mole fraction. The lattice-spacing of this layer controls
the strains obtained in the top strained layer. The top strained layer is grown depending on the
kind of strain required. If this layer is to be in a tensile state, the Ge concentration here must be
less than that of the relaxed layer. In the case of a compressive state, the Ge concentration must
be greater than that of the relaxed layer. This layer has a thermodynamic limit on its thickness
since the strain energy it contains should be less than the dislocation nucleation energy. The
strain energy is directly proportional to the volume that is under the strain. The strain profile of
germanium in silicon is given approximately by:
ε = 0.0425x (929)
In the relaxed region, Sentaurus Process modifies the lattice-spacing. This results in no stresses
due to the presence of germanium. In the strained region, the lattice-spacing is fixed by the
lattice-spacing in the relaxed region. Now, using the Ge mole fraction in the strained region,
the effective unstrained lattice-spacing is computed, and the stresses are based on the difference
of the effective lattice-spacing and the lattice-spacing of the relaxed region.
For example, assume the strained layer has no Ge: The effective lattice-spacing is that of silicon
given by L Si . The lattice-spacing of the relaxed SiGe part is, for example, L SiGe . The strain in
the strained region is:
ε = ( L SiGe – L Si ) ⁄ L Si (930)
The strain computed using Eq. 930 is applied as a biaxial strain in the y- and z-directions.
For the most common case of SiGe layers grown on silicon substrates, the model is switched
on by default, and strain is computed and updated as necessary. For simulating other material
systems, a few settings are required to instruct Sentaurus Process how the strain should be
computed.
If the substrate is not silicon or it is not the lowest most region in the substrate (that is, the
largest x-coordinate), you must identify the substrate region in the wafer. Use the region
command and include the keyword substrate for the appropriate region. If there is no
substrate defined in the loaded structure, use the following command to tag a region as a
substrate:
region name=<region_name> substrate
Regions isolated from the substrate by nonsubstrate materials must be tagged as substrate to
account for the lattice mismatch effect.
For systems other than SiGe, Sentaurus Process must know the strain profile of the field in the
substrate. The strain_profile command is used to specify this. The strain is specified as a
piecewise linear function of the mole fraction. For Ge in silicon, it is:
strain_profile Silicon species=Germanium strain= {0 0.0425} ratio= {0 1}
or:
pdbSet Silicon Germanium [Link] {0 0 1 0.0425}
The lattice mismatch model for SiGe is switched on by default. Next, for customized lattice-
spacing substrates, the substrate must be given a strain profile. The strain profile can be
specified with the substrate_profile command or the profile command as a piecewise
linear function of the x-coordinate:
profile region=<region_name> name=Germanium \
concentration= {1e10 1e10 2e22 2e22 1e10 1e10} \
xcoord= {0 0.01 0.011 0.5 0.7 10} linear
The location of the top of the relaxed region must be specified in Sentaurus Process. Generally,
this should not be at the top of the relaxed layer (see Figure 93 on page 657) because
germanium diffusion during any anneal step can cause unrealistic stress values to appear in this
area. The best location for the top of the relaxed region is approximately two-thirds of the
relaxed layer thickness from the top of the relaxed layer. In this example, it is approximately
0.35 μm . This reference position can be set with the command:
pdbSet Silicon Mechanics TopRelaxedNodeCoord 0.35e-4
NOTE In most cases, when the simulation does not require any SiGe substrate
(for example, when SiGe source/drain pockets are grown on silicon
substrates), this parameter is not needed. The reference lattice-spacing
is the one of the substrate; Sentaurus Process detects automatically the
adjacent silicon-like regions and applies to them the lattice mismatch
model. For this reason, the value of this parameter defaults to the bottom
coordinate of the structure.
Finally, for these concentrations to take effect and all mechanics computations to occur, you
must add a short diffusion step if there is none.
During dopant redistribution, the lattice-spacing and lattice mismatch strains are updated, and
the doping concentration at the top of the relaxed layer may change. To disable automatic
updating of lattice-mismatch strains, use:
pdbSet Silicon Mechanics UpdateStrain 0
To switch off the lattice-spacing tracking at the top of the relaxed layer, use:
pdbSet Mechanics LatticeHistory 0
The total concentration model computes the total contribution of lattice mismatch stress with
the current impurity concentration and the elastic moduli at the current temperature. For binary
compound materials, the elastic moduli are computed with the current mole fraction. With this
approach, the lattice mismatch stress is history independent and can change even with an
unchanged doping profile.
This is the default lattice mismatch model. To switch off this model by computing the lattice
mismatch stress increment with the elastic moduli during doping profile change, use the
command:
pdbSet Mechanics [Link] 0
The lattice-spacing and strain from this model may not be physical in the relaxed region.
The reference concentration model is used when the structure is flipped for backside
processing. To switch on this model, use the command:
pdbSet Mechanics [Link] 1
Strained Deposition
Impurity-induced stress can be introduced locally during deposition to account for a lattice-
spacing change due to stress rebalancing. For example, the SiGe lattice-spacing during
unconstrained growth gradually returns to the unconstrained SiGe lattice-spacing. The lattice
mismatch effect should diminish during the SiGe growth.
To correctly catch the relaxation effect, the thickness of the deposited layer must be chosen
properly; a fine mesh is required. Multiple deposition can be particularly useful in such cases.
The total concentration model is disabled during strained deposition. The reference
concentration model should not be used with strained deposition.
Edge Dislocation
The existence of crystal lattice defects, such as dislocation, affects the channel stress state. The
impact of edge dislocation is included by superposing the dislocation-induced stress field from
elasticity theory. Each edge dislocation can be defined with:
stressdata [Link] [Link]= {<n> <n> <n>}
[Link]= {<n> <n> <n>} [Link]= {<n> <n> <n>} region=<c> <material>
where:
■ [Link] is the location of the dislocation core.
■ [Link] specifies the direction of the edge dislocation or the direction of the half
plane.
■ [Link] is Burger’s vector in the perpendicular direction to the half plane.
Here, the magnitude of [Link] is the slip distance. You must supply either a region
name or a material name. If region is specified, the stress field is superposed to this region.
If material is specified, the stress field is applied to all regions of crystalline material.
n2
O n1
Figure 94 Edge dislocation located at the origin O; n1 is Burger’s vector and n2 is the
direction of the half plane
Singularity exists in the analytic solution at the dislocation core. Without using a nonlinear
atomistic theory, the stresses in the core region within a few magnitudes of Burger’s vector to
the dislocation core are smoothed away. The factor for this core radius can be defined with:
pdbSet Mechanics [Link] 2.0
A prototype model for positioning the edge dislocations is available by minimizing the elastic
strain energy [11]. The stress field from each edge dislocation is superposed. The elastic strain
energy is determined after force equilibrium with edge dislocations at their initial locations.
The initial location of edge dislocation serves as the initial guess and can be defined by:
stressdata ![Link] [Link]= {<n> <n> <n>} \
[Link]= {<n> <n> <n>} [Link]= {<n> <n> <n>} region=<c>
When all the edge dislocations for minimizing the elastic strain energy are specified, you can
start the optimization with the command:
stressdata [Link]= {<n> <n> <n>} [Link]= {<n> <n> <n>} \
[Link]
where [Link] and [Link] define the range of dislocation positions in the specified
region. Some additional parameters for optimization convergence control also can be defined
in this command (see stressdata on page 1081).
The movement of edge dislocations depends on the gradient of the total elastic strain energy
computed from a discrete integral over all elements. The target of the optimization is set to -5
multiplied by the absolute value of the starting elastic strain energy. This factor can be changed
with:
pdbSetDouble Mechanics [Link] <n>
The coordinates of the edge dislocations after optimization are returned in a Tcl list formatted
as <x1> <y1> <x2> <y2> ... for two dimensions, and <x1> <y1> <z1> <x2> <y2>
<z2> ... for three dimensions. The final stress state remains the same as before the edge
dislocations are introduced. The edge dislocations may stop at the local minimum where the
elastic strain energy has not reached the global minimum. In such a case, a new optimization
step must be started with the initial guess of the edge dislocation positions adjusted based on
the previous optimization result. It is also helpful to refine the mesh.
Intrinsic Stress
Certain process steps require the deposition of materials with intrinsic stresses. Sentaurus
Process can be used to model these process steps. The intrinsic stresses (StressELXX,
StressELYY, StressELZZ, StressELXY, StressELYZ, StressELZX) can be prescribed in
the deposit command (see deposit on page 870). After stress relaxation, the resulting stresses
will be less than the prescribed ones by default. You can scale the prescribed stresses so that
for a flat surface, the relaxed stress will be the same as the prescribed stress. To scale the
stresses, use the command:
pdbSet Mechanics StressRelaxFactor 1
For deposition in 3D, you can specify stresses in specific layers using the stressdata
command (see stressdata on page 1081). For example:
stressdata nitride syyi=1.4e10
10 2
sets the yy component of the intrinsic stress in the nitride to 1.4 ×10 dyn/cm .
For interconnect simulations, intrinsic stresses in metal lines can be modeled as width
dependent [12] with either a linear relation or a logarithmic relation, using the parameters
defined through the stressdata command:
■ If modeled as a linear relation, the total intrinsic stresses are given by:
w w w
σ xx = σ xxi + σ xx1 ------x σ yy = σ yyi + σ yy1 ------y σ zz = σ zzi + σ zz1 ------z
wb wb wb
■ If modeled as a natural logarithmic relation, the total intrinsic stresses are given by:
w w w
σ xx = σ xxi + σ xx2 ln ------x σ yy = σ yyi + σ yy2 ln ------y σ zz = σ zzi + σ zz2 ln ------z
wb wb wb
where σ xxi, σ xx1, σ xx2, w b are defined through the parameters sxxi, sxx1, sxx2, and base of
the stressdata command. The other two components ( yy and zz ) are defined in the same
way, and w is calculated internally with respect to the region (not material) boundaries.
Thermal residual stress in a given device structure is a function of its fabrication history, which
consists of process steps at various temperatures and temperature ramps in between. To model
stress evolution accurately, all temperature ramps should be traced. When the pdb parameter
StressHistory is switched on, for example:
pdbSet Mechanics StressHistory 1
the temperature gaps between process steps such as diffusion, deposition, and etching are
detected and filled with instant stress-rebalancing, solving for thermal mismatch strains and
stresses.
The stress tensor can be decomposed and the resulting dilatational and deviatoric stress
components can be saved on nodes when the following pdb parameter is switched on:
pdbSet Mechanics decomposeStress 1
The element stresses are prefixed by StressEL and the nodal stresses are prefixed by Stress.
The tensor components are given by the post-fix (XX, YY, ZZ, XY, YZ, ZX).
The field LatticeSpacing represents the lattice-spacing of the crystal at the location of the
node. This is controlled by the presence of lattice-altering species such as germanium or carbon
in the structure. In addition, the strain_profile command must be specified.
In Sentaurus Process, the select command is used to perform Tcl-level and Alagator-level
operations. To access the stress components, use the select command.
The stresses and strains are represented as symmetric tensors. To access the xx, yy, and zz
components of nodal stress values, the variable references for the select command are
Stress_xx, Stress_yy, and Stress_zz, respectively. To access the xy, yz, and zx
components, use Stress_xy, Stress_yz, and Stress_zx, respectively.
For element values, the Boolean keyword element of the select command must be set to
true. To access the xx, yy, and zz components of the element stress values, the variable
references for the select command are StressEL_xx, StressEL_yy, and StressEL_zz,
respectively. To access the xy, yz, and zx components, use StressEL_xy, StressEL_yz, and
StressEL_zx, respectively.
The old variable names for accessing the components of stress and strain tensors are supported
as well. A comparison of the new names and the corresponding deprecated names is included
in Table 65 on page 668.
Table 64 presents descriptions of the mechanics-related output data and whether the variables
apply to elements or nodes.
NOTE The stresses and strains in the output file are according to the UCS,
unless you explicitly request to save in the DF–ISE coordinate system
by using the math [Link] command. The UCS is the same as
the Sentaurus internal coordinate system, but differs from the DF–ISE/
TDR coordinates. Therefore, it is important to note the directions of the
axes in 2D and 3D (see Figure 95).
UCS DF–ISE/TDR
Z
UCS DF–ISE/TDR Y
Y X
Z
X
Y
X Y X
The axis directions in DF–ISE/TDR coordinates are different in 2D and 3D in the UCS.
Figure 95 shows the axis orientation in 2D and in 3D. Consequently, the values of the stress
and strain components change.
For information about the TDR format, refer to the Sentaurus Data Explorer User Guide.
Table 65 maps the fields from the select command to the fields in the output files of
Sentaurus Process. The axis directions in Sentaurus Process are the same in 2D and 3D.
The directionality is the same for other tensor fields such as StressEL and ElasticStrain.
The StressMaxEL field is updated when the current stress is greater than the stored stress. In
this way, the maximum is maintained throughout the process flow. The maximum element
stresses and the von Mises stress are computed and stored.
By using the stressdata command (see stressdata on page 1081), a list of maximum stresses
(hot spots) and their locations can be obtained. The hot spots can be evaluated by one of the six
stress components (sxx, syy, szz, sxy, syz, and szx), the von Mises stress, the principal stress,
or the hydrostatic stress (negative pressure value or the pressure). The command returns a list
of maximum stress values (largest magnitude, largest tensile, largest compressive) and the
corresponding location coordinates.
References
[1] J. C. Simo and T. J. R. Hughes, Computational Inelasticity, vol. 7, New York: Springer,
1998.
[2] W. Ramberg and W. R. Osgood, Description of Stress-Strain Curves by Three
Parameters, National Advisory Committee for Aeronautics, Technical Notes No. 902,
Washington, July 1943.
[3] J. Lubliner, Plasticity Theory, Macmillan: New York, 1990.
[4] S. B. Brown, K. H. Kim, and L. Anand, “An Internal Variable Constitutive Model for
Hot Working of Metals,” International Journal of Plasticity, vol. 5, no. 2 pp. 95–130,
1989.
[5] G. G. Weber et al., “An Objective Time-Integration Procedure for Isotropic Rate-
Independent and Rate-Dependent Elastic-Plastic Constitutive Equations,” International
Journal of Plasticity, vol. 6, no. 6, pp. 701–744, 1990.
[6] G. Z. Wang et al., “Applying Anand Model to Represent the Viscoplastic Deformation
Behavior of Solder Alloys,” Journal of Electronic Packaging, vol. 123, no. 3, pp. 247–
253, 2001.
[7] Q. Wang et al., “Anand Parameter Test for Pb-Free Material SnAgCu and Life
Prediction for a CSP,” in 8th International Conference on Electronic Packaging
Technology (ICEPT), Shanghai, China, pp. 1–9, August 2007.
[8] J. Wilde et al., “Rate Dependent Constitutive Relations Based on Anand Model for
92.5Pb5Sn2.5Ag Solder,” IEEE Transactions on Advanced Packaging, vol. 23, no. 3,
pp. 408–414, 2000.
[9] H. J. Frost and M. F. Ashby, Deformation-Mechanism Maps, Pergamon Press: Oxford,
1982.
[10] S. Wiese, F. Feustel, and E. Meusel, “Characterisation of constitutive behaviour of
SnAg, SnAgCu and SnPb solder in flip chip joints,” Sensors and Actuators A, vol. 99,
no. 1–2, pp. 188–193, 2002.
[11] R. Gatti et al., “Dislocation engineering in SiGe heteroepitaxial films on patterned Si
(001) substrates,” Applied Physics Letters, vol. 98, no. 12, p. 121908, 2011.
[12] Y.-C. Joo, J.-M. Paik, and J.-K. Jung, “Effect of Microstructure and Dielectric Materials
on Stress-Induced Damages in Damascene Cu/Low-k Interconnects,” in MRS
Symposium Proceedings, Materials, Technology and Reliability of Advanced
Interconnects, vol. 863, San Francisco, CA, USA, p. B7.6/O11.6, March 2005.
Overview
Sentaurus Process automatically generates meshes as they are needed. The behavior of the
automatic-meshing scheme is different in 3D than in 1D and 2D because of the time required
to generate 3D meshes. In 1D and 2D, meshes are generated after every geometry operation
such as etch, deposit, and transform. In 3D, meshes are only generated immediately before
steps that require a bulk mesh, such as a diffuse or an implant command, and structure
saving. This scheme can reduce the time spent when there are multiple geometry-changing
steps without a diffuse or an implant command (or any other step requiring a mesh) in
between.
Sentaurus Process uses Sentaurus Mesh as its mesh generation engine. Details of the meshing
algorithms are provided, but for simplification, Sentaurus Mesh is used throughout.
The mesh generation process starts with a bisection algorithm, which places mesh points as
instructed by the user. Afterwards, the mesh elements are created using a modified Delaunay-
meshing algorithm. Refer to the Mesh Generation Tools User Guide for details about Sentaurus
Mesh.
The meshes generated within Sentaurus Process can be refined adaptively, statically, or as a
combination of adaptive and static refinements. The refinement can be specified using one of
the major types of refinement box:
■ Field based (adaptive meshing)
■ Mask based
■ Uniform (standard)
■ Interface axis-aligned
■ Interface offsetting (offset normal to the interface)
All these refinement types are user controllable. In addition, Sentaurus Mesh enforces mesh
smoothing to limit the changes in element size from one element to the next. This smoothing
is important for mechanics accuracy and convergence behavior (see Mesh Refinement on
page 674).
One important algorithm affecting refinement behavior is the UseLines algorithm. This
algorithm inserts lines created using the line command into the internal bisection algorithm
before any other lines are introduced. Further mesh refinement proceeds by bisecting the boxes
created by the UseLines lines. This has the effect of isolating static regions of a structure from
regions where the boundaries are moving due to geometric operations. Geometry movement
naturally causes perturbations to the mesh lines. The UseLines lines compartmentalize this
mesh movement to minimize solution degradation from interpolation. For more information,
see UseLines: Keeping User-defined Mesh Lines on page 702.
Mesh Refinement
Mesh refinement is a two-step process:
■ First, you define the refinement box.
■ Second, the mesh is refined when the next remesh occurs either with an explicit
grid remesh call or during standard geometry modifications such as etch, deposit, clip,
or native layer formation.
The refinement boxes remain valid unless the list of refinement boxes is cleared with the
refinebox clear command.
All refinement boxes have refinement criteria that add mesh and constraints that can be used to
limit where the mesh refinement occurs. One type of refinement criteria is available for each
type of box, and it essentially defines the box type. The refinement criteria and, therefore, the
refinement box type can be either static or adaptive. All types of refinement box can be mixed
as required. The refinement box constraints are specified along with the refinement criteria in
the refinebox command and can be used in combination within one command.
Refinement information also can be extracted and written to a file readable by Sentaurus Mesh
using the mshcmd flag in conjunction with the smesh parameter of the struct command (see
struct on page 1086).
To aid in setting mesh refinement, you can store the current minimum edge length in each
direction as a field using the command:
pdbSet Grid [Link] 1
When specified, Sentaurus Process computes the smallest edge length in each direction and
saves it in three fields:
■ MinXEdgeLength
■ MinYEdgeLength (for 2D or 3D structures)
■ MinZEdgeLength (for 3D structures)
Static Refinement
The standard refinement box allows you to specify a smoothly varying mesh density inside the
refinement box at three locations in the x-, y- and z-directions using the xrefine and
yrefine, and zrefine parameter lists, respectively. If all three xrefine, yrefine, and
zrefine values are specified, the mesh density varies quadratically in that direction. If two
are specified, the variation is linear from top to bottom. If only one value is specified, a constant
mesh density is assumed.
Refinement boxes also can be limited to refine only in one specific material or region using the
regions or materials parameter.
Examples
NOTE Calculating the linear or quadratic variation of the mesh density when
two or three x-, y-, or z-direction values are given requires the
specification of min and max. If min and max are not specified and at
least one region is specified, the minimum and maximum values of the
bounding box for that region serve as min and max for the calculation.
If more than one region is specified, only the bounding box of the first
region is used for the calculation, although all regions are used as
constraints to the refinement.
Refinement near interfaces can be specified using the refinebox command. So it is possible
to have a large global default minimum interface mesh-spacing, for example, and a smaller
localized value inside a box. The parameters affecting interface refinement are demonstrated
in the following examples:
■ Set the mesh criteria near the interface. This is the maximum size the first normal edge can
be, and it is possible for the edge to be 0.5 [Link]:
pdbSet Grid SnMesh [Link] <n>
■ Set the growth rate of the edge size away from the interface:
pdbSet Grid SnMesh [Link].2d <n>
pdbSet Grid SnMesh [Link].3d <n>
Mask-based refinements are similar to standard refinements (see Standard Refinement Boxes
on page 675), except that they have an additional constraint that is defined by a volume
specified by a previously existing mask. This constraint is applied in addition to the normal box
constraint defined by the min and max parameters. Mask-based refinements are a way to have
layout driven refinements.
For example, if you specify min and max, the refinement area will be the intersection of the
specified rectangle and the mask. If you specify a material name, the final refinement will be
the intersection of the regions with such a material and the mask.
These constraints are specified using the refinebox command with the following options:
■ A mask name (mask).
■ Minimum and maximum coordinates in x where the refinement will be applied
([Link] and [Link]).
■ An optional parameter to see if the refinement should extend some distance apart from the
mask (extend).
Negative masks are also allowed. Mask boundaries are never interpreted as being infinite in any
direction, even if they extend far from the simulation boundary. Consequently, shrinking a
refinement by specifying a negative extension parameter might leave a region uncovered, even
if the mask originally extended past the boundary. For example, if a mask from (–0.010 to 1)
covers a domain from (0 to 2), applying an extend parameter of –0.02 will produce a
refinement extending from (0.010 to 0.98), thereby leaving the region from 0 to 0.010
unrefined.
Example
Refinement also can be constrained to be near mask edges. This mask edge–based refinement
has three parameters available in the refinebox command:
■ [Link]
■ [Link]
■ [Link]
refinebox clear
# Prevent mesh propagation by defining regular coarse mesh
refinebox yrefine = 0.5 zrefine = 0.5
# Add edge-based refinement
refinebox mask = m1 [Link] = 0.08 [Link] = 0.25
grid remesh
Adaptive Refinement
Tailoring a mesh to a specific problem with static refinement boxes can be tedious and time-
consuming. In addition, for some applications, dopant profiles evolve so much during the
process that the areas where a finer mesh was needed at the beginning are very different from
the areas where a finer mesh is needed at the end.
To accurately capture the entire evolution with a static mesh, it is necessary to put a fine mesh
over large areas of the structure leading to long simulation times and large memory use.
Adaptive meshing in Sentaurus Process addresses these issues.
The refinement parameters and criteria are the same for adaptive implantation as for field-
based. When adaptive meshing is switched on, field-based refinement is performed during
every remesh step and for any dimension (in 1D, 2D, or 3D). This happens for all etch, deposit,
implant, native layer, regrid, and transform operations. In addition, during solve at a specified
step interval, a check of the current mesh is made to determine whether a remesh is required;
then the remesh is performed if necessary. For details, see Adaptive Meshing during Diffusion
on page 687. Finally, when adaptive meshing is used during implantation, in addition to
adaptively refining the newly implanted species and damage, adaptive refinement (also based
on existing fields) is applied simultaneously.
These refinements can be applied globally (default) or they can be limited as follows:
■ Boxwise
■ Materialwise
■ Regionwise
Detailed descriptions of the refinement types, their respective control parameters, and
instructions for applying refinement constraints are given in subsequent sections. The default
adaptive meshing parameters have been set to apply only relative difference criteria to the
whole structure, and they typically produce a fairly coarse mesh. It is necessary to set one
criterion or more to produce a mesh sufficiently fine to reach a required accuracy.
where C i is the field value on node i , and α is the field-specific refinement parameters set
with:
pdbSet Grid <Field> [Link] <n>
If the value of the expression in Eq. 933 is greater than the maximum relative difference, the
edge between node 1 and node 2 is split. To set the maximum relative difference, use:
pdbSet Grid <Field> [Link] <n>
The quantity <Field> is the name of the field, and <n> is a unitless number for
[Link] and [Link]; the units are the same as the units of the field.
The default values for [Link] and [Link] are set from <Field>
= AdaptiveField, except for the standard dopants, point defects, and Damage that have
entries in the PDB.
The density of the mesh is sensitive to [Link] because it represents the target
relative change of the field across an edge. For many standard situations, a number of the order
of 1.25 gives a coarse mesh, and a number of approximately 0.5 often gives a fine mesh. The
parameter α sets a smooth cutoff such that values of the field below α result in no refinement.
NOTE The relative difference criteria should only be used with fields that are
always positive.
where C i is the field value on node i . If the value of the expression in Eq. 934 is greater than
the maximum absolute difference, the edge between nodes 1 and 2 is split. The maximum
allowable absolute difference can be set with:
pdbSet Grid <Field> [Link] <n>
The logarithmic (base 10) difference between two neighboring nodes is computed as follows:
log ( C 1 + α ) – log ( C 2 + α ) (935)
where C i is the field value on node i , and α is the low value cutoff that can be set with:
pdbSet Grid <Field> [Link] <n>
If the value of the expression in Eq. 935 is greater than the maximum logarithmic difference,
the edge between nodes 1 and 2 is split. To set the maximum logarithmic difference, use:
pdbSet Grid <Field> [Link] <n>
NOTE The logarithmic difference criteria should only be used with fields that
are always positive. Use the asinh criteria for fields that can have
negative values such as stresses.
where C i is the field value on node i . If the value of the expression in Eq. 936 is greater than
the maximum asinh difference, the edge between nodes 1 and 2 is split. To set the maximum
asinh difference, use:
pdbSet Grid <Field> [Link] <n>
Gradient Criteria
where C i is the field value on node i , and l ij is the length of the edge between nodes i and j .
If the value of the expression in Eq. 937 is greater than the maximum gradient, the edge
between the two nodes is split. To set the maximum gradient, use:
pdbSet Grid <Field> [Link] <n>
If an edge between two neighboring nodes is not split, the local dose error is computed as
follows:
0.5C 12 – 0.25C 1 – 0.25C 2 l 12 s 12 (938)
where:
■ C i is the field value on node i .
■ C ij is the concentration at the midpoint between nodes i and j .
■ l ij is the length of the edge between nodes i and j .
■ s ij is the box size perpendicular to the edge between nodes i and j (see Figure 97).
Cij
Ci s ij
Cj
i j
l
ij
l
ij
The function in Figure 97 (left) is taken from the previous mesh (or from an analytic
implantation). The box with four points in Figure 97 (right) represents one cell of the mesh
refinement tree. The shaded area is the part of the 2D field under consideration. The dose in the
shaded area is computed in two ways:
■ As is
■ If the edge between i and j is split
If the difference between these two ways is greater than [Link], the edge is split.
The box size is 1.0 (unitless) in 1D; it is the box width (in cm) in 2D; and it is the box area
–2
( cm ) perpendicular to the edge i – j in 3D. If the value of the expression in Eq. 938 is greater
than the normalized maximum local dose error, the edge between the two nodes is split. The
local dose error can be set with:
pdbSet Grid <Field> [Link] <n>
–2
where <n> has units of cm , or [Link] and [Link], which are
parameters of the refinebox command.
The local dose error is first multiplied by the simulation size before comparing it to the
expression in Eq. 938. The simulation size is 1.0 (unitless) in 1D, the simulation width (in cm)
–2
in 2D, and the simulation lateral area in 3D (in cm ).
To estimate the total dose loss, you must estimate how many nodes carry a significant
concentration of the field in question and then multiply that number by the local dose error to
obtain approximately the maximum total dose error expected. (In practice, the dose error is
often considerably less than this.) This quantity is relatively easy to understand and is less
sensitive than some other parameters to process conditions.
Interval Refinement
Interval refinement provides a way to refine the mesh such that field values within a certain
interval are well resolved. Interval refinement produces mesh edges of a specified length
wherever the field values are within a specified interval. Four parameters are required to define
an interval refinement:
■ A minimum and maximum value
■ C min and C max
■ A target length, lt
■ A target length scaling, s
To preserve the anisotropy of the mesh, interval refinement examines each edge of a refinement
cell and calculates an effective edge length l eff defined by:
l eff = abs(( r 1 – r 2 ) ⋅ ∇C) (939)
where r 1 and r 2 are the endpoints of the edge, and ∇C is the average gradient of the field in
the refinement cell. Edges that are nearly parallel to the contours of the field have effective edge
lengths near zero. Edges that are nearly perpendicular to the contours have effective edge
lengths near their actual edge length. Since edges are split only when they are longer than a
given target length, edges that are parallel to the field contours are allowed to be longer than
those that are perpendicular.
Interval refinement will split any edge whose effective edge length exceeds the effective target
length. The effective target length is calculated differently depending on whether the field
values on the edge overlap the interval specified by C min (refinebox [Link]) and C max
(refinebox [Link]).
Let C 1 and C 2 be the values of the field on the endpoints of the edge. If the relation
C max > C > C min is satisfied for any value of C between C 1 and C 2 , the edge overlaps the
interval.
For edges that overlap the interval, the effective target length is exactly the target length that
you specify (refinebox [Link]), that is:
lt eff = lt (940)
where C a is either C min or C max , C b is either C 1 or C 2 , and the values of C a and C b are
chosen to minimize the difference.
The formula for lt eff outside the interval produces a graded mesh with an edge length that falls
off parabolically with distance from the interval. Default values for the parameters of the
interval refinements are defined in the PDB.
Table 66 lists refinebox parameters in the left column that can be used to specify boxwise
refinement. The right column lists the corresponding PDB parameters that can be used to
specify refinement criteria globally.
Adaptive meshing has been implemented through generalized refinement boxes. As such,
adaptive refinement and the refinement parameters themselves can be set in a boxwise manner.
The default adaptive refinement box covers the entire structure and relies on global parameters
and field-based parameters for its default values. If you specify an adaptive refinement box, the
default box is not created.
You can create one or more adaptive refinement boxes with different parameters. The most
commonly used parameters control the size of the box (min and max), and the minimum and
maximum edge lengths ([Link] and [Link]).
The default list of fields upon which to refine includes all dopants, point defects, and clusters
in the structure. This list can be modified in several ways. For example, the following command
overrides the default list:
pdbSet Grid <field> DoNotAdapt 1
The next example adds Field1 and Field2 to the default list for this particular box:
refinebox [Link] = { Field1 Field2 ... }
The following command redefines the list of fields to be used as the basis for refinement; if set,
this command overrides any add or subtract settings:
refinebox [Link] = { Field1 Field2 ... }
Examples
To apply adaptive meshing only inside a box and to set the anisotropic edge minimum in the
same box, use:
refinebox min= {0.0 0.0} max= {0.01 0.5} [Link]= {0.001 0.25} adaptive
To create a default box and, in addition, to create a refinement box where r F is modified locally
for all species and α F is modified for only boron, use:
refinebox adaptive
refinebox min= {0.0 0.0} max= {0.01 0.5} [Link]= 0.9 \
[Link]= {Boron = 1.0e14} adaptive
In any case, by default adaptive meshing is not performed during oxidation or silicidation. You
can switch on adaptive meshing during these steps by setting:
pdbSet Diffuse [Link] 10 ;# during inert annealings
pdbSet Diffuse [Link] -1 ;# during oxidation and silicidation
pdbSet Diffuse [Link] -1 ;# during epitaxy
where <number> is the fixed interval of time steps. For the first parameter
[Link], the default is 10 steps and, for the other two, the default is –1,
meaning it is off by default. After the specified number of steps is taken, the mesh is checked
to see if the refinement criteria are satisfied (within some tolerance); a remesh is performed if
necessary. Currently, the use of adaptive meshing during oxidation and epitaxy is possible.
The refinement criteria check is performed as follows: Axis-aligned edges are checked to see
if they satisfy:
actual < [Link] * error / maxerror (942)
where:
■ [Link] is a direction-dependent parameter of the PDB under Grid.
■ error is the error functions given in Eq. 933–Eq. 938.
■ maxerror is the maximum error parameter associated with each refinement type.
■ actual is the ‘actual’ edge length.
There is a cutoff percentage PDB parameter Grid [Link] that limits the percent
of edges that fail (Eq. 942) before a remesh is called. This check procedure is performed for
every Diffuse [Link] whether a remesh is called or not. You can omit
the refinement criteria check (which can be time-consuming for large meshes) and force a
remesh by setting:
pdbSet Grid [Link] 0
Table 67 summarizes the parameters available for adaptive meshing for diffusion.
Compute [Link] Number of diffusion steps before refinement criteria are checked to
decide if remeshing is required.
Compute [Link] To help with tailoring the mesh, files can be saved immediately before
adaptive remeshing occurs during diffusion. The files are named
<input_file_stub>_preregrid_###_fps.tdr
where <input_file_stub> would be, for example n1, if the
input file was n1_fps.cmd and ### is an increasing index starting
with 001.
Adaptive meshing during implantation differs from adaptive meshing for other process steps in
one key respect: When performing an implantation step, the implanted concentrations are
defined by analytic expressions instead of discretized field values. Therefore, the final values
for the implanted fields are not known before the remeshing step begins so they must be
computed as the mesh is refined.
By default, refinement on damage is handled differently from refinement on dopants. For the
analysis of damage, the gradient is usually uninteresting, but the location of the crystal–
amorphous interface is often critical. Therefore, refinement should be added to the mesh, not
according to the damage gradient, but rather according to whether the damage is near the
crystal–amorphous threshold. This is accomplished using an interval refinement (see Interval
Refinement on page 684). By default, the minimum and maximum values of the interval are set
22 –3
to the value of the crystal–amorphous threshold ( 1.15 × 10 cm ). The target length is
0.002 μm , and the target length scaling is 1.0.
NOTE The default target-length setting of 2 nm can produce many mesh points
for amorphizing implants in 3D. You should first try using a larger
setting and then reduce it if necessary.
As the mesh is constructed, each cell of the refinement tree is evaluated to determine whether
the refinement criteria are satisfied. The criteria for as-implanted fields are computed for each
edge of the cell. If any criterion is not satisfied, the cell is split and the as-implanted
concentrations are computed at the newly introduced points. This process continues until all
refinement criteria are satisfied (or the minimum edge length is reached) for all cells on the
refinement tree. Therefore, the constructed mesh satisfies the refinement criteria for all fields
present in the structure, not solely the implanted fields.
For adaptive meshing during MC implantation, the analytic module is used to compute
refinement, the mesh is formed, and afterwards, the implant profiles are computed with the MC
module.
The following list gives useful suggestions when using adaptive meshing:
■ When setting boxwise meshing criteria, remember that any global criteria you have
specified still apply inside the box. This means you cannot use boxwise meshing criteria to
establish less stringent meshing criteria (such as a larger relative error) inside a box because
the more stringent global criteria still apply. If you want to use different criteria for different
parts of the structure, set the global criteria to the least stringent criteria and use boxes for
more stringent criteria.
■ To switch on adaptive meshing and use all the defaults, all that is needed is pdbSet Grid
Adaptive 1. The main parameter for adjusting the amount of refinement is pdbSet
Grid AdaptiveField [Link], which defaults to 1.5. In many cases, this
does not refine sufficiently. Decreasing the value causes more refinement. The number of
mesh points is sensitive to this value, and it is not generally recommended to use a value
less than 0.25. This parameter generally meshes doping gradients well, but may leave the
peaks too coarse. To refine the peaks, the best criterion to use is maximum dose error (Grid
AdaptiveField [Link]).
■ To override the default refinement box used for field-based refinement (which covers the
whole structure and applies to all solution variables), you need only to create an adaptive
refinement box. To add criteria in addition to the default criteria, for example, to add finer
criteria under the gate while preserving standard parameters elsewhere, you can create your
own default refinement box. For example:
refinebox adaptive
refinebox min= {-0.01 -0.01} max= {0.15 0.05} adaptive [Link]=0.75
■ The default refinement setting for implant damage can give too fine a mesh. Increase
Grid AdaptiveField [Link] from the default value of 0.002 to
reduce refinement.
Default Refinement
In two dimensions, by default, interface refinement is applied to any interface in which one of
the neighboring bulk regions is of material Silicon, Polysilicon, or Oxide. In three
dimensions, by default, interface refinement is applied only to interfaces where one of the
neighboring bulk regions is Silicon. For other interfaces, the [Link] criterion
is not applied. To view currently defined refinement boxes (including default refinement
boxes), use:
refinebox print
This command specifies refinement at all interfaces to both <material1> and <material2>.
refinebox [Link]= {<material1> <material2>}
This command specifies interface refinement at all interfaces where one side of the interface is
<material1> and the other side is <material2>.
The interfaces that are refined are the union of [Link] (all interfaces
touching materials in the list) and [Link] (only refined on material pairs
found in the list first and second, third and fourth, and so on).
The default [Link] for all interface refinement boxes including the default ones
is taken from the pdb parameter Grid SnMesh [Link]. Similarly, the default
value of [Link] for all interface refinement boxes is taken from the pdb
parameter Grid SnMesh [Link].2d in two dimensions and from Grid
SnMesh [Link].3d in three dimensions.
To remove an existing interface refinement, first do refinebox clear, and then start again.
Examples
The next example shows refinement only at the silicon–oxide and polysilicon–oxide interfaces,
and specifies a local value for interface refinement parameters:
refinebox clear
refinebox [Link] = 0.005 [Link] = 3 \
[Link]= { Silicon Oxide PolySilicon Oxide }
For example:
[Link] name="refbox" [Link]="newRefBox" \
translate= { 0.1 0 0 } [Link]
creates a new refinement called newRefBox identical to refbox but displaced 0.1 μm in x.
Mesh Settings
The following tables list the parameters available for Sentaurus Mesh. To set the parameters in
Table 68, use:
pdbSet Grid SnMesh <Parameter name> <value>
DecimateBeforeImprint true Decimates the boundary before imprinting it with the axis-
aligned mesh.
DelaunayTolerance 1.0e-4 Specifies how close the ridges and boundary faces conform to
the Delaunay criterion.
DelPscAccuracy 1e-4 μm Specifies the accuracy used by the DelPSC algorithm when
approximating high-curvature areas. This parameter is used
during standard mesh generation (as opposed to using DelPSC
during oxidation).
EdgeProximity 0.05 Specifies the minimum ratio of the edges generated when an
edge is split.
FaceProximity 0.05 Specifies the minimum ratio of the faces generated when a
face is split.
ImprintCoplanarFacesOnly true Imprints the binary tree on the coplanar sets of faces. This is
useful to avoid over-refinement in curved areas.
ImprintCoplanarityAngle 179 degrees Angle used to decide when two faces are coplanar. If two
adjacent faces have an angle greater than this value, they will
be added to the set of faces to be imprinted with the binary
refinement tree cells.
MaxSolidAngle 360 degrees Specifies the maximum solid angle allowed in the elements of
the mesh (3D only).
SliverAngle 175 degrees Limits the maximum dihedral angle on one element when the
delaunizer performs the sliver removal step.
SliverDistance 1e-2 μm Limits the amount of “damage” done to the standard Voronoï
diagram by the sliver removal algorithm. Note that the grid
produced by the sliver removal algorithm is weighted
Delaunay, so the standard Voronoï diagram is “damaged”
unless the Voronoï weights are stored (see the
StoreDelaunayWeight parameter). When the box
method library reads those weights, it calculates the correct
Voronoï diagram and coefficients to solve the PDEs.
The following statement switches off the TS4 mesh library and specifies the use of the old
mesher:
pdbSet Grid UseTS4Mesh 0
The TS4 mesh library deposits the native oxide layer before oxidation by default. Since it
removes all grids inside a gas region, the simulation performance is improved without any loss
of accuracy. To use the MGOALS native layer in two dimensions, instead of the TS4 mesh
library, use the command:
pdbSet Grid UseTS4Native 0
For silicidation, a gas mesh is used by default. The following statement forces the use of the
TS4-style gas mesh instead of the default gas mesh:
pdbSet Grid UseTS4GasMesh 1
It optimizes the speed performance by merging the grid subtraction and addition
procedures.
■ DoSubAfterStep <0|1> (default: 0)
Grid subtraction is performed after each diffusion step, while grid addition is performed
after each mechanics step followed by the diffusion step. Switching on this flag forces only
one diffusion step per each mechanics step. When this flag is switched on,
MergeSubAndAdd is ignored.
■ SubTimeFactor <double> (default: 1.5)
The time step given by mechanics for grid removal is scaled by SubTimeFactor.
The nodes on an interface mesh must be rebuilt after meshing on the moving boundary
since the bulk meshes along the interface can be added or removed. Instead of destroying
and rebuilding the interface mesh, the TS4 mesh library tries to reuse the original node data
on the interface mesh to minimize the interpolation error. The original nodes are detected
when the location difference is less than MinSpaceOnInterface.
On the growing material side of the interface, the triangular mesh elements expand. To
maintain solution accuracy in the material (for example, calculating the diffusion of
oxidant in the oxide), you must add nodes to the growing material. The addition of nodes
The grid control algorithms and parameters apply to the entire structure. To avoid adding a
very fine grid in field regions when growing gate oxides, an option allows the grid spacing
to vary with the oxide growth rate. When LocalGridSpace is switched on, the grid
spacing to be used at each point in the growing material is:
h = (vmax/v) [Link]
where v is the growth rate at a point in the structure, and vmax is the maximum growth rate
at all interfaces of the same type in the structure. LocalGridSpace is switched on by
default.
■ OrderFlatTri <0|1> (default: 1)
When the area of a shrinking triangle becomes less than 1e-15 (cm2) after a time step, the
triangle is removed. When the shrinking triangle to be removed is located at a material
interface and the removal of the triangle will result in a bad mesh, the material type of the
shrinking triangle is replaced with the type of the growing neighbor material, instead of
removing it. When those triangles are adjacent to each other, the reordering algorithm for
the replacements smooths the interface shape after conversion.
■ MinAreaRemovalRatio <double> (default: 10.0)
When a region has only one triangle surrounded by neighbors of different materials and its
area is less than MinAreaRemovalRatio multiplied by 1e-15 (cm2), the material type of
the triangle is replaced with the neighbor material that shares the longest edge with the
triangle.
■ [Link] <double> (default: 1e-8 [cm])
When multiple regions with the same material meet at one point, the point is split by
inserting new elements. The parameter determines the minimum split distance.
The computed velocities are compared against MinimumVelocity and, if the computed
velocity is greater than MinimumVelocity, the displacements are computed and applied. The
MinimumVelocity is set with the command:
pdbSetDouble Silicon Grid MinimumVelocity <n>
Grid Spacing
Grid spacing in the growing region is controlled by [Link]. The value is in units of
centimeter, and the edges in growing regions are checked to see whether they are nearly
perpendicular to the interface.
If they are perpendicular, they are split if their length exceeds the [Link] number.
This value is set with the command:
pdbSet Oxide Grid [Link] 2e-7 ;# unit is cm
Grid Cleanup
During oxidation or silicidation, the growing region increases at the expense of a shrinking
region. The shrinking regions then have a problem of small edges. Below a certain value, these
edges must be removed entirely, and the mesh around them must be adjusted.
The short edge criterion is specified by the [Link] parameter, which is specified in
centimeters and is set as follows:
pdbSet Silicon Grid [Link] 3e-8
NOTE Due to mesh quality constraints, this number must be kept above a value
–8
of 2 × 10 cm .
In the new growing region, new nodes are introduced and the data is interpolated from the
nearby nodes; if growth is too fast, significant interpolation errors could occur.
The rate of growth can be controlled by the parameters dThickness and IncreaseRatio.
The dThickness parameter (specified in micrometers) defines the maximum-allowed
oxidation front displacement per time step and is set as follows:
pdbSet Diffuse dThickness 0.001
The IncreaseRatio parameter is the factor by which the time integration step is allowed to
grow.
Miscellaneous Tricks
Since Sentaurus Process oxidation does not allow the interface to traverse more than one
element thickness at a time, speed can be achieved by having elements with longer edge lengths
near the interface. This can be controlled by refinement boxes or the pdb parameter
Grid SnMesh [Link]. Large structures, like those used in power devices, may
need [Link] of 0.01 μm , while submicron CMOS devices need 8 Å .
The mesh away from the interface is unrefined based on the pdb parameter
Grid SnMesh [Link].3d. If the mesh is not unrefining fast enough, this
number can be increased.
In large structures, the interface fidelity may not need to be as tight as that of 45-nm or 32-nm
gate transistors. The MGOALS accuracy parameter can be increased to 1 Å , which will
cause MGOALS to clean up interfaces of small (sub– 1 Å ) features and ensure smooth long
edges that speed up oxidation.
These are options available to the process engineer; however, care must be exercised in varying
these parameters since they may affect the final structure significantly.
Before each diffusion time-step, the mesh is checked for the maximum possible time step until
the first tetrahedron element collapses (becomes flat). If necessary, the time step is reduced. In
the diffusion simulation, all mesh points are moved using the velocity and the time step. The
mesh topology is not changed during the diffusion time step. At the end of the diffusion time
step, a face-swapping algorithm is used to improve the mesh quality and to remove flat
elements. After face-swapping, the mesh is checked for any remaining flat elements and any
elements that have short edges, poor shapes, or small volumes. An attempt is made to remove
these elements, followed by a face-flipping to improve the element quality allowing for the next
time step to be sufficiently large.
This removal of local elements is a difficult task, which does not always succeed and frequently
leads to bad elements surviving and enforcing small time steps. If this grid-limited time step
becomes too small, a 3D Delaunay meshing algorithm is used in an attempt to construct a mesh
for the given geometry and the set of bulk points that do not belong to any ‘flat’ elements.
NOTE If the delaunizer fails to construct a new mesh, a limited set of small
time steps is allowed in an attempt to recover a reasonable size time step.
If this does not succeed, the simulation is stopped with an error
message.
MovingMesh
This section describes an experimental feature that can be used for 3D oxidation. This feature
called MovingMesh is activated with the following command before the diffuse command:
pdbSet Grid [Link] 1 ;# switched on by default
The [Link] parameter specifies the distance that the oxide interface can move
before new mesh points are inserted in the oxide. The unit is in centimeter.
The [Link] parameter specifies the shortest distance the mesh vertices are allowed
from the oxide interface. Shorter than this distance, the vertices will be removed. Do not
specify a distance larger than the minimum oxide thickness. For a typical example with 1.5 nm
native layer, [Link] of 1.0 nm or less is appropriate. The unit is in centimeter.
The oxide interface can develop problematic geometric features like knife edges, noisy
surfaces, or extremely thin gaps. You can enable geometry repair and surface remeshing by
using:
pdbSet Grid MovingMesh [Link] 1 ;# switched on by default
The criteria to trigger geometry repair are based on the minimum dihedral angle and the
maximum face angle:
pdbSet Grid MovingMesh [Link] 5 ;# degree
pdbSet Grid MovingMesh [Link] 175 ;# degree
If the minimum dihedral angle between two triangles is below the threshold or the maximum
face angle of a triangle is above the threshold, the geometry repair procedure starts.
The geometry repair procedure involves a multimaterial level-set (MLS) formulation. The
resolution of the level-set cell size is controlled by:
pdbSet Grid MovingMesh [Link] 0.001 ;# micrometer
The boundary representation (brep) of the new geometry must go through a meshing algorithm
for curved surfaces called the Delaunay refinement for piecewise smooth complex (DelPSC)
that improves the quality of triangles on brep surfaces. This algorithm is enabled by:
pdbSet Grid MovingMesh [Link] 1 ;# switched on by default
DelPSC performs adaptive sampling on ridges (1D geometric feature) according to the
refinement fields, the curvatures of the ridges, and the proximity among the ridges. On each
surface patch (2D geometric feature), DelPSC performs adaptive sampling according to the
refinement fields and the curvatures of the surface.
The above parameter ensures no ridge edge will be longer than the specification. It is useful,
for example, when you have a straight line (no curvature) next to curved surfaces. You want the
sampling points on the straight line to be fine enough to support the adjacent curved surfaces.
To control accuracy in high curvature areas, you can specify the acceptable distance between
the old and new curved surfaces by using:
pdbSet Grid MovingMesh [Link] 0.0001 ;# micrometer
MovingMesh has facilities for troubleshooting run-time failures. A typical setting would be:
# Switch on level-1 diagnostics
pdbSetDouble debugLevel MovingMesh 1 ;# switched off by default
# Save intermediate result every 100 time steps
pdbSetDouble Grid MovingMesh [Link] 100 ;# switched off by default
# Save diagnostic files for [Link] and DelPSC
pdbSetDouble Grid MovingMesh [Link] 1
;# switched off by default
In level-1 diagnostics, the intermediate result will be saved after a certain number of time steps
in the files:
<NodeName>_MovingMeshGridTimeStep<xxxx>.tdr
The frequency of saving is specified by the [Link] parameter. The files are written
after mechanics and before diffusion to analyze the grid-limited time step.
In the event of failure in [Link], the level-1 diagnostics will save files with names
such as:
<NodeName>_remeshBrep{In,MLS,PSC,Out}.tdr
<NodeName>_applyBrepDelPSC{In,Out}.tdr
They are useful for checking whether the resolution parameters are adequate. The most likely
cause of failure is a too coarse resolution to capture thin oxide layers and other small geometric
features.
will be saved every time the repair geometry operation is triggered. These files are useful to
monitor how the MLS and DelPSC algorithms perform at various points in a simulation.
By carefully placing lines, you can isolate areas of the structure that changed (because of
etching, deposition, and so on) from those that do not (such as bulk silicon). In this way, the
mesh in areas that do not change will have the least amount of change, the least interpolation,
and the most accurate results. Even the mesh in regions that do change will have a similar
starting point and should also have minimal mesh-point movement coming from remeshing.
Lines for Sentaurus Process Kinetic Monte Carlo are stored separately from the lines used with
continuum solvers (in other words, Sentaurus Mesh meshes). By default, line commands are
applied to both KMC and continuum meshes. Use the parameter !kmc or !mgoals to not
apply a particular line command. For example, for a line command to apply only to
continuum, use line !kmc.
In the simplest case, all the line commands are specified before the init command, and they
are saved and reused every time a remesh is performed. However, there are other cases
described in the following sections that allow this feature to be more powerful.
All the line commands are specified before the init command, and they are saved and
reused every time a remesh is performed. However, there are other cases described in the
following sections that allow this feature to be more powerful.
After a particular direction or dimension is expanded, it is only possible to insert one tick at a
time in that direction using the line command (in other words, the spacing parameter is
thereafter ignored). For example, this could be because you identified the amorphous–
crystalline interface in silicon.
For more information about the operating dimension, see Automatic Dimension Control on
page 72.
In this case, the line command ignores the spacing parameter and tries to insert only one
tick as long as that tick (line) is not too close to an existing tick.
Inside the init command, the line commands are expanded into ticks using the spacing
specifications for the dimension as they are needed. When additional line commands are
given for dimensions where the ticks have already been expanded, the spacing parameter is
ignored and one additional tick is added as long as it is not too close to an existing tick.
In this case, the line command is considered in its entirety, and the spacing parameter is
used. All the intermediate lines are included in the list of ticks kept.
You can create more than one structure using line, region and init commands in one
command file when using the UseLines feature. To ensure lines from the first structure are
not inserted into subsequent structures, it is important to issue line clear before starting the
definition of a new structure. For example:
#####################################################
line x loc=0 spacing=0.001
line x loc=1 spacing=0.1
line y loc=0
line y loc=1
region silicon
init !DelayFullD
grid remesh
####################################################
# the lines from above are removed
# to start a new structure
line clear
line x loc=0
line x loc=1
line y loc=0
line y loc=1
region silicon
init !DelayFullD
grid remesh
# grid remesh gives 44 nodes
LogFile [grid qual nodes]
In the reflected region, the ticks are created after applying lateral inversion along the
appropriate plane.
On applying stretch at a given coordinate in a given direction, the existing ticks in the
stretched area are translated by the amount of the stretch. You must insert lines in the stretched
area appropriately.
When applying rotate, the ticks also are rotated and properly transferred between x-ticks, y-
ticks and z-ticks.
Examples
line y loc=0.023
grid remesh
deposit poly thickness=0.18 iso
mask name=m1 left=-0.1 right=0.025
etch aniso thickness=0.2 poly mask=m1
struct tdr=linetest
Use the following example to show clearing lines and to prepare for another structure definition
within the same command file:
line x loc=0 tag=a spa=0.125
line x loc=1 tag=b spa=0.125
line y loc=0 tag=c spa=0.125
line y loc=1 tag=d spa=0.125
region silicon xlo=a xhi=b ylo=c yhi=d
init
grid FullD
line clear
line x loc=0 tag=a spa=0.125
line x loc=1 tag=b spa=0.125
line y loc=0 tag=c spa=0.125
line y loc=1 tag=d spa=0.125
region silicon xlo=a xhi=b ylo=c yhi=d
init
line y loc=0.3 spa=0.01
grid FullD
Data Interpolation
Sentaurus Process stores a copy of the mesh with all its data before performing any geometry-
changing operation. This is the reference mesh used to interpolate data onto the new mesh. In
3D, a mesh is generated only when it is necessary, so you can have multiple etch, deposit,
photo, and strip commands without the need to remesh in between. When a new mesh is
required, data is interpolated from the stored mesh and data.
Data interpolation is performed material-wise. This is important because some nodal data can
be discontinuous at material interfaces; for example, segregation causes a jump in
concentration at the silicon–oxide interface. In addition, the precise location of an interface can
Data also can be interpolated from materials that are Like materials (that is, the material in the
old mesh is Like the material in the new mesh, or the material in the new mesh is Like the
material in the old mesh). When interpolating data at an interface, the preference is to use data
from the same region, then data from the same material, and finally data from Like materials.
If no match is found, then 0 is set for all data at that point.
For data defined on elements, the overlap of elements from the old mesh to the new mesh is
used for weighting. Similar to nodal data, interpolation of elements near interfaces uses the
region, material, and Like material preference order.
Troubleshooting
Sometimes, the mesh generation step fails and it is not clear what the problem may be. The
following are recommendations of where to look when problems arise during meshing:
■ Set InfoDefault to 2 or higher, for example:
pdbSet InfoDefault 2
■ When Sentaurus Mesh prints the message:
"Short edge 1e-8 around points (x1, y1, z1) (x2, y2, z2)"
look at the input structure around the coordinates (x1, y1, z1) or (x2, y2, z2), and
check whether there is a singularity in that area (a crack, fold, surface overlap, and so on).
Sometimes, these singularities are the product of an etching or a deposition step, and action
can be taken to improve the quality of the structure.
■ Check the quality of the boundary printed for the steps preceding the mesh generation
process. In particular, the following line provides an indication of quality (this is output if
InfoDefault is 2 or higher):
minDihedralAngle: <angle> [near (x1, y1, z1),(x2, y2, z2)] at
region=Nitride_1.
If you see an angle of less than 3° in the geometry, this may indicate a problem in the
structure at the given coordinates. The recommendation is then to look at the preceding
process steps in Tecplot SV, and to see whether they can be modified to avoid creating the
problem.
To visualize the problem area in Tecplot SV, you can create a rectangular zone that can be
used as a marker to identify the problem. Select Data > Create Zone > Rectangular, and
input a box where one of the corners is a coordinate reported by Sentaurus Mesh as
problematic. The second corner of the box must be calculated manually to give a box large
enough to be seen in the visualization window. Then, hide all materials except the box that
you created. Magnify the rectangular zone, and display the material that was reported in
the minDihedralAngle message. Now, you should see the artifact. Sometimes, you need
to rotate the structure around the rectangular box to see what is happening to the geometry.
■ In addition to this, you may need to add !repair to the etch or deposit command. This
prevents the structure from being repaired and makes it easier to spot the problem in
Tecplot SV.
■ It is recommended to frequently save snapshots of the boundary file of the structure,
especially before all mesh generation operations. This will help you to investigate possible
problems in the input to the mesh generator. To accomplish this, use the command:
struct [Link]=fileName
Overview
To perform etching and deposition using Sentaurus Process, seamless interfaces to the
following modules have been created:
■ MGOALS (1D, 2D, and 3D)
■ Sentaurus Structure Editor (3D only)
■ Sentaurus Topography and Sentaurus Topography 3D (limited availability)
By default, all operations are performed by the MGOALS library. This is the preferred method
for performing geometric etching and deposition because of its robust and flexible algorithms.
The etching and deposition operations are always simulated using geometric shapes or simple
mathematical formulations; no physical processes are simulated. For a description of the
MGOALS interface, see MGOALS Interface on page 754.
Sentaurus Structure Editor is also available in 3D to perform basic and most common
geometry-modeling process steps. For a description of the Sentaurus Structure Editor interface,
see Sentaurus Structure Editor Interface on page 767.
For physical etch and deposition, Sentaurus Process provides an interface to Sentaurus
Topography and Sentaurus Topography 3D. For a description of the interfaces, see Sentaurus
Topography Interface on page 770.
Functionality
Sentaurus Process provides a number of etching and deposition operations, in addition to
purely geometric operations to help shape the geometry of the devices.
Etching
The following types of etching are supported (see Etching on page 711 for more details):
■ Isotropic ■ Fourier
■ Anisotropic ■ Crystallographic
■ Directional ■ Chemical-mechanical polishing (CMP)
■ Polygonal ■ Piecewise linear
■ Trapezoidal
Deposition
The following types of deposition are supported (see Deposition on page 729 for more details):
■ Isotropic ■ Fill
■ Anisotropic ■ Fourier
■ Directional ■ Crystallographic
■ Polygonal
Masks offer an effect (similar to a masking layer) to limit the etch or deposition process to a
certain window or to provide a convenient way to mimic lithographic patterning (see The mask
and photo Commands on page 741).
You also can create and insert polygons and polyhedra, or read an existing 3D structure from a
file (see Inserting Polygons in Two Dimensions on page 762 and Inserting Polyhedra in Three
Dimensions on page 762).
The shape library provides commands for generating some special shapes in Sentaurus Process
(see Shape Library on page 735).
Etching
The types of available etching are:
NOTE To remove materials exposed to the top gas, use the strip command
instead of the etch command. The strip command is used
specifically for this purpose. It is more straightforward, less prone to
user error, and more robust in delivering the expected results:
strip Photoresist
Each etch type requires the setting of parameters particular to that etch type. Many options are
available and certain options are available only with certain etch types. Table 69 summarizes
the syntax options for each etch type.
Table 69 Options for etch and deposit command syntax (E=etching, D=deposition)
[Link]
Area Parameter name
anisotropic
directional
trapezoidal
isotropic
polygon
fourier
crystal
cmp
rate ED ED ED E
[Link] E
coeffs ED
[Link] E
Rate
[Link] ED
time ED ED ED ED ED E E
thickness ED ED ED E
etchstop E E E E E E
Stop criteria
coord E
[Link] E E E E E E
[Link] E E
polygon ED
angle E
undercut Ea
[Link] Eb
[Link] Eb
ED
Shape
direction
[Link] Ec
sources ED E
shadowing EcD ED ED E
Beam
[Link] ED
ast ED ED ED E ED ED ED E
Mesh
Adaptive ED ED ED E ED ED ED E
[Link] E E E
[Link] ED E ED EdDd EdDd E
Mode
1D ED
a. In 2D when not using [Link].
b. In 3D when not using [Link].
c. When used in conjunction with [Link].
d. Full level-set is the default scheme for Fourier and crystallographic.
To specify the etch type, the parameter type is used. For some etch types, one of the following
keywords can be used instead as a shorthand for specifying type: isotropic,
anisotropic, trapezoidal, or cmp. The amount to be etched is specified as either
thickness (by specifying rate and time) or an etchstop material with etchstop.
Etch types have been implemented in Sentaurus Process using three different methods
(analytic, fast level-set, and general time-stepping level-set), which are described in MGOALS
Interface on page 754.
These methods may require different inputs to perform the steps and may take different effects
into account. The method is selected depending on the specified parameters and the structure
to be etched.
NOTE Although these methods are fast and can handle most simple etching
tasks, they do not consider shadowing or visibility effects, and they
cannot etch more than one material at a time.
The general time-stepping level-set method is chosen if you specify any rate versus angle-type
etching (Fourier or crystallographic), or if you choose to etch different materials at different
rates, or if the parameter [Link] is specified. In addition, the general time-
stepping level-set method can handle multiple etching beams and, optionally, shadowing.
The general time-stepping level-set scheme used in Sentaurus Process has the same limitations
as all level-set methods:
■ Sharp corners in the evolving front are rounded.
■ Small front movement requires a fine level-set mesh, resulting in large memory use and
long simulation times.
■ The accuracy is limited by the size of the level-set mesh.
Besides the etching type, the materials to be etched and the amount of material to etch must be
specified. The amount of material to be etched can be specified in three ways:
■ Thickness
■ Rate and time
■ Using an etch stop
The etch rate may be specified using etch beams that are created in the beam command. Beams
can be used only with the Fourier etch type. If an etch stop is specified, the etching stops as
soon as the specified material is exposed to gas.
In addition, a mask specification can be given for all etch types, except CMP, trapezoidal, and
polygonal to limit the areas where material is removed.
Etching Tips
Isotropic etching removes material at the same rate in all directions. You can specify more than
one material to be etched isotropically, in which case, the generalized level-set boundary
movement module is invoked.
When isotropic etching uses the level-set method (either fast or general time-stepping), the
final surface is obtained by solving a differential equation on a discrete mesh.
NOTE To control errors in the fast level-set method, use the resolution
parameter in the mgoals command. For the general etch method, use
either resolution or the dx and dy parameters of the mgoals
command.
Anisotropic etching is designed primarily to work with masks or masking layers. It also is
frequently used to create spacers. Anisotropic etching etches material away in a direction that
is purely vertically downwards. It works well with structures such as those shown in
Figure 101.
Anisotropic etching can take more than one material if the same rate is specified for all etched
materials. This can be useful to create multiple spacers since it does not produce small gaps
which are hard to avoid when etching one spacer at a time. If you want to use different rates for
each material then a better alternative can be Fourier etching.
If anisotropic etching is performed to etch the shaded region in the structure shown in
Figure 102, instabilities can arise. The resulting structure can be very different depending on
the numeric roundoff errors.
Figure 102 For this structure, anisotropic etching would not be stable
Anisotropic operations are sensitive to numeric noise at vertical or nearly vertical walls.
If the etch command is supposed to remove the entire layer, care must be taken to overetch by
a small amount to prevent thin regions remaining due to numeric roundoff error.
NOTE It is more robust and better to use the strip command to remove all
exposed layers of a certain material.
The directional etching method is similar to the anisotropic method. In this case, the specified
etching rate is applied in the direction of the etching beam. Visibility effects are not considered.
The etching window is determined from user-defined masks and from the exposed areas of the
etched material (see Figure 103 on page 717).
For example:
etch silicon thickness = 0.05 type=anisotropic
In the next example, directional etching is demonstrated. The parameter direction sets the
direction of the etching beam by setting values for {x y z}. This direction vector is normalized
to 1.0 before being used by the etching module.
etch material=silicon rate = 0.05 time=1.0 type=directional direction = {1 1}
Polygonal etching provides a way of modifying a region without having to define etching rates
or the direction of the etch. The specified polygon is used to intersect the mesh elements. The
elements inside the polygon are replaced by gas.
CMP is handled as a special case of polygonal etching. Mesh elements are intersected at the
specified coordinate. All elements of the specified material above the coordinate are reassigned
to gas.
etch type=cmp coord = 0.05 material=all
In Fourier etching, the etching rate is a function of the angle between the incident etching beam
and the normal vector of the surface being etched. This allows for reasonably directional
etching with control of the slope of sidewalls. The coefficients A n are defined using coeffs
(for a single-material etch) or [Link] (for a multimaterial etch), and the etching rate is
computed according to:
m n
where:
■ θ i is the angle between the incident beam i and the normal to the surface being etched.
■ factor i is the factor given in the beam command for beam i .
Any number of coefficients A j can be given for each material. If the parameters A j are chosen
such that negative etch rates would result in some slope angles, no etching will occur on the
parts of the surface that have that slope. It is common to set the parameters A j such that the
etch rate for angles less than a certain angle are positive and drop below zero (resulting in no
etching) above that angle. This produces a trench with a rounded bottom and a sidewall given
by the angle where the etch rate drops to zero.
Fourier etching uses the full level-set model formulated after Lax–Friedrichs. This formulation
shows good stability, leading to good accuracy of etching wall-angle control. The Lax–
Friedrichs formulation results in slightly less corner sharpness.
Etching Beams
The beam command is used to define the direction and relative strength of etching beams to be
used with Fourier etching. The syntax is:
beam name=<beam_name> incidence=<angle> | direction= {<x> <y> <z>}
factor=<relative_strength>
The angle of incidence of each beam is specified either by the incidence parameter in the
beam command (incidence=0 defines a vertical beam), or by a direction vector, which is
normalized automatically to unit length. To be clear, the angle θ i in Eq. 943 is measured from
the surface perpendicular to the angle of incidence for beam i . The relative strength factor
is used to mix the strength of different beams. Each etching beam must be given a unique name.
Etching beams are assumed to be collimated, that is, a slight angular spread of beam direction
is not considered.
The parameter sources of the etch command specifies the list of names of etching beams to
be used in an etch operation.
Through the selection of Fourier coefficients, the angle of the etching wall can be controlled to
a large degree. In particular, the first coefficient in the list, A 0 , corresponds to the equivalent
of the rate of isotropic etching. The second coefficient in the list, A 1 , corresponds
approximately to the equivalent of the rate of anisotropic or directional etching. The
approximate formula for determining the etch wall angle is given as:
–A0
ϕ ≈ cos– 1 --------- (944)
A1
where ϕ is the angle of the etch wall measured from the horizontal plane. For example, the
choice of A 0 = – 0.5 and A 1 = 0.7071 results in an etch wall at an angle of approximately
45° from the horizontal as shown in Figure 109 on page 721:
beam name=src1 direction= {0.1 0 0} factor=1
mgoals [Link]= 0.05 resolution= 0.05
etch material= {silicon} type=fourier sources= {src1} coeffs= {-0.5 0.7071} \
time=1.0.
Another Fourier etching example shows the functionality in 3D and how multiple rates for
multiple materials are specified using [Link]. For 3D Fourier etching, also use the
command sde off.
Etching coefficients chosen for this example are illustrative and may not be physically
meaningful:
beam name=src1 direction= {1 0 0} factor=1
mgoals dx=0.1 dy=0.1 dz=0.1
sde off
etch info=10 sources= {src1} [Link]= { Silicon= {-1 2} \
Nitride= {-0.7 1.2} Oxide= {0.01} PolySilicon= {-0.05 0.2} } type=fourier \
remesh=false time=1
Figure 110 Three-dimensional multimaterial Fourier etching example before etching (left)
before etching and (right) after etching
Be aware that even when this parameter is specified, the 0th-order Fourier coefficient A 0
should continue to etch areas where the beam is shadowed. This permits a pseudo-isotropic
etching that is independent of shadowing, while at the same time the full Fourier etching occurs
only in areas where the beam is not shadowed.
Interpolation of the rate at a given point along the etch front is calculated as a linear
combination of the <100>, <110>, and <111> rates weighted by the component of the etch
front normal vector along the corresponding crystallographic direction.
NOTE You must add a space between the double quotation mark (") after the
orientation and the equal sign.
The trapezoidal model uses the following parameters to specify the shape of the region to be
removed:
■ thickness specifies the vertical depth (or a combination of rate and time).
■ angle specifies the angle (in degrees) of the resulting sidewalls.
■ undercut specifies the horizontal penetration of the etch under the edges of the masking
layer. It only works in two dimensions.
■ [Link] and [Link] specify the angle and thickness of the sidewalls
for a second etching after thickness and angle are already etched (3D only).
These parameters can be used to approximate a number of real etching processes including:
■ Combinations of vertical and isotropic etches.
■ V-groove etches.
■ Etches that produce retrograde sidewall profiles.
Trapezoidal 2D Etching
3. Where overhangs of etchable material are present at the end of Step 2, a vertical upwards
etch (that is, in the direction) is performed. On surfaces that were exposed at the start of
Step 2, this etch is to a distance undercut. On surfaces that were first exposed during the
course of Step 2, the distance of this etch is reduced in proportion to the time from the start
of Step 2. This step approximates the undercutting of the mask due to the isotropic
component of the etch.
When the thickness, angle, and undercut parameters satisfy the relationship:
thickness = undercut ⋅ tan ( angle ) (945)
the etch approximates a vertical etch with an isotropic component. This is the case whenever
two or fewer of the parameters thickness, angle, and undercut are specified with the
option [Link] set to 1 (default is 0):
pdbSet Grid [Link] 1
etch material=silicon type=trapezoidal thickness=0.25 undercut=0.1
-0.5
0
Y [µm]
0.5
1
0 0.5 1 1.5 2
X [µm]
The left half of Figure 112 on page 724 shows the result when etching a planar substrate. The
etch region is a trapezoid of depth thickness, extending a distance undercut beneath the
mask edge, and with a sidewall slope of angle degrees. The right half of Figure 112 shows the
result when etching a nonplanar surface.
Step 1 of the sequence etches the exposed surface vertically to a depth of thickness
micrometers. Step 2 etches the resulting sidewall in the horizontal direction, producing an
undercutting of the mask and the sloped sidewall. In this case, Step 3 also has an effect, etching
upwards from the undercut region. Therefore, the hook in the final silicon profile is the result
of approximating the isotropic component of the etch. In every case, the intersection between
the bottom of the etch region and the sidewall occurs directly under the edge of the mask.
Figure 113 and Figure 114 show what happens when Eq. 945 is not satisfied.
etch material=silicon type=trapezoidal thickness=0.3 undercut=0.1 angle=45
-0.5
0
Y [µm]
0.5
1
0 0.5 1 1.5 2
X [µm]
0
Y [µm]
0.5
1
0 0.5 1 1.5 2
X [µm]
In Figure 113, you have thickness/undercut < tan(angle). In this case, the sloped sidewall
of the etch extends out under the opening in the mask. The intersection between the bottom of
the etch region and the sidewall is no longer directly beneath the edge of the mask. If the mask
opening is narrow enough, the bottom of the etch region disappears entirely, resulting in a V-
groove etch. To produce this etch shape, Step 1 of the etch process is modified to reduce the
depth of the vertical etch near the edges of the mask opening. Note that, in this situation, even
the smallest amount of nonetchable material can produce a triangular mound of unetched
material in the final structure.
Figure 114 on page 725 shows the case with an angle greater than 90° . In this case, the bottom
of the etched region is wider than the opening in the masking layer, producing overhanging
sidewalls. This etch is accomplished by modifying Step 2 of the procedure to etch further
horizontally at the bottom of the sidewalls formed by Step 1 than at the top. The apparent etch
depth of 0.5 μm at the right side of the mask opening is the result of a 0.3 μm vertical etch
of the original sloped surface (Step 1) followed by a 0.4 μm horizontal etch of the sloped
“bottom wall” that results from Step 1.
Trapezoidal 3D Etching
NOTE For 3D trapezoidal etching to succeed, the initial etching surface must
be more or less flat.
Figure 115 Trapezoidal 3D etching: (left) angle=45 thickness=0.3 and (right) angle = 110,
thickness=0.44
Figure 116 Trapezoidal 3D etching produced with the options angle=110 thickness=0.3
[Link]=45 [Link]=0.400
While Fourier etching and trapezoidal etching also define the etch rate according to the angle
between the beam direction and the surface normal, a piecewise linear function is a more
general parameterization of etch rate versus angle that users control directly.
Etching Beams
The beam command defines the direction and relative strength of etching beams to be used with
piecewise linear etching (see Etching Beams on page 719).
The parameter sources of the etch command specifies the list of names of etching beams to
be used in an etching operation.
-0.2
Y [µm]
0.2
0 0.5 1
X [µm]
The piecewise linear function must be defined by users as smoothly as possible, avoiding
discontinuous changes, to ensure well-defined level-set results.
Deposition
To specify the deposition type, use either the parameter type or one of the parameters
anisotropic, isotropic, fill, or fourier. To specify the thickness of the deposited
layer for isotropic and anisotropic deposition, use either the parameter thickness, or the
rate and time parameters. Besides the deposition type and thickness, you must specify the
material to be deposited (only one material is allowed per deposit command). To do this,
specify the material name in the command or the parameter material=<material_name>.
The number of steps for a deposition is specified as steps=<n>. The specified time or
thickness is subdivided accordingly. Subdividing a deposition into several steps might be
useful if stresses are initialized in the deposited layer. A stressed film of a given thickness can
be deposited at the same time or in several steps. Sentaurus Process simulates stress
rebalancing after each deposition step. Multistep deposition is known to generate more realistic
stress profiles compared to depositing the entire layer and then performing one stress
rebalancing calculation.
By default, the material is deposited on the surface exposed to the upper gas region. If the
structure has buried gas bubbles, they will be left untouched. To deposit inside those gas
bubbles specify the [Link] parameter in the deposit command.
Mask Naming
The name of a mask also can be specified in the deposit command. In this case, the material
is deposited outside the specified mask. Deposition inside a mask requires the mask to be
inverted by specifying the parameter negative in the mask command defining the mask (see
Photoresist Masks on page 744).
For deposition, the analytic method, the fast level-set method, and the full level-set method are
available. In 2D, the analytic method is the preferred method for performing deposition, and
the level-set method is used when the analytic method is not possible because a front collision
is detected. In 3D, the analytic method is used for anisotropic deposition, the fast level-set
method is used for isotropic deposition, and the full level-set method is used for Fourier
deposition.
In the newly deposited region, constant field values can be initialized. For isotropic deposition,
you can define piecewise linear solution fields as a function of the distance from the original
surface.
For simple conforming deposition, the boundary is offset an equal distance in all directions.
Crystallographic deposition takes advantage of the full level-set method to grow single
materials whose rate of growth is determined by the crystallographic directions. The crystal is
assumed to be cubic regardless of the material being deposited. Deposition rates can be set for
the <100>, <110>, and <111> directions. These rates will be applied to their respective
equivalent directions based on cubic symmetry, for example, the <100> rate will apply to the
<010>, <001>, <-100>, <0-10>, and <00-1> directions.
Figure 121 Crystallographic deposition (vertical direction is <100>, lateral direction is <011>)
Crystallographic deposition also can be simulated using an atomistic technique (see Epitaxial
Deposition on page 507).
For Fourier deposition, first, define the deposition beam in the same way as in Fourier etching:
beam name=<beam_name> incidence=<angle> | direction= {<x> <y> <z>}
factor=<relative_strength>
Use the sources and coeffs parameters in the same way as in Fourier etching, shown in the
following Fourier deposition example:
beam name=src1 direction= {1 0 0} factor=1
deposit nitride time=0.2 fourier sources= {src1} coeffs= { -0.3 0.7 }
The coeffs parameter has units of μm/minute and, by default, time is given in units of
minutes. To use Fourier deposition in 3D, additionally use the following command to override
the default Sentaurus Structure Editor deposit method:
sde off
0.5
Y [µm]
0 0.5 1 1.5 2
X [µm]
Selective Deposition
Selective deposition is optionally available. Using the [Link] parameter,
you can select one or more materials to seed growth of the overlayer. When using 2D or 3D
MGOALS, multiple [Link] can be specified. In 3D SDE mode, only one
material can be specified in the [Link] list. Selective deposition can be used
with isotropic, anisotropic, or Fourier deposition types.
For isotropic deposition, piecewise linear fields can be specified in the deposited layer. A
doping command must be used for each field; each doping command must assign a unique
name. A list of names of the doping is then specified in the parameter doping of the deposit
command as a string array:
doping name=strainGe field=Germanium depths= {0 0.1} values= {1e22 1e22}
deposit material= oxide doping= {strainGe} type= isotropic \
thickness=0.1
These commands create a linear germanium field in the newly deposited oxide layer. Depth 0
corresponds to the initial surface (the bottom of the new layer).
Constant field values can be defined for all types of deposition as follows:
deposit material= oxide type= isotropic thickness=0.1 \
[Link]= {Vacancy=1e10 Germanium=2e22}
NOTE To create layers with intrinsic stress, use the field names StressELXX,
StressELXY, StressELYY, StressELZZ, StressELYZ, and
StressELXZ. It is not necessary to specify all components of stress.
Those that are not specified are assumed to be initially at zero. If stresses
are added in this way, they will be rebalanced after the deposition is
completed. The actual value of the stress may differ from the value that
was deposited.
Constant concentrations can be defined for known solution fields (known solution fields must
have been defined before the deposit command, either in the [Link] file or the
command file of the user) as:
deposit material= {oxide} type= isotropic thickness= 0.1 Vacancy \
concentration=1e10
Stress Handling
In addition to optionally including an automatic ramp-up or ramp-down before etching and
deposition, by default, Sentaurus Process automatically rebalances the stresses after etching
and deposition. This updates the stress fields at the temperature of the etch or deposit step based
on the new geometry.
For the best stress results, it is necessary to control the temperature history. This includes
thermal ramp-up to process temperature, back to room temperature, and similarly ramp-up and
ramp-down for etch, and also for deposition. However, as a minimum, the elastic stress
rebalancing can be handled automatically by switching on the stress history (see Chapter 9 on
page 629 and Automated Tracing of Stress History on page 664).
It is sometimes useful to switch off this stress rebalancing step in 3D because the rebalance
triggers a new mesh to be created and, in 3D, meshing is delayed until it is needed. Therefore,
if you are more concerned about simulation time than stress accuracy, you should specify:
pdbSet Mechanics EtchDepoRelax 0
to allow multiple etch and deposit steps to be performed without a mesh being generated in
between.
Shape Library
The shape library provides commands for generating some special-shaped polyhedra in
Sentaurus Process. These shapes are created using Sentaurus Structure Editor. The shape
library is an interface to use those shapes in Sentaurus Process.
There are two ways to use the shapes from the shape library: MGOALS mode or SDE mode.
In MGOALS mode, polyhedra are created using Sentaurus Structure Editor. The generated
polyhedra then can be inserted into a Sentaurus Process structure using the insert command.
The MGOALS mode is activated with the command sde off.
In SDE mode, polyhedra are not created directly. Instead, the Sentaurus Structure Editor
structure itself is modified by inserting the shapes (replacing other materials). To activate the
SDE mode, use the command sde on.
In both modes, the correct coordinate transformation for the UCS (specified using math
[Link]) and for the DF–ISE coordinate system (default, or specified using math
[Link]) is applied.
Additional commands that create parameterized custom shapes can be defined by users using
the scripting capabilities of Sentaurus Process and Sentaurus Structure Editor.
PolyHedronSTI
where:
■ The name parameter is set to the name for the polyhedron.
■ The direction parameter can be set to left, right, front, or back, which tells the facing
direction of the STI polyhedron.
■ The optional material parameter is used to specific the material of the inserted shape in
the SDE mode. In the MGOALS mode, the material of the inserted shape can be specified
in the insert command.
■ For other parameters, see Figure 123.
Depth
Ru
(X0 ,Y0 ) H sti
Rd A sti
Tsti
Y
X Rb
Figure 124 shows some generated STI shapes in different directions. Figure 125 on page 737
shows STI shapes with different Tsti and Rb values.
Left Right
Zmin
Zmax
Front Back
PolyHedronSTIaccc
where:
■ The name parameter is set to the name for the polyhedron.
■ The direction parameter can be set to rb (right back), lb (left back), lf (left front), or
rf (right front).
■ The Rac parameter is the radius of the STI concave corner.
■ For other parameters, see Figure 123 on page 736.
Figure 126 STI concave corner-shaped polyhedra in different directions: (from left to right)
left back, right back, left front, and right front
PolyHedronSTIaccv
where:
■ The name parameter is set to the name for the polyhedron.
■ Same as the PolyHedronSTIaccc command, the direction parameter can be set to rb,
lb, lf, or rf.
■ The Rac parameter is the radius of the convex corner.
■ For other parameters, see Figure 123 on page 736.
Figure 128 (left) shows a structure generated by combining the above three STI commands.
Figure 128 (right) illustrates the directions of the STI shapes.
Back
lb rb
Left Right
lf rf
Front
PolyHedronCylinder
where:
■ The name parameter is set to the name for the polyhedron.
■ Other parameters give the center coordination, the radius, and the height for the cylinder
(see Figure 129).
(Y0,Z0) Rc
Hc
X0
PolygonWaferMask
The syntax of the PolygonWaferMask command is:
PolygonWaferMask name Y0 Z0 Rw Lf
where:
■ The name parameter is set to the name for the polyhedron.
■ Other parameters give the location and size for the mask (see Figure 130 on page 740).
(Y0,Z0)
Rw
Lf
PolyHedronEpiDiamond
The syntax of the PolyHedronEpiDiamond command is:
PolyHedronEpiDiamond name X0 Y0 Z0 Wepi Lepi Hup Hdown Drecess [material]
where:
■ The name parameter is set to the name for the polyhedron.
■ For other parameters, see Figure 131.
Lepi
Hup
Wepi
(Y0,Z0) Drecess
X0
Hdown
In addition to the photo command, the etch and deposit commands allow you to specify a
mask directly. The parameter mask in the etch, deposit, and photo commands specifies the
name of one mask that has been previously defined using a mask command or by reading in
masks from a layout using the IC WorkBench EV Plus interface (see Chapter 12 on page 795).
The mask will have an effect similar to a masking layer; it limits the etch or deposition process
to a certain window. By default etching is not performed for points inside the mask, unless the
parameter negative is used in the mask definition. Similarly, deposition of a new layer in the
deposit command and of the photoresist layer in the photo command is performed outside
the mask unless the negative parameter is specified in the mask command in which case
deposition happens inside the mask only.
NOTE Always specify the masks and the simulation domain such that masks
do not end exactly on the boundary of the simulation domain, but end
inside or extend safely beyond the boundary of the simulation domain.
The mask command creates a mask. You can define the geometry of the mask directly in the
command file or can read masks from a layout file. Masks defined in the command file must
be given a name; otherwise, the names are read from the layout file.
If the parameter list is specified in a mask command, information about the existing masks
is printed. If name is specified as well, information about the specified mask is printed.
If the parameter clear is specified in a mask command, all previous mask definitions are
removed. If a name is specified as well, only the specified mask is removed.
A mask can be defined directly in the command file by using three different types of geometry
object:
■ Segments
■ Rectangles
■ Polygons
Pairs of subsequent values define the y-coordinates of the beginning and end of one mask
segment. Therefore, an even number of coordinates must be specified in the segments
parameter. The pairs may be defined in arbitrary order, and the segments defined by pairs of
coordinates may touch or overlap each other. In 3D, masks defined by segments are extended
over the entire range of z-coordinates.
The left and right parameters define the minimum and maximum extensions of the mask
along the y-axis; the front and back parameters define the minimum and maximum
extensions of the mask along the z-axis.
NOTE Only one rectangle can be specified per mask command. The front
and back parameters may be omitted; in this case, the mask is
equivalent to a mask with one segment. Additional mask commands
with the same name can be used to add rectangles. The rectangles
defined for a mask may arbitrarily intersect or touch each other.
Masks also can be defined by a list of names of polygons. These named polygons must have
been defined before the mask command using one polygon command for each named
polygon:
polygon name=LShape2 segments= {0.0 -1.5 0.0 -0.5 0.5 -0.5 0.5 1.5 1.5 \
1.5 1.5 -1.5}
mask name=Mask2 polygons= {LShape2} negative
Masks also can be defined by a combination of all three types of geometry object: segments,
rectangles, and polygons. Different objects may touch or overlap each other.
In 1D, the entire simulation domain is masked if the coordinate origin is masked. Any point
along the y-axis in a 2D simulation and any point of the yz rectangle of the simulation domain
in a 3D simulation are inside the mask if they are contained in any one of the geometry objects
defined for the mask. Specifying the parameter negative inverts the mask. In other words,
any point outside all the geometry objects defined for the mask is masked.
These commands can be used to invert a mask at any time after it has been defined:
mask name=aaa negative
mask name=aaa !negative
NOTE In the etch command, the masked area is not etched. While in the
photo and deposit commands, the photoresist or the specified
material is deposited in the unmasked area.
Masks can also be combined using a set of Boolean operations. The operations are specified
using the bool parameter (see Boolean Masks on page 744).
Layouts which have been defined in the GDSII format can be read into Sentaurus Process using
the ICWBEV Plus interface, see Chapter 12 on page 795. Alternatively, masks can also be read
from a layout file in DF–ISE format (default file extension .lyt). The TCAD layout tool
Ligament Layout Editor can save DF–ISE layout files as well as read in simple GDSII files. In
order to read the layout directly into Sentaurus Process, the name of the layout file must be
specified as layoutfile=[Link] in a mask command.
All mask rectangles and polygons read from a .lyt file are converted into named polygons.
These polygons then are collected into masks according to the names contained in the .lyt file.
When using a layout file, the relation between the layout coordinate system and the Sentaurus
Process coordinate system may need to be defined. By default, the layout-x axis (the horizontal
direction in Ligament Layout Editor) corresponds to the Sentaurus Process z-axis. The layout-y
axis (the vertical axis in Ligament Layout Editor) corresponds to the Sentaurus Process y-axis.
This definition matches the default definition of the parameter [Link] in the init
command and the coordinate x- and y-axes when displaying the Sentaurus Process simulation
results.
The coordinate transformation between the Sentaurus Process coordinate system and the
layout coordinate system can be defined in two ways:
■ In the mask command that specifies the layout file, the name of one mask may be specified.
If a mask with the specified name is contained in the layout file, it is used to position and
orientate the simulation domain in the layout.
■ Otherwise, a mask with the specified name must have been defined before using a mask
command. The specified mask is defined in layout coordinates. It may be defined as a
rectangle or a polygon, containing at least two points.
In the case of a rectangle (either defined by a SIM3D mask in Ligament Layout Editor or
defined in a mask command), the point with the minimum layout-x and layout-y coordinate is
used as the origin of the Sentaurus Process coordinate system. The direction from
If a polygon of at least two points is used (defined either as a SIM2D line segment in Ligament
Layout Editor or a mask defined as a polygon), the first point defined is used to place the origin
of the Sentaurus Process coordinate system. The direction from the first to the second point of
the mask is used as the orientation of the Sentaurus Process y-axis.
The local coordinates of the specified mask with respect to the selected Sentaurus Process y-
axis and origin are used as default extensions of the simulation domain. If a polygon mask with
only two points is used, the default extension in the z-direction is 0. The default extension in
the y-direction is defined by the distance between the two points. The default extensions in the
y- and z-directions as defined by the mask are reported. If no extensions have been defined
using the line y command or the line z command or both commands, the default extensions
are defined for the simulation when the layout file is read.
If a layout file is loaded, but no mask name is specified, the Cutline2D command that may
have been specified in the init command to define the parameter [Link] will be used
to orientate the coordinate systems. The first point specified in the Cutline2D command is
used as the origin of the Sentaurus Process coordinate system. The direction from the first to
the second point is chosen as the direction of the Sentaurus Process y-axis. If Cutline2D is
used, no default extensions of the simulation domain are defined.
Photoresist Masks
To define photoresist layers, use the photo command and specify a mask. Sentaurus Process
defines photoresist layers by specifying the minimum thickness of the resist and selecting the
name of a mask that has been defined by the mask command. By default, the photoresist will
be deposited outside the specified mask and will have a flat top similar to spin-on resist. If the
parameter negative has been specified when defining the mask, a photoresist is created
inside the mask.
Boolean Masks
Two masks can be combined using the bool parameter of the mask command. The Boolean
operations include: +, ^, * and –. In addition, masks can be transformed using the following
operations: rotate, scale, mirror, array, bias, over_under, under_over, and
offset.
The bool option only accepts simple expressions as described in the examples in Table 70.
Complex nested expressions (for example, bool= "(M1 + M2) – bias(–50, M3 + M4)")
are not possible in this implementation and, therefore, must be reduced to simple operations.
In addition, the bool option cannot be used together with the layoutfile, polygon, and
negative options.
rotate bool= "rotate(direction,mask)" Produces a mask that is rotated with respect to the
input mask. The direction parameter can be
either left-90 or right-90.
scale bool= "scale(factor,mask)" Produces a mask that is scaled with respect to the
input mask using the floating-point value of
factor.
mirror bool= "mirror(axis,mask)" Mirrors a mask with respect to a local axis
specified by x or y.
array bool= "array(nx, ny, dx, dy, mask)" Produces an array of n x × n y masks separated by a
distance specified with dx and dy.
bias bool= "bias(delta,mask)" All mask edges on the input mask are offset in the
normal direction by the specified amount. A
positive delta value expands the mask, while a
negative delta shrinks it. Zero or negative area
sections of the mask are eliminated from the output
mask. Overlapping sections of the mask are
merged.
over_under bool= "over_under(delta, mask)" Expands and then shrinks the input mask by delta.
This effectively merges areas in close proximity
and is equivalent to bias(delta, bias
(-delta, mask)).
under_over bool= "under_over(delta, mask)" Shrinks and then expands the input mask by delta.
This eliminates small areas and is equivalent to
bias(delta, bias(-delta, mask)).
offset bool= "offset(dy, dz)" Translates the mask by the specified amount. The
dz parameter is ignored in 3D.
The random noise function f random applied to mask edges by the line_edge_roughness
command is generated from the power spectrum of a Gaussian autocorrelation function. The
Gaussian autocorrelation shape is characterized by the standard deviation distance Δ specified
by the [Link] parameter and the correlation length Λ , specified by the
[Link] parameter:
2 2
2 –( x ⁄ Λ )
Autocorrelation ( f random ) = Δ πΛe (946)
f random is obtained by Fourier synthesis, applying the inverse Fourier transform to Eq. 946, after
adding random phases. In this way, random deviations of the mask edges can be obtained from
run to run, which correspond to LER profiles having the same standard deviation Δ and
correlation length Λ .
These random deviations are added in discrete form to the mask edges in question. First, the
mask edge is subdivided into discrete segments complying with the user parameter
[Link]. Second, the deviation at each segment endpoint is added in the
direction normal to the initial mask edge orientation.
LER is applied by default to all edges of the mask. You can limit which edges in a named mask
are to receive LER by the parameter normal, which specifies either the y-axis (Y) or the z-axis
(Z). If normal is specified, only those edges in the named masks normal to the given axis are
chosen for LER to be applied. LER is applied only once per mask. Mask segments along the
device bounding box do not receive LER.
The parameter ![Link] bypasses the reseeding of the random number generator
before the random phases are added. By using this parameter, the shape of the noise function
and, therefore, the LER result, can be reproduced from one run to the next if needed for
comparison.
The parameter [Link] can reproduce specific LER calculations from one run to the
next by setting the same random seed in both runs. When stored in a TDR file in split
simulations, the parameter [Link] is included when saving line_edge_roughness
to the TDR file, even if it is not specified by users, to ensure proper reproduction of the same
LER in a subsequent reload of the TDR file.
n m
50
C D
Figure 132 Example of 3D structure with LER applied using different values of standard
deviation Δ and correlation length Λ : (A) no LER applied, (B) LER applied with
Δ = 4 nm and Λ = 20 nm, (C) LER applied with Δ = 2 nm and Λ = 20 nm, and
(D) LER applied with Δ = 2 nm and Λ = 12 nm
The following strategy is used to address the problem of nearly collinear LER mask points that
may trigger removal by decimation during meshing. Avoiding the decimation of nearly
collinear LER mask points is desirable because removing such points may perturb the power
spectrum of the Gaussian autocorrelation function represented by the mask shape and may also
result in meshing difficulties.
If the parameter [Link] is set to a nonzero value, LER masks are checked for nearly
collinear points, which would result in decimation by the mesher:
line_edge_roughness [Link]=30
If any points in the LER mask are decimated by the mesher, based on the current
mgoals accuracy setting, the LER mask is rejected and the LER generation process is
restarted. After each restart, the detection and restart process is repeated until an acceptable
LER mask is generated or until the number of attempts exceeds [Link].
When [Link] is exceeded, Sentaurus Process stops with an error message that suggests
using a smaller value of mgoals accuracy or a larger value of [Link] in
the line_edge_roughness command.
Geometry Transformations
Transformations supported in Sentaurus Process are reflection, stretch, cut, rotation,
translation, and flip:
■ The transform reflect command is used with left, right, front, or back to
perform the reflection centered on the outer boundary of the simulation domain. At the
reflection side, regions are not merged immediately to allow a clean transform cut
afterward if required. The grid can be merged with grid merge command manually, but
if not, the structure will naturally be merged for any geometry changing operation later
(except transform reflect). It is also possible to discard the original structure when
reflecting by specifying the optional parameter ![Link].
■ The transform stretch command is used to indicate a mesh cutting at the position
given by the location parameter. The two pieces of mesh defined by the cut plane are
translated perpendicular to the cut plane, and new elements are inserted with a size given
by the length parameter.
■ The transform cut command is used to crop the structure. If used with left, right,
front, or back, the default will cut the structure in half at the midpoint along the given
direction. The location parameter is used to modify the cut to a position not in the
middle. For a more general crop operation, the cut parameter can be used with the min
and max parameters that specify the cropping box.
■ The transform rotate command is used to rotate a structure. An axis and angle
should be specified. Only 90° , 180° , and 270° angles are allowed for the x-axis, and
180° for the y- and z-axis. In the case of 2D simulations, rotations will produce an
extruded 3D simulation.
■ The transform translate command shifts the structure the specified quantity. Since
it is a pure translation, it will not change the aspect of the structure.
In 2D, all transformations are performed by MGOALS. In 3D, if the SDE mode is on, the
appropriate Scheme commands are dispatched to Sentaurus Structure Editor to transform the
structure. If the SDE mode is off, MGOALS performs the reflect, rotate, translate.
stretch and cut operation.
All these transformations also will be applied to the existing refinements, which will be cut,
stretched, rotated, translated, and reflected. To disable this feature, set Grid
[Link] to false.
The transformations stretch and flip are not supported by Sentaurus Process KMC.
All these transformations also apply to the existing refinements created with either the
refinebox or the line command. Detailed descriptions of refinement handling are provided
with each operation here.
The only special contact handling occurs during transform reflect. In this case, contacts
that straddle or touch the reflecting plane are enlarged to the reflected area (only one contact
remains). The remainder of the contacts are duplicated and are renamed by appending a suffix
as follows:
■ For right or left reflection, the contact on the left after reflection will be named <original
contact name>.1 (where <original contact name> was the name of the contact
before the reflection operation), and the contact on the right after reflection will be named
<original contact name>.2.
■ Similarly, for front or back reflection, the front contact (which has a larger z-coordinate)
will be named <original contact name>.2, and the back contact will be named
<original contact name>.1.
■ For up or down reflection, the upper contact will be named <original contact
name>.1, and the lower contact will be named <original contact name>.2.
You can rename contacts after the reflect command, or at any time, using the command:
contact name= <old contact name> [Link]= <new contact name>
Examples:
transform reflect left
transform reflect ymin
transform reflect front
transform reflect left ![Link]
NOTE The option remesh is disabled in reflect because it may disrupt the
symmetry of the reflected structure. However, the command grid
merge can be used afterward to remove same-material interfaces at the
reflecting plane.
Typically, during any geometry operation, lines created with the line command that have been
defined outside the bounding box will be removed. Therefore, there is no danger of the
reflected lines conflicting with the original lines.
For refinements created with refinement boxes, if the refinement box is constrained spatially
(that is, the min or max parameter has been used in the definition), then the box will be
duplicated, and the name of the new box will be reflected_<name> where <name> is the
name of the original refinement box. If the original and reflected refinement boxes overlap,
there is no problem since the refinement criteria are the same.
such a line and then stretches the structure. The data at the two ends of the stretched region is
exactly the same as that of the unstretched mesh.
Examples:
transform stretch location=0.001 length=5 right
transform stretch down loc=0.5 length=200 info=2
Examples:
transform cut location=0.5 right
transform cut left loc = 0.0
You also can use the cut command to crop the mesh by specifying a rectangle/brick defined
by the upper-left-front and lower-right-back corners, specified with the min and max
parameters. The cut operation retains the region enclosed by the rectangle/brick. By default,
MGOALS tries to find a mesh line or plane near the specified coordinate and removes the
whole mesh elements instead of cutting the mesh (which could lead to arbitrarily small edges
and poor element quality). To suppress searching of a nearby mesh line or plane and to perform
the operation exactly at the specified location, specify ![Link]. This automatically
invokes a remeshing unless !remesh is specified.
Examples:
transform cut min= {-2 -1} max= {11 0}
transform cut min= {-10 1.35 0.15} max= {10 1.65 0.4}
During the cut operation, lines created with the line command that are outside of the
simulation domain after the cut are removed and, similarly, any refinement box that lies
completely outside the simulation domain after the cut is removed as well.
There is great flexibility in the handling of the auxiliary material at the back of the structure.
The material itself defaults to BackMat as mentioned, but you can choose another material
using the command pdbSet Grid [Link] <material>.
The material BackMat inherits its parameters from (is Like) Gas so that it behaves like gas
for dopant diffusion simulation. For implantation, the material is converted to Photoresist
so no implant tables are required for this material. Similarly, for mechanics, the only way to
obtain Gas-like mechanics boundary conditions at interfaces to the back material is to use an
actual Gas region. Therefore, the back material is converted automatically to Gas before each
mechanics call and is converted back directly afterwards. Finally, when a region of material
BackMat is saved in a structure, it is first converted to Gas, so that other tools reading the
structure will have the proper material. However, it is also given a Sentaurus Process–specific
tag, so that Sentaurus Process knows the region should actually be BackMat.
Another important point regarding mechanics simulations on flipped structures is that only a
modified version of the lattice mismatch model is available. With this model, the command
substrate [Link] is no longer available for modification. Instead, the
lattice-mismatch strain is added using the reference concentration model. This model uses a
reference concentration and bases all strains directly on the difference between the strain field
and that reference (see Reference Concentration Model on page 660).
NOTE To avoid switching from the standard lattice mismatch model to the
reference concentration lattice mismatch model after transform
flip is used, switch on the reference concentration model. This should
be performed before initial structure creation using:
pdbSet Mechanics [Link] 1
for those simulations using transform flip.
NOTE When performing laser annealing on a structure that has been flipped,
the following settings are recommended (see also Flash or Laser Anneal
Model on page 220):
pdbSet Grid [Link] 0
mater add name= MyBackMat [Link]=Silicon add
pdbSet Grid [Link] MyBackMat
pdbSet ImplantData [Link] MyBackMat
Refinements during a flip operation are handled in the same way as refinements during
reflection in the case of ![Link]. Lines coming from both the line command and
refinement boxes are reflected along with the structure.
It might happen that during the rotation the existing initial gas has to be moved to a side or the
bottom of the structure instead of being at the top. In these cases, new gas will be added to the
top.
During a rotation operation, lines coming from both the line command and refinement boxes
are rotated along with the structure.
Similarly, mesh lines created with the line command and the bounding box of refinement
boxes (which are specified with the min and max parameters of the refinebox command) are
translated with the structure.
MGOALS Interface
By default, etching and deposition operations are performed using the MGOALS library in 1D,
2D, and 3D. The MGOALS library operates as follows:
■ The starting structure is analyzed for the interfaces that will change during the operation.
■ The geometry-changing operations are performed.
■ In 2D, the entire structure is remeshed. During remeshing, nodes in the silicon region are
retained as much as possible in their original locations. In most cases, a high percentage of
the nodes are retained after remeshing. This minimizes interpolation errors. In 3D, the
structure is remeshed only if the next step requires an up-to-date mesh.
The analytic method is fast, accurate, and uses a simplified string algorithm. Due to speed and
accuracy advantages, MGOALS always tries to perform an analytic operation. If self-
intersections are detected in the new boundary, MGOALS automatically switches from the
analytic method to the fast level-set method. Both the analytic and the fast level-set methods
can handle simple etch and deposition processes.
Besides the analytic method and the fast level-set method, a general time-stepping level-set
method is available to handle more complex etch types such as Fourier, crystallographic, and
multimaterial etching, and to include shadowing effects.
In MGOALS, the fast-marching and level-set equations are solved on a separate Cartesian
mesh that is independent of the simulation grid. For a description of the parameters that control
the Cartesian mesh, see MGOALS Boundary-moving Parameters on page 756.
After solving the level-set equations, the newly created boundary is extracted from the level-
set function on the Cartesian mesh and then incorporated into the simulation mesh. The exact
replication of the extracted boundary in the mesh can be expensive and can transfer unwanted
noise from the level-set solution into the structure. To resolve these issues, MGOALS allows a
certain smoothing to be performed on the extracted boundary.
In 2D, to incorporate the new boundary into the simulation grid, a simplified meshing step is
performed. A simple mesh is created for the modified regions and connected to the mesh in
unchanged regions. Since this mesh is not suitable for process simulation, by default, a full
remesh is performed after each etching and deposition step.
In 3D, almost all boundary-modification operations performed by MGOALS use the analytic
method. The only exceptions are isotropic deposition and etching, which are performed using
the fast level-set method. The new material boundary is integrated into the structure using a set
of polyhedral Boolean operations.
Parameters to specify the resolution of the Cartesian mesh and the interface/boundary fidelity
are defined in an mgoals command before the etch or deposit command. These parameters
are applied to the entire structure. The interface quality and resolution are controlled by
accuracy, resolution, and [Link]. The actual size and placement of the
Cartesian mesh bounding box is calculated starting with the initial interface being etched,
extended based on the time and rates given by the user, or in the case of etchstop materials,
extended based on the distance from the initial front to the etchstop materials.
The accuracy parameter is used to control the noise and features at an interface. A small value
of accuracy allows only small deviations between the boundary extracted from the level-set
function and the piecewise linear segments incorporated into the simulation mesh. As a result,
a large number of small segments may be created. In addition, a value of accuracy that is too
small may interpret numeric noise as surface features, which MGOALS requires to reproduce
–5
in the simulation mesh. The default value for accuracy is 1.0 ×10 μm .
Figure 133 The curved surface represents the extracted new boundary and the piecewise
linear segments represent the simplified boundary incorporated into the
simulation mesh. The accuracy parameter ensures that u ≤ accuracy.
The value of the resolution parameter controls the element size in the Cartesian mesh used
to perform level-set based etching and deposition. Since the thickness of the layer to be
deposited or etched is user specified, the grid size is defined as a fraction of the thickness of
the modified layer. The size of each grid element of the level-set mesh is given by the product
of the value of the resolution and the etch or deposit thickness.
The resolution is specified in the mgoals command and the etch or deposit thickness is
specified in the etch or deposit command, respectively. This scheme usually provides a
good approximation of the required level-set resolution and is computationally efficient. The
default value for resolution is 0.1.
NOTE Providing a small resolution parameter for thin layers may lead to
excessive time and memory consumption. For example, if an isotropic
deposit of 1 nm thickness is performed with resolution=0.1, a level-
set grid size of 1Å will result.
The general time-stepping level-set method has a few additional parameters to control and
balance accuracy, simulation time, and memory use. Usually, the full time-stepping level-set
method is used in situations where more intricate boundaries will be generated. The full time-
stepping level-set method is needed for Fourier, crystallographic, and multimaterial etching
types, and for etching with shadowing on. It is also used if the [Link]
parameter is given.
The [Link] parameter can be used for the time-stepping level-set algorithm in the
same way resolution is used for the fast level-set algorithm. You also can specify the actual
spacing of the Cartesian mesh in the x-direction or y-direction or both directions, with the dx
and dy parameters (and the z-direction in 3D with dz). Reducing the mesh size causes the time-
stepping method to allocate more memory, to take smaller time steps, and to increase the solve
time for each time step, thereby increasing the overall simulation time.
The Cartesian mesh extent or bounding box, the resolution and [Link]
criteria, and the grid spacing criteria dx, dy, and dz interplay in the following ways.
The Cartesian mesh encompasses the initial interface between the Gas and all the materials the
user has defined to be etched. It also encompasses the entire movement of the etching front
expected throughout the entire etch process. In the case of time-based etching with the time
keyword, an etching distance is computed based on the requested etch time multiplied by the
maximum expected etch rate. The resolution or [Link] keyword is then used
as the approximate mesh spacing unless overridden by dx, dy, or dz. The number of resulting
Cartesian mesh lines follows as required to achieve the desired mesh spacing within the
Cartesian mesh bounding box.
In the case of material etchstop, the bounding box of the Cartesian mesh is calculated based on
the initial Gas/etch-material interface, and its extent is determined by the position of etchstop
materials in the simulation domain—the estimated maximum etching distance. The target
mesh spacing in 2D is the resolution or [Link] multiplied by the estimated
maximum etching distance. In 3D, the target mesh spacing is set to the [Link],
as the estimated maximum etching distance is not calculated in 3D for this purpose. From the
Cartesian mesh bounding box size and the target mesh spacing, possibly overridden by dx, dy,
and dz, the number of Cartesian mesh lines is determined.
As a general approach, while level set is especially useful for shadowing, multimaterial,
sophisticated etch velocity functions (for example, surface normal dependent or crystal
direction dependent), and complex evolution of etch surfaces (that is, complicated structures),
it is generally not a good choice when sharp or exact corners, and straight or exact etch walls,
are required, such as in anisotropic etching.
This limitation is due to the implicit representation of the structure as a rectilinear grid of
distance functions used to calculate the evolution of the moving surfaces.
In MGOALS3D mode, a combination of level-set, fast marching, and analytic techniques are
used to perform geometric operations similar to 2D. Unlike Sentaurus Structure Editor,
MGOALS3D can reliably handle complicated boundaries (that is, those represented by
polyhedra instead of geometric primitives). Such boundaries are created by 3D MGOALS
etch, deposit, and transform commands.
NOTE After any one of these three process steps is performed in 3D, all
subsequent geometry operations should be performed using
MGOALS3D.
The use of the level-set method for thin etches or deposits can be prohibitively CPU and
memory intensive, especially for large structures or for very thin etch or deposit steps. To
address this issue, etches and deposits less than 1 nm use the analytic method by default. The
thickness of this cutoff can be modified using the [Link] parameter of the
mgoals command.
To produce meshes with the highest quality elements and the fewest points, you should reduce
the number of interfaces in the structure. This is especially true for 3D. However, because
Table 71 Summary of etching algorithms used for different etching input parameters
Material Shadowing Etching type Structure Etchstop mechanism
dimension
Time and rate Material Etchstop Thickness
Single material No shadowing Isotropic 1D/2D Analytic Level set (UW) Analytic
Fourier 1D/2D/3D Level set (LF) Level set (LF) Not supported
Shadowing Isotropic 2D Level set (UW) Level set (UW) Level set (UW)
Fourier 2D/3D Level set (LF) Level set (LF) Not supported
Directional 2D/3D Level set (LF) Level set (LF) Level set (LF)
Anisotropic 2D/3D Level set (LF) Level set (LF) Level set (LF)
Multimaterial No shadowing Isotropic 2D Level set (UW) Level set (UW) Level set (UW)
Fourier 2D/3D Level set (LF) Level set (LF) Not supported
Directional 2D Level set (LF) Level set (LF) Level set (LF)
Anisotropic 2D Level set (LF) Level set (LF) Level set (LF)
Shadowing Isotropic 2D Level set (UW) Level set (UW) Level set (UW)
Fourier 2D/3D Level set (LF) Level set (LF) Not supported
Directional 2D Level set (LF) Level set (LF) Level set (LF)
Anisotropic 2D Level set (LF) Level set (LF) Level set (LF)
Default parameters and algorithm settings used by the MGOALS library may change from
release to release in the pursuit of more accurate, more realistic, and more stable structure
generation results. To use default parameters and settings from a previous release, enter the
required release as a string parameter in the mgoals command, for example:
mgoals "G-2012.06"
Partial support for this backward compatibility is available starting with Version D-2010.03
with more complete support starting with Version E-2010.12.
Anisotropic or directional operations can produce residual material when the walls of the
etched material are not perfectly vertical or aligned to the etching beam. These residual
materials usually cause problems to the mesh generator since they contain sharp angles and
small features that cannot be meshed. To correct this problem, MGOALS has implemented a
repair algorithm that analyzes the structure and eliminates small, unwanted features.
The repair algorithm can be used with the etch, deposit, and photo commands. Those
commands include a Boolean parameter named repair that controls the repair algorithm. The
repair algorithm is enabled by default in 3D and disabled in 2D. To activate or deactivate the
repair algorithm, include repair or !repair in the command specification. For example:
etch material= {Silicon} type=anisotropic rate = 0.001 time=1.0 !repair
Multiple regions can be inserted in one step. However, to insert multiple regions, the name
cannot be specified. If multiple regions are inserted, machine-generated names are used. For
more information, see insert on page 942.
Polygons are created with the polygon command. This command accepts several options to
specify how to create the polygon:
■ points is followed by a list of points defining the polygon.
■ rectangle, with min and max, specifies the rectangle limits.
■ segments is followed by pairs of numbers specifying the coordinate where each segment
starts and the previous one finishes.
■ xy specifies the polygon will be created in the xy plane.
Since the standard use of the polygon command (see The mask and photo Commands on
page 741 and Using Polygon and Rectangle Mask in 2D Simulation on page 773) is to
create masks for etch, deposit and photo, the default coordinates are y and z for the
segments and min and max options. Consequently, the option xy must be specified in
order for the polygon to be created in the xy plane instead of the yz plane.
■ tdr is followed by the name of a TDR file to import the polygon from, and the parameter
materials instructs the reader which polygon to read if there are many.
For examples of polygon creation, see Polygon Creation and Insertion in MGOALS2D on
page 786.
The insert command takes a mandatory polygon parameter containing the name of the
polygon and inserts it into the structure. It allows specifying the parameters
[Link], [Link], [Link], and [Link] in a very
similar way to the insertion in 3D (see Inserting Polyhedra on page 765).
For an example of polygon insertion, see Polygon Creation and Insertion in MGOALS2D on
page 786.
You can build a polyhedron in four different ways; however, only one of them can be used at a
time in one polyhedron command:
■ Reading it from a TDR boundary file.
■ Creating a rectangular prism (brick) polyhedron.
■ Extruding a 2D <polname> polygon in the x-dimension.
■ Creating a polyhedron from the beginning using its constituent polygonal faces
<polname_1> to <polname_n>.
reads all the polyhedra included in a TDR boundary file called <filename>.
The parameter materials is optional and is used to choose which materials are included. In
addition to explicit material names, the keyword [Link] is available to specify all
nongaseous materials.
The parameter regions is optional and is used to choose which regions of the boundary are
included.
If neither regions nor materials is specified, all regions are assumed to be included. If both
regions and materials are specified, the union of the two is assumed.
The extra option !rotate is used to avoid the automatic rotation that Sentaurus Process
performs when reading polyhedra to transfer them from the TDR boundary file (assumed to be
in DF–ISE coordinates) to the Sentaurus Process structure in Sentaurus Process coordinates.
Several polyhedra can be included in the TDR file. Any valid TDR boundary file is allowed,
regardless of the tool used to create it.
creates a rectangular prism given its two corners in Sentaurus Process coordinates.
Extruding a 2D Polygon
takes an existing 2D polygon (created with the polygon command) and extrudes it in the
x-direction from min to max to build a 3D polyhedron. The command expects the polygon to
be planar. Only one polygon name is expected in the polygons list.
builds a polyhedron given its definition as a set of polygons. The polygons are <polname_1>
to <polname_n>. Obviously, the command expects the polygon list to form a valid
polyhedron, that is, a compact, enclosed, nonintersecting 3D space. The polygons can be
created with the polygon command.
This mode differs from the standard sde mode in that a structure can be created inside
Sentaurus Structure Editor independent of the existing Sentaurus Process structure. The
minimum syntax needed for creating an external structure is:
sde external { <sde commands> }
Where <sde commands> are scheme commands sent directly to Sentaurus Structure Editor.
As an option, a polyhedron can be specified to initialize the structure, and after sde
external, further geometric commands such as etch, deposit, and transform operate on
the external structure until the command sde off is specified. For more options for the sde
command, see sde on page 1050. To create a polyhedron from the external structure, the
parameter [Link] of the polyhedron command must be given. In the following
example, an aluminum sphere is inserted into the Sentaurus Process structure:
math [Link]
sde external {
(sdegeo:create-sphere (position 0.4 0.0 0.0) 0.9 "Aluminum" "Aluminum_1")
}
polyhedron name= sphere [Link]
sde off
insert polyhedron= sphere
NOTE Commands sent directly to Sentaurus Structure Editor through the sde
command need to consider the Sentaurus Process coordinate system. In
the previous example, the UCS coordinate system (same as Sentaurus
Process coordinate system) is used, so the x coordinate is vertical (–x is
up), and y and z are lateral directions. If math [Link] is not
specified, the z-axis is vertical (+z is up) and x and y are lateral.
Inserting Polyhedra
The insert command is:
insert polyhedron=<phname> [[Link]= { mat1 mat2 }]
[[Link]= {r1 r2 }] [[Link]=<matname>] [[Link]=<regname>]
NOTE The parameter polyhedron is mandatory and specifies the name of the
polyhedron with which to operate. This polyhedron must be previously
defined with the polyhedron command (see Inserting Polyhedra in
Three Dimensions on page 762).
The parameter [Link] is optional and specifies a list that indicates the
materials to be replaced by the polyhedron. In addition to explicit material names, the keyword
[Link] is allowed. If [Link] is specified, it means that all materials in
the structure, except gas, will be replaced.
The parameter [Link] is optional and specifies a list that indicates the regions to
be replaced by the polyhedron. If neither [Link] nor [Link] is
specified, it means that all materials are replaced. If both [Link] and
[Link] are specified, the union of the two is assumed.
The parameter [Link] is optional. If set, all the regions in the polyhedron will change
to the specified material. This option does not change the polyhedron information except
temporarily during the duration of the insert command. The material name in the inserted
polyhedron is inserted, but not in the original polyhedron.
The parameter [Link] is optional and valid only when there is one region. When set, the
region name is set to the specified one after insertion. The region name in the inserted
polyhedron is affected, but not the original polyhedron.
The insert command can be used to perform polyhedron etch and polyhedron deposit as well
as the more general polyhedron insert functionality. Polyhedron etch is performed by
specifying [Link]=gas in the insert command or by creating a gas polyhedron.
Polyhedron deposit is performed by specifying [Link]=gas in the insert
command as well as choosing one or more bulk regions or materials in the polyhedron
command, such as materials=[Link] or [Link]=Silicon.
NOTE The boundaries of the polyhedra to be inserted must not overlap any
interfaces or outer boundaries of the structure. Otherwise, it is likely the
operation will fail.
For examples of polyhedron insertions, see Reading a TDR file on page 789, Extruding a 2D
Polygon on page 790, Creating a Polyhedron using Polygons on page 791, and Defining a
Brick on page 792.
where:
■ direction can be back, front, left, or right.
■ filename is the file to paste, in TDR format, which must be specified.
Sentaurus Process automatically shifts the structure read from the file to the appropriate
quantity in x, y, and z to fit to the current structure. Nevertheless, Sentaurus Process will not
automatically stretch the incoming structure. Consequently, for the operation to succeed, the
sizes of the pasting planes of the incoming structure and the existing one must be the same.
The values of the fields are conserved for each structure and are interpolated at the interface
between the structures.
Multithreading
Some of the more sophisticated etching and deposition types require the use of the level-set
method (such as multimaterial etching, crystal etching and deposition, Fourier etching and
deposition, use of etch stops or shadowing). This can be time-consuming, especially for 3D
summations. To minimize simulation time, the MGOALS library allows for a multithreaded
solution of the level-set equations.
or:
math numThreadsMGoals = <n>
where <n> is an integer. It is suggested to keep <n> at or below 4 to obtain reliable speed
improvement.
Sentaurus Structure Editor is a 3D geometry editor that uses the ACIS solid geometry modeling
kernel and the Scheme scripting language. Structures are created using CAD operations and
process emulation operations. All 3D etch, deposit, strip, photo, mask, and transform
commands are translated into appropriate Scheme commands that are then dispatched to
Sentaurus Structure Editor.
Sentaurus Structure Editor also can be used as a stand-alone tool to build the final structure by
using both its GUI and scripting capability. Then, the final structure can be used in Sentaurus
Process either as a boundary file or after remeshing the structure with one of the available
stand-alone mesh generation tools. The mesh or the boundary for the final structure is loaded
and before each implant or diffuse step, the material of all regions, not yet present in the
structure for the process step, is changed to gas.
Finally, there is an external mode. The Sentaurus Structure Editor external mode allows
independent (in other words, external) structures built in Sentaurus Structure Editor to be
inserted into structures created with MGOALS. This mode was designed to take advantage of
the best of MGOALS (advanced geometry-moving algorithms) and Sentaurus Structure Editor
(solid modeling capabilities). For more information on this mode, see Sentaurus Structure
Editor Interface: External Mode on page 764.
Hereafter, standard Sentaurus Structure Editor interface mode (sde on) will be referred to as
the SDE mode.
As usual, simulations may start in one or two dimensions. If a 3D mask is encountered and if
z-lines have been defined, the structure will be extruded to three dimensions, and if the SDE
mode is switched on, the Sentaurus Structure Editor interface will be initialized. All subsequent
structure-modifying steps in the etch, deposit, strip, photo, and transform commands
are dispatched to Sentaurus Structure Editor.
When the 3D structure has been initialized in Sentaurus Structure Editor, structure generation
commands (mask, etch, deposit, photo, strip, and transform) are translated by
Sentaurus Process into appropriate Scheme commands and then dispatched to Sentaurus
Structure Editor.
NOTE Currently, a few options of the etch command cannot be translated into
appropriate Scheme constructs: Fourier etching, trapezoidal etching,
crystallographic etching, and shadowing effects are not supported in
3D. The parameter etchstop only works with cmp but not with other
etch types.
The modified structure will be retrieved from Sentaurus Structure Editor and remeshed when
a command that requires the geometry and the mesh to be synchronized (for example,
implant, diffuse, and struct commands that write the mesh to a file) is found in the
Sentaurus Process command file.
This ‘lazy’ remeshing (only when needed) minimizes the number of 3D remeshing operations
and, therefore, increases both the robustness and speed of the 3D structure generation and
remeshing.
There is a separate command to configure and control the interface to Sentaurus Structure
Editor and to specify Scheme commands directly. The syntax of this Sentaurus Structure Editor
command is:
sde {<scheme command>} [on] [off] [remesh] [logfile=<c>] [SdeCheck]
The command:
sde on
must be specified in each 3D simulation so that the simulation is performed using the Sentaurus
Structure Editor interface.
The parameter logfile provides a file name to record all Scheme commands that are
dispatched to Sentaurus Structure Editor. At the end of the simulation, a complete Scheme
script is generated that can be used in a stand-alone run, for example:
sde -l [Link]
for debugging, testing different algorithms, or fine-tuning a few command parameters for
Sentaurus Structure Editor without rerunning the Sentaurus Process simulation. These
modified parameters and algorithm selections can later be incorporated into the etch,
deposit, and other commands by specifying the parameter sde in these commands:
deposit oxide thickness=5<nm> isotropic sde= {"algorithm" "lopx" "adaptive" \
#t "radius" 0.075}
etch silicon thickness=0.2<um> isotropic sde= {"algorithm" "lopx" "radius" \
0.07 "vexity" "convex" "blend-global" "steps" 1 "overetch" 0.2}
deposit oxide thickness=5<nm> isotropic sde= {"algorithm" "lopx"}
NOTE The Scheme language is incompatible with the Tcl used by Sentaurus
Process. Therefore, all Scheme commands and parameter settings must
be enclosed by a pair of braces. The opening brace must be on the same
line as the sde parameter.
In the sde command (not the parameter), the braces may contain any number of Scheme
commands, each of which starts on a new line.
Since the braces protect the Scheme commands and parameter settings from being parsed by
Tcl, they must not contain any calls to Tcl procedures in Tcl expressions. The Scheme language
provides its own set of expressions, parameter definitions, and other language constructs.
You should increase the default verbosity level when working with the sde command:
pdbSet InfoDefault 1
The Sentaurus Structure Editor library does not provide any error-processing facility for errors
that have occurred during the solid modeling operations. This can become time consuming if
a structure generation step fails and a long diffuse or implant simulation is performed for
an incorrect structure. To avoid this, use a few runs with the -f command-line option to adjust
the commands and to verify that the proper structure is created. In addition, by default, all
boundary files that are written in struct commands in the fast mode and before remeshing
are read and checked for any geometric inconsistencies. If any defects are observed, the
simulation is stopped with an error. To prevent this checking, specify the
parameter !SdeCheck.
NOTE To prevent adjacent regions of the same material (for example gas
regions) from merging, switch off region-merging using the command
pdbSet Grid No3DMerge 1. During the process, as more regions
need to be considered (for example, nitride spacer), appropriate
materials must be reverted from gas to the required materials.
Finally, the option Grid Auto3DMergeAndSeparate (off by default) adds the following
commands at the end of photo and depo when switched on:
(sdegeo:bool-unite (find-material-id 'depositedMaterial'))
(sde:separate-lumps)
Sentaurus Topography
Each sptopo command first transfers the current 2D geometry from Sentaurus Process to
Sentaurus Topography. Then, it dispatches the command to Sentaurus Topography. Finally, it
retrieves the modified 2D geometry from Sentaurus Topography and remeshes it using the
MGOALS mesher in 2D.
Sending a new geometry from Sentaurus Process to Sentaurus Topography has been restricted
to cases where the geometry has actually been modified in Sentaurus Process after last
retrieving the structure from Sentaurus Topography, for example, when using Sentaurus
Process etch or deposit command. Provisions also are made to detect whether Sentaurus
Topography has actually modified the structure or simply a definition of it; for example, a new
machine has been added to Sentaurus Topography. Remeshing is restricted to the commands
that actually have changed the structure.
During the syntax check, Sentaurus Topography commands are dispatched to Sentaurus
Topography and checked for syntactical correctness. The supported syntax of the sptopo
command is:
sptopo <sptopo command>
or:
sptopo {
<sptopo command>
<sptopo command>
...
}
The first form of the sptopo command allows use of all the usual Sentaurus Process Tcl
constructions in the parameter specifications of <sptopo_command>. This form of the
command is parsed through the Tcl interpreter. Otherwise, the syntax used for the
<sptopo_command> is the same as in each of the commands for a stand-alone Sentaurus
Topography run. In Sentaurus Process command files, each sptopo command must start with
the sptopo string.
The pair of braces in the second form of the command prevents this sptopo command from
being parsed by the Tcl interpreter. No Tcl expressions must be used in the second form of the
sptopo command. On the other hand, any number of Sentaurus Topography commands can
be provided in the second form of the command, each on a separate command line. If necessary,
the structure will be sent from Sentaurus Process to Sentaurus Topography once at the
beginning, and retrieved and remeshed once at the end of the entire command sequence.
Examples:
sptopo {
deposit material=Oxide thickness = 0.005
deposit material=PolySilicon thickness = 0.180
}
The structure is sent to Sentaurus Topography once, retrieved, and remeshed once at the end of
both deposition steps.
If masks are required in a Sentaurus Topography simulation, segments can be specified in the
sptopo command as shown below. Alternatively, the Sentaurus Process photo command can
be used with a mask to define a photoresist layer that will protect certain areas from being
etched in a sptopo etch command.
To increase the default verbosity level when working with the sptopo command, use:
pdbSet InfoDefault 1
For a complete list of commands, parameters, and syntax rules of the Sentaurus Topography
simulator, refer to the Sentaurus Topography User Guide.
Sentaurus Topography 3D
Sentaurus Process provides an interface to Sentaurus Topography 3D. This interface makes
advanced etching and deposition models of Sentaurus Topography 3D available from within
Sentaurus Process.
The subset of 3D commands that are needed for etching and deposition is available through the
interface. One single command, topo, in Sentaurus Process enables all the interface
functionality. The topo command is followed by the respective Sentaurus Topography 3D
commands:
topo <Sentaurus Topography 3D command>
For a list of the supported Sentaurus Topography 3D commands, refer to the Sentaurus
Topography 3D User Guide.
Examples
Figure 134 Final result of 2D anisotropic etching with rectangle and polygon mask
# still in 2D
strip nitride
Figure 135 (Left) Initial 2D structure after LOCOS formation and (right) final result after
extruding to 3D and etching of poly and oxide
Input file mask0_fps.cmd: The origin of the Sentaurus Process coordinate system coincides
with the origin in [Link]; the y-axis of Sentaurus Process is aligned to the vertical axis
in [Link]:
line x loc=-0.25 tag=gastop spac=0.05
line x loc=0.0 tag=substop spac=0.01
line x loc=1.5 tag=subsbottom spac=0.2
line y loc=1.65 spac=0.1
line y loc=1.95 spac=0.1
line z loc=0.15 spac=0.1
line z loc=0.6 spac=0.1
refinebox min= {-10 -10 -10} max= {10 10 10} xrefine=0.2 yrefine=0.2 \
zrefine=0.2
refinebox [Link] = {Silicon Oxide}
init
deposit oxide thickness=100<nm> isotropic
sde logfile=[Link] on
pdbSet InfoDefault 1
mask layoutfile=[Link]
struct bndfile=mask0_0.bnd
etch oxide thickness=120<nm> type=anisotropic mask=Mask1
struct bndfile=mask0_1.bnd
struct tdr=mask0
Input file mask1_fps.cmd: A Cutline2D is used to place the simulation domain in the layout
file. The extensions of the 3D simulation domain in the y- and z-directions must be specified
using line commands. The cutline is defined as the diagonal through the structure used in
mask1_fps.cmd, such that the Sentaurus Process origin is shifted and the coordinate system
is rotated compared to mask0_fps.cmd:
line x loc=-0.25 tag=gastop spac=0.05
line x loc=0.0 tag=substop spac=0.01
line x loc=1.5 tag=subsbottom spac=0.2
# do not specify any name ==> use the cutline from the init command
# to place the Sentaurus Process coordinate system in the layout.
# the first specified point becomes the origin of the Sentaurus Process
# coordinate system and the direction of the cutline becomes the direction
# of the Sentaurus Process z-axis.
mask layoutfile=[Link]
struct bndfile=mask1_0.bnd
etch oxide thickness=120<nm> type=anisotropic mask=Mask1
struct bndfile=mask1_1.bnd
struct tdr=mask1
Input file mask2_fps.cmd: A SIM3D mask is used, defined in the layout file:
# Use a layout file and place it according to the mask SIM3D, defined in the
# layout file itself.
# SIM3D defines an axis aligned rectangle in the layout plane. The point
# with the smallest layoutX and layoutY coordinates defines the
# origin of the Sentaurus Process coordinate system. The direction of the
# layoutX axis is used for the Sentaurus Process z-axis
# and the direction of the layoutY axis is used for the Sentaurus Process
# y-axis.
refinebox min= {-10 -10 -10} max= {10 10 10} xrefine=0.2 yrefine=0.2 \
zrefine=0.2
refinebox [Link] = {Silicon Oxide}
init
deposit oxide thickness=100<nm> isotropic
sde logfile=[Link] on
pdbSet InfoDefault 1
mask layoutfile=[Link] name=SIM3D
Figure 139 Final simulation result for mask2_fps.cmd; the y- and z-extensions are not
specified in the command file but are taken from the SIM3D mask in [Link]
(black line in Figure 136 on page 776)
sde logfile=[Link] on
pdbSet InfoDefault 1
struct bndfile=[Link]
struct tdr=final
Figure 140 Final result of simulation of STI etching with predefined sidewall angles
# Still in 2D
strip nitride
sde off
pdbSet InfoDefault 2
pdbSet Grid sMesh 1
polygon name=LShape2 segments= {-0.1 -0.4 0.6 -0.4 0.6 0.2 1.1 0.2 1.1 0.4}
mask name=Mask2 polygons= {LShape2}
mgoals resolution=0.3
deposit oxide thickness=10<nm> isotropic
struct tdr=locos4
mgoals resolution=0.2
deposit nitride thickness=100<nm> isotropic
struct tdr=locos5
The initial 2D LOCOS structure ([Link]) is the left one represented in Figure 135 on
page 775. The sde off command is used to overwrite the standard setting and MGOALS is
used.
Figure 141 Script result simulated with MGOALS3D; polysilicon and silicon
are not shown to better reveal the structure features
sde off
line x loc=0.0 tag=xtop
line x loc=$silicon_depth tag=xbottom
line y loc=0.0 tag=yleft
line y loc=[expr 2*$extra + 2*$spacer + 2*$sti + $gate] tag=yright spacing =
0.002
line z loc=0
line z loc=0.05
line z loc=0.1
region silicon xlo=xtop xhi=xbottom
init
#STI
set ll1 [expr 0]
set rr1 [expr $sti]
set ll2 [expr $sti + 2*$extra + 2*$spacer + $gate]
set rr2 [expr $ll2 + $sti]
mask negative name=sti_mask left=$ll1<um> right=$rr1<um>
mask negative name=sti_mask left=$ll2<um> right=$rr2<um>
etch silicon thickness=$sti_thick mask=sti_mask anisotropic
deposit oxide fill coord=[expr -$SiO2gate]
#poly gate
deposit polysilicon thickness=$poly isotropic
set ll3 [expr $sti + $extra+$spacer]
set rr3 [expr $ll3 + $gate]
mask name=gate_mask left=$ll3 right=$rr3
etch polysilicon mask=gate_mask anisotropic thickness=$poly
#spacer
deposit nitride thickness=$spacer_thick isotropic
etch nitride thickness=[expr $spacer_thick * $factor] anisotropic
Figure 142 on page 786 (upper right) shows the created structure.
Now, a simple structure is created with the same dimensions in the plane to be pasted and the
structures are put together:
set xsize 0.3
set ysize 0.1
set zsize 0.32
init
sde off
struct tdr = orig
paste direction = "right" tdr = "rotateX"
struct tdr = pasted_right
Figure 142 (upper left) shows the structure created before the paste operation, and the final
result is shown in the lower-left figure.
Figure 142 (Upper left) The initial structure, (upper right) the structure read from the file, and
(lower left) the final structure after paste command
0.002
region silicon xlo=xtop xhi=xbottom
init
#STI
set ll1 [expr 0]
set rr1 [expr $sti]
set ll2 [expr $sti + 2*$extra + 2*$spacer + $gate]
set rr2 [expr $ll2 + $sti]
mask negative name=sti_mask left=$ll1<um> right=$rr1<um>
mask negative name=sti_mask left=$ll2<um> right=$rr2<um>
etch silicon thickness=$sti_thick mask=sti_mask anisotropic
deposit oxide fill coord=[expr -$SiO2gate]
#poly gate
deposit polysilicon thickness=$poly isotropic
set ll3 [expr $sti + $extra+$spacer]
set rr3 [expr $ll3 + $gate]
mask name=gate_mask left=$ll3 right=$rr3
etch polysilicon mask=gate_mask anisotropic thickness=$poly
#spacer
deposit nitride thickness=$spacer_thick isotropic
etch nitride thickness=[expr $spacer_thick * $factor] anisotropic
struct tdr=orig
Finally, the triangular polygon is inserted into the original structure as Aluminum, but only in
the nitride and silicon materials:
insert polygon = "box" [Link] = { "Silicon" "Nitride" } \
[Link] = "Aluminum"
struct tdr=points
Figure 143 on page 788 (upper left) shows the initial structure, and the lower-left figure shows
the results after the insertion.
You also can read the polygon from a TDR file and insert it later. The following script reuses
the files from the previous example by doing that. It reads the Aluminum material as a polygon,
and inserts it in the original script as oxide in silicon material only:
init tdr=orig
polygon name=box xy tdr = "points_bnd.tdr" materials = "Aluminum"
insert polygon = "box" [Link] = "Silicon" [Link] = "Oxide" \
info=4
struct tdr=tdr
Figure 143 (lower left) shows the results after the insertion.
Figure 143 Use of insert command in a 2D simulation: (upper left) initial 2D structure, (lower
left) triangular polygon being inserted in the initial structure for silicon and nitride
only, and (upper right) the results of reading the triangle of the lower-left figure
and inserting it as oxide in the silicon of the initial structure
Figure 144 Initial 3D structure used for polyhedron creation and insertion examples
The spheres are inserted into Sentaurus Process. The gas sphere etches the material, while the
silicon one is deposited:
init tdr=initial
refinebox clear
sde off
struct bndfile=result
Figure 145 (Left) Polyhedra included in a TDR boundary file and (right) effect of inserting
them in initial structure
Extruding a 2D Polygon
Finally, to insert it, specify [Link] as gas to etch the extruded polygon:
insert polyhedron=prism [Link]=Gas
struct bndfile=result
This example defines the polyhedra from the beginning using polygons:
init tdr=initial
refinebox clear
sde off
Figure 147 Etching of a polyhedron defined by using polygons: (left) 3D general view and
(right) y-plane cut view
Defining a Brick
The brick option provides a convenient way to define a rectangular prism by defining the
lower and upper corners. The script is as follows:
init tdr=initial
refinebox clear
sde off
Now, you can use the polyhedron to insert an oxide brick into the simulation:
insert polyhedron=smallCube [Link]=Oxide
struct bndfile=result
References
[1] J. A. Sethian, Level Set Methods and Fast Marching Methods: Evolving interfaces in
computational geometry, fluid mechanics, computer vision, and materials science,
Cambridge: Cambridge University Press, 1999.
Overview
The IC WorkBench EV Plus (ICWBEV Plus)–TCAD Sentaurus interface drives the TCAD
simulations from the GDSII or OASIS layout file provided by designers, which could be at any
level of integration in the hierarchy: full chip, test chip, or a single cell.
The TCAD simulation domain can be conveniently chosen using specific markups in the layout
file. A single process flow can be defined for all devices in the layout and can be applied easily
with minimal adjustments for 1D, 2D, and 3D simulation domains. For meshing, it provides
the unique feature of layout-driven meshing. Electrical contacts can be defined easily using
auxiliary masks.
The general ICWBEV Plus training is a good starting point. Here, the focus is mainly on
ICWBEV Plus operations that are most relevant to TCAD Sentaurus users.
For details, refer to the ICWBEV Plus tutorials and manuals, which are accessed through the
main window of ICWBEV Plus (Help > Topics). The homepage of the online documentation
is displayed (see Figure 149).
The first step consists of opening a layout file, which is typically in GDSII format.
Figure 150 ICWBEV Plus main window, with TCAD Sentaurus–specific buttons (red box)
The TCAD Sentaurus toolbar is located in the upper-right corner of the main window. Table 72
describes the relevant toolbar buttons.
Sentaurus Markups
Sentaurus markups are used to add the simulation domain in 1D, 2D, and 3D domains as
needed. The Command Pane in Figure 151 shows the commands after adding Sentaurus
markups in the layout using GUI actions.
For 2D TCAD simulations, it can be useful to work with composite simulation domains, for
example, when the different contacts in a device layout cannot be connected by a single straight
line. In this case, it is not possible to perform a 2D device simulation after a 2D process step
using a single 2D simulation domain. However, a 2D TCAD simulation using a composite 2D
simulation domain is feasible. In this case, the various 2D cuts in the layout are daisy-chained
to form a composite 2D simulation domain.
An example of a composite simulation domain is shown in Figure 152, which shows a close-
up of the layout of a bipolar transistor with two 2D TCAD simulation domains. The simulation
domain labeled BJTBE cuts through two base–contact fingers and one emitter finger. The
simulation domain labeled BJTC cuts through the collector contact.
NOTE The two simulation domains are orthogonal and not contiguous.
Figure 152 Layout of a bipolar transistor with two 2D simulation domains: BJTBE cuts
through two base–contact fingers and one emitter finger, and BJTC cuts through
the collector contact
Figure 153 on page 800 shows the 2D TCAD simulation results obtained with a composite
simulation domain consisting of both the BJTBE and BJTC domains. Using a composite
simulation domain allows simulating a functional bipolar junction transistor (BJT) even for a
2D TCAD simulation.
Figure 153 Two-dimensional TCAD simulation results using composite simulation domain
consisting of the 2D domains BJTBE and BJTC
Stretch Utility
The stretch utility provides a convenient way to parameterize a layout by inserting a uniformly
stretched segment into the layout. For example, this feature can be used to generate a set of
transistors that have different gate lengths but are otherwise identical.
Figure 154 (Left) Snapshot of sample ICWBEV Plus layout with stretch utility line and (right)
effective layout seen by Sentaurus Process when the layout is loaded with a
positive stretch amount
A stretch line must be defined in ICWBEV Plus first. The stretch amount is set after loading
the TCAD layout with the Sentaurus Process command:
icwb stretch name= "<stretch-name>" value= <stretch-amount>
This feature can be used for simple parameterization of layouts for quantities such as threshold
rolloff. Figure 155 shows a close-up of the layout containing an NMOS transistor. In addition,
two stretch lines are shown. The stretch line labeled NMOS_W is used to vary gate width, and the
one labeled NMOS_L is used to vary the gate length in an NMOS.
NOTE The stretch line must cross the entire simulation domain to which it
should be applied. Stretch lines can be used for 2D and 3D simulation
domains.
Figure 155 Adding stretch lines in a layout to vary gate width and gate length
Figure 156 on page 802 shows the resulting changes in the NMOS gate width and gate length.
The default naming scheme for a stretch line is Stretch<n>.
For example, to apply a stretch at run-time in Sentaurus Process, use a command such as:
icwb stretch name= "NMOS_W" value=@Stretch@
where NMOS_W is the name of the stretch variable. Here, the amount of stretching is defined
using the Sentaurus Workbench variable @Stretch@. A positive stretch value is used for
expansion; a negative value leads to shrinkage.
Figure 156 Effect of stretch utility on 3D NMOS structure showing variation in width and
length
Renaming Markups
Markups can be renamed and edited.
To rename markups:
1. View > Views > Open Cells.
2. Expand the markup type, for example, Highlights.
3. Click the respective Sentaurus Process markup to edit the name.
4. Click the coordinates to edit the coordinate values.
Figure 157 shows the Open Cells pane, displaying the list of Sentaurus Process markups and
their coordinates that can be edited as required.
Figure 157 Open Cells pane showing list of objects with descriptions
Auxiliary Layers
Auxiliary layers are used, for example, to denote the position of electrical contacts in a layout.
To add auxiliary layers, first a layer must be declared and attributes must be defined. Figure 158
illustrates how to define a layer and its attributes.
To add auxiliary layers, draw a polygon defining the region of the layer:
1. Open the layout for editing: Edit > Cell Edit.
2. Select the active layer.
3. Select the shape tool.
4. Draw a polygon.
Editing Polygons
If required, polygons can be edited. You can edit polygons by either:
■ Resizing a rectangle.
■ Converting a rectangle to a polygon.
Resizing a Rectangle
To resize a rectangle:
1. If not already open, open the layout for editing: Edit > Cell Edit.
2. Activate the selector tool.
3. Click the polygon edge to select it.
4. Move the edge as needed.
Figure 159 Moving the edge of a rectangle: select the rectangle and drag an edge
Figure 161 shows the transformation of a GDSII layout and the transformation parameters.
After performing the necessary operations on the layout file, save the resulting Sentaurus
markup file.
NOTE Including new layers in the markup file keeps the original GDSII file
intact.
3. Select the layout file corresponding to the markup file using one of the three options shown
in Figure 162:
a) Active Layout: Select this option when using a centrally located GDSII layout. This
option is particularly useful when working with a very large full-chip layout.
b) Choose File: Select this option when working with an edited or a local version of the
GDSII layout.
c) Markups Only: Select this option to manage the layout pointer and marker pointer
separately. This option suppresses storing of the layout file pointer.
4. Type the file name in the Save File as field.
5. Click OK.
The recommended extension for saving the file is _mkp.mac, for example, BiCMOS_mkp.mac.
Version information:
# Sentaurus markup information - Fri Jan 11 17:15:39 PDT 2013
# version - D-2010.06-14 (Production)
Setting for treating self-intersection: By default, all layers are ORed. This convention is
expected by all subsequent tools and, therefore, this setting should not be altered.
default winding 1
Global transformations:
cell transform 1.0 0.0 0 0.0 0.0
Auxiliary layers:
polygon -layer 20:0 {950 5150 950 5350 1150 5350 1150 5150}
...
Simulation domains:
point add {8900 8100} Emit1D
gauge add {2100.0 7900.0 2100.0 10000.0} PMOS
highlight add {7900.0 7550.0 9900.0 9900.0} BJT3D
...
File end:
select clear
catch {view default}
Figure 163 Open File dialog box for reloading the markup file
Layer declarations and display settings: Same as Contents of Sentaurus Markup File.
Simulation domains in a layout file are described below. Point, gauge, and highlight
coordinates are mentioned first, and all polygons associated with the given simulation domains
are listed:
■ 1D simulation domains:
point add {8900 8100} Emit1D
polygon -layer 1:0 {8890 8090 8910 8090 8910 8110 8890 8110}
...
■ 2D simulation domains:
gauge add {2100.0 7900.0 2100.0 10000.0} PMOS
rectangle -layer 1:0 {2090 10010 2110 7890}
...
■ 3D simulation domains:
highlight add {7900.0 7550.0 9900.0 9900.0} BJT3D
polygon -layer 1:0 {7890 7540 9910 7540 9910 9910 7890 9910}
...
In the TCAD layout file, layers are clipped to simulation domains. In addition, these layers are
repeated for each simulation domain. For better viewing, layers are padded 10 units (nm).
NOTE Do not extract a TCAD layout from a reloaded TCAD layout. TCAD
layout files should always be extracted from the Sentaurus markup file.
To start ICWBEV Plus in batch mode run the following command from the shell prompt:
> icwbev -nodisplay -run <name>_mkp.mac
Coordinates found in the TCAD layout file are multiplied by the value of the optional
parameter scale as the file is read.
For example, to load the TCAD layout file BiCMOS_lyt.mac and apply a rescaling factor of
1 ⁄ 1000 to convert the ICWBEV Plus default unit of nanometer to the Sentaurus Process
default unit of micrometer:
icwb filename= "BiCMOS_lyt.mac" scale=1e-3
For example:
set Domains [icwb list domains]
-> icwb: Domains -> Emit1D NBODY NMOS BJT3D PMOS3D
For example:
set LNames [icwb list layerNames]
-> icwb: LNames -> NWELL NPDIFF POLY EMIT METAL CONT ndrain ngate nsource base
emitter collect
For example:
set LIDs [icwb list layerIDs]
-> icwb: LIDs -> 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0
For example, to select a single simulation domain (which can be 1D, 2D, or 3D):
icwb domain = { PMOS }
This command returns 3 for 3D simulation domains (highlight), 2 for 2D simulation domains
(gauge), and 1 for 1D simulation domains (point).
For example:
set DIM [icwb dimension]
-> icwb: dimension -> 3
For example:
set LXmin [icwb bbox xmin] ; set LXmax [icwb bbox xmax]
set LYmin [icwb bbox ymin] ; set LYmax [icwb bbox ymax]
-> icwb: Layout Bounding Box -> 7.9 9.9 7.55 9.9
To find the coordinates of the bounding box that automatically recenters the simulation domain
to start at the origin:
icwb bbox left | right | back | front
For example:
set Ymin [icwb bbox left] ; set Ymax [icwb bbox right]
set Zmin [icwb bbox back] ; set Zmax [icwb bbox front]
-> icwb: Centered Bounding Box -> 0 2.35 0 2
Creating Masks
To create a mask from a layer:
[Link] [Link]= (<string>|<string list>)
[name= <string>] [polarity= (positive|negative)] [info=<n>]
[shift= {dy dz}] [stretchypos= {yo dy}] [stretchyneg= {yo dy}]
[stretchzpos= {zo dz}] [stretchzneg= {zo dz}]
Several layers can be ORed to create a single mask. The following command illustrates the OR
procedure:
[Link] [Link]= "NPDIFF PPDIFF NPLUG PBASE" name= STI info=1
The info flag directs more detailed information about the mask creation process to the log file.
To automatically create mask layers with both polarities, use the following macro:
[Link]
The resulting mask names are <layername>_p for the positive version and <layername>_n
for the negative version.
The keywords starting with the word stretch allow you to stretch individual layers in a
manner similar to the icwb stretch command. (The latter, however, is applied to all layers
and takes the location of the stretch from the TCAD layout file.) The remaining part of the
keyword determines if the stretch is applied along the y- or z-direction, and if the layer is
stretched to the positive or negative side of the stretch position. For example, to move the
vertices of layer 1:0, which have a y-coordinate less than 1.2 by –0.25 μm, use:
[Link] [Link]= 1:0 stretchyneg= {1.2 -0.25}
This command operates on layer vertex coordinates and does not check if the resulting polygon
is valid. When using these commands to shrink layers, you must ensure that the resulting
polygons are still well defined, for example, not self intersecting.
More than one shift and stretch keyword can be used in an [Link]
command. As these operations may not be commutative, you must note the order in which
these operations are applied if more than one is used. First, the shift is applied, and then
stretchypos, stretchyneg, stretchzpos, and finally stretchzneg are applied.
NOTE This order is hard coded and not influenced by the order the keywords
appear on the command line.
NOTE If you have a large layout with masks containing many polygons, it can
take some time until the Tcl function [Link]
parses and creates the masks. In this situation, you can use the command
icwb [Link] to create all the masks (see icwb on
page 916). This command works like the Tcl version but creates the
masks much faster.
Layout-driven Meshing
To create a refinement box that is tied to layers in the ICWB TCAD layout file:
[Link] [Link]= (<string> | <string list>) [name= <string>]
[oversize=<n>] xtop=<n> xbot=<n> <other options> [info=<n>]
Layout-driven meshing can be particularly useful when meshing in critical regions, such as the
channel and emitter areas of BiCMOS devices. The following example illustrates the use of the
POLY layer for meshing placement:
[Link] name= UnderPoly [Link]= POLY oversize= 0.1 \
xtop= -1.51 xbot= -1.35 info= xrefine= 0.02 yrefine= 0.02
[Link] name= SiOxPo [Link]= POLY oversize= 0.1 \
xtop= -1.51 xbot= -1.35 [Link]= 0.005 \
[Link]= {Silicon Oxide Silicon Polysilicon}
The oversize parameter gives the option to mesh in areas wider than the layer. Figure 166
and Figure 167 on page 818 demonstrate the use of the oversize parameter in the emitter
region of a BJT and the channel region of an NMOS, respectively.
Figure 166 Meshing in emitter region of BJT; the oversize parameter is set to 0.1 μm
Figure 167 Meshing in channel region of NMOS; the oversize parameter is set to 0.1 μm
The utility command [Link] interfaces with the standard refinebox command
by providing information about the refinement extent (minimum and maximum) based on the
selected layer.
NOTE The extent of the refinement box in the primary direction must be given
explicitly with the keywords xtop and xbot. Any other commands are
passed on.
Layout-driven mesh refinements are applied under the layer itself. They
cannot be applied under the inverse of a layer. Consider defining
auxiliary layers in ICWBEV Plus to facilitate layout-driven meshing in
areas that do not coincide with an existing layer.
This feature supports only layers with axis-aligned edges. Slanted edges
may result in a large number of refinement boxes, which may not
appropriately represent the original shape.
Often, there is no layer in the layout provided by designers that can be used readily for the
creation of contacts. In this case, add auxiliary layers in ICWBEV Plus to be used as markups
for device contacts.
The following example demonstrates the assignment of gate and drain contacts using layout-
driven contact assignment:
[Link] [Link]= ndrain name= drain point aluminum \
replace x= -2.0
[Link] [Link]= ngate name= gate box polysilicon \
[Link]=oxide xlo= -2.05 xhi= -1.95
The location in the primary direction must be given explicitly with either the keyword x for a
point-type contact, or with the keywords xlo and xhi for a box-type contact. Any other
command is passed on to the contact command. The keyword name is optional. If no name
is given, the name of the layer is used as the contact name.
Figure 168 on page 820 shows a layout on which auxiliary layers have been added for layout-
driven contact assignment. Figure 169 on page 820 shows the 2D boundary after the process
simulation with Sentaurus Process depicting the gate, drain, and source contacts.
Figure 168 Auxiliary layers added for gate, source, and drain contacts are represented by
rectangles of solid color in the layout
Figure 169 Final boundary after TCAD simulation showing gate (red), drain (blue), and
source (green)
The TCAD layout reader command icwb [Link] returns the relative angle
of the active simulation domain so that the slice angle can be adjusted as needed.
SIM3D1 90
SIM2DXLR 0
SIM2DXRL 180
SIM2DYDT 90
SIM2DYTD –90
Figure 170 shows a sample layout with a 3D simulation domain and the four 2D simulation
domains previously discussed. Figure 171 on page 822 and Figure 172 on page 822 show the
dopant profiles after the tilted implants for the different simulation domains.
Figure 170 Structure layout where implant is performed at highlighted L-shaped red region
Figure 172 Two-dimensional implanted profile for selected slice angles as mentioned in
Table 73 on page 821
For a 3D simulation domain, the following command returns a list containing the bounding
boxes for all polygons in the given layer (this command also can be used for 2D):
set PolyBBoxes [icwb list [Link] [Link]= "<layer-name>"]
For a 3D simulation domain, the following command returns a list containing a tessellated
representation of polygons in the given layer (this command also can be used for 2D):
set PolyTessel [icwb list [Link] [Link]= "<layer-name>"]
For example, Figure 173 shows a simple layout containing two polygons in layer 0:0. The
following commands:
■ Load the TCAD layout file (here, called ORG_lyt.mac).
■ Select the 2D simulation domain SIM2D1.
■ Query the segment, the bounding boxes, and the tessellations:
icwb filename= "ORG_lyt.mac"
icwb domain= "SIM2D1"
NOTE The bounding box and tessellation queries are supported for 2D, and
they return flat rectangles. The returned y-values are the same as for the
segment query; however, zeros are padded for the z-direction.
When loading the 3D simulation domain SIM3D2, the set of rectangles returned by the
[Link] query and the [Link] query are different:
icwb filename= "ORG_lyt.mac"
icwb domain= "SIM3D2"
The [Link] query returns the bounding box rectangle for each polygon
in the layer, while the [Link] query breaks each polygon into a set of
rectangles and then returns these rectangles. The set of rectangles covers the same area as the
original polygon, while the bounding box rectangles may cover a larger area.
Figure 174 shows the rectangles returned by the two query functions as an ‘effective/
equivalent’ layout for better comparison with the original layout shown in Figure 173 on
page 823.
Figure 174 Set of rectangles returned by (left) [Link] query and (right)
[Link] query for polygons shown in Figure 173
Overview
This chapter covers basic tasks such as obtaining a list of materials currently in the structure,
and obtaining 1D dopant profiles from 2D or 3D structures to more complex ones, such as
looping through all materials and extracting Pearson parameters for each material. The
following commands perform these tasks: select, slice, layers, interface,
interpolate, print.1d, FitPearson, mater, FitPearsonFloor, FitArrhenius, and
FitLine.
All these Sentaurus Process commands are built-in procedures designed to work with the tool
command language (Tcl). These commands allow you to take full advantage of the
programmability of the Sentaurus Process input language and provide a powerful framework
for performing complex customized tasks.
These commands return or accept a Tcl list to perform their respective functions. The Tcl list
can be viewed and processed by the user, passed to another function, written to a file, or read
from a file. For example, the slice command returns a Tcl list of xy pairs where the x value
gives the depth [ μm ] and the y value gives the value chosen with the select command. This
list can be viewed with the Tcl puts command, written to a file with the Tcl open and puts
commands, or processed with another command such as fitting a Pearson function to the profile
with the FitPearson command.
An understanding of basic Tcl commands and Tcl lists is helpful to utilize fully the flexibility
of these commands. For convenience, some basic aspects of Tcl are described to enable you to
work efficiently with these commands, and examples of basic results analysis are provided.
in the TDR file. You can control the fields that will be saved in the TDR file using the
SetDFISEList command (see SetDFISEList on page 1057).
Since the active and total dopant concentrations are defined as terms in Sentaurus Process, they
are converted automatically to data fields with the same name when saved to TDR files.
Because the conversion is handled internally, the data fields are not kept in the memory.
You can create new data fields and store them in a TDR file. For example:
sel z= "BActive/BTotal" name=BActiveRatio store
will divide the active boron concentration by the total boron concentration, and will save the
results in a data field called BActiveRatio. The parameter store ensures that the newly
created field will be saved in a TDR file. To see whether a field will be saved in a TDR file, the
select command with the option permanent can be used (see select on page 1053), for
example:
sel name= Boron permanent
will return 1 if the field will be saved in a TDR file. Otherwise, it will return 0.
The expression can be simply the name of a solution variable (such as Boron, H2O, or
Stress_x) or it can be a complex expression depending on what is required. If the expression
is the simple name of an existing data field, the select command selects this data field.
If it is more complex expression, the select command creates a corresponding data field and
then selects it, for example:
select z= BTotal ;# Select the total boron concentration
# term
select z= "Arsenic+Phosphorus-Boron" ;# Create and select a data field using
# solution variables
select z= log10(BActive) ;# Create and select a data field from
# the active boron concentration
The list of available data fields can be retrieved by using select list. The name that can
appear in the expression of the z parameter can be either a data field or a term.
A term is defined with the term command and is also an expression containing solution
variables, data fields, constants, and so on (see term on page 1099). Numerous terms are
created automatically in the diffuse command (see diffuse on page 875) and any of these
terms can be selected.
When a data field is selected (or created and selected) with the select command, the data field
can be viewed or operated on. The following commands can operate on the selected field:
slice, layers, interpolate, [Link], print.1d, and plot.1d.
The print.1d command returns a list of data-point lists. Each data-point list contains the
coordinate, data value, and the material name at that coordinate. Again, a cut perpendicular to
x is made by specifying the x parameter and, similarly, for the y and z cuts.
The plot.1d command can be used to view profiles with a temporary X11 graphics tool.
Examples
Sentaurus Process can run in interactive mode if there is no command file given on the
command line. In this case, you are prompted with the sprocess> prompt for commands. If
a command file is given, commands are read from this file. In interactive mode, the return value
of the commands is always displayed. You can set variables to the return value of a command
by using the syntax:
set var [command]
In this case, command is executed and a Tcl variable var is created if it does not already exist,
and the value of var is set to the return value of command. In addition, the return value of
command is displayed. It is also possible to write the return value to a user-defined file. The
following examples demonstrate the differences and functionality of the slice and print.1d
commands:
sprocess> select z= Vacancy
sprocess> slice y=0.6
{-1.000000e-02 4.804720e+16
-9.340278e-03 5.869015e+16
...
0.000000e+00 5.969905e+17
0.000000e+00 7.075867e+17
7.421875e-04 7.618894e+17
...
sprocess> print.1d y=0.6
{ Distance Value Material }
{ -1.00000e-02 4.80472e+16 Oxide }
{ -9.34028e-03 5.86902e+16 Oxide }
...
{ 0.00000e+00 5.96991e+17 Oxide }
{ 0.00000e+00 7.07587e+17 Silicon }
{ 7.42188e-04 7.61889e+17 Silicon }
...
Here, the slice command returns raw coordinate data pairs, whereas print.1d returns a
header and coordinate data–material triplets. In both cases, the coordinates are given in
–3
micrometers and the concentration is in cm .
To illustrate how data from these functions can be manipulated with Tcl, suppose you require
a 1D profile of vacancy, which starts with 0.0 as the first coordinate, and the vacancy
–3
concentration to be in μm .
First, create a Tcl list from the data returned by the slice, and convert data in that list to a new
list, such as:
set vacList[lindex [slice y=0.6] 0] ;# Create a new list from slice
# command called vacList
set offset [lindex vacList 0] ;# Grab the offset, that is, the
# first coordinate
list modList ;# Create new Tcl list where modified
# data will reside
foreach { coord data } $vacList {\
lappend modList [expr $coord-$offset] ;#Convert coordinate by subtracting
# the offset and append to modlist
lappend modList [expr $data*1.0e-12] ;# Convert data to um^-3 units and
# append to modlist
}
The top and bottom coordinates are in micrometers. To obtain the total integrated dose along
y=0.5, use:
sprocess> set total 0
0
# Loop over layerInfo list of lists skipping header list,
# and retrieve the 3rd element of each list (first element has 0 index)
# which corresponds to the Integral for that layer.
sprocess> for { set i 1 } { $i < [llength $layerInfo] } { incr i } {
> set total [expr $total + [lindex [lindex $layerInfo $i] 2]]
> }
sprocess> puts $total
9.991288377e+14
sprocess>
In addition to the Tcl commands used in the previous section, this example uses the following:
■ llength returns the size of a given list.
■ incr increases an integer by 1.
For more information about the layers command, see layers on page 967.
The four main parameters of this command are x, y, z, and val. The command operates on a
selected data field. In 1D, you must supply either x or val. If x is supplied, Sentaurus Process
returns the value at x. If val is supplied, Sentaurus Process returns the locations at which the
selected profile crosses val.
In 2D, two of the four parameters must be given (not z) and, in 3D, three of the four parameters
must be given. For example, in 2D, if x and val are given, the locations along x where val is
crossed are returned. If x and y are given, the value at this location is returned. For more
information, see interpolate on page 950.
For example, to extract the boron concentration at position 0.04 μm in the silicon and the YY
component of the element stress at position – 0.001 μm in the oxide for each diffuse
substep:
extract name=etest command= {
sel z=Boron
interpolate Silicon x=0.04
sel z=StressEL_yy element
interpolate Oxide x=-0.001
}
This command must be defined before the diffuse step. After the diffuse steps of interest,
the following command retrieves the extracted data values for the defined extraction etest:
extract name=etest print
The following script demonstrates how to manipulate this list for more formatted output:
set extdata [extract name=etest print]
foreach { time bval sval } $extdata {
puts "$time $bval $sval"
}
Resistivity
The background concentration of the wafer can be defined using the resistivity of the wafer.
You can define the resistivity of the wafer with the init command, which requires a field name
to calculate the background concentration. For example:
line x location = 0 tag=top
line x location = 10 tag=bot
region silicon xlo = top xhi = bot
init field=boron silicon resistivity=1.4
16 –3
sets the boron concentration of the wafer to 1.08 ×10 cm in silicon.
where:
■ q is the electron density.
■ N is the background concentration.
■ μ is the mobility.
where <model> can be Model1 [1], or Model2 [2], or Model3 [3]. They are given as:
■ Model1:
μ max – μ min
μ = μ min + ---------------------------
- (948)
N α
1 + ------
N r
■ Model2:
PC
– ------ μ max – μ min2 μm
μ = μ min e N + ------------------------------
α
- – -----------------------β (949)
1 + ------
N Ns
N r 1 + ------
N
■ Model3:
P
– -----C- μ max
N
μ p = μ min e + -----------------------α-
1 + ------
N
N r (950)
3
A0 + A1 X + A2 + A3 X X2
-----------------------------------------------------------
3
-
1 + B1 X + B2 X 2 + B3 X
μ n = 10
X = log ------
N
N r
(951)
In addition to these models, a user-defined mobility model can be set using the command:
pdbSet <material> <dopant> [Link] <String Expression>
For example, the Mobility1 model for boron in silicon can be set using the command:
pdbSet Silicon Boron [Link] \
"(49.705+(467.729-49.705)/(1+abs(tNetActive/1.606e+17)^0.7))"
Sheet Resistance
The sheet resistance and p-n junction depth of a semiconductor layer in the vertical direction
are calculated using the command:
SheetResistance <args>
where <args> must be the y–cross section in 2D, and the y– and z–cross sections in 3D. For
example, in 3D:
SheetResistance y=0.4 z=-0.1
q ( μ n n + μ p p ) dx
pn i
where μ X is mobility of the holes ( p ) or electrons ( n ) given in Eq. 948 or Eq. 949 or Eq. 950.
The active concentration of dopants is calculated at the last diffusion temperature. The electron,
n , and hole, p , concentrations are calculated assuming charge neutrality at a temperature of
300 K.
Sheet resistance can be calculated only after a diffusion statement or activation step. For
example:
diffuse time=0.0 temperatur=1000
SheetResistance y=9.4 z=-0.1
Since not all data fields are stored in the TDR file, the sheet resistance may not be calculated
after loading the TDR file even though the last command was a diffusion command.
References
[1] D. A. Antoniadis, A. G. Gonzalez, and R. W. Dutton, “Boron in Near-Intrinsic <100>
and <111> Silicon under Inert and Oxidizing Ambients—Diffusion and Segregation,”
Journal of the Electrochemical Society, vol. 125, no. 5, pp. 813–819, 1978.
[2] G. Masetti, M. Severi, and S. Solmi, “Modeling of Carrier Mobility Against Carrier
Concentration in Arsenic-, Phosphorus-, and Boron-Doped Silicon,” IEEE Transactions
on Electron Devices, vol. ED-30, no. 7, pp. 764–769, 1983.
[3] W. R. Thurber et al., The Relationship Between Resistivity and Dopant Density for
Phosphorus- and Boron-Doped Silicon, National Bureau of Standards Special
Publication 400-64, Washington, DC, USA, May 1981.
Overview
In Sentaurus Process, during the simulation of diffusion steps, three different sets of nonlinear
partial differential equations must be solved:
■ Oxidant diffusion and reaction
■ Dopant diffusion and reaction
■ Stress equations
In the case of silicidation, the transport and reactions of dissolved silicon or dissolved metal is
handled similar to the oxidant diffusion and reaction.
The oxidant, dopant, and point-defect equations are solved on the simulation mesh using a
trapezoidal rule/backward differentiation formula (TRBDF) time discretization, a finite
volume (box) method for the spatial integration, and a Newton method to solve the nonlinear
equations.
For the discretization of the nonlinear stress equations, piecewise linear finite elements are
used. If stress history is tracked, the stress equations are solved, not only during the simulation
of diffusion steps, but also at the end of etch and deposit steps.
Various direct and iterative solvers are integrated in Sentaurus Process to solve the large
systems of linear equations in each Newton iteration. By default, for all equations in 1D
simulations and for mechanics equations in 2D simulations, the parallel direct solver
PARDISO is used. For diffusion equations in two dimensions and for all equations in three
dimensions, the iterative solver ILS is used. The solver can be selected using the math
command:
math ils
This command selects the solver ILS for all types of equation in 1D, 2D, and 3D. Separate
selections can be made for the various spatial dimensions and for the solution of mechanics
equations and diffusion equations (the same settings are used for both oxidant and
dopant–point defect equations).
The parameters Flow and diffuse select the type of equation, and the parameter dim
specifies the spatial dimension:
math Flow dim=2 ils
math diffuse dim=2 pardiso
math Flow dim=3 pardiso
If a direct solver is used, a modified Newton method is used by default; Sentaurus Process tries
to avoid the recomputation and factorization of a new matrix and will reuse the last factorized
matrix, as long as the convergence rate remains sufficiently high. For the iterative solvers, by
default, a modified Newton scheme is used as well.
The math command is used to specify various parameters for the Newton iterations and to
define resources and specifications for the linear solvers (see math on page 984).
For the default settings for ILS, refer to the parameter database browser (PDB). More detailed
settings for ILS can be made using pdbSet commands as described in the next section.
NOTE ILS is not recommended for use in 1D simulations because of the simple
structure of matrices arising in 1D cases. The default direct solver
PARDISO is the correct choice for 1D simulations.
Different ILS parameters can be specified for diffuse and Flow, both in 2D or 3D. In general,
the pdbSet command for the ILS parameters has the form:
pdbSet Math [diffuse | Flow] [2D | 3D] ILS.[command] [value]
[Link] Double
[Link] Boolean
[Link] Double
[Link] String
[Link] String
[Link] Boolean
[Link] String
[Link] Double
[Link] Double
[Link] Double
[Link] String
[Link] String
[Link] Double
[Link] Double
[Link] Double
[Link] Boolean
[Link] Double
To specify the FlexibleGMRES method, for example, fgmres(40), to solve the stress
equations, use:
pdbSet Math Flow 3D [Link] fgmres
pdbSet Math Flow 3D [Link] 40
pdbSet Math Flow 3D [Link] 5
To select the efficient reuse mode (on each 3D diffuse time step, the costly reordering is applied
only once to a first Jacobian system), specify:
pdbSet Math diffuse 3D [Link] 2
To improve the accuracy and convergence of iterative linear solvers, use an enhanced option
available in Version H-2013.03 by specifying (default value is 0):
pdbSet Math [diffuse | Flow] [2D | 3D] [Link] 1
To use the 3D diffuse gmres solver in the advanced parallel implementation, specify:
pdbSet Math diffuse 3D [Link] 3
In this command, the value 3 activates algorithmic improvements made in Version H-2013.03,
while the value 2 corresponds to Versions G-2012.06 and F-2011.09, and the value 1
corresponds to Version E-2010.12.
To select the solvers for mechanics, STS2 or STCG2 for 2D, and STS3 or STCG3 for 3D, for
example, sts3, use:
pdbSet Math Flow 3D [Link] sts3
pdbSet Math Flow 3D [Link] 1e-10
pdbSet Math Flow 3D [Link] 5e-4
pdbSet Math Flow 3D [Link] diagsym
pdbSet Math Flow 3D [Link] none
For the mechanics solvers STS2, STS3, STCG2, and STCG3, it is mandatory to specify
[Link] as diagsym, and [Link] as none. It is also recommended
–4 –5
to specify the value for the parameter [Link] in the range of 5 ×10 – 5 ×10 .
To improve convergence of the mechanics solver STS2 or STS3, use an enhanced version of
the solver by specifying, respectively (default value is 0):
pdbSet Math Flow 2D [Link] 1
or:
pdbSet Math Flow 3D [Link] 1
The enhanced version takes advantage of results from previous solve steps, so the actual
performance gain can vary depending on the simulation setup, and it performs best when there
is a sequence of mechanical solve steps, as in temperature ramps.
where numThreads is the number of threads that would be used during the matrix assembly.
numThreads is a general keyword (see math on page 984) used by both implant and linear
solvers. If you want to use a different number of threads for diffusion matrix assembly, use the
keyword numThreadsAssembly. If the number of threads is greater than 1, Sentaurus Process
first creates the threads.
NOTE Parallel assembly of the matrix is performed only for inert anneals. It is
recommended that numThreadsAssembly does not exceed the
number of actual cores of the computer. Parallel assembly of the matrix
is not available for moving-boundary problems such as oxidation and
silicidation.
Sentaurus Process then partitions the mesh structure into levels, and each level is divided into
different domains at the beginning of the diffusion step. For example, Figure 175 shows a
structure with three levels. The first level (blue) (L0) has four domains: D0, D1, D2, and D3.
Elements belonging to each domain on the same level do not cross over to the other domains.
The second level (orange) (L1) also has four domains: D0, D1, D2, and D3. Again, the
elements on the same level do not cross over to the other domains. The third level (green) (L2)
has only one domain: D0. This is the last level and contains all the elements not included in the
previous levels.
To partition the mesh, based on material type, give weight to each material using the command:
pdbSet <material> PartitionWeight <n>
For example:
pdbSet Silicon PartitionWeight 10
pdbSet Gas PartitionWeight 0
gives more weight to silicon mesh elements than the gas mesh elements during partitioning.
This allows Sentaurus Process to distribute the work among the threads more evenly since there
is no matrix assembly for the gas mesh.
This allows balancing the workload among threads according to the stress analysis methods for
different material behaviors. If the partition weights for mechanics assembly are not defined,
the partition weights for diffusion assembly are used by default.
You also can increase the automatically determined matrix size using the command:
pdbSet Math [Link] <n>
NOTE Be careful when choosing the matrix scaling values because it can
exhaust the computer memory for large scaling values.
The default order of equation numbering in the structure is based on the meshes. Each node in
the mesh receives an equation number from a solution variable and the same is repeated for the
next solution. This may create many distributed entries in the assembly matrix. Again, the order
may not greatly affect the simulation time for small examples (such as 2D), but it may degrade
3D results. It is possible to number equations based on solutions by taking a node in the mesh,
numbering it for each solution variable, and moving to the next node in the mesh. This creates
better-distributed entries in the assembly matrix. The order can be changed using the
command:
pdbSet Math < 1D | 2D | 3D > [Link] <model>
Time Integration
The TRBDF method [1] is used for time integration by default for time-dependent problems.
It also is possible to choose the backward Euler method for the time integration. The following
command can be used to switch between methods:
math {tr_bdf | euler}
The local truncation error can be estimated by either a Milne’s device (the default method) or
the divided difference method. The following command switches between methods:
math {milne | difference}
The local truncation error for the next time-step estimation can be modified using the
command:
pdbSet Math [Link] {<model>}
where <model> is Damped, UnDamped, or Linear. The Damped model applies a logarithmic
damping function to the truncation error if the error is greater than 1.0. The UnDamped model
does not modify the error. The Linear model applies a linear damping function to the
truncation error if the error is greater than 1.0. The Linear model matches that of
TSUPREM-4.
When the geometry of a simulation structure evolves, one cycle of the TRBDF time integration
requires the geometric coefficients at three incidents, that is, t = t 0, t 0 + Δt TR, t 0 + Δt . To
reduce the computational time to calculate the geometric coefficients, especially in three
dimensions, the geometric coefficients at t = t 0 + Δt TR can be set to the interpolated values by
assuming that the coefficients change linearly during Δt , which reduces the number of the box
method calls by one third:
pdbSet Math 3D [Link] 1
or:
math dimension=3 [Link]
Time-Step Control
This section discussed different time-step controls.
The first time step of the diffuse command uses the initial time given with the diffuse
command (see diffuse on page 875).
In an ideal situation, oxidation, mechanics, and diffusion time steps are equal to each other, and
the next time step is increased by the IncreaseRatio:
t n + 1 = I ratio t n (954)
where t n + 1 is the next diffusion time step, t n is the current time step, and I ratio is the
IncreaseRatio. The default for IncreaseRatio is 2.
In some cases, the ideal time step can be solution limited, grid limited, or reduced:
■ Solution limited is the case when the time step is shortened to decrease the local truncation
error; in a log file, such steps are marked by (s).
■ Grid limited is the case when the time step is reduced because of a grid motion; in a log
file, such steps are marked by (g).
■ Reduced is the case when the time step is reduced to prevent overstepping of oxidation or
mechanics steps; in log files, such steps are marked by (r).
If convergence is not achieved, the next time step is reduced by the ReduceRatio:
t̃ n + 1 = R ratio t n + 1 (955)
For more information about the convergence during diffusion, use the command:
pdbSet Diffuse [Link] {1 | 0}
where:
■ [Link] is the original value at the node.
■ [Link] is the original update at the node.
■ Org.-Updt is the Original Value – Original Update.
■ Apld. Updt. is the applied update.
BPTS uses the biggest previous time step from the history, such that Eq. 954 is modified as:
t n + 1 = I ratio t BPTS, n (956)
NGLTS uses the latest nongrid limited time step, and Eq. 954 is modified as:
t n + 1 = I ratio t NGLTS, n (957)
where the sum is taken over all solution variables, and u i is the update for solution sol i .
TransRelErr and AbsErr are the transient relative error and absolute error for the solution
variables, respectively. They can be set using the commands:
pdbSet <mater> <solution> [Link] <n>
pdbSet <mater> <solution> [Link] <n>
To control errors during nonlinear Newton iterations, Sentaurus Process uses the following to
calculate the error:
1⁄2
N ui 2
e = ---- ---------------------------------------------------------
1
(959)
N sol i × RelErr + AbsErr
i=1
where RelErr is the relative error for the solution variables. It can be set using the command:
pdbSet <mater> <solution> [Link] <n>
NOTE If the error control parameter is not defined in the PDB for a material or
a solution, the long-hand command pdbSetDouble must be used.
Convergence Criteria
To check the convergence of Newton iterations for mechanics equations [2][3], the criteria are:
■ Force residual
■ Energy
■ Displacement
The force residual criterion checks the satisfaction of force equilibrium by comparing the
external internal
maximum norm of the residual ( R = F –F ) against a reference value:
i 1
Rn + 1 ∞ ≤ εR Rn + 1 (960)
The reference value of the force residual is computed automatically by taking a norm of the
element force residual vector at the first Newton iteration in a time step.
The energy criterion checks the satisfaction of the minimization of energy at equilibrium by
comparing the change in energy against a reference value:
i i 1
Δu n + 1 ⋅ R n + 1 ≤ ε E Δu n ⋅ R n + 1 (961)
The reference value of energy is computed automatically by taking a dot product of the force
residual and the displacement increment ( Δu = vΔt ) vector at the first Newton iteration in a
time step.
The displacement criterion checks the satisfaction of the solution accuracy by comparing the
maximum norm of the displacement increment against a reference value:
i
Δu n + 1 ∞ ≤ ε u Δu n (962)
The force residual and the energy criteria are checked by default. Optionally, the energy
criterion may be replaced by the displacement criterion. Use the following parameters to
activate or deactivate any of the convergence criteria:
pdbSet Mechanics [Link] <n>
pdbSet Mechanics [Link] <n>
pdbSet Mechanics [Link] <n>
The choices for the force residual and the displacement reference value norms that can be set
using the following command are:
pdbSet Mechanics [Link] [RMS | ABS]
where RMS refers to the root mean square value (default) and ABS refers to the mean absolute
value.
The reference values for any of the convergence criteria can be changed by using the
commands:
pdbSet Mechanics [Link] <n>
pdbSet Mechanics [Link] <n>
pdbSet Mechanics [Link] <n>
By default, the tolerance for each of the convergence criteria is set to 0.001 and can be changed
by using the commands:
pdbSet Mechanics [Link] <n>
pdbSet Mechanics [Link] <n>
pdbSet Mechanics [Link] <n>
Convergence criteria are checked in every iteration until either they are satisfied or the
maximum number of Newton iterations is reached. The default value for the maximum number
of Newton iteration is 8, and this can be changed using the command:
pdbSet Mechanics MaxIterations <n>
Time-Step Adjustment
The first time step for solving mechanics equations is set to the initial time given with the
solve command. The size of subsequent time steps is decided based on the convergence
history of the preceding time step. The time-step size is extended if the preceding time step
converges quickly. The maximum value is limited to the maximum time given with the solve
command. The time-step size is reduced if the preceding time step takes too many iterations to
converge; it remains unchanged if the preceding time step takes a moderate number of
iterations to converge.
The time-step size also is adjusted to keep the viscoplastic or creep strain error or value within
tolerance when using such material models. Use the following commands to change the default
settings for the viscoplastic or creep strain error or value:
pdbSet Mechanics [Link] <n>
pdbSet Mechanics [Link] <n>
pdbSet Mechanics [Link] <n>
pdbSet Mechanics [Link] <n>
where <n> is a value between 0.0 and 1.0 for both. By default, only the viscoplastic or creep
strain error criterion is used with a tolerance of 0.02.
Time-Step Cutback
An automatic time-step cutback procedure interrupts the Newton iteration loop and restarts the
time step with a smaller size when any of the following issues is encountered:
■ Convergence criteria are not satisfied within the maximum number of Newton iterations.
■ The solution converges very slowly over several iterations.
■ The solution diverges over several iterations.
■ Convergence criteria are satisfied, but viscoplasticity equations fail to converge.
■ Convergence criteria are satisfied, but the viscoplastic or creep strain error or value is
greater than the tolerance.
To check convergence details during solve steps, specify info=1 in the solve command.
References
[1] R. E. Bank et al., “Transient Simulation of Silicon Devices and Circuits,” IEEE
Transactions on Electron Devices, vol. ED-32, no. 10, pp. 1992–2007, 1985.
[2] O. C. Zienkiewicz and R. L. Taylor, The Finite Element Method, Butterworth-
Heinemann: Oxford, 5th ed., 2000.
[3] K. J. Bathe and A. P. Cimento, “Some Practical Procedures for the Solution of Nonlinear
Finite Element Equations,” Computer Methods in Applied Mechanics and Engineering,
vol. 22, no. 1, pp. 59–85, 1980.
Description: This section describes the syntax. In the syntax definition, brackets denote
optional parameters, angle brackets denote a specific type of input, and
parentheses denote grouping. The way in which to read this syntax is that
param1 is a required parameter that takes a number (that is, <n>) as its
value.
The unit <unit1> or <unit2> can be specified. Do not use a space between
the unit and its number.
Description: The parameters param8 and param9 are Boolean; either can be specified
but not both. The parameter param10 is also a Boolean (if a Boolean is on
the command line, it denotes ‘true’; if it is preceded by ‘!’, its value is
‘false’). The parameters param11, param12, and param13 are optional but,
if param11 is specified, either param12 or param13 also must be specified.
Conversely, if either param12 or param13 is specified, param11 must also
be specified. The order of parameters is unimportant.
Options: The options of the command are listed.
Examples: This section illustrates the use of the command. The backslash (\) is a line
continuation character in Sentaurus Process, for example:
command param1=1.0<unit1> param2=1.0 !param10 param9 \
param3= "string for param3" \
param7= { element1 element2 element3 }
Common Parameters
Function: Parameters common to all commands.
Syntax: <command> [info=<n>] [parameters]
Description: Nearly all commands in Sentaurus Process (with the exception of those
implemented as Tcl procedures as well as a few others) support two common
parameters:
• info sets the amount of information to be printed to the screen and the
log file. The default is 0, which is the minimum amount. Higher levels
give more details about the status of the simulation as well as model and
parameter selection information. Recommended values are 0, 1, or 2.
This parameter can be used with any other parameter combination for
nearly all commands that are not Tcl procedures.
• parameters prints all available parameters for this command.
NOTE Some parameters are only intended for internal use and as such are not
documented. In a future release, these parameters will not be shown as
output. These parameters should not be used with any other parameter
of the command.
alias
Function: Sets and prints aliases.
Syntax: alias <c> [<c>]
In the case of two arguments, a new alias is set. If the number of arguments is
equal to one, aliases are printed. If the first argument is -list, a list of
allowed aliases is printed. Otherwise, only one alias corresponding to the
first argument is printed.
Examples: alias V Vacancy
Sets a new alias of Vacancy.
alias -list
Prints the list of allowed aliases.
alias Vac
Prints an alias of Vac.
ambient
Function: Creates new ambients for material growth reactions, such as oxidation or
silicidation, or creates a new epi growth mode.
Syntax: ambient
name=<c>
[react | inert | epi]
(list | print | clear | delete | add)
Description: Creates ambients. The ambient names can be used in the diffuse,
gas_flow, reaction, and temp_ramp commands. The default list of
ambients is given in Table 63 on page 605.
Options:
When creating a new ambient, these parameters set the ambient type:
• react is used to create an active ambient and can be used to define a
material growth reaction such as oxidation.
• inert ambients are used in gas_flow commands to create gas reactions
or to dilute active ambients.
• epi ambients are used to create new epi growth modes or models.
Examples: ambient name= MyO2 add react
Creates a new ambient for a new oxidation model.
ambient list
Lists the known ambients.
ArrBreak
Function: Computes one of two Arrhenius expressions depending on a ‘break’
temperature.
Syntax: ArrBreak <n> <n> <n> <n> <n>
Description: Creates two Arrhenius expressions and switches from the first one to the
second one at the given break temperature. The first argument is the
prefactor, and the second one is the activation energy [eV] of the first
Arrhenius expression. The third argument is the prefactor, and the fourth
argument is the activation energy [eV] of the second Arrhenius expression.
The final argument is the break temperature [ °C ].
Arrhenius
Function: Creates an Arrhenius expression.
Syntax: Arrhenius <n> <n>
Description: Creates Arrhenius expressions. The first argument is the prefactor and the
second one is the activation energy [eV].
Examples: Arrhenius 5.0 0.5
Creates an Arrhenius expression 5.0* exp ( – 0.5 ⁄ kT ) .
beam
Function: Creates a beam for multiple-beam etching.
Syntax: beam
name=<c>
(incidence=<n> | direction= {<x> <y>})
factor=<n>
list
Description: Defines the direction and relative strength of etchant beams. The beam name
is referenced in the etch command. The angle of incidence of the beam can
be given using the incidence keyword or by a direction vector, which is
normalized automatically to unit length. The relative strength factor is
used to mix the strength of different beams. Etchant beams are assumed to be
collimated, that is, a slight angular spread of beam direction is not taken into
account.
Options:
direction Another way to define the beam incidence angle is by a direction vector
defined with direction. The direction vector given by users is normalized
to unit length internally.
factor If multiple beams are defined, the relative strength of each beam can be
defined through factor, which is a relative strength factor.
incidence Defines the angle of incidence of the beam. An angle of 0 is vertical. The
angle is measured counterclockwise, that is, a positive angle implies a beam
ray entering from the upper left towards the lower right. A negative angle
implies a beam ray entering from the upper right towards the lower left.
list Returns a Tcl list of known beams.
name Specifies the beam name to be referenced using the sources option in the
etch command.
Examples: beam name=source1 incidence=0 factor=1
beam name=source2 incidence=10 factor=0.5
beam name=source3 direction= {1 -0.1} factor=0.1
Defines a vertical beam called source1 and a beam called source2 at half
the strength of source1 at an angle of 10° (positive angle implies that the
beam travels from the upper left to the lower right). A third beam called
source3 at one-tenth the strength of source1 enters from the upper right
slightly towards the lower left.
bound
Function: Extracts the boundary of a material or region, and returns the outline as a list
of coordinates.
Syntax: bound
[<material> | region=<c>]
Description: Extracts the boundary of a material or region, and returns the outline as a list
of coordinates. This command is used to plot the limits of the regions for
other processing. The return is a list of lists of coordinates of the boundary.
The outer lists are distinct pieces of the regions. Each outer list comprises a
complete circle around the piece. Each inner list contains coordinate pairs in
order around the regions. The coordinate pairs are written in xy order around
the material.
bound region=Silicon_1
Returns the boundary of the region named Silicon_1.
Compatibility
Function: Applies parameters consistent with the defaults in a previous release.
Syntax: Compatibility <release>
Description: Changes parameters to the default values from a previous release. If used,
this command must be the first command in the command file so that all
subsequent commands that depend on the defaults take into account the
compatibility setting (see Compatibility with Previous Releases on page 52).
Options:
<release> Applies parameters consistent with the specified release. Aliases are
available for the release name so that it is not necessary to know the release
foundation letter. For example, 2011.09 can be used instead of F-2011.09.
Examples: Compatibility 2010.12
Applies parameters consistent with Version E-2010.12.
contact
Function: Defines a contact for subsequent device simulation. Intended only for adding
contacts to structures created for device simulation.
Syntax: contact
[add] [list] [clear]
[depth=<n>]
[name=<c>]
[[Link]=<c>]
[print]
[sidewall]
[width=<n>]
[region=<c>]
[left] [right] [back] [front] [top] [bottom]
(
{box <material> [[Link]=<c>]
xlo=<n>[<m>|<cm>|<um>|<nm>]
xhi=<n>[<m>|<cm>|<um>|<nm>]
[ylo=<n>][<m>|<cm>|<um>|<nm>]
[yhi=<n>][<m>|<cm>|<um>|<nm>]
[zlo=<n>][<m>|<cm>|<um>|<nm>]
[zhi=<n>][<m>|<cm>|<um>|<nm>]} |
[[Link]]
{point
x=<n>[<m>|<cm>|<um>|<nm>]
[y=<n>][<m>|<cm>|<um>|<nm>]
[z=<n>][<m>|<cm>|<um>|<nm>]
[replace]}
)
[SearchRadius=<n>][<m>|<cm>|<um>|<nm>)
Description: Defines new contacts, deletes contacts, and prints contact information. The
contact command can be called multiple times with the same name if the
add parameter is specified. In this case, the contact will have multiple parts.
Contacts are written to TDR files in the struct command. They are not
otherwise used in Sentaurus Process.
NOTE: Contacts are only intended for structures written for device
simulation. They should be specified immediately before the final struct
command used to write a structure for device simulation.
Options:
add If the contact command is called multiple times with the same name, it
will overwrite the previous definition by default. If add is used also, it will
instead add to the existing contact indicated by the name parameter or create
a new contact if it does not already exist.
[Link]
Specifies a second material for the contact. Only elements at the interface
between the two materials are allowed for the contact.
left, right, back, front, top, bottom
<material> Specifies the material for the contact. Contacts in DF–ISE and TDR files are
always defined as a set of surface elements. Only elements at the surface of
volume regions of the specified material are selected. For information about
specifying materials, see Material Specification on page 50.
name Name of the contact.
[Link] Used with the name parameter to change the name of a contact from that
specified by name to that specified by [Link].
print Prints the contact information.
region Name of the volume region to be used for the contact. Only surface elements
of that region will be selected for the contact.
replace If specified, in the DF–ISE or TDR file, the material of the region of a
contact is replaced by gas for point contacts.
NOTE: Sometimes, regions of material gas are not saved. The material of
the region in the subsequent simulation is not affected.
SearchRadius If contacts have been read from a DF–ISE or TDR file, they are added to the
current list of contacts defined in Sentaurus Process. When saving the
current structure to a DF–ISE or TDR file, surface elements from the current
simulation mesh are selected for the contacts if all their points are in the
vicinity of the original contact elements. The default unit is μm .
sidewall Allows only surface elements on the external boundary of the simulation
domain (left, right, front, back) to be selected for a contact. By default, only
surface elements at material interfaces and surface elements at the top and
bottom of the simulation domain are selected for contacts. The default is
false.
width Width of the contact in micrometers.
x, y, z Define the coordinates of a point for the point contact. If some coordinates of
the point are omitted, the region is selected using the specified coordinates
only. The default unit is μm .
xlo, xhi, ylo, yhi, zlo, zhi
Define the low and high values in each of the coordinate directions for the
box contact. If some coordinates are omitted, the current extensions of the
simulation domain are used. The default unit is μm .
contact left front name=lfcontact xlo=0 ylo=0 zlo=0 xhi=1 yhi=1 zhi=1
Defines a contact named lfcontact on the left side (minimum Y-
coordinate) and the front (maximum Z-coordinate) of the simulation domain
for that part of the simulation domain inside the box (0,0,0) -> (1,1,1) and
not on any interior interfaces.
See: integrate on page 945, struct on page 1086
contour
Function: Plots contours in the selected variable on a 2D plot.
Syntax: contour
[name=<c>] [value=<n>]
[x=<n>][<m>|<cm>|<um>|<nm>]
[y=<n>][<m>|<cm>|<um>|<nm>]
[z=<n>][<m>|<cm>|<um>|<nm>]
[color=<c>] [print]
Description: Draws a contour in the selected variable or a named data field at the value
specified. The value must be specified in the range of the computed variable.
For example, if plotting log boron, the value should be in the range 10 to 20
and not 1e10 to 1e20. The contour command assumes that a plot.2d
command has been specified, and that the screen is configured for plotting a
2D graphic. If this has not been set, the routine most likely will produce
useless results.
Options:
color Line color for the contour. It can be any color supported by X11 hardware
and named in the color database.
name Name of data field. This allows plots without using the select command.
The default is Z_Plot_Var.
print Indicates that the contour values should be printed, not plotted. The output is
compatible with xgraph. In addition, a set of Tcl lists is returned.
value This floating parameter expresses the value at which the contour line should
be plotted. If boron has been selected, a value of 1.0e16 would produce a line
of constant boron concentration at that concentration.
x, y, z Specify the plane on which contouring is performed. In two dimensions, they
need not be specified. In three dimensions, two parameters must be specified
to indicate the plane of calculation of the contour. The default unit is μm .
Examples: contour val=1e10
10
Draws a line at an isoconcentration of 10 .
See: Compatibility on page 860, plot.2d on page 1013, slice on page 1073
CutLine2D
Function: Computes the slice angle when given a cut in wafer coordinates.
Syntax: CutLine2D <x1> <y1> <x2> <y2>
Description: Given a cut in wafer coordinates defined by the endpoints (x1,y1) and
(x2,y2), this command computes the slice angle.
Options:
define
Function: Defines a Tcl variable.
Syntax: define <name> <value>
Description: This is equivalent to the Tcl command set, except that variables defined
with set are not saved or restored in TDR files. Variables defined using the
define command are saved or restored.
Options:
defineproc
Function: Defines a Tcl procedure.
Syntax: defineproc name { arguments of procedure } {
body of procedure
}
Description: This is equivalent to the Tcl command proc, except that procedures defined
with proc are not saved or restored in TDR files. Procedures defined using
defineproc are saved or restored.
Examples:
Defines the Tcl procedure relerr, which is stored in and loaded from a
TDR file.
See: Tcl documentation for description of proc syntax. The defineproc and
fproc commands are equivalent.
DeleteRefinementboxes
Function: Deletes a set of refinement boxes based on a name pattern.
Syntax: DeleteRefinementboxes pattern= "<pattern>"
Description: Finds all refinement boxes with names that match the defined pattern and
deletes them. The pattern is expanded according to standard Tcl rules.
Options:
deposit
Function: Deposits a new layer.
Syntax: deposit
{ [<material>] [isotropic | anisotropic | fill | fourier | crystal]
[thickness=<n>][<m>|<cm>|<um>|<nm>]
[coord=<n>][<m>|<cm>|<um>|<nm>] }
[material=<c>]
[[Link]= <material list>]
[type=isotropic | anisotropic | fill | polygon | directional | fourier]
[rate=<n>]
[1D]
[time=<n>][<hr>|<min>|<s>]
[direction= <numeric list>]
[coord=<n>][<m>|<cm>|<um>|<nm>]
[direction= <numeric list>]
[polygon= <numeric list>]
[coeffs= {<A0> <A1> <A2> ... <An>}]
[[Link]= {
<material1>= {<A0> <A1> <A2> ... <An>}
<material2>= {<A0> <A1> <A2> ... <An>}
...
}
[[Link]= {"<100>"=<n> "<110>"=<n> "<111>"=<n>}]
[[Link]]
[[Link]=<c>]
[temperature=<n>][<C>|<K>]
[remesh] [Adaptive] [[Link]]
[repair]
[sde=<c>] [steps=<n>] [mask=<c>]
{[doping= <name list>]}
{[<field name>] | [species=<c>]
[concentration=<n>][<m-3>|<cm-3>|<um-3>|<nm-3>]}
[[Link]= <parameter list>]
[sources= {<beam1> <beam2> ... <beamn>}]
[shadowing] [[Link]] [[Link]]
[Link] List of deposition rates defined per crystallographic direction in the format:
{"<100>"=<etch rate> "<110>"=<etch rate> "<111>"=<etch rate>}
[Link] By default, the material is deposited on the surface exposed to the upper gas
region. If the structure has buried gas bubbles, they are untouched. Use
[Link] to deposit inside those gas bubbles.
[Link]
fourier Specify Fourier deposition type. When using Fourier deposition, the
coefficients must be specified using coeffs or [Link] parameters.
isotropic, anisotropic, fill
[Link]
diffuse
Function: Simulates thermal annealing, densification, and any material growth process
during annealing – oxidation, silicidation, and epitaxy.
Syntax: diffuse
{[Link]=<c>} |
{time=<n>[<hr>|<min>|<s>] temperature=<n>[<C>|<K>] | }
[ramprate=<n>][<C/s>|<K/s>|<C/min>|<K/min>]
[[Link]=<n>][<C>|<K>]
[(<ambient> by default one of O2 | H2O | N2O | N2 | Epi | LTE |
H2 | HCl)]
[flow<ambient>=<n>][<l/min>]
[flows= {
[<ambient1>=<n>][<l/min>]
[<ambient2>=<n>][<l/min>]
...}]
[[Link]=<c>]
[p<ambient>=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa>|<dyn/cm2>]
[[Link]= {
[<ambient1>=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa>|<dyn/cm2>]
[<ambient2>=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa>|<dyn/cm2>]
...}]
[pressure=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa>|<dyn/cm2>]
[ISSG]
[[Link]=<i>]
[[Link]= <parameter list>]
[[Link]= <parameter list>]
[[Link]=<i>]
[[Link]= {[<dopant1=<n>[<ohm-cm>]] [dopant2=<n>[<ohm-cm>]] ...}]
[[Link]=<n>][<m>|<cm>|<um>|<nm>]
[[Link]= {
[<interface_mat1>= <numeric list>]
[<interface_mat2>= <numeric list>]
}]
[sources= {<beam1> <beam2> ... <beamn>}]
[[Link]=<c>]
[[Link]= {"<100>"=<n> "<110>"=<n> "<111>"=<n>}]
[coeffs= {<A0> <A1> <A2> ... <An>}]
[[Link]= {
<material1>= {<A0> <A1> <A2> ... <An>}
<material2>= {<A0> <A1> <A2> ... <An>}
...
<materialn>= {<A0> <A1> <A2> ... <An>} }]
[repair]
[[Link]= <string list>]
[[Link]= [<regionName>=<n> | <material>=<n>]]
Syntax (continued)
[isolve]
[init=<n>][<hr>|<min>|<s>]
[maxstep=<n>][<hr>|<min>|<s>]
[delT=<n>][<C>|<K>]
[delNT=<n>][<C>|<K>]
[delTox=<n>][<C>|<K>]
[minT=<n>][<C>|<K>]
[movie=<c>]
[[Link]]
[laser]
[[Link]=<c>]
[([Link]) | ([Link]) | ([Link])]
[kmc] [[Link]] [lkmc] [Adaptive]
[eqnInfo]
[reload] [reloadHeat] [reloadReact]
Description: Performs annealing (either continuum or KMC) or, if the diffusion time is set
to 0, this command activates dopants and performs a stress update. The
command options set diffusion conditions as well as time-stepping options.
Diffusion model and parameter setting are performed with the pdbSet
command. The basic settings are pdbSet <material> Dopant
DiffModel <model>, where <model> can be any of Constant, Fermi,
Pair, React, ChargedFermi, ChargedPair, or ChargedReact.
Temperature ramps are specified by first creating a list of ramping steps
using the temp_ramp command. Then, the ramp is applied with the
parameter [Link]. All temp_ramp command parameters can be
specified with the diffuse command.
The list of ambients is given in Table 63 on page 605 and includes O2, H2O,
HCl, N2, H2, and N2O, which can be used in oxidation specification, as well
as two epi ambients Epi and LTE for specifying epitaxial growth. For more
information on Epi and LTE, see Epitaxy on page 270.
Options:
Adaptive Specifies with or without adaptive meshing for this diffusion step.
Parameters for adaptive meshing are described in Adaptive Meshing during
Diffusion on page 687. The default is the return value of pdbGet Grid
Adaptive.
<ambient> Shorthand specification to set the ambient partial pressure the same as the
total pressure. If an ambient is specified this way, it must be the only ambient
set in the diffuse command. In addition to the oxidation-type ambients
(O2, H2O, N2O, ISSG), the epitaxial ambients Epi and LTE are available.
[Link]
[Link] List of species for which the auto-doping model will be switched on during
epitaxial growth.
coeffs List of single-material coefficients A 0, A 1, …, A n used in Fourier deposition
when [Link]=1 and [Link]=fourier.
[Link] List of etching rates defined per crystallographic direction in the format:
{"<100>"=<dep rate> "<110>"=<dep rate> "<111>"=<dep
rate>} used for crystallographic deposition when [Link]=1 and
[Link]=crystal.
delNT Defines the maximum temperature step during a temperature ramp down if
specified. The default unit is degree Celsius. It also can be defined globally
with the command: pdbSet Diffuse delNT {<n>}
delT Defines the maximum temperature step during a temperature ramp-up if
specified. The default unit is degree Celsius. It also can be defined globally
with the command: pdbSet Diffuse delT {<n>}
delTox Defines the maximum temperature step during a temperature ramp for
oxidation/growth if specified. The default unit is degree Celsius. It also can
be defined globally with the command: pdbSet Diffuse delTox {<n>}
[Link]
The density increase. The increase value can be specified per region
<regionName>=<n> or per material <material>=<n>.
[Link]
Takes a list of parameters where the parameter name is the name of the
species to be initialized and the value is the final value. A list of fields of any
name can be initialized with this parameter and, for solution variables, units
are accepted. For example:
[Link]= { boron=1e18<cm-3> GSize=1<nm> myfield=1 }
[Link] Number of layers of mesh lines required during epitaxial growth (for both
[Link]=0 and [Link]=1). The default is –1, which indicates that
10 layers should be used if [Link]=1, and 40 layers should be used if
[Link]=0. However, if the global parameter given by:
[Link] List of parameters with dopant name and resistivity to calculate the
background dopant concentration. If more than one dopant name appears in
the list, the doping concentration is calculated individually for each dopant
by ignoring the other ones.
[Link] Sets the epitaxial layer thickness to be deposited. The default unit is μm .
eqnInfo Allows equation updates to be printed to the log file during the Newton
iteration.
flow<ambient>, flows
List of gas flows in the reaction chamber. The gas flows are used to
computed the partial pressures of the active ambients (those causing material
growth). Flows can be specified using either a parameter name composed of
flow + <ambient> (for example, flowO2 and flowHCl where O2 and HCl
are ambient names) or the flows parameter that takes a list of parameters
with names of the ambients, for example:
flows= { O2 = 1.0<l/min> HCl = 1.0<l/min> }
The list of default ambients is given in Table 63 on page 605, but this list can
be extended by using the ambient command. When a gas flow is specified
as a combination of flows (and not when using partial pressures), a complete
reaction of the ambients is assumed to occur, for example, O2 + 2H2 ->
2H2O. Besides gas reactions, the addition of inert gases also changes the
partial pressure of the material growing ambients. For example, if the flows
of only N2 and O2 are specified and are equal, then the partial pressure of O2
will be <total pressure>/2.0 where <total pressure> is given by the
pressure parameter (see below).
NOTE: Flows and partial pressures must not be specified in the same
gas_flow together.
[Link] Specifies a [Link] to be used for this diffusion step. (Do not be use with
other gas_flow command parameters or with the temp_ramp command.)
init First time step. The default is 0.0001 s, which is sometimes inappropriate for
defect simulations, particularly in cases of damage. The default unit is
minutes.
isolve Switches off initial solve for models that need to have an equation solved to
set the initial conditions. In these cases, it is possible to set an initial
condition and switch off the default initialization.
ISSG Switches on in situ steam-generated (ISSG) oxidation.
kmc Allows the diffuse command to use Sentaurus Process KMC.
The list of default ambients is given in Table 63 on page 605, but this list can
be extended by using the ambient command. These partial pressures are
assumed to contribute to the oxidation or user-defined reaction processes. No
reaction between the species is assumed. The default unit is atm.
NOTE: Only the partial pressures of the active ambients are used directly in
the oxidation reaction equations, so setting the partial pressure of inactive (in
the sense that they cause the material growth reaction) ambients such as N2
or HCl has no effect.
pressure The (total) pressure of the ambient gas. The default value and unit is 1.0 atm.
This setting takes effect only if flows or flow<ambient> is defined
explicitly. If [Link] is specified, the pressure is set in the corresponding
gas_flow command.
ramprate Temperature change during anneal. The default value and unit is 0.0°C/s .
reload, reloadHeat, reloadReact
Stores the thermal profile created during laser annealing. The format of the
file is two columns: time (in seconds) and temperature (in degree Celsius).
This file can be used to create a temp_ramp to allow subsequent simulations
to use the computed temperature profile without the need to simulate laser
annealing again.
doping
Function: Defines a named piecewise linear doping profile that can be used with the
deposit command.
Syntax: doping
name=<c> field=<c>
values= <numeric list>
depths= <numeric list>
[location=vertex | element] [list] [clear] [[Link]]
Description: Allows a doping profile specification that can be used inside the deposit
command to add doping and other fields to the newly deposited layer (on
either vertices or elements).
Options:
element
Function: Extracts the grid of a material and returns a list of coordinates.
Syntax: element
<material> [region]
Description: Extracts the grid for a specified material and returns the grid as a list of
coordinates. This can be used to plot the grid. The return is a list of
coordinates that defines the grid. Each of the outer lists makes up a
continuous line through the grid. Each inner list contains coordinate pairs in
order for that line.
<material> A material must be specified. For information about specifying materials, see
Material Specification on page 50.
region Option to limit output to only one region.
Examples: element oxide
Returns the grid of the oxide material.
Enu2G
Function: Computes the shear modulus from Young’s modulus and the Poisson ratio.
Syntax: Enu2G <n> <n>
Description: Computes the shear modulus from Young’s modulus (the first value) and the
Poisson ratio (the second value).
The same units are assumed for all moduli.
Examples: Enu2G 1.620e12 0.28
Computes the shear modulus from Young’s modulus (1.620e12 dyn/cm2)
and the Poisson ratio (0.28).
Enu2K
Function: Computes the bulk modulus from Young’s modulus and the Poisson ratio.
Syntax: Enu2K <n> <n>
Description: Computes the bulk modulus from Young’s modulus (the first value) and the
Poisson ratio (the second value).
The same units are assumed for all moduli.
Examples: Enu2K 1.620e12 0.28
Computes the bulk modulus from Young’s modulus (1.620e12 dyn/cm2) and
the Poisson ratio (0.28).
equation
Function: Allows test parsing and resolution of a sample expression.
Syntax: equation [eqn=<c>] [nodal]
Description: Allows testing of an equation string. It is parsed, broken into pieces, and
derivatives are taken and printed. It is useful for debugging problems with
the resolver and parsing, as equation strings can be tried before being run.
Options:
etch
Function: Removes part or all of an exposed layer.
Syntax: etch
[time=<n>][<hr>|<min>|<s>]
[etchstop= {<mat1> <mat2> ...} [[Link]=<n>]]
[mask=<c>]
[temperature=<n>][<C>|<K>]
[<material>]
[isotropic | anisotropic | cmp | trapezoidal]
[thickness=<n>][<m>|<cm>|<um>|<nm>]
[coord=<n>][<m>|<cm>|<um>|<nm>]
[material= <string list>]
[type=isotropic | anisotropic | cmp | directional | polygon |
fourier | crystal | trapezoidal | [Link]]
[rate= <numeric list>]
[[Link]= {"<100>"=<n> "<110>"=<n> "<111>"=<n>}]
[direction= <numeric list>]
[polygon= <numeric list>]
[1D] [Adaptive] [[Link]] [remesh] [repair]
[[Link]=<n>]
[sde=<c>]
[coeffs= {<A0> <A1> <A2> ... <An>}]
[[Link]= {
<material1>= {<A0> <A1> <A2> ... <An>}
<material2>= {<A0> <A1> <A2> ... <An>}
...
<materialn>= {<A0> <A1> <A2> ... <An>} }]
[[Link]= {
materialA= { angleA0 rateA0 angleA1 rateA1 ... angleAn rateAn }
materialB= { angleB0 rateB0 angleB1 rateB1 ... angleBn rateBn }
... }]
[sources= {<beam1> <beam2> ... <beamn>}]
[shadowing] [undercut=<n>] [angle=<n>]
[[Link]]
[[Link]=<n>] [[Link]=<n>]
[roundness=<n>] [[Link]=<n>] [[Link]]
Description: Etches a layer exposed to the top gas. Several materials can be etched at the
same time. Sentaurus Process has several modes to perform etching:
• The MGOALS mode uses either an analytic or a level-set method
performed by the MGOALS library.
• A general level-set time-stepping mode is available for handling more
sophisticated etching capabilities such as multimaterial etching, Fourier
etching, multiple beam, and shadowing.
Options:
direction List of x-, y-, and z-values specifying the etching direction for
type=directional.
NOTE: Always all three values must be specified. In 2D, the z-value must
always be zero.
etchstop Materials, instead of time, can be given as etch-stopping criteria. In this case,
etching continues until any of the given etchstop materials is exposed. An
additional overetch is performed, with a time equal to
[Link] (default: 10%) multiplied by the accumulated time
required to expose the first etchstop material.
In 3D, etchstop is ignored when Sentaurus Structure Editor is used.
[Link]
NOTE: Sometimes, this causes small gas bubbles in the structure or other
problems. Use !repair to switch off small region removal.
roundness Tuning parameter for the curvature of etch sidewalls in the case of
trapezoidal etching when [Link] is used. The default
value is 1.0. Increased values up to 2.0 or 3.0 increase the curvature of the
etch sidewall calculated by the level-set solver.
sde String used to specify parameters and select algorithms for 3D Sentaurus
Structure Editor. By default, the parameters rate, time, thickness,
type, and so on are translated into appropriate Sentaurus Structure Editor
commands. If an algorithm is specified in the sde parameter, it overwrites
the algorithm used by default for isotropic or anisotropic etching, for
example:
sde= {"algorithm" "lopx"}
sde= {"algorithm" "lopx" "radius" 0.07}
NOTE: If both time and etchstop are given for Fourier etching, the
Fourier etching stops when either of the two criteria – time or material
etchstop – is met.
trapezoidal Specifies trapezoidal etching.
exit
Function: Terminates the execution of Sentaurus Process.
Syntax: exit
extract
Function: Extracts historical data during diffuse step.
Syntax: extract
[clear] [print] [name=<c>]
[command= {<c> <c> ...}]
[[Link]]
Description: Specifies the Sentaurus Process commands for data extraction during a
diffuse step. The extracted historical data can be returned as a Tcl list.
Options:
extract clear
Clears all stored historical data.
See: interpolate on page 950 and Extracting Values during diffuse Step: extract on
page 830
fbreak
Function: Enters interactive mode.
Syntax: fbreak
Description: Interrupts the execution of a command file and starts an interactive mode.
Examples: fbreak
This command inside the command file starts an interactive mode.
See: exit on page 894, fcontinue on page 897
fcontinue
Function: Resumes execution of command files.
Syntax: fcontinue
Description: This interactive mode command is used to resume the program execution in
the batch input mode.
Examples: fcontinue
This command resumes the execution of a command file.
See: exit on page 894, fbreak on page 896
fexec
Function: Executes system commands.
Syntax: fexec
Description: Executes system calls through the Tcl command exec (with exactly the
same syntax). Using fexec, the system calls are not executed during syntax-
checking as they would be if the plain exec command were used.
Examples: fexec ls
Lists the contents of the current directory.
See: Tcl documentation for description of exec syntax.
fproc
Function: Defines a Tcl procedure.
Syntax: fproc name { arguments of procedure } {
body of procedure
}
Description: This is equivalent to the Tcl command proc, except that procedures defined
with proc are not saved or restored in TDR files. Procedures defined using
fproc are saved or restored. If a procedure is defined using both fproc and
proc, the latter overwrites the previous one, but fproc stays in the memory
and is saved in TDR files.
Examples:
Defines the Tcl procedure relerr, which is stored in and loaded from a
TDR file.
See: Tcl documentation for description of proc syntax. The defineproc and
fproc commands are equivalent.
fset
See define on page 867.
gas_flow
Function: Specifies a gas mixture for use with the diffuse or temp_ramp command.
Syntax: gas_flow
(list | clear | print | name=<c>)
[<ambient>]
[flow<ambient>=<n>][<l/min>]
[flows= {
[<ambient1>=<n>][<l/min>]
[<ambient2>=<n>][<l/min>]
...}]
[ISSG]
[p<ambient>=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa>|<dyn/cm2>]
[[Link]= {
[<ambient1>=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa> |<dyn/cm2>]
[<ambient2>=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa> |<dyn/cm2>]
...}]
[pressure=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa>|<dyn/cm2>]
Description: Specifies a gas mixture for thermal oxidation or user-defined gas material
reactions, and can be set in the diffuse command or temp_ramp
command. Specification in a multiple temp_ramp command allows
changing the gas flow during a temperature ramp. If gas flows are specified
by flows (see below), a complete gas reaction between the contributing gas
types is assumed. The partial pressure of the active ambients (for example,
material-growing ambients O2, H2O, and N2O) are the quantities directly
needed to compute oxidation rates. If flows is specified, the partial
pressures are computed from gas reactions, the mix of remaining gases after
the reaction, and the total pressure. If partial pressures of the active ambients
are specified, they are used directly. The default value is 0 for all parameters,
except pressure. The list of ambients is given in Table 63 on page 605 and
includes O2, H2O, HCl, N2, H2, and N2O as well as two epi ambients Epi and
LTE that do not apply to this command.
Options:
<ambient> Shorthand specification to set the ambient partial pressure the same as the
total pressure. Only active ambients can be specified in this way, and only
one ambient can be specified. The active ambients are O2, H2O, and N2O.
clear Clears the global list of gas mixtures.
flow<ambient>, flows
List of gas flows in the reaction chamber. The gas flows are used to
computed the partial pressures of the active ambients (those causing material
growth). You can specify flows using either a parameter name composed of
flow + <ambient> (for example, flowO2 and flowHCl where O2 and HCl
are ambient names) or the flows parameter that takes a list of parameters
with names of the ambients, for example:
flows= { O2 = 1.0<l/min> HCl = 1.0<l/min> }
The list of default ambients is given in Table 63 on page 605, but this list can
be extended by using the ambient command. When a gas flow is specified
as a combination of flows (and not when using partial pressures), a complete
reaction of the ambients is assumed to occur, for example:
O2 + 2H2 -> 2H2O.
Besides gas reactions, the addition of inert gases also changes the partial
pressure of the material-growing ambients. For example, if the flows of only
N2 and O2 are specified and are equal, the partial pressure of O2 will be
<total pressure>/2.0 where <total pressure> is given by the pressure
parameter (see below).
NOTE: Flows and partial pressures must not be specified together in the
same gas_flow.
ISSG Switches on in situ steam-generated (ISSG) oxidation.
list This Boolean parameter generates a list of gas mixtures and returns a Tcl list
that can be operated on as such. The default action for commands is to print
the return, so if no handling is required, this prints a list of names of defined
gas mixtures. If a name is specified, that gas mixture only is listed with
details.
name Identifies the gas mixture description and specifies it in a diffuse or
temp_ramp command.
p<ambient>, [Link]
The list of default ambients is given in Table 63 on page 605, but this list can
be extended by using the ambient command. These partial pressures are
assumed to contribute to the oxidation or user-defined reaction processes. No
reaction between the species is assumed. The default unit is atm.
NOTE: Only the partial pressures of the active ambients are used directly in
the oxidation reaction equations, so setting the partial pressure of inactive (in
the sense that they cause the material growth reaction) ambients such as N2
or HCl have no effect.
pressure The (total) pressure of the ambient gas. The default value and unit is 1.0 atm.
print Prints the gas flow information.
Examples: gas_flow name=myflow pressure=0.8 flows= {O2=3.1 H2O=1.2 H2=0.8}
gas_flow name=myflow pressure=0.8 flowO2=3.1 flowH2O=1.2 flowH2=0.8
gas_flow name=myflow pressure=0.8 flowO2=3.1 flows= {H2O=1.2 H2=0.8}
These are three equivalent flow specifications for the gas mixture myflow.
graphics
Function: Updates or initiates Sentaurus Process graphics specified by the command
option.
Syntax: graphics
[on | off] [cmd= <command>]
[connect] [maxdepth] [update]
[host=<c>] [display=<c>] [configure= <command>]
After the main window has opened, subsequent runs of Sentaurus Process
connect to it and open a new frame if the command graphics on is issued.
Options:
cmd Specifies the update command. The default value is [Link] grd
data.
configure Runs a [Link] configuration command. Any valid [Link] option can
be specified.
connect Allows connection.
display Specifies the display for Tecplot SV. The default is the value of the DISPLAY
environment variable.
host Specifies the host on which Tecplot SV is to run. The default behavior is
explained in Tecplot SV User Guide, Launching or Connecting to
Tecplot SV on page 13.
maxdepth Specifies the command depth limit.
off Disables automatic updating of graphics.
on Enables automatic updating of graphics using the command given by the
cmd option.
update Runs the update command.
Examples:
graphics on
Switches graphics on and uses the Tecplot SV interface.
grid
Function: Performs grid operations and computes statistics about the mesh.
Syntax: grid
[remesh [Adaptive]] | (2D | 3D | FullD) | [Link]]
[merge] [interpolate]
[[Link]]
[<material>] [Gas]
[[Link]] [[Link]] [[Link]] [[Link]]
[mingrid=<n>][<m>|<cm>|<um>|<nm>]
[[Link]=<c>]
[rename [[Link]]] [[Link]] [[Link]] [[Link]]
2D, 3D, FullD Extrudes grid to higher dimension. The line commands must be issued
before extruding to a higher dimension. For 2D, at least two y-lines must
have been specified. For 3D, two y-lines and two z-lines must have been
specified. FullD extrudes to the highest possible dimension.
Adaptive Specifies adaptive meshing if remesh is chosen.
interpolate Performs interpolation if remesh is chosen.
merge Merges adjacent regions of the same material into one region.
Do not use in combination with other options.
mingrid Specifies the minimum-allowed grid spacing. The default unit is μm .
[Link] Prints the region names if the option rename is chosen.
[Link] Returns 1 if remeshing is needed based on refinement criteria; otherwise, it
returns 0.
remesh If this option is selected, Sentaurus Process recreates the mesh using the
currently active mesh generator.
rename Renames all regions of the structure according to the material they contain
and the smallest y-coordinate point of the region, that is, from the bottom of
the structure upwards. Multiple regions of the same material with the
smallest y-coordinate within the given coordinate interval will increase the
associated index towards the positive x-axis, from left to right.
[Link] Must be used by itself. When specified, Sentaurus Process computes the
smallest edge length in each direction and saves it in three fields:
MinXEdgeLength, MinYEdgeLength (for 2D or 3D structures), and
MinZEdgeLength (for 3D structures). In addition, this parameter stores the
element volumes in a field ElementVolume. When this parameter is set, the
average edge length in each direction is returned and can be used to set a Tcl
variable, for example:
set aveEdgeLength [grid [Link]]
[Link] Sets element volumes as element values over the mesh. This field is not
updated automatically.
[Link]
Gas By default, quality (except volume) and bbox measures include the gas
mesh. To exclude gas in the quality or bbox measure, use !Gas.
<material> If specified, limits the measured grid statistics to the specified material.
Grid statistics reporting
[Link]
Returns the maximum ratio of volumes of two elements that share the same
face (3D only).
[Link]
Returns the location where the maximum volume ratio occurs (coordinates in
μm ).
[Link] Indicates that all bulk mesh statistics must be printed. Here, all mesh
statistics are listed as command parameters if they can be individually
queried. They also are printed with the [Link] parameter or are listed
below if they are available only by using the [Link] parameter:
• dimension: Simulation dimension.
• vertices: Number of vertices in mesh.
• nodes: Total number of nodes in mesh. (At interfaces, there are three
nodes for each vertex. In the bulk, there is one node for each vertex.)
• [Link]: Number of nodes in mesh excluding those in the interface
meshes (this gives two nodes for each vertex on an interface and one node
for each bulk vertex).
• [Link]: Number of interface nodes in mesh. This will be the
same as the number of interface vertices.
• [Link]: Same as nodes, that is, the total number of nodes in
mesh.
• elements: Number of elements in the mesh.
• [Link]: Number of regions in the mesh.
• [Link]: Number of interface regions in the mesh.
• bbox: Bounding box (minimum and maximum extents) of the mesh.
• [Link]: Length of minimum edge in the mesh (in micrometers).
• [Link]: Endpoints of minimum edge.
• [Link]: Length of maximum edge in the mesh (in micrometers).
D
• [Link]: Volume of mesh (in μm where D is the dimension).
• [Link]: Minimum of all angles of all elements in the mesh.
• [Link]: Maximum of all angles of all elements in the mesh.
• [Link]: Maximum number of edges sharing one vertex in
the mesh.
D
• [Link]: Minimum element volume (in μm where D is the
dimension).
• [Link]: Location of the center of the element with the
minimum volume.
D
• [Link]: Maximum element volume (in μm where D is the
dimension).
• [Link]: Maximum ratio of volumes (larger volume to
smaller volume) of neighboring elements.
• [Link]: Location where maximum ratio of
volumes occurs.
• obtuse: Percentage of triangles or tetrahedra that have obtuse angles.
[Link] Returns the minimum angle in degrees between edges (2D) or faces (3D).
[Link] Returns the minimum edge length in μm .
[Link]
2
[Link] Returns the element with the smallest area in 2D (in cm ) or the smallest
3
volume in 3D (in μm ).
[Link]
Returns the coordinates of the minimum edge length (3D only) (coordinates
in μm ).
[Link] Indicates that all brep statistics should be printed. In this section, all brep
statistics are listed as command parameters if they can be individually
queried. They also are printed with the [Link] parameter or are listed
below if they are available only by using the [Link] parameter:
Sets the list of materials where the Sano method is applied. The default is
Silicon. It is not recommented to include other materials unless special
care is taken to configure KMC for those materials because, by default,
KMC models are simplistic in materials other than silicon.
[Link] Switches on a special Sano remesh mode. Usually, remeshing based on Sano
fields and Sano field creation are performed with the UnsetAtomistic
command (see UnsetAtomistic on page 1110), which calls grid
[Link] and grid [Link]. More detail is provided here if
nonstandard behavior is required. During grid [Link], certain
fields, called Sano fields, can be the target of adaptive refinement. By
default, the list of Sano fields contain active dopants.
NOTE:
• NetActive is updated automatically using Sano active fields during
[Link].
• This mode does not create any new fields in the structure. Sano fields can
be created using [Link] in a separate grid command.
• This mode does not automatically switch on adaptive meshing.
[Link] Converts KMC particle distributions to FE fields using the Sano method.
Usually, this conversion is performed with the UnsetAtomistic command
(see UnsetAtomistic on page 1110), which calls grid [Link] and
grid [Link]. More detail is provided here if nonstandard behavior
is required. The list of fields that are converted by default contains the active
dopants that are present. To change this list, use the [Link] parameter.
NOTE:
• NetActive (DopingConcentration) is updated automatically using
Sano fields during [Link].
• This parameter specifies that only KMC particles are converted to new FE
fields on the existing mesh; no remeshing occurs.
help
Function: Prints a list of all the commands available in Sentaurus Process.
Syntax: help
Description: Prints a list of all Sentaurus Process commands. It can be used in the
interactive mode and in the command files.
icwb
Function: IC WorkBench (ICWB)-related functions.
Syntax: icwb
bbox { xmin | xmax | ymin | ymax | left | right | front | back } |
[Link] | dimension | domain= "<domain name>" |
domain= [list "<domain name 1>" "<domain name 2>" ... \
"<domain name n>"] |
filename= "<[Link]>" [scale=<scale>] |
[Link]=<c> cell=<c> [Link]= {<n>} [Link]= {<c>} \
[[Link]=<c>] sim2d | sim3d= {<n>} [stretches= {<c>= {<n>}}] \
[scale=<n>] |
[Link]= "<layer name>" list [Link] |
list { domains | layerIDs | layerNames } |
list [Link] [Link]= "<layer name>" |
list [Link] [Link]= "<layer name>" |
[Link]= "<polygon name>" [Link] |
stretch name= "<stretch name>" value=<amount> | [Link]
Description: The keyword icwb introduces commands used to operate with ICWB TCAD
layout files. The different uses of the keyword icwb are given here, along
with their syntax and corresponding descriptions.
Detailed descriptions:
Returns dimension of current domain. For the following domain types, the
corresponding value for dimension is returned:
• Point: 1
• Gauge: 2
• Highlight: 3
Defines the current domain. Setting the current domain is a prerequisite for
other ICWB commands that implicitly depend on the current domain being
defined.
The second variation allows for the concatenation of multiple “gauge”
domains, reorientated into one linear simulation domain.
icwb filename= "<[Link]>" [scale=<scale>]
Reads an ICWB TCAD layout file. Coordinates in the ICWB file are
multiplied by the optional parameter scale as the file is read. The ICWB
TCAD layout file must be read as a prerequisite to other ICWB commands
that act on the domains and masks defined in that file.
icwb [Link]=<c> cell=<c> [Link]= {<n>} [Link]= {<c>} [[Link]=<c>]
sim2d | sim3d= {<n>} [stretches= {<c>= {<n>}}] [scale=<n>]
Returns a list of ICWB TCAD layout file layer IDs or layer names.
icwb list [Link] [Link]= "<layer name>"
Returns the bounding box rectangle for each polygon in the layer.
icwb list [Link] [Link]= "<layer name>"
Breaks each polygon in the layer into a set of rectangles, and then returns
these rectangles,
icwb [Link]= "<polygon name>" [Link]
Applies the given stretch by the given amount to the current domains. The
order of applied stretches matters since the location of other stretches can
change given the application of one stretch.
[Link]
Function: Layout-driven contact placements.
Syntax: [Link]
[Link]= (<string> | <string list>) [name= <string>] <other options>
[info=<n>]
Description: Creates contacts for subsequent device simulations that are tied to a layer in
the ICWB TCAD layout file.
The command serves as an interface between the ICWB TCAD layout and
the Sentaurus Process contact command by automatically obtaining the
lateral placement of the contact from the specified ICWB layer, taking the
vertical placement from the argument list and passing all other options
directly to the contact command.
name Optional contact name. The name defaults to the layer name.
<other options> Any other options supported by the contact command.
Examples: [Link] [Link]= emitter box polysilicon \
[Link]=oxide xlo= -2.05 xhi=-1.95
[Link] [Link]= pdrain name= drain \
point aluminum replace x= -2.0
[Link]
Function: Creates positive and negative mask versions for all layers found in the
currently active ICWB simulation domain.
Syntax: [Link] [info=<n>]
Description: Creates a positive and a negative mask for each layer found in the currently
active ICWB simulation domain. The names of the masks are given by the
layer names and the postfix _p for the positive and _n for the negative
version of the mask. For example, if the TCAD layout contains a layer with
the layer name TRENCH, the corresponding mask names are TRENCH_p and
TRENCH_n.
[Link]
Function: Creates a mask for subsequent use in etch, deposit, or photo commands
from one or more ICWB layers.
Syntax: [Link]
[Link]= (<string> | <string list>)
[name= <string>] [polarity= positive | negative] [info=<n>]
[shift= {dy dz}] [stretchypos= {yo dy}] [stretchyneg= {yo dy}]
[stretchzpos= {zo dz}] [stretchzneg= {zo dz}]
Description: Serves as an interface between the ICWB TCAD layout and the Sentaurus
Process mask and polygon commands, and provides a convenient way to
generate 1D, 2D, and 3D masks consisting of the points, segments, or
polygons from one or more ICWB layers based on a dimension-independent
syntax. The command automatically determines the dimension of the
currently active ICWB simulation domain.
Options:
Stretches the layer before creating the mask. The last four characters of the
keywords determine if the stretch is applied along the y- or z-direction and if
the layer is stretched to the positive or negative side of the stretch position.
[Link]
Function: Layout-driven refinement specifications.
Syntax: [Link]
[Link]= (<string> | <string list>) [name= <string>] [oversize=<n>]
xtop=<n> xbot=<n> <other options> [info=<n>]
Description: Creates refinement boxes that are tied to layers in the ICWB TCAD layout
file. The command serves as an interface between the ICWB TCAD layout
and the Sentaurus Process refinebox command by automatically obtaining
the lateral dimension of the refinement box from the specified ICWB layers,
taking the vertical refinement box dimensions from the argument list, and
passing all other options directly to the refinebox command.
Using the oversize keyword increases the area of refinement beyond the
extent of the actual segments or polygon bounding boxes. The nonzero
oversize value is subtracted from or added to the minimum and maximum
segment or polygon bounding box coordinates, respectively.
NOTE: Layout-driven refinement is available only for the area under the
given layer itself, not for the inverse of a layer. If refinement is needed in an
area not covered by the layer, you must create the inverse of the layer as an
auxiliary layer explicitly in ICWBEV Plus.
For details on how to define refinement boxes, see refinebox on page 1040.
Options:
oversize To refine an area wider than the polygon bounding box (3D) or the segment
(2D), specify a nonzero oversize parameter (unit is micrometer). This
value is used to increase the refinement boxes beyond the extent given by the
polygon bounding boxes or segments.
xbot Bottom or maximum x-coordinate of the refinement box extent.
xtop Top or minimum x-coordinate of the refinement box extent.
Examples: [Link] name=UnderPoly [Link]=POLY \
oversize=0.1 xtop=-1.51 xbot=-1.35 xrefine=0.02 yrefine=0.02
[Link] name=SiOxPo [Link]=POLY \
oversize=0.1 xtop=-1.51 xbot=-1.35 [Link]=0.005 \
[Link]= {Silicon Oxide Silicon Polysilicon}
implant
Function: Specifies implantation model parameters and implants an ion species into a
wafer.
Syntax: implant
{[tables=Default | Dios | Tasch | AdvCal | Taurus] [[Link]=<c>]
[[Link]=<c>] [[Link]=<c>]} |
{[species=<c>]
[tables=Default | Dios | Tasch | AdvCal | Taurus | TSuprem4]
[[Link]=<c>] [[Link]=<c>] [[Link]=<c>]}
[energy=<n>] [tilt=<n>] [[Link]=<n> [[Link]=<n>]} |
[[Link]] [[Link]]
[[Link]= {<n> <n> <n>}] [[Link]= {<n> <n> <n>}]
[[Link]= {<n> <n> <n>}]
{[<species>]
[energy=<n>][<eV>|<keV>|<MeV>]
[dose=<n>][<cm-2>]
[[Link]=<n>][<cm-2/s>]
[tilt=<n>][<degree>] [rotation=<n>][<degree>] [[Link]=<i>]
[primary= beam | wafer]
[[Link]] [temperature=<n>] [current=<n>]
[contamination= {energy=<n> [Link]=<n>}]
[preprocess] [postprocess] [postprocessonly] [extrude]
[[Link]= [Link] | [Link].n | [Link] |
[Link]]
Description: There are two main branches to this command. The first allows you to
specify parameters for the analytic model. It can be performed by specifying
tables or species parameters. The second performs an implantation into the
current structure. Either analytic functions or Monte Carlo simulations
(Crystal-TRIM or Sentaurus MC) can be used.
Options:
Specifying parameters
[Link]
[Link] Specifies that the implant moments are cap (screening) layer dependent in
the dual Pearson model.
[Link] Specifies the file name suffix for Taurus tables that contain the required
implant damage data in the format
<ion>_damage_in_<material>_<suffix>.
[Link] Defines the implantation table containing moments for the primary and
lateral damage distributions.
damage Switches on or off the damage calculation based on the Hobler model.
[Link] Specifies the file name suffix for Taurus tables that contain the required
implant data in the format <ion>_in_<material>_<suffix>.
dataset Used for the data name that is created when an implant is performed.
[Link]
Efficiency factor for the summation of layer thicknesses to calculate the total
screening (cap) layer thickness. The default is 1.
[Link]
Logical switch for the effective channeling suppression model. The default
is 1 for the Taurus/TSUPREM-4 mode, and 0 otherwise.
energy Specifies the plasma implantation energy for the species. If this parameter is
specified for a given ion species, the energy as specified will be used for this
species instead of the common energy as specified in the performing branch
of the implant command. Used for plasma implantation only.
[Link] Specifies the standard deviation of plasma implantation energy for the
species. If this parameter is specified for a given ion species, the value as
specified will be used for this species instead of the common energy as
specified in the performing branch of the implant command. Used for
plasma implantation only.
file Name of the file used in the [Link] implant model and the
[Link] mode.
[Link]
Specifies the amount of spatial shift for [Link]. The actual shift
occurs for interstitials. This parameter takes a list of numeric values. The
first, second, and third values in the list are taken as the x-, y-, and z-value,
respectively. The missing value is treated as zero.
stdev Overwrites the standard deviation found in the specified implant table. The
default unit is μm .
stdev2 Overwrites the second standard deviation found in the specified implant
table for the dual Pearson model. The default unit is μm .
tables Changes the implant tables and model switches in all materials. The settings
will be overwritten for one particular species if there is the species
keyword. Otherwise, the implant tables and model switches will be
overwritten for all species in all materials. The options that correspond to
different available tables are:
• Default (tables extracted from Monte Carlo simulations with Crystal-
TRIM).
• Dios (tables used by default in Dios).
• Tasch (University of Texas implant tables).
• AdvCal (makes the Default table data available in the Taurus Process
table format).
• Taurus (the Taurus Process table set).
• TSuprem4 (TSUPREM-4 native implant tables).
tilt Specifies the tilt angle for the species. If this parameter is specified for a
given ion species, the tilt angle as specified will be used for this species
instead of the common tilt as specified in the performing branch of the
implant command. Used for plasma implantation only.
[Link] Specifies the standard deviation of the tilt angle for the species. If this
parameter is specified for a given ion species, the value as specified will be
used for this species instead of the common value of [Link] as
specified in the performing branch of the implant command. Used for
plasma implantation only.
[Link] Specifies the name of the material as used in TSUPREM-4. This is used for
TS4-style tables only.
[Link] Specifies the prefix used in TSUPREM-4 native implant tables. Valid
prefixes include default, none, ch, dual, le, tr, ut, and scr.
[Link] Specifies the TS4 implant table name for the dopant, for example, chboron,
[Link]. This is used for TS4-style tables only.
[Link] Specifies the amount of spatial shift for plus vacancies and takes a list of
numeric values. The first, second, and third values in the list are taken as the
x-, y-, and z-value, respectively. The missing value is treated as zero.
[Link] Point of reference in y for the automated 1D Monte Carlo run.
[Link] Point of reference in z for the automated 1D Monte Carlo run.
Performing an implantation
Adaptive Specifies with or without adaptive meshing for both analytic and Monte
Carlo implantation. Parameters for adaptive meshing are described in
Adaptive Meshing during Implantation on page 688. The default is the return
value of pdbGet Grid Adaptive.
average Specifies whether to average the as-implanted profiles over the reflected
domains in the case of TrueReflect boundary conditions. The default is
true if the tilt angle (or tilt2D in the case of a 2D structure) is less than 2° ,
and false otherwise.
backscattering
[Link] Specifies the minimum value of the concentration data to be loaded from
[Link]. Concentration data smaller than [Link] is ignored by
14 –3
[Link]. The default value and unit is 1 ×10 cm .
[Link] Specifies the units of the depth (x-)coordinate in [Link]. Valid values
are um, nm, and cm. The default value is um.
[Link] Specifies the column number of the depth (x-)coordinate in [Link]
used by [Link]. The default column number is 1.
[Link] Specifies the maximum value of the depth (x-)coordinate to be loaded from
[Link]. Depths greater than [Link] are ignored by
10
[Link]. The default value is 1 ×10 .
[Link] Specifies the minimum value of the depth (x-)coordinate to be loaded from
[Link]. Depths smaller than [Link] are ignored by
[Link]. The default value is the first depth data in [Link].
[Link] Selects the model used to calculate point defects. Possible choices are:
• The [Link] switch selects the +1 model.
• The [Link].n model dynamically calculates an NFactor
using an energy-dependent and a dose-dependent fitting formula.
• For [Link], interstitial and vacancy profiles are calculated from
the damage profile resulting from the last implantation.
• The [Link] model allows you to defined your own models.
dfactor Scaling factor for the damage profile calculation in analytic implant. The
default is 1.
14 –2
dose Dose of the implant. The default value and unit is 1 ×10 cm .
–2
[Link] Dose rate of the implant. The default unit is cm /s . If [Link] is
specified in the implant command, its value is used with the assumption of
a uniform dose rate. If it is not specified, the dose rate is calculated from the
DoseRate Tcl procedure in [Link]. This parameter is useful for
KMC only.
[Link] Standard deviation of implant energy for plasma implantation. The default is
0.0. Used for plasma implantation only.
energy Implant energy. The default value and unit is 250 keV.
[Link]
Logical switch that specifies that this command will extract the implant
moments from the ASCII data file as specified by [Link].
extrude Logical switch for extruding the 1D or 2D structure into pseudo-3D structure
before analytic implantation. This makes 1D or 2D simulation results nearly
identical to those in 3D. The default is false.
flip Flips the profile loaded with [Link] to the left.
[Link] Scaling factor for the interstitial profile calculation in the [Link]
models. It is used for analytic implantation only.
[Link] Scaling factor for the vacancy profile calculation in the [Link]
models. It is used for analytic implantation only.
[Link]
Keeps the damage information stored at the internal grid between two runs of
Crystal-TRIM. This is not used in Sentaurus MC. This parameter is
deprecated.
KMC Switches on the KMC mode for MC implantation (both Crystal-TRIM and
Sentaurus MC). In this mode, dynamic annealing is performed with
Sentaurus Process KMC.
pai Logical switch for the preamorphization implant (PAI) mode. The PAI model
takes preamorphization into account by converting the damage into effective
screening layer thicknesses used for the moment lookup in screening (cap)
layer-dependent tables. The default is 1 for the Taurus/TSUPREM-4 mode,
and 0 otherwise.
particles Number of pseudoparticles that will be started per surface segment during
MC simulation.
plasma Logical switch for plasma implantation. This option is valid for
Sentaurus MC implantation only.
[Link]= {<species1>=<n> <species2>=<n> ...}
Uses the damage from the internal grid for a Crystal-TRIM run. This is not
used in Sentaurus MC. This parameter is deprecated.
preprocess Switches on preprocessing. This is the default.
primary Defines the interpretation of the range and lateral range parameters. Possible
choices are:
• beam switches to the beam projection mode. In this case, the primary
moments are applied along the projection of the ion beam onto the
simulation plane, and the lateral integration is performed perpendicular to
the projection of the ion beam. This is the default in Sentaurus Process.
• wafer switches to the wafer normal mode. Here, the primary distribution
function and the moments are interpreted orthogonally to the wafer
surface.
[Link]
Logical switch for the profile reshaping model. Default is 1 for the Taurus/
TSUPREM-4 mode, and 0 otherwise.
randomize Switches to randomize the random seed (by using internal clock) each time
the command file is run. Therefore, each run will produce different results.
This parameter is used in MC implantation only. The default is false.
[Link] Logical switch for the proportional range shift mode. The channeling part of
the profile is shifted proportionally to the ratio of the amorphous and the
channeling range. The shift is the same for both contributions if the model is
switched off. The default is 1 for the Taurus/TSUPREM-4 mode, and 0
otherwise.
recoils Switches to recoil implant mode, such as simulating the oxygen knock-on
effect. This parameter is used in Sentaurus MC implantation only. The
default is false.
rotation Rotation angle of the wafer in the implanter. The default value and unit is
– 90° .
[Link] Specifies the offset for the projected ranges of the first and second Pearson
moments extracted by [Link]. The extracted projected ranges
are shifted by [Link]. The default value and unit is 0.0 μm .
save1d Specifies that the 1D profiles as calculated by Sentaurus MC implantation
will be saved in (x,y) format. These saved files have the particle names as the
file name extension. Valid for 1D or quasi-1D structure only.
[Link] Specifies the file name for the 1D profiles as calculated by Sentaurus MC
implantation. These saved files have the particle names as the file name
extension. Valid for 1D or quasi-1D structure only.
[Link] Specifies the unit of the x-axis for the 1D profiles as calculated by
Sentaurus MC implantation. The valid units are A, nm, and μm .
[Link]
When this parameter is switched off, secondary ion fields (for example,
fluorine in a BF2 implantation) are not created for Monte Carlo implantation.
The default is on.
[Link] Selects simulation of ion implantation using the Monte Carlo simulator
Sentaurus MC.
shift Shifts the profile loaded with [Link] by a certain amount along the y-axis.
smooth Logical switch for smoothing the as-implanted profiles after MC
implantation. If [Link] is not specified, all the as-implanted
profiles will be smoothed. The default is false.
[Link] Specifies a set of fields to be smoothed. The valid fields are dopant names or
Damage. For example, for BF2 implantation, Boron, Fluorine, or Damage
are valid names.
[Link]
Switches the TS4 backscattering model on or off. In this model, the portion
of the profile distribution which sticks out of the solid structure is assumed to
be lost, resulting in slightly less dose than the nominal dose. Default is false.
vfactor Scaling factor for the vacancy profile calculation in the [Link] and
[Link] models. It is used for the [Link] model in the case
of analytic implantation only. The default is 1.
init
Function: Sets up the mesh and background doping levels.
Syntax: init
[dfise=<c>] [tdr=<c>] [bnd=<c>] [sat=<c>] [sigmac=<c>]
[clear] [done] [[Link]] [pdb] [[Link]]
[Adaptive] [resistivity]
[field=<c>] [concentration=<n>][<m-3>|<cm-3>|<um-3>|<nm-3>]
[<material>]
[DelayFullD]
[[Link]= <numeric list>] [[Link]= <numeric list>]
[[Link]=<n>] [[Link]=<n>]
[[Link]=<n>][<degree>]
[top] [scale=<n>]
Description: Sets up the mesh from either a rectangular specification or a file. The
command also allows initialization of the background doping concentration
and type.
Options:
Adaptive When loading a TDR file containing geometry but no mesh, a mesh is
generated automatically. This parameter determines whether adaptive
meshing is used. The default is obtained from the pdb parameter
Grid Adaptive.
bnd Selects the .bnd format file for reading. This command reads the boundary
file (2D or 3D) and meshes it with MGOALS using the parameters and
refinement boxes previously defined.
[Link]
Specifies the orientation of the wafer miscut, in other words, the rotation
angle of the wafer normal with respect to the crystal coordinate system. This
parameter is used in both analytic and Sentaurus MC implantation. The
default value and unit is 0° ; in other words, the projection of the wafer
normal to the crystal plane formed by b- and c-axis is coincidental to the
<110> direction in silicon.
[Link] Specifies the magnitude of the wafer miscut, in other words, the tilt angle of
the wafer normal from the crystal c-axis. This parameter is used in both
analytic and Sentaurus MC implantation. The default value and unit is 0° , in
other words, no wafer miscut.
clear Clears all the current structure data in memory. The default is true.
–3
concentration Concentration of the incorporated data field. The only available unit is cm ,
but any nodal quantity (with any internal unit) can be initialized with this
parameter if no unit is specified. The default value is zero.
dfise Selects a pair of DF–ISE format files for reading. The .grd, .dat
or .[Link], .[Link] extensions are searched for automatically. So, if
dfise=filename is given, Sentaurus Process looks for [Link],
[Link], or [Link], [Link]. The DF–ISE
format has a different default orientation from the internal format of
Sentaurus Process. A rotation is applied to the structure.
done Returns 1 if the initialization is performed; otherwise, returns 0.
DelayFullD By default, Sentaurus Process generates a minimum-dimensional structure,
which will be extruded to higher dimensions when Sentaurus Process
encounters a ‘mask.’ To generate a full-dimensional structure,
specify !DelayFullD.
field Name of data field to be initialized everywhere in the structure.
[Link] Crystal orientation of the wafer flat or notch. The default is
[Link]= {1 1 0}.
[Link] Loads the commands in the TDR format file. The default is true.
<material> Specifies a material for doping. Must be used with the field parameter.
pdb Loads pdb parameters along with geometry and data in the TDR format file.
The default is true.
[Link] Loads only pdb parameters without geometry and data in the TDR format
file. The default is false.
resistivity Sets the value of the field by requesting a resistivity. This parameter only
works for fields that have the resistivity pdb parameters set (which, by
default, are only As, B, P, Sb, and In in silicon).
sat Specifies to read the structure file in the Sentaurus Structure Editor format.
scale Coordinates of the input structure are divided by the specified value. The
default is 1.0e4, which converts from DF–ISE standard (micrometer)
structures to Sentaurus Process internal standard (centimeter).
sigmac Specifies to read the structure file in Sigma-C 3D format.
[Link] Angle of the simulation domain with respect to the wafer coordinate system.
The default value and unit is – 90° .
The [Link] can be specified using a CutLine2D command:
init [Link]= [CutLine2D 1.65 0.15 1.95 0.6]
tdr Selects the TDR format file for reading. The _fps.tdr extension is
appended to the specified file name automatically if one is not supplied.
The TDR file can contain a variety of information depending on which tool
was used to write the file. By default, Sentaurus Process writes files with
enough information to restart a simulation. This includes current parameter
settings, stored commands (such as polygon, mask, contact), bulk mesh
and data, and, in 3D, a boundary (see Saving a Structure for Restarting the
Simulation on page 74). If such a file is specified, all this data is read and
used to restart the simulation. It is also possible to read TDR files that
include only bulk mesh and data, or only a boundary. If only a boundary is
available, Sentaurus Process will create a mesh using current refinement
criteria. Finally, a TDR file can contain information for restarting a
Sentaurus Process KMC simulation with a KMC structure and other restart
information. This type of file is saved by the kmc extract command if the
atomistic mode is switched on (see Atomistic Mode on page 371 and Using
the Sentaurus Process Interface on page 529).
If the --fastMode option is on and init does not find the specified file, it
looks for a .bnd file instead.
For information about the TDR format, refer to the Sentaurus Data Explorer
User Guide.
top Specifies that the gas is found at the smallest x-value (at the top of the
structure). If !top is specified, the gas is added at the highest x-value (at the
bottom). The default is true.
[Link] Wafer orientation. The default is [Link]= {0 0 1}.
Examples: init dfise=tmp
Reads in a structure previously saved in [Link] and [Link]
files.
insert
Function: Inserts segments in 1D, polygons into 2D structures, and polyhedra into 3D
structures.
Syntax: insert
[Adaptive]
segments= {<n_1> <n_2> ...} | polyhedron=<phname> | polygon=<poname>
[[Link]= {<mat_1> ... <mat_n>}]
[[Link]= {<reg_1> ... <reg_n>}]
[[Link]=<matname>] [[Link]=<regname>]
Description: Inserts segments in 1D, polygons in 2D, and polyhedra in 3D. Segments are
defined using the segments parameter, but polygons and polyhedra must be
defined using the polygon and polyhedron commands, respectively. One
of the following parameters must be specified: segments, polyhedron, or
polygon. Other parameters are optional.
This command operates only in the MGOALS3D mode for polyhedra. If the
SDE mode is switched on, calling this command will set sde off.
Options:
[Link] Sets the name of the inserted region. It works with one segment or polygon
only, that is, it does not work if the segment, polygon, or polyhedron contains
more than one region.
integrate
Function: Returns volume integration of named quantity.
Syntax: integrate
[name=<c>] [<material>] [region=<c>]
[element] [absolute] [average] [interfaces] [skipgas]
[min= {<n> <n> <n>}] [max= {<n> <n> <n>}]
[mode= mesh | boundary | jagged]
[[Link]=<c>]
Description: Integrates the field specified with the name parameter (by default, the last
unnamed select command field) over the entire structure or within a given
box specified by the min and max parameters. If material is specified, the
integration is limited to regions of the given material. If a region is specified,
the integration is limited to only the named region.
The command by default expects the quantity to be nodal and the integration
is performed nodewise, but if the element parameter is given, an elemental
quantity is expected and the integration proceeds elementwise.
A Tcl list is returned where the first value is the integrated value. The second
value is the volume of the computed regions (in <value unit>*cm for 1D,
2 3
in <value unit>* cm for 2D, and in <value unit>* cm in 3D where
<value unit> is the unit of the named quantity). The third value is the
–2
dose (the integrated value divided by the simulated area in cm in all
dimensions). The fourth and fifth values are the minimum and maximum of
the named quantity, respectively. If the parameter average is specified, the
averaged result for the named quantity is appended to the returned Tcl list.
Options:
absolute Specifies that integration is performed with the absolute values of the named
quantity.
average Specifies that the average value of the named quantity is computed and
added to the returned Tcl list.
select z= "1.0/3*(StressELXX+StressELYY+StressELZZ)"
integrate element
Returns the integrated pressure elementwise in the whole structure (not
including gas), the volume of the structure (not including gas), and the dose
of pressure not including gas, which in this case is not necessarily a useful
number.
sel z=BActive
integrate silicon
Returns the integrated term BActive, the volume and the combined dose in
all silicon regions in the structure. The term BActive is first converted to a
temporary data field before integration.
integrate name=Boron mode=jagged min= {0. 0. 0.} max= {0.4 0.4 0.4}
Returns a list of integral, volume, dose, and minimum and maximum of
boron within the cuboid defined by upper-left back corner (0.0, 0.0, 0.0) and
the lower-right front corner (0.4, 0.4, 0.4).
interface
Function: Returns the location or the value of the selected data field at a material
interface.
Syntax: interface
[name=<c>] [<material>]
[data] [side=<c>] [All]
[x=<n>][<m>|<cm>|<um>|<nm>]
[y=<n>][<m>|<cm>|<um>|<nm>]
[z=<n>][<m>|<cm>|<um>|<nm>]
[p1= {<n> <n> <n>} & p2= {<n> <n> <n>}]
[precision=<n>]
[[Link]=<c>]
Description: Returns the position of an interface, or returns the value of the selected data
field if data is specified. Therefore, the command can be used to prepare
plots of material thickness, silicon consumption, or material growth. It also is
used to provide an argument to the interpolate command, which returns
a list if there is more than one interface. The list processing commands of
Tcl, particularly lindex, are very helpful.
Options:
All If specified, all interface locations are returned. Otherwise, only the first
value is returned.
data If specified, the value of the selected data field at the interface will be
returned.
<material> Usually works with an interface description and returns the location or value
of the selected quantity at the interface.
NOTE: If an interface is not specified, an error occurs. If the specified
interface does not exist in the current structure, an error is reported. For
information about specifying materials, see Material Specification on
page 50.
name Specifies the name of the data field to be returned when data is specified. The
default is Z_Plot_Var.
p1, p2 Specify the two endpoints of a cutline; each is a list of numbers. Only the
first <dim> numbers from each list is read, where <dim> is the spatial
dimension of the simulation. Specifying the endpoints with p1 and p2 allows
for nonaxis-aligned cuts. Endpoints also can be used to limit axis-aligned
cuts instead of cutting through the entire structure.
precision Controls the number of precision digits of floating values (in scientifc
notation). The default value is 6.
side Takes its value from one of the two bulk materials consisting of the interface
or the ‘interface’ (literally) itself. If side is not specified, the ‘interface’
itself is assumed. If side is specified as one of the bulk materials, the value
of the selected data field for the bulk material is returned. This parameter is
effective only if the parameter data is specified.
[Link]
interpolate
Function: Returns the request position or value at a specified location.
Syntax: interpolate
<material> [name=<c>]
[x=<n>][<m>|<cm>|<um>|<nm>]
[y=<n>][<m>|<cm>|<um>|<nm>]
[z=<n>][<m>|<cm>|<um>|<nm>]
[value=<n>] [[Link]=<c>]
This function may return a Tcl list of values if more than one is found. For
example, there may be several junctions found along a given line. All of
these are returned and can be processed by normal Tcl list operations. For
most cases, this command return a single value.
This command has multiple uses. It can return the data value at a specified
position in the structure or return the position at which a specified data value
occurs.
Options:
<material> Mandatory. Limits the search to a single material. For information about
specifying materials, see Material Specification on page 50.
name Specifies name of a data field. This allows printing without using the
select or tclsel commands. The default is Z_Plot_Var.
[Link]
x, y, z, value
KG2E
Function: Computes Young’s modulus from bulk modulus and shear modulus.
Syntax: KG2E <n> <n>
Description: Computes Young’s modulus from the bulk modulus (the first value) and the
shear modulus (the second value).
The same units are assumed for all moduli.
Examples: KG2E 1.2272e12 6.328e11
Computes the Young’s modulus from the bulk modulus 1.2272e12 dyn/cm2
and the shear modulus 6.328e11 dyn/cm2.
KG2nu
Function: Computes the Poisson ratio from bulk modulus and shear modulus.
Syntax: KG2nu <n> <n>
Description: Computes the Poisson ratio from the bulk modulus (the first value) and the
shear modulus (the second value).
The same units are assumed for all moduli.
Examples: KG2nu 1.2272e12 6.328e11
Computes the Poisson ratio from the bulk modulus 1.2272e12 dyn/cm2 and
the shear modulus 6.328e11 dyn/cm2.
kmc
Function: Specifies options for the atomistic kinetic Monte Carlo (KMC) mode.
Syntax: kmc
(add |
(add queue name=<c> [amorphous | crystalline]
{coordx=<n>[<m>|<cm>|<um>|<nm>]}
{coordy=<n>[<m>|<cm>|<um>|<nm>]}
{coordz=<n>[<m>|<cm>|<um>|<nm>]} ))
{clustertype name=<c>} |
{deatomize name=<c> [active] [<material>]} |
{[Link]=<filename>} |
{[Link]=<filename> [defectname=<c>] [materialname=<c>]} |
{defecttypes [<material>]} |
(extract
(acinterface
[coordx=<n>][<m>|<cm>|<um>|<nm>]
[coordy=<n>][<m>|<cm>|<um>|<nm>]
[coordz=<n>][<m>|<cm>|<um>|<nm>])) |
(defects
[name=<c>] [defectname=<c>] [materialname=<c>]
[countparticles] [countdefects] ([acinterface] [detailed])) |
(dose
[name=<c>] [defectname=<c>] [materialname=<c>] [countdefects]) |
(histogram
name=<c> [materialname=<c>] [meansize [minsize=<u>]]) |
(materials
[detailed]
[coordx=<n>][<m>|<cm>|<um>|<nm>]
[coordy=<n>][<m>|<cm>|<um>|<nm>]
[coordz=<n>][<m>|<cm>|<um>|<nm>]) |
(profile
name=<c> [timeaveraged] [materialname=<c>] [defectname=<c>]
[coordx=<n>][<m>|<cm>|<um>|<nm>]
[coordy=<n>][<m>|<cm>|<um>|<nm>]
[coordz=<n>][<m>|<cm>|<um>|<nm>]) |
(supersaturation {name=<c>}) |
(tdrAdd [concentrations] ([defects] | [visual=<l>]) [histogram]
[list=<l>] [stress]) |
(tdrClear) | (tdrWrite {filename=<c>}) | ) |
materialtypes | off | particletypes | PDEupdated |
present {name=<c>} | report
)
Specify the x-, y-, and z-coordinates needed for the command kmc add
queue. They also are used to specify cutlines in the commands kmc
extract profile and kmc extract materials.
countdefects Used with kmc extract defects to instruct Sentaurus Process KMC to
count the number of defects instead of listing the particles in the defects.
Used with kmc extract dose to compute the dose of defects, not
particles. For example, the dose of loops is different from the dose of
particles in loops.
countparticles Used with kmc extract defects to instruct Sentaurus Process KMC to
count and return the number of particles, instead of listing them.
crystalline When added to kmc add, creates the defect in a crystalline phase of the
material, locally recrystallizing the area where the defect will be added when
necessary.
deatomize Instructs Sentaurus Process KMC to build a new data field and fill it with the
concentrations taken from the KMC simulation. name is the field to create.
For deatomize, the parameter name also can be XTotal or NetActive,
where X means any dopant. It accepts the active flag to account for the
active part of the dopant only.
defectname Specifies an optional name of a defect (ThreeOneOne,
ImpurityCluster, ...) for kmc extract profile, kmc extract
defects, kmc extract dose, and kmc [Link]. This option is
used to further refine the option name. For example, if name is I, using this
option refines these interstitials to interstitials as point defects, or in impurity
clusters, and so on.
defects Using kmc extract defects returns the defects currently present in the
simulation.
Using kmc extract tdrAdd defects appends to the TDR file an
atomistic 3D view of the defects currently contained in the simulation,
allowing visualization, and loading and continuing the simulation.
[Link] Specifies the name of a text file from which to read its defects and insert
them in the current simulation.
[Link] Specifies the name of a text file into which to write all the current defects in
the simulation. Use the parameters defectname and materialname to
filter the defects written.
defecttypes Using kmc defecttypes returns the name of the defects that can be used
by the option defectname.
list Adds a list of fields to be included in the TDR file. This parameter is used in
the kmc extract tdrAdd command. Any specific defect name is allowed,
and generic defect names (as obtained by kmc defecttypes) also are
allowed. For example, I8 adds this cluster to the TDR file, but
AmorphousPockets adds any AP existing in the simulation.
<material> Specifies the material name for the options deatomize or clustertype.
For information about specifying materials, see Material Specification on
page 50.
materialname Restricts the output to the material specified.
materials The command kmc extract materials returns the list of materials
currently present in the simulation.
The command kmc extract materials detailed returns the
coordinates and materials of the KMC elements. materialname=<c> adds
a condition to the output of kmc extract defects, profile, dose, and
histogram.
materialtypes Returns the subset of materials allowed in the Sentaurus Process KMC
simulation. Any material not listed here is assigned as ‘unknown’
meansize Can only be used together with kmc extract histogram. It instructs
Sentaurus Process KMC to compute the average size for the specified defect
type. The minimum size needed to take the defect into account is 0, unless
minsize is specified.
minsize Can only be used together with kmc extract histogram meansize. It
instructs Sentaurus Process KMC to use the specified value as the minimum
size to take any cluster into consideration when computing the average
cluster size.
name Specifies the name of the field, particle, or defect for the following options.
In the following, X is the name of a valid dopant (such as B or As). Any
defect means very detailed defects such as B2I3, I8, I4V5, and AsV4. Any
particle means point defects, dopants, impurities, or impurity- and dopant-
paired point defects in any charge state, in other words, any name obtained
with the command kmc particletypes (for example, I, VMM, BiP,
or F):
• add is name of the defect or particle to be added. XAmorphous and
XInterface also are acceptable.
• histogram: XI, XV, I, V, and IV are the only valid names.
• profile is any defect or any particle. Holes, electrons, XAmorphous,
and XInterface also are valid.
• defects is any defect or any particle.
• dose is any defect or any particle.
• supersaturation allows only I or V.
• deatomize is any defect or any particle. XAmorphous, XInterface,
XTotal, NetActive, pNetActive, nNetAtive, and tNetActive also are valid.
• present is any defect or any particle. XAmorphous, XInterface, and
XTotal also are acceptable.
• clustertype is any defect.
off Using kmc off deletes the Sentaurus Process KMC information and
removes the current KMC object from memory.
NOTE: Use with caution.
particletypes Returns a list of valid particle names. This list may change between
simulations, depending on the dopants specified in the parameter database.
PDEupdated Returns true if the state of Sentaurus Process KMC did not change since the
last time the PDEs were synchronized (by using KMC2PDE).
present Returns true (1) when the species specified in name is in the KMC
simulation.
The parameter name specifies the particle or defect from which the
concentration is obtained. If name is a valid particle name (see
particletypes), the parameter defectname can be used with a valid
defect name (see defecttypes) to further refine name. When a particle is
specified in name, profile returns the concentration of particles;
otherwise, it returns the concentration of defects.
tdrAdd Using kmc extract tdrAdd instructs Sentaurus Process KMC to add a
new ‘snapshot’ of information ready to be written into a TDR file. This
information is stored in memory and is written using the command
kmc extract tdrWrite. tdrAdd without options will add an empty
snapshot. The tdrAdd options are:
• concentrations computes and adds 1D, 2D, or 3D concentrations for
each particle and defect.
• defects adds atomistic 3D information. It allows you to see the defects
shape and position, and to load and continue the simulation.
• histogram adds histograms for extended defects and impurity clusters.
• list adds user-specified defects. For example, concentrations only
adds ‘I in ThreeOneOne’, but list can be used to add I45, I65, and so on.
Specifying the name of a defect (as obtained in kmc defecttypes) adds
all the clusters in this particular defect for each existing size in the
simulation.
• stress includes stress fields in the file.
tdrClear Using kmc extract tdrClear removes all the snapshots previously
added with kmc extract tdrAdd from memory.
tdrWrite Using kmc extract tdrWrite instructs Sentaurus Process KMC to write
all the snapshots (previously added with tdrAdd) to a file. The name of the
file is specified using the option filename.
timeaveraged Must be used with kmc extract profile. It generates time-averaged
concentrations of particles, instead of instantaneous ones. The averaging is
performed between two snapshots. Since this option only makes sense for
mobile particles, the parameter name must be a valid particle, not a defect.
visual When added to kmc extract tdrAdd, it includes atomistic information
that can be used for visualization purposes only, and not for restarting (in
contrast with the defects option).
kmc defecttypes
Returns a list of the different defect types modeled by Sentaurus
Process KMC.
kmc materialtypes
Returns the list of materials supported by Sentaurus Process KMC.
kmc particletypes
Returns the list of particles supported by Sentaurus Process KMC. This list
can be changed using pdb commands.
kmc off
Exits Sentaurus Process KMC and removes all its associated information
from memory.
kmc report
Prints a list of the simulated defects with the first and last time and
temperature they were seen in the simulation.
See: deposit on page 870, diffuse on page 875, etch on page 889,
implant on page 926, integrate on page 945, line on page 969,
photo on page 1010, profile on page 1033, region on page 1047,
select on page 1053, stressdata on page 1081, struct on page 1086
For more details on Sentaurus Process KMC, see Chapter 5 on page 369.
KMC2PDE
Function: Translates the atomistic KMC atomistic information to Sentaurus Process.
Syntax: KMC2PDE
Description: Translates the atomistic information stored in the KMC diffusion into
continuum five-stream quantities, and transfers it into the standard Sentaurus
Process mesh. Consequently, there are two transformation involved here:
• Deatomization of particles into concentrations
• Translation of the Sentaurus Process KMC field names into Sentaurus
Process field names
layers
Function: Prints material interfaces and integrated data field values.
Syntax: layers
[<material>] [name] [[Link]]
[x=<n>][<m>|<cm>|<um>|<nm>]
[y=<n>][<m>|<cm>|<um>|<nm>]
[z=<n>][<m>|<cm>|<um>|<nm>]
[merge] [precision=<n>] [[Link]] [[Link]=<c>]
Description: Prints the material interfaces and integrates the selected data field in each
region. It is most useful for examining doping because it gives the integrated
doping in each layer. This command can be simulated with the
interpolate and interface commands, and it returns a Tcl list of each
material.
Options:
<material> Used to limit the reporting of layers to regions of the specified material. For
information about specifying materials, see Material Specification on
page 50.
merge Specifies that the adjacent regions with the same material should be merged.
The default is false.
name Specifies a data field name. This allows printing without using the select
or tclsel commands. The default is Z_Plot_Var.
precision Controls the number of precision digits of floating values (in scientific
notation). The default is 12.
[Link] Allows output to be written to the log file.
[Link] Specifies that region names should be printed in addition to the material
names for each region in the structure.
[Link]
line
Function: Specifies the position and spacing of mesh lines.
Syntax: line
(x | y | z)
location=<n>[<m>|<cm>|<um>|<nm>]
[spacing=<n>][<m>|<cm>|<um>|<nm>]
[kmc] [mgoals]
clear [tag=<c>]
Description: Specifies the position and spacing of mesh lines. All line commands must
precede region commands, which in turn must be followed by the init
command. Lines must be given in increasing order.
When used to create the initial mesh, only rectilinear structures can be
specified with the line and region commands, that is, rectangular regions
in 2D and cuboid-shaped regions in 3D.
Sentaurus Process has the following coordinate system, which is the same as
the unified coordinate system (UCS): x is the direction normal to the wafer
with positive-x oriented into the bulk of wafer; y is perpendicular to the x-
direction and lies along the wafer surface; y is in the lateral direction. The z-
direction is used for 3D and the direction is given by X × Y . By default,
Sentaurus Process delays promoting a structure until it is necessary (by use
of a higher dimensional mask). The lines specifying the higher dimensions
are stored until they are needed. During the init command, the line and
spacing information is expanded into mesh ‘ticks’ that are stored in the PDB.
These ticks are used every time a mesh is created if UseLines is on (see
UseLines: Keeping User-defined Mesh Lines on page 702).
After an init command, if new lines are specified and UseLines is on, the
spacing parameter is ignored, and only one tick or mesh line at a time may
be added. To create an entirely new structure, the command line clear
should first be issued to clear old lines and mesh ticks before issuing new
lines, regions, and init commands.
Options:
clear Clears lines in preparation for a new structure definition, or removes all ticks
stored for the UseLines method (see UseLines: Keeping User-defined Mesh
Lines on page 702).
kmc, mgoals Lines for KMC and MGOALS (continuum) meshes are stored separately. By
default, line commands are applied to both KMC and continuum meshes.
Use negative values for these parameters to not apply mesh lines to one or
the other. For example, for a line command to apply only to a continuum
mesh, use !kmc.
location Location along the chosen axis. The default unit is μm .
spacing Local grid spacing. Each mesh line has a characteristic required spacing.
Lines are graded from one spacing to the next over the interval. The default
is a spacing equal to the largest interval between the neighboring lines. The
default unit is μm .
tag Lines can be labeled for later reference by region statements. The label can
be any word.
x, y, z Specifies the orientation of the mesh line. Specifying x places a mesh line at
a constant x-value. A series of line x commands would specify the
horizontal grid locations during the simulation.
Examples: line x loc=0 spa=0.02 tag=surf
line x loc=3 spa=0.5 tag=back
line y loc=0 spa=1 tag=left
line y loc=1 spa=0.1
line y loc=2 spa=1 tag=right
There are three user-specified y-lines and two user-specified x-lines. Taking
the y-lines as an example, there is a finer spacing in the center than at the
edges. After processing, Sentaurus Process produces a mesh with x-lines at
0.0, 0.42, 0.69, 0.88, 1.0, 1.12, 1.31, 1.58, and 2.0. Around the center, the
spacing is 0.12, approximately what was requested. At the edge, the spacing
is 0.42 because that was as coarse as it could become without having an
interval ratio greater than 1.5 (a fixed quantity). If the interval ratio was
allowed to be 9, for example, there would have been one interval of 0.9 and
one interval of 0.1 on each side. In this example, specifying a spacing of 1 at
the edges is redundant because that is what the spacing of the user-specified
lines was already.
See: region on page 1047
line_edge_roughness
Function: Adds line edge roughness (LER) to named masks.
Syntax: line_edge_roughness
masks= {<string list>}
normal= ("Y" | "Z")
[Link]=<n>[<m>|<cm>|<um>|<nm>]
[Link]=<n>[<m>|<cm>|<um>|<nm>]
[Link]=<n>[<m>|<cm>|<um>|<nm>]
[[Link]=<n>] [[Link]] [[Link]=<n>] [[Link]=<n>]
Description: Adds LER to the named masks, along the mask edges normal to the given
normal axis ("Y" or "Z").
LER can be added to a mask only once. See Boolean Masks on page 744.
Options:
[Link]
Specifies the maximum segment length. Mask edges are subdivided into
segments that are approximately this size or smaller before LER deviation is
added to each. The default value and unit is 1 nm.
[Link] Specifies the maximum number of LER mask generation attempts. For
nonzero values, detection of nearly collinear points is performed after LER
generation, and the LER process is restarted if decimation occurs based on
the mgoals accuracy value. The default value is 0, meaning that the LER
mask is accepted as it is, with no decimation detection.
[Link] When normal is not specified, where two mask edges receiving LER meet,
the corner is first rounded before LER is applied. This is to allow a well-
defined application of LER and to avoid discontinuous jumps in the resulting
mask shape. The rounding radius is the larger of [Link] and twice
[Link].
normal Defines the normal axis. Only mask segments normal to this axis receive
LER. This axis is also the reference axis along which the LER deviation is
added to the given mask segment. The default is to add LER to all edges of
the mask.
[Link] Before the calculation of LER, the random number generator is reseeded to
ensure each call of line_edge_roughness results in randomized noise
that is uncorrelated with other calls of line_edge_roughness. To switch
off this random reseeding, use ![Link] to reproduce the same
LER from call to call. The default is true.
[Link] Used to reproduce specific LER calculations from one run to the next by
setting the same random seed in both runs. Ignored when ![Link]
is used.
[Link]
Adds LER to the mask named mask1 along mask segments normal to the
z-axis. These segments are subdivided into smaller segments of length
smaller than or equal to 5 nm. LER is characterized by a
[Link] of 25 nm and [Link] of 5 nm.
The random number generator is reseeded automatically before LER is
calculated.
See: Line Edge Roughness Effect on page 746
load
Function: Loads data from a file and interpolates it onto the current mesh.
Syntax: load
(tdr=<c> | dfise=<c> | grdfile=<c> datfile=<c>)
(sum | replace | rename | merge)
[species= <list>] [actions= <list>] [[Link]= <list>]
[shift=<n>] [flip (left | right | front | back | up | down)]
[offset= {<n> <n>}]
[transform= {<n> <n> <n> <n> <n> <n>}]
Description: Interpolates data from TDR or DF–ISE grid and data files onto the current
mesh. The file to be loaded must have the same dimension as the existing
structure. There are several options for handling the new and old datasets.
First, the actions can be applied individually to selected datasets using the
species and actions lists. If the species list appears, the actions list
must be specified and must have the same number of members as the
species list. If this is the case, only the species in the species list are
taken from the external datasets. If the species list does not appear, one of
the global actions is used. The default behavior is a global sum where new
datasets are added and, if there is an existing dataset with the same name, the
external data is added (summed) with the existing dataset.
dfise Specifies the input file name. Sentaurus Process checks for all standard
suffixes for both grid files (.grd, _fps.grd, .[Link], _fps.[Link]) and
data files (.dat, _fps.dat, .[Link], _fps.[Link]).
[Link] Averages the data from a list of TDR files (all with identical meshes to the
current mesh) and replaces the current data with the averaged data from the
files. This is an option developed specifically for the distributed MC
implantation feature (mpp). However, there may be other uses for it, for
example, to improve KMC statistics.
NOTE: Do not use it with any other parameter. To use it, specify a list of
files, for example:
[Link]= {[Link] [Link] [Link]}
For 2D structures only. Performs a flip of the data in the indicated direction
about the outer boundary before interpolation. Must be used with a direction:
left, right, front, back, up, down.
grdfile, datfile
Specifies the exact names for the DF–ISE files (should not be used with the
dfise parameter).
merge Adds only new datasets that do not currently exist in the structure.
offset For 2D structures only. Offsets the data by a vector before loading it.
rename Adds new datasets and renames them by adding the suffix load.
replace Adds new datasets and replaces existing datasets with new datasets of the
same name.
shift Shifts the data laterally before loading it.
species, actions
These lists specify species-by-species actions. The species name must be one
of those appearing in the loaded .dat file. Each action in the actions list
should be one of sum, replace, rename, or merge.
sum Adds new datasets and sums matching datasets.
tdr Specifies the input file name with TDR format. Sentaurus Process checks for
standard file names with the .tdr extension.
transform This function provides a general interface for translating or rotating the
structure to be loaded before interpolation. In 1D, one value must be
specified – the shift in the x-coordinate. In 2D, six values must be specified:
rxx, ryx, rxy, ryy, offsetx, offsety. In 3D, 12 values must be
specified: rxx, ryx, rzx, rxy, ryy, rzy, rxz, ryz, rzz, offsetx,
offsety, offsetz. First, the offset is applied, and then the rotation matrix
is applied (it does not have to be an orthogonal matrix).
Examples:
LogFile
Function: Prints a message to the screen and to the log file.
Syntax: LogFile
[IL0 | IL1 | IL2 | IL3]
(message)
mask
Function: Creates a mask for subsequent use in etch, deposit, or photo commands.
Syntax: mask
[list] [clear] [name=<c>] [negative] [bbox]
[[Link]] [[Link]] [[Link].z] [bool=<op>]
(
{[left=<n>][<m>|<cm>|<um>|<nm>]
[right=<n>][<m>|<cm>|<um>|<nm>]
[front=<n>][<m>|<cm>|<um>|<nm>]
[back=<n>][<m>|<cm>|<um>|<nm>]} |
Description: Allows the management and creation of masks for use with subsequent
etch, deposit, or photo commands. Mask definitions are stored in TDR
files and restored when loading a TDR file in the init command. Masks can
be defined by rectangles, polygons, and segments, or they can be read using
the ICWB interface (see ICWBEV Plus Interface for Layout-driven
Simulations on page 795) or read from a DF–ISE layout format file.
Masks are created additively. If more than one mask command is issued with
the same name, the union of the specified masks is assumed. To change a
mask, clear it first and then assign a new specification (in two separate calls
to the mask command).
Options:
bbox Returns the mask bounding box. The command returns a list of lists where
the values are in centimeters: {ymin zmin} {ymax zmax}.
bool Performs Boolean operations between masks. The bool option cannot be
used together with the layoutfile, polygon, and negative options. For
more information, see Boolean Masks on page 744.
clear Clears the list of all masks. If name is specified, it clears only that mask.
[Link]
Used to obtain information about the coverage of the simulation domain. The
following strings may be returned:
• covered: The mask completely covers the simulation domain.
• uncovered: The mask does not cover the simulation domain at all.
• partial.2d: The mask partially covers the domain, but in a way that the
mask does not promote the simulation dimension (that is, the mask does
not vary in the z-direction over the simulation domain).
• partial: The mask partially covers the simulation domain, and its use in
etch or deposit forces the simulation to 3D.
cut.x, regions, materials
Currently, this parameter is only available in 2D. The cut.x parameter must
be used with the regions or materials parameters to create a mask. The
mask is created by taking a cut through the set of regions created by a union
of regions named in the regions parameter and regions of one of the
materials named in the materials parameter. The cut is taken at the
x-coordinate specified in the cut.x parameter, and the resulting outline is
used to create the mask.
[Link], [Link].z
You can place the Sentaurus Process simulation domain anywhere in the
layout file by specifying either the parameter name together with
layoutfile or a CutLine2D in the init command. If name is specified, it
must refer either to a mask that has been previously defined or to one of the
masks in the layout file (SIM3D or SIM2D).
layoutfile If a rectangle mask is used, either defined as SIM3D in the layout file or by
referring to a previously defined mask, the minimum coordinates of the
rectangle define the origin of the internal coordinate system. The layout –x-
axis and –y-axis define the Sentaurus Process z-axis and y-axis, respectively.
Specify the corners of one rectangle. The rectangle is added to the current list
for the mask. If several rectangles must be specified for a mask, several mask
commands must be used with the same name. The default unit is μm .
list Prints a list of all currently defined masks. If name is specified, it prints the
information about that mask only.
name Name of a mask. If used with list or clear, only the specified mask will
be reported or removed. If defining a new mask, name must be given.
negative Inverts the type of mask. By default, points inside the mask are considered
masked. The commands mask name=xyz negative and mask
name=zyx !negative can be used to invert an existing mask xyz.
polygons Specifies a mask as a list of named polygons. The named polygons must
have been defined using polygon commands (see polygon on page 1024).
segments Specifies a list of coordinates of mask segments. The default unit is μm .
Several mask segments can be specified at the same time. The first
coordinate defines the beginning of a segment, the second coordinate defines
the end of the segment, the third defines the beginning of the second
segment, and so on. In a 3D simulation, mask segments are extended across
the entire structure in the z-direction.
NOTE: There are no default extensions defined in this case. You must
specify line y explicitly.
mask list
Returns information about all masks in array format.
mater
Function: Returns a list of all materials in the current structure. Adds new materials to a
global list.
Syntax: mater
[add] [name=<material>] [min= {<n> <n> <n>} max= {<n> <n> <n>}]
[[Link]] [[Link]=<material>] [[Link]=<c>]
[[Link]] [Interface] [[Link]]
[bbox | [Link] | [Link]]
[[Link]=<c>]
Description: Returns a list of all materials in the current structure. The format of the list is
compatible with the material specification for the program. Bulk material
names are returned if no options are given. Interface materials can be
obtained with the Interface parameter. A new material is added to the
global material list if the add parameter is given.
This command also computes the cropped bounding box of a material that
lies within a user-specified bounding box defined by min and max. The name
parameter is given as input.
Options:
Usually, the interpolation code interpolates data from and to materials that
are ‘like’ each other (see Like Materials: Material Parameter Inheritance on
page 55). Use this option to prevent such interpolation.
math
Function: Sets the numeric and matrix parameters. Parameters set with the math
command are stored in TDR files by default.
Syntax: math
[[Link]] [[Link]] [[Link]] [coord.-zyx] [[Link]]
[[Link] [Link] ([Link] | [Link])]
[numThreads=<i>]
[numThreadsAssembly=<i>]
[numThreadsBoxMethod=<i>]
[numThreadsDeatomize=<i>]
[numThreadsILS=<i>]
[numThreadsImp3d=<i>]
[numThreadsInterp=<i>]
[numThreadsKMC=<i>]
[numThreadsMC=<i>]
[numThreadsMGoals=<i>]
[numThreadsPardiso=<i>]
[numThreadsSano=<i>]
[numThreadsTopo=<i>]
[diffuse | flow]
[dimension = 1 | 2 | 3]
[pardiso | ils] [scale]
[fullNewton | modNewton]
[newtonSteps1=<i>] [newtonRate1=<n>] [newtonRate2=<n>]
[newtonTries1=<i>] [newtonStats=<i>] [newtonDeriv]
[maxNumberOfDomains=<i>]
[NumberOfElementsPerDomain=<i>]
[[Link]= [Link] | [Link] | [Link]]
[threadStackSize=<i>]
Options:
Solver selection
[Link]
Allows stricter error control for each solve time step after an adaptive
meshing step by calculating the error from negative updates instead of
damped results.
diffuse, flow Specifies the type of equation to which the command specification applies. If
omitted, it applies to all equation types.
dimension Specifies dimensionality to which the command specification applies. If
omitted, it applies to all dimensions.
[Link]
Allows stricter error control for the first solve time step by calculating the
error from negative updates instead of damped results.
LocTrnErrCntrl Allows stricter error control for each solve time step by modifying the
handling of negative updates:
• 1 (|upd|/org*lte+abs)
• 0 (|upd|/org+lte*abs)
LocTrnErrCntrl can be switched on for individual solution variables in
specific materials using:
pdbSetBoolean <mater> <solution> LocTrnErrCntrl 1
NegErrCntrl Allows stricter error control at each Newton iteration step by calculating the
error from negative updates instead of damped results. NegErrCntrl can be
switched on for individual solution variables in specific materials using:
pdbSetBoolean <mater> <solution> NegErrCntrl 1
pardiso, ils Specifies the type of linear solver to apply to the system:
• pardiso selects the parallel direct solver PARDISO, which is based on
the LU factorization with pivoting of the matrix. PARDISO decomposes
the matrix.
• ils selects the iterative linear solver ILS, including preconditioners,
iterative methods, scaling, and convergence criteria. (You can change the
default settings of ILS parameters by specifying pdbSet Math
commands.) To set ILS parameters in the parameter database, see Setting
Parameters of the Iterative Solver ILS on page 838.
scale Applies row/column scaling to the matrix in an attempt to make it better
conditioned. This is a recommended option. No scaling is performed if the
modified Newton scheme is used.
Newton method
fullNewton, modNewton
milne, difference
Controls whether the next time step is estimated using the Milne’s device or
the divided difference method. The default is milne.
tr_bdf, euler Specifies the type of time discretization scheme to use. The options are
TR-BDF(2) or the backward Euler method. The default is tr_bdf.
Parallel processing
NOTE: The number of threads must not exceed the number of actual CPUs
(cores) of the computer.
NOTE: The parallel execution of the matrix assembly on the linear solvers
PARDISO and ILS produces different rounding errors. Therefore, the
number of Newton iterations in particular may change.
To use more than one thread, specify the following parameters of the math
command in the command file:
NumberOfElementsPerDomain
Modifies the maximum number of domains each level of partition can have
(see Partitioning and Parallel Matrix Assembly on page 840).
numThreads Specifies the number of parallel threads for Sentaurus Process. Applies to
Sentaurus MC implantation, interpolation, 3D analytic implantation,
Sentaurus Process KMC, matrix assembly, the box method, and the linear
solvers PARDISO and ILS.
Number of threads used for the matrix assembly. Parallel assembly of the
matrix applies only to inert anneals.
numThreadsBoxMethod
numThreadsImp3d
Number of threads used for the Sano method for KMC particle to finite
element field smoothing computation.
numThreadsTopo Number of threads used when calling Sentaurus Topography to perform
etching and deposition steps.
[Link]
If you run a simulation in parallel mode but the number of parallel licenses is
insufficient, Sentaurus Process proceeds in serial mode (default behavior or
if [Link]=[Link] is specified), or waits for parallel
licenses ([Link]=[Link]), or aborts
([Link]=[Link]).
threadStackSize
18
Stack size for each thread. Default stack size is 2 = 262144 bytes (see
Partitioning and Parallel Matrix Assembly on page 840).
NOTE: This coordinate system is different for 1D, 2D, and 3D structures.
Options in this section can be used to change how files are written and read.
Files written in alternative coordinate systems will be rotated when read by
other tools. Nevertheless, it can be useful to write files in the Sentaurus
Process native coordinate system to assist in writing command files. Even
though the structure will appear rotated when it is displayed in Tecplot SV,
the coordinates will match those in the Sentaurus Process command file,
which can be helpful when setting up refinement boxes, masks, and so on.
[Link] Reads or writes files in DF–ISE coordinate system. This should be used only
to revert coordinate systems. If the dimension of the structure changes,
math [Link] must be recalled.
[Link], [Link], [Link], [Link]
where aij (i=row, j=column) are the members of the rotation matrix, and:
[Link]= { x y z }
Generic options
[Link]
NOTE: To run in parallel mode, the linear solvers PARDISO and ILS must
be used with the nested dissection ordering ND for both the 2D and 3D
cases. For example, to specify the ND ordering, use:
pdbSetDouble [Link] 2
pdbSet Math diffuse 2D [Link] nd
The solver ILS is selected for all equations in 2D. Newton statistics is printed
at the end of each diffuse command:
• In the first case, the modified Newton method and TR-BFDF(2) methods
are used.
• In the second case, Euler and full Newton methods are specified.
mgoals
Function: Modify default parameters for geometric and meshing operations for the
MGOALS library.
Syntax: mgoals
[resolution=<n>] [[Link]=<n>]
[dx=<n> dy=<n> dz=<n>]
[reinitfrequency=<n>] [reinititerations=<n>]
[accuracy=<n>][<m>|<cm>|<um>|<nm>]
[maxangle=<n>][<degree>]
[nlayers=<i>]
[minedge=<n>][<m>|<cm>|<um>|<nm>]
[[Link]=<n>][<m>|<cm>|<um>|<nm>]
[[Link]=<n>][<m>|<cm>|<um>|<nm>]
[[Link]=<n>][<m>|<cm>|<um>|<nm>]
[[Link]=<n>][<m>|<cm>|<um>|<nm>]
[[Link]=<n>]
[[Link]=<n>][<degree>]
[[Link]]
[[Link]=<n>]
[[Link]]
[repair.2d] [[Link]=<n>]
[[Link]]
[[Link]=<n>][<m>|<cm>|<um>|<nm>]
[[Link]] [[Link]] [[Link]]
[[Link] | [Link] | [Link] |
[Link]]
[[Link]]
[[Link]]
[[Link]]
[[Link]=<i>]
[[Link].2d]
[G-2012.06-SP2 | G-2012.06 | F-2011.09-SP1 | F-2011.09 | E-2010.12 |
D-2010.03]
Description: Allows you to define parameters for MGOALS level-set and meshing
operations.
Options:
accuracy Specifies the error that can be tolerated in transferring the new interface
definition from the level-set grid to the simulation grid. There is a
compromise between smoothness and the number of grid points. Smoother
grids need more points on curved regions. The default value and unit is
–5
1.0 ×10 μm .
[Link]
[Link]
Minimum thickness of the gas layer at the top of the simulation structure.
The default value and unit is 0.1 μm .
[Link]
Specifies minimum size for the level-set mesh. Usually, the level-set mesh
size scales with the operation according to the resolution factor and the etch
or deposition thickness. However, for thin etch or deposition steps, this may
lead to a small level-set mesh causing excessive memory use and simulation
time. Often, it is not necessary (for thin layers, a mesh size between
thickness/2.0 and thickness/3.0 is usually sufficient). This parameter limits
the mesh size and, therefore, limits computational expense.
–4
The default value and unit is 1.0 ×10 μm .
[Link]
Specifies smallest normal (to the interface) mesh element size on either side
–4
of an interface. The default value and unit is 8.0 ×10 μm .
Used to increase the normal (to the interface) size of the element, moving
away from the interface. For example, if [Link]=1.3, this
means that, one layer away from the interface, the maximum normal size of
an element can be 1.3*[Link]. The default value is 2.0.
[Link]
The internal reinitialization algorithm reinitializes first the 0 level set and
works outwards from the front with higher numbers of iterations. The default
value is 1. This option only comes into operation if reinitfrequency is
nonzero.
[Link]
resolution Specifies the minimum number of level-set cells across the thickness of a
deposited or etched layer. For example, resolution=0.2 implies five cells.
The default value is 0.1.
[Link] Switches on element-smoothing in 3D to eliminate slivers. This operation
may move the nodes on the boundary.
[Link] Switches on element-splitting in 3D to eliminate slivers. This operation will
increase the number of non-Delaunay elements in the structure. This may
adversely affect the simulation.
[Link] Switches on element-swapping in 3D to eliminate slivers.
[Link].2d Switches on the brep structure mode for two dimensions when handling
structural changes such as 2D etching and 2D deposition. The default is
false.
paste
Function: Assembles 3D simulations by incorporating fragments from a TDR file.
Syntax: paste
tdr = <filename>
direction = (left | right | front | back)
[Adaptive]
Description: Reads a TDR file containing a 3D valid geometry and appends it (pastes it)
to the current 3D structure. The new structure is displaced automatically by
the right amount to correctly fit at the specified side, but the structures are
not stretched automatically. If the dimensions of nongas materials at the
pasting sides are not the same, the command fails and quits.
The paste command allows assembly of complex 3D structures by reading
the different pieces from TDR files and putting all of them together.
Options:
See: Inserting Polygons in Two Dimensions on page 762, struct on page 1086
pdbDelayDouble
Function: Retrieves an expression for a double parameter that will be evaluated at each
time step during diffusion.
Syntax: pdbDelayDouble <c> <c> ...
pdbdiff
Function: Compare current structure with one from a TDR file.
Syntax: pdbdiff <tdr file 1> <tdr file 2>
Description: Compare parameters stored in two different TDR files. Report differences in
which parameters are stored and any differences in value.
Options:
Give the full path or prefix for each TDR file. The prefix is the file name
without _fps.tdr.
Examples: pdbdiff n1 n2
Compares the pdb differences between n1_fps.tdr and n2_fps.tdr.
pdbDopantLike
Function: Helps to create new dopants.
Syntax: pdbDopantLike <c> <c>
Description: Creates new dopants in materials. It takes two arguments. The first one must
be the name of the material and the second must be the name of the new
dopant. If dopants are not present in a material, an error message is
displayed.
Examples: pdbDopantLike Silicon MyDopant
Creates a new dopant called MyDopant in silicon. You can select dopant-
related diffusion switches (such as DiffModel and ActiveModel) for
MyDopant.
pdbExprDouble
Function: Retrieves an expression for a double parameter without evaluating.
Syntax: pdbExprDouble <c> <c> ...
Description: These functions are used to obtain parameters that reside in the property
database, which is hierarchical and is indicated by passing a series of strings
to the command. In the command file, the command pdbGet should replace
all other pdbGet* commands because the type of the parameter and the
syntax are checked automatically. If a parameter does not exist in the
directory, the tool exits and prints a list of parameters that can be found. The
normal aliasing is applied to each string before the parameter is retrieved
from the database.
pdbIsAvailable
Function: Checks if the given pdb command is available.
Syntax: pdbIsAvailable <c> ... <c>
Description: Checks the availability of the given pdb command. If the command exists, it
returns 1; otherwise, it returns 0.
Examples: pdbIsAvailable Silicon MyVacancy
Returns 1 if the command "Silicon MyVacancy" is available.
Description: These functions are used to set parameters that reside in the property
database, which is hierarchical and is indicated by passing a series of strings
to the command. In the command file, the command pdbSet should replace
all other pdbSet* commands because the type of the parameter is checked
automatically and syntax is checked as well. If a parameter does not exist in
the directory, the tool exits and prints a list of parameters that can be found.
The normal aliasing is applied to each string before the parameter is retrieved
from the database for all these commands.
The following commands all create a new parameter if one does not already
exist:
• pdbSetArray
• pdbSetBoolean
• pdbSetDouble
• pdbSetDoubleArray
• pdbSetFunction
• pdbSetString
These commands have a slight performance advantage and will not exit if a
parameter has not been defined, so they are preferred for Alagator scripting.
2 2
The units of the property database are cgs [s, cm, g, dyn/cm , poise, cm /s ],
except for activation energies [eV].
Description: The command pdbSet checks the type of variable trying to be set and
checks that type against the <value> passed. The command
pdbSetDouble takes a double for a value and, similarly, pdbSetString
takes a string and pdbSetBoolean takes a Boolean (either 1 or 0). The
command pdbSetSwitch will set a value for existing switches. If a switch
is not found, a new one will be created.
The data type DoubleArray has a special format and can be modified in
several different ways depending on the changes required.
Examples:
pdbUnSet-related Functions
Function: All of the following functions unset database parameters:
• pdbUnSetBoolean
• pdbUnSetDouble
• pdbUnSetDoubleArray
• pdbUnSetString
Syntax: pdbUnSetBoolean <c> <c> ...
pdbUnSetDouble <c> <c> ...
pdbUnSetDoubleArray <c> <c> ...
pdbUnSetString <c> <c> ...
Description: Used to temporarily remove parameters from the parameter database during
the simulation.
Examples: pdbUnSetString Silicon Vac EquationProc
PDE2KMC
Function: Translates and transfers Sentaurus Process fields to Sentaurus Process KMC.
Syntax: PDE2KMC
Description: Called automatically when a switch from the PDE solver to the Sentaurus
Process KMC solver is detected. It translates the continuum concentrations
into suitable particle distributions to be used by Sentaurus Process KMC.
The translation between PDE fields and KMC species is performed with a
mapping that translates the field names into their atomistic counterparts. This
translation is made as accurately as possible, but sometimes a perfect one-to-
one mapping is not possible. In that case, meaningful approximations are
used. For example, ICluster is translated into I4. A complete list of these
translations is available in the file [Link].
Examples: PDE2KMC
photo
Function: Creates a photoresist layer.
Syntax: photo
[thickness=<n>][<m>|<cm>|<um>|<nm>]
[mask=<c>] [Adaptive] [sde] [repair]
Description: Creates photoresist layer of the specified thickness outside the mask. The
mask must have been defined using a mask command. If the photoresist
should be deposited inside of the mask, the parameter negative must be
defined in the mask command.
Options:
Adaptive Specifies with or without adaptive meshing for the photo command.
Parameters for adaptive meshing are described in Adaptive Refinement on
page 679. The default is the return value of pdbGet Grid Adaptive.
mask Specifies the name of the mask to be used to create the photoresist. The
photoresist is deposited in the openings of the mask.
repair In MGOALS3D mode, small regions are removed automatically by default.
Sometimes, this can cause small gas bubbles in the structure or other
problems. Use !repair to switch off small region removal.
sde String used to specify parameters and select algorithms for 3D Sentaurus
Structure Editor. By default, the parameters mask and thickness are
translated into appropriate Sentaurus Structure Editor commands. If an
algorithm is specified in the sde parameter, it overwrites the algorithm used
by default for isotropic or anisotropic etching. For example:
photo thickness=2<um> mask=mask1 sde= {"algorithm" "lopx"}
thickness Specifies the thickness of the photoresist. The default value is 2.0 μm .
Examples: photo thickness=2<um> mask=mask1
plot.1d
Function: Plots a 1D cross section.
Syntax: plot.1d
[name=<c>] [[Link]]
[x=<n>][<m>|<cm>|<um>|<nm>]
[y=<n>][<m>|<cm>|<um>|<nm>]
[z=<n>][<m>|<cm>|<um>|<nm>]
[boundary] [clear]
[max= <numeric list>] [min= <numeric list>]
[color=<c>] [symb=<c>] [label=<c>] [title=<c>]
[close] [rescale]
Description: Plots cross sections vertically or horizontally through the device with options
to provide for initialization of the graphics device and plotting of axes. This
command can optionally draw vertical lines whenever a material boundary is
crossed.
Options:
boundary Specifies that any material boundaries that are crossed should be drawn in as
vertical lines on the plot. The default is false.
clear Specifies whether the graphics screen should be cleared before the graph is
drawn. If true (the default), the screen is cleared.
close Closes the plot window.
color Specifies the line color for the plot. It can be any color supported by the X11
hardware and named in the color database.
[Link] Specifies the x-, y-axis ratio to be fixed. The default is false.
label Specifies the name of the line in the legend box of the plot window. The
default is the name of the current dataset.
max Takes a list of numeric values that will be the ends of the x- and y-axis. The
first argument is the x-value and the second is the y-value. A single value is
always interpreted as the x-value. The default is the maximum extent of the
current structure.
min Takes a list of numeric values that will be the ends of the x- and y-axis. The
first argument is the x-value and the second is the y-value. A single value is
always interpreted as the x-value. The default is the minimum extent of the
current structure.
name Specifies the name of a data field. This allows plots without using the
select command. The default is Z_Plot_Var.
plot.2d
Function: Plots a 2D xy graphic.
Syntax: plot.2d
[(x=<n>) | (y=<n>) | (z=<n>)][<m>|<cm>|<um>|<nm>]
[[Link]]
[max= <numeric list>] [min= <numeric list>]
[clear] [fill] [gas]
[edges] [faces] [nodes]
[boundary] [[Link]] [[Link]=<c>]
[grid] [[Link]=<c>] [title=<c>]
[kmc]
[vector=<c>]
[vlength=<n>][<m>|<cm>|<um>|<nm>]
[vmax=<n>][<m>|<cm>|<um>|<nm>]
[close] [rescale]
To obtain standard color and other settings for the plot.2d window, use the
following command from the UNIX command line:
unix:> xrdb -merge ${STROOT}/tcad/${STRELEASE}/lib/score/XFloops
Options:
boundary Specifies that the device outline and material interfaces should be drawn.
The default is false.
clear Specifies that the graphics screen should be cleared before the graph is
drawn. If true (the default), the screen is cleared.
close Closes the plot window.
[Link] Specifies the color with which to draw the boundary. Any valid X11 color
can be specified.
[Link] Specifies the color with which to draw the grid. Any valid X11 color can be
specified.
edges Prints the edge indices on the plot. The default is false.
faces Prints the face indices on the plot. The default is false.
fill Specifies that the device should be drawn with the proper aspect ratio. If
fill is false (the default), the device is drawn with the proper aspect ratio.
When true, the device is expanded to fill the screen.
[Link] By default, the x to y ratio is now fixed. This can be switched off with
the ![Link] parameter.
gas Specifies that the grid in the gas should also be plotted. The default is false
(so no gas grid is shown).
grid Specifies that the numeric grid on which the problem was solved should be
drawn. The default is false.
kmc Plots particles in an atomistic KMC simulations as dots.
[Link] Name of the material in the lower-left corner of the material region.
max Takes a list of numeric values that will be the ends of the x- and y-axis,
respectively. The first argument is the x-value and the second is the y-value.
A single value is always interpreted as the x-value. The default is the
maximum extent of the current structure. The default unit is μm .
min Takes a list of numeric values that will be the ends of the x- and y-axis,
respectively. The first argument is the x-value and the second is the y-value.
A single value is always interpreted as the x-value. The default is the
minimum extent of the current structure. The default unit is μm .
nodes Prints the node indices on the plot. The default is false.
rescale Rescales the plot to fit the whole simulation domain.
title Specifies the plot window title.
vector Takes a vector field name as an argument. This indicates arrows proportional
to the size of the vector and in the direction of the vector at each node.
Currently, this option does not work for 3D simulations.
vlength Scales the length of the vectors so that the maximum vector has length
vlength. The default value and unit is 0.1 μm .
vmax Use this as the maximum velocity instead of searching for it. The default unit
is μm .
x, y, z For a 2D simulation, these parameters are unnecessary. In three dimensions,
one of these three must be specified to indicate the cutline through the
structure. The default unit is μm .
[Link]
Function: Updates or initiates Sentaurus Process–Tecplot SV 1D, 2D, and 3D graphics.
Syntax: [Link]
[autofit] [autorange]
[command=<c>]
[connect]
[contourvar=<c>]
[[Link]]
[data]
[[Link]] [[Link]] [[Link]] [[Link]] [[Link]]
[[Link]] [[Link]] [[Link]]
[[Link]] [detach] [display] [double_prec]
[framebg] [framebgname] [framecolor] [framecolorname] [frameheader]
[frameheight] [framewidth] [frameposx] [frameposy]
[frameshiftx] [frameshifty] [frametransparent]
[framezoom] [framezoomx] [framezoomy]
[Grid]
[host=<c>]
[interfaces]
[[Link]=<n>]
[legend]
[loadfile=<c>]
[macro=<c>]
[port=<n>]
[[Link]] [[Link]]
[scale = lin | log | ash]
[[Link]=<c>]
[start]
[suppressmat=<c>] [unsuppressmat=<c>]
[suppressvar=<c>] [unsuppressvar=<c>]
[terms]
[[Link]]
[x1auto] [x2auto] [x3auto] [x4auto] [x5auto] [xauto]
[y1auto] [y2auto] [y3auto] [y4auto] [y5auto] [yauto]
[x1log] [x2log] [x3log] [x4log] [x5log] [xlog]
[y1log] [y2log] [y3log] [y4log] [y5log] [ylog]
[x1max=<n>] [x1min=<n>] [x2max=<n>] [x2min=<n>] [x3max=<n>] [x3min=<n>]
[x4max=<n>] [x4min=<n>] [x5max=<n>] [x5min=<n>] [xmax=<n>] [xmin=<n>]
[xyautofit] [xyshow]
[y1axisvar=<n>] [y2axisvar=<n>] [y3axisvar=<n>] [y4axisvar=<n>]
[y5axisvar=<n>]
[y1max=<n>] [y1min=<n>] [y2max=<n>] [y2min=<n>] [y3max=<n>] [y3min=<n>]
[y4max=<n>] [y4min=<n>] [y5max=<n>] [y5min=<n>] [ymax=<n>] [ymin=<n>]
autofit Automatically fits the view for 2D and 3D modes after each update.
autorange Automatically resets the minimum and maximum data range for contour
plots after each update.
command Specifies the command string used to launch the Tecplot SV process. The
default is "tecplot_sv -s:ipc".
connect Permits connection to a running Tecplot SV process. The default is true.
contourvar Selects the specified variable as the contour variable. By default, the first
variable is selected as the contour variable.
[Link] Automatically creates an abs() dataset for each vector variable.
data Sends new values of all variables to Tecplot SV.
[Link], [Link], [Link], [Link], [Link]
Enables data of the corresponding value type. The default is true for
[Link], [Link], and [Link].
[Link], [Link], [Link]
Enables data of the corresponding location type. The default is true for all
types.
[Link] Causes the old frame to be deleted when a new frame is created in
Tecplot SV, due to switching from 1D to 2D, or from 2D to 3D mode. The
default is true.
detach Detaches display from a process.
display Specifies the host name and sequence number for display.
double_prec Uses double precision for all data transfers to Tecplot SV. This causes slower
data transfer and higher memory consumption in Tecplot SV. This option
must be specified before or together with the start option. The default is to
use single precision.
framebg Specifies the background color of the frame.
Specifies how many seconds Sentaurus Process must wait for a Tecplot SV
response after trying to start it. The default is 10 s.
legend Displays the contour legend.
loadfile Loads the specified file in Tecplot SV.
macro Sends a macro command to Tecplot SV (see examples). The macro language
is documented in the Tecplot 360™ Scripting Guide.
port Specifies the port number for the Tecplot SV socket connection. The default
is 2203.
[Link] Resets to the default display mode.
[Link] Resets the axis scale and axis range for all axes.
scale Sets the contouring scale to either lin, log, or ash for the variables
specified with the option [Link]. The [Link] option
must be specified with scale.
[Link] Specifies a list of variables to be used with a second option such as scale.
The variable names can contain wildcards, for example, Stress*.
start Tries to connect to a running Tecplot SV process or to launch a new process.
See Tecplot SV User Guide, Chapter 5 on page 13 for detailed information
on the behavior of the start procedure.
suppressmat, unsuppressmat
Enables the automatic range reset for the specified axis. The default is true.
x1log, x2log, x3log, x4log, x5log, xlog
y1log, y2log, y3log, y4log, y5log, ylog
Sets or unsets logarithmic mode for the specified axis. The default is true for
y-axes.
x1max, x1min, x2max, x2min, x3max, x3min, x4max, x4min, x5max, x5min, xmax, xmin
y1max, y1min, y2max, y2min, y3max, y3min, y4max, y4min, y5max, y5min, ymax, ymin
Sets the lower and upper range limits for the specified axis. This disables
automatic range reset for the corresponding axis.
xyautofit Resets all xy axes ranges to preset values after each update.
xyshow Specifies variables that should be displayed as xy mappings. Wildcards can
be used in the variable names.
Prepares for displaying boron and stress data on separate y-axes, with the
legend enabled, with linear scaling for the stress variables, and with boron as
the contouring variable for 2D mode:
[Link] xyshow="Boron* Stress*" \
y1axisvar=Boron* y2axisvar=Stress*!y2log y2min=-1e-6 y2max=1e-5 \
contourvar=Boron legend
[Link] [Link]=Boron* scale=log
[Link] [Link]=Stress* scale=lin
[Link]
Function: Prepares an xy plot to draw on.
Syntax: [Link]
[clear]
[min= <numeric list>] [max= <numeric list>]
[[Link]=<c>] [[Link]=<c>] [[Link]] [[Link]]
Description: Configures a 2D plot surface for use with the [Link] command. This
prepares axis scaling, labels, and controls log axes. (Using this command and
the [Link] command could simulate all other commands in this section.)
Options:
point
Function: Creates a point, for example, for a mask polygon.
Syntax: point
[coord= {<n>[<m>|<cm>|<um>|<nm>]
<n>[<m>|<cm>|<um>|<nm>]
<n>[<m>|<cm>|<um>|<nm>]}]
[name=<c>] [list] [clear]
clear Clears the list of all points. If a name is specified, it clears only that point
information.
coord Defines the coordinates of the point. For a 3D point, all three coordinates
must be specified. If only two are defined, a 2D layout point in the yz plane
is assumed. The default unit is μm .
list Returns the list of currently defined points. If a name is given, it prints the
information for this point only.
name Specifies the name of the point.
Examples: point name=p1 coord= {0 -1.5}
Defines a 2D point with the coordinates y = 0 and z = –1.5.
[Link]
Function: Adds a line segment to a plot.
Syntax: [Link]
x=<n> y=<n>
[name=<c>] [color=<c>] [symb=<c>] [move]
Description: Adds segments to a specified line on a plot surface using the X-windows-
based plotting (plot.1d or plot.2d). The command is used to plot
calculated values, data, or direct outputs from the simulation. The values can
be added to any named line.
Options:
color Specifies the color for the line. It can be any color supported by the X11
hardware and named in the color database.
move Instead of drawing from the last point, the graphics pen is placed at this point
without moving. This, combined with symb, can be used to draw scatter
plots.
name Specifies the name of a line, so that points can be added to the line at a later
time. The name can be any valid character string and is used in the plot
legend. If the named line does not exist, it is created.
symb The first character of this string is used to mark the line. The default is x. If
no symbol is specified, none will be used. If a symbol is specified once for a
line, it is used for all lines.
x, y Mandatory. Specify the values to be added to the plot.
Examples: [Link] x=60.0 y=0.1 name=Thickness
The x- and y-values are added to the line named Thickness.
See: interface on page 948, interpolate on page 950, [Link] on page 1021,
select on page 1053
polygon
Function: Creates a polygon, for example, for a mask.
Syntax: polygon
(list | clear |
(name=<c>
(tdr=<filename> [regions= {reg_1 ... reg_n}]) |
[materials= {mat_1 ... mat_n}] |
[points= {point_1 point_2 ... point_n}] |
[segments= {
y_1[<m>|<cm>|<um>|<nm>]
z_1[<m>|<cm>|<um>|<nm>]
y_2[<m>|<cm>|<um>|<nm>]
z_2[<m>|<cm>|<um>|<nm>] ...
y_n[<m>|<cm>|<um>|<nm>]
z_n[<m>|<cm>|<um>|<nm>]}] |
[rectangle]
[min= {
y[<m>|<cm>|<um>|<nm>]
z[<m>|<cm>|<um>|<nm>]}]
[max= {
y[<m>|<cm>|<um>|<nm>]
z[<m>|<cm>|<um>|<nm>]}]
)
)
[xy]
Description: Defines a polygon. This command defines a mask or uses the polygon during
an insertion. One of the following must be used to create a polygon:
• points
• segments
• rectangle
• tdr
If named points are not given explicitly when forming polygons, they are
generated automatically during the creation of the polygon.
Options:
clear Clears the list of all polygons. If name is specified, it clears only the named
polygon.
list Returns a list of all polygons. If name is given, it returns the information for
this polygon only.
materials Specifies a material or list of materials that will be read when using the tdr
option.
max Maximum point for a rectangular box. It should be used with the
rectangle parameter to create a rectangular polygon. The default is the
structure bounding box maximum.
min Minimum point for a rectangular box. It should be used with the rectangle
parameter to create a rectangular polygon. The default is the structure
bounding box minimum.
name Specifies the name of the polygon.
points Lists the point names used to specify the polygon. A minimum of three must
be specified. The points must have been specified using the point
command. The polygon is closed implicitly by connecting the first and last
points. This parameter also can be used with rectangle to specify a
rectangular polygon. In this case, two points should be given: the minimum
and maximum points of the rectangle.
rectangle Must be specified along with the parameters min and max to define a
rectangular box. Alternatively, two named points can be given (using
points) corresponding to the minimum and maximum of the rectangle.
regions Specifies a region or list of regions to be used when reading the polygon by
using the tdr option.
segments Lists the line segments in the yz plane (or xy when the option xy is specified)
used to specify a polygon in 3D. The polygon is closed implicitly by
connecting the first and last points. A minimum of three segments must be
given.
tdr Reads the polygon from the filename. If you use tdr, you must specify xy.
It allows you to use materials and regions to further specify which polygon to
be read from the TDR file.
xy Defines the polygon in the xy plane instead of the default yz plane. When
using xy, the segments are defined as { x_1 y_1 ... x_n y_n }, and min and
max as x y. This option is mandatory when using tdr. Specifying this option
typically means that the polygon will be used for insertion rather than for
masking.
polyhedron
Function: Creates and stores 3D polyhedra, mainly for later insertion.
Syntax: polyhedron
clear | list |
(name=<c>
([Link]
(tdr=<filename> [regions= {reg_1 ... reg_n}]) |
[materials= {mat_1 ... mat_n}] [rotate]) |
brick= {
minx[<m>|<cm>|<um>|<nm>]
miny[<m>|<cm>|<um>|<nm>]
minz[<m>|<cm>|<um>|<nm>]
maxx[<m>|<cm>|<um>|<nm>]
maxy[<m>|<cm>|<um>|<nm>]
maxz[<m>|<cm>|<um>|<nm>] } |
polygons= {pol_1 ... pol_n} |
(polygons= {pol}
min=min_x[<m>|<cm>|<um>|<nm>]
max=max_x[<m>|<cm>|<um>|<nm>])
)
Description: Creates a polyhedron and stores it under the name <c>. Different
mechanisms can be used to create the polyhedron. It can be read from a TDR
boundary file, defined as a brick, defined from the beginning using polygonal
faces, or created as an extruded polygon. When a polyhedron is defined, it
can be used to perform polyhedron insertion using the insert command.
Options:
brick Creates a rectangular prism, given its two corners as minx miny minz and
maxx maxy maxz.
clear Erases all the previously defined polyhedra from memory.
[Link] Creates a polyhedron from the external Sentaurus Structure Editor structure.
For more information, see Sentaurus Structure Editor Interface on page 767.
list Displays a list of the currently defined polyhedra.
materials Optional. It can be used with the tdr option only and is used to choose
which materials will be included in the file. In addition to explicit material
names, the keyword [Link] is available to specify all nongas
materials.
max Maximum x-coordinate for extrusion (see polygon below).
min Minimum x-coordinate for extrusion (see polygon below).
PowerDeviceMode
Function: Sets diffusion models to match the [Link] model of TSUPREM-4 for
power-device applications. It also relaxes time-step controls and reduces
mesh refinement around the interfaces.
Syntax: PowerDeviceMode
Description: Sentaurus Process and TSUPREM-4 use different code and, sometimes, have
different assumptions or algorithms for diffusion. This command tries to
minimize these differences by setting appropriate switches that make the
results of a Sentaurus Process simulation as close as possible to those
produced by TSUPREM-4 with the [Link] model for boron, phosphorus,
arsenic, antimony, and indium in silicon. This includes:
• Switch on Fermi model.
• Switch on solid solubility model.
• Switch on DopantOnly charge model.
• Switch on equilibrium activation model for arsenic.
• Switch on segregation model at oxide–silicon interface.
• Switch off dopant and defect clusters.
• Switch off point-defect equations.
• Relax time-step controls by modifying InitTimeStep, delT, delTox,
delNT, IncreaseRatio, ReduceRatio, and MaxGrowthStep.
• Switch on TSUPREM-4-style time-step controls.
• Reduce mesh refinement around the interfaces.
• Relax meshing criteria during boundary movement.
print.1d
Function: Prints values along a 1D cross section.
Syntax: print.1d
[x=<n>][<m>|<cm>|<um>|<nm>]
[y=<n>][<m>|<cm>|<um>|<nm>]
[z=<n>][<m>|<cm>|<um>|<nm>]
[<material>] [region=<c>] [name=<c>]
[gas] [interfaces]
[[Link]=<c>]
Description: Prints the values along cross sections through the device. This command is
particularly useful for creating input for another xy plot. A Tcl list is returned
for all values. This allows subsequent processing (for example, integration)
of the resulting profile.
Options:
gas By default, gas values are not reported. This option allows the gas mesh to be
included in the extracted data.
interfaces Prints interface data from the field specified with the name parameter. Values
from all interfaces are displayed on the screen and are organized by
interface. For each point on the interface, a set of numbers is displayed as
follows:
• {x value} in 1D
• {x y value} in 2D
• {x y z value} in 3D
where x, y, and z are the coordinates of the interface point, and value is the
value of the specified field.
<material> Name of the material for which the data fields are printed.
name Specifies the name of a data field. This allows printing without using the
select command. The default is to use the field specified in the most recent
select command.
region Name of the region for which the data fields are printed.
[Link]
[Link]
Function: Writes data in x-, y-, and z-format.
Syntax: [Link]
[name=<c>] [outfile=<c>]
[xlo=<n>][<m>|<cm>|<um>|<nm>] [xhi=<n>][<m>|<cm>|<um>|<nm>]
[ylo=<n>][<m>|<cm>|<um>|<nm>] [yhi=<n>][<m>|<cm>|<um>|<nm>]
[zlo=<n>][<m>|<cm>|<um>|<nm>] [zhi=<n>][<m>|<cm>|<um>|<nm>]
[NODE | EDGE]
Description: Displays the selected data field. The file format is the x-position, y-position,
and z-position. This command is used primarily to write a data field for use
with more sophisticated 3D plotting tools.
Options:
name Specifies the name of a data field. This allows printing without using the
select command. The default is Z_Plot_Var.
NODE, EDGE These Booleans specify either a node-based field or an edge-based field. The
default is NODE.
outfile Name of output file. The file is opened for writing, and any previous content
is destroyed.
xlo, ylo, zlo, xhi, yhi, zhi
Specify a 3D bounding box. Only data within these limits is printed. The
default value and unit is 0 μm .
Examples: [Link] outfile=foo name=Boron
Prints the data field named Boron.
See: select on page 1053
profile
Function: Reads a data file and constructs a data field.
Syntax: profile
infile=<c> name=<c> concentration=<n> region=<c> [<material>]
xcoord=<n>
[offset= {<n> <n> <n>}][<m>|<cm>|<um>|<nm>]
[xscale=<n>] [ymin=<n>]
[(logarithmic | linear)]
[min= {<n> <n> <n>}] [max= {<n> <n> <n>}]
[[Link]=<n>] [[Link]=<n>] [[Link]=<n>]
Description: Reads data fields from an ASCII data file or a TDR file and adds them to the
structure. This command allows reading a doping profile from a SIMS
measurement. In this case, if the simulated structure is 2D or 3D, the data
field is created uniformly in the lateral direction. This command also allows
reading a field from a TDR file with the same dimension as the simulated
structure. You also can limit the extent of the imported profile within a
rectangular box by specifying min or max, or both. Outside this box, the
profile falls off with complementary error function (erfc) with standard
deviations given by [Link], [Link], and [Link] in the x-, y-, and z-
direction, respectively.
Options:
min Takes a list of numbers defining the x-, y-, and z- coordinates of the upper-
left back corner of the 1D, 2D, or 3D rectangular box in the internal
coordinate system into which the profile is imported. For 1D, 2D, and 3D
structures, a list of one, two, or three numbers is required, respectively. The
possible minimum number is used for missing numbers.
name Mandatory. Specifies name of data field. This parameter allows the creation
of arbitrary fields, for example, a field called Measured.
offset A list of numbers that specify the offsets in the x-, y-, and z-direction,
respectively. The missing values are treated as 0. These values will be
subtracted from the x-, y-, and z-coordinate, respectively, when creating the
data field from the imported field. This parameter allows a profile to be
shifted. The default value and unit is 0 μm .
region Name of the region to which the profile is applied.
[Link] Standard deviation of erfc falloff from a rectangular box in the x-direction.
This parameter must be specified if a rectangular box is specified.
xcoord Coordinate in x-direction where the concentration will be defined.
xscale The profile command assumes the x-dimension is in micrometers. This
command allows you to scale the depth dimension if necessary. For example,
–4
if the depth is in ångströms, 1 ×10 should be specified. The default value is
1.0.
[Link] Standard deviation of erfc falloff from a rectangular box in the y-direction. If
it is not specified, it takes the value of [Link].
ymin Minimum-acceptable value of the data field. Values less than ymin in the
data field are set to ymin. This is useful for data that may approach zero
when using logarithmic interpolation.
[Link] Standard deviation of erfc falloff from a rectangular box in the z-direction. If
it is not specified, it takes the value of [Link].
RangeRefineboxes
Function: Creates a set of refinement boxes based on a mask and a set of range and
extent parameters. All boxes share a set of global refinement settings, but
each box can have additional local refinement settings.
Syntax: RangeRefineboxes
name= <root>
mask= <mask>
range= <range>
[<default parameters>]
boxes= {
{drange= <drange_1> [<box_1-specific parameters>]}
[{drange= <drange_2> [<box_2-specific parameters>]}]
...
}
Description: Creates a set of refinement boxes with a single command. The refinement is
applied to the area under the specified mask. The lateral extent is controlled
by the same parameters as in the refinebox command, for example,
[Link] and [Link].
The primary extent is defined by the parameters range and drange. The
range parameter is common to all refinement boxes and may be taken as the
range parameter for a given implantation. The drange parameter can be set
for each related refinement box separately.
NOTE: This command makes one call to the refinebox command per
individual refinement box.
Options:
<box-specific parameters>
reaction
Function: Defines the reacting materials.
Syntax: reaction
(list | (name=<c> mat.l=<c> mat.r=<c> [Link]=<c>))
[[Link]=<c> [Link]=<c>]
[[Link]= <string list>]
[[Link]] [clear] [delete]
Description: Defines reacting materials and the new material that forms as the product of
the reaction. The convention for interface materials is mat1_mat2 where the
materials are ordered alphabetically. For the purpose of this command, left
refers to mat1 and right refers to mat2. Both materials must be specified
when using this command. Silicidation and oxidation rely on this
information.
Options:
[Link] Specifies an ambient-type reaction and which ambient must be present for
this reaction to occur.
clear If a reaction is named, this parameter clears the diffusing species list from
that reaction. If no reaction is named, it deletes all reactions (may only be
useful for special situations).
delete Deletes the named reaction.
[Link]
name A reaction name must be specified. The parameter name is used to identify
the reactions during growth process.
[Link] Name of the existing material that the new material is behaving like. This
includes the existing material and other material interfaces. It is performed in
the ReactantLike procedure.
Examples: reaction name=MyDryOx mat.l=Silicon mat.r=Gas [Link]=oxide \
[Link] = O2
Defines a reaction named MyDryOx. The reaction will occur at the
gas–silicon interface and the new material will be oxide. For the reaction to
occur, O2 must be present in the structure. It is expected that you will provide
the actual reaction equation for the interface using the Alagator language
(see Alagator for Generic Growth on page 584).
refinebox
Function: Sets the local grid parameters and performs a grid refinement using the
MGOALS library.
Syntax: refinebox
[name=<c>] [clear] [list] [print]
[<material>] [materials= {string list}] [regions= {string list}]
[min= <numeric list>] [max= <numeric list>]
[xrefine= <numeric list>]
[yrefine= <numeric list>]
[zrefine= <numeric list>]
[[Link]= {<string list>}]
[[Link]= {<string list>}]
[offsetting] [[Link]]
[[Link]=<i>]
[[Link]= {string list}]
[[Link]= {string list}]
[[Link]=<n>][<um>]
[Adaptive] [kmc]
[[Link]=<n>]
[[Link]=<n>][<um>]
[[Link]=<n>] [[Link]=<n>]
[[Link]=<n>]
[[Link]=<n>]
[[Link]=<n>]
[[Link]=<n>]
[[Link]= n>]
[[Link]= {field1 = <n> field2 = <n> ...}]
[[Link]= {field1 = <n> field2 = <n> ...}]
[[Link]= {field1 = <n> field2 = <n> ...}]
[[Link]= {field1 = <n> field2 = <n> ...}]
[[Link]= {field1 = <n> field2 = <n> ...}]
[[Link]= {field1 = <n> field2 = <n> ...}]
[[Link]= {field1 = <n> field2 = <n> ...}]
[[Link]= {string list}]
[[Link]= {string list}]
[[Link]= {string list}]
[[Link]= string]
[[Link]= {field1= <string> field2= <string> ...}
[[Link]= <string>]
[[Link]= <numeric list>] [[Link]= <numeric list>]
[[Link]= <numeric list>]
[[Link]=<n>] [[Link]=<n>]
[[Link]=<n>] [[Link]=<scaling>]
[3d]
[(mask=<maskname> [Link]=<n> [Link]=<n>) [extend=<n>]
[[Link]] [[Link]] [[Link]]]
Description: Specifies mesh refinement. The following types of refinement box are
available:
• Standard: Independent xrefine, yrefine, zrefine settings.
• Interface: Refinement near one or more interfaces.
• Adaptive: Adaptive refinement on fields.
• Plane: Planar refinement for crystal boundaries.
• Bulk mask: Confine refinement to an extruded boundary defined by a
mask.
• Mask edge: Confine refinement to a specified distance from a specified
mask.
All refinement boxes can be limited by material or spatially by specifying x-,
y-, or z- minimum or maximum limits.
Options:
3d Specifies the refinement box for only 3D, or for only 1D and 2D. The default
behavior is to always apply the refinement box. If 3d is specified, the
refinement box only applies to 3D. If !3d is specified, the refinement box
only applies to 1D and 2D.
Adaptive Specifies an adaptive refinement box. Adaptive refinement boxes are used
during all MGOALS remeshing operations (etch, depo, photo,
transform, and so on) but will not be used during solve unless adaptive
meshing is switched on (which can be accomplished using pdbSet Grid
Adaptive 1).
clear When used alone, this parameter clears all previously defined refinement
boxes. When used with the name parameter, only the named refinement box
is deleted.
[Link] If ![Link] is specified with the offsetting keyword,
[Link] and [Link] are interpreted
in a nonsymmetric fashion by Sentaurus Mesh. The default is
[Link], that is, the specification of a material or region pair x 1 ⁄ x 2 is
interpreted by Sentaurus Mesh as if the parameters were defined
symmetrically for both x 1 ⁄ x 2 and x 2 ⁄ x 1 .
extend Optional extension when using a mask driven refinement. This value can be
positive (or negative) and extends (shrinks) the refinement isotropically in y
and z. The original mask is left unchanged.
[Link] Minimum and maximum lengths in the x-axis where the refinement will be
[Link] applied when using the mask option.
kmc Refines the internal KMC boxes only.
list Lists the defined refinement boxes.
mask Uses an existing mask name as an extra constrain to where the refinement
will be applied. If the refinement contains another spatial constrain (for
example, using min and max parameters), the final application region is the
intersection of the other constrains and the specified extruded mask.
This parameter requires specifying the box length in x (lacked by the mask)
using [Link] and [Link], and optionally allows the use
of the parameter extend. This option allows the definition of layout (mask)
driven refinements.
[Link] Specifies minimum mesh size near mask edge (actual edge length may be up
to 2 times smaller than this setting. This parameter must be used with
[Link] to have an effect.
[Link] Specifies the growth rate of refinement away from the mask edge (default is
1.0, == no growth). This parameter must be used with
[Link] to have an effect.
[Link]
Specifies the distance from the mask edge over which edge-based refinement
occurs. It must be specified to obtain mask edge–based refinement.
<material> Limits the refinement box to a particular material. By default, the refinement
box applies to all materials. For more information about specifying
materials, see Material Specification on page 50.
materials Limits the refinement box to a list of materials. By default, the refinement
box applies to all materials. For more information about specifying
materials, see Material Specification on page 50.
max, min Limits the extent of the refinement box. Both parameters take a Tcl list of
numbers defining the refinement box extent in the x-, y-, and z-axes (in the
internal coordinate system). You may specify either one or both min and max
with a Tcl list of one, two, or three numbers for each parameter. If one
number is specified, it is taken to be the limit in the x-axis. If two numbers
are specified, they set limits for the x-axis and y-axis. Similarly, three
numbers specify a limit in all three axes. The default unit is μm .
name Name of the refinement box.
print Prints information for all refinement boxes unless name is specified; in
which case, only the named refinement box information is printed.
regions Limits the refinement box to a list of regions. By default, the refinement box
applies to all regions.
xrefine Sentaurus Process list of three numbers defining the element sizes in the x-
direction at the top, middle, and bottom (in Sentaurus Process coordinates)
of the box. The default unit is μm .
yrefine Sentaurus Process list of three numbers defining the element sizes in the y-
direction at the left, middle, and right (in Sentaurus Process coordinates) of
the box. The default unit is μm .
zrefine Sentaurus Process list of three numbers defining the element sizes in the z-
direction at the front, middle, and back (in Sentaurus Process coordinates) of
the box. The default unit is μm .
Interface refinement control
[Link]
All interfaces that contain any of the materials listed here are refined using
the [Link] criterion. By default, in 2D, interface refinement is
applied to all interfaces of Silicon, Polysilicon, or Oxide. In 3D,
interface refinement is only by default applied to interfaces of Silicon.
[Link]
[Link]
Adds fields to the default list of fields considered for adaptive refinement.
[Link]
Removes specified fields from the default list of fields considered for
adaptive meshing.
[Link] Specifies the type of criteria to apply for adaptive refinement. Allowed
values are interval and error (the default).
[Link] Target length (in micrometers) for interval refinement.
[Link]
Scaling factor used in the calculation of the effective target length for
interval refinement.
Examples: refinebox min= {-0.25 0.4} max= {0.4 0.6} xrefine= {0.1 0.06 0.1} \
yrefine= {0.1 0.01 0.1} oxide
refinebox min= {0.6 0.6} max= {0.8 0.8} xrefine= {0.1 0.03 0.1} \
yrefine= {0.1 0.03 0.1} silicon
Defines two refinement boxes.
region
Function: Creates regions, marks substrates, and changes region materials.
Syntax: region
<material>
xlo=<c> [ylo=<c>] [zlo=<c>]
xhi=<c> [yhi=<c>] [zhi=<c>]
[substrate] [name=<c>] [min= {<n> <n> <n>} max= {<n> <n> <n>}]
[[Link]] [[Link]] [[Link]]
[[Link]]
[field=<c> & (resistivity=<n>[<ohm-cm>] | concentration=<n>)]
[list | [Link] | [Link] | [Link]]
[[Link]]
[material]
[bbox | [Link] | [Link]]
[[Link]=<c> point= {<n> <n> <n>}]
[volume]
[[Link]=<c>]
[Link]
Changes the material of an existing region (must be used with the name
parameter). Changing the material of selected regions (to and from gas) can
be used to change the structure without remeshing. Meshes of material gas
are ignored in most process steps: implantation and oxidation.
concentration Specifies the value of the field directly.
[Link] If specified, returns the cropped bounding box of a region that lies within a
user-specified bounding box.
[Link] Normally when changing the material of a region, all ancestors of the named
region (if there are any) are converted as well as the named region if it exists.
For more information on region naming, see Regionwise Parameters and
Region Name-handling on page 56. If [Link] is switched on (it is
switched off by default), only a region whose name exactly matches the
name parameter will have its material changed.
field Name of a field to be initialized within this region.
list, [Link], [Link], [Link]
Used together to change the name of a region. The parameter point must
specify a point (a list of doubles) within a region. The point should not be on
or very near a border. The parameter [Link] specifies the new name of
the region.
resistivity Sets the value of the field by requesting a resistivity. This parameter only
works for fields that have the resistivity parameters in the PDB (which by
default is only As, B, P, Sb, and In in silicon).
substrate Tags a named region as the substrate for subsequent analysis. This Boolean
flag allows the update_substrate command (see update_substrate on
page 1112) to apply the lattice mismatch strain due to impurities.
Setting !substrate clears the substrate tag. If no region name is specified
and !substrate is set, all substrate tags are cleared.
[Link]
Specify the bounds of the region. The <c> value should be one of the tags
created in a preceding line statement.
volume If specified, the command returns the volume of the named region. The units
will be in cm<dim>, where <dim> is the simulation dimension.
[Link] Usually when the material of a region is changed using the
[Link] parameter, all data in that region is set to 0.
Setting ![Link] leaves the data untouched. The default value for this
parameter is taken from pdbGet Grid [Link], which
allows a global setting for this parameter.
Examples: mater name=MySilicon [Link]=Silicon add
region name=bulk MySilicon [Link] ![Link]
Creates a new material MySilicon, and then changes the material of a
region named bulk to MySilicon without changing the data.
region name=bulk min= {-5.0 0.0 0.0} max= {5.0 1.0 1.0} [Link]
Returns a cropped bounding box of the region bulk that lies within the
specified bounding box defined by the min and max parameters.
See: integrate on page 945, line on page 969
sde
Function: Dispatches commands to Sentaurus Structure Editor (only available in 3D).
Syntax: sde
{<Sentaurus Structure Editor commands>}
[Adaptive] [remesh]
[on] [off] [external]
[polyhedron=<c>] [[Link]=<c>]
[SdeCheck]
[logfile=<c>]
Description: Enables and configures the interface between Sentaurus Process and
Sentaurus Structure Editor. When sde on is specified, all 3D geometry
modeling is performed using Sentaurus Structure Editor. Sentaurus Process
will translate geometry-modifying commands to the Sentaurus Structure
Editor language and retrieve the resulting modified structure when necessary.
The following commands are supported: etch, deposit, photo, strip,
transform.
Any number of sde commands in the Scheme language. You must enclose
the Scheme commands in a pair of braces to protect them from the Tcl
command interpreter. The opening brace must be on the same line as the sde
command, for example:
sde {
(sdepe:depo "thickness" 0.01 "type" "iso" "algorithm" "pt"
"max-chamfer-angle" 30 "steps" 1 "material" "Oxide")
(sdeio:save-dfise-bnd "all" "out1_sde.bnd")
}
external Puts Sentaurus Structure Editor interface in external mode. This mode can be
used to create polyhedra that can be inserted into a Sentaurus Process
structure using MGOALS3D. When the external mode is switched on, all
geometry transformations such as etch, deposit, and transform are
applied to the external Sentaurus Structure Editor structure. See Sentaurus
Structure Editor Interface: External Mode on page 764.
logfile Specifies name of a file to log all of the Scheme commands dispatched to
Sentaurus Structure Editor. The recommended file extension is .scm. The file
will contain both the Scheme commands translated from Sentaurus Process
etch, deposit, strip, photo, and transform commands, and the
Scheme commands specified by users inside the sde command.
The log file can be used for fine-tuning and debugging in a stand-alone run
of Sentaurus Structure Editor such as: sde -l [Link]
off Switches off Sentaurus Structure Editor mode. Operations will be performed
by the MGOALS library instead.
on Enables use of Sentaurus Structure Editor for 3D geometry modeling. Even
when Sentaurus Structure Editor is the default engine for 3D etching and
deposition, the command sde on must always be specified to ensure that
future simulations are performed using the same algorithms.
polyhedron Used for external mode only (see the external parameter definition). This
polyhedron is used to initialize the external Sentaurus Structure Editor
interface. The material to be used for this polygon is chosen with the
[Link] parameter, which has a default value of Silicon.
[Link]
Selects the material of the polyhedron that is used to initialize the external
mode. See polyhedron and external parameters.
remesh Enforces a remesh at the end of the sde command.
SdeCheck Performs a geometry check for every boundary file that is created by
Sentaurus Structure Editor. This helps to detect failures in the geometry-
modeling part and prevents the Sentaurus Process simulation from
continuing after an incorrect boundary representation is found.
Examples:
sde {
(sdegeo:set-default-boolean "ABA")
(define r1 (sdegeo:create-cuboid (position 0 0.6 0)
(position 0.2 0.3 0.5) "Silicon" "Silicon_2"))
(define facelist (list (car (find-face-id (position 0.1 0.3 0.25)))
(car (find-face-id (position 0.2 0.5 0.25)))))
(sdegeo:taper-faces facelist (position 0.2 0.3 0.5) (gvector 0 0 1) 5)
(sdeio:save-dfise-bnd "all" "out1_sde.bnd")
}
Creates a cuboid in Sentaurus Structure Editor with tapered sidewalls and
saves the structure to a .bnd file.
NOTE: The coordinates in the position vectors must be specified in DF–ISE
coordinates: x, y, z in the position vectors correspond to Sentaurus Process
z-, y-, and -x-coordinates.
See: For details about the Scheme commands, refer to the Sentaurus Structure
Editor User Guide.
select
Function: Selects the plot variable for the postprocessing routines.
Syntax: select
[<material>] [region=<c>]
[z=<c>] [value=<c>]
[name=<c>]
[list] [[Link]]
[store] [present] [permanent] [delete]
[min | max] | [[Link]]
[element] [[Link]] [interfaces] [[Link]]
[[Link]=<c>]
Description: Specifies the variable for display in all postprocessing commands. Data can
be selected directly in most commands, but it is usually more effective to
specify it with the select command, which allows for manipulation of data
fields and also will list all currently defined data fields. The quantity can be
computed on nodes (default) or on elements using the element parameter.
In either case, if necessary, interpolation will be performed to obtain the
proper value type (to obtain element values from nodal ones or vice versa).
NOTE: The select command always sets or retrieves data in internal units.
2
Internal units are cgs, for example, pressure is dyn/cm .
Options:
delete Deletes the data field with the name defined by the name parameter.
[Link] Computes the weighted field with respect to edge orientation strongly
favoring axis-oriented edges. Used with adaptive meshing.
element Computes the field on elements interpolating fields in the z expression if
necessary. If false and element fields appear in the z expression, those values
are interpolated to the nodes first.
interfaces Computes the field or minimum/maximum on interfaces as well as bulk. The
default is on, that is, include interfaces.
list Returns a list of currently defined and named real data fields. This returns a
full Tcl list, for use with those commands that require list variables.
[Link] Returns a list of currently defined and named data fields (for example, real
data, vector data, and so on). This returns a full Tcl list for use with
commands that require list variables.
<material> Specifies the material to which the command applies. Different expressions
for the data field initialization in different materials can be used. For
information about specifying materials, see Material Specification on
page 50.
min, max These parameters must be used with the name parameter. When specified,
the select command returns the minimum or maximum of the field name.
You can limit the query to a specific material using the material parameter
or a specific region using the region parameter.
name Name of the new data field. The default is the name is Z_Plot_Var. This is
used by all of the commands when a plot name is not specified. This is a
powerful feature, as solution fields also can be created.
[Link] Computes the divergence of a vector field at a node.
permanent Returns 1 if the data field is written into permanent storage. If not, it returns
0.
present Returns 1 if the data field with the name defined by the name parameter
exists. If it does not exist, it returns 0.
region Name of the region. This parameter specifies the region to which the
command applies. Different expressions for the data field initialization in
different regions can be used.
[Link]
Works with the min and max parameters, Reports the coordinate of the
minimum or maximum value of the selected field.
store Sets the data field with the name defined by the name parameter to be written
into permanent storage when a structure file is output. The default is false.
[Link]
z, value Accepts an expression of data fields that are used to build a new data field.
The operators *, /, +, –, and ^ all work as expected. The vector variables are
listed below. The data fields available can be listed with the list parameter.
In addition to the listed data fields, the x- and y-coordinates can be specified.
Several functions also are available to operate on data fields:
abs Absolute value.
erf Error function.
erfc Complementary error function.
exp Exponential.
log Logarithm.
log10 Logarithm base 10.
sqrt Square root.
Examples: select z=log10(Vacancy)
Selects as the plot variable the base 10 logarithm of the vacancy
concentration.
select list
Lists all available real data fields.
SetAtomistic
Function: Sets the atomistic mode as the simulation mode.
Syntax: SetAtomistic
Description: Switches the simulation domain to the atomistic mode. The following
commands are affected in this mode:
• deposit
• diffuse
• etch
• implant
• profile
• region
• select
• strip
• struct
SetDFISEList
Function: Sets a list of solution or term names to be included when saving DF–ISE
format files.
Syntax: SetDFISEList
[solution/term names]
[Solutions] [Dopants]
Description: Creates a solution or term name list that is passed to the struct command.
Depending on the flags provided by users, solution names or dopant names
can be included or excluded from the fields that need to be written to the
DF–ISE files. If the command is executed without arguments, the default
saving is used, which includes all solutions, total and active dopant fields,
and NetActive (DopingConcentration). If DF–ISE or TDR files are
saved in the struct command with the smesh parameter, the selection of
fields does not depend on the SetDFISEList specifications.
Options:
Any known fields listed on the command line are added to files saved with
struct dfise=<filename>.
Solutions Stores all solution variables (necessary for restarting a simulation).
Using !Solutions switches off all default savings (only fields specified by
name will be saved to DF–ISE files). The default is true.
Examples: SetDFISEList VTotal !Solutions
Allows only the VTotal field to be written to the DF–ISE file.
SetDielectricOxidationMode
Function: Sets the oxidation mode to grow oxide with dielectric on top.
Syntax: SetDielectricOxidationMode
<Dielectric> <Oxidant>
[Dirichlet | MassTransfer] [Continuous | Segregation]
Description: Sets the related parameters and models for oxidation with a dielectric on top.
Boundary conditions at the gas–dielectric interface and the dielectric–oxide
interface default to Dirichlet and Continuous, respectively.
Options:
SetFastMode
Function: Omits diffusion and Monte Carlo implantation to simulate the device
geometry quickly.
Syntax: SetFastMode
Description: Runs the simulation quickly without simulating dopants and defects. This
can be useful when setting up a command file to confirm quickly that the
geometry is satisfactory before simulating more computationally expensive
steps.
Examples: SetFastMode
SetPlxList
Function: Sets a list of solution and term names to be passed to the WritePlx
command.
Syntax: SetPlxList [solution/term names]
Description: Sets the list of fields to be saved in the next call to WritePlx. The list can
contain solutions or term names.
Options:
solution/term names
SetTDRList
Function: Sets a list of solution or term names to be included when saving TDR format
files.
Syntax SetTDRList
[solution/term names]
[Solutions] [Dopants]
Description: This command has the same syntax as SetDFISEList. Currently, there is
only one list of fields to be stored when using either TDR or DF–ISE format
files (that is, SetTDRList and SetDFISEList perform exactly the same
function).
Options:
Dopants Dopants include total and active dopant concentrations. !Dopants does not
save total and active dopant concentrations, but still saves NetActive
(DopingConcentration). The default is true.
solution/term names
Any known fields listed on the command line are added to files saved with
struct dfise=<filename>.
Solutions Stores all solution variables (necessary for restarting a simulation).
Using !Solutions switches off all default savings (only fields specified by
name will be saved to DF–ISE files). The default is true.
See: SetDFISEList on page 1057
SetTemp
Function: Sets the temperature value.
Syntax: SetTemp <n>[<C>|<K>]
Description: Sets the temperature value. The default unit is degree Celsius.
Examples: SetTemp 1000.0
Sets the temperature to 1000°C .
SetTS4ImplantMode
Function: Sets implant-related parameters and models to match those of TSUPREM-4.
Syntax: SetTS4ImplantMode [Taurus | Native]
Description: Sentaurus Process and TSUPREM-4 use different codes and, sometimes,
have different assumptions or algorithms for analytic implantations. This
command tries to minimize this difference by setting appropriate switches
that make Sentaurus Process simulation results as close as possible to those
produced by TSUPREM-4. This includes:
• Use beam dose.
• Switch on [Link] model.
• Switch off Sentaurus Process backscattering model.
• In Taurus mode, also switch on PAI model with TSUPREM-4-compatible
PAI mode.
The results may not be exactly the same due to differences in numeric
methods for some cases.
Options:
SetTS4MechanicsMode
Function: Sets mechanics-related parameters and models to match those of
TSUPREM-4.
Syntax: SetTS4MechanicsMode [advanced | 2008.09]
The parameters above are set to match TSUPREM-4 defaults. The results
may differ due to different numeric methods.
Options:
SetTS4OxidationMode
Function: Sets oxidation-related parameters and models to match those of
TSUPREM-4.
Syntax: SetTS4OxidationMode [advanced | 2008.09]
The parameters above are set to match TSUPREM-4 defaults. The results
may not be very close due to differences in numeric methods for some cases.
Options:
SetTS4PolyMode
Function: Sets the polycrystalline model to match those of TSUPREM-4.
Syntax: SetTS4PolyMode
Description: Sets the related parameters and models for the polycrystalline model in
Sentaurus Process to match TSUPREM-4 settings.
SheetResistance
Function: Calculates the sheet resistance and p-n junction depth.
Syntax: SheetResistance
[x=<n>] [y=<n>] [z=<n>]
Description: Calculates the sheet resistance and p-n junction depth of a semiconductor
layer in the vertical direction. It can only be used after a diffusion step.
Options:
simDelayDouble
Function: Retrieves the Tcl expression used to evaluate a double-precision simulator
state variable.
Syntax: simDelayDouble <c> [<c>]
Description: This command is very similar to the simGetDouble command except that
the evaluation of the return expression is delayed.
Examples: simDelayDouble Diffuse tempC
Returns [simGetDouble Diffuse tempC], which is the unevaluated
expression itself.
See: simGetDouble on page 1070
simGetBoolean
Function: Reads a global simulator state variable.
Syntax: simGetBoolean <c> [<c>]
Description: Collects the one of the following global simulator state variables:
• AmbientReactions
• IsEpi
• IsGrowing
• laser
• MaterialReactions
Examples: simGetBoolean Diffuse laser
Returns true if laser annealing is switched on.
simGetDouble
Function: Reads a double-precision simulator state variable.
Syntax: simGetDouble <c> [<c>]
simSetBoolean
Function: Sets a global simulator state variable.
Syntax: simSetBoolean <c> [<c>] <n>
NOTE: Modifying global simulator state variables may cause errors in the
simulation.
Examples: simSetBoolean Diffuse laser 1
Sets the value of the global simulator state variable laser to true.
simSetDouble
Function: Sets a double-precision simulator state variable.
Syntax: simSetDouble <c> [<c>] <n>
Description: Sets one of the following global double-precision simulator state variables:
• PH2O
• pO2
• temp
• tempC
• tempK
• Vti
NOTE: Modifying global simulator state variables may cause errors in the
simulation.
Examples: simSetDouble Diffuse temp 900
Sets the last diffusion temperature to 900°C .
slice
Function: Extracts a 1D data slice through the 2D to 3D simulation object.
Syntax: slice
[name=<c>] [<material>]
[value=<n>] [side=<c>]
[mx] [my] [mz] [mdist]
[x=<n>][<m>|<cm>|<um>|<nm>]
[y=<n>][<m>|<cm>|<um>|<nm>]
[z=<n>][<m>|<cm>|<um>|<nm>]
[p1= <numeric list>]
[p2= <numeric list>]
[[Link]=<c>]
p1, p2 Specify the start point and endpoint for the cutline, and each parameter takes
a list of numeric values. The first, second, and third values in the list are
taken as the x-, y-, and z-value, respectively. The missing value will be
treated as zero. These parameters allow the slice command to extract data
along an arbitrary line. The output from the slice command is a list of
(distance, value) pairs, where distance is measured from p1 point, and
value is the extracted value of the selected quantity along the line. Error
messages will given if p1 and p2 are mixed with x, y, z, or value
parameters.
side Takes the value from one of the two bulk materials consisting of the interface
or ‘interface’ (literally) itself. If side is not specified, ‘interface’ itself is
assumed. If side is specified as one of the bulk materials, the value of the
selected quantity for the bulk material at the interface is returned. This
parameter is effective only if an interface material is specified.
[Link]
smooth
Function: Smooths a set of fields.
Syntax: smooth
[Link]= {list of fields}
[[Link]= {double array}]
[init=<n>][<hr>|<min>|<s>]
init Specifies the first time step for solving the smoothing equations. The default
value is 0.0001 s, which is sometimes inappropriate for defect simulations,
particularly in cases of damage. The default unit is minute.
[Link] Specifies a set of fields to be smoothed. Any existing field can be specified.
[Link]
solution
Function: Obtains and sets solution parameters for generic solutions using Alagator.
Syntax: solution
[add] [list] [present] [needsolution]
[nosolve | solve | ifpresent=<c>] [smooth]
[damp] [negative] [DiffStep] [GrowthStep] [InitStep] [Heat]
[name=<c>] [reset] [store]
[[Link]= {<string list>}]
[unit=<c>]
Description: Creates and modifies solution names, and sets conditions for their inclusion
in the assembly. Solutions also can be listed and checked.
Options:
Only one of these options can be used at a time. They control the solution
status for the next command:
• nosolve means do not solve.
• solve switches on the solution status for the next command.
• ifpresent sets up a conditional solve.
If all the solutions in the specified list are also being solved, this solution is
solved.
present Returns true if the solution is defined and a data field matches the name.
reset Allows reaction solution variables to be reset before the diffusion starts. The
default is on.
store Allows the solution command to be stored in a TDR file.
–3
unit Unit of the solution variable. The default is cm .
Examples: solution name=Potential damp negative solve add
Creates a solution named Potential and always solves for it. Allows the
solution to have negative values and uses damping on the Newton iteration
updates.
solution list
Returns a list of all solutions.
sptopo
Function: Exchanges structure and dispatches commands to the 2D etch and deposit
simulator Sentaurus Topography.
Syntax: sptopo { <commands> }
stdiff
Function: Compares current structure with one from a TDR file.
Syntax: stdiff <tdr file>
Description: Reads the external TDR file, interpolates the data onto the current structure,
compares data, and reports if data exceeds relative error criteria (subject to
absolute error minimum value).
Options:
<tdr file> Gives the full path or prefix of a TDR file. The prefix is the file name without
_fps.tdr.
Examples: stdiff n1_fps.tdr
strain_profile
Function: Defines the strain introduced by a impurity as a piecewise linear function of
the mole fraction in a given substrate.
Syntax: strain_profile
<material>
species=<c>
ratio= <numeric list>
strain= <numeric list>
Description: The presence of certain materials such as germanium in silicon can modify
the lattice spacing. This command allows Sentaurus Process to compute
strains using the impurity mole fraction.
Options:
stressdata
Function: • Defines intrinsic stress of materials for use in stress calculations.
• Defines boundary conditions for stress analysis.
• Reports the maximum stress values and their locations.
• Defines edge dislocation settings.
Syntax: stressdata
[<material> | region=<c>]
[sxxi=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa>|<dyn/cm2>]
[syyi=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa>|<dyn/cm2>]
[szzi=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa>|<dyn/cm2>]
[sxyi=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa>|<dyn/cm2>]
[syzi=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa>|<dyn/cm2>]
[szxi=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa>|<dyn/cm2>]
[sxx1=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa>|<dyn/cm2>]
[syy1=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa>|<dyn/cm2>]
[szz1=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa>|<dyn/cm2>]
[sxx2=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa>|<dyn/cm2>]
[syy2=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa>|<dyn/cm2>]
[szz2=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa>|<dyn/cm2>]
[base=<n>][<m>|<cm>|<um>|<nm>]
[[Link]=Left | Right | Front | Back | Bottom]
[[Link]= {[xa=<n>] | [ya=<n>] | [za=<n>]}]
[[Link]= { [dx=<n>] | [dy=<n>] | [dz=<n>] | [pressure=<n>] |
[pfx=<n>] | [pfy=<n>] | [pfz=<n>] |
Description: Provides stress analysis parameters for input and output. Zero is the default
value for all intrinsic stress parameters. Wherever possible, you should use
the deposit command with specified stresses to apply intrinsic stresses.
Options:
[Link] Specifies the area where the boundary conditions are applied. The value can
be Left | Right | Front | Back | Bottom.
Left | Right | Front | Back | Bottom refer to the outer boundary surfaces
of the simulation domain.
[Link]
Specifies from which stress component (sxx, syy, szz, sxy, syz, szx) or
which derived stress (vms is the von Mises stress, ps is the principal stress,
hs is the hydrostatic stress, and pr is the pressure) to extract the maximum
stress values. Values for stress components and principal stresses are
computed at element centroid, while values for von Mises stresses,
hydrostatic stresses, and pressures are computed at nodes.
[Link]
StressDependentSilicidation
Function: Enables stress-dependent silicidation for a particular silicide.
Syntax: StressDependentSilicidation <silicide>
<silicide> Specifies the name of the silicide that will use the pressure-dependent model.
Examples: StressDependentSilicidation NickelSilicide
strip
Function: Completely removes a layer exposed to the top gas region.
Syntax: strip <material> [remesh]
Description: Completely removes a layer exposed to the top gas region. In 2D, the mesh is
regenerated immediately. In 3D, only the boundary is modified and the mesh
is regenerated later when necessary.
Options:
struct
Function: Writes files containing the structure or the mesh and solutions.
Syntax: struct
[dfise=<c> | tdr=<c> | smesh=<c>]
[pdb] [[Link]] [bnd] [sat]
[contacts] [interfaces]
[bndfile=<c>] [datfile=<c>] [grdfile=<c>] [satfile=<c>] [[Link]]
[compress] [[Link]]
[Gas]
[mshcmd]
scale=<n> [binary] [FullD] [simplify=<n>]
{[x=<n>][<m>|<cm>|<um>|<nm>]
[y=<n>][<m>|<cm>|<um>|<nm>]
[z=<n>][<m>|<cm>|<um>|<nm>]}
[visual.1D] [Adaptive]
Description: Writes the structure and the simulation mesh and field data to one or several
files. The data saved is from the current set of solution values.
Options:
Adaptive In 3D, meshing is delayed until it is needed; to save a file, a mesh may need
to be created. This parameter controls whether adaptive meshing is used. The
default is taken from the pdb parameter Grid Adaptive.
[Link]
contacts Writes contacts defined in the contact command into the boundary file.
The default is true.
dfise Saves files in DF–ISE format. The extensions _fps.grd and _fps.dat are
added automatically. Therefore, if dfise=filename is specified, Sentaurus
Process saves the files filename_fps.grd and filename_fps.dat.
The coordinate system for Sentaurus Process differs from the coordinate
system in the DF–ISE files. In Sentaurus Process, the x-direction is always
perpendicular to the substrate surface and the positive direction increases
with depth into the substrate (the negative direction is up). The y-direction
and z-direction are parallel to the initial substrate surface in 2D and 3D,
respectively. In DF–ISE, different coordinate systems are used for 1D, 2D,
and 3D. In 2D, x is parallel to the initial substrate surface and negative-y
points up. In the 3D DF–ISE coordinate system, positive-z is up, and x and y
are parallel to the initial substrate surface. The appropriate coordinate
transformation is applied by default. To change the coordinate rotation, use
the math command.
FullD If this Boolean parameter is specified, the mesh is extruded to the maximum
dimension allowed in the simulation temporarily before saving the file.
After saving the file, the simulation is continued in the same dimension as
before.
If !FullD is specified in a struct command, the saved files contain mesh
and data in the dimension currently used in the simulation.
NOTE: Files written using the smesh parameter cannot be used to restart a
Sentaurus Process simulation.
tdr Saves a file in TDR format. The extension _fps.tdr is added automatically.
By default, all modifications to the parameter database are written to the
TDR file to support splitting and restarting simulations.
The coordinate system in TDR files is the same as DF–ISE files.
By default, TDR files can be used for splitting and restarting simulations.
Coordinates and field values are stored with their unscaled internal values.
If !Gas or !interfaces is specified, coordinates and field values are
scaled to the DF–ISE units and information required for restart is omitted.
For information about the TDR format, refer to the Sentaurus Data Explorer
User Guide.
[Link] Writes a TDR file that contains just the boundary representation.
visual.1D Applies only to 1D simulations. If specified, Sentaurus Process orders the
nodes when writing them in a TDR file, so that the file can be easily
visualized with Tecplot SV.
x, y, z Specify a cutline for up to a 3D solid, so that a 1D TDR file is stored. For 1D
simulations, none of these parameters is required. For 2D simulations, one is
required. For 3D simulations, two are needed. Since the file is stored in TDR
format, the tdr parameter must be used together with these parameters.
Examples: struct dfise=output
Saves the DF–ISE files output_fps.[Link] and output_fps.[Link].
struct smesh=output
Writes two files: output_fps.tdr and output_bnd.tdr.
struct tdr=output
Writes a TDR file with the current simulation mesh and data. By default, a
restart file is written.
struct bndfile=output
Writes one file output_fps.bnd with the boundary representation in
DF–ISE format.
See: contact on page 861, integrate on page 945
substrate_profile
Function: Defines the impurity profile in the substrate.
Syntax: substrate_profile
<material>
species=<c>
xcoord= <numeric list>
concentration= <numeric list>
tclsel
Function: Selects the plot variable for the postprocessing routines.
Syntax: tclsel
[<material>] [z=<c>] [name=<c>]
[store] [list] [vec]
Description: Specifies the plot variable for almost all other plot commands. This
command is a companion to the select command, and it differs from the
select command in that it accepts any general Tcl expression. Data fields
are made into Tcl variables and can be accessed with standard Tcl variable
methods.
Options:
list Returns a list of currently defined and named data fields. The real data fields
are listed by default. Vector data fields can be listed using the vec parameter.
This returns a Tcl list for use with those commands that require list variables.
<material> Specifies the material to which the command applies. Different expressions
for the data field initialization in different materials can be used. For
information about specifying materials, see Material Specification on
page 50.
name Name of the new data field. The default is Z_Plot_Var. This is used by all
commands when a plot name is not specified. This is a powerful feature, as
solution fields also can be created.
store Controls whether the data field is written into permanent storage when a
structure file is output. The default is false.
vec Lists the vector data fields. The default is false.
z Accepts a Tcl expression that are used to build a new data field. All valid Tcl
expressions can be used in the string. Existing data fields are defined as Tcl
variables, and the expression is evaluated node-by-node with the updated
value of the variable. In general, this parameter must be enclosed in braces,
so that variable substitution is performed when the string is parsed.
temp_ramp
Function: Defines a temperature profile for use with the diffuse command.
Syntax: temp_ramp
(list | clear | name=<c>)
[time=<n>][<hr>|<min>|<s>]
[temperature=<n>][<C>|<K>] |
[ramprate=<n>][<C/s>|<K/s>|<C/min>|<K/min>]
[[Link]=<n>][<C>|<K>]
[[Link]] [[Link]=<c>]
[[Link]=<n>][<hr>|<min>|<s>]
[[Link]= [<regionName>=<n> | <material>=<n>]]
[delNT=<n>][<C>|<K>] | [delT=<n>][<C>|<K>]
[last] [hold]
[[Link]=<c>]
[<ambient>]
[flow<ambient>=<n>][<l/min>]
[flows= {
[<ambient1>=<n>][<l/min>]
[<ambient2>=<n>][<l/min>]
}]
[ISSG]
[p<ambient>=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa>|<dyn/cm2>]
[[Link]= {
[<ambient1>=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa> |<dyn/cm2>]
[<ambient2>=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa> |<dyn/cm2>]
...}]
[pressure=<n>][<atm>|<GPa>|<MPa>|<KPa>|<Pa>|<dyn/cm2>]
[[Link]=<i>] [[Link]=<i>]
[[Link]= { [<dopant1=<n>[<ohm-cm>]] [<dopant2=<n>[<ohm-cm>]]... }]
[[Link]=<n>][<m>|<cm>|<um>|<nm>]
[[Link]= <parameter list>] [[Link]= <parameter list>]
[sources= {<beam1> <beam2> ... <beamn>}]
[repair]
[[Link]=<c>]
[[Link]= {"<100>"=<n> "<110>"=<n> "<111>"=<n>}]
[coeffs= {<A0> <A1> <A2> ... <An>}]
[[Link]= {
<material1>= {<A0> <A1> <A2> ... <An>}
<material2>= {<A0> <A1> <A2> ... <An>}
...
<materialn>= {<A0> <A1> <A2> ... <An>} }]
[[Link]= {
[<interface_mat1>= <numeric list>]
[<interface_mat2>= <numeric list>]
}]
[[Link]= <string list>]
Description: Specifies multiple-step temperature ramps and holds. This command can be
used to construct a complex temperature sequence to be simulated with the
diffuse command (by specifying the [Link] parameter of the
diffuse command).
<ambient> Shorthand specification to set the ambient partial pressure the same as the
total pressure. If an ambient is specified this way, it should be the only
ambient set in the temp_ramp command.
[Link]
[Link] List of species for which the auto-doping model will be switched on during
epitaxial growth.
clear Clears the global list of temperature ramps. When defining profiles, the
action is to unite the new definition with any prior profiles of the same name.
[Link] Returns the value of the ramp for the given time.
coeffs List of single-material coefficients A 0, A 1, …, A n used in Fourier deposition
when [Link]=1 and [Link]=fourier.
[Link] List of etching rates defined per crystallographic direction in the format:
{"<100>"=<dep rate> "<110>"=<dep rate> "<111>"=<dep
rate>} used for crystallographic deposition when [Link]=1 and
[Link]=crystal.
delNT Defines the maximum temperature step during a temperature ramp-down if
specified. The default unit is degree Celsius. It also can be defined globally
with the command: pdbSet Diffuse delNT {<n>}.
[Link]
Takes a list of parameters where the parameter name is the name of the
species to be initialized, and the value is the final value. A list of fields of any
name can be initialized with this parameter and, for solution variables, units
are accepted, for example:
[Link]= {boron=1e18<cm-3> GSize=1<nm> myfield=1}
[Link] Number of layers of mesh lines required during epitaxial growth (for
[Link]=0). The default is 40. You also can set globally a distance
between mesh lines using:
pdbSet Silicon Grid [Link] <n>
If [Link] is set to a positive number, [Link] is
ignored.
[Link] The two methods described above can be chosen using this parameter:
• [Link]=0 (default) applies a boundary-moving algorithm similar to
oxidation.
• [Link]=1 uses alternating doped deposition and inert annealing
steps.
[Link] List of parameters with dopant name and resistivity to calculate the
background dopant concentration. If more than one dopant name appears in
the list, the doping concentration is calculated individually for each dopant
by ignoring the other ones.
[Link] Sets the epitaxial layer thickness to be deposited. The default unit is μm .
flow<ambient>, flows
List of gas flows in the reaction chamber. The gas flows are used to compute
the partial pressures of the active ambients (those causing material growth).
You can specify flows using either a parameter name composed of flow +
<ambient> (for example, flowO2 and flowHCl where O2 and HCl are
ambient names) or the flows parameter that takes a list of parameters with
names of the ambients, for example:
flows= { O2 = 1.0<l/min> HCl = 1.0<l/min> }
The list of default ambients is given in Table 63 on page 605, but this list can
be extended by using the ambient command. When a gas flow is specified
as a combination of flows (and not when using partial pressures), a complete
reaction of the ambients is assumed to occur, for example, O2 + 2H2 ->
2H2O. Besides gas reactions, the addition of inert gases also will change the
partial pressure of the material growing ambients. For example, if the flows
of only N2 and O2 are specified and are equal, then the partial pressure of O2
will be <total pressure>/2.0 where <total pressure> is given by
the pressure parameter (see below).
NOTE: Flows and partial pressures must not be specified in the same
temp_ramp together.
[Link] Specifies a gas flow to be used for this temp_ramp (should not be used with
other gas_flow parameters).
hold During this segment, allows the diffuse command time to specify the time
of the segment.
ISSG Switches on in situ steam-generated (ISSG) oxidation.
last Defines the final component of the temperature profile. There will be no
more additions to the ramp.
list This Boolean parameter generates a list of temperature profiles. It returns a
Tcl list and can be operated on as such. The default action for commands is
to print the return, so if no handling is required, this prints a list of names of
defined temperature profiles. If a name is specified, then temp_ramp only is
listed along with details about the ramps.
[Link] List of multimaterial coefficients A 0, A 1, …, A n used in Fourier deposition
when [Link]=1 and [Link]=fourier.
name Name used to identify the temperature ramp. Use this name in a subsequent
diffuse command.
p<ambient>, [Link]
The list of default ambients is given in Table 63 on page 605, but this list can
be extended by using the ambient command. These partial pressures are
assumed to contribute to the oxidation or user-defined reaction processes. No
reaction between the species is assumed. The default unit is atm.
NOTE: Only the partial pressures of the active ambients are used directly in
the oxidation reaction equations. Therefore, setting the partial pressure of
inactive (in the sense that they cause a material growth reaction) ambients,
such as N2 and HCl, has no effect.
pressure The (total) pressure of the ambient gas. The default value and unit is 1.0 atm.
This setting takes effect only if flows or flow<ambient> is defined
explicitly. If [Link] is specified, the pressure is set in the corresponding
gas_flow command.
ramprate Temperature change during anneal. The default value and unit is 0.0°C/s .
[Link]
Reads a thermal profile from a file. It must not be used with any other
thermal specification. To create this profile file during laser annealing, use
the [Link] parameter of the diffuse command. The format of
the file is two columns: time (in seconds) and temperature (in degree
Celsius). Lines beginning with a ‘#’ are ignored.
repair In MGOALS3D mode, small regions are removed automatically by default.
Sometimes, this can cause small gas bubbles in the structure or other
problems. Use !repair to switch off removal of small regions.
[Link]
Starts each annealing step with the same initial time step.
term
Function: Defines a new subexpression for use in the equation specification of the
Alagator language.
Syntax: term
[<material>]
[add] [list] [delete] [clear]
[name=<c>] [eqn=<c>] [print] [store]
Description: Creates subexpressions for use with the Alagator scripting language. Terms
are never required but can offer substantial computational benefit. Each term
is evaluated only once during assembly, and the results are cached. If
multiple equations refer to a term, the first equation to use it evaluates the
expression and the remainder use the cached values. Terms are usually used
for expressions that need to appear in several partial differential equations.
For example, a recombination term between vacancies and interstitials needs
to appear in both the vacancy and interstitial equation. A term can be used
for the recombination and can be placed in both partial differential equations.
The recombination is then evaluated only once during the assembly process.
Terms can be created, searched, and printed. That allows inquiries about
terms to be made in the various callback procedures. This allows intelligent
decisions to be made. For example, the charge term in the Poisson equation
can be accumulated by obtaining the current charge and adding new pieces to
the term.
Options:
add Creates a new term. A term with that name will be overwritten.
clear Removes a term from the current set if the term exists otherwise it clears the
content of all terms.
delete Removes a term from the current set.
eqn The string defines the equation part of the term. The equation must conform
to all the standard constraints of the Alagator language. Terms can be nested;
the equation specified here can refer to other terms. Parsing of the equation is
performed during diffusion, so there is no need for everything to be
predefined.
list List of all of the names of the current terms. This is returned as a Tcl list, so
it can be used in conjunction with all of the list functionality.
<material> If a material is specified, the term becomes specific for this material only.
This allows the same name to have different equations in different materials.
For information about specifying materials, see Material Specification on
page 50.
name Reference name for the term. This name is defined and is compared to
strings found in the equation parsing. Capitalization is important, and only
exact matches are allowed.
print Prints the equation for the term matching the name specified. If no term
matches, 0.0 is returned. If the material name is not given, the first term with
the matching name is returned (for example, you may obtain VTotal in
oxide instead of silicon).
store Allows the term command to be stored in a TDR file.
Examples: term name=VTotal add silicon eqn="Vacancy+VacancyGbc"
Creates a term named VTotal in silicon only. The keyword VTotal will be
replaced with the subexpression Vacancy+VacancyGbc.
term list
Returns a list of all the current term names defined.
topo
Function: Performs 3D etch and deposition using Sentaurus Topography 3D.
Syntax: topo <Sentaurus Topography 3D commands>
Description: Physical etch and deposition is available through the interface to Sentaurus
Topography 3D and is executed using the topo command. Commands
entered into the topo command are passed directly to the Sentaurus
Topography 3D library. The exchange of the boundary between Sentaurus
Process and Sentaurus Topography 3D is handled automatically and only
when required.
transform
Function: Performs a transformation step.
Syntax: transform
(reflect | stretch | cut | flip | rotate)
([location=<n>][<m>|<cm>|<um>|<nm>] &
left | right | front | back | up | down &
ymin | ymax | zmin | zmax)
(min= {
<n>[<m>|<cm>|<um>|<nm>]
<n>[<m>|<cm>|<um>|<nm>]
<n>[<m>|<cm>|<um>|<nm>]} &
max= {
<n>[<m>|<cm>|<um>|<nm>]
<n>[<m>|<cm>|<um>|<nm>]
<n>[<m>|<cm>|<um>|<nm>]} )
[length=<n>][<m>|<cm>|<um>|<nm>]
(translate= {
<n>[<m>|<cm>|<um>|<nm>]
<n>[<m>|<cm>|<um>|<nm>]
<n>[<m>|<cm>|<um>|<nm>]} )
([angle=<n> & axis= "X" | "Y" | "Z"])
[[Link]] [[Link]] [remesh] [Adaptive]
Description: Reflects, stretches, cuts, flips, rotates, or translates the structure. Previously,
cut and clip had slightly different behavior. Now, they are the same and
are referred to as cut. All operations work in 2D and 3D.
All these operations, except flip and stretch, are also available in the
KMC mode.
Options:
Adaptive If the remesh parameter is set, Adaptive specifies with or without adaptive
meshing. Parameters for adaptive meshing are described in Adaptive
Refinement on page 679. The default is the return value of pdbGet Grid
Adaptive.
cut Crops the structure to a new bounding box (using the min and max
parameters) or crops half the structure (using the left, right, front,
back, up, or down parameters).
left, right, front, back, up, down
location The x-, y-, or z-coordinate (in internal coordinate system) where the cut is to
be performed. The default is 0.0 μm . The location parameter is used with
left, right, front, back, up, or down to indicate which direction and
side to cut.
max, min The cut box can either be specified by the min and max parameters:
min= {minx miny minz} and max= {maxx maxy maxz}, or there are
shortcut parameters (left, right, front, back, up, down) to specify an
axis-aligned cut at the coordinate given by the location parameter. The
parameters min and max must be used together and cannot appear with any
of the left, right, front, back, up, or down parameters.
[Link] By default, mgoals cuts the structure at the nearest mesh line and does not
perform a remesh. If ![Link] is specified, mgoals cuts precisely at
the specified coordinates and remeshes the structure.
remesh Optional Boolean only for two dimensions, which forces a remesh after the
transform. However, remeshing is always possible using the grid remesh
command if required.
The translate options
Specify the location where the reflection is performed. ymin is the same as
left, ymax is the same as right, zmin is the same as back, and zmin is
the same as front.
The rotate options
transform flip
Flips the structure from top to bottom about its midpoint if it is the first flip,
or stores the flip location for subsequent flips.
[Link]
Function: Transforms a refinement box and optionally preserves the original.
Syntax: [Link]
(reflect | stretch | cut | flip | rotate)
([location=<n>][<m>|<cm>|<um>|<nm>] &
left | right | front | back | up | down | ymin | ymax | zmin | zmax)
(min= {
<n>[<m>|<cm>|<um>|<nm>]
<n>[<m>|<cm>|<um>|<nm>]
<n>[<m>|<cm>|<um>|<nm>]} &
max= {
<n>[<m>|<cm>|<um>|<nm>]
<n>[<m>|<cm>|<um>|<nm>]
<n>[<m>|<cm>|<um>|<nm>]} )
[length=<n>][<m>|<cm>|<um>|<nm>]
(translate=
<n>[<m>|<cm>|<um>|<nm>]
<n>[<m>|<cm>|<um>|<nm>]
<n>[<m>|<cm>|<um>|<nm>]} )
([angle=<n> & axis= "X" | "Y" | "Z"])
[[Link]]
[name=<oldName>] [[Link]=<newName>]
Description: Reflects, stretches, cuts, flips, rotates, or translates a given refinement box or
all refinement boxes. A new transformed refinement box is created by
default, while the old one is kept. This can be overridden
with ![Link]. The transformation applies to all existing
refinements, except if a name is specified. In this case, a transformed
refinement name also can be specified by using [Link].
Options:
General
[Link] Specifies whether to keep the original after the transformation. When
keeping the original refinement, the original is untouched, and a new one is
created by transforming the original refinement. Otherwise, the refinement
itself is transformed.
name Name of refinement to apply the transformation.
[Link] Name of the transformed refinement. If not specified, a default name is
given.
cut Crops the refinement to a new bounding box (using the min and max
parameters) or crops half of it (using the left, right, front, back, up, or
down parameters).
left, right, front, back, up, down
translate
Function: Translates a named dataset with the specified offset.
Syntax: translate
<material>
[name=<c>]
[offset= {<n> <n> <n>}]
[min=<n>]
Description: Spatially shifts a profile (dataset) with the specified offset. If a material is
specified, the profile is shifted in the specified material only. Otherwise, the
profile is shifted in all materials. When a profile is shifted, the value at some
points may become undefined, in which case, these points are filled with a
minimum value as specified by the min parameter.
Options:
UnsetAtomistic
Function: Disables the atomistic KMC diffusion model and continues the simulation
using the PDE solver.
Syntax: UnsetAtomistic
[sano] [[Link]] [[Link]]
Description: Disables the KMC diffusion module. It transfers all the information into the
Sentaurus Process standard mesh (by calling KMC2PDE), sets the atomistic
mode to false, and deletes all the atomistic related information.
Options:
sano Remeshes the Sentaurus Process finite-element mesh and converts KMC
particles to finite-element fields. To adaptively remesh on Sano fields and
Sano smoothed NetActive (DopingConcentration), it is necessary to
specify adaptive meshing parameters before UnsetAtomistic.
Any adaptive criteria specified for a field that is in the Sano list will be
applied to the Sano smoothed value of the field, and any criteria specified for
NetActive will be applied by default to NetActive computed from Sano-
smoothed active fields. To set the list of Sano fields, use the [Link]
parameter, but by default the list contains the active dopants. The field
NetActive is updated automatically using Sano fields and does not need to
be included explicitly.
[Link] Sets the list of Sano fields. These fields are converted from KMC particle
distributions using the Sano method and are used for adaptive remeshing,
and subsequently converted to finite-element fields on the newly created
mesh. By default, the Sano list includes all active dopants that are present.
The field NetActive is updated automatically using Sano fields and does
not need to be included explicitly.
[Link]
Sets the list of materials in which the Sano method is applied. By default, the
list contains only Silicon because that is the only material that by default
has nontrivial KMC diffusion models.
Examples: UnsetAtomistic
UnsetAtomistic sano [Link]= {PActive AsActive BActive}
UnsetDielectricOxidationMode
Function: Disables the oxidation mode to grow oxide with dielectric on top.
Syntax: UnsetDielectricOxidationMode <Dielectric> <Oxidant>
Description: Disables the dielectric oxidation mode of material <Dielectric> and ambient
<Oxidant>. It deletes all the dielectric oxidation-related callback settings, the
boundary conditions, and the parameter settings.
Options:
update_substrate
Function: Sets up the substrate with impurities, strains, and modified lattice constants
for analyses that involve strained silicon layers.
Syntax: update_substrate [Link]=<n>
Description: Takes into account the strains that certain impurities introduce to the wafer as
defined by the strain_profile command or in the PDB and sets up the
lattice constants and strains in the substrate as defined in the region
command. This command applies to the impurity profile to the substrate as
defined by the profile command or the substrate_profile command.
The [Link] is the lowest x-coordinate below which the
wafer is totally relaxed from the impurity-related strains.
[Link]
Top of the region that is totally relaxed from the lattice strains. It can be
thought of as the top point above which no dislocations can be found.
Examples: update_substrate [Link]=0.3
WritePlx
Function: Writes a 1D .plx file.
Syntax: WritePlx
<filename>
[x=<n>] [y=<n>] [z=<n>]
[<material>]
Description: Makes a 1D profile along a given cutline and writes a .plx file of the
solutions and terms given in the list provided by the SetPlxList command.
If the list is not provided, only present solution names are written. If a
material is specified, only data from the given material is used to create the
plot.
NOTE: The <filename> parameter must be the first one on the WritePlx
command line.
Options: