Home

Nanolithography Support Note

image

Contents

1. 11 Select OK Rev A NanoLithography 25 Procedures to Perform NanoLithography Writing a New Lithography Program Note The C compiler screens appear with a new workspace See Figure 316 40 Figure 316 40 New Workspace Create the Source and Header Files The list of files in the workspace include Source and Header files At this point the files are empty The files in the source files include the source code The header files include h files directed in the source code To add source files you may choose one of the following methods Add New Code 1 Select File gt New gt Files tab Select the C Source files and name the new source file 2 Click OK and a blank notepad appears in the client window 3 Type in new code 26 NanoLithography Rev A Procedures to Perform NanoLithography Writing a New Lithography Program Copy Source Code from Samples or Older Programs 1 Browse to locate a sample cpp file e g Sample 2 Diamond in your SPM directory 2 Open the cpp file copy and paste the code in to the blank source file Figure 316 4p New Source Files B DA ae Por Bee Bon Tn noe tm jee ioe Tema fini heer Fin foo Fen fiaclece Clitio k Biocincm upi i 1 T drieme idi ienirt si mecra This section begins the Mew Lithography Program Code 1224 Delete Edit or Modify the Copied Source Code You are now ready to create your source code Refer to your
2. for testing the Macro loading procedures Figure 316 4g LithoHelloWorld Dialog Box A tithe Hello Word Note See also Testing Your System Diamond dll Section 316 4 3 on Page 15 for details on interfacing with hardware to test your Lithography programs 14 NanoLithography Rev A Procedures to Perform NanoLithography Testing Your System Diamond dll 316 4 3 Testing Your System Diamond dll The NanoLithography package includes one sample to test the features in using the C compiler and NanoScript interface This section details the procedures to run the sample program Diamond This program loads a program that scribes a diamond shape on the sample surface Note This test sample requires hardware to load and run Its purpose is to test the procedures and ability to load a DLL file in the NanoScope and run the system For testing a simple program that does not require the hardware see Testing Your System LithoHelloWorld dll Section 316 4 2 on Page 9 Locate the Necessary Lithography Files When running the macro files the program looks in specific directories for running the commands Complete the following procedures to verify that the files are in the correct directory structure 1 Verify or place the sample program e g Diamond file in your SPM directory This folder containing the C source files should be located in the same directory as your Z exe NanoScope software executable file 2 Locate
3. 316 7 17 LithoTranslate PROTOTYPES bool LithoTranslate double dx double dy double rate DESCRIPTION LithoTranslate moves the tip along the X axis dx and Y axis dy at a specified rate Units for dx and dy are microns units for rate are in microns per second um sec If feedback is off the tip will also be moved in Z according to the captured planefit in an attempt to keep the sample to tip distance constant RETURN VALUE FALSE if the command fails EXAMPLE LithoTranslate 5 0 2 Translate the tip 5 um along the X axis at 2 um s 316 7 18 LithoTrigger PROTOTYPE bool LithoTrigger TriggerLine line DESCRIPTION LithoTrigger sends out approximately 200 ns pulse hi lo hi on the specified digital line RETURN VALUE FALSE if the command fails EXAMPLE LithoTrigger tID0 send pulse out digital line DO TRIGGERLINE VALUES The TriggerLine type is used as an argument for the LithoTrigger command see description below TriggerLine values may be assigned to any of the following analog lines Table 316 7a TriggerLine Analog Lines 44 NanoLithography Rev A Litho h Functions LithoWaitFor Line tIDR4 tIDR5 tIDR6 tIDR7 tIDR8 tIDR9 tIDR10 tIDR11 tlLine tlFrame Applications on Specific Analog Lines Specific applications or microscope modes may only be used with the following analog lines e tIDO and tID1 lines are only available on non EC Small Sample AFM and STM microscopes e tiI
4. e Translate or maneuver the tip with feedback set to on or off regardless of operating mode If feedback is turned off the tip travels at a constant height relative to the last plane captured with the Capture Plane command If feedback is on and gains are properly set the tip moves with constant contact force contact AFM or with constant tunneling current STM e Scribing can be done with an STM microscope by using the LithoMoveZ command to partially bury the tip in the sample then translating or moving the tip For hard samples tungsten tips may be required e Scribing with an AFM e g MultiMode microscope can be completed by using the LithoMoveZ See Section 316 command to plunge the tip into the sample as with the STM or by increasing the Setpoint so that the tip is pressed into the surface with a constant force Note The latter of these methods tends to be superior because the surface is tracked by feedback during translations instead of relying on Capture Plane to maintain a constant tip to sample distance e The potential for the tip to scribe a surface depends upon the softness of the material You may experiment with the Real time gt View gt Force Mode gt Step command to observe the tip to surface impact with varying Setpoint values 32 NanoLithography Rev A Sample Programs Overview Sample 1 LithoHelloWorld 316 5 Sample Programs Overview The NanoLithography package includes three sample pro
5. DESCRIPTION The function NormalMenuBar displays the default NanoScope menu bar See also CustomMenuBar 316 8 22 PasswordQuery PROTOTYPE bool PasswordQuery DESCRIPTION The function PasswordQuery prompts the user to enter a password RETURN VALUE TRUE if a valid password is entered otherwise FALSE 316 8 23 RemoveSayBox PROTOTYPE void RemoveSayBox DESCRIPTION The function RemoveSayBox removes any message box from the screen that was invoked by a Sayxxxx function See also SayError SayWarning SayMessage 52 NanoLithography Rev A Gui h Functions RunDialog 316 8 24 RunDialog PROTOTYPE int RunDialog DialogBox db DESCRIPTION The function RunDialog displays the dialog box specified by parameter db The function returns when the box is closed by the user RETURN VALUE Returns the id of the button used to close the box See also ModalDialog 316 8 25 SayError PROTOTYPE void SayError char fmt DESCRIPTION The function SayError displays a message box with the title of Error The parameters specify the message to be displayed and are in printf style See also RemoveSayBox 316 8 26 SayMessage PROTOTYPE void SayMessage char title char fmt DESCRIPTION The function SayMessage displays a message box with the specified title value The remaining parameters specify the message to be displayed and are in printf style See also RemoveSayBox 316 8 27 SayWarni
6. In order for the files to link and to output files in the correct directories you must verify the project settings 1 Inthe Visual C menu bar select Project gt Settings to open the Project Settings dialog box 2 Select the C C tab a Change the Category to PREPROCESSOR b In the Additional Include Directories window the path displays two dots a backward slash and the include file name This allows the program to look one level up from the lithography folders in the SPM Include directory Note Remember to verify the correct header files are in the SPM Include directory e g litho h and gui h for this example 3 Select the Link tab and verify that the Category window displays GENERAL See Figure 316 a a Inthe Output file name window verify that the display reads two dots and a backward slash The two dots and a slash mean to place the file at one level up or out from the source folder allowing for this DLL file to be at the SPM executable level 28 NanoLithography Rev A Procedures to Perform NanoLithography Writing a New Lithography Program b The exact location of the directory structure may also be named for this window e g D SPM YOUR FILENAME dII in the place of the two dots and a backward slash Note In naming the exact directory structure forward slashes are acceptable to show the the path c Verify that the output file name is correct with the DLL extension If the file name exists the n
7. LithoMoveZ depth z_rate moving in Z turns off turns off feedback and plunges the tip 20 nm in to the surface at a rate of scribe four sides of the diamond 40 nimis LithoTranslate size size rate LithoTranslate size size rate LithoTranslate size size rate LithoTranslate size size rate The four sides are scribed with the commands size and rate in the positive and negative X and Y directions Ends the lithography program with LITHO_END This command returns the microscope to normal scanning and must be included at the end of every program LITHO_END return 0 0 makes the macro unload Return 1 to keep the macro loaded tL 34 NanoLithography Rev A Sample Programs Overview Sample 2 Diamond Diamond Lithography Program Results In the Diamond lithography program sample the tip plunges 20 nm into the surface after moving 10 um from the center of the scan field See Figure 316 5c Figure 316 5 c LithoTranslate Movement lt lt Start Lithography The LithoTranslate command moves the tip from the three o clock position counterclockwise The command line LITHOTRANSLATE SIZE SIZE RATE moves the tip to the twelve o clock position by declaring the parameters size size or movements in negative X and positive Y moves and at a set rate in the DOUBLE RATE 20 i e 20 m s The tip then continues to draw the additional sides of the diamond shape on
8. Sample Programs Overview Sample 2 Diamond 316 5 2 Sample 2 Diamond Figure 316 5b shows the lithography program code that instructs the NanoScope to scribe a diamond shape The analysis follows the line s of code for understanding the instructions Figure 316 5b Diamond Lithography Code Analysis of Code All comments begin with two forward slashes Directive to include the header h files diamond cpp Example 1 Writing a Lithography Program include lt litho h gt The macro begins with this extern C __ declspec dllexport int macroMain declaration Initiates lithography mode LITHO_BEGIN WH UL LithoDisplayStatusBox display litho status box Scanning is turned off and the tip moves to the center LithoScan false turn off scanning af herald LithoCenterXY move tip to center of field i Variables are declared to be used for the X Y translation distances double size 10 10 um from center of diamond to point and rates double rate 20 move the tip in X Y at 20 um s double depth 0 020 push the tip in 20 nm to Variables are declared to be used for the double z_rate 0 040 move the tip down at 40 Z movement distance and rate The LithoTranslate command move to first corner of diamond moves the tip to the first corner LithoTranslate size 0 rate The tip hovers above the surface with the feedback on This command push tip into surface
9. 013 316 000 112 Robin Hill Road Santa Barbara CA 93117 805 967 1400 New NanoLithography Package Package Contents 316 2 New NanoLithography Package Scanning Probe Microscope SPM Lithography or NanoLithography functions are now available in an optional package The NanoLithography enhancements include e Building custom lithography programs e Building and debugging larger programs to control the NanoScope The new package includes an industry standard compiler as well as three sample templates to successfully test and run your Lithography programs The program files are in the form of dynamic link library DLL files for loading in to the NanoScope system software 316 2 1 Package Contents The optional NanoLithography package includes e This Support Note New Detailing NanoLithography theory Macro language commands procedures and sample programs for use as templates e Compiler New An industry standard C C compiler to build dynamic link libraries DLL Note The current compiler is Microsoft Visual C Standard Edition Version 6 0 e gui h New File of the graphical user interface GUT functions to add dialog boxes messages and notes etc for user input e litho h File of Lithography function declarations i e functionally the same as previous versions to run the basic lithographic functions e z lib Library of NanoScope functions i e linked in to your program e Sample Pro
10. 5 1 on Page 33 Verify Project Settings In order for the files to link and place output files in the correct directories you must verify the project settings 1 Inthe Visual C menu bar select Project gt Settings to open the Project Settings dialog box 2 Select the C C tab See Figure 316 4b a Change the Category to PREPROCESSOR Figure 316 4b C C Tab hill Propect setings Hek Resmwces MO C i Source Fies A Bg Hesder files B Resource Fies SPM Include Directory Path fnaloge MT AAG Gm ns 21 fd i include ID SWANS D DEBUG 0 WIND D _MBICS A0 UEROLL 0 WTHOHELLOWWORLO_ EXPORTS NanoLithography Rev A 10 Procedures to Perform NanoLithography Testing Your System LithoHelloWorld dll b Inthe Additional Include Directories window the path displays two dots a backward slash and the include file name This allows the program to look one level up from the lithography folders in the SPM Include directory Note Remember to verify the correct header files are in the SPM Include directory e g litho h and gui h for this example 3 Select the Link tab and verify that the Category window displays GENERAL See Figure 316 4c Figure 316 4c Project Properties Dialog Box B Haier Filed 2y Peace Fier Cates be per Tab gy Dige ia modula 17 bb oe ibo obey hh wed bh ah bb eb Se rib T kon a hobs pend on P Geet pepe T Bose podere LB TET diy uss Y kb Ge bh eee el
11. LockGUIQ DESCRIPTION The function LockGUI locks the user interface preventing all user interaction with the system until the UnlockGUI function is called See also UnlockGUI 316 8 19 LockMenu PROTOTYPE void LockMenu DESCRIPTION The function LockMenu locks the current menu bar in place preventing it from being replaced with another menu bar when the software changes modes This is useful when the macro has put up a custom menu bar See also UnlockMenu CustomMenuBar Rev A NanoLithography 51 Gui h Functions ModalDialog 316 8 20 ModalDialog PROTOTYPE DialogBox ModalDialog char title DESCRIPTION The function ModalDialog creates a dialog box with name as specified in title EXAMPLE The example program below creates a dialog box with a title of Title String The box has one entry field labelled Size which allows float entries from zero to 200 The value entered by the user is stored in size Additionally there are two buttons in the dialog box one is labelled Ok and the other Cancel float size 30 DialogBox dlg ModalDialog Title String AddFloatControl dlg Size size 0 200 AddButton dlg amp Ok 1 NULL uibCloseluibDefault AddButton dlg amp Cancel 0 NULL uibClose if RunDialog dlg 0 return RETURN VALUE Returns the handle of the newly created dialog box 316 8 21 NormalMenuBar PROTOTYPE void NormalMenuBar
12. Verify that the z lib file is also in the same directory as your Z exe NanoScope software executable file Open a C Workspace 1 Locate the sample program folder e g Diamond and open the folder to display the list of files 2 Double click on the dsw workspace file Note The Microsoft Visual C compiler and workspace opens See Figure 316 41 3 Verify that the File View tab is selected to view the list of Source files Note If the source code is not open in the client window expand the Source files in the workspace to display Diamond cpp double click the Diamond cpp file to display the source code information See Figure 316 41 Note For details of the source code in this sample see Sample 2 Diamond Section 316 5 2 Modify the Source File In this example the source code modification includes changing the tip travel distance from 10pm to Sum in the X and Y direction 1 In the line double size 10 10 um from center of diamond to point change the 10 to 5 and update the comment to your new specifications See Figure 316 41 Note This changes the tip travel distance in the X and Y direction from 10pm to 5um You may also change the Scan size in the Scan Controls panel to suit the new dimensions In this example the dimensions are lowered so changing the Scan size is not necessary Rev A NanoLithography 19 Procedures to Perform NanoLithography Modifying a Lithography Program Figure 316 41 Modified
13. or place the header files e g litho h gui h sysdefs h in your SPM Include directory Note The Include directory must be at the same level as your Z exe SPM executable file 3 Verify that the z lib file is in the SPM directory This folder should be located in the same directory as your Z exe NanoScope software executable file 4 Open a Workspace in The Microsoft Visual C 5 Locate the sample program folder e g Diamond and open the folder to display the list of files 6 Double click on the dsw workspace file Note This will open the Microsoft Visual C compiler and workspace Verify Project Settings In order for the files to link and place output files in the correct directories you must verify the project settings 1 Inthe Visual C menu bar select Project gt Settings to open the Project Settings dialog box 2 Select the C C tab a Change that the Category to PREPROCESSOR Rev A NanoLithography 15 Procedures to Perform NanoLithography Testing Your System Diamond dll b In the Additional Include Directories window the path displays two dots a backward slash and the include file name This allows the program to look one level up from the lithography folders in the SPM Include directory Note Remember to verify the correct header files are in the SPM Include directory e g litho h and gui h for this example 3 Select the Link tab and check that the Category window displays GENE
14. program is running Upon completion the real time scan continues 3 View your new diamond shape on the surface See Figure 316 4k Note Figure 316 4k is a lithographic image captured using a Closed Loop XY scanner For additional information on a Closed Loop XY scanner contact your Digital Instruments Veeco Metrology Group representative Figure 316 4k Diamond shaped Lithography Image 14 ym Image is Courtesy of Debra Cook Application Scientist Digital Instruments Veeco Metrology Group 4 Select Capture gt Capture Filename to name the file 5 Select the CAPTURE button or Capture menu gt Capture command 6 View this image in offline mode to modify e g Flatten or analyze the image Rev A NanoLithography 23 Procedures to Perform NanoLithography Writing a New Lithography Program 316 4 5 Writing a New Lithography Program Writing a new lithography program requires using the Microsoft Visual C compiler understanding the NanoScript macro language and C programming language syntax For more complex programs intermediate to advanced knowledge of C programming is needed For example one method to scribe concentric lithographic shapes requires understanding the concept of For Loops in C programming This sections details the procedures to open a new project connect the source files to the project set the project settings and build the project The sample templates with this option are helpful to write your
15. programs For the first program it is recommended to copy one of the sample programs into a blank source code cpp file then customize it for desired results This allows for keeping specific language declarations in place In this section you will open a new project verify all output file names and copy paste the source code from Sample 2 Diamond The following sections detail the general procedures to build new lithography programs Open a New Project 1 Open the C compiler 2 Select File gt New to access the New Project dialog box See Figure 316 41 3 Select the Projects tab to designate the type of project output file name and output location Figure 316 41 New Project Dialog Box Final Project Name File Location 4 Select the Win32 Dynamic Link Library to designate the type of project to load 5 Enter your project folder name e g Diamondpolycarbon in the Project name window 6 In the Location window enter the Directory location and the FILENAME e g D SPM SMDIAMOND 7 Select the Create a new workspace option 8 Select OK to continue 24 NanoLithography Rev A Procedures to Perform NanoLithography Writing a New Lithography Program Note A new project wizard opens See Figure 316 4m Figure 316 4m New DLL Wizard Dialog Box 9 Select An empty DLL project option 10 Click FINISH Note A warning prompt appears to display the project information See Figure 316 4n
16. ready to do your lithography 4 Verify that the sample is level in both axes 5 Capture the plane of the image using the Capture Plane command If the depth of your etched lines tend to slope from one end of the line to the other this may indicate that the sample is not sufficiently level or that you need to obtain an improved Capture Plane Accurate planefit captures require good scans and flat samples Try to use a smooth area of the sample for planefits and lithography 316 7 11 LithoPause PROTOTYPES bool LithoPause double secs DESCRIPTION LithoPause halts lithography for the specified number of seconds secs RETURN VALUE FALSE if the command fails EXAMPLE LithoPause 0 5 pause for 0 5 seconds 316 7 12 LithoPulse PROTOTYPES bool LithoPulse LithoSignal o double v double secs DESCRIPTION LithoPulse pulses the output to v volts for sees seconds The output then returns to its setting before pulsing RETURN VALUE FALSE if the command fails EXAMPLE pulse the Bias voltage to 2 volts for a period of 0 1 seconds LithoPulse IsBias 2 0 1 42 NanoLithography Rev A Litho h Functions LithoRamp 316 7 13 LithoRamp PROTOTYPES bool LithoRamp LithoSignal o double start double end double secs DESCRIPTION Ramps the output specified in o from the voltage specified in start to the voltage specified in end over the specified time defined in secs The output then returns to its previous vol
17. um depth 0 0 1 0 AddFloatControl dlg Z_rate um s z_rate 0 0f 1 01f AddButton dlg amp Do It noID NULL uibClose uibNone AddButton dlg amp Do Litho line noID DoLithoLine uibNone AddButton dlg amp Cancel 0 NULL uibClose uibNone int res RunDialog dlg Debug res d n res if res 0 return 0 0 makes macro unload LITHO_BEGIN LithoDisplayStatusBox display litho status box LithoScan false turn off scanning LithoCenterX Y move tip to center of field LithoTranslate size 0 rate move to first corner of diamond LithoMoveZ depth z_rate moving in Z turns off feedback push tip into surface scribe four sides of the diamond LithoTranslate size size rate LithoTranslate size size rate LithoTranslate size size rate LithoTranslate size size rate LITHO_END return 0 0 makes the macro unload Return 1 to keep the macro loaded 36 NanoLithography Rev A NanoScript Macros Background 316 6 NanoScript Macros For modifying or writing new programs it is important to understand the NanoScript macros or specific language commands for performing NanoLithography The NanoScript macro language includes commands to translate move the tip and to plunge the tip in to sample material while controlling microscope parameters e g Bias and Setpoint Section 316 7 and Section 316 8 detail the NanoScript Lithography Commands and the new GUI com
18. 8 6 AddRadioButton PROTOTYPE void AddRadioButton RadioGroup rg char label ResID id DESCRIPTION AddRadioButton adds a radio button to a group of radio buttons specified by rg The new radio button receives the name specified by label See also AddRadioGroup SelectRadioGroup 48 NanoLithography Rev A Gui h Functions AddRadioGroup 316 8 7 AddRadioGroup PROTOTYPE RadioGroup AddRadioGroup DialogBox db char title ResID amp selected DESCRIPTION AddRadioGroup adds a radio group to dialog box db to which radio buttons can then be added The radio group receives the name specified by title RETURN VALUE A handle to the newly created radio group is returned This handle may be used as the parent argument in subsequent calls to AddRadioButton See also AddRadioButton SelectRadioGroup 316 8 8 AddStringEntry PROTOTYPE void AddStringEntry DialogBox db char prompt int width char buffer int buflen DESCRIPTION AddStringEntry adds a string entry field to the dialog box db The string specified by prompt will e displayed adjacent to the entry field The entered text is stored in buffer 316 8 9 Askxxxx The Ask Group PROTOTYPE void AskCancel char title char fmt bool AskCancelOk char title char fmt bool AskNoYes char title char fmt void AskOk char title char fmt bool AskOkCancel char title char fmt void AskQuit char title char fmt b
19. Close the filter box Note You should then see debug msgs in the black debug window Prepare the Microscope for a Lithography Program In addition to the standard setup requirements to run the microscope it is necessary to verify the following components for desired results e Sample tThe sample depends on the method of lithography i e scribing indenting manipulating surface topography or oxidizing using advanced methods of Lithography e Tip Standard Silicon Nitride Contact mode tips are recommended on the two sample templates requiring tip movement On additional applications follow the guidelines for your desired results e Real Time Settings The Real Time control panels should reflect the type of lithography desired e g for scribing a diamond you set the microscope profile and settings to Contact mode operation 1 Once the hardware and software components are set open the Real Time mode operations 2 Open the DI menu and select the NanoScript command Run the Lithography Macro DLL 1 Inthe NanoScript screen select Macro gt Load to access the list of DLL files 2 Browse to select the DLL file to load and click OK 22 NanoLithography Rev A Procedures to Perform NanoLithography Modifying a Lithography Program Note that in the image window scanning appears to halt This means that the Lithography program is loading If your debug window appears the program instructions display as the Lithography
20. DRO tIDR11 tlLine and tlFrame are only available on SPMs with NanoScope Ma controllers 316 7 19 LithoWaitFor PROTOTYPE bool LithoWaitFor LithoSignal i double v DESCRIPTION LithoWaitFor causes the lithography program to pause until the specified input drops below v RETURN VALUE FALSE if the command fails EXAMPLE LithoWaitFor 1sIn1B 0 wait for input 1B to drop below 0 volts Rev A NanoLithography 45 Gui h Functions LithoWaitFor 316 8 Gui h Functions The functions in the gui h file header allow the user to create and manage the display of standard and custom menus and dialog boxes Refer to the following sample list of gui h function prototyes AddButton Section 316 8 1 on Page 47 AddCheckBox Section 316 8 2 on Page 47 AddFloatControl Section 316 8 3 on Page 48 AddIntControl Section 316 8 4 on Page 48 AddMenultem Section 316 8 5 on Page 48 AddRadioButton Section 316 8 6 on Page 48 AddRadioGroup Section 316 8 7 on Page 49 AddStringEntry Section 316 8 8 on Page 49 Askxxxx The Ask Group Section 316 8 9 on Page 49 AtMenuBuild Section 316 8 10 on Page 50 ClearMenuBar Section 316 8 11 on Page 50 CustomMenuBar Section 316 8 12 on Page 50 Debug Section 316 8 13 on Page 50 DelMenultem Section 316 8 14 on Page 50 EraseMessage Section 316 8 15 on Page 51 FindMenultem Section 316 8 16 on Page 51 IsMessageBoxUp Section 316 8 17 on Page 51 LockGUI Section 316 8 18 on Page 51 LockMenu Sectio
21. RAL a Inthe Output file name window verify that the display reads two dots a backward slash and the output file name e g lithoHelloWorld dll Note This notation places the file at one level up or out from the project folder and allows for this DLL file to be at the SPM executable i e z exe level b Inthe Output file name window you may replace the two dots and backward slash with he exact location of the directory structure e g D SPM LithoHelloWorld dll Note In naming the exact directory structure forward slashes are acceptable to show the the path Note If the file name already exists the new DLL file will overwrite the old file automatically If the file name does not exist the final DLL file is added to the SPM directory 4 In the Link tab change the Category to Input See Figure 316 4d a Inthe Object library modules window verify that z lib follows that last item in the horizontal list of library files i e each library module is separated by a space b Verify that the Additional Library Path displays two dots and backward slash i e to direct the path to the z lib file Building a DLL File In order to run lithography the programs need to be built in the form of DLL files Veeco Instruments Inc uses an industry standard C C compiler to build the DLLs Complete the following procedures to build your DLL file from the set of project files 1 In the C compiler with the so
22. SayError and LogAlIChecked 4 Close the filter box Note You should then see debug msgs in the black debug window Preparing the Microscope for a Lithography Program In addition to the standard setup requirements to run the microscope it is necessary to verify the following components for desired results e Sample The sample depends on the method of lithography i e scribing indenting manipulating surface topography or oxidizing using advanced methods of Lithography e Tip Standard Silicon Nitride Contact mode tips are recommended on the two sample templates requiring tip movement On additional applications follow the guidelines for your desired results e Real Time Settings The Real Time control panels should reflect the type of lithography desired e g for scribing a diamond you set the microscope profile and settings to Contact mode operation Rev A NanoLithography 17 Procedures to Perform NanoLithography Testing Your System Diamond dll 1 Once the hardware and software components are set open the Real Time mode operations Note For this example the NanoScript commands are accessed in Real Time or Offline mode 2 Verify that the sample is on the chuck or stage and complete the necessary steps to focus surface and tip 3 Set your microscope profile to Contact mode Real time gt Microscope gt Profile gt Contact Mode Note Set the mode to tapping for specific applications 4 Engage th
23. Source Code Example Modifying a Lithography Program include lt litho h gt extern C __declspec dllexport int macroMain LITHO_BEGIN LithoDisplayStatusBox display litho status box LithoScan false turn off scanning LithoCenterXY move tip to center of field Modification double size 5 moves the tip from center of diamond 5 um in X and Y double depth 0 020 push the tip in 20 nm to draw lines double z_rate 0 040 move the tip down at 40 nm s The modification causes the tip to move to the center and then move outward to the 3 o clock position a distance of Sum See Figure 316 4j Figure 316 4j LithoTranslate Movement wees Image center lt lt Start Lithography Verify Project Settings In order for the files to link and place output files in the correct directories you must verify the project settings 1 Inthe menu bar select Project gt Settings to open the Project Settings dialog box 2 Select the C C tab a Change the Category to PREPROCESSOR b In the Additional Include Directories window the path displays two dots a backward slash and the include file name This allows the program to look one level up from the lithography folders in the SPM Include directory 20 NanoLithography Rev A Procedures to Perform NanoLithography Modifying a Lithography Program Note Remember to verify the correct header files are in the SPM Include directory e g lit
24. anges in the setting or syntax 3 Once the errors are fixed select the Build gt Rebuild menu command Using the NanoScope Software and Running Your Litho Programs Once you build and debug a program the DLL file is ready to load in the NanoScope software to run lithography In lithoHelloWorld hardware is not necessary to test the macro load features Open the NanoScope Debug Window While in the NanoScope software it is helpful to have the NanoScope Debug window showing Complete the following while in the NanoScope software 1 Click on the Control Monitor and hit Ctrl Alt D 2 Select the Filter menu and check Litho SayError and LogAlIiChecked 3 Close the filter box Note You should then see debug msgs in the black debug window Run the Lithography Macro DLL 1 Open the Real Time mode operations 2 Open the DI menu and select the NanoScript command Rev A NanoLithography 13 Procedures to Perform NanoLithography Testing Your System LithoHelloWorld dll 3 Inthe NanoScript screen select Macro gt Load to access the list of DLL files See Figure 316 4f Figure 316 4f Lithography DLL Files Macro Run lithonia oll dipabmax di dist tadil edman dii g meppal d ceegern dil ide igerri all lztdll Izinpar dll 7228 File Type dll 4 Browse to select the DLL file to load and click OK Note In this sample a dialog box appears on the screen with the phrase Hello World
25. box designated by db The specified label will be displayed next to the entry field The entered value is returned in value The minimum and maximum values allowed are specified in min and max respectively 316 8 4 AddintControl PROTOTYPE void AddIntControl DialogBox db char label int amp value int min int max DESCRIPTION AddIntControl adds a control which allows the entry of an integer to the dialog box designated by db The specified label will be displayed next to the entry field The entered value is returned in value The minimum and maximum values allowed are specified in min and max respectively 316 8 5 AddMenultem PROTOTYPE Menultem AddMenultem Menultem parent char name PFV fn DESCRIPTION AddMenultem adds a menu item with the name specified by name to the menu specified by parent To add an item to the menu bar specify menuBar as the parent The function fn is called when the item is selected by the user If fn is NULL no function is called When an ampersand amp is placed in the character string the character immediately following the ampersand becomes a quick key for that menu item in the dialog box For example M is the quick key when amp Microscope is specified in the text string RETURN VALUE A handle to the newly created menu item is returned This handle may be used as the parent argument in subsequent calls to AddMenu to create submenus See also FindMenultem DelMenultem 316
26. coed bb scape Go ghee bb ole eli cheat bb ued ft Seth Gib dbp hb lib imgood nce nial pa aj 7212 a Inthe Output file name window verify that the display reads two dots a backward slash and the output FILE NAME e g lithoHelloWorld dll Note This notation places the file at one level up or out from the project folder and allows for this DLL file to be at the Z exe or SPM executable file level b Inthe Output file name window you may replace the two dots and backward slash with the exact location of the directory structure e g D SPM LithoHelloWorld dll Note If the file name already exists the new DLL file will overwrite the old file automatically If the file name does not exist the final DLL file is added to the SPM directory Rev A NanoLithography 11 Procedures to Perform NanoLithography Testing Your System LithoHelloWorld dll 4 Inthe Link tab change the Category to Input See Figure 316 4d In the Object library modules window verify that z lib follows that last item in the a horizontal list of library files and each library module is separated by a space b Verify that the Additional Library Path displays two dots and backward slash i e to direct the path to the z lib file Figure 316 4d Link Tab Dring Por pein Beste l b Giota Fiica Met E Input iaai Category EMITE IEU NanoScope Library File t hoserapeai basmi tho siap Eib eS hb ee hb oe bb wad Me c
27. ct the microscope to inscribe or move items on the sample surface Figure 316 3a shows an STM Scanning Tunneling Microscopy lithograph of concentric shapes i e polygon and circles on a poly carbonate This lithography uses a specially designed scanner called a Closed Loop XY scanner Note For additional information on using a Closed Loop XY scanner contact your Digital Instruments Veeco Metrology Group representative Figure 316 3a Lithography Image Image is Courtesy of Debra Cook Application Scientist Digital Instruments Veeco Metrology Group 316 3 1 Mechanical Properties NanoLithography consists of using the tip as an electro or mechanical tool to scribe indent or create a ditch on various material surfaces Lithography uses C programming language along with NanoScript macro Litho functions to manipulate the tip relative to the sample surface The area Scan size Real Time gt Scan Controls gt Scan Size parameter setting defines the allowable dimensions of your Lithographic image s There are no safeguards to guarantee against tip or surface damage To allow for full control of your Lithography functions you must carefully define the physical limits then execute commands which do not exceed those limits In selected instances the software warns you when executing commands beyond limits in the X Y plane e g trying to move the tip outside the bounds of the maximum Scan size Most commands assume the tip is within i
28. d Digital Veeco i Instruments Metrology Group Support Note 31 6 Revision A NanoLithography 316 1 Overview This support note details NanoLithography theory NanoScript syntax for performing lithography commands and procedures to test build and run NanoLithography programs Refer to the following sections for using your NanoLithography Package e New NanoLithography Package Section 316 2 on Page 2 e Package Contents Section 316 2 1 on Page 2 e Terms and Definitions Section 316 2 2 on Page 3 e NanoLithography Theory Section 316 3 on Page 5 e Procedures to Perform NanoLithography Section 316 4 on Page 8 Testing Your System LithoHelloWorld dll Section 316 4 2 on Page 9 Testing Your System Diamond dll Section 316 4 3 on Page 15 e Modifying a Lithography Program Section 316 4 4 on Page 19 e Writing a New Lithography Program Section 316 4 5 on Page 24 e Exporting Older Programs into Version 5 12 or Later Section 316 4 6 on Page 30 e Performance Tips Section 316 4 7 on Page 31 e Sample Programs Overview Section 316 5 on Page 33 e NanoScript Macros Section 316 6 on Page 37 e Litho h Functions Section 316 7 on Page 38 e Gui h Functions Section 316 8 on Page 46 Document Revision History NanoLithographyy Revision Date Section s Affected Reference Approval A 11 12 01 New Release DRF 0426 C Fitzgerald L Fukunaga Digital Instruments Veeco Metrology Group 2001 Part Number
29. d additional NanoLithography program procedures Refer to the following sections to perform NanoLithography on your NanoScope system e What You Will Need Section 316 4 1 on Page 8 Testing Your System LithoHelloWorld dll Section 316 4 2 on Page 9 Testing Your System Diamond dll Section 316 4 3 on Page 15 e Modifying a Lithography Program Section 316 4 4 on Page 19 e Writing a New Lithography Program Section 316 4 5 on Page 24 Exporting Older Programs into Version 5 12 or Later Section 316 4 6 on Page 30 e Performance Tips Section 316 4 7 on Page 31 316 4 1 What You Will Need To perform Lithography on the NanoScope you must have the following components e Microsoft Visual C Compiler provided with your NanoLithography option Internet Explorer browser 4 0 or above is necessary to install the Visual C compiler e NanoScope Software 5 12 or above Note Older versions of the NanoScope software require additional functions to run NanoLithography in the manner detailed in this support note For exporting older Lithography files for use in the 5 12 NanoScope software see Exporting Older Programs into Version 5 12 or Later Section 316 4 6 on Page 30 e NanoLithography Program files e g litho h z lib gui h sysdefs h and three sample programs In general NanoLithography includes the following abbreviated steps 1 Perform the necessary steps for placing all files in the SPM directory 2 Verify edit
30. e settings Note Prior to building you can modify the source code Once you build the program the DLL locks all program settings in to the DLL file If changes are made to the source code you must rebuild the DLL file 2 Open the Build menu select the Build command Debugging the Program During a build verify the project settings scroll through the code to build a DLL file If syntax errors occur in the program the build will not be successful 1 Check the number of errors in the Build window See Figure 316 4e a Fora successful build the error log shows 0 2 If errors exist in the source code scroll up in the Build window double click to read the error message and an arrow appears in the source code where the error exists Rev A NanoLithography 21 Procedures to Perform NanoLithography Modifying a Lithography Program a Make necessary changes in the setting or syntax 3 Once the errors are fixed select the Build gt Rebuild menu command Open the NanoScope Software Once you build and debug a program the DLL file is ready to load in the NanoScope software to run a lithography on the sample surface Open the NanoScope Debug Window While in the NanoScope software it is helpful to have the NanoScope Debug window showing Complete the following while in the NanoScope software 1 Click on the Control Monitor and hit Ctrl Alt D 2 Select the Filter menu and check Litho SayError and LogAllChecked 3
31. e tip on the surface and view your imaging mode 5 Open the DI menu and select the NanoScript command Run the Lithography Macro DLL 1 Inthe NanoScript screen select Macro gt Load to access the list of DLL files 2 Browse to select the Dramonp DLL file to load and click OK Note The imaging appears to stop while the debug window displays the program instructions Once the lithography is complete a diamond shape is inscribed on the sample surface See Figure 316 4h Figure 316 4h Diamond Test Program 7246 18 NanoLithography Rev A Procedures to Perform NanoLithography Modifying a Lithography Program 316 4 4 Modifying a Lithography Program In this example the Diamond lithography program is modified by changing the tip X and Y movement dimensions from 10um to Sum Locate the Necessary Lithography Files When running the macro files the program looks in specific directories for running the commands Complete the following procedures to verify that the files are in the correct directory structure 1 Verify or place the sample program e g LithoHelloWorld folder in your SPM directory This file containing the C source files must be in a folder which is in the same directory as your Z exe NanoScope software executable file 2 Locate or place the litho h gui h sysdefs h header files in your SPM Include directory Note The Include directory must be at the same level as your Z exe SPM executable file 3
32. ee ab ete A My ri jaoga inane ea y bima iib osai hb gii Building a Dynamic Link Library DLL File In order to run lithography the programs need to be built in the form of DLL files Veeco Instruments Inc uses an industry standard C C compiler to build the DLLs Complete the following procedures to build your DLL file from the set of project files 1 Inthe C compiler with the source file open verify that the source code is correct i e edit the settings Note Prior to building you can modify the source code Once you build the program the DLL locks all program settings in to the DLL file If changes are made to the source code you must rebuild the DLL file 2 Open the Build menu select the Build command Rev A 12 NanoLithography Procedures to Perform NanoLithography Testing Your System LithoHelloWorld dll Debugging the Program Verify that the Build window displays file code being compiled into the DLL file 1 Upon completion of the build check the number of errors See Figure 316 4e Figure 316 4e Build Window Configuration at LS h lithoHellowWorld dll O errori isj 0 warning is aleh brio a bebeg A Ford ir Fieri h Fired in Fera y a For a successful build the error log shows 0 2 If errors exist in the source code scroll up in the Build window double click to read the error message and an arrow appears in the source code where the error exists a Make necessary ch
33. em DelMenulItem ClearMenuBar 316 8 13 Debug PROTOTYPE int Debug char fmt DESCRIPTION The function Debug outputs a string as specified to the system debug box The arguments are printf style This box can also display by selecting Ctr1 Alt D RETURN VALUE Returns the number of characters output to the debug box 316 8 14 DelMenultem PROTOTYPE void DelMenulItem Menultem item DESCRIPTION The function De 1MenulItem removes the specified menu item 50 NanoLithography Rev A Gui h Functions EraseMessage 316 8 15 EraseMessage PROTOTYPE void EraseMessage DESCRIPTION The EraseMessage function erases the message box that has been displayed by the ShowMessage function See also ShowMessage SayError SayWarning SayMessage RemoveSayBox 316 8 16 FindMenultem PROTOTYPE Menultem FindMenulItem Menultem parent char name DESCRIPTION The FindMenuItem function locates a menu item with the string specified by name in the menu referred to by parent To find an item in the main menu bar specify menuBar as the parent RETURN VALUE Returns the handle to the found menu item If no matching item is found NULL is returned See also AddMenulItem DelMenultem 316 8 17 IsMessageBoxUp PROTOTYPE bool IsMessageBoxUp DESCRIPTION The function IsMessageBoxUp queries for the presence of the user interface message box RETURN VALUE TRUE if yes otherwise FALSE 316 8 18 LockGUI PROTOTYPE void
34. ew DLL file will overwrite the old file automatically If the file name does not exist the final DLL file is added to the SPM directory 4 Inthe Link tab change the Category to Input a Inthe Object ibrary modules window verify that z lib follows a space and is the last item in the horizontal list of library files and each library module is separated by a space b Verify that the Additional Library Path displays two dots and backward slash to direct the path up one level to the z lib file 5 Select OK Build the DLL File In order to run lithography the programs need to be built in the form of DLL files Veeco Instruments Inc uses an industry standard C C compiler to build the DLLs Complete the following procedures to build your DLL file from the set of project files 1 Inthe C compiler with the source file open verify that the source code is correct or edit the settings Note Prior to building you can modify the source code Once you build the program the DLL locks all program settings in to the loadable DLL file 2 Open the Build menu select the Build command Note In the lower window you will see the project scroll through the code to build a DLL file If syntax errors occur in the program the build will not be successful 3 Check the number of errors in the Build window See Figure 316 4q a Fora successful build the error log shows 0 b To check errors double click on the error message in
35. grams Three sample programs to test modify and write Lithography programs 2 NanoLithography Rev A New NanoLithography Package Terms and Definitions 316 2 2 Terms and Definitions In order to understand the processes detailed in this support note it may be helpful to become familiar with specific terms Table 316 2a NanoLithography Terms and Definitions Term Definition Compiler The compiler i e Visual C Studio compiler is responsible for building the project files in to a dynamic link library DLL file Visual C provides an Integrated Development Environment IDE that allows you to write build and debug C C programs i e the basis for Lithography programs The compiler environment also provides easy navigation of your source code Dynamic Link A dynamic link library DLL is an executable file that acts as a Libraries shared library of functions which contain one or more commands DLL that are compiled linked and stored separately DLLs also facilitate the sharing of data and resources The NanoScope software searches and loads the DLL file to run the Lithography program Header Files Header Files or Include Files contain the C C declarations of h the functions you use for NanoScript or lithography In the C C environment functions must be declared before they are used Your macro source file must explicitly include the header file that con tains the function you want to cal
36. grams to begin processing lithography macros Use the following sample programs as a template to test and write Lithography programs A CAUTION Prior to writing new lithography programs run the sample programs to avoid damaging i your hardware Refer to the following sections to experiment with the sample programs e Sample 1 LithoHelloWorld Section 316 5 1 on Page 33 e Sample 2 Diamond Section 316 5 2 on Page 34 e Sample 3 DiamondGUI Section 316 5 3 on Page 36 316 5 1 Sample 1 LithoHelloWorld The following sample is in the sample programs on your Lithography package disk Verify the folder LithoHelloWorld is in the SPM directory Figure 316 5a shows the code found in the LithoHelloWorld cpp file Figure 316 5a LithoHelloWorld Code 77 TithoHelloWorld demo macro include lt litho h gt gt Fie in your SPM Include dear include lt gui h gt extern C __declspec dllexport int macroMain Send debug statement to debug window Debug lithoHelloWorld called n Put up a GUI dialog AskOk Litho Hello World p Dialog box will displa these words Main lithography section LITHO_BEGIN eqs Macro functions displa Put your litho functions here bawesn LITHO BEGIN LITHO_END Debug lithoHello World exit n and LITHO_END return 0 0 makes macro unload End of Main section to unload the Macro Rev A NanoLithography 33
37. ho h and gui h for this example 3 Select the Link tab and verify that the Category window displays GENERAL a Inthe Output file name window verify that the display reads two dots a backward slash and the output file name e g DiamondGui dll Note This notation places the file at one level up or out from the project folder and allows for this DLL file to be at the SPM executable i e z exe level b Inthe Output file name window you may replace the two dots and backward slash with D SPM DiamondGui dll Note If the file name already exists the new DLL file will overwrite the old file automatically If the file name does not exist the final DLL file is added to the SPM directory 4 Inthe Link tab change the Category to Input See Figure 316 4d a Inthe Object library modules window verify that z lib follows that last item in the horizontal list of library files and each library module is separated by a space b Verify that the Additional Library Path displays two dots and backward slash i e to direct the path to the z lib file Building a DLL File In order to run lithography the programs need to be built in the form DLL files Veeco Instruments Inc uses an industry standard C C compiler to build the DLLs Complete the following procedures to build your DLL file from the set of project files 1 Inthe C compiler with the source file open verify that the source code is correct or edit th
38. information that the link Project gt Settings gt Link tab needs for resolving external refer ences to exported DLL functions The purpose is for the system to locate the loaded DLL file and then export the NanoScope Lithogra phy functions in real time mode For example to call the AskOK function you must link the code with the import library Z LIB The reason is that AskOK resides in the NanoScope system DLL The file Z LIB is the import library used to resolve the call to apply the AskOK command in your code Figure 316 2a Workspace and Project Files litho HalloWorld Microsoft Visual C lith lallo World cpp IE Fla Edt View nsert Project Build Tools Window Halp icu rte ac iomee i 4 macokan h Files e litheHellewWerld demo macro Winclude 1litha h Workspace j I rid dily include igui hi A hotelo axtero O _ declspec dllexpart int macro O Header Files ig Resource Files s7 Send debug statement to debug windo mH Extamel Depanda Debug lithoHelloWearld called n Put up a GUI dialog ASEOE Lithe Helle World J Hain lithography section LITHO_BEGIH e lt Put your lithe fanctions here 7216 File View Source File View 4 NanoLithography Rev A NanoLithography Theory Mechanical Properties 316 3 NanoLithography Theory The NanoLithography feature allows for performing movements in nano scale areas The lithography programs dire
39. ithoSignal Section 316 7 7 on Page 40 e LithoGet Section 316 7 8 on Page 41 e LithoGetSoft Section 316 7 9 on Page 41 e LithoMoveZ Section 316 7 10 on Page 41 e LithoPause Section 316 7 11 on Page 42 e LithoPulse Section 316 7 12 on Page 42 e LithoRamp Section 316 7 13 on Page 43 e LithoRelease Section 316 7 14 on Page 43 e LithoSet Section 316 7 15 on Page 43 e LithoSetSoft Section 316 7 16 on Page 44 e LithoTranslate Section 316 7 17 on Page 44 e LithoTrigger Section 316 7 18 on Page 44 e LithoWaitFor Section 316 7 19 on Page 45 e Gui h Functions Section 316 8 on Page 46 38 NanoLithography Rev A Litho h Functions LithoAbort 316 7 1 LithoAbort PROTOTYPE void LithoAbortQ DESCRIPTION LithoAbort is used inside a lithography block to jump to the LITHO_END command RETURN VALUE None 316 7 2 LITHO_BEGIN PROTOTYPE LITHO_BEGIN DESCRIPTION LITHO_BEGIN prepares the SPM for lithography Note To stop the scanning use LithoScan false To move the tip to the center of the scan area use LithoCenterXY 316 7 3 LITHO_END PROTOTYPE LITHO_END DESCRIPTION This macro is placed at the end of a set of lithography commands Execution of this command causes the SPM to resume normal scanning 316 7 4 LithoDisplayStatusBox PROTOTYPES void LithoDisplayStatusBox DESCRIPTION Displays the lithography status box 316 7 5 LithoRemoveStatusBox PROTOTYPES void LithoRemoveStatusBox DESCRIPTION Remo
40. knowledge of modern C C programming or the sample templates and create the settings related to your desired results Modifying Older Programs To modify pre 5 12 NanoScope software Lithography programs change the following 1 Replace the main syntax with the following extern C _ declspec dilexport int macroMain 2 If the file sysdef h is in your Include directory the function LithoScan FALSE works properly Rev A NanoLithography 27 Procedures to Perform NanoLithography Writing a New Lithography Program Note FALSE and TRUE as upper case words were defined in NanoScript s sysdefs h header file a If you do NOT have the sysdef h in your include directory replace LithoScan FALSE with the following LithoScan false 3 Add the following line to the end of the main section at the bottom of the code below LithoEnd and above the last bracket return 0 0 makes macro unload Note See also Exporting Older Programs into Version 5 12 or Later Section 316 4 6 on Page 30 Verify Project Files and Settings It is important to know the location of your SPM files and the Z exe file that runs your hardware Verify the location of the following lithography files 1 Verify the z lib file in the SPM directory 2 Verify the header files h in the source code In this sample the header files include litho h and gui h Verify that both files are in the SPM Include directory Verify Project Settings
41. l ex include lt litho h gt Litho h in this example includes all the NanoScope lithography functions that are available If you want to call GUI functions include gui h ex include lt gui h gt These header files should be located in the Include subdirectory in the SPM folder NanoScript NanoScript is a fully C capable language extension that includes Language over 200 library functions written by Digital Instruments program mers For further details see NanoScript Macros Section 316 6 on Page 37 Project A project is similar to a folder It consists of a set of files which act together to perform the Litho functions See Figure 316 2a Source Files In the Microsoft Project files the source files include the NanoScript Language information When selected code is visible in the right window to verify edit or modify the NanoLithography settings The source files contain exported functions i e declspec modifier internal functions and output functions for the DLL Workspace A window in the C compiler that consists of a set of objects files and folders The folders contain specific project information for the Lithography program Figure 316 2a displays a workspace Rev A NanoLithography 3 New NanoLithography Package Terms and Definitions Term Definition Zlib A library of NanoScope functions i e linked in to your program This import library Z LIB file contains
42. mands available with this option Note All functions that include the word false will only work properly if the header file sysdef h is in your Include directory Otherwise for all statements where FALSE is part of the syntax change the term to false which works properly regardless of the sysdef h file 316 6 1 Background The NanoScript macro language was developed by Digital Instruments Veeco Metrology Group for automatic control of SPM functions Note For information about adding full NanoScript capability to your microscope contact Digital Instruments Veeco Metrology Group NanoScript macro commands add NanoScope functionality to source code written in C language formats e g C The source code exists in the same directory as the NanoScope SPM executable file This section details the NanoScript macros associated with programming to perform NanoLithography Refer to the following function commands e Litho h Functions Section 316 7 on Page 38 e Gui h Functions Section 316 8 on Page 46 Rev A NanoLithography 37 Litho h Functions Background 316 7 Litho h Functions For details on these commands refer to the following sections e LithoAbort Section 316 7 1 on Page 39 e LITHO BEGIN Section 316 7 2 on Page 39 e LITHO END Section 316 7 3 on Page 39 e LithoDisplayStatusBox Section 316 7 4 on Page 39 e LithoRemoveStatusBox Section 316 7 5 on Page 39 e LithoFeedback Section 316 7 6 on Page 40 e L
43. modifications allow for using these programs to perform NanoLithography in Version 5 12 or later NanoScope software Note If you are copying code from an older version of software you must also make these changes To modify older programs change the following 1 Replace the main syntax with the following extern C _ declspec dilexport int macroMain 2 If the file sysdef h is in your Include directory the function LithoScan FALSE works properly 30 NanoLithography Rev A Procedures to Perform NanoLithography Performance Tips Note FALSE and TRUE as upper case words were defined in NanoScript s sysdefs h header file a Ifyou do NOT have the sysdef h in your include directory replace LithoScan FALSE with the following LithoScan false 3 Add the following line to the end of the main section at the bottom of the code below LithoEnd and above the last bracket p return 0 0 makes macro unload Figure 316 4r Sample of Changes to Older Lithography Programs include lt litho h gt Files in your SPM Include directory include lt gui h gt extern C __declspec dllexport int macroMain Send debug statement to debug window Debug lithoHelloWorld called n Put up a GUI dialog AskOk Lithq Hello World _______ Dialog box will display these words Main lithography section LITHO_BEGIN Macro functions displa Cc Put your litho functi
44. n 316 8 19 on Page 51 ModalDialog Section 316 8 20 on Page 52 NormalMenuBar Section 316 8 21 on Page 52 PasswordQuery Section 316 8 22 on Page 52 RemoveSayBox Section 316 8 23 on Page 52 46 NanoLithography Rev A Gui h Functions AddButton e RunDialog Section 316 8 24 on Page 53 e SayError Section 316 8 25 on Page 53 e SayMessage Section 316 8 26 on Page 53 e SayWarning Section 316 8 27 on Page 53 e SelectRadioButton Section 316 8 28 on Page 53 e ShowMessage Section 316 8 29 on Page 54 e UnlockGUI Section 316 8 30 on Page 54 e UnlockMenu Section 316 8 31 on Page 54 316 8 1 AddButton PROTOTYPES void AddButton DialogBox db char text int id PFV action UIBFlags flags DESCRIPTION Adds a button with the specified text to the dialog box specified by ab EXAMPLE UIBF lags can be any combination of the following values enum UIBFlags uibNone 0 uibDefault 0x00000100 uibClose 0x00000200 E 316 8 2 AddCheckBox PROTOTYPE void AddCheckBox DialogBox db char text bool amp checked DESCRIPTION AddCheckBox adds a check box with the specified text to the dialog box specified by db Rev A NanoLithography 47 Gui h Functions AddFloatControl 316 8 3 AddFloatControl PROTOTYPE void AddFloatControl DialogBox db char label int amp value int min int max DESCRIPTION AddFloatControl adds a control which allows the entry of a floating point number to the dialog
45. ng PROTOTYPE void Say Warning char fmt DESCRIPTION The function SayWarning displays a message box with the title of Warning The parameters specify the message to be displayed and are in printf style See also RemoveSayBox 316 8 28 SelectRadioButton PROTOTYPE void SelectRadioButton RadioGroup rg ResID id DESCRIPTION The function Se lect RadioButton selects the radio button specified by the id in the radio group rg See also RunDialog Rev A NanoLithography 53 Gui h Functions ShowMessage 316 8 29 ShowMessage PROTOTYPE void ShowMessage char title char fmt DESCRIPTION The function ShowMessage invokes a message box with the title as specified by title The remaining parameters specify the message to be displayed in printf style While this box is up the user is prevented from interacting with the system It must be removed using a call to EraseMessage See also EraseMessage 316 8 30 UnlockGUI PROTOTYPE void UnlockGUI Q DESCRIPTION The function UnlockGUI removes the lock placed by the LockGUI function preventing all user interaction with the system See also LockGUI 316 8 31 UnlockMenu PROTOTYPE void UnlockMenu DESCRIPTION The function UnlockMenu removes the lock placed by the LockMenu function preventing the menu bar from changing See also LockMenu 54 NanoLithography Rev A
46. ons here between LITHO BEGIN and LITHO_END Changes In the Code LITHO_END Debug lithoHelloWorld exit n return 0 0 makes macro unload End of Main section to unload the Macro 316 4 7 Performance Tips Experimenting with the sample templates will help you to optimize your Lithography results This section details additional known performance tips for optimization Open the NanoScope Debug Window While in the NanoScope software it is helpful to have the NanoScope Debug window showing Complete the following while in the NanoScope software Rev A NanoLithography 31 Procedures to Perform NanoLithography Performance Tips 1 Click on the Control Monitor and hit Ctrl Alt D 2 Select the Filter menu and check Litho SayError and LogAllChecked 3 Close the filter box Note You should then see debug msgs in the black debug window General Performance Tips The following list are general hints to optimize your lithography programming e Set the Scan size to encompass the entire sample area which you intend the lithography program to affect e If you use a LithoTranslate command while feedback is set to off in the LithoFeedback command perform a Capture Plane Real time gt Capture menu before running the program so that the tip to sample distance can be accurately maintained during translation or tip movement Translations completed while feedback is turned On do not require this step
47. ool Ask YesNo char title char fmt DESCRIPTION Each of these functions display a modal dialog box The title of the dialog box is specified by title Any messages displayed in the modal dialog box are specified by fmt and remaining parameters print f style In addition the box will have buttons corresponding to the name of the function called For instance AskYesNo will have a yes and a no button The box is closed when any button is selected RETURN VALUE TRUE if selecting the OK or YES button FALSE if box closes by selecting the exit option i e X Rev A NanoLithography 49 Gui h Functions AtMenuBuild 316 8 10 AtMenuBuild PROTOTYPE void AtMenuBuild void fn int DESCRIPTION The AtMenuBuild function registers the function fn such that when a menu bar is being built the registered function fn is called This allows adding custom menu items using NanoScript See also AddMenultem FindMenultem DelMenultem ClearMenuBar CustomMenuBar 316 8 11 ClearMenuBar PROTOTYPE void ClearMenuBar DESCRIPTION The ClearMenuBar function clears all items from the current menu bar See also FindMenultem DelMenulItem AddMenultem 316 8 12 CustomMenuBar PROTOTYPE void CustomMenuBar DESCRIPTION The function CustomMenuBar displays a user configured menu bar This menu bar is not used by any other portion of the NanoScope system See also NormalMenuBar AddMenultem FindMenulIt
48. or modify the lithography program in the C compiler source files 3 Build the DLL file in the C compiler 4 Engage the tip on the surface and obtain an image in the NanoScope 5 Determine the lithography site on the sample surface 8 NanoLithography Rev A Procedures to Perform NanoLithography Testing Your System LithoHelloWorld dll 6 Li 8 Load and run the macro lithography program DLL Continue to image the site Capture the lithographic image 316 4 2 Testing Your System LithoHelloWorld dll The NanoLithography package includes one sample to test the features in using the C compiler and NanoScript interface This section details the procedures to run the sample program lithoHelloWorld This program loads a dialog box that displays the phrase Hello World Note The LithoHelloWorld test sample does not require hardware to load and run Its purpose is to test the procedures and ability to load a DLL file in the NanoScope For testing a simple program that uses the hardware see Testing Your System Diamond dll Section 316 4 3 on Page 15 Locate the Necessary Lithography Files When running the macro files the program looks in specific directories for running the commands Complete the following procedures to verify that the files are in the correct directory structure 1 Verify or place the sample program e g LithoHelloWorld file in your SPM directory This folder containing the C
49. rdware representation such as volts 316 7 9 LithoGetSoft PROTOTYPES double LithoGet LithoSignal i DESCRIPTION Returns the current value of the specified channel in its soft units typically the signal s software representation such as nanometers 316 7 10 LithoMoveZ PROTOTYPES bool LithoMoveZ double dz double rate DESCRIPTION LithoMoveZ moves the tip along the Z axis dz at a specified rate Units for dz are micrometers units for rate are in micrometers per second um sec Positive values for dz moves the tip away from the sample This command turns off feedback RETURN VALUE FALSE if the command fails EXAMPLE LithoMoveZ 0 020 0 040 move the tip 20 nm toward the sample at 40 nm s See also Optimizing the LithoMoveZ Command below Rev A NanoLithography 41 Litho h Functions LithoPause Optimizing the LithoMoveZ Command To use LithoMoveZ and translation for doing lithography complete the following 1 Disable the Slow scan axis then select Scope mode to examine the surface slope Note This reveal the sample tilt along the X axis 2 Adjust the sample until this axis is level Several withdrawals and engages may be required to get the adjustments right 3 Set the Scan angle to 90 so that the Scope mode trace reveals the sample along its Y axis adjust the sample again until level Return the Scan angle setting to 0 to verify the sample is still level in its X axis You are now
50. source files should be located in the same directory as your NanoScope software executable file i e z exe Locate or place the litho h gui h sysdefs h header files in your SPM Include directory Note The Include directory must be at the same level as your Z exe SPM executable file Verify that the z lib file is in the SPM directory This folder should be located in the same directory as your Z exe NanoScope software executable file Open a Workspace in The Microsoft Visual C Locate the sample program folder e g LithoHelloWorld and open the folder to display the list of files Double click on the workspace file i e the file with an dsw file extension Note This will open the Microsoft Visual C compiler and workspace See Figure 316 4a Rev A NanoLithography 9 Procedures to Perform NanoLithography Testing Your System LithoHelloWorld dll Figure 316 4a C Compiler File View Lote CLE the cares wv Source Code from the Be ee ey De ee et eet lithoHelloWorld cpp File aini doh Cael isi neg ie Deu Lith cor cal bed be 7215 Pri ap g mi dialon doi Litio Hell Borkd iz Workspace and List of Project Files Note If the source code is not open in the client window expand the Source files in the workspace and double click the cpp file to display the source code information Note For specific details of the source code in this sample see Sample 1 LithoHelloWorld Section 316
51. tage and output settings RETURN VALUE FALSE if the command fails EXAMPLE ramp the Bias voltage from 2 to 2 volts over a period of 5 seconds LithoRamp sBias 2 2 5 316 7 14 LithoRelease PROTOTYPES bool LithoRelease bool allow DESCRIPTION Allows the user turn on and off user interface processing during lithography commands This makes lithography run faster for critical timing applications but locks out all user access RETURN VALUE FALSE if the command fails EXAMPLE Produce a 50 ms pulse on Al Without the LithoRelease command the pulse may be significantly longer than 50 ms LithoRelease false turn off user interface processing LithSet sAnal 10 LithoPause 0 050 LithoSet IsAnal 0 LithoRelease true turn on user interface processing 316 7 15 LithoSet PROTOTYPES bool LithoSet LithoSignal o double v DESCRIPTION LithoSet sets the specified signal o to v in hard units typically the signal s hardware representation such as volts RETURN VALUE FALSE if the command fails EXAMPLE LithoSet IsAna2 5 sets analog line 2 to 5 volts Rev A NanoLithography 43 Litho h Functions LithoSetSoft 316 7 16 LithoSetSoft PROTOTYPES bool LithoSetSoft LithoSignal o double v DESCRIPTION LithoSetSoft sets the specified signal o to v in soft units typically the signal s software representation such as nanometers RETURN VALUE FALSE if the command fails
52. the Build window Note An arrow appears in the Source code where the error exists c Make the necessary changes in the settings or syntax 4 Once the errors are verified and fixed select the Build gt Rebuild menu command Rev A NanoLithography 29 Procedures to Perform NanoLithography Exporting Older Programs into Version 5 12 or Later Figure 316 4q Build Window Configuration lithoHelloWorld Windz Debug 1 D error s O warningts Gata g Babu h Find in Files T k Find in Filas 2 F j al Run the NanoScope and Load the New DLL 1 After creating a new DLL file open the NanoScope software 2 Open the Real Time mode engage the surface and obtain an image Note It may be necessary to adjust the sample using Stage commands if available and or use X and Y offsets to position the lithography site at the center of the screen 3 Select the DI gt NanoScript command 4 Inthe NanoScript screen select Macro gt Load and browse to locate the new project dll file 5 Browse in the Macro Run dialog box to select the desired DLL file 6 Click OK to begin the NanoLithography program Note When the program is complete the system returns to Real Time engage mode 7 Continue to image until the Lithographic feature is seen in the image window 8 Select the Capture command to save the image in the Capture directory 316 4 6 Exporting Older Programs into Version 5 12 or Later For users with pre 5 12 programs slight
53. the sample surface Note The tip s ability to scribe the surface for a given amount of pressure depends upon the softness of the material You may experiment with the Real time gt View gt Force Mode gt Step command to observe the tip impact upon the surface for different Setpoint values Rev A NanoLithography 35 Sample Programs Overview Sample 3 DiamondGUI 316 5 3 Sample 3 DiamondGUI The following sample combines both Sample 1 LithoHelloWorld and Sample 2 Diamond code to enhance the diamond shape lithography In this sample a dialog box adds the capability of modifying the dimensions of a diamond shape on the sample surface Figure 316 5d DiamondGUI Macro Code diamondGUI cpp Example Writing a Lithography Program with GUI features Adds a dialog box to the diamond cpp example include lt litho h gt include lt gui h gt extern C ___declspec dllexport int macroMain Parameters with default values float size 10 0f 10 um from center of diamond to point float rate 20 0f move the tip in X Y at 20 um s float depth 0 020f push the tip in 20 nm to draw lines float z_rate 0 040f move the tip down at 40 nm s Make a dialog box to prompt user for parameter values epee o DialogBox dlg ModalDialog Diamond Parameters Enter Litho Settings AddFloatControl dlg Size um size 0 0 10 0 AddFloatControl dlg Rate um s rate 0 0 100 0 AddFloatControl dlg Depth
54. ts physical limits such as when the tip is plunged into a surface then dragged through material Rev A NanoLithography 5 NanoLithography Theory Mechanical Properties Applications Lithography programs may be run in Scanning Tunneling Microscopy STM Contact Atomic Force Microscopy AFM and TappingMode AFM Each mode produces its own unique results STM Scanning Tunneling Microscopy STM can be used to modify surfaces at the nano scale level By applying voltage pulses e g see LithoPulse Section 316 7 12 on Page 42 of varying magnitude and frequency structures can be created By programming the tip to move in a pre determined fashion you can also indent the surface Selecting an SPM Mode and Probe for Nanolithography There are many SPM techniques for modifying a surface using Nanolithography Some techniques rely on mechanical contact interactions between the probe and the sample others rely on an electrical current flowing between the probe and the sample yet others use magnetic interactions and the list grows with every user The choice of the SPM technique and probe depends on the sample and the desired results NanoLithography is a rapidly evolving field of research The best source of information on the choice of probes and techniques is peer reviewed technical literature and other technical journals and websites Note For a sample list of the probes available from Digital Instruments Veeco Metrology Gro
55. up see also The Command Reference Manual Version 5 12B Appendix A Tip Selection Guide as well as your system manuals Example Scribing with the Lithography Program In this Sample 2 Diamond program the tip plunges 20 nm into the surface after moving 10 um from the center of the scan field creating a diamond with sides of 20um Figure 316 3b LithoTranslate Movement lt lt Start Lithography The macro command LithoTranslate moves the tip from center then to the three o clock position then moves counterclockwise to the twelve o clock position at a set rate of 20 m s The tip then continues to draw the additional sides of the diamond shape on the sample surface 6 NanoLithography Rev A NanoLithography Theory Mechanical Properties Rev A Figure 316 3c shows a diamond shaped lithography pattern on a poly carbonate sample using a standard scanner See Section 316 5 2 i e sample program Diamond dll to perform this lithography shape Figure 316 3c Diamond shaped Lithography Image To perform NanoLithography please refer to Procedures to Perform NanoLithography Section 316 4 on Page 8 NanoLithography Procedures to Perform NanoLithography What You Will Need 316 4 Procedures to Perform NanoLithography This section details the setup and load of a sample lithography program provided with your NanoLithography package The objective is to practice the procedures thoroughly in order to understan
56. urce file open verify that the source code is correct or edit the settings Note Prior to building you can modify the source code Once you build the program the DLL locks all program settings in to the DLL file If changes are made to the source code you must rebuild the DLL file 2 Open the Build menu select the Build command 16 NanoLithography Rev A Procedures to Perform NanoLithography Testing Your System Diamond dll Debugging the Program Check that the Build window displays file code being compiled in to the DLL file 1 Upon completion of the build check the number of errors a Fora successful build the error log shows 0 2 If errors exist in the source code scroll up in the Build window double click to read the error message and an arrow appears in the source code where the error exists a Make necessary changes in the setting or syntax 3 Once the errors are fixed select the Build gt Rebuild menu command Using the NanoScope Software and Running Your Litho Programs Once you build and debug a program the DLL file is ready to load in the NanoScope software to run lithography Open the NanoScope Software Debug Window While in the NanoScope software it is helpful to have the NanoScope Debug window showing Complete the following while in the NanoScope software 1 Click anywhere on the Control Monitor 2 Select Ctrl Alt D Note A filter box appears 3 Select the Filter menu and check Litho
57. ves the lithography status box Rev A NanoLithography 39 Litho h Functions LithoFeedback 316 7 6 LithoFeedback PROTOTYPES bool LithoFeedback bool on DESCRIPTION LithoFeedback turns Z feedback on or off RETURN VALUE FALSE if the command fails EXAMPLE LithoFeedback false turn off feedback 316 7 7 LithoSignal The LithoSignal type is an argument or boolean command for several lithography commands LithoSet LithoSetSoft LithoGet LithoGetSoft LithoRamp and LithoPulse see descriptions below LithoSignal values may be set to any of the following analog lines Table 316 7a LithoSignal Analog Lines C A nv V APN mA STM y Output channels Input channels 40 NanoLithography Rev A Litho h Functions LithoGet Applications on Specific Analog Lines Specific applications or microscope modes may only be used with the following analog lines e IsBias is available on STM microscopes only e IsAnal is available on non EC microscopes in STM and contact AFM microscopes only e IsAna2 and IsAna2HV are available on AFM microscopes where input attentuation is disabled and on all STM microscopes e JsAna3 and lsAna4 are available only NanoScope IIIa controllers which have been upgraded with additional D A converters 316 7 8 LithoGet PROTOTYPES double LithoGet LithoSignal i DESCRIPTION Returns the current value of the specified channel in its hard units typically the signal s ha

Download Pdf Manuals

image

Related Search

Related Contents

Trust Nanou  Extrusora MAK 36,48 Y 58  PDFファイルダウンロード - 公益社団法人 全国家庭電気製品 公正取引  Betriebsanleitung LIMAX33 Safe  Installation and user guide.  Flexicom sx User Manual Boilers - Glow-worm  Peerless MIS494 mounting kit  Wiley CompTIA A+ Complete Study Guide: Exams 220-701 (Essentials) and 220-702 (Practical Application)  Descargar - Sonypro  LG 42PJ350 Chassis PD  

Copyright © All rights reserved.
Failed to retrieve file