Real-time 3-d Localization using Radar and Passive Surface Acoustic Wave Transponders by Jason Michael LaPenta @ Submitted to the Department of Media Arts and Sciences, School of Architecture and Planning in partial fulfillment of the requirements for the degree of Masters of Science at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY August 2007 ~ 2007. All rights reserved. Massachusetts Institu f ecinzo A uthor ........................... Depart'ment of Media Arts and Sciences, School of Architecture and Planning Agnt Certified by. 1 1 th, 2007 ................. Professor Joseph A. Paradiso MIT Media Laboratory ThesiyuuefvW Read by. Prof4sor Henry I. Smith Department of Electrical Engineering & Computer Science I .. TfiesisReade Read by. Principal Research Scientist V. Michael Bove, Jr. MIT Media Laboratory The s Reader Accepted by....... I MSSCHPUSETS NSTITE OF TECHNOLOGY 4I 2007 RSEP LIBRARIE iUi ..... D V,.b Uy .R Chairperson, Departmental Committee on Graduate Students Program in Media Arts and Sciences ROTCH 2 Real-time 3-d Localization using Radar and Passive Surface Acoustic Wave Transponders by Jason Michael LaPenta Submitted to the Department of Media Arts and Sciences, School of Architecture and Planning on August 1 1 th, 2007, in partial fulfillment of the requirements for the degree of Masters of Science Abstract This thesis covers ongoing work into the design, fabrication, implementation, and characterization of novel passive transponders that allow range measurements at short range and at high update rates. Multiple RADAR measurement stations use phaseencoded chirps to selectively track individual transponders by triangulation of range and/or angle measurements. Nanofabrication processes are utilized to fabricate the passive surface acoustic wave transponders used in this thesis. These transponders have advantages over existing solutions with their small size (mm x mm), zero-power, high-accuracy, and kilohertz update rates. Commercial applications such as human machine interfaces, virtual training environments, security, inventory control, computer gaming, and biomedical research exist. A brief review of existing tracking technologies including a discussion of how their shortcomings are overcome by this system is included. Surface acoustic wave (SAW) device design and modeling is covered with particular attention paid to implementation of passive transponders. A method under development to fabricate SAW devices with features as small as 300nm is then covered in detail. The electronic design of the radar chirp transmitter and receiver are covered along with the design and implementation of the test electronics. Results from experiments conducted to characterize device performance are given. Thesis Supervisor: Professor Joseph A. Paradiso Title: MIT Media Laboratory 4 Biography Jason LaPenta received his B.S. in Electrical engineering from the University of Illinois in UrbanaChampaign (UIUC) in January of 2001. He specialized in control systems and worked at a research assistant on vision tracking projects. While at UIUC, Jason's summers were spent interning at Philips Semiconductors (Zhrich, Switzerland), Boeing (Seattle, Washington), and Procter and Gamble (Cincinnati, Ohio). After graduation, Jason worked for five years in the control systems group at MIT Lincoln Laboratories on such projects as the Mars laser communication experiment. Jason left Lincoln Laboratory in 2005 to pursue graduate research at the MIT Media Laboratory in the Responsive Environments Group headed by Professor Joseph Paradiso. While that demands of graduate school leave little free-time, when available Jason enjoys Underwater Hockey, caving, kayaking, sailing, and woodworking. 6 Acknowledgments This thesis, and all the wonderful opportunities I have had at MIT were possible because of my adviser Professor Joe Paradiso, the Responsive Environments Group, and the Media Laboratory community. Without professor Paradiso's commitment to this project, especially obtaining the substantial resources necessary, none of this work would have been possible. I would like to especially thank Professor Paradiso for all of the hard work put into this project. Microfabrication would have been an insurmountable obstacle without the generous support and dedication of the faculty, scientist, students, and staff of the Experimental Microfabrication Laboratory (EML), Nanostructure Laboratory (NSL), and Research Laboratory of Electronics (RLE). From the very first day I stepped into a fabrication laboratory, knowing absolutely nothing about applied fabrication, Kurt Broderick patiently mentored me through every step of fabrication to realize my first operational devices. I want to thank all the people at the the Nanostructures Laboratory, who demonstrated a truly exceptional level of collaboration, helpfulness, and openness that I'm am very lucky to have been a part of. Laboratory directors Professor Karl Berggren and Professor Hank Smith provided invaluable insight into many of the fabrication problems I encountered. Their hard work and dedication provided the laboratory, tools, and environment of collaboration essential to fabricating my high-frequency devices. James Daley worked very hard to keep all the temperamental laboratory machinery running smoothly and promptly provided me with all the supplies and processing I needed. Many long hours were spent by Mark Mondol checking and writing my designs using the VS-26 SEBL tool and teaching me to use the Raith-150 SEBL tool. Whenever I had a quick question, Tim Savas would drop what he was doing to answer and show me the proper methods. In consulting with Tim I learned a lot about practical fabrication considerations that are only learned in application. There are too many students who helped me in NSL to mention here, though I greatly thank all of them and the NSL community. Daniel Smalley, a friend and fellow Media Arts and Sciences graduate student, gave an enormous amount of advice during our many discussions of our similar projects. I would like to thanks Daniel for the countless hours of conversation through which his suggestions and insights saved even more hours of work. A special thanks to Roshni Cooper, the undergraduate research assistant whose hard work implementing the user interface and FPGA code allowed me to focus on fabrication while collecting data. And I especially thank my wife Cindy for all she has done during the most demanding time of my life. Contents 1 2 23 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .30 1.1 Analysis 1.2 M otivation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 1.3 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 39 Surface Acoustic Wave Devices . . . . 2.1 Properties of Lithium Niobate.. . . . . . . . . . . . . . . . 2.2 Modeling........ . . . . . . . . . . . . 2.3 D esign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... 42 43 48 57 3 Micro-Fabrication 3.1 Mask Design and Layout . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Substrates. 3.3 Substrate Preparation and Cleaning...... . . . . . 3.4 Lithography..... . . . . . . ........................... . . . . . . . . . . . . . . . 62 . . ... 69 . ... 71 . . . . . . . . . 74 . . . . . . . . . . 76 3.4.1 Photoresists........ . . . . . . . . . . 3.4.2 Coating . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 77 3.4.3 Contact Lithography . . . . . . . . . . . . . . . . . . . . . . . 78 3.4.4 Conformable Vacuum Mask Lithography 3.4.5 Scanning Electron Beam Lithography . . . . . . . . . . . . . . 9 . . . . . . . . ... 79 80 3.4.6 Exposure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.7 Resist Developing...... . . . . . . . . . . . . . . . . . . 3.5 D escum 3.6 Deposition................... ... .... . 3.7 Lift-off and Etching . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8 Mounting/Packaging...... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 4 Electronic Design 85 86 88 90 96 99 4.1 System Architecture........... . . . . . . . . . . . . . . .. 102 4.2 Analog Components and Test Equipment.. . . . . . . . . . . . . . 106 4.3 Impedance Matching............ . . . . . . . . . . . . . . . 111 4.4 SAW Filter Measurements......... . . . . . 4.5 SAW Transponder Measurements.............. 4.6 FPGA Hardware Description........... . . . 4.7 Softw are . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . 113 . .. 115 . . . . .. 116 5 Testing and Characterization 6 82 123 127 5.1 SAW Device Ox2C9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 5.2 SAW Device Ox2E8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 5.3 SAW Device OxOE3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Conclusion 137 Bibliography 141 A Lithography Masks 151 A.1 Mask 1 Generation Scripts....... . . . . A.2 Mask 2 & 3 Generation Scripts..... . . . . 10 . . . . . . . . . . . . . 151 . . . . . . . . . . . . 178 B Fabrication Processes B.1 Device Fabrication Process Details B.1.1 Cleaning. . . . . . . . . . . . 189 . . . . . . . . . . . . . . . . . . . 189 . . . . . . . . . . . . . . . . 189 B.1.2 Lithography . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 B.1.3 Lift-Off and Etching . . . . . . . . . . . . . . . . . . . . . . . 194 B.1.4 Vacuum Mask Fabrication . . . . . . . . . . . . . . . . . . . . 196 B.1.5 Raith 150 Operational Procedure . . . . . . . . . . . . . . . . 198 C OAI documentation 205 C.1 Housing Drawings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 C.2 Mask Chuck Drawings . . . . . . . . . . . . . . . . . . . . . . . . . . 214 D Auxiliary Electronics 217 E FPGA VHDL/C/XPS 227 F MATLAB Source Code 257 12 List of Figures 1-1 Notational diagram of three measurement stations tracking a single SAW transponder....... . . . . . . . . . . . . . . . . . . . . . 25 1-2 Hypothetical SAW transponder to illustrate the approach taken for identification and common mode rejection. The IDTs are shown with phase-shift encoding. 1-3 . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Illustrates the signal flow of RF received and transmitted signal and 27 surface waves, along with the effects of the signal processing. .... 1-4 Macro illustration of signals received by measurements stations at different locations (not to scale either in time or magnitude). 1-5 . . . . . . 28 Digitization scheme for enhanced low-cost identification and timing. Each digital channel, a or b, represents the thresholded receive signal at a particular cutoff. 1-6 . . . . . . . . . . . . . . . . . . . . . . . . . . 28 . . . 29 Time measurement to peak of the correlated signal... . . . 1-7 Illustrates the time-of-flight of the interrogation pulse being returned by a multipath object and a transponder. . . . . . . . . . . . . . . . . 30 2-1 Simplified diagram of basic SAW transponder functional components[1]. 40 2-2 Saw correlator with corresponding code and output pulse waveform. "time / position" is the waveform over time at a single point between IDTs, or the waveform over position between IDTs at a particular time. 41 2-3 Illustration of the crystal cut of a 128 -RY wafer[2], with an X-Flat, from Crystal Technologies Inc...... . . . . . . . . . 2-4 .... ... . . . . .. 43 SAW filter made with mask 1. Device Ox2C9, 25 finger pairs that are 200pm long........................ 2-6 42 Illustration of the crystal cut of a Y wafer [2], with a Z-Flat, from Crystal Technologies Inc............ 2-5 . . . . . . . .... .. . .. 44 MATLAB simulation of the normalized impulse response of a 323MHz SAW band-pass filter shown if figure 2-5... . . . . . . . . . . . . 45 2-7 Result of an impulse through device Ox2C9 as recorded on an oscilloscope. 47 2-8 Parameters for the design of a SAW IDT in this project. 2-9 The three types of SAW reflectors were implemented on mask 1. . . . . . . . . . 48 50 2-10 Narrow-band output correlator with n = 5 Barker code illustration. . 50 2-11 Narrow-band output trace for figure 2-10. 51 . . . . . . . . . . . . . . . 2-12 Narrow-band output correlator with code [1, 1, 1, 0,1 1,1,1,1, 1] utilizing one finger-pair encoding............ . . . . . . . . . . 52 2-13 Narrow-band correlator response for device fabricated on mask 3, shown in figure 2-12. Generated with nb.m in appendix F. . . . . . . .. 52 2-14 Wide-band output correlator illustration with n = 5 Barker code with two finger-pair encoding....... . . . . . . . . . . . . . . . . . . 53 2-15 Wide-band output trace for figure 2-14. . . . . . . . . . . . . . . . . 53 . . . . . . . . . . . . . . . . . . . . . . 54 2-16 Wide-band output correlator. 2-17 Wide-band correlator response for device fabricated on mask 3, shown in figure 2-16. Generated with wb.m in appendix F.... . . . . .. 54 2-18 Dual narrow-band transponder with a Barker code of length five with a five finger encoding....... . . . . . . . . . . . . . . . . . . . . 55 2-19 Dual narrow-band transponder's simulated waveform. The "rx signal" was transmitted by the measurement station and is what the input IDT sees. The "first response" and "second response" are the waveforms from each output IDT. . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2-20 Simulation including the effect of surface waves originating from the output IDTs of the transponder shown in figure 2-18..... . . .. 56 3-1 Simplified one-step lift-off process. . . . . . . . . . . . . . . . . . . . 60 3-2 Simplified wet-etch process. 61 3-3 Artwork for mask 1 showing a die section. . . . . . . . . . . . . . . . 63 3-4 Typical layout of a device on Mask 1. . . . . . . . . . . . . . . . . . . 63 3-5 Artwork for mask 2. 65 3-6 Artwork for mask 3 version 2. Bond-pads and leads are on a different . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . layer than the devices...... . . . . . . . . . . . . . . . . . . . . 68 3-7 Artwork for mask 3 version 3. . . . . . . . . . . . . . . . . . . . . . . 69 3-8 Micrography of PMMA scum on a quartz light-field mask with chrome. 73 3-9 Typical lithography process steps used in this project. SEBL or contact printing can be used to transfer a pattern to the photoresist. .... 75 3-10 Spin curve of 3 parts Anisole to 1 part PMMA 950k All. . . . . . . . 77 3-11 Fringe patterns resulting from imperfect contact between mask and substrate while under vacuum and illuminated with a green monochromatic light. This shows the OAI 77mm chuck with a top-down rubber gasket over the mask. The mask was 1mm quartz and the substrate was a 77mm silicon wafer...... . . . . . . . . . . . . . . . . . . 80 3-12 Simplified diagram of a SEBL tool. The detector is used for imaging test particles that are used to adjust for focus, aberration, stigmation, and write field alignment. . . . . . . . . . . . . . . . . . . . . . . . . 81 3-13 Micrographs of field stitching problems. . . . . . . . . . . . . . . . . . 82 3-14 Exposure test features allow inspection of focus, dose, and development parameters................... ... . . . . . . . . ... 83 3-15 Micrograph of a dose matrix written in 100nm of PMMA on Quartz. Exposed with the Raith 150 SEBL tool. . . . . . . . . . . . . . . . . 83 3-16 The top micrograph shows clearing problems with PMMA on Quartz. The bottom two exposure show improperly cleared (left) and properly cleared (right) 4im grating of PMMA on Silicon. The darker areas are PMMA and the light areas are substrate. These exposures were made with the OAI deep-UV exposure tool in NSL. . . . . . . . . . . . . . 84 3-17 Developed exposure/developing test features showing the degree of over/under developing. The left panel shows underdeveloped clearing problems, and the right panel shows overdeveloping. The center panel show ideal exposure, with the two boxes coming into perfect contact. 3-18 Changes in width of 1.1pm lines due to developer temperature. . . . 85 86 3-19 Exaggerated illustration of the effect on resist profile from RIE or plasma asher descum processes. The top figure is the photoresist profile after development and before any descum step . . . . . . . . . . . . . 87 3-20 Etch depth vs. time of 106nm PMMA on Si in 02 plasma asher using 50W power and 0.305psi average pressure. Thickness measured with an ellipsometer................. . . . . . . . . . . . ... 88 3-21 Results from 2sec of 02 plasma asher and RIE descum methods. The figures show Cr on Quartz and Cr on PMMA before the liftoff step. 10nm of PMMA were taken off with the 02 asher. 7nm of PMMA were taken off with the RIE............ .... . . . . ... 3-22 Effect of off-angle deposition on side-wall coating. . . . . . . . . . . . 89 89 3-23 Micrograph of a problem encounter when depositing 40nm Cr onto 100nm of PMMA on an SiO2 wafer using the NSL evaporation tool. . 90 3-24 Undercut allows solvent to dissolve photoresist and remove metal overlay. 90 3-25 Damage likely resulting from too much sonication (> 1min) during lift-off. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 3-26 Incomplete liftoff problems as a result of too much chrome being deposited. Shows 500nm line-widths with 210nm of chrome on quartz. The desired thickness of chrome was 100nm. The PMMA thickness was 250nm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 3-27 SEM of bridging caused by poor profile and photoresist that was too thin for the thickness of metal deposited. . . . . . . . . . . . . . . . . 93 3-28 Illustration of lift-off problems when the metal on top of the photoresist bridges to the metal on the substrate. . . . . . . . . . . . . . . . . . . 94 3-29 SEM showing a wafer after deposition and before lift-off. The images of the 100nm gold particles in the bottom left are given as a reference for im age quality. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 3-30 Micrograph showing a patch of incomplete lift-off due to inspection by the SEM before liftoff to take the image shown in figure 3-29. .... 95 3-31 Test patterns of Cr on Quartz and Cr on PMMA on Quartz. Same sample as shown in figures 3-29 & 3-30. . . . . . . . . . . . . . . . . 95 3-32 Show the change in image contrast before and after the etch has been completed. PMMA was used as a photoresist on top of chrome and quartz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 3-33 SAW test devices mounted to a package, wire-bonded, and soldered to a test P C B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1 Conceptual measurement station transceiver block diagram. 98 . . . . . 100 4-2 Measurement station FPGA and transmitter block diagram. . . . . . 102 4-3 Photo of NECL clock generator (part number PRL-174ANT-1350) and NECL to LVPECL logic level translator (part number PRL-460ANLPD). 103 4-4 Photo of Xilinx ML405 evaluation board........ . . . . . ... 104 4-5 Illustration of signal conversion from digital to RF. . . . . . . . . . . 105 4-6 Photo of analog components from Mini-Circuits@. . . . . . . . . . . . 108 4-7 323MHz antennas made from 16-AWG copper wire and an SMA connector. Used for preliminary isolated indoor tests. 4-8 . . . . . . . . . . 110 RF Network Vector Analyzer test setup for reflectance and impedance measurements............ . . . . . . . . . . . . . . . . . ... 111 4-9 Simple L matching network [3, 4]. . . . . . . . . . . . . . . . . . . . .111 4-10 Measured Smith chart on the RF Network Vector Analyzer of a SAW transponder........... . . . . . . . . . . . . . . . . . . . . . 112 4-11 RF Network Vector Analyzer test setup for Transmittance measurements. 113 4-12 Measured transmission chart of a SAW filter on the RF Network Vector Analyzer. Notice the anti-resonance artifact, which is ignored for this work............. . . . . . . . . . . . . . . . . . . . . . ... 114 4-13 Setup for transient measurements of a SAW filter using an oscilloscope. 114 4-14 Test setup for SAW transponder measurements. . . . . . . . . . . . . 115 4-15 SAW transponder measurements using antennas. . . . . . . . . . . . . 115 4-16 Block diagram of FPGA PowerPC processor configuration. . . . . . . 119 4-17 Top level block diagram of chirp2 VHDL code. . . . . . . . . . . . . . 120 4-18 VHDL code organizational block diagram of the "chirp2" peripheral implementing the rocketIO multi-gigabit-transceiver and support FPGA cores... ............... ... .. . . .. . ....... 4-19 chirp-ui.pl User interface program written in PERL.. .. ... . . ... 121 124 5-1 Drawing of SAW filter device Ox2C9 . . . . . . . . . . . . . . . . . . . 129 5-2 Frequency response from 50MHz to 1GHz. The pass band is at 322.249MH z. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 5-3 Pass-band bandwidth shown as ~ 20MHz . . . . . . . . . . . . . . . 130 5-4 Smith chart before impedance matching circuit. . . . . . . . . . . . . 130 5-5 Smith chart after impedance matching circuit with 27nH and 10pF. . 131 5-6 Internal reflection between two IDTs in device Ox2C9. . . . . . . . . . 131 5-7 Example of inter-finger reflections within a single IDT. . . . . . . . . 132 5-8 Drawing of SAW filter device Ox2E8 . . . . . . . . . . . . . . . . . . . 133 5-9 The sloped frequency response is due to electromagnetic feed-through[5]. 134 5-10 Impulse response of SAW filter Device Ox2E8. The number of cycles has been labeled (1,10,and 20). Channel Z2 is the zoomed view of Channel C 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 5-11 Drawing of SAW filter device OxOe3 . . . . . . . . . . . . . . . . . . . 136 5-12 The four cycle chirp response of device OxOE3. Channel Z3 is the zoomed view of the first reflection on Channel C3. . . . . . . . . . . . 136 B-1 Illustrates the process for making devices by first writing a pattern to a 1mm quartz mask master, then transferring the pattern using contact lithography to a conformal mask, and finally patterning the lithium niobate substrate to make the desired devices. . . . . . . . . . . . . . 196 C-1 OAI deep-UV aligner radiation shield. Made from Standard Cast Acrylic, 0.236inch thick Clear with Bronze Tint, McMaster part numbers. 8505K921, 8505K941, and 8505K951. . . . . . . . . . . . . . . . 206 C-2 OAI 3inch chuck assembly. . . . . . . . . . . . . . . . . . . . . . . . . 214 C-3 OAI 3inch chuck assembly. . . . . . . . . . . . . . . . . . . . . . . . . 215 D-1 Analog test board. Holds SAW test package, low-noise amplifiers, and power regulators...... . . . . . . . . . . . . . . . . . . . . . . . 217 D-2 Closeup of one low-noise amplifier channel. . . . . . . . . . . . . . . . 217 D-3 PCT top-side silkscreen.............. . . . . . . . . D-4 PCB top-side metal layer..... . . . . . . . . . 218 . . . . . . . . . . . . . . 218 List of Tables 1.1 Comparison between widely used localization systems and SAW transpon- der [6, 7, 8, 91. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.1 Steps to convert a file to .kic for use on the VS-26. . . . . . . . . . . 66 3.2 Processing costs and time estimates to process one mask with lift-off. This does not include meteorology......... . . . . . . . .. . 3.3 Suppliers and specifications of substrates used. *Amorphous SiO2 . 4.1 Components used in this project that were purchased from MiniCircuits 67 . 70 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 5.1 Specifications for device 0x2C9 . . . . . . . . 5.2 Specifications for device Ox2E8 . . . . . . . . 133 5.3 Specifications for device OxOE3 . . . . . . . . 135 B.1 Alconox" cleaning procedure. 128 . . . . . . . . . . . . . . . . . . . . . . 189 B.2 Ultrasonic cleaning with Acetone. . . . . . . . ..... . . . . . . . 190 B.3 Piranha cleaning procedure. . . . . . . . . . . . . . . . . . . . . . . . 190 B.4 RCA or standard clean 1 (SC-1) procedure. B.5 Photoresist coating procedure. . . . . . . . . . . . . . . 190 . . . . . . . . . . . . . . . . . . . . . 191 B.6 Exposing using the EML high-resolution MJB3 aligner. . . . . . . . 192 B.7 Exposing using the NSL OAI. . . . . . . . . . . . . . . . . . . . . . . 192 B.8 PMMA development procedure.. . . . . . . . . . . . . . . . . . . 193 B.9 NR7-1000P development procedure. . . . . . . . . . . . . . . . . . . . 193 B.10 Lift-off of PMMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 B.11 Lift-off of NR7-1000P............. . . . . . . . . . . . . . . 194 B. 12 Etching chrome to fabricated a patterned mask..... . . . . . B.13 Process steps for making a conformal mask. . . 195 . . . . . . . . . . . . . . 197 D.1 Parts list for test board. . . . . . . . . . . . . . . . . . . . . . . . 219 Chapter 1 Introduction Unhindered localization of objects is desirable for many applications from human computer interaction to product tracking to security. Many researchers and companies have sited tracking of people with special needs, prisoners, or workers in hazardous situations as useful applications of localization[10]. What this project proposes is the use of Surface Acoustic Wave (SAW) devices engineered in a particular fashion to function as transponders for a distributed radar tracking network. The radar network would track the location of the SAW transponders in 3-d with an update rate on the order of 10kHz with 10cm accuracy. Improvements over these estimations are conceivable in an optimized implementation. A patent application covering the work in this thesis was filed on March 7 th, 2006 under the title "Real-time ranging and angle measurements using Radar and Surface Acoustic Wave Transponders." This thesis covers all of the work completed to date on this project. While ranging results have not yet been obtained, a lot of important progress and experience has been garnered. About two to four months of work remains before initial results are ready. The approach taken for the overall system is covered. The transponder design progress that has been made to date is given as well as future plans for investigation. Micro- CHAPTER 1. INTRODUCTION fabrication of the devices is extensively covered, however processes for 1.1pm linewidths have not yet been attained (we are only two to three weeks from fabrication of working 1.1pm devices). The development of a measurement station is underway. The FPGA programs, firmware, and approach are described in detail. Analog RF circuits have been constructed, and recent results will be discussed. There is some work that was done for this project that will not be discussed and is as follows; An analog time-to-digital converter was designed and built, but is impractical and unsuited for time-of-flight ranging in this project. Analog circuits were built to generate a chirp before the FPGA was available. A low-noise amplifier was designed, analyzed, extensively simulated, and built; the details of this amplifier have been left-out because the design is being debugged. There are two major components of this system; the SAW transponder and the radar measurement station. A SAW transponder reflects a short pulse of received RF energy back to the measurement station as a phase-encoded pattern of data. An arrangement of correlators and impedance-modulated reflectors on the surface of the SAW transponder return encoded data patterns back to the antenna for retransmission to the measurement station. Several published techniques for selection, identification, and encoding of data with the tags will be applied as well as some novel designs. [11, 12, 13] SAW devices were originally developed in the 1960's[5, 14, 15]. Their function is based on the principle of generating surface acoustic waves in a piezoelectric substrate. SAW devices are extensively used as passive narrow-band-pass filters in commercial communications equipment such as cellular telephones. Innovation continues with the use of SAW devices for RF-ID applications[12, 16, 17, 10]. The unique properties of SAW devices theoretically makes them an ideal technology for this novel real-time tracking solution. Radar has been utilized for decades to track a multitude of targets such as aircraft, weather patterns, and cars. Active transponders assist radar identification by responding with an encoded signature. This allows the radar to determine exactly what object is being tracked. Transponders are used in almost all airplanes to aid air traffic controllers in identification [18, 19]. V Antenna measurement station transponders optional measurement stations return (x,,Y,.z,) signals interrogation signal X a Figure 1-1: Notational diagram of three measurement stations tracking a single SAW transponder. Each radar measurement station will measure time-of-flight and/or angle of arrival of the signal returned by the SAW transponder, figure 1-1. Simple triangulation calculations are performed on the data from three or more measurement stations to localize a tag. Only one measurement from all of the measurement stations, either time-of-flight or angle-of-arrival, is necessary to localize. However, using more than the minimum necessary signals will improve accuracy. For the simplified system described in this work, the location of the measurement stations must be fixed and known by the algorithm. Figure 1-2 shows a simplified saw tag with phase encoding used to illustrate the approach we intend to take. The inter-digital transducers (IDTs) convert the electrical CHAPTER 1. INTRODUCTION Figure 1-2: Hypothetical SAW transponder to illustrate the approach taken for identification and common mode rejection. The IDTs are shown with phase-shift encoding. energy into a surface wave (details will be covered in chapter 2). A SAW transponder must be selective to a particular signal, thus the phase encoding. To enhance signal-to-noise and reduce background radar clutter, a built-in delay between the received signal and retransmitted signal must be implemented. A mechanism must also be provided to compensate for effects of temperature on the surface velocity of the SAW device. In this example three different IDTs implement the phase encoding. The codes for this example are very short (five and six bits in length). An actual tag would have up to 128bit code lengths. This particular tag has different receive and transmit codes. The distance between the IDTs builds in a delay between when the radar signal is received and retransmitted. In this case, IDT 1 has been designed to be selected by the radar chirp from the measurement station, while IDTs 2 & 3 do not correlate to this signal. Because the distance between IDT 1 and IDT 2 is different than the distance between IDT 1 and IDT 3, and the propagation speed is the same, the time between them may be used to take out common mode surface velocity variations. ADT -v c received signal 7 r~%, dominant surface signal SAW wave from coded lODT/ ,,~7 ~AWtransponder second transmitted signal first transmitted signal Figure 1-3: Illustrates the signal flow of RF received and transmitted signal and surface waves, along with the effects of the signal processing. The various signal processing at the different places along the transponder are illustrated in figure 1-3. For the following discussion secondary reflections and uncorrelated signals are not accounted for. Chapter 2 will cover secondary reflections as well as other higher-order effects. The signal received by the transponder's antenna from the measurement station in this example is a Barker code[5, 14]. A Barker code correlated by the proper IDT will create a SAW pulse with unity side-lobes. Other codes are generated pseudo-randomly and the simulated and selected for acceptable side-lobe attenuation[14]. In this case only IDT 1 correlates to this received code. IDTs 2 & 3 do not correlate and launch only a small surface wave. When the surface wave launched by IDT 1 reaches IDT 2 & 3 the transponded signal is transmitted as a convolution of the surface wave and the phase encoded IDTs. This waveform is represented below their respective IDTs. In this case the same waveform is transmitted 28 CHAPTER 1. INTRODUCTION by both IDTs, but they may have different encodings if desired. 4- interrogation chirp primary measurement station secondary measurement station time Figure 1-4: Macro illustration of signals received by measurements stations at different locations (not to scale either in time or magnitude). The transmitted and transponded signals may be received by multiple measurement stations. Each additional measurement station would relay the station's position and the time measured from the interrogation chirp to the received signals to the primary measurement station. Figure 1-4 shows the temporal waveforms from two measurement stations. The primary measurement station in this example is further away from the transponder than the secondary measurement station. analog signal a. b digital a. t=ta time Figure 1-5: Digitization scheme for enhanced low-cost identification and timing. Each digital channel, a or b, represents the thresholded receive signal at a particular cutoff. Figure 1-6: Time measurement to peak of the correlated signal. The approach taken to accurately measure the time delay is illustrated with figures 1-5 & 1-6. The waveform will be measured by clipping and digitizing the received signal at high-speed. The digitized waveform will be captured using the multi- gigabit-receiver (covered in section 4.6). In this example, one digitization channel is used to capture data at two times, represented by (a.) and (b.) in figure 1-5. The digitized waveforms are then auto-correlated to the expected waveform as calculated using a SAW transponder model[20]. The correlated output waveform may look like the one presented in figure 1-6. The correlated waveform will have a peak and that time displacement measurement will be used to derive the time-of-fight for triangulation. Pseudo-random transponder codes will be selected for auto-correlated signals that have significant correlated peaks to allow for improved signal-to-noise performance. The time measurements from the different digitized channels will be approximated into one measurement by averaging the results. Of course, what is achievable in practice depends on many factors, some of which are the signal-tonoise ratio of the sampling circuitry, operating environment, multipath effects, and interference of other tags. CHAPTER 1. INTRODUCTION 1.1 Analysis (1340ns) (1005ns) (670ns) a gm station ili ili object tag1 (335ns) Om multi-path (670ns) loom distance(time) 200m Figure 1-7: Illustrates the time-of-flight of the interrogation pulse being returned by a multipath object and a transponder. The following is a simple analysis of the requirements and expected performance of the proposed system. The limiting factors for how fast a tag's position can be read is the maximum distance to a tag and the read-out / read-in time. For a maximum range of 100m, the round trip time for a pulse is 2 - 100m C = 670ns, where c is the speed of light. To allow for background radar clutter to dissipate, a delay is added to the maximum round-trip time. For all signals within 200m to dissipate, we need a total delay of lps before the SAW transponders return the signal. Thus the total delay between the time the radar chirp is transmitted and the return signal is received must be at least 1.3ps. A 32-bit code at 2.4GHz will take 13ns and considering the returned signal is a 64-bit convolved waveform, the total time for both is only 40ns. Using three measurement stations with one transmitting and two listening, a single update can take place in 1.4pis, or at a rate of 700kHz. This is a very impressive 3-d localization rate in terms of available technology. Resolution improvements could be attained by integrating the result over time. The demonstration system will be shifting received data in at a rate of 2.4GHz. Two phase-locked multi-gigabit-transceivers (explained in section 4.6) channels will be used to double the sampling rate, thus satisfying Nyquist to achieve 2.4GHz 1.1. ANALYSIS overall. A very stable clock with 100ppm stability over half an hour drives the receiver, which has no significant effect on range measurements. The peak-to-peak clock jitter is 2 0 ps, which results in an error of 3mm. Given the round-trip time to and from the target is measured, a factor of two advantage is realized. The best achievable range resolution given the hardware available to us would then be: 1 1 f 2.4-109 2c- = 2 - 3.8 - 108 = 6.25cm (1.1) Temperature effects on the surface wave velocity of the transponder is a concern. The properties of LiNbO3 , including temperature dependent effects, will be discussed in more detail in chapter 2. For the purposes of this example, a typical SAW substrate has a characteristic surface velocity of 3992m/s and temperature coefficient of 75ppm/C. Effect due to temperature changes may be compensated for through measurement and calibration. To analyze the performance improvement with temperature measurement compensation consider the dual reflector configuration. The amount of error for the will be calculated first as a comparison for the com- uncompensated design, euncomp, pensated error, ecomp. For the 100m maximum range, a delay of di = 670ns will be required (Refer to figure 1-7). As a starting point, a d 2 = 100ns delay between the temperature measurement dual reflectors will be chosen. Assuming a temperature discrepancy between the measurement station and the SAW transponder to be terror = 10"C(a very conservative estimate), the approximate error in the distance measurement would then be; dv = Vsubterrortcoeff = 3992- =3s 10"C - 75 P (1.2) CHAPTER 1. INTRODUCTION Where Vsub is the substrate surface velocity of 128 LiNbO 3 , and tcoeff is the associated temperature coefficient[5]. With a surface length between the input IDT and the first reflector of 1= d1 Vsub ' (1.3) = 3992m/s - 670ns = 2.7mm lending to a distance measurement error of approximately; euncomp = '* 1d- (Vsub -v - 670ns - = 3 [67 2.7mm (3992m/s - 3m/s) 1 (1.4) = 151mm An error of 15 1mm is decent, and probably much worse than what would be expected under normal conditions. However, such an error would be a significant degradation of achievable performance. As briefly discussed at the beginning of chapter 1, a multi-reflector scheme will be used to determine the temperature of the SAW transponder. Several schemes for using SAW transponders to measure temperature and or compensate for temperature have been developed and implemented by others[21, 22]. By using temperature compensation methods much better results should be attainable. SAW transponders have been demonstrated to measure temperature with a resolution of 0.02"C[21]. With such precise temperature measurements the error due to temperature may be reduced through compensation to; dv = Vsubterrortcoeff =3992 . s = 6 mm s 0.02 0C - 75 0C oC (1.5) 1.1. ANALYSIS lending to a distance measurement error of approximately; ecomp= C. = 3 -108. = 0.3mm - (Vub 670ns 1 dv)] 2.7mm (3992m/s - 6mm/s)_ (1.6) Therefore, with only 0.3mm of error due to temperature effects, they can be safely ignored for the application and design discussed in this thesis. Given we are using a low-cost FPGA to digitize the received signal, measuring temperature will be a problem. By utilizing the fast oscilloscope we will be able to measure the temperature accurately enough to prove the concept. Later more capable receiver electronics will be designed to create a cost-effective independent solution. Another issue with system utilizing RF for tracking is the degradation and spoofing due to multipath[18]. The 2.4GHz carrier frequency is susceptible to multi-path in environments where the transponder does not have line-of-sight to all the measurement stations. The problem of accurate localization becomes one of observability, which is out of the scope of this thesis. There several approaches that would help with mitigating effects of multipath such as positioning or adding measurement stations or implementation of Kalman filtering or estimation techniques[23, 24, 25, 26, 27, 28, 29]. By using the same correlation techniques explained at the beginning of this chapter and in section 2.3, multiple echos due to multipath can be detected and corrected for[19]. Continuing work after the basic goals of this project are met will include implementation and research into algorithms that exploit system state and constraints to mitigate the effects of multipath. CHAPTER 1. INTRODUCTION 1.2 Motivation Probably the most lucrative application for a passive localization system is asset, people, and/or animal tracking. The ability to locate products and possessions in real-time and 3-d will improve security and retrieval of items with significant improvements over existing technologies, such as RFID. Encoding human body motion is an example of a dynamic application which illustrates the utility of 3-d tracking[30]. Traditionally body motion has been recorded with vision instrumented rooms[31], inertial measurement units (IMU)[32], or ultrasonic sensors[33]. A person wearing chip-sized SAW transponders sewn into the wrists, ankles, and joints of their clothing would have their body motion tracked in real-time. Such encoding could be used for a variety of human computer interfaces. Two of the many applications which this system is uniquely suited for include allowing unhindered natural motion in a virtual reality environment, training a robot through intuitive movements, or interactive computer games. Because of their small size, low-cost, and the ability to use numerous tags, SAW transponders are well suited for disposable applications such as tracking animals, for research, or domestic control. An additional benefit of SAW transponders is that they do not requiring external power and their useful life is virtually unlimited and maintenance free. 1.3. RELATED WORK 1.3 Related Work Existing technologies are inadequate for the applications a SAW localization system is suited for. Ultrasonic transponders are bulky, require a power source, and have limited line-of-sight and are susceptible to environmental interference. IMUs are bulky, costly, require a power source, and are limited by drift, bandwidth, and accuracy. A visionbased tracking system requires a carefully controlled environment to ensure line-ofsight and sufficient contrast between the obtrusive visual markers and background objects. Differential GPS systems are bulky, costly, mainly limited to outdoors, and have marginal update rates[34]. The key advantages of SAW based transponders is an unintrusive, robust, and low-cost tracking system with high update rates that can be deployed with thousand of tags. The applications of localizing SAW transponders is broad and poorly met by existing solutions. Many commercial indoor location and tracking systems have been implemented or are in development. Chipcon has developed a hardware core that uses signal strength and bit-error-rate to estimate the relative location of transceivers [35, 34]. A system of using small active tags was developed by Carios for the use of tracking objects at high-speed, such as soccer balls. An asset tracking system was developed by Ubisense utilizing ultra-wide-band technology[36]. All of these systems have one thing in common, bulky active tags, a major disadvantage in comparison to the passive SAW transponders. Meaningful quantitative comparisons between the mentioned technologies is difficult as there are many application specific trade-offs which affect performance. A few of the inherent trade-offs are between accuracy, power, cost, update rate, and effective range. For simplicity, many assumptions were made while compiling the data shown in figure 1.1[31]. The best performance as stated from the vendor's documentation sheet was assumed. Minimal external interference under the best conditions were CHAPTER 1. INTRODUCTION uTags Differential GPS Vision Ultrasonic Radar 1x1 cm < 2g $1.00 $5k < 10cm 1-100kHz 0 1-100m 16x9x17 cm 1.4kg $lk-$10k NA < 5cm(xy), < 10cm(z) 1-20Hz 5W NA 4x4 cm <i $0.30 ~ $10k < 2cm 30-60Hz 0 1-10m 5x5x5 cm ~ 100g ~ $100.00 NA < 1c, ~ 120Hz 200mW 1-10m NA NA NA $2k+ meters 1Hz 0 miles Yes Yes no Yes Yes In/Out In/Out In In/Out Out Chipcon Carios Ubisense varies varies unknown unknown 2x2x0.5 cm 5g est. 57 EUR 200k EUR 5.8x9.2x1 cm 45g 50 EUR 15k EUR Resolution 1 - 2m 1 - 2cm 20cm Sample Rate Power/Tag Range ID In/Out Doors varies 100mW 70m Yes In/Out 100kHz 70mW-175mW 300m Yes In/Out 39Hz unknown 50m Yes In/Out I Tag Size Tag Weight Cost/Tag Reader Cost Resolution Sample Rate Power/Tag Range ID In/Out Doors Tag Size Tag Weight Cost/Tag Reader Cost Table 1.1: Comparison between widely used localization systems and SAW transponder [6, 7, 8, 9]. implied on some data sheets, and nominal specifications were given by other data sheets. A comprehensive comparison is out of the scope of this thesis, however table 1.1 illustrates how SAW transponders are uniquely suited for a niche which existing technologies do not fill. Design and fabrication of SAW filters and correlators has been extensively researched. The uses of SAW devices is expanding in the area of chemical sensing, optics, and RFID applications[13, 37, 38]. SAW devices are emerging in such novel uses as an optical wave-guide scanning system to steer a laser beam using the birefringent properties of LiNbO 3 [39]. Shortly after this project was started companies producing SAW devices for RFID application started to appear[17, 40]. The market 1.3. RELATED WORK 37 for utilizing SAW RFID technology is relatively untapped, probably for several reason including the amount invested in other RFID technologies, recent developments in SAW designs, and the prior difficulty in manufacturing and reading SAW devices in comparison to other technologies. A search of the literature has not yielded any projects relating SAW transponders to ranging and localization similar to the goals and methods of this project. 38 CHAPTER 1. INTRODUCTION Chapter 2 Surface Acoustic Wave Devices This chapter covers the basic concept of SAW functionality, the approach taken to model these devices for this project, and an explanation of the device designs implemented on masks 1 through 3. The approach taken to tackle the complexity of this project was to iterate on design, modeling, fabrication, and testing of SAW devices. Simple models that were used in the beginning will become more sophisticated and accurate with each iteration. Using real test data at each step will verify our increasingly sophisticated models and designs, as well as progressively build experience with fabrication, electronics, and design. Existing methods for encoding data into the SAW transponders will also be experimented with, but are not the primary focus of this project. Acoustic surface waves are a physical, as opposed to electromagnetic, compression disturbance moving along the surface of a substrate. Visualizing waves on the surface of a SAW device as ripples on a pond can be helpful with understanding the transient operation of these devices. Surface waves can be initiated in many ways depending on the substrate. The SAW devices in this project consists of a piezoelectric substrate patterned with a thin film of aluminum. When electrical signals are applied to the CHAPTER 2. SURFACE ACOUSTIC WAVE DEVICES metal on surface of the piezoelectric substrate, the electric field causes a physical disturbance. A cyclical electrical field causes ripples to be generated. To magnify the response, many input features are actuated in resonance for constructive interference of the waves[5]. The SAW transponders in this project consists of a piezoelectric substrate patterned with a thin film of aluminum. Any type of conductive metal can be used to make the IDT, however there is a trade-off between adhesion, resistance, and weight. Some metals have poor adhesion to LiNbO3 . Even though they are very thin (~ 200nm), the weight of the metal fingers causes signal attenuation and reflections. Aluminum was chosen for reasonable adhesion to LiNbO3 , low mass, and low resistivity. substrate reflectors bond pad input IDT Figure 2-1: Simplified diagram of basic SAW transponder functional components[1]. A notational diagram of the patterning used for a simplified SAW transponder is shown in figure 2-1. An antenna is connected to the bond-pads which couples the RF chirp into the transponder. The inter-digital transducer (IDT) is a linear array of metal fingers which change incident electrical energy from the bond-pads into a surface acoustic wave on the piezoelectric substrate. This wave travels along at a slow velocity (in comparison to RF) until reflecting off discontinuities on the path of travel such as metallic strips of reflectors. The reflected signals return to the IDT and are retransmitted via the antenna to the base-station. The gap between the IDT and the first reflector builds in a delay between the incident RF burst to the first reflector, which allows multi-path clutter to diminish before a rebroadcast, ensuring the base station receives a clear signal from the SAW transponder [13, 5, 14]. Anytime the surface wave encounters a discontinuity, three things may happen. Some of the energy in the wave may be reflected, continue on unaffected, or be dissipated. Any pattern of material may cause a disturbance or transformation of surface waves traveling underneath. Every finger in an IDT or reflector will reflect some of an incident wave. These reflected waves will then interact with other fingers to repeat the process until all of the energy has been dissipated. Secondary reflections can be a significant problem and pose a design challenge by ruining the desired response, or they may be exploited as part of the design. Clever designs of SAW patterns allows sophisticated signal processing of the surface wave. Proper design of the patterns will even cause the substrate to steer light[39]. As well as being periodically resonant, SAW patterns are also designed to resonate to a specific sequence of patterns, as in the case of SAW correlators[5, 14]. RF wave inmatch surface wave out RF wave in time positio ie/p Figure 2-2: Saw correlator with corresponding code and output pulse waveform. "time / position"is the waveform over time at a single point between IDTs, or the waveform over position between IDTs at a particular time. The design of phase-shift SAW correlators involves alternating the arrangement of the IDT finger pairs. Figure 2-2 shows a SAW correlator IDT with the respective matching waveform. As the waveform enters the IDT, at each cycle each finger CHAPTER 2. SURFACE ACOUSTIC WAVE DEVICES pair starts a wave of a certain polarity. These waves constructively or destructively interact. With the proper input waveform, the total sum of the waves interfering with each other will give the maximum response, which is launched along the surface towards another IDT or reflector. The "RF wave in match" in figure 2-2 illustrates how the input waveform matches to the IDT's finger pair polarity. In this example the correlated sequence is a Barker code which results in a pulse surface wave with side lobes of unity magnitude[14, 5]. Design and simulation of SAW correlators will be covered in is sections 2.2 & 2.3. 2.1 Properties of Lithium Niobate The design of the SAW devices in this project is limited by the properties of LiNbO3. Lithium niobate was chosen for several reasons. The high coupling-coefficient, or the amount of electrical energy transfered to the surface wave, of LiNbO3 is much better than many other suitable materials[5, 2]. LiNbO3 also has a relatively high characteristic surface wave velocity. Faster surface velocities enables higher frequency devices to have larger metal patterns, making fabrication easier. +z ' I28drection of propaaton +y. Figure 2-3: Illustration of the crystal cut of a 128*-RY wafer[2], with an X-Flat, from Crystal Technologies Inc. The crystalline structures of LiNbO3 , constrains the surface waves to move along a particular direction. Varying the orientation of the crystalline structure with respect 2.2. MODELING Y0* direction of propagation +Z +y. Figure 2-4: Illustration of the crystal cut of a Y wafer [2], with a Z-Flat, from Crystal Technologies Inc. to the surface of the wafer changes the properties of substrate. Some of the properties affected by the crystalline orientation are the surface velocity, coupling coefficient, and temperature dependency [14, 41, 2]. The 128*-RY lithium niobate wafer cut has the best coupling coefficient (K 2 = 5.3%) and surface velocity (3992m/s) with a decent temperature degradation coefficient (75ppm/*C). All of the devices discussed in this thesis were made with 128*-RY wafers, though devices were also fabricated out of Y-cut wafers. The effects of temperature on the surface velocity of LiNbO3 SAW devices has been well characterized[5]. Changes in temperature cause a shift in the band-pass SAW center frequencies of a SAW filter[14, 5]. Most implementations appear to safely ignore temperature effects. In cases where the surface velocity is critical, some designs use a heater to control temperature[14]. Some transducers exploit the temperature dependence of lithium niobate to measure temperature[2 1]. For this project, subtracting out the effects of temperature on the ranging solution will be important. 2.2 Modeling Accurately modeling a SAW device's response to stimulus is very complicated. Higher order finger reflections are usually modeled using finite-element-analysis (FEA) or CHAPTER 2. SURFACE ACOUSTIC WAVE DEVICES boundary-element-analysis (BEA). Several methods of modeling finger pairs in FEA or BEA exist, such the P-Matrix, S-Matrix, coupling-of-modes (COM) modeling methods[5]. FEA and BEA are both computational intensive, time consuming, and not particularly intuitive. Intuition into the operation of SAW devices is essential for understanding the effects of design choices. The design of more complicated implementations lead to longer simulations, making visualizing SAW responses even more important. A simple method of simulation was explored to quickly obtain some experience with the macro characteristics of SAW behavior. The approach taken estimates the loss in power resulting from first-order finger reflections given the initial acoustic waveform. The resulting surface waves are then convolved with the output IDT to simulate the electrical output generated by the surface waves. absorption block 200pmr input IDT output IDT Figure 2-5: SAW filter made with mask 1. Device Ox2C9, 25 finger pairs that are 200pm long. A simple example illustrating simplified modeling is shown in figures 2-6. This is the simulated impulse response through a SAW filter as designed and implemented on mask 1, which is shown in figure 2-5. The surface wave response is modeled by a sine wave in which each finger pair corresponds to one cycle. The magnitude of the surface wave, at any given point between the two IDTs, decreases with time because of reflection caused by the input IDT fingers. Another way to visualize this is that at the moment the impulse couples into the IDT there is a surface wave generated 45 2.2. MODELING Electrical output at second IDT Input generated surface acoustic wave 0.8 0.8 0.6 0.6 0.4 0.4 00 (D = E 0 N -0.2 - CU E -0.4 C 0.2 - 0.2 E CU -0.2 E -0.4 , C 0 -0.6, -0.6 -0.8' -0.8 0 20 40 ns 60 80 0 50 ns 100 150 Figure 2-6: MATLAB" simulation of the normalized impulse response of a 323MHz SAW band-pass filter shown if figure 2-5. that spans the IDT with no attenuation of signal. This surface wave travels out from each IDT finger pair in both directions, and anytime an individual cycle encounters a finger some of the energy is lost due to reflection and absorption. As the surface wave couples into the output IDT, further attenuation occurs due to reflections. By convolving the two waveforms resulting from the geometry of the input and output IDTs, the electrical signal at the output can be estimated as shown to the right in m figure 2-6. The code used to generate this simulation is given in MATLAB appendix F. An oscilloscope trace from the actual device corresponding to this simulation is shown in figure 2-7. The test setup and data collection procedures are detailed in section 4.4. The first 25 cycles correspond very closely to the simulation, because only first order effects of finger reflections are dominant. As the surface wave moves further across the output IDT the secondary reflection start to have a visible impact, which is why the tail end of the test data deviates from the simulated output. Reflections will continue to bounce back and forth between the two IDTs, and internal IDT fingers, until all the surface waves have dissipated. This effect, shown in section 5.1, is also CHAPTER 2. SURFACE ACOUSTIC WAVE DEVICES MATLAB 1 : MATLAB source for simulation in figure 2-6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 % Simple simulation of the impulse or 25 % of a response 50 fingers % finger pairs , saw filter f = 323e6; % frequency = 323 MHz w = 2*pi*f; % omega p = 1/f; % period pairs fingerPs = 25 % number of finger % time step is 100ps t = 0:100e-12: fingerPs*p; % model input pulse in-p = (1-t*f/40).*sin(w*t); % normalize in-p = in-p./max(in-p); pulse % model output out-p = conv(in-p , in-p); % normalize out-p = out-p./max(max(out-p),-min(outp )); not covered by this model. The purpose of the higher order models is to take into account multiple finger reflections. 2.2. MODELING Measuwe vake status PI:freq(C2) 318.1 MHz A P2:freq(C3) P3:ddely(C2,... 1.853 GHz A P4;freq(C2) 318.1 MHz A PS:--- PS:--- P7:- - - X1- 37.95trs AX- -lR85lns -79.90ns -1/&X= -. 485 MHz X2- P8:-- - Figure 2-7: Result of an impulse through device 0x209 as recorded on an oscilloscope. CHAPTER 2. SURFACE ACOUSTIC WAVE DEVICES 2.3 Design Only a simplified number of design parameters were specified for the first devices. The center frequency of the mask 1 designs was primary specification. The complete frequency response has been ignored for simplicity. bond-pad width line-width bond-pad height length apodization rail width pitch Figure 2-8: Parameters for the design of a SAW IDT in this project. Figure 2-8 summarizes the basic parameters for the devices on mask 1. The finger pitch along with the characteristic surface velocity determines the resonant frequency of the IDT. V AV(2.1) 2 -p where v is the characteristic surface wave velocity, A is the surface wave-length, and f is the center frequency[5]. For the devices with 3pum line-widths, and a pitch of 6pm on a 128 0-RY crystal cut with a surface velocity of 3992m/s, the center frequency is 332MHz. This differs from the measured center frequency response of 323MHz, which may be due to secondary effects such as electromagnetic feedthrough, triple-transit-interference, capacitive effects of the fingers, or the RF-Network Vector Analyzer that we were 2.3. DESIGN using was out of calibration (the calibration was last done over ten years ago). More investigation into the discrepancy is underway. Apodization, or the amount of finger overlap, may be varied to evoke a certain response from a SAW filter. For example a sinc-function apodization of the IDT will yield a flat pass-band response. The simple filter devices on mask 1 had constant apodization. The number of finger pairs and length of the apodization determines the input capacitance of the IDT. Capacitance per unit length is a fundamental property of the particular substrate and crystal cut used. For 128 0-RY cut lithium niobate, the capacitance per finger pair per unit length is 5pF/cm/finger-pair.Therefore: Ct = cf - 100(cm/m) - a, - f, (2.2) Where C is the total IDT capacitance, cf is the fundamental capacitance per finger pair per unit length, a, is the apodization in meters, and f, is the number of finger pairs. For device Ox2C9 detailed in section 5.1, a, = 200pm, cf = 5pF/cm/pairs,and f, = 25 resulting in a Ct of 2.39pF, which is close to the measured input capacitance of 2.13pF. The bond pads were made large enough for easy wire-bonding. They were much larger than necessary in an attempt to mitigate the problems caused by the thin metal and fragile substrate. The width of the rails only needs to be wide enough to ensure the signal is not attenuated substantially due to their internal resistance. An absorption block, see figure 2-5, stops unwanted signals from reflecting back towards the IDT. The 200pm width chosen was arbitrary for this design. Future designs will use angled reflectors that won't take up as much device area[14]. Three different reflectors for encoding of the return signature were tried on mask 1, shown in figure 2-9. The "open" reflector had the largest return response of the CHAPTER 2. SURFACE ACOUSTIC WAVE DEVICES open short interleaved Figure 2-9: The three types of SAW reflectors were implemented on mask 1. three designs and was the only design to return a significant signal. Not much time was taken to characterize the different reflectors for lack of equipment and because fabricating the 915MHz devices became the priority. SAW correlators are extensively used in SAW filter and communications applications [11, 12, 13, 5]. Implementation of SAW correlators for encoding was one of the goals of mask 2 & 3. Several 915MHz narrow-band and wide-band correlator designs were made, with three of them explained here. To keep this stage of the project as uncomplicated as possible, secondary effects, such as reflections, have been ignored in the following examples and corresponding simulations. Secondary effects will need to be account for in future designs. The Matlab M scripts used to generate the simulation for the following are located in appending F. input IDT output IDT 1 1 1 0 1 Figure 2-10: Narrow-band output correlator with n = 5 Barker code illustration. A narrow-band correlator consists of a tightly packed set of IDT fingers for a continuous code. To encode '0' or '1', the phase of the finger is reversed from one to 2.3. DESIGN Figure 2-11: Narrow-band output trace for figure 2-10. another (see the digits under the finger pairs of output IDT in figure 2-10). When the proper code couples into the input IDT, the resulting SAW waveform will create a peaked waveform at the output. Multiple finger-pairs may be used to implement the encoding which increases the total amount of energy in the signals and increases signal peaking. A simplified narrow-band SAW configuration is shown in figure 2-10 with a Barker code of length five encoding. The proper code received by the input IDT will result in the signal shown in figure 2-11 at the output. Notice the continuous nature of the output waveform. CHAPTER 2. SURFACE ACOUSTIC WAVE DEVICES input IDT I 4-- output IDT Figure 2-12: Narrow-band output correlator with code [1, 1, 1, 0, 1, 1, 1, 1, 1, 1] utilizing one finger-pair encoding. Figure 2-13: Narrow-band correlator response for device fabricated on mask 3, shown in figure 2-12. Generated with nb.m in appendix F. Figure 2-12 shows a design for a narrow-band SAW correlator on mask 1. This devices has a code that is different from the Barker sets of codes, resulting in a unique signature to the optimal interrogation code. The expected output is shown in figure 2-13. 2.3. DESIGN output IDT input IDT II|1| | | | Figure 2-14: Wide-band output correlator illustration with n = 5 Barker code with two finger-pair encoding. Figure 2-15: Wide-band output trace for figure 2-14. A wide-band correlator differs from a narrow-band correlator by interspersing the phase encoded signal with a delay based on the number of fingers at the input. When the set of delayed pulses matches the output code the output waveform peaks, as shown in figure 2-14. - M111 I CHAPTER 2. SURFACE ACOUSTIC WAVE DEVICES input IDT output IDT Figure 2-16: Wide-band output correlator. jwl q"qr- i T Ah. "Iqw- Figure 2-17: Wide-band correlator response for device fabricated on mask 3, shown in figure 2-16. Generated with wb.m in appendix F. Figure 2-16 shows the layout of a wide-band SAW correlator on mask 3. The five finger input does not have an encoding. The output encoding is implemented in the output IDT. A Barker code of length five was used, which with the correct input sequence gives the output waveform in figure 2-17. 2.3. DESIGN input IDT output IDTs Figure 2-18: Dual narrow-band transponder with a Barker code of length five with a five finger encoding. rx signal first response 0 rn second response 400ns Figure 2-19: Dual narrow-band transponder's simulated waveform. The "rx signal" was transmitted by the measurement station and is what the input IDT sees. The 'first response" and "second response" are the waveforms from each output IDT. Measuring and compensating for temperature will be tried with the design in figure 2-18. This dual narrow-band transponder has three IDTs which will give two distinct responses as explained by the example in chapter 1. An actual implementation would have all three IDTs connected to the same antenna. They were left disconnected in this design to allow independent testing of each port. Figure 2-19 shows the expected waveform when the correct code sequence is received by the input IDT and probed at the output IDTs. The phase relationship and the distance between the two responses I CHAPTER 2. SURFACE ACOUSTIC WAVE DEVICES 56 will be proportional to the temperature of the substrate. rxsignal 0 first response second response 400ns Figure 2-20: Simulation including the effect of surface waves originating from the output IDTs of the transponder shown in figure 2-18. Figure 2-19 does not contain the effects of the initial input signal coupling into the output IDTs in the configuration where all IDTs are connected to the same source / antenna. When the input IDTs and output IDTs are connected to a common antenna (typical for a self-contained transponder), the output IDTs also generate a signal from the output to the input IDT. This signal combine with the signals originating from the input IDT to create the slightly distorted waveform shown in figure 2-20. In the future, designs we will exploit the ability to use all three IDTs as input and output transducers, to both increase the returned power and enhance encoding and temperature compensation. Chapter 3 Micro-Fabrication Fabricating devices with feature sizes in the rage of micrometers to nanometers requires specialized sciences, engineering, and a significant degree of art. High- resolution processing is carried out in a clean-room facility with a variety of chemical processing and meteorology tools. The path generally taken to constructing nanostructures as created in this project starts with design and layout of artwork describing the desired features with a CAD tool. A scanning-electron-beam-lithography (SEBL) tool then writes this CAD artwork into a photoresist on a wafer. The wafer may be the final substrate or an optical mask used to duplicate the artwork onto the desired substrate. The photoresist is then developed with a chemical solution to remove areas of photoresist. The substrate now contains a transfered pattern of exposed material onto which more material (i.e. metal, oxide) may be deposited or removed. After the deposition or etching step, the remaining photoresist is stripped from the wafer leaving the desired features. When the devices are completed, they are cut up into small rectangles, mounted to packages, and electrical leads are wirebonded from pins on the package to pads on a device. Also note that nanofabrication may be carried out with processes other than lithography, such as nanoimprint and CHAPTER 3. MICRO-FABRICATION atomic force patterning technologies, which use physical means to transfer a pattern [42, 43]. There are many emerging methods and applications of nanotechnology being developed on a variety of novel custom fabrication tools at MIT. The use of shared experimental fabrication tools, as opposed to commercial production tools, made developing a processes much more difficult. Many of the tools required a significant amount of experimentation to yield the desired results. Adding to existing chal- lenges, some of the tools would behave differently after other lab users processed with them. Many factors and a array of processing variables made fabricating working devices a daunting challenge. As with most research projects, costs vary widely and are difficult to project ahead of time without significant experience. For this type of work a typical budget runs between $7000 and $8000 USD per semester. This project was my first exposure to micro-fabrication, and I have learned an enormous amount about the field. Topics in this chapter aim to explain all the challenging problems and their solutions, as well as all the process details that went into fabricating these devices necessary to reproduce this work. The devices in this project were fabricated utilizing the resources of several MIT micro-fabrication facilities. The Nanostructures Laboratory (NSL), directed by Professor Henry Smith and Professor Karl Berggren, provided the high-resolution nanolithography tools necessary to created the 915MHz and 2.4GHz transponders. The Research Laboratory of Electronics (RLE) provided the shared scanning-electronbeam-lithography facility (SEBL at RLE) to write the high-resolution lithography masks. The Microsystems Technologies Laboratory (MTL) provided the Experimental Micro-fabrication Laboratory (EML), where the 3pLm devices were fabricated. Fabrication started in the EML because of the ease of access and reduced cost while meeting our initial resolution requirements. A wide variety of experimental micro-fabrication projects are supported by EML, where the research of over a hundred students is underway. EML is an excellent laboratory to inexpensively develop processes that don't require a high-degree of cleanliness and have feature sizes greater than ~ 2[m . Another advantage of EML is that more latitude is allowed for new processing methods and materials. The tools in EML utilized by this project were an electron-beam vapor deposition tool, the solvent and acid hoods, a resist coater, a profilometer, microscopes, and a mask aligning and exposure tool. NSL is a community of researchers and students who emphasize collaboration and mentoring, which were invaluable to the progress of this project. The Nanostructures Laboratory is a cleaner cleanroom that provides the specialized lithography tools needed to achieve 1. 1pm and 300nm feature sizes. A cleaner laboratory was critical for conformable vacuum-mask lithography, covered in detail in section 3.4. Conformable vacuum mask lithography was a more cost effective method of making many duplicate devices with line-widths as small as 300nm[42]. A plasma asher and ellipsometer were also utilized in addition to all of the same tools used in EML. Devices with line-widths of 300nm were required for operation in the 2.4GHz Instrumentation-Scientific-and-Medical (ISM') frequency band. As a starting point, 323MHz devices with 3pm line-widths were made first for two reasons. Firstly, 3pm was the minimum resolution reasonably achievable using tools in EML. 3[tm mask fabrication is also considerable less difficult and less expensive than 300nm masks fabrication. Many more devices may be patterned on a single 3pm mask at no extra cost. Experienced gleaned in learning the 3pm fabrication and testing processes directly transfer to the more difficult fabrication and testing processes of the 1.1pm and 300nm. Wafers were handled from tool to tool with several different types of specialized isee FCC regulation 18.301 I CHAPTER 3. MICRO-FABRICATION tweeters. The fragile wafers required a certain degree of skill to handle without breaking them. Wafer were stored in individual and 25-wafer plastic carriers. Die were put into sticky-gel containers 2 clean wafer develop coat pattern photoresist deposit metal lift-off Figure 3-1: Simplified one-step lift-off process. The SAW devices were made using a typical micro-fabrication one-step lift-off process. Refer to figure 3-1. A wafer coated with a photoresist is patterned with a mask and then developed to remove the exposed positive photoresist, covered in section 3.4.1. Then a thin layer of metal is deposited over the whole wafer using electron-beam vapor deposition. The wafer is then immersed in a solution to remove the photoresist and metal overlay from the surface. The remaining metal pattern forms the desired features. A chemical wet-etch is another standard fabrication process that was used to make masks. In the wet etch process that was implemented, a layer of metal was deposited on the wafer before the photoresist. See figure 3-2. The photoresist is then patterned and developed in the same manner as in the lift-off processes. The wafer is then submerged in a liquid chemical etchant to remove the exposed metal. The wet-etch 2 Wafer containers were purchased from MTI corporation http://www.mtixtl. com/ Figure 3-2: Simplified wet-etch process. step, in some cases, can be much easier to implement than a lift-off depending on various factors and requirements. To create working devices from a new design "always" requires iteration of the design, fabrication, and testing/evaluation tasks. At best, development of a fabrication process is a difficult and tedious task, much of which is skillful trial and error. A process designer not only relies on a vast collection of knowledge resources, but also ingenuity is essential for success. To design a fabrication process, one must choose values for a dizzying list of parameters that often do not have precisely determined specifications. Process parameters vary greatly with luck, time, temperature, humidity, and the chemicals used. Even minute particulate contamination will ruin a device or process step; thus success depends on cleanliness. The challenges of constructing CHAPTER 3. MICRO-FABRICATION small structures is difficult not only because of the inherent physical limitations, but the laboratory skill required by a student to implement a process. The substrate used for SAW devices, LiNbO3 , caused many additional problems. LiNbO3 is particularly fragile and inherent piezoelectric properties caused degradation of masks and adhesion problems. The challenges to developing a robust process with repeatable results yielding reliable devices are significant. 3.1 Mask Design and Layout The lithography process often makes use of a mask, a piece of glass patterned with metal defining the structure of the devices[42, 43]. The metal blocks the light causing only illuminated parts of the photoresist to be exposed. Different mask substrates are commonly used such as Soda-lime (commonly called glass), which is amorphous SiO2 with various additives. Pure, or nearly pure, SiO2 is also used as a mask substrates. The proper mask substrate must be chosen to match the wavelength of light emitted by aligner source. For example, soda-lime blocks almost all light with wavelengths less than 300nm and thus can not be used for 220nm deep-UV wavelengths. Pure SiO 2 , which will transmit nearly all light with wavelengths above 200nm 4 , is used for deep-UV lithography. The first mask layout was drawn using the open-source software package MAGIC. The device geometries and parameters were chosen based on what I thought would be reasonably easy to design and fabricate given a broad survey of the literature in the field of SAW devices. The goal was to make as many different devices as possible 3SiO masks are often referred to by the semiconductor industry as "Quartz masks." However, 2 these substrates are not crystalline SiO2 "Quartz," which can be confusing because crystalline SiO2 "Quartz" is used in SAW device fabrication. 4 Further information may be found at http://www.nanof ilm.com/SubstateMaterial.PDF. 5MAGIC was originally developed by the University of California at Berkley. Additional infor- mation can be found at http://opencircuitdesign. com/magic/. MASK DESIGN AND LAYOUT 3.1. because the number of devices does not effect the cost of the mask, By automating the drawing of these devices using MAGIC's built-in TCL language6 773 different designs with various parameters where able to be put on a single mask. The TCL scripts used to generate the mask 1 artwork are located in appendix A.1. Simplicity was the driving factor of our first designs because I had no experience with the analysis, fabrication, or testing of SAW devices. 70mm die cutout _________t_____ reflective devices , P-mg- alignment marks - - - dual-port I filter devices title block Figure 3-3: Artwork for mask 1 showing a die section. bond pads device ID reflectors test features Figure 3-4: Typical layout of a device on Mask 1. The artwork for the final mask is shown in figure 3-3. Each device includes two absorption blocks, which attenuate surface wave reflections, and a set of test structures, which are used to determine exposure and developing parameters. The resolution was 6 TCL is a versatile open-source scripting language often chosen for simplicity. CHAPTER 3. MICRO-FABRICATION limited by how well the mask would contact the substrate using the EML aligner. The hard-contact mechanism on the EML aligner would, with some major difficulty, achieve contact sufficient for 1 - 3pm line-widths. Mask 1 was made of a 100mm square, 2.29mm thick, soda-lime plate with a chrome coating. This mask would fit in the EML aligner, cover a 77mm LiNbO3 wafer, and be compatible with the A = 365nm light source. The mask artwork filled a 70x70mm square at the center of the mask. A defect criteria was specified to the vendor as "zero defects greater than 5pum and less than one defect per square inch." Tolerances of ±500nm were specified for line-widths and geometries. These specifications were decided though discussions with the mask vendor 7 and based primarily on our budget and the desired geometry of our devices. There are a variety of file formats supported by CAD tools and accepted by mask vendors. This design was submitted in a GDS2 file format and the order was placed March 1 5 th, 2006 and cost $575.00. A lot was learned though the problems encountered by using this first mask. Alignment of the devices to the crystal orientation of the LiNbO3 wafer was problematic. The alignment flat on the wafer must be oriented to the devices using a microscope built into the aligner. To do the alignment, the substrate wafer needed to be shifted to the edge of the substrate chuck, while the mask was shifted to the limits of the microscope's xy-travel. The result of this shifting was that many of the devices on the side towards the wafer flat were unusable. In fact, all of the devices within a half inch of the wafer's edge were unusable due to downstream tool limitations and handling. Another problem was that the devices were not arranged into small squares that could be cut up into ~ 5x5mm die, the size which fits the test packages. In hindsight a less expensive 77mm mask with fewer devices and proper layout would have been equally as productive as this 100mm mask. The original reason for elim7 The masks were purchased from Advance Reproductions Corporation, 100 Flagship Drive, North Andover, Massachusetts 01845, http: //www. advancerepro. com. 3.1. MASK DESIGN AND LAYOUT 65 inating the area required to allow for partitioning the mask into die was that more room would be left for additional devices. Unfortunately, finding the desired devices and setting up the die-saw to cut out the correct area was very problematic. The second series of masks, none of which were successfully made, incorporated both higher frequency and phase-shift encoded devices. See figure 3-5. The designs on these masks had line-widths of 300nm and 1.lpm, which yield a center frequency of 915MHz and 2.4GHz. See section 2.3. Fabrication of these devices proved to be very difficult and time consuming because of their small features. These designs where drawn using another open-source software tool, layout'. layout was much easier to use than MA GIC and also provided a useful macro language. Macros were created to automate generation of devices using both layout's built in macro language and PERL 9 . The macro source code is provided in appendix A.2. devices die outline marks ._"_ m lithography 4.2mm exposure test features Figure 3-5: Artwork for mask 2. This mask was designed with a bond pad layer, and a device layer. The device 8 http://ayout.sourceforge.net 9 Practical Extraction and Reporting Language. A very popular, well established, open-source, and full featured scripting language. CHAPTER 3. MICRO-FABRICATION 1. export from layout in a single sell as a . cif file. Ensure layer names are less than four characters in length. 2. Remove duplicate layers with perl script. 3. run ciftokic. output is the name of the first layer. 4. Adjust number of kic units per pm in nanowriter . Table 3.1: Steps to convert a file to .kic for use on the VS-26. line-widths were small enough that they had to be written with the high-resolution VS-26 Scanning Electron-Beam Lithography (SEBL) tool. Higher-resolution requires lower power and a narrower electron beam, which causes the write time increase. By placing the bond-pads on a separate layer, they could be written much faster at a lower resolution, saving time and money. To ensure the bond-pads were connected to the devices between the two writes, as precise alignment can be a problem, some overlap between the layers was added to the design. Two methods of fabricating these masks were tried. marginal results, discussed in detail later in this chapter. Lift-off was used with The complete process is detailed in Appendix ?? and ??. In summary, ~ 120nm of PMMA 10 was deposited on a clean quartz wafer. A thin film of 7nm of Chromium was then evaporated onto the surface of the PMMA to shield the magnetic lens from electric fields during the SEBL write. See section 3.4.5. The artwork as then written to the wafer using a VS-26" SEBL tool. Alignment of the artwork to the wafer flat was important to ensure the devices would be aligned to the lithium-niobate crystal structure. The Chromium was then etched off and the PMMA developed using a dilution of one part MIBK to two parts Isopropyl alcohol, followed by a descum to remove resid- 0 PMMA is a very high-resolution positive photoresist from MicroChem Inc. www microchem. com "Operated by Mark Mondol at the Research Laboratory for Electronics at MIT. 12 MIBK (methyl isobutyl ketone) or (4-Methyl 2-Pentanone) available from AlfaAesar PN#A1 1618 3.1. MASK DESIGN AND LAYOUT uals. 40nm of Chromium was then deposited by evaporation to make the actual mask features[44, 45]. The 40nm thickness of was chosen for the 17dB of attenuation provided at 220nm deep-UV light, which is sufficient for exposure of PMMA photoresist[44]. Unwanted Chromium was then removed via lift-off by striping the remaining PMMA with NMP 13 , finishing the process and leaving the desired mask. A wet-etch mask making process simplifies the number of fabrication steps. Masks made by wet-etch using SEBL were dark-field masks, and could be used to directly pattern to the LiNbO3 substrate using the positive photoresist PMMA. First the mask was coated with 40nm of chrome. An 80nm of PMMA photoresist was deposited on top of the chrome. Only a thin layer of PMMA was necessary to mask the chrome from the etchant. The mask was submerged in the etchant after the mask was written and developed. More details on etching are provided in section 3.7. Cost Task Time Coat & Bake Evaporate Cr Write Pattern (SEBL) Strip Cr & Develop Evaporate Cr Lift-off Total 1hr $80.00 30min $40.00 2hr $160.00 $40.00 30min $40.00 30min $40.00 30min 5hr $400.00 Table 3.2: Processing costs and time estimates to process one mask with lift-off. This does not include meteorology. The reason we made these masks in-house was two fold. Commercially made masks with line-widths smaller than 1pm would have been very expensive, in the $1, 500.00 range. Also, by making the lithography masks at the NSL we were able to afford flexibility in testing different transponder designs more economically. The unprocessed clean quartz mask wafers cost ~ $50.00/ea.. The bulk of the cost goes 13 NMP (1-methyl 2-pyrrolidinone) CHAPTER 3. MICRO-FABRICATION into processing the mask wafer to pattern the devices. die outline and alignment marks bond pads and leads U ju1t 4.2mm Figure 3-6: Artwork for mask 3 version 2. Bond-pads and leads are on a different layer than the devices. The third mask was designed to eliminate the bond-pads and 100pm die boundary marking squares to save valuable and expensive SEBL machine time. Instead the large bond-pads would be added later in a separate step using a cheaply printed transparency film 14 . An added advantage is that the bond-pads will have a thicker layer of metal deposited making them more robust. Mask 3 version 3, shown in figure 3-7 was written with a different SEBL tool, the Raith-150. The Raith-150 SEBL tool has an interferometric stage with a large range of motion, allowing larger areas to be written with little degradation in resolution. A large write area allowed separating the individual devices into separate die, making it easier to test them individually. 14 Transparency films with 25tm resolution are supplied by www. pageworks. com. 3.2. SUBSTRATES die outline and alignment 1? marks 4.2mm bond pads and leads devices Figure 3-7: Artwork for mask 3 version 3. 3.2 Substrates Two different substrates were used in the micro-fabrication part of this project, Quartz and lithium niobate wafers See table 3.3 substrate details. Amorphous Silicon dioxide (also called fused SiO2 and sometimes referred to incorrectly as Quartz) is used for deep UV photo-lithography masks because, unlike glass or other substrates, quartz is transparent to 220nm deep UV radiation. A relatively thick 1mm quartz wafers were chosen for the mask written by SEBL and used for hard contact printing or transfer to flex masks. The secondary mask has a thickness of 250pam, to allow for conformal flexing during vacuum mask contact pattern transfer. Transferring the pattern to a secondary mask allows a flat and ridged structure for the SEBL to write to. Handling the thin 250Lm quartz wafers was a challenge, as they are very fragile. If they are broken, transferring the pattern from the primary mask is much easier and less time consuming than writing a new mask via SEBL. CHAPTER 3. MICRO-FABRICATION Mark Optics www.markoptics . com PN# WF3000X03931101 Quartz* w/ flat OD: 3.000 i 0.008inch THK: 1mm +/- 25pm Double Side Polished PN# WF3000X00131101 Quartz* w/ flat OD: 3.000 + 0.008inch THK: 250 + 25pm Double Side Polished Crystal Technology Inc. www. crystaltechnology. com Lithium Niobate Part Number : 99-60011-01 128' RY-Cut OD: 3.000 + 0.008inch THK: 0.0197 i 0.0008inch Single Side Polished X-flat and marker flat Lithium Niobate Part Number : 99-60011-01 Y-Cut OD: 3.000 + 0.008inch THK: 0.0197 i 0.0008inch Single Side Polished Z-flat and marker flat Table 3.3: Suppliers and specifications of substrates used. *Amorphous Si0 2. Mark Optics specializes in semi-conductor lithography optical substrates and supplied the quartz wafers. These wafers arrived in a plastic canister with foam cushions and paper in between each wafer. Even though these optical wafers were supplied from a company selling semi-conductor grade substrates, they were especially dirty. Dust from the paper and other unidentified particles were on the surface and very difficult to remove. These particles caused problems with obtaining intimate contact between the conformal masks and the substrate. Cleaning these wafers was also costly. Contacting the vendor to ensure the wafers are manufactured and shipped from a clean-room in clean packaging is highly recommended if not essential". "Mark Optics does supply clean-room cleaned and packed substrates upon request. Their clean process is advertised as; the wafers are SC-1 cleaned, followed by machine scrubbing. Then they 3.3. SUBSTRATE PREPARATION AND CLEANING Lithium niobate is a manufactured in crystalline ingots and then cut and polished into flat wafers. The properties of surface acoustic waves traveling on lithium niobate are influenced by the crystalline orientation with respect to the wafer's surface. Each Lithium niobate wafer has a different set of flats to identify a particular crystal orientation. For this project two different crystal cuts (referring to crystal orientation) were used, Y-cut and 128 0RY-cut. Refer to section 2.1 for details on the differences in the properties of these two crystal cuts [2, 41]. Lithium niobate wafers are also very fragile and must be handled with extra care. The piezoelectric charging properties of lithium niobate caused problems in the fabrication process. Whenever the wafer was heated, either to cure photo resist or during processing such as e-beam evaporation, the wafer would charge and then arc near conductive surfaces. Unfortunate electrostatic discharges through the chrome on the mask occurred often, each time a millimeter size area of features on the mask would be destroyed. The arcing caused extensive damage to mask 1. The resulting degradation rendered many devices unusable. 3.3 Substrate Preparation and Cleaning Ideally substrates arrive from the vendor clean and free of residues and particulate contamination. Contamination comes in the form of organic residues, metals, and particles. Residues, such as oils, photo resist, and scum cause adhesion problems for photo resist and metals. Particulate contamination causes intimate contact problems in contact mask lithography and will distort or ruin any device features in close proximity. Unwanted metals can cause the same problems as particles as well as shorting adjacent metal features, rendering the device inoperable. Before a new or mega-sonically clean in recirculating filtered over-flow baths. The final step is scrubbing with machines using soft sponge brushes. CHAPTER 3. MICRO-FABRICATION recycled wafer is processed, a cleaning procedure is used to remove contaminates unless the wafer was sufficiently cleaned by the vendor[42, 46]. Wafers that have chrome on them (such as the wafers used for the chrome masks) are stripped with CR-716 or equivalent chrome etchant. The chrome etch is repeated several times after the RCA"7 or Piranha1 8 clean to ensure that all the chrome underneath the photoresist is removed. A mixture of three parts sulfuric acid (H 2 SO4 ) to one part hydrogen peroxide (H 2 02) is called "piranha." This cleaning step is is used to vigorously clean a wafer and remove heavy metals, particles, and organics such as aluminum and photoresist. The quartz and lithium niobate wafers were immersed in a piranha solution for ~ 20min[46]. Over time the heat generated by the sulfuric acid and hydrogen peroxide reaction dissipates. The mixture is carefully heated to maintain temperature and vigor. Standard clean 1 (SC-1, also known as RCA-1 cleaning), was used to clean glassware, masks, and wafers before use. This was used as the last cleaning step before coating wafers with photo resist. Using a solvent clean after SC-i is unnecessary and only increased the likelihood of contamination. Wafers were submerged in 4:1:1 solution of water:ammonium hydroxide:hydrogen peroxide heated to 80"C for 20min After a dozen or so contact prints a thin residue film (scum) of photo resist would build up on the mask. To remove this scum the mask was cleaned in an oxygen plasma asher. The very reactive plasma-excited atomic oxygen reacts with the photoresist molecules taking them away from the surface. The plasma asher causes a small amount the resist molecules to clump together into very hard balls firmly stuck to the surface of the mask. A quick reactive ion etch (RIE) removes these clumps, but 6 A standard 7% chromium etch solution. '7 A cleaning process developed by RCA corporation and often referred to as SC-1, or standard clean 1. A mixture of ammonium-hydroxide, deionized water, and hydrogen-peroxide. 18 A solution of sulfuric acid to hydrogen peroxide. 3.3. SUBSTRATE PREPARATION AND CLEANING Figure 3-8: Micrography of PMMA scum on a quartz light-field mask with chrome. care must be taken not to etch too far into the mask's metal[47, 42]. One clever solution to the buildup of scum that also resolves the problem with the mask sticking to the substrate is to Teflon coat the light-field masks. This process, suggested by another student 19 , will be implemented as soon as new masks are ready. The material is Tridecafluoro-1,2,2-Tetrahydrooctyl, Trichlorosilane 20 (CF3 - (CF 2 )5 - CH 2 - CH 2 SiCl3 ), a very durable self-assembling teflon mono- layer that coats the exposed quartz[48]. Some Nanoimprint stamps use this coating to keep the resist from sticking to and breaking the relief structures. The coating is hydrophobic and tolerates RCA and solvent cleaning. A wafer is placed in a desiccator with a drop of the Teflon material. When the air is pumped out the Teflon coats the wafer in about 2mins. The wafer will turn cloudy if too much Teflon has been deposited. Removing particles from quartz wafers was very difficult. In addition to SC-1 and Piranha cleaning, sonication was also tried with limited success. Wafers were also placed in a bath of Liqui-Nox TN heated to ~ 50"C for up to an hour. An ultrasonic acetone bath was also tried, with limited success. Spin drying wafers with high acceleration on the coater with acetone, methanol, and isopropanol 21 was marginally 19 Filip Llievski of the MIT Materials Science and Engineering Department 20 21 Available from Gelest Inc. part number: S1T8174.0-106M Often referred to as IPA or 2-proponal. CHAPTER 3. MICRO-FABRICATION effective at removing stubborn particles. Acetone must be followed by methanol while the wafer is kept wet because Acetone displaces methanol. Likewise, isopropanol displaces methanol. If either acetone or methanol dries before being displaced, then dissolved organics may redeposit onto the surface of the sample. Some particles were removed by scraping them off with a needle under a microscope. Scraping is used as a last resort because of the hight likelihood of damaging the mask. Stubborn particles may also blasted off with a snow gun (compressed CO2 gun), that creates tiny ice crystals which help sweep away particles. Equipment and supplies, such as glassware and parts for the deep-UV aligner, must be throughly cleaned when they are brought into the lab. Liqui-Nox , and the powdered form Alconox"', are strong detergents used to clean laboratory equipment in the same manner as one washes dishes. These detergents remove grease, oils, and other organic contaminates. Following washing and drying, the parts or glassware would be followed up by a solvent rinse before use. A quick rinse of the glassware with the solution to be used removes any contaminations that may dissolve in the chemical. Glassware, such as flasks used for photoresist, are cleaned with RCA-1 to insure absolute cleanliness. 3.4 Lithography Lithography is a technique used in microfabrication to transfer an image to a photoresist (photo sensitive polymer). The photoresist is then developed to remove areas which correspond to the artwork desired. Further processing uses the photoresist to mask off areas of the substrate to allow for deposition or etching. Several different processes exist for transferring artwork into a photoresist. The two methods of photo-lithography used in this project are scanning-electron-beam-lithography (SEBL) and contact printing. High-resolution masks and one-off devices are pat- 3.4. LITHOGRAPHY Figure 3-9: Typical lithography process steps used in this project. SEBL or contact printing can be used to transfer a pattern to the photoresist. terned with SEBL, while photo-lithography is generally used when many duplicates of the same devices are needed. This section describes the entire lithography processes used, from applying photoresist to a wafer, through exposure, and development. Refer to figure 3-9. A photoresist polymer is made of long chains of molecules and often comes dissolved in a solvent from a vendor. The wafer is coated with a uniformly thick layer of photoresist by spinning a small drop of liquid photoresist on the wafer and spinning at between 2000 and 4000rpm. Some of the solvent evaporates out of the photoresist while spinning the wafer. Before the wafer can be exposed, the photoresist must be cured though heating to completely remove the solvent, producing a durable layer that can resist etching, ion-bombardment, and evaporation. In the case of PMMA photoresist, exposing the photoresist to radiation causes the polymer chains break down. A developer is used to dissolve away the exposed photoresist. When a negative photoresist is used, the exposed area of the polymer are cross-linked after a post-bake step, causing unexposed area to develop away. CHAPTER 3. MICRO-FABRICATION 3.4.1 Photoresists Photoresist are designed to be sensitive to different types of electromagnetic radiation (X-Ray, UV, deep-UV) and support different thicknesses, development rates, sensitivity, and maximum resolution. These parameters are all related and have corresponding trade-offs. Three different photoresists were used for this project; NR8, NR7, and PMMA[42]. The negative photoresists NR8-1000P 22 and NR7-1000P were used for the 3 pLm devices on mask 1. These resists are particularly suited for lift-off applications because exposure dose controls undercut, see section 3.7. See figure 3-24 on page 90. The NR8-1000p was the first photoresist used and was based on a process already developed by another student working on a similar project. A similar resist, NR71000p, was later substituted for NR8-1000p for several reasons. NR8-1000p required cold storage and must be warmed to room temperature before use, while NR7-100p is stored at room temperature. NR8-1000p is an older resist that has a very limited shelf life where as NR7-1000p is a standard product with a longer shelf life. NR7 is a specialty resist that is available in P and PY variants. NR7-1000PY is formulated for liftoff applications, whereas NR7-1000P is optimized for RIE/ION Milling masks. NR7-1000P was available in EML and is also suitable for the $3pm line width lift-off. The "1000" refers to a particular formulation that corresponds to a thickness of 1000nm. Polymethyl methacrylate (PMMA) was the third photoresist used. For this project, PMMA was used for SEBL and contact photo lithography to achieve line-widths as narrow as 300nm. PMMA allows for higher resolution than NR7 and is also formulated to be exposed with SEBL or deep-UV radiation. The advantages of PMMA are higher contrast, higher resolution, high robustness, ease of use, and it can be open 22 NR7-1000p and NR8-1000P are available from FUTURREX, INC. 12 Cork Hill Road Franklin, NJ 07416 www.futurrex.com 3.4. LITHOGRAPHY to sun-light if kept shielded in plastic containers. PMMA also works well in variety of environments, tolerating varying humidity and temperature well. Chlorobenzene and Anisole are two solvents used to dilute PMMA. The safer and environmentally friendly Anisole formulation was selected. Stock 11% 950k molecular weight PMMA solution dissolved in Anisole was diluted to achieve different film thicknesses. A solution of 3 parts Anisole to one part 11% 95OPMMA results in the spin-curve shown in figure 3-10. 3.4.2 Coating 140, C E13 0 --------120 ------ 2000 . . .-..-..---. ... . . ---. -.-.. --------- -.- ... -. . .. -..-. .... 2soo . ... .. s000 3s00 Spin Speed (RPM) ....-- --- -- --- - ..- -..-..-..-... 4M0 4Wo Figure 3-10: Spin curve of 3 parts Anisole to 1 part PMMA 950k All. A coater tool was used to deposit a thin uniform film of photoresist onto the substrate. Photoresist dilution and spin speed parameters determine the thickness of the photoresist. The procedure is to place 1 - 5mL of photoresist in the center of the wafer and then spin for 60sec. A slow acceleration rate is used to allow the photoresist to spread out slowly, which yields a more uniform coating. When a new batch of photoresist is diluted, the first step is to run several silicon wafers through at various speeds to determine the thickness for a given speed. The thickness of each wafer is initially measured with an ellipsometer. After exposure and development, CHAPTER 3. MICRO-FABRICATION which leaves a physical trench in the photoresist, a profilometer is used to measure the photoresist thickness. 3.4.3 Contact Lithography Contact lithography brings the mask into contact with the photoresist. The equipment for contact lithography is relatively simple and much less costly compared to optical projection systems, making the process ideal for research applications. Contact lithography leaves a small gap between the mask and substrate, which limits the resolution due to near-field diffraction. For the best contact lithography systems, the resolution is limited to ~ 1pm[49]. Industry prefers other methods, because contact lithography wears down the expensive masks quickly in production systems. Contact mask lithography is more than adequate for research applications. Contact lithography system usually contain an (x, y, 6) stage, allowing precise alignment of a mask to previously patterned wafer or wafer flat. Contact lithography systems are referred to as "aligners," describing their alignment capabilities. The lithium-niobate wafer flats were aligned using an (x, y, 6) stage. Lithography systems are also referred to by their exposure wavelength, such as I-line for A = 365nm[50]. The EML I-Line aligner was used for making the 3pm devices. This commercially produced tool had limitations and problems due to wear and age, which caused some difficulty. The exposure timer was not working properly, and with 6second exposures, accurate manual timing was difficult. Alignment was tricky as the (x, y, 0) stage's motion was limited. To view the LiNbO3 wafer flat in the microscope, the wafer needed to be offset by a few centimeters, which leads to degraded contact between the mask and the wafer. 3.4. LITHOGRAPHY 3.4.4 Conformable Vacuum Mask Lithography A conformable vacuum mask lithography tool in NSL was used to achieve higherresolution than the EML I-line aligner was capable of. Conformable contact lithography is a simple method of yielding very high resolution at low cost for research and low-volume production[15]. The vacuum aligner in NSL is a unique custom-built experimental system, which is capable of resolving line-widths of 100nm[45, 44]. A XeHg lamp provided A = 220nm deep-UV light. Air is evacuated from between the conformable vacuum mask and the substrate, causing them to be in intimate contact. This close contact allows features smaller than the diffraction limit to be resolved[15, 49]. The vacuum aligner uses very thin, 250pm thick, flexible quartz masks to allow conforming around contamination particles and to accommodate any flatness variation in the wafers. The NSL deep-UV aligner required a new mask chuck to use the 3inch wafers in this project. The mask chuck holds the mask for alignment and makes vacuum contact with the mask. I designed a three inch chuck, which was fabricated at the MIT central machine shop. The existing vacuum system was controlled by on/off needle valves, which did not release the vacuum on the wafer or substrate. These valves were replaced with venting ball valves to allow proper operations. A light-tight housing made of acrylic was also fabricated to protect the lab space from hazardous deep-UV radiation. Details of these modifications are provided in Appendix C.2. As air escapes from between the mask and the substrate when they are brought in closer contact with each other. Before the two wafers contact fully, fringe patterns appear, as shown in figure 3-11. The number of fringes directly relates to the wavelength of the light. There may still be a significant gap at A = 220nm, even if no fringes are detected in the visible spectrum[15]. CHAPTER 3. MICRO-FABRICATION patterns frnge Figure 3-11: Fringe patterns resulting from imperfect contact between mask and substrate while under vacuum and illuminated with a green monochromatic light. This shows the OAI 77mm chuck with a top-down rubber gasket over the mask. The mask was 1mm quartz and the substrate was a 77mm silicon wafer. 3.4.5 Scanning Electron Beam Lithography A scanning-electron-beam-lithography tool is essentially a scanning-electron-beammicroscope (SEM) used to aim electrons at a sample to expose patterns onto a photoresist. SEBL electron beam-widths can approach 1nm with 30nm resolution[42]. The Raith-150 is able to write lines as narrow as 17nm and gratings of 70nm. While SEBL is able to write very small features, the drawback is that this is a scanned beam which means writing large high-resolution patterns will be very time consuming. For example, to write a simple mask takes about two hours on a SEBL including 40minutes of setup time. More complicated masks take much longer to write. In comparison, an exposure into PMMA on the OAI takes only 30minutes, no matter how complicated the pattern. The first step to writing a pattern with the SEBL is to correct for misalignment, focus, aberrations, and stigmation. 100nm gold particles deposited from a liquid suspension were dried onto the surface of the sample and imaged. Adjustments are 3.4. LITHOGRAPHY electron source anode beam blanker condenser lenses correction coils aberration canceling coils deflection coils objective lens detector xy-stage V samplelaser interferometer meter Figure 3-12: Simplified diagram of a SEBL tool. The detector is used for imaging test particles that are used to adjust for focus, aberration, stigmation, and write field alignment. made to give a nice image of a gold particle. The area that the electron-beam scans is small, from 50pm to 500pm depending on beam- width. To increase the writable area an xy-stage repositions the sample after each scan field has been written. Moving the stage introduces further errors, and calibrations must be made to ensure proper field stitching alignment. Field stitching errors were a common problem and some of the results are shown in figure 3-13. Stitching problems were most likely due to improper execution of the write-field alignment procedure. Electrons that impinge on the photoresist can build up a surface charge, which can cause an unwanted electric field to deflect the scanned beam and thus distort the written pattern. A thin layer of conducting film is used to shield the electric fields when writing on insulating substrates. Conductive samples, such as the chrome on the etched masks, do not need additional shielding. A thin 7nm chrome layer was deposited on top of the PMMA and later etched off with a standard chrome etch (CR- CHAPTER 3. MICRO-FABRICATION Figure 3-13: Micrographs of field stitching problems. 7) with no effect on the exposed PMMA. Chrome was selected for easy deposition and etching properties and low-cost in comparison to exotic conductive polymers, such as Aquasave". 3.4.6 Exposure Exposing PMMA causes the long polymer chains to break down in a process referred to as scission. The amount of energy imparted in the photoresist determines how much the long polymers are chopped up. Determining the correct amount of energy to expose a photoresist is critical for the artwork to be exactly reproduced[42, 43]. An incorrect exposure dose will lead to widening or narrowing of features. Test features, such as those shown in figure 3-14, were used to evaluated the effect of different doses. Nested L exposure test features allow for checking line uniformity and minimum achievable line separation. Diagonal boxes are useful for checking proper exposure and development. When the boxes just barely touch, the optimal parameters have been achieved. 23 Aquasave' can be spun on with a coater and is useful for coating samples that can not go into an e-beam evaporator. Available from Mitsubishi Rayon Co. www. mrc .co . jp 3.4. LITHOGRAPHY nested Ls 1pm to 20nm line widths Figure 3-14: Exposure test features allow inspection of focus, dose, and development parameters. 80pC/cm 2 104pC/cm 128pVC/cm 2 Figure 3-15: Micrograph of a dose matrix written in 100nm of PMMA on Quartz. Exposed with the Raith 150 SEBL tool. Figure 3-15 shows the test structures with three different doses. The nested Ls in this figure are made up of a pair of lpm lines, a pair of 0.5pm lines and three lines with 100nm widths. As the dose is increased the line-width widens, eventually causing them to join with adjacent lines. At a dose of 128pC/cm 2 the 100nm lines have blurred together and the connection point between the diagonal boxes has widened. On the other hand, exposure doses that are too low will cause line-widths to be narrower than desired. One method of checking for proper exposure is to use diagonally connected boxes. The exposure is correct when the boxes are just touching. CHAPTER 3. MICRO-FABRICATION 1.1 pm line width, 19min exposure, 0.45mW/cm 2 4pm line pitch 19min exposure 0.45mW/cm 2 4pm line pitch 25min exposure 0.45mW/cm 2 Figure 3-16: The top micrograph shows clearing problems with PMMA on Quartz. The bottom two exposure show improperly cleared (left) and properly cleared (right) 4pm grating of PMMA on Silicon. The darker areas are PMMA and the light areas are substrate. These exposures were made with the OAI deep-UV exposure tool in NSL. In extreme cases of underexposure, the photoresist will not clear when developing. Figure 3-16 shows such clearing problems due to underexposure. NR-7 photoresist was very sensitive to exposure dose. With a dose-rate of 4.5mW/cm 2 at I-line (A= 365nm), an exposure time of only 7seconds achieved good results. For contact lithography with a deep-UV (A = 220nm) at 0.47mW/cm 2 , PMMA did not clear until after 1320seconds. Good result where achieved with an exposure time of 1500seconds[50]. 3.4. LITHOGRAPHY 3.4.7 Resist Developing Developing photoresist involves submerging the wafer into a solution that will dissolve away exposed areas. The polymer chains in the exposed areas of PMMA are shorter due to scission, making removing this material easier for the developer in comparison to the unexposed PMMA. The proper temperature and development times are the two most critical parameters. substrate photoresist Figure 3-17: Developed exposure/developing test features showing the degree of over/under developing. The left panel shows underdeveloped clearing problems, and the right panel shows overdeveloping. The center panel show ideal exposure, with the two boxes coming into perfect contact. Unfortunate temperature was not taken into account or measured when developing NR-7. In hindsight, the temperature of NR-7 should have been recorded and made consistent. Development time appeared to be the most important parameter for NR7. Too short a development time caused insufficient clearing of resist from unexposed regions (NR-7 is a negative resist). A longer than necessary development time caused pitting of the resist and led to line-width widening, see figure 3-17. The correct development times for NR-7 were determined by trial and error. A 2% solution of resist developer called RD22 1 was used. When RD2 was not available RD6 was diluted 1:3 with deionized water into the equivalent of RD2. Development was stopped by 24 RD2 is a standard 2% developer for resist supplied by Futurrex, Inc. CHAPTER 3. MICRO-FABRICATION submerging the sample in deionized water. 21PCto 20.5*C 21.20C to 20.80C 21.50C to 20.00C Figure 3-18: Changes in width of 1.1pm lines due to developer temperature. PMMA was developed in a one part MIBK25 diluted with 2 parts IPA. Temperature and development time for PMMA appeared to be very sensitive at the 100nm to 300nm scale. Development times were kept as accurate as possible to approximately i2seconds. Line-widths would show noticeable differences with temperature variations as little as half a degree Celsius. A quantity of 500mL of developer was placed in a 1L flask and heated on a hotplate to exactly 21"C using a thermometer accurate to a 10th of a degree. The flask was removed from the hotplate at exactly 21"C and the 90second development was started. The temperature of the developer would drop about half a degree during the 90seconds. The development was stopped by spraying isopropanol for 60seconds. A spray was used over immersion to make sure isopropanol entered the small features quickly enough to avoid over development. 3.5 Descum Besides cleaning and etching (as discussed in section 3.3), the 02 plasma asher and reactive-ion-etching (RIE) can also be used for removing residuals from the exposed substrate areas on the wafer. Such a "descum" step helps fix certain adhesion problems. The drawbacks of using the 02 asher for descum in liftoff applications is that 25 MIBK(methyl isobutyl ketone) or 4-Methyl 2-Pentanone (From AlfaAesar #A11618) 3.5. DESCUM photoresist scum substrate surface roughness R rounded profile substrate substrate RIE descum plasma asher descum Figure 3-19: Exaggerated illustration of the effect on resist profile from RIE or plasma asher descum processes. The top figure is the photoresist profile after development and before any descum step. the etch is isotropic. Thus the quality of the sidewalls can be degraded causing the metal to bridge, ruining liftoff. Descum results from using the RIE is generally better because the ions are accelerated under a bias voltage resulting in an etch nearly perpendicular to the substrate, leaving a better profile for liftoff[42, 47]. The etch rate of PMMA in the 02 plasma asher was characterized using silicon test wafers. A single wafer was coated with 106nm of PMMA and then oven baked for 30min at 170*C. This wafer was then repeatedly put into the asher and measured with the ellipsometer until the thickness of PMMA was less than 70nm (the point at which the accuracy of the ellipsometer used becomes questionable). To better characterize the difference between using the 02 asher or 02 RIE for descum, some silicon test wafers were processed. Preliminary results show roughing of the surface of the PMMA, see figure 3-21. The difference in surface roughness may be due to the amount of time or the parameters used in the descum step. More work is underway to better characterize and optimize the parameters for descum. 88 CHAPTER 3. MICRO-FABRICATION 30 25- -J- measured data - - -best fit 1.4 nm/s E20-215 ----- 10- 5 10 seconds 15 20 Figure 3-20: Etch depth vs. time of 106nm PMMA on Si in 02 plasma asher using 50W power and 0.305psi average pressure. Thickness measured with an ellipsometer. 3.6 Deposition Electron-beam evaporation was used to deposit aluminum and chrome onto substrates. Evaporation works by heating a source of material in a crucible with an electron beam in a vacuum [47]. The source material sublimates onto an opposing sample. Usually the source is at the bottom of the crucible and the target is at the top facing down. For liftoff applications, the target wafer must be located directly over the crucible to mitigate the effects of sidewall shadowing (see figure 3-22). Aluminum was used to create the interdigital transducers on the lithium niobate for the SAW devices. The thickness of aluminum ranged from 50 - 200nm. The SiO2 masks used 40nrm of chrome for the patterns and 7nm of chrome for shielding of the electron field for SEBL (see section 3.4.5). Two different evaporation tools were used. A custom built evaporator assembled from older evaporator components in EML evaporated the aluminum for the 3pum 3.6. DEPOSITION Cr on PMMA no descum 02 plasma ash Cr on Quartz 02 RIE Figure 3-21: Results from 2sec of 02 plasma asher and RIE descum methods. The figures show Cr on Quartz and Cr on PMMA before the liftoff step. 10nm of PMMA were taken off with the 02 asher. 7nm of PMMA were taken off with the RIE. angle of depositio metal Figure 3-22: Effect of off-angle deposition on side-wall coating. devices. The EML tool operation allows the tool to use a selection of many different materials26 . Contamination from these materials was an issue due to the way the tool was designed, cleaned, and used. Another problem with the EML e-beam evaporator was that the film thickness was manually controlled with a shutter, yielding tolerances of i20nm for aluminum, and as bad as ±l00nm for chrome. Depositing chrome was problematic as intermittent spikes in deposition rates made controlling film thicknesses difficult. One theory was that the chrome would grow thin filaments 2 1Often evaporation tools are limited in their selection of materials to avoid contamination prob- lems. CHAPTER 3. MICRO-FABRICATION 40nm Cr on PMMA 40nm Cr on Quartz Figure 3-23: Micrograph of a problem encounter when depositing 40nm Cr onto 100nm of PMMA on an SiO2 wafer using the NSL evaporation tool. during evaporation, which would short to the electron gun under the magnetic field. The resulting shorts would cause spikes in power and deposition rate, referred to as "spitting." Films put down under spitting conditions had poor uniformity. The comet spray patterns shown in figure 3-23 are believed to be the result of chrome spitting problems. The evaporation tool in NSL was under computer control and yielded much more consistent and higher quality films in comparison to the EML evaporator. 3.7 Lift-off and Etching undercut metal photoresist substrlve p Figure 3-24: Undercut allows solvent to dissolve photoresist and remove metal overlay. 3.7. LIFT-OFFAND ETCHING After the photoresist has been patterned, and metal has been evaporated onto the sample, the photoresist is removed taking away the unwanted metal in a process called lift-off. Lift-off takes place in a solvent bath that dissolves the photoresist and lifts the metal off of the substrate in the processes. The solvent needs access to the photoresist underneath the metal, which can be facilitated through sidewall undercut, photoresist thickness, or as a last resort sonication. See figure 3-24. Acetone or Microstrip was used to lift-off NR7. Much better results were obtained using Microstrip, as the acetone took a lot of time to completely remove the NR7. The profile of NR7 has a decent amount of undercut aiding in lift-off. On the other hand, PMMA does not have undercut, which made executing a clean lift-off very difficult. NMP 27 is used for dissolving PMMA in lift-off and is slowly heated to 80*C. Heating NMP must be done very carefully as NMP's flash point is 93"C, which is clearly written on the bottle. Poor results were obtained when using unheated NMP. Lift-off must be completed before removing the sample from the solvent, or there is the possibility that metal will fall into the trenches and be very difficult or impossible to remove. Gently scrubbing the area where stubborn metal pieces are stuck with a small fab-swab, while the wafer is wet with acetone, may remove them. The process of lift-off, in theory, should only require immersion in a solvent. However imprecise profiles or deposition could leave bridging between metal on the substrate and metal on the photoresist. A hydrophobic photoresist may also prevent the solvent from entering very small trenches. Ultrasonic agitation of the sample in a solvent may aid in lift-off by removing stubborn photoresist and metal. This technique must be used sparingly and only when necessary, as too much sonication will damage devices. See figure 3-25. Problems due to bridging were found in SEM micrographs of test devices patterned 1 7NMP (1-methyl 2-pyrrolidinone) CHAPTER 3. MICRO-FABRICATION Figure 3-25: Damage likely resulting from too much sonication (> 1min) during lift-off. onto silicon. Figure 3-26 shows how bridging between metal in the trenches and metal on the surface of the photoresist will ruin lift-off. The SEM image shown in figure 3-27 was a clear indication of the bridging that caused lift-off problems. A sectioned illustration of the side wall problem is shown in figure 3-28. The lift-off for this device was aided with sonication, and due to the brittle nature of chrome, some of the unwanted overhangs broke off. Too better understand the lift-off problems, some SEM micrographs were taken of the sample after evaporation of less chrome (30nm instead of 40nm) and before lift-off, figures 3-29 & 3-31. These images show that there is adequate separation between the metal on the photoresist and the metal on the substrate, which should (and did) lead to a successful liftoff. Only minor bridging was observed at the corners of the metal fingers. Viewing a PMMA coated sample in the SEM will cause cracking and melting of the photoresist. This cracking is clearly shown in the figures. Lift-off in the areas scanned by the SEM failed due to the changes caused by the bombarding electrons. Figure 3-30 shows the area that was scanned by the SEM after lift-off when taking the image shown in figure 3-29. 3.7. LIFT-OFFAND ETCHING Figure 3-26: Incomplete liftoff problems as a result of too much chrome being deposited. Shows 500nm line-widths with 210nm of chrome on quartz. The desired thickness of chrome was 100nm. The PMMA thickness was 250nm. 250nm Figure 3-27: SEM of bridging caused by poor profile and photoresist that was too thin for the thickness of metal deposited. CHAPTER 3. MICRO-FABRICATION subrte (a) Profile before lift-off. (b) Profile after lift-off. Figure 3-28: Illustration of lift-off problems when the metal on top of the photoresist bridges to the metal on the substrate. Figure 3-29: SEM showing a wafer after deposition and before lift-off. The images of the 100nm gold particles in the bottom left are given as a reference for image quality. 3.7. LIFT-OFFAND ETCHING incomplete lift-off Figure 3-30: Micrograph showing a patch of incomplete lift-off due to inspection by the SEM before liftoff to take the image shown in figure 3-29. Figure 3-31: Test patterns of Cr on Quartz and Cr on PMMA on Quartz. Same sample as shown in figures 3-29 & 3-30. CHAPTER 3. MICRO-FABRICATION chrome before etch PMMA after etch Figure 3-32: Show the change in image contrast before and after the etch has been completed. PMMA was used as a photoresist on top of chrome and quartz. Wet etching with a standard electronics grade chromium etchant (CR-7) was used. Etching chrome is very simple, is done at room temperature, and only requires immersion into the chrome etchant. For etching mask artwork, CR-7 was diluted 1:2 with deionized water allowing for more precise control over the etch. With the diluted 1:2 solution, etching through 40nm of chrome takes about 40seconds. Etching chromium is very similar to developing photoresist. Leaving the sample in the etchant for too long will cause an over-etch and line-width widening. If the sample is not left in the etchant long enough there will be clearing problems. In general, proper etching was very easy to accomplish. 3.8 Mounting/Packaging A Disco DAD-2H/6T die cutting tool, provided by MTL, was used to cut a wafer into rectangular die. The devices on mask 1 were not positioned so they could easily be cut out. To ensure that the devices I wanted to test were not destroyed, the die size was adjusted between ~ 5mm and ~ 10mm on a side. The devices on mask 2 and 3 were positioned so that they could easily be cut out and would fit on a 4mm x 5mm die. A 28-pin SOIC with a 165x205mil cavity was purchased from Spectrum Semiconductor 3.8. MOUNTING/PACKAGING Materials, Inc. 28 part number CS0028P2. The test package, with the lid removed, was sized to take a 4mm x 5mm die. This package was selected for size, ease of wire-bonding to the level cavity, and surface mount leads, which have lower parasitic impedance. The die was super-glued 29 to the package and then wire-bonded. Care needed to be taken in application as any excess glue covering the leads would make wire-bonding impossible. Wire-bonding proved to be very problematic. The tool was very difficult to set up, which involved threading a very thin wire through an ultrasonic tip and adjusting the bonding power and duration. To simplify the process for mask 1, the bond pads were made in the same step as the devices, and thus only had a thickness of ~ 200nm. These thin bond pads on top of the fragile lithium niobate caused cracking of the wafer underneath the pads, leaving the pads to break off. A very narrow range of settings would allow for proper bonding without ruining the pad and having a mechanically and electrically sturdy connection. In an attempt to make wire bonding easier, as well as reduce write time on the Raith 150 SEBL tool, masks 2 and 3 are designed to include a separate bond pad layer. These bond pads will be made thicker and out of gold or other easily bonded to material. The test PCB was designed and drawn in Mentor Graphics® Design ViewTM and Expedition PCB"4 software packages. See figure 3-33. Advanced Circuits fabricated the PCBs from the gerber files generated with Expedition PCBT M. This high-frequency design incorporates several important features. The end-launch SMA connectors are in-line with the signal path to reduce impedance variation and signal reflections. The traces on the PCB are impedance matched to 50Q, and a test trace was placed on this board to verify proper implementation. An impedance matching network 28 29 http: //www. spectrum-semi . com Tech Hold" Cyanoacrylate adhesive by TechSpray. CHAPTER 3. MICRO-FABRICATION package bond pads impedance SAW cmatching devices network Figure 3-33: SAW test devices mounted to a package, wire-bonded, and soldered to a test PCB. was placed as close to the SAW test package as possible to reduce parasitics. All the parts were surface mount and placed top-side as closely together as possible to reduce parasitics and prevent noise from coupling into the signal path. Rounded pads were used on RF packages so solder would flow with reduced discontinuity for better signal propagation[3]. Details, artwork, and schematics are available in appendix D. Chapter 4 Electronic Design Included in this section is a detailed description of the architecture, design, and implementation of all of the electronics and supporting software used in this project. Requirements of the design and the approach taken to meet those requirements are also covered. The field-programmable-gate-array (FPGA) design went through several iterations of increasing complexity. Only the highlights are reviewed here because each implementation is very complex. Programs written to control of the FPGA hardware peripherals running on FPGA's embedded processor are covered in section 4.7. User interface programs are also covered in section 4.7. To keep the size of the appendix manageable, only a few of the most important source files were included. A short radar chirp containing a phase-encoded signal is transmitted by a measurement station to the SAW transponder (covered in detail in chapter 1). The measurement station measures the round-trip time-of-flight to and from the SAW transponder. Specialized high-speed electronics are necessary for a measurement station to operate at 2.4GHz. Signal range, accuracy, and noise were difficult requirements for the measurement station's design to meet. On top of that, limitations in the both the project's budget and cost for commercially viable systems made the CHAPTER 4. ELECTRONIC DESIGN 100 measurement station's design even more challenging. Figure 4-1: Conceptual measurement station transceiver block diagram. The basic design of the first system is shown in figure 4-1. A simpified design was used first to make the system tractable. Better performing more complicated designs will be pursued once the concept has been proven. A microprocessor determines the correct digital code which needs to be transmitted to select a particular tag. The phase encoded digital code is then shifted out at the carrier frequency. Before transmission via the antenna, the digital signal is conditioned into suitable radio frequency waveform and amplified. The receiver continually samples for both the transmitted signal and the SAW reflected signal. In this way, the microprocessor can determine the time between when the transmitted signal was received and the time the transponder's signal is received. The receiver's front end is typical, containing a low-noise amplifier (LNA), a bandpass 101 filter, and a gain controller. The gain controller is set by the microprocessor in such a way that the digitizer does not saturate when the high-power transmitted signal is received. A one-bit digitizer and high-speed shift-register captures the signal, which is processed by the microprocessor. To simplify the design, and more importantly reduce the cost of the demonstration electronics, only a one-bit digitizer (ADC) is used in the demonstration system. Future systems would utilize more sophisticated ADC's with multi-bit resolution. The receiver is the most challenging component of the electronics to design and implement. To make the initial system evaluation easier a high-speed oscilloscope will be used to digitize the return signals. MATLAB@ will then process and simulate different receiver configurations before the initial design and implementation of the custom receiver electronics. The measurement station was implemented with a very fast oscilloscope, an FPGA development kit, and some custom RF electronics. While detecting a particular transponder and measuring time-of-flight would be possible using a low cost FPGA, the demanding challenges involved were outside of the practical goals of this project. Therefore we chose to leave an integrated solution for future work. Instead we chose to use a very fast oscilloscope with 5GHz of band-width and capable of 20-Gigisamplesper-second, to implement the receiver. Commercial instruments 1 are available that can generate the radar chirps required. However, with prices ranging between $40 - 60k commercial instruments are prohibitively expensive for our budget. With a significant amount of work, the necessary functionality was achieved with an ~ $1k FPGA development board and ~ $1.5k of auxiliary electronics. A typical desktop computer with no additional hardware was utilized as the user interface. The programming languages were PERL for the user 'For example, the Agilent 81133A, 3.35GHz, single channel Pulse Pattern Generator. 102 CHAPTER 4. ELECTRONIC DESIGN interface, MATLAB@ for real-time signal analysis, C and VHDL for programming the FPGA. One approach to measure time-of-flight that was initially investigated is to use one of a numerous collection of existing time-to-digital converter (TDC) designs. TDCs have been used in physics research and radar applications for over three decades. Accuracies of 3 0 ps are tractable, and would lead to a range resolution of c -30ps/2 = 4.5mm. Existing TDC designs are not easily interfaced to correlated responses as required by our approach. Utilizing a high-speed multi-gigibit-transceiver appears to be the most flexible, easy to implement, and economical solution. 4.1 System Architecture RF ransceiver FPGA Chirp Generator e Ethmet Transceiver : -.. MGT :PowerPC Memory and Control Registers Figure 4-2: Measurement station FPGA and transmitter block diagram. The envisioned architecture called for an integrated measurement station as shown in figure 4-2. A Xilinx@ embedded development kit (EDK) printed circuit board makes up the backbone of this system. The EDK PCB consists of a versatile FPGA 4.1. SYSTEM ARCHITECTURE 103 with various peripherals such as Ethernet, a multi-gigabit-transceiver (MGT), and a compact flash interface. Ethernet allows the measurement station to communicate with other devices including other measurement stations and the user interface running on a remote desktop, laptop, or oscilloscope computers. An external clock generator provides the precise frequency used by the FPGA to synthesize the radar chirps. The EDK PCB uses files written to the Compact Flash card by the developer to configure the FPGA. Configuration data includes the FPGA hardware code and software running on the FPGA's built-in PowerPC processor. The RF Transceiver was implemented with custom electronics. Phase-shift encoded data from the FPGA is transmits though an amplifier and antenna as radar chirps. LVPECL output NECL to VPECL NECL clock generator Figure 4-3: Photo of NECL clock generator (part number PRL-174ANT-1350) and NECL to LVPECL logic level translator (part number PRL-460ANLPD). The clock generation hardware consists of two commercial modules. The configurable clock source is generated from a Pulse Research Lab2 model PRL-174ANT1350 programmable VCO clock source. A PRL-460ANLPD NECL to LVPECL logic level translator module was used to convert the negative-emitter-coupled-logic (NECL) outputs from the clock source to the low-voltage-positive-emitter-coupled2 www.pulseresearchlab.com CHAPTER 4. ELECTRONIC DESIGN 104 logic (LVPECL) required by the Xilinx Virtex-4 FPGA. NECL and LVPECL are both widely used differential logic standards advantageous for their high-speed and superior immunity to noise. transmit output Ethernet -_LVPECL clock FPGA compact flash Figure 4-4: Photo of Xilinx ML405 evaluation board. FPGAs allow the implementation of very fast custom electronics hardware that is reconfigurable. The performance provided by FPGAs is far greater than software implemented on a DSP, and yet FPGAs are flexible and low-cost compared with application-specific-integrated-circuits (ASICs). The Xilinx@ ML4053 Evaluation Platform was chosen for the on-board Ethernet controller, Virtex-4 FPGA, which includes multi-gigabit-transceiver (MGT), on-chip PowerPC, and the systems $1k low-cost price. The MGT is a versatile port capable of many different communications standards such as Gigabit Ethernet and PCI Express"N. RocketIO"M is Xilinx's implementation of an MGT. Radar chirps are generated using a custom configuration of the MGT, as opposed to standard communications protocols, such as gigabit-ethernet. Data describing the 3 More information available at http: //www. xilinx. com. 4.1. SYSTEM ARCHITECTURE 105 (a) Digital output from FPGA's MGT port. (b) Ideal analog output after RF signal conditioning of digital signal. Figure 4-5: Illustration of signal conversion from digital to RF. chirp pattern is loaded into the MGT and then shifted out serially as a phase-shift encoded digital signal. The digital signal is filtered, conditioned, amplified, and then transmitted via the antenna by the custom RF electronics. The ideal digital to RF transformation is illustrated by figure 4-5. The PowerPC embedded processor in the FPGA runs software written in C to communicate with the user interface via Ethernet. The user software running on a remote PC is able to collect data from the system as well as to control the specialized FPGA radar chirp-generating logic interfaced with the MGT. Using an embedded processor has the advantage of flexibility in implementation of control and data collecting algorithms, while keeping the high-speed signal processing implemented in FPGA logic. The PowerPC software is easy to quickly change without the time consuming compilation of FPGA logic from VHDL source code. Several software tools are necessary to develop systems using Xilinx FPGAs. A suite of tools contained in the Xilinx Embedded Development Kit (EDK) is organized through the Xilinx Platform Studio (XPS) integrated development environment. XPS runs external tools that configure the PowerPC and system buses, compile the soft- 106 CHAPTER 4. ELECTRONIC DESIGN ware running on the embedded processors, compile the VHDL code to configure the FPGA, and generate the bit-level code used to program the FPGA with the software and hardware configuration. Another collection of Xilinx@ software tools is packaged as the ISE Foundation integrated development environment. ISE provides low-level FPGA layout and planing tools, many of which can be called from XPS. The FPGA simulation software provided by Xilinx@ was rudimentary. Thus the industry standard simulation suite, called ModelSim@, developed by Mentor Graphics@, was used for simulating before and after the FPGA code was compiled 4 . The ML405 development board loads FPGA configuration bit-files and programs to run on the embedded processor from the compact flash card. Once the FPGA code is compiled using either XPS or ISE, the generated project-file.bit file needed to be converted to a project-file.ace with the ml40x.bit2ace program. The projectfile . ace is copied to the compact flash card in the /m1405/ace/ di- rectory and is loaded when the "My own ACE file" is select from the boot loader menu. See references [54] and the section "My Own ACE File" in reference [55] for detailed information. 4.2 Analog Components and Test Equipment This section briefly details the variety of test equipment and electronic components used in this project. A custom printed circuit board (photos and schematics are given in Appendix D), was designed and fabricated to allow testing of the SAW devices. RF amplifiers and design components were purchased for modularly prototyping the many test configurations covered in chapter 5. Cables, connectors, and power supplies needed to be carefully selected, as this system is very sensitive to noise and losses 4 Developing FPGA code is very complicated with many different stages to implementation. Readers are encouraged to consult with [51, 52, 53] 4.2. ANALOG COMPONENTS AND TEST EQUIPMENT 107 at high-frequency. The electronics design for both testing and implementation is preliminary. While results are being gathered, there is still more work to be done on the electronic design. The components listed here will be added to as the testing and development progresses. The most important piece of equipment for this project is a high-speed and very sensitive digital-sampling-oscilloscope (DSO). A fast oscilloscope is necessary is to accurately capture the transponder's return responses with enough resolution to allow for proper signal processing. A fast DSO was also necessary to debug signals at the operating frequency of 2.4GHz, and to pinpoint unwanted parasitic oscillations at even higher frequencies. Capturing the subtle higher-order return signals from even the slower 323MHz SAW transponders is critical for proper characterization and understanding of these designs. Observing the return signal is essential for the design, implementation, and debugging of the RF receiver. Before the receiver is designed the DSO will allow us to complete functional testing and evaluation of the system, including time-of-flight calculations. A LeCroy WaveMaster 8500A DSO with 5GHz of bandwidth was purchased in the spring of 2007 for this project. With a DSO capable of a 20 giga-samples-per-second rate, evaluation of the round-trip time-of-flight to accuracies of approximately 10cm should be practical. A vertical sensitivity of 2mV/division with 8bits of resolution made this the most sensitive oscilloscope we could afford and will exceed the requirements of a demonstration system. The sensitivity of the DSO limited the input voltage range to ±4V. This limitation required attenuators for some of the larger signals. This scope also has a direct interface to MATLAB@, allowing real-time control of this oscilloscope as a highly configurable RF-digitizer. The wide bandwidth allowed inspection of oscillations on the low-noise-amplifier that appeared to be noise on previously available DSOs. The data capture and report generating features have CHAPTER 4. ELECTRONIC DESIGN 108 greatly increased the efficiency of data collection, analysis, and debugging. An Agilent 8714ET RF Network Analyzer was used for measuring and compensating for input transducer impedance as well as measuring the transmissibility of the SAW filters. This was a relatively old unit ( > 10yrs ) with no record of calibration. One device was characterized with this unit, and then measured on a newer and recently calibrated RF Network Analyzer, and the results were reasonable close. Details on the use of the RF network analyzer for impedance matching are given in section 4.3. The section 4.4 covers testing the SAW filter transmissibility with RF Network Analyzer. splitter ZFSCJ-2-4-S+ balun / transformer amplifier TB-409-84+ low-noise amplifier ZX60-33LN-S+ terminator directional coupler attenuator ZX30-17-5-S+ vswa Figure 4-6: Photo of analog components from Mini-Circuits@. Several packaged RF prototyping circuits were purchased from Mini-Circuits@. Low-noise amplifiers were needed for the RF receiver front-end and power amplifiers were need for the RF transmitter. Several amplifiers were purchased based on availability and price. A selection of couplers were necessary for interfacing devices 4.2. ANALOG COMPONENTS AND TEST EQUIPMENT Part Number Description ZFSCJ-2-4-S Test board with Gali-84+ DC to 6GHz, 25.6dB of gain amplifier with 38dBm output. Transformer test board. Directional Coupler, DC to 2GHz. Low-noise amplifier with 20dB of gain and output power up to 17.5dBm. Power Splitter / Combiner, 2 way 1800, 50 to K1-TMC+ Designer's transformers kit. K2-VAT+ Designer's fixed attenuator kit. DC to 6GHz, 1 TB-409-84+ TB-145 ZX30-17-5-S+ ZX60-33LN-S+ 1000MHz. to ANNE-50L+ 109 10dB. 50Q DC to 12GHz Attenuators. Table 4.1: Components used in this project that were purchased from Mini-Circuits@. to various test equipment; more details are provided in section 4.4 & 4.5. Transforms and baluns were used for decoupling signals and matching signals such as the RocketIOTM output to the RF transmitter impedance. The transformers and baluns were purchased in a kit, and then the desired one was installed on the Mini-Circuits@ test board TB-145. A few 50Q terminators and a set of attenuators were purchased to terminate unused connections and attenuate large signals for test equipment, especially the DSO. We found that at the time Mini-Circuits@ was the most cost effective source of these components in SMA-compatible packages. RF filters have not yet been purchased but will be required as the measurement system is developed. See table 4.1 for a summary of components. In addition to providing a carrier for the SAW devices, the custom PCB was created to amplify the minute signals as close to the devices a possible. The idea was to have the amplifier close to the device so the signals could be amplified with as little noise as possible added before amplification. Unfortunately, the very fast 18GHz transistors that were selected caused oscillations in the design. These problems were CHAPTER 4. ELECTRONIC DESIGN 110 not worked out at the time of writing this thesis. A possible solution to removing the oscillations would be to add a ferrite bead to the base of the transistor, which will be tried soon. Figure 4-7: 323MHz antennas made from 16-AWG copper wire and an SMA connector. Used for preliminary isolated indoor tests. Several other components and auxiliary equipment were used for this project. A low-noise fixed linear power supply from Power-One@, part number HAA15-0.8-A, was used to power many of the Mini-Circuits* active components. Custom 323MHz antennas were built, as pictured in figure 4-7, for a few isolated indoor tests. Other antennas were purchased for use on the 915MHz instrumentation-scientific-andmedical (ISM) band. A small 58mm Helical Antenna, part number WTH430003 from S.P.K Electronics Co. LTD., was purchased along with a 236mm monopole antenna, part number WAN-00514-D8 from Wanshih Electronics Co. LTD. 50Q SMA patch cables were purchased for their low-loss SMA connectors and RG-316 coax cable. Many other discrete components, such as inductors and capacitors used for impedance matching, were selected for low-loss/high-Q. Surface mount inductors from EPCOS, series B82498, were used for most implementations in this project. NPO/COG rated capacitors were used for their low-loss. Selection of discrete components for RF design is very important and the reader is referred to [3]. 111 4.3. IMPEDANCE MATCHING Figure 4-8: RF Network Vector Analyzer test setup for reflectance and impedance measurements. r ~ ~~I------------ r L I I I I | C I Matching Network L--------- I I j -- -- -- -- I R+jR' I I SAWIDT --- Figure 4-9: Simple L matching network [3, 4]. 4.3 Impedance Matching Matching the characteristic impedance at higher frequencies is very important. Any of a number of problems, such as reflections and oscillations, may occur without a proper impedance match[3, 56]. Loss of power due to an improper match can also distort the characterization of a design. The IDTs of SAW devices are normally capacitive, thus a matching network must be added to bring the input port back to 50Q. The procedure was to measure the real and complex impedances of the input IDT with the RF network vector analyzer using the setup shown in figure 4-8. The measured complex impedance was then used to determine the values of components needed to make a an impedance match. The match was made by using an inductor and capacitor in an L-match network configuration that is added to the front of the input port of the IDT (as shown in figure 4-9). Low-loss (high-Q) high-frequency components were necessary to make the match without signal degradation[3, 4]. 112 CHAPTER 4. ELECTRONIC DESIGN Calculating the correct values is straight forward and may be done with a Smith chart or by solving a system of equations. The equivalent resistance looking into the network is a simple voltage divider with L and R + jR' in parallel with C (equation 4.1). By setting this to our desired characteristic impedance, Rmatch, and solving, we are given the proper values for L and C. Equation 4.1 is split into a real and imaginary equations 4.2 and 4.3 and then solved numerically. -L-(sL + R + jR') sC 5 + (sL + R + jR') L+R (4.1 = jC (4.2) WRmatchR R - Rmatch Rmatch(-W 2 L :Amwlmtan 02: Off - wR') I U Ps eC7 Sta1r013.0,400 Figure 4-10: Measured Smith chart on the RF Network Vector Analyzer of a SAW transponder. One problem with measuring the characteristic input impedance of a SAW IDT is that there are reflections and resonances due to the device characteristics that appear to cause problems with measurements taken with the RF Network Vector Analyzer. 113 4.4. SAW FILTER MEASUREMENTS Figure 4-10 shows the measurement taken of a simple SAW transponder on mask 1. The curly Qs are supposedly from a combination of reflections from input fingers and off of the downstream reflectors. One way around this that has yet to be explored (for lack of access to the proper equipment), is making the measurements instead with a time-domain-reflectometer. Another possibility that will be tried is to make a bare input IDT that is not connected to anything (i.e. an output IDT as in the case of a SAW filter, or coupled reflectors as in the case of a transponder) for measuring the input impedance of similar transducers. 4.4 SAW Filter Measurements RF-Network Analyzer TX RX DUT Figure 4-11: RF Network Vector Analyzer test setup for Transmittance measurements. Transmissibility measures the amount of loss between a transmitter and receiver at a particular frequency through a black box. The transmissibility of the SAW filters was measured to determine correct function as well as the loss and frequency response of the device. Transmissibility measurements were also used to determine how well the impedance matching adjustments worked. A better match yields lower transmission losses at the pass-band frequencies. The same RF Network Vector Analyzer as was used to determine input impedance was used for transmissibility measurements. Figure 4-11 shows the setup used, and figure 4-12 gives an example of CHAPTER 4. ELECTRONIC DESIGN 114 - anti-resonance Figure 4-12: Measured transmission chart of a SAW filter on the RF Network Vector Analyzer. Notice the anti-resonance artifact, which is ignored for this work. a measured response. For convenience, a logarithmic magnitude scale was selected. Figure 4-13: Setup for transient measurements of a SAW filter using an oscilloscope. The setup shown in figure 4-13 was used to measure the impulse response and the chirp response of a SAW filter. Both measurements helped with understanding SAW IDT operation and characterization of the devices. The impulse response was taken by generating a pulse at the resonance frequency with the FPGA. One channel of the oscilloscope measures and triggers off of the transmitted impulse. The response was measured on the other channel. 115 4.5. SAW TRANSPONDER MEASUREMENTS 4.5 SAW Transponder Measurements oscilloscope ch3 ch2 FPG board Noamp > coupler ** DUT Figure 4-14: Test setup for SAW transponder measurements. The early 323MHz SAW transponders have only one port from which to inter5 rogate and measure the return response. A directional coupler allows triggering off of the FPGA-generated chirp pulse while observing the transponder's return signal. The setup is shown in figure 4-14. There are some problems with the FPGA's transmitted signal saturating the input of the oscilloscope. Solutions to these and other measurement problems are in the works. oscilloscope FPGA antenna ch2 apam amp board ch3 Figure 4-15: SAW transponder measurements using antennas. Measuring of the SAW transponders in their intended configuration, with the transponder connected to an antenna, is shown in figure 4-15. The operation is similar to the previous setup, except the coupler is replaced by three antennas. Some 5 Mini-Circuits@ (http: //www .minicircuits has a few . com/) useful application notes on directional couplers 116 CHAPTER 4. ELECTRONIC DESIGN input filtering (not shown) after the receiver amplifier will probably be necessary. The best receiver design is currently being investigated. 4.6 FPGA Hardware Description The internal logic of an FPGA can be specified through several different languages (such as VHDL, verilog, even MATLAB) or with high-level schematic capture programs. VHDL was one of the first FPGA programming languages and resembles ADA. The project used VHDL exclusively, based on personal preference. Many other FPGA languages would have worked equally as well. VHDL 1 library. 1 .. . 2 3 4 5 6 7 8 9 Example of IO pad description used VHDL and the Xilinx UNISIM Xilinx primitives ---library UNISIM; use UNISIM.VComponents. all; ... 10 -- 11 12 IBUFGDS-usrclk generic rnap 13 ****************** IBUFGDS IBUFDELAYVALUE 14 15 16 17 18 => " 0", IOSTANDARD => "LVPECL_25", DIFF-TERM => TRUE) port rnap ( => usrclk-b 0 I => usrclk-ip , -Diff-p clock 19 IB => usrclk-in - Diff-n clock 20 21 22 23 -- 24 IBUF-reset 25 26 27 IBUF generic map ( IBUF-DELAY-VALUE => "0", IFD-DELAY-VALUE => "ALTo", 28 IOSTANDARD 29 30 31 32 33 ****************** : => "LVTTL") port map ( 0 => reset-n-b I => reset.n ... Developers take many different approaches to organizing their system designs[57]. The VHDL source for this project was organized to be hierarchically tailored for two configurations, simulation and implementation. The top-level simulation files are 4.6. FPGA HARDWARE DESCRIPTION 117 known as "testbenches", and are denoted by the naming convention of f ilename-tb. vhd. A testbench provides simulated simulation signals to the VHDL code that will become the description for the real hardware as well as checking the outputs. The implementation's top-level source file is denoted by filename-pad. vhd, which represents the physical "pads" of the FPGA's package. The filename-pad. vhd file uses Xilinx device family dependent logic black-boxes to select specifically how an input or output pad should be configured. For example, the IBUFGDS and IBUF are both black boxes in VHDL listing 1. The pad configuration parameters can also be specified using a constraints file, however specifying the configuration in a filenaiepad. vhd allows M further compatibility among tools from different vendors, such as ModelSim . Only VHDL code that describes the entire implementation uses the filename-pad.vhd file. The chirp-generating implementations that do not use the PowerPC have a f ilename-pad.vhd file. The VHDL code specifies the physical connections between Configurable Logic Blocks (CLBs), the basic building block of an FPGA. Programming the CLBs configures them as flip-flops, encoders, and other logic elements, which are connected in a fixed configuration implementing the desired functionality . There are also many different types of specialized fixed ASIC components on an FPGA, such as the MGTs and PowerPC core. The proper way to correctly specify the connections and topology to imply specifically the hardware desired must be done by following vendor-specific VHDL coding standards. Often these specification are provided in a separate "Synthesis Manual," which may be provided by the FPGA vendor and/or the simulation and synthesis vendor (i.e. Mentor Graphics@ or Simplicity®). For example, the FPGA provided by Xilinx@ may have the VHDL configuration code compiled by Xilinx@ software, or Precision SynthesisTM from Mentor Graphics@, or similar product from Synopsis@. Following the synthesis specification provided by the vendor of the 118 CHAPTER 4. ELECTRONIC DESIGN tool being used for the particular FPGA selected is essential for an accurate simulation and successful implementation[51]. The UNISIM VHDL libraries provide all the primitive black-boxes along with the timing parameters for accurate simulation and are supplied by Xilinx@. As mentioned earlier, there are several increasingly complicated implementation of the chirp-generating FPGA code. The first chirp-generating implementation did not use the MGT or a graphical user interface. For simplicity, the buttons on the ML405 development board increased or decrease the number of cycles in a chirp by five. The chirp output was a gated clock limited to 400MHz chirps without any encoding functionality. A gated clock is a poor implementation because the first and last cycle of a chirp would be randomly truncated, causing degraded performance. The output frequency was fixed by the clock synthesizer. In the next design iteration the MGT configuration was added. The MGT allowed phase encoded chirps to be transmitted at the maximum speed capable of the FPGA development board. The output chirp was hard-coded for simplicity (the configurable implementation was to use the PowerPC processor and Ethernet controller) and could only be changed by recompiling the FPGA source code, a time consuming task. The internal FPGA processor architecture is very flexible and very complex, with several different buses, memory architectures, bridges, input-output controllers, and processors (MicroBlaze m and PowerPC"). Figure 4-16 shows a simplified depiction of the organization of the FPGA's embedded processor bus as configured for this implementation. The PowerPC has direct access to on-chip SRAM configured for both program instructions and program data. High-speed peripherals are connected directly to the PowerPC on the processor local bus. While all peripherals can be placed on any bus, good design practices separate high-speed components that only communicate with the processor from slower peripherals that may communicate with 4.6. FPGA HARDWARE DESCRIPTION + Ethemet UART 119 BrideBM GPIO LEDs GPIO Buttons chirp2 Figure 4-16: Block diagram of FPGA PowerPC processor configuration. each other as well as the processor. The processor local bus (PLB) bridge connects the PowerPC to the on-chip peripheral bus (OPB). The "UART" allows the program running on the PowerPC to send simple debug messages via RS-232 to a terminal. Debugging problems with Ethernet communication was greatly aided by the "UART". The general purpose input output (GPIO) peripherals are generated automatically via a peripheral wizard in XPS and can be connected to anything. The "GPIOLEDs" peripheral was configured to set LEDs as another simple debug status output. The "GPIO buttons" allowed the program running on the processor to check the buttons on the ML405 development board. The only custom peripheral was "chirp2", the second implementation which transmits the phase-encoded chirp. The organization of the "chirp2"IP is shown in figure 4-17. Many of these source files were automatically generated skeleton template files from XPS that were later appended and modified as needed. The chirp2. vhd and user-logic sources were automatically generated by the XPS peripheral wizard. They provide a register transfer CHAPTER 4. ELECTRONIC DESIGN 120 chirp2 IP [chirp2.vhd] PowerPC bus interface glue logic [user..logic.vhd] control register glue logic [rocketioglue .vhd] control and MGT glue logic Figure 4-17: Top level block diagram of chirp2 VHDL code. interface to the PowerPC processor that allows the program to write to registers that configure and control this peripheral. These files must be modified to bring input and output signals to the custom peripheral. All of the custom logic is placed in the user-logic.vhd source file. Specialized hardware, or "cores", in the FPGA are configured with a Xilinx@ tool called CoreGen. Optimized implementation of complex functions, such as a fastfourier-transform, are also provided through CoreGen as black-boxes. The MGT was configured through CoreGen, which generated a VHDL template from all of the setting specified in the CoreGen Wizard. These files are then integrated into the design by instantiating the provided component code into a higher level component. Figure 4-17 shows the MGT configured by CoreGen integrated into the chirp2 IP wrapped by the rocket io-glue. vhd source file. The CoreGen generated code needs several modifications to work properly in this design. The clock distribution and connections were not setup as required. Details on setting up the MGT clocks is out of the scope of this thesis and requires careful study of [58]. 4.6. FPGA HARDWARE DESCRIPTION 121 Figure 4-18: VHDL code organizational block diagram of the "chirp2" peripheral implementing the rocketIO multi-gigabit-transceiver and support FPGA cores. All of the custom peripheral management code as well as the implementation of the MGT are contained in rocket io-glue. vhd. This code makes all the proper connections between the MGT hard-wired cores and the higher-level custom logic. VHDL listing fragment 2 shows the custom logic that periodically sends the configured chirp by loading the output register with data when the counter reached delay-time. The majority of the rocket io.glue. vhd is shown in block diagram 418. The "MGT clock" black-box buffers the user clock (set by the external VCO), separating the clock domains, and phase locking to the MGT user clock. Synchronization with adjacent MGT blocks as well as converting the MGT clocks to the proper frequency is also handled by the "MGT clock". The MGT wrapper encapsulates the hundreds of RocketIO configuration parameters to simplify the interface for higherlevel components. Most of the complexity of the MGT configuration is due to the hardware implementation of different high-speed encoding and decoding standards. The "user clock out" signal is generated to synchronize the high-speed parallel data to the rest of the FPGA logic. The "digital clock management" (DCM) buffers and reduces the clock rate of the "system clock" to drive the MGT power-on reset and initialization hardware. The receiver is not connected in this implementation. The MGT hardware comes in pairs of transceivers. The "unused wrapper" component is CHAPTER 4. ELECTRONIC DESIGN 122 VHDL 2 : txdata-p process in rocketioglue.vhd 1 2 3 4 5 purpose provides data to MGTOTX type : sequential inputs : usr-clk-i , reset outputs: txdata-p : process ( usr-clk-i , tx-system-ready -i -- chirppatt ern , delay..time) 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 begin -process txdata-p if tx-system-ready-i = '0' then counter <= (others = > mgtO.txdata-i <= (others => elsif usr-clk-i 'event if and counter >= delay-time -- asynch ronous reset (active low) '0'); '0'); usr-clk-i = '1' then rising clock edge then counter <= (others = > '0'); mgtO-txdata-i <= chirp-pattern; else counter <= counter + 1; mgtO-txdata-i end <= (others => '0'); if; end if; end process txdata-p; the unused transceiver in the same ASIC MGT block as the utilized MGT [58]. Some of the status and logic indicators were brought out to the LEDs to help with debugging. System ready, clock management phase locking, reset signals, and buffer ready status conditions were monitored via the LEDs. Normally every level of VHDL code is simulated individually to check correct operation, and simulated as a system to check integration. The complexity of the MGT made simulation infeasible due to the complexity of setup and amount of time to run. Sometime compiling the VHDL code and running on the FPGA, with carefully chosen debug signals made available to test ports, is the best way to debug an implementation. Other options for debugging code are available, such as ChipScope" from Xilinx, however they were not within our budget. 123 4.7. SOFTWARE 4.7 Software There are two software platforms currently under development. The PowerPC on the FPGA runs an Internet server that services requests from other devices communicating via the TCP/IP sockets port. A PC runs a user interface that allows changes to the transmitted pattern and frequency of periodic chirp. The software was developed with the help of an undergraduate, Roshni Cooper, as a part of the Undergraduate Research Opportunities Program (UROP) [59]. While the code is usable, and has basic functionality required to configure the chirp peripheral, much more work will be done as this project progresses. Future software development will allow MATLAB@ running on the LeCroy oscilloscope, through the Java sockets library, to signal the FPGA to transmit a particular code. MATLAB@ will then trigger the oscilloscope and collect and analyze the data from the return RF signal. The current implementation has the embedded PowerPC processor running a very simple program to service requests from the user interface. The source code is located in Appendix E. There are three libraries and associated source code used for this program; e enet .c : A customized high-level Ethernet interface which calls the Xilinx provided network APIs. " xromicd. c : Provides the interface to the ML405's LCD display. This source code was a part of some Xilinx demo code. " chirp2. c : Interface device driver for the chirp2 peripheral. The top level source file is chirpnet. c. First the "chirp2" and "Ethernet" pe- ripherals are initialized. Then the main program loop services connection requests with enet-accept(). Up to MAXNET.CONNS from different computers are allowed. CHAPTER 4. ELECTRONIC DESIGN 124 This feature will be useful when multiple measurement stations must communicate to triangulate a tag's position. Commands are processed and parsed with the enet.proc-conns 0 function, which checks each connection and executes any pending requests. Only one command, "chirp2,delay,high, low;", has been implemented; where delay is an integer specifying the number of cycles between chirp transmissions, and high and low give the binary code for the chirp in two 16bit words. lo W" w~f Figure 4-19: chirp ui. pl User interface program written in PERL. The simple user interface, shown in figure 4-19, communicates over Ethernet with a TCP/IP sockets library. Programmed in PERL, the interface is portable, simple, and easily extended. The IP address and the port number of the measurement station is entered under "Host TCP/IP Address" and "Port." Two buttons are provided to connect and disconnect to the measurement station. Many patterns may be specified by the three columns of configurations, which are stored on disk for later use. The selected pattern is sent to the measurement station when the "Send" button is pressed. The user interface, while functional and in use, is preliminary, and therefore the full source code is not provided. However the most important code fragments are given in PERL listing 1. A TCP/IP socket is opened to the measurement station 125 4.7. SOFTWARE with 10: :Socket: :INET->new( ... ). The handle $sock is then written to, read from, and closed the same as any file handle. The set-chirp( ... ) subroutine demonstrates how the "chirp2, delay,high, low;" command is assembled and sent. PERL 1 : Code fragments illustrating how to use TCP/IP sockets. use use use use use IO:: Handle; 10:: Socket ; Net : : hostent POSIX qw/ s e ts id /; subs qw/client-connect /; sub host-connect { $sock = 10:: Socket ::INET->new( $sock->autoflush ( 1 PeerAddr => $host => 'tcp ' Proto PeerPort => $port ); } sub host.disconnect { return unless defined close ( $sock $sock } sub set.chirp { my $delay = shift = shift rny $high = shift rry low host-send ( "chirp2 , $delay sub host-send { my $data = shift print $sock $data."\n" } sub host-recv my $data = { $sock->recv( return $data; $data,128 ); Shigh ,$low" ); 126 CHAPTER 4. ELECTRONIC DESIGN Chapter 5 Testing and Characterization All of the results presented here are very preliminary. The 915MHz devices of interest have not yet been successfully fabricated (these devices should ready withing the first two months of the PhD program). The purpose of the data taken thus far is to confirm that the design is on the right track. To check our first simplified designs, the 3pum fabrication process, and the test setup, some data was taken. Until recently, we did not have the necessary test equipment (oscilloscope, amplifiers, RF prototyping components, etc.) therefore very little presentable data was collected. However, the following is useful as an illustration of the operation of three SAW devices along with some insight into their performance. 5.1 SAW Device Ox2C9 Device Ox2C9 was a band-pass filter with a reasonably good filter response. See table 5.1 for the detailed specifications. Figure 5-1 shows the CAD artwork (layout was done in MAGIC). This is a bi-directional device, and for the purposes of this data, one port is the input and one is the output. The transmissibility (measurement setup 127 CHAPTER 5. TESTING AND CHARACTERIZATION 128 is explained in section 4.4) shows very good band-pass filtering with a pass-band of ~ 20MHz (figures 5-2 and 5-3). A simple impedance match was tried and seemed to work. As shown in figures 5-4 and 5-5, the matching network appears to improve the impedance. The pass-band loss also improved about 3dB after the match was made. One possible explanation for the curlicues shown in figure 5-5 is that the resonant reflections were confusing the RF Network Vector Analyzer (more investigation is underway). Figure 5-6 shows the effect of internal back-and-forth reflections between the input and output IDTs. The magnitude of the internal reflections may be in part due to an impedance mismatch. The data is taken at the output port, and a short 4-cycle chirp is sent into the input port. The first signal that is detected is unwanted feedthrough from the input to output port. The main signal is the largest waveform to be received at the output. The signals that show up after the main signal are caused by additional reflections off of the input and output IDTs. These macro reflections are a set of waves bouncing between the input and output IDTs. There are also intra-finger reflections in each IDT, which are shown in figure 5-7. The secondary reflections are discussed in section 2.2. IDT line-width and spacing IDT fingers IDT Length IDT Apodization IDT Rail Width Pad width and height Input to output separation 3pm 50 200pm 191pm 20pm 200pm 1050pm Table 5.1: Specifications for device Ox2C9 5. 1. SAW DEVICE OX2C9 129 ... .. Figure 5-1: Drawing of SAW filter device Ox2C9 MsTr4Uanssoen Figure 5-2: Lo HaM 10.0 I/ Ref -0.00 a Frequency response from 50MHz to 1GHz. 322.249MHz. The pass band is at CHAPTER 5. TESTING AND CHARACTERIZATION 130 M:TvWitiSSi@fl 323MHz - L" Ma '.0SAVt -30' 00 dl ir ~ aleenM , i I I -t~i scal 5N ! S.0 4 -- 41 s0.0p aio0 start MD. o0 of Figure 5-3: Pass-band bandwidth shown as Smith I U 75 c7?IS ~1-=I 30 e~-' It 20MHz. ~323MHz §'-Z" Figure 5-4: Smith chart before impedance matching circuit. 5.1. SAW DEVICE OX2C9 131 323MHz Figure 5-5: Smith chart after impedance matching circuit with 27nH and 10pF. MOGmUM value staFus P1:freq(C2) 324.9 htz It P2frc(C3) P3:ddeley(C2,.. 337.0AMlz 11.72 ns ar c P4fre4C2) 324.9htz b P5>- - P- - - P7:-- - P:- -- tw Figure 5-6: Internal reflection between two ID)Ts in device 0x2C9. 132 CHAPTER 5. TESTING AND CHARACTERIZATION Figure 5-7: Example of inter-finger reflections within a single IDT. 5.2. SAW DEVICE OX2E8 5.2 133 SAW Device Ox2E8 With only 20 fingers and half the apodization (IDT finger overlap) of device Ox2C9, device Ox2E8 has a much lossier response. Not as much data was collected as for Ox2E8 due to lack of time. Figure 5-9 shows the measured band-pass responses as well as signs of electromagnetic feed-through, which is the coupling of the input signal to the output via electromagnetics[5]. The impulse response shown in figure 5-10 has been labeled to show the relationship of the output signal to the number of fingers in the device. For this device, 20 fingers or 10 finger pairs on each IDT yields a 20cycle output. IDT line-width and spacing IDT fingers IDT Length IDT Apodization IDT Rail Width Pad width and height Input to output separation 3pm 20 100pm 91ptm 20pm 200pm 36 0pm Table 5.2: Specifications for device Ox2E8 a 1 - Figure 5-8: Drawing of SAW filter device Ox2E8 134 CHAPTER 5. TESTING AND CHARACTERIZATION P Tr sloped Log14mg10.0 dEl ~t -40.006 .t.n ........ I I Hjmtitl~PI wit ~g~* ~ - g. 2S off k O - response tooM Figure 5-9: The sloped frequency response is due to electromagnetic feed-through[5]. . . ...... . .. .......... ...... .......... 20 MeNWse vale Pft.ffeC2) 217.2 hL Aus P2freq(C3) PMddelay(C2,.. -2.80 Hz P4tfreq(C2) PM-- - P&- P7 P - 217.2 Miz A X1- 0.00 ns .Y5. I 77 atX. 3.07 ns _UA. 'ggRL Figure 5-10: Impulse response of SAW filter Device Ox2E8. The number of cycles has been labeled (1,10,and 20). Channel Z2 is the zoomed view of Channel C2. 5.3. SAW DEVICE OXOE3 5.3 135 SAW Device OxOE3 One of the four saw reflectors that were tested is presented here. OxOE3 was the only SAW reflector device that was tested with the fast 5GHz oscilloscope. Limited data was taken on three other SAW reflectors with a 500MHz oscilloscope. Due to the inadequate bandwidth of the 500MHz oscilloscope, that data is not worth presenting. Figure 5-11 show the device with five sets of reflector gratings. The response from an 11-cycle chirp signal is shown in figure 5-12. Two groups of reflected signals are shown, though more are there, just out of view. Only the reflections from the first three gratings are measurable, as too much of the signal is lost by the time the surface wave reaches the fourth and fifth reflector. The delay between the interrogation chip and the round trip to and back from the first reflector is 171ns. This delay corresponds to the surface velocity and distance between the input IDT and first grading. The surface velocity is ~ 4000m/s and the distance between the gratings is 300pm. The very first return response will start at 150ns. However the first detectable response will be shortly after because more than one wave will need to couple into the IDT. As shown in figure 5-12, the time until signal is significant is 171ns, as expected. IDT line-width and spacing IDT fingers IDT Length IDT Apodization IDT Rail Width Pad width and height Reflector spacing 3tm 50 300pm 291pm 20pm 200pm 300pm Table 5.3: Specifications for device Ox0E3 CHAPT ER 5. TESTING AND CHARACTERIZATION 136 .. .. Figure 5-11: Drawing of SAW filter device 0x0e3 -tx chirp + input IDT reflection i1011l second reflection 171ns ---- ------------- first reflection --T - ------- ...... .... . Ism Mess P:freoC2) '2.28 0Hz x P21req(C3) Paddey(C2,.. 29.1l7ns 3362MHz X - M&Ti P4:freq(C2) 2.28 0Hz x Xi. .20rs )(2m 159.5 AX- 170.15ns I0X3s 5843PMt 411352007 1:5934 PM Figure 5-12: The four cycle chirp response of device OxOE3. Channel Z3 is the zoomed view of the first reflection on Channel C3. Chapter 6 Conclusion From the beginning we knew this project was very ambitious. Micro-fabrication projects are particularly difficult to complete over the short duration of a masters degree. Additional challenges to this project were the high-frequency electronics design and testing. An an enormous amount has been accomplished and learned in the two years since the start of this project. Extensive investigations into the state-ofthe-art of existing solutions and an analysis of probable performance of SAW devices were completed. The idea of a SAW based transponder with ranging capabilities was conceptualized and a patent was filed on the technology. The implementation of the SAW transponders is now progressing quickly and should conclude with positive data and results soon. Significant progress has been made understanding the properties of lithium niobate and utilizing this substrate for SAW applications. The first simple models of SAW operation were developed, implemented, and verified with our initial devices. The designs of new devices, currently being fabricated, were based on these models. Three masks were drawn using two CAD tools, "layout" and "Magic." The foundation has been laid for quickly implementing new designs using the tools and methods developed 137 CHAPTER 6. CONCLUSION 138 in the thesis. The most difficult aspect of this project was attaining proficiency in microfabrication of SAW devices. The majority of the problems were due to inexperience with the complicated processes and laboratory methods. The use of numerous tools were learned and successfully utilized. Amorphous silicon dioxide masks and lithium niobate SAW substrates were selected and purchased based on our requirements. Cleaning and preparation processes were learned and modified for our uses, allowing us to recycle wafers from unsuccessful runs, saving a significant amount of money.. I became proficient in the use of two lithography aligners, one of which significant upgrades were made to meet requirement of this project. Knowledge necessary to use the scanning electron beam lithography tool has allowed inspection and writing of masks. After debugging, the lift-off processes we achieved reliable fabrication of devices. 3pm devices were successfully fabricated. Several 3inch quartz masks with 1.1pm and 300nm devices on them were successfully fabricated. Debugging of the mask making process is nearly complete. The tools and hardware necessary for mounting the SAW devices to suitable packages and wire-bonding them to the leads has been figured out and implemented. A lot of work as been accomplished in learning the details of microfabrication necessary to make our desired devices. The foundation for fabricating SAW transponders has been made, and the skill necessary for making our desired devices is ready for the final implementation. The architecture necessary for the electronics test suite was designed and developed to a point where devices are able to be tested. A prototype test suite has been assembled, with an FPGA signal source, supporting high-frequency electronics such as low-noise amplifiers, and a high-speed oscilloscope capturing return signals and debugging. Significant progress has been made in verifying that the electronics will work for the ultimate goals of this project. The FPGA hardware and software 139 has been developed sufficiently to generate the required signals. An Ethernet capable user interface program was written to communicate and control the FPGA. Impedance matching of the SAW devices to the standard 50Q electronics has been figured out. Topologies for testing the various SAW devices has been prototyped and has collected some useful data. The equipment acquired should be nearly everything necessary to attain our initial results for ranging measurements. Data taken thus far with the electronics looks encouraging and good results are expected soon. Basic testing of devices made to date has been accomplished, and the results are reasonable. The test setup and methods for testing SAW filters has given us result from four 3pm devices. Frequency and impulse responses of the 3pm devices have been measured and correspond to the expected results. The effect of impedance matching the SAW IDTs has been verified to be an improvement. The response of several 3pm reflector devices have also been investigated. Initial test results show that the available test equipment, such as the RF Network Vector analyzer and oscilloscope, are adequate. The work left to be done before ranging results can be attained are as follows. Fabrication will continue with making the 915MHz and 2.4GHz devices. The processes to make the devices have been developed and only need to be tweaked before working devices are made. Once the high-frequency devices are made, the electronics suite will be put to the test. Some significant debugging is expected and different approaches to testing the devices will be explored. Testing of all of the different devices will take place after the electronics have been fully debugged. Following the collection of the test data, a paper containing the results will be published. The end goal of this project is to transfer SAW transponder ranging and localization technology to industry. Localization using small passive transponders has excited several sponsors of the 140 CHAPTER 6. CONCLUSION MIT Media Laboratory. The usefulness of the project is evident in the amount of work being put into other less elegant solutions to the tracking problem, summarized in section 1.3. Successful completion of this project will solve many tracking problems for which there is currently no practical solution. Bibliography [1] K. Finkenzeller, RFID Handbook. West Susses, England: John Wiley & Sons, second ed., 2003. [2] A. Slobodnik, E. Conway, , and R. Delmonico, Microwave Acoustics Handbook, vol. 1A. Surface Wave Velocities. L.G. Hanscom Field, Bedford, Massachusetts: Air Force Cambridge Research Laboratories, 1973. [3] T. H. Lee, Planarmicrowave engineering: a practical guide to theory, measurement, and circuits. Cambridge UK: Cambridge University Press, 2004. [4] D. M. Pozar, Microwave Engineering Third Edition. Hoboken, NJ: John Wiley & Sons, Inc., 2005. [5] C. K. Campbell, Surface Acoustic Wave Devices for Mobile and Wireless Communications. San Diego: Academic Press, 1998. [6] OmniSTAR 8400HP User Manual, (http: //www. omnistar. com. au). [7] G. Loegering, "A performance comparison between a SCAT-1 DGPS system and the Omnistar DGPS system," PositionLocation and Navigation Symposium, vol. 48, pp. 310-314, APRIL 2004. 141 BIBLIOGRAPHY 142 [8] C. Shuxin, W. Yongsheng, and C. Fei, "A study of differential GPS positioning accuracy," in Microwave and Millimeter Wave Technology 3rd International Conference on, vol. 17, pp. 361 - 364, August 2002. [9] Carios information, (vdg@iis.fraunhofer.de). [10] A. Pohl, R. Steindl, and L. Reindl, "The "intelligent tire" utilizing passive SAW sensors measurement of tire friction," Instrumentation and Measurement, IEEE Transactionson, vol. 48, no. 6, pp. 1041-1046, December 1999. [11] R. W. Brocato, "Passive microwave tags," Sandia National Laboratories, no. SAND2004-4924, 2004. [12] R. W. Brocato, "Programmable SAW development," Sandia National Laboratories, no. SAND2004-5255, 2004. [13] L. Reindl, "Wireless passive SAW identification marks and sensors," in 2nd Int. Symp. Acoustic Wave Devices for Future Mobile Communication Systems, (Freiburg, Germany), pp. 1-15, Institute for Microsystem Technology, AlbertLudwigs-University Freiburg, March 2004. [14] H. Matthews, ed., Surface Wave Filters: Design, Construction, and Use. New York: John Wiley & Sons, 1977. [15] H. Smith, "Fabrication techniques for surface-acoustic-wave and thin-film optical devices," Proceedings of the IEEE, vol. 62, pp. 1361-1387, October 1974. [16] RF Code, (http: //rf code. com/). [17] RF SAW,(http://rf saw. com/). [18] M. I. Skolnik, Introduction to Radar Systems. Boston Massachusetts: McGraw Hill, 1980. BIBLIOGRAPHY 143 [19] J. D. Taylor, ed., Introduction to Ultra-wideband Radar Systems. Boca Raton: CRC Press, 1995. [20] A. V. Oppenheim and R. W. Schafer, Discrete-time signal processing. New Jersey: Prentice-Hall Inc., 1998. [21] L. Reindl, G. Scholl, T. Ostertag, H. Scherr, U. Wolff, and F. Schmidt, "Theory and application of passive SAW radio transponders as sensors," Ultrasonics, Ferroelectricsand Frequency Control, IEEE Transactions on, vol. 45, no. 5, pp. 1281-1292, 1998. [22] B. K. Sinha, "A stress and temperature compensated orientation and propagation direction for surface acoustic wave devices," IEEE Transactions on Ultrasonics, Ferroelectrics, and Frequency Control, vol. 34, no. 1, pp. 64-74, 1987. [23] M. Rlinami, H. Morikawa, and T. Aoyama, "An adaptive multipath mitigation technique for gps signal reception," IEEE Vehicular Technology Conference Pro- ceedings, vol. 2, no. 15-18, pp. 1625-1629, 2000. [24] C. J. Comp and P. Axelrad, "Adaptive SNR-based carrier phase multipath mitigation technique," Aerospace and Electronic Systems, IEEE Transactions on, vol. 34, no. 1, pp. 264-276, 1998. [25] R. E. Phelts and P. Enge, "Multipath mitigation for narrowband receivers," IEEE Position Location and Navigation Symposium, no. 13-16, pp. 30-36, 2000. [26] W.-J. Chang and J.-H. Tarng, "Effects of bandwidth on observable multipath clustering in outdoor/indoor environments for broadband and ultrawideband wireless systems," Vehicular Technology, IEEE Transactions on, vol. 56, no. 4, pp. 1913-1923, 2007. 144 BIBLIOGRAPHY [27] D. C. K. Lee, K. W. Sowerby, and M. J. Neve, "Extracting fine multipath detail from measured data at 5.8 GHz," IEEE Vehicular Technology Conference, vol. 1, no. 17-19, pp. 74-78, 2004. [28] P. C. Ching and H. C. So, "Two adaptive algorithms for multipath time delay estimation," Oceanic Engineering, IEEE Journal of, vol. 19, no. 3, pp. 458-463, 1994. [29] C.-T. Chen, Linear system theory and design. New York: Oxford university press, third ed., 1999. [30] P. Maes, T. Darrell, B. Blumberg, and A. Pentland, "The ALIVE system: wireless, full-body interaction with autonomous agents," Multimedia Syst., vol. 5, no. 2, pp. 105-112, 1997. [31] J. Hightower and G. Borriello, "Location systems for ubiquitous computing," Computer, IEEE, vol. 34, no. 8, pp. 57-66, 2001. [32] A. Y. Benbasat and J. A. Paradiso, "An inertial measurement framework for gesture recognition and applications," in Gesture Workshop, pp. 9-20, 2001. [33] A. Smith, H. Balakrishnan, M. Goraczko, and N. Priyanthae, "Tracking moving devices with the cricket location system," in 2nd International Conference on Mobile Systems, Applications and Services (Mobisys 2004), (Boston, MA), June 2004. [34] A. Savvides, M. Srivastava, L. Girod, and D. Estrin, Wireless sensor networks, chapter Localization in sensor networks. Norwell, MA, USA: Kluwer Academic Publishers, 2004. 145 BIBLIOGRAPHY [35] Chipcon Application Note AN042 - CC2431 Location Engine, (http://www.chipcon.com/). [36] Ubisense, (http://www.ubisense. net/). [37] M. Penza, G. Cassano, P. Aversa, F. Antolini, A. Cusano, A. Cutolo, M. Giordano, and L. Nicolais, "Recognition of organic solvents molecules by simultaneous detection using SAW oscillator sensors and optical fiber devices coated by Langmuir-Blodgett Cadmium Arachidate films," IEEE Transactions on Ultrasonics, Ferroelectrics, and Frequency Control, vol. 58, no. 8, pp. 1493-1502, 2006. [38] R. W. Brocato, "Passive wireless sensor tags," Sandia National Laboratories, no. SAND2004-1288, 2006. [39] D. E. Smalley, Q. Y. J. Smithwick, and V. M. Bove Jr., "Holographic video display based on guided-wave acousto-optic devices," in Proceedings of SPIE PracticalHolography XXI, vol. 6488, February 2007. [40] Thoronics, (http: //www. thoronics. com/). [41] K. K. Wong, ed., Properties of Lithium Niobate. London, UK: INSPEC, 2002. [42] K. K. Berggren and H. I. Smith, Class Notes for MIT Course 6.781 "Submicrometer and Nanometer Technology". Cambridge Massachusetts: Massachusetts In- stitute of Technology, 2007. [43] J. D. Plummer, M. D. Deal, and P. B. Griffin, Silicon VLSI Technology. Australia: Pearson Education International, 2000. [44] J. G. Goodberlet, "Patterning 100nm features using deep-ultraviolet contact photolithography," Applied Physics Letters, vol. 76, no. 6, pp. 667-669, 2000. BIBLIOGRAPHY 146 [45] J. G. Goodberlet and B. L. Dunn, "Deep-ultraviolet contact photolithography," MicroelectronicEngineering, vol. 53, pp. 95-99, 2000. [46] W. Kern, Handbook of Semiconductor Wafer Cleaning Technology - Science, Technology, and Applications. William Andrew Publishing/Noyes, 1993. [47] J. L. Vossen and W. Kern, Thin Film Processes. New York: Academic Press Inc., 1978. [48] T. Bailey, B. J. Choi, M. Colburn, M. Meissl, S. Shaya, J. G. Ekerdt, S. V. Sreenivasan, and C. G. Willson, "Step and flash imprint lithography: Template surface treatment and defect analysis," Vacuum Science Technology, vol. 18, no. 6, pp. 3572-3576, 2000. [49] C. P. Fucetolao, "Resolution limits and process latitude of conformable contact nano-lithography," Master's thesis, Massachusetts Institute of Technology, 2007. [50] S. Berek, U. Knauer, and H. Zottl, "I-line lithography for highly reproducible fabrication of surface acoustic wave devices," SPIE Optical/LaserMicrolithogra- phy IV, vol. 1463, pp. 515-520, 1991. [51] Virtex-4 User Guide. San Jose, CA: Xilinx@, 2006. [52] EDK 9.1 Documentation. San Jose, CA: Xilinx@, 2006. [53] ModelSim@ SE User Manual. Wilsonville, Oregon: Mentor Graphics@, 2007. [54] ML405 User Guide. San Jose, CA: Xilinx@, 2007. [55] ML40x Getting Started Tutorial. San Jose, CA: Xilinx@, 2006. [56] P. R. Gray, P. J. Hurst, S. H. Lewis, and R. G. Meyer, Analysis and design of analog integrated circuits. New York: John Wiley & Sons, Inc., 2001. BIBLIOGRAPHY 147 [57] P. J. Ashenden, G. D. Peterson, and D. A. Teegarden, The Systems Designer's Guild to VDHL-AMS. San Francisco California: Morgan Kaufmann, 2003. [58] Virtex-4 RocketIO Multi-Gigabit Transceiver User Guide. San Jose, CA: Xilinx@, 2006. [59] R. Cooper, "Initial implementation of the pTags localization transponders," Master's thesis, Massachusetts Institute of Technology, 2007. [60] K. Pahlavan, X. Li, and J.-P. Mikels, "Indoor geolocation science and technology," Communications Magazine, IEEE, vol. 40, no. 2, pp. 112-118, 2002. [61] C. S. Hartmann, D. T. Bell Jr., and R. C. Rosenfeld, "Impulse model design of acoustic surface-wave filters," Sonics and Ultrasonics, IEEE Transactions on, vol. 20, pp. 80-93, April 1973. [62] P. Ventura, J. M. Hod6, M. Solal, J. Desbois, and J. Ribbe, "Numerical methods for SAW propagation characterization," IEEE Ultrasonics Symposium, pp. 175186, 1998. [63] K. Uehara, C.-M. Yang, T. Shibata, S.-K. Kim, S. Kameda, H. Nakase, and K. Tsubouchi, "Fabrication of 5-GHz-Band SAW filter with atomically-flatsurface AlN on sapphire," IEEE Ultrasonics Symposium, vol. 1, no. 23-27, pp. 203-206, 2002. [64] F. Moeller, A. Rabah, M. A. Belkerdid, and D. C. Malocha, "Differential phase shift keying direct sequence spread spectrum single SAW based correlator receiver," IEEE Ultrasonics Symposium, pp. 189-193, 1994. [65] J. Temmyo and S. Yoshikawa, "On the fabrication and performance of SAW delay 148 BIBLIOGRAPHY line filters for GHz SAW oscillators," Sonics and Ultrasonics, IEEE Transactions on, vol. 25, no. 6, pp. 367-371, 1978. [66] L. B. Milstein and P. K. Das, "Surface acoustic wave devices," Communications Magazine, IEEE, vol. 17, no. 5, pp. 25-33, 1979. [67] R. W. Brocato, "A zero-power radio receiver," Sandia National Laboratories, no. SAND2004-4610, 2004. [68] K.Yamanouchi, G.Shimizu, and K.Morishitat, "2.5 GHz-range SAW propagation and reflection characteristics and application to passive electronic tag and matched filter," IEEE Ultrasonics Symposium, pp. 1267-1270, 1993. [69] Skeie et al, "Surface acoustic wave passive transponder having acoustic wave reflectors," United States Patent 4, 625, 208, November 25, 1986. [70] Hartmann et al, "Single phase unidirectional surface acoustic wave transducer and improved reflectors," United States Patent 7,173, 360, February 6, 2007. [71] Lanzl et al, "Dual mode tracking system," United States Patent 6, 353, 3406, March 5, 2002. [72] Nysen et al, "Passive interrogator label system having offset compensation and temperature compensation for a surface acoustic wave transponder," United States Patent 4, 734, 698, March 29 1988. [73] Skeie, "Surface acoustic wave passive transponder having amplitude and phasemodifying surface pads," United States Patent 4, 625, 207, November 25, 1986. [74] Nysen et al, "System for interrogating a passive transponder carrying phaseencoded information," United States Patent 4, 725, 841, February 16, 1988. BIBLIOGRAPHY 149 [75] Epstein, "Passive transponders using acoustic surface wave devices," United States Patent 4, 059, 831, November 22, 1977. [76] L. Reindl, C. C. W. Ruppel, S. Berek, U. Knauer, M. Vossiek, P. Heide, and L. Oreans, "Design, fabrication, and application of precise SAW delay lines used in an FMCW radar system," Microwave Theory and Techniques, IEEE Trans- actions on, vol. 49, no. 4, pp. 787-794, 2001. [77] U. Wolff, F. L. Dickert, G. K. Fischerauer, W. Greibl, and C. C. W. Ruppel, "SAW sensors for harsh environments," IEEE Sensors Journal,vol. 1, pp. 4-13, June 2001. [78] J. Bachrach and C. Taylor, Book Chapter: Localization in Sensor Networks. Cambridge Massachusetts: Computer Science and Artificial Intelligence Laboratory at Massachusetts Institute of Technology, 2004. [79] D. Smalley and T. Pastureaud, "An eigenmode method for fast cascade of Pmatrices," Master's thesis, SAW Research and Development, TEMEX Microsonics, 2005. [80] S. Lindebner, H. H. Friihauf, J. Heubeck, R. Wansch, and M. Schiihler, "Evaluation of direction of arrival location with a 2.45GHz smart antenna system," in Proceedings of Signals, Sensors and Devices, (Sousse), 2005. [81] K. Yamanouchi, G. Shimizu, and K. Morishita, "2.5 ghz-range saw propagation and reflection characteristics and application to passive electronic tag and matched filter," in Ultrasonics Symposium, 1993. Proceedings., IEEE 1993, vol. 2, pp. 1267 - 1270, October 1993. [82] L. Reindl and W. Ruile, "Programmable reflectors for SAW-ID-tags," in Ultrasonics Symposium, IEEE Proceedings, vol. 1, pp. 125 - 130, October 1993. 150 BIBLIOGRAPHY [83] D. P. Morgan, "Reflective array modeling for saw transducers," in Ultrasonics Symposium, 1995. Proceedings., 1995 IEEE, vol. 1, pp. 215 - 220, November 1995. [84] OPB PCI v1.02.a User Guide. San Jose, CA: Xilinx@, 2006. [85] PowerPC405 ProcessorBlock Reference Guide. San Jose, CA: Xilinx@, 2007. Appendix A Lithography Masks A.1 Mask 1 Generation Scripts Mask 1 was generated using TCL scripts located in the ./msk/saw.1_3.10.2006/scripts/ directory. The make-all. tcl script was used to layout the majority of the mask. This script uses the saw .tcl library of procedures. After the make-all.tcl script was run, some manual touch-up was necessary. First the devices were bumped around to make room for a horizontal alignment mark. Then the devices near the edges of the mask were duplicated in the remaining area. The devices on the left side were rotated and flipped so their common edge was towards the center of the mask. The make-string.tcl script was then run to make the title block at the bottom of the mask. This script makes use of a char. glyph data file which is generated by the make-char. pl script. Postscript documentation was automatically created. Some bugs in Magic 7.3 necessitate the use of a f ix.pl script to fix the postscript output. A comma-separated-variable listing of all the parameters for each device is output to the specs . csv file. Note that there is an error in the make-all . tcl script. When 151 APPENDIX A. LITHOGRAPHY MASKS 152 the first 9 saw devices are made the REF-Apodization is not set correctly for the first device. The half-fingers are not shorted correctly. This was not worth the time to correct before making the mask. TCL : make-all.tcl : Make All Make # the mask make.all.tcl filename authors Jason LaPenta (JL) date 3/4/2006 (JL) target Magic v7.3 [http version // op encircuit design. com/magic/] : 0.3 abstract : alpha (branch 0) generates parameterized SAW gratings and test features # Mask Layout <- I I (0,0) (70mm,70mm) II I I -> # the # the mask # the bottom is corner of 7 is (0,0) 4" .square, .with..an..inset ...to artwork of 15mm on each a square of 70x70mm for the # Changes # Date # 2/12/06 JL New File # 3/5/06 JL Added in # 3/6/06 JL redid layout Who saw creation library source saw.tcl giving artwork Description devices # side, dual port saws in to pack many a 70mm x 70mm area 153 A. 1. MASK 1 GENERATION SCRIPTS # next # moves available space on the die to the next proc next { } { global offset-x global offset-y global id incr id set pos set pos] [magic::box size size] [ magic::box set x [lindex $pos 0] set y [lindex Spos 1] set w [lindex $size 01 set h [lindex $size 1) #we've run { $y if of room, stop moving out < $h && $offset-x > [expr 70000/2} } { puts "\n\n..****OUT..OFROOM..***\n\n" return # check # if if if device last fits not then move { $x + $w > [expr magic::move magic::box (70000 / + 2) $offset-x - 2000] to $offsetx [expr $y - $h - move east [expr Sw + $offset-y] move east [expr $w + $offset-y] $offset.y] } else { magic::box if { $y < 2*$h } { set offset-x magic::box # output # makes postscript } { visible magic::select [expr 70000/2 position outputs + 1000] [expr 70000 - Soffset-x 1500] 154 APPENDIX A. LITHOGRAPHY MASKS 100 101 proc output { x y bw bh id } { 102 103 # 104 set bw2 Sbw limit width so 105 if documentation is readable { Sbw2 > 4000 } { 106 set bw2 4000 } 107 108 109 magic::box position 110 magic::box size 111 magic::plot $x $bw2 [expr $y - 450] [expr $bh + 450] postscript saw-{format "%\#05x" 112 113 # delete 114 magic::box 115 magic::select 116 magic::delete documentation labels size $bw2 450 visible 117 118 magic::box position 119 magic::box size 120 $x $y $bw $bh } 121 122 , 123 # 124 # 125 # # - x position of first finger 126 y - y position of first finger 127 # h - height of surrounding box 128 # w - width make-cell of surrounding box 129 - 130 131 proc make.cell { } { 132 133 global saw.spec the 134 135 # 136 set save pos box 137 set x [lindex 138 set y position for [magic::box [lindex $pos 0] $pos 1] later position] 139 140 set 141 set w $saw-spec(IDT-Width) 142 set I $saw-spec(IDT.Length) 143 set a $saw-spec (IDT-Apodization) 145 set lw $saw-spec(Leg-Width) 146 set po $saw-spec( Pad -Offset) 147 set pw $saw-spec(Pad-width) 148 set ph $saw-spec( Pad-height) 150 set in-f $saw-spec(IN-Fingers) 151 set r-f $saw-spec( REF-Fingers) 152 set r-s $saw-spec (REF-Spacing) 153 set r.n $saw-spec(REF..Number) s $saw-spec(IDT-Spacing) 144 149 $id] .ps metall labels 155 A. 1. MASK 1 GENERATION SCRIPTS 154 set s-l $saw-spec(Stop-Length) set id $saw-spec(ID) 155 156 157 box width of the 158 # 159 # 50um of padding 160 set 50 161 # width of the test features 162 set calculate the pad-x surrounding box 250 test-w 163 + Spw + $po + ($s+$w)*$inff] 164 set bw [expr 2*$pad-x 165 set bw [expr $bw + $r-n*($r-f*($s+$w)+$r-s )] 166 set bw [expr $bw + 2*$s1 + $po + $r-s + $test-w] 167 168 # calculate the box 169 # 50um of padding 170 set pad-y 50 height of the surrounding box 171 set bh 172 [expr 2*Spad-y + 2*$ph + (2*$1-$a)] 173 174 # make the surrounding box 175 make-outline $bw Sbh 20 176 177 # make the device 178 magic::box 179 make-saw position $x saw-spec [expr $x + $pad-x) $y $bw $bh Spad-x [expr $y + $pad-y] Spad-y 180 181 # make 182 magic::box 183 make-test structures test position [expr $x + $bw - $test-w ] [expr $y + Spad-y] $bh 184 185 # make index 186 magic::box 187 make-id number position [expr $x + $pad-y + $id 188 189 # document parameters 190 magic::box position 191 magic::box move 192 document saw.spec 194 # output postscript 195 output $x $y south 50 $x $y $bw $bh 193 196 drawing $x Sy $bw $bh Sid } # make-dual x - x first finger # y - y position of first finger # h - height # w - width position of proc make-dual of surrounding box of { surrounding } { box $s_1 + 2*Spo + $pw] [expr $y + $pad-y] 156 APPENDIX A. LITHOGRAPHY MASKS 208 209 global saw-spec 210 211 save the box 212 set pos 213 set x [lindex 214 set y position for [magic::box [lindex later position] $pos 0] Spos 1} 215 216 set 217 set w s $saw-spec(IDT-Spacing) $saw-spec(IDT-Width) 218 set 1 $saw-spec (IDT-Length) 219 set a $saw-spec(IDT-Apodization) 221 set lw $saw-spec(Leg-Width) 222 set po $saw-spec(Pad-Offset) 223 set pw $saw-spec(Pad-width) 224 set ph $saw-spec(Pad-height) 220 225 226 set in-f $saw-spec(IN-Fingers) 227 set r-s $saw-spec(REFSpacing) 228 set s-1 $saw-spec(Stop-Length) set id $saw-spec(ID) 229 230 231 232 # 233 # 50um of padding calculate the 234 set 235 # 236 set pad-x width box width of the surrounding box 50 of the test-w test features 250 237 238 set bw [expr 2*$pad-x 239 set bw [expr $bw + + 2*$pw + 2*$po + 2*($s+$w)*$in-f] Sr-s + 2*$s-l + 2*$po + Stest-w} 240 242 # calculate the box height of the surrounding box # 50um of padding 243 set pad-y set bh [expr 2*$pad-y 241 50 244 245 + 2*$ph + (2*$1-Sa)] 246 247 # make the surrounding box 248 make-outline $bw $bh 20 stop block 249 250 # make 251 magic::box position 252 magic::box size 253 magic::paint left [expr $x + Spad-x] $s-l [expr $bh - [expr $y + $pad..y] 2*$pad-y] metall 254 255 # Make Input and Output IDTs 256 set saw-spec(IDT-Fingers) 257 set saw-spec(Include-Pads) 258 magic::box move north [expr $ph] 259 magic::box move east [expr 260 make-idt 261 magic::box $saw-spec (IN -Fingers) 1 $s-l + 2*$po + Spw] saw-spec move east [expr ($s+$w)*$in-f + $r-s ) 157 A. 1. MASK 1 GENERATION SCRIPTS set saw-spec(Include-Pads) make-idt # make saw-spec right stop block east magic::box move south magic::box $ss1 size magic::paint metall magic::paint metall make # $ph] [expr $bh - [expr 2*$pad-y] structures test [expr $x + Sbw - position magic::box $pw + 2+$po + ($s+$w)*$in-f] [expr magic::box move $test-w make-id [expr position magic::box $x + $pad.y + $s.1 Sid document parameters # magic::box position magic::box move south 50 saw.spec document Sx $x drawing Sy $bw $bh output $x Sy $y $bw $bh output postscript # Sid -N- offset-x 1000 set offset-y 50 device set # id id 0 position start magic::box # #. . . . . postscript . . . . . files fileld . . . . . to print out a file exec rm -f set old ". /delps" # open set 1000 [expr 70000 position any delete exec device spacing of each offset set # Sy + $pad.y] make index number # # ] [expr $bh make-test . . . . docs specs.csv [open fileVars { IDT.Spacing specs.csv w 0600] . - 1500] + 2*Spo +$pw} [expr $y+ $pad-y} 158 APPENDIX A. LITHOGRAPHY MASKS 316 IDTWidth 317 IDT-Length 318 IDT-Apodization 319 IN-Fingers 320 REF-Fingers 321 REF-Spacing 322 REF.Number 323 REF-Apodization 324 REF-Leg-Width 325 Stop-Length 326 Leg-Width 327 Pad-Offset 328 Pad-width 329 Pad-height Include-Pads 330 331 } 332 333 set 334 foreach 335 set 336 } 337 puts buf "ID,-x,-y,-w,-h," v $fileVars { buf "$buf$v, ." Sfileld "$buf-\n" 338 339 340 341 342 # Make Devices 343 344 345 346 347 348 # make a few very long SAW 349 350 351 array set {ID} saw-spec { 0 10 352 {IDT-Spacing} 353 {IDT-Width} 354 {IDT-Length} 300 355 {IDT-Apodization} 270 356 {IN-Fingers } 357 {REF-Fingers} 40 358 {REF-Spacing} 2000 359 {REF.Number} 360 {REF-Apodization} 361 {REF-Leg-Width} 362 {Stop-Length} 363 {Leg-Width} 364 {Pad-Offset} 365 {Pad-width} 200 366 {Pad-height} 200 367 {Include-Pads} 368 369 } 10 20 10 270 20 200 20 50 1 devices 159 A. 1. MASK 1 GENERATION SCRIPTS 370 set $saw.spec(IDT-Length) len 371 372 foreach w { 10 5 3 373 374 set saw-spec(IDT-Spacing) $w 375 set saw.spec(IDT.Width) $w 376 set saw-spec(IDT-Apodization) [expr 378 set saw-spec(REF.Leg-Width) 20 379 set saw-.spec(ID) 380 make-cell 381 next 377 Sid 382 383 set saw.spec(REF-Apodization) 384 set saw-spec(ID) 385 make-cell 386 next 300 Sid 387 388 set saw-spec(REF-Apodization) 300 389 set saw.spec(REF-Leg-Width) 0 390 set saw.spec(ID) 391 make-cell 392 next Sid 393 394 } 395 396 397 # 398 # For testing only 399 400 # .............................................. 401 # make 402 # 403 # set 404 # 405 # next set vertical alignment marks saw-spee(REF-Spacing) 300 saw-spec(ID) $id make.cell 406 100 407 # set saw-spec(IDT.Length) 408 # set saw-.spec(IDT-Apodization) 90 409 # set saw-spec(REFApodization) 90 410 # make-cell 411 # next 412 1000 413 # set saw.spec(REF.Spacing) 414 # set saw-spec (IDT-Length) 415 # set saw-spec(IDT-Apodization) 90 416 # set saw-spec(REF-Apodization) 90 417 418 # make.dual 419 420 #return 421 # 422 423 testing 100 $len 3 * Sw] 160 APPENDIX A. LITHOGRAPHY MASKS 424 425 array set saw-spec 426 {ID} 427 {IDT-Spacing} 428 {IDT-Width} 429 {IDT-Length} 430 {IDT.Apodization} 296 431 {INFingers} 20 432 {REF.Fingers} 40 433 {REF.Spacing} 0 434 {REFNumber} 435 {REF-.Apodization} 436 {REF.Leg-Width} 437 {StopLength} 438 {Leg-Width} 439 {Pad-Offset} 50 440 {Pad-width} 200 441 {Pad-height} 200 442 {Include-Pads} 443 0 10 10 300 5 296 20 200 20 1 } 444 445 446 # finger 447 foreach 448 length len { 300 200 100 } foreach w { 10 5 { 3}{ 449 451 # set reflector apodiztion for fully shorted(0), 1/2 shorted(1) # and grating(2) 452 foreach 450 a { 0 1 2}{ 453 454 set saw-spec(IDT-Length) $len 455 set saw-spec(IDT-Spacing) $w 456 set saw-spec(IDT.Width) Sw 457 set saw-spec(IDTApodization) [expr Slen - 3 * $w] 458 459 if Sa { < 2}{ 460 set saw-spec(REF-Apodization) [expr 461 set saw.spec (REF-LegWidth) $saw-spec (LegWidth) 462 3 * Sw * $a] } else { 463 set saw-spec(REFApodization) $len 464 set saw.spec (REF..Leg.Width) 0 465 Slen - } 466 467 468 # 469 foreach spacing s {2.0 470 # 471 foreach i-f 1.3 number of in 2.5} { fingers {10 50 20} { 472 # 473 foreach number of reflector rf {2.0 fingers 1.0 1.5} { 474 475 set saw-spec(REF.Number) 5 476 477 # limit width with number of reflectors to no more than 161 A. 1. MASK 1 GENERATION SCRIPTS # 10000um set we * [expr int((Sr-f $i.f)*2*$w + ($s * $w))*5] * *i-f 2 int($s * $i-f * while { $we > 8000 } { -1 incr saw-spec(REFNumber) { $saw-spec(REF.Number) <= 2 } { if break; } if * (int(Sr-f set we [expr { $saw.spec(REFNumber) $i-f)*2*$w $i-f set saw-spec(REF-Fingers) [expr int(Srf set saw.spec(REF-Spacing) (expr int($s set saw-spec(ID) Sid make-cell magic::box $pos dual port IDTs 1} position [expr $y Soffset-x len { 300 200 100 foreach w making pos] [magic::box set y [lindex foreach before line move to next - 1000] } { { 3 5 10 } { set saw.spec(IDT-Length) $len set saw-spec(IDT.Spacing) $w set saw-spec(IDT.Width) $w set saw-spec( IDT.Apodization) foreach set i {10 20 50} [expr $len 3 * Sw] { saw-spec(IN.Fingers) $i foreach s {2.0 2.5 3.0 3.5} { set saw-spec(REF.Spacing) set saw-spec(ID) make-dual next Sid [expr 2 * $w))*$saw-spec(REF.Numb > 2 } { set saw-spec(IN.Fingers) next set pos + int($s*2*$w*$i)] * * Si.f)] Si-f * 2 * $w)] 162 APPENDIX A. LITHOGRAPHY MASKS #........ . . . . . . . . . . . . . . # make vertical magic::box alignment marks size 250 70000 # .... .. . . . . . . . . . . . . . . . # make vertical magic::box foreach i alignment marks size 250 70000 { 0 34750 69750 } { magic::box position magic::paint $i 0 metall } magic::box foreach i size 70000 250 { 0 69750 } { magic::box magic::paint position 0 $i metall } magic::select magic::plot postscript all.ps puts "fixing..postscript..files" #exec " . /fix" close $fileld {metall} A. 1. MASK 1 GENERATION SCRIPTS TCL : saw.tcl 1 5- - - - - - - - SAW Library # filename saw.tcl # authors Jason LaPenta (JL) # date : 3/2/2006 (JL) # target : Magic v7.3 [http://opencircuitdesign.com/magic/] # : 0.2 alpha (branch version # abstract generates parameterized SAW gratings and test # # Changes # 2/12/06 JL New File # 3/5/06 JL added in Who Date 0) features Description right pads on IDT # make.saw # makes a SAW at the cursor 's location # pass saw spec proc make-saw upvar { sawSpecName SsawSpecName x y bw bh pad-x saw-spec s $saw-spec w $saw.spec (IDT.Width) (IDT-Spacing) $saw-spec (IDT-Length) $saw.spec (IDTApodization) a 10 1w $saw-spec po $saw-spec ( PadOffset) pw $saw-spec (Pad-width) ph $saw.spec (Pad-height) in-f $saw.spec (IN.Fingers ) r-f $saw-spec (REFFingers) s-1 $saw-spec(Stop-Length) # save set the box..pos # reflector set r-space (Leg-Width) box position for [magic::box later position] spacing $saw-spec(REFSpacing) pady } { 163 APPENDIX A. LITHOGRAPHY MASKS 164 # make left magic::box stop block size magic::paint # [expr $bh - $s-l 2*$pad-y] metall make input IDT magic::box move north [expr $ph] magic::box move east [expr $ssJ + 2*Spo + $pw} set saw-spec ( IncludePads) 1 set saw-spec(IDT-Fingers) $saw-spec(IN.Fingers) make-idt # saw-spec reflectors setup for set saw.spec(Include-Pads) 0 set saw-spec(IDT-Fingers) $saw-spec (REF-Fingers) set saw-spec(IDTApodizatior i) $saw-spec(REF-Apodization) set saw-spec(LegWidth) $saw-spec (REF.LegWidth) # make reflectors set r-num for { set set $saw-spec(REFNumber) i 0} size { Si size] move east [expr magic::box [lindex restore led saw-spec(LegWidth) S1w set saw-spec(IDT-Apodization) $a add in stop + Sr-space] block magic::box move magic::box move south # 0] width and apodization set # $size saw-spec make-idt # { i} < $r-num} { incr [ magic::box east [lindex $size 0] + [expr Sr-space] [expr $ph] magic::box move south [expr $l/2] [expr 2.$l] magic::box size $s-l size magic::box magic::paint # box [expr $bh - $s.. 2*$pad-y] metall around the whole device # draw box around new idt # todo y overshoots by a small amount magic::box position magic::box move magic::box move west set r-x-dist magic::box [lindex [expr $size 0]] [lindex $box-pos 1] [expr $ph] [expr $pw+Spo] [expr ((Ss + size 0) [lindex $box-pos south Sw)*$r-f + Sr.x-dist $r-space) *$r-num + + $pw + $po + 2*[Iindex [expr 2*$1-$a + 2*Sph] # make-idt # makes and IDT at the cursor 's location ($s + $w)*Sin-f} $size 01 + 165 A. 1. MASK 1 GENERATION SCRIPTS 107 # 108 # pass spec 109 110 { specName } make-idt proc 111 box save position and size 112 # 113 set box.pos [magic::box position] 114 set box-size {magic::box size] 115 spec $specName upvar 116 117 118 set s Sspec(IDT.Spacing) 119 set w Sspec(IDT.Width) 120 set 121 set a $spec (IDT.Apodization) 122 set num $spec(IDT-Fingers) 123 set lw $spec(LegWidth) 124 set po $spec(Pad-Offset) 125 set pw $spec(Pad-width) 126 set ph Sspec(Pad-height) 1 Sspec(IDT.Length) 127 128 # puts "\n--Making.3AW.IDT.(-$s,-$w,.$1,.$a,..num,.$1w.)\n" 129 [magic::box 130 set start.pos 131 set start-pos-x [lindex $start-pos 0] 132 set start-pos-y [lindex $start-pos position] 1] 133 134 # apodization offset 135 set ao [expr ($1 -$a)/2] 136 137 # make one finger 138 magic::box 139 magic::paint at 0,0 size $w $1 metall 140 finger second offset 141 # make 142 magic::box move 143 magic::box move up $ao 144 magic::paint [expr $w + right Ss] metall 145 number of finger times 146 # array 2 fingers 147 magic::box move 148 magic::box move down $ao 149 magic::box size 150 magic::select [expr $w + left [expr 2 $s] [expr ($w+$s)] * $1 + Sao] visible 151 152 if { {expr Snum % 2] > 0 } { odd number of finger 153 # 154 magic::array 155 // delete [expr last ($num + 1) / 2] 1 finger clear 156 magic::select 157 magic::box move right 158 magic::box size $w 159 magic::select 160 magic::delete [expr [expr visible ($w + $1 + Sao] $s)*$num] 166 APPENDIX A. LITHOGRAPHY MASKS } else { # even number of finger magic::array (expr $num / 2] 1 } # make bottom leg magic::box position magic::box move up if $start-pos-x $start-pos-y [expr -Slw] { [expr $num % 2] > 0 } { # odd number of finger magic::box } else # size [expr ($w + $s) * $num - $s] + $s) * ($num 1) $1w { even number of finger magic::box size [expr ($w - $s] $1w } # if correct for shorted grating { Sa >= $1 } { if { [expr # Snum > 0 } { % 2] odd number of finger magic::box size [expr ($w + $s) * ($num - 1) + $w] $w + $s) * ($num - 1) + $w] $w } else { even number of finger # magic::box size [expr ($w } magic::paint # make top leg magic::box if metall position # } else # ]expr $start-pos-y + $1 + Sao] [expr ($w + $s) * (Snum - 2) - $s] $1w + $s) * ($num 1) - $s] $w even number of finger correct for { $a >= { size [expr - shorted grating position [expr $num % 2] # ($w } { $1 magic::box if size { magic::box if $start-pos.x + $w + $s] odd number of finger magic::box # [expr { [expr $num % 2] > 0 } { [expr $start-pos-x ] [expr $start-pos-y + > 0 } { odd number of finger magic::box size [expr ($w - 2)] Sw * (Snum - 1)] $lw * ($num + $s) } else { # even number of finger magic::box magic::box magic::paint size metall size [expr [expr ($w (Sw + $s ) + $s) * $num - Ss] Slw $1 + Sao] 167 A. 1. MASK 1 GENERATION SCRIPTS # Make bond pads if requested to if {$spec(Include-Pads) the left { 1} = puts ".-Making...pads.(...$po,-$pw,.$ph.)\n" leg # make bottom magic::box position magic::box size magic::paint leg magic::box move up magic::box size magic::paint $po] $po I {expr $start-pos-y -$1w] $1w $1 + $ao + $s + $1w] $po} S1w bottom pad position size [expr -$po -$pw $start-pos.x -$po -pw] ] [expr $start.pos-y -$ph] leg top magic::box position magic::box size [expr [expr $start-posy $pw $ph metall magic::paint # Make bond pads if requested to {$spec(Include-Pads) position the right { -11 = $po,...Spw,...$ph.)\n" puts "..Making...pads...( magic::box $start-pos-x Spw $ph metall magic::paint if + metall magic::box make [expr [expr $w + magic::box # $s metall # make top # make $start.pos-x - [expr [expr $w + $start-pos.x $start-pos-y # make bottom leg magic::box move east magic::box size magic::paint [expr ($w {expr $w + + * (Snum $s) $s + $po] -$1w metall # make bottom pad [expr Sw + magic::box move east magic::box move north magic::box size magic::paint $pw + Spo] -$ph metall # make top leg magic::box move up magic::box move west magic::box size magic::paint $s $1w [expr $1 + $ao + $ph] [expr $w + $s + $po} $s + Spo] $1w [expr Sw + metall # make top pad [expr $w + $s magic::box move east magic::box size $pw $ph magic::paint metall + $po] 1) $s] + $i + $ao] 168 APPENDIX A. LITHOGRAPHY MASKS 269 # draw box around new idt 270 magic::box position 271 magic::box size 272 [lindex [expr (Ss $box-pos + $w)*$num - 0] [lindex $s] [expr $boxpos 2*$I-Sa] } 273 274 # 275 # 276 # 277 # labels SAW with paramaters # w - width # h - height 278 279 document 280 281 { proc document specName x y w h } { 282 283 upvar $specName 284 global offset-x 285 global offset-y spec 286 287 288 # vertical offset 289 set 100 os between lines 290 291 292 293 # check if last device fits # if not then move if { $x + $w 294 set 295 296 / 2) > (70000 - $offset.x x Soffset-x [expr $y - set y Sh - $offset-y] } 297 298 # document with lables 299 300 set vals { 301 IDT-Spacing 302 IDT-Width 303 304 IDT-Length } 305 306 set 307 foreach 308 set 309 doc "[format."%\#05x"-$spec(ID)]($x,$y)\[Sw.x-$h\]" $vals { var doc "Sdoc:Svar=$spec ($var)" } 310 311 magic::box 312 regsub size 1 1 313 puts 314 magic::label 315 magic::box {\s} $doc {-} string -all $string $string move south 316 317 318 set vals Leg-Width 319 Pad-Offset 320 Pad-width 321 Pad-height 322 IDT-Apodization southeast Sos 1] 169 A. 1. MASK 1 GENERATION SCRIPTS set doc "" Svals foreach var regsub { "Sdoc:$var=$spec (Svar)" set doc {-} string {\s} $doc -all puts $string set southeast $string magic::label $os move south magic::box { vals IN.Fingers REF-Fingers REF-Spacing } set doc var foreach Svals { doc " $doc:Svar=$spec ( Svar)" set } regsub puts {\s} $doc {-} string -all $string magic::label # $string southeast add to CSV file global fileld global fileVars set buf " [format."%\#05x"..$spec(ID) foreach v $fileVars set { buf "$buflspec($v),." I puts $fileld "$buf" # make.test..boxes # make two boxes { } { proc make-test-boxes set size 64 while { $size magic::box > 2 } { size magic::paint magic::box move magic::paint magic::box $size $size metall northeast metall move west $size $size ,..x,-$y, .. w, .h," APPENDIX A. LITHOGRAPHY MASKS 170 377 size {expr 378 set 379 magic::box $size / 2] move north {expr $size + 10] $size + 380 381 382 383 384 # make-test-grating 385 386 # horizontal test lines 387 388 proc make.test-grating { y bh } { 389 390 set size 391 set total 0 3 392 set width 200 393 while 394 < 50 } { { $size 395 magic::box size 396 magic::paint Swidth $size metall 397 398 magic::box 399 set total 400 set size move north [expr [expr [expr $total + $size $size 10] + 10] * 1.5] 401 402 { $bh < 750 } { if 403 404 return 405 406 407 magic::box move north $size 408 409 set 410 while size 3 < 30 } { { $size 411 412 size 413 magic::box 414 magic::paint $width 20 metall 415 416 magic::box 417 set size move north [expr $size [expr * 1.5 ] 418 419 420 421 422 # make-test 423 424 # makes both boxes and gratings 425 426 proc make-test { bh } { 427 428 set 429 set y 430 pos [magic::box pos] [lindex Spos 1] $size + 20] A. 1. MASK 1 GENERATION SCRIPTS # puts "Making.Test..Features" make.test.boxes Sbh $y make-test-grating # 50 move north magic::box make..ticbox # Makes corner and outline dashes # w - width # height h - # Is # ts - size (tic length) size (tic thickness) {w h ts} { Is proc make-ticbox # puts "Making..Tic..Box" # bottom left size magic::box size magic::box $ts metall magic::paint # $Is metall magic::paint bottom magic::box move east magic::box size magic::paint # bottom $Is {expr 1s /2] Sw/2 - $Is /2] metall right magic::box move east magic::box size Us magic::paint [expr $ts metall magic::box move east $Is magic::box size -$ts $Is magic::paint # Sw/2 - $ts metall right magic::box move north magic::box $ts size magic::paint $h/2 - $1s/2] [expr Sh/2 - $is/2] [expr $Us metall # top right magic::box move magic::paint north metall magic::box move north [expr $Is - $ts] magic::box move west [expr $Is - $ts] magic::box size magic::paint # top $Us $ts metall 171 APPENDIX A. LITHOGRAPHY MASKS 172 magic::box move west magic::box size magic::paint $Is [expr Sw/2 - $1s/2] $ts metall # top left magic::box move west magic::box size magic::paint magic::box $1s/2] metall size magic::paint [expr $w/2 - $Is $ts $ts [expr -$Is + $ts] metall # left magic::box move south magic::box size magic::paint [expr $h/2 - $s $ts $Is metall make-outline # makes # a box outline width w # h height #/ lw line width {w h lw} { proc make.outline # puts "Making..Tic..Box" # bottom magic::box size magic::paint $w $1w metall # top magic::box move north magic::paint [expr $h - $lw] [expr $h - $Iw] metall # left magic::box move south magic::box size magic::paint # $1w Sh metall right magic::box move east magic::box size $1w magic::paint [expr $w - Siw} Sh metall # make-id # Makes a binary identification tic feature /21 A. 1. MASK 1 GENERATION SCRIPTS bin = list of 0 and 1 proc make.id { id } { # set bin set i 0 while {0 0 0 0 0 0 0 0 0 0} > 0 1 { { Sid [expr Sid % 2] set t set id [expr Iset bin incr i # size of / 2] Sid $i] [expr 9 - $t tics set s 20 magic::box set size $s $s i 3 foreach var Sbin { magic::paint metall { $var 1 1 { if = north magic::move magic::paint magic::move magic::move if { $i % 4 0 magic::move incr # [expr south east = [expr [expr $s east [expr i make.text source { str } { char.glyph puts "mtext" # set pixel $s] + Ss/2] 1 { make text proc $s] metall width and height $s] 173 174 APPENDIX A. LITHOGRAPHY MASKS 593 set pw 20 594 set ph 20 595 596 magic::move 597 magic::box north [expr 8*Sph] size $pw $ph 598 wright out text 599 # 600 foreach chr [split { $str 601 602 if { Schr = { " 603 magic::move 604 continue [expr 6*$pw] east } 605 606 607 puts $chr 608 set 609 glyph [lindex [array get cmap $chr 610 611 foreach 612 if 613 dot $glyph [split { $dot magic::move } elseif 614 615 east { $dot = magic::paint 616 magic::move } elseif 617 618 619 { ""] { } { " = $pw } { "0" metall east $dot = Spw "\n" magic::move south magic::move west } { Sph [expr 9*$pw] } 620 } 621 622 623 magic::move east [expr 16*$pw} 624 magic::move north [expr 8*$ph] 625 } 626 627 628 } ] 1 175 A. 1. MASK 1 GENERATION SCRIPTS TCL : make-string.tcl 1 { proc mtext } { str 2 source char.glyph 3 4 pos] 5 set pos [magic::box 6 set x [lindex Spos 0] 7 set y [lindex Spos 1] 8 # set pixel width and height 9 10 set pw 40 11 set ph 40 12 13 magic::move 14 magic::box north size [expr 8*$ph] Spw $ph 15 16 # wright out text 17 foreach { $str " chr [split 18 if 19 { } { = $chr 20 magic::move 21 continue [expr 6*$pw} east } 22 23 set glyph 24 [lindex [array get cmap Schr 25 foreach dot 26 if 27 $glyph [split { $dot east magic::move 28 { $dot } elseif 29 magic::paint 30 { $dot } elseif 32 33 34 $pw } { "0" = metall east magic::move 31 { "") } { = = Spw "\n" magic::move south magic::move west } { $ph [expr 9*$pw] } 35 } 36 37 38 magic::move east [expr 16*$pw[ 39 magic::move north [expr 8*$ph} } 40 41 magic::box 42 43 position $x [expr $y - 10*$ph] } 44 45 mtext "Massachusetts.Institute.of..Technology" 46 mtext "uTags.SAW-Mask.1..Rev" 47 mtext 48 mtext "copyright.2006-Jason .LaPenta" 49 mtext "MIT..Media.Laboratory" "March..10.2006" [ 1 176 APPENDIX A. LITHOGRAPHY MASKS TCL : make-char.pl 1 #!/usr/bin/perl -w 2 3 4 use Text::Banner; 5 $a = Text::Banner->new; 6 7 8 $a->size (1); 9 Sa->fill ('O'); 10 $a->rotate('h'); 11 12 13 print "array-set...cmap-{\n"; 14 15 # 16 foreach 17 # generate a string $c print "[$c]\n"; 18 $c = chr($c); 19 next 20 $a->set( "$c.." ); 21 print 22 Ss if $c =- "{$c}...{\n" = Sa->get; 23 $s 24 chop $s; 25 chop $s; 26 chop $s; 27 $s = s/ 28 $s s/ 29 print $s ; 30 print "}\n" 31 ~s/\w.$//; } 32 33 print of all (40..126){ "}\n" \n/\n/mg; /./mg; characters 177 A. 1. MASK 1 GENERATION SCRIPTS TCL : fix.pl 1 #!/usr/bin/perl 2 # -w 3 # fix 4 # will be postscript generated by files Magic so they displayed properly. 5 6 foreach $fn (<*.epsi>) { 7 print "\n-processing.$fn\n" 10 open( Sfh.in, "<$fn" 11 open( $fh.out1, ">outl.temp" ); 12 open( Sfh-out2, ">out2.temp" ); 8 9 $1 (<Sfh-in>) { foreach close( "<out1.temp" Sfh-inl, seek( Sfh-in, 0, ( $fh-outl $1; } ); 0 ); $1 (<Sfh-in>) { foreach next { print ); Sfh-outl open( if ) $1 =~ /fb$/ ( if ); if $1 /fbS/ /^\/ co17/ ) { $1 print $fh.out2 "/col18-{0.279.0.128.0.000,0.000.sc}.bind.def\n"; I print if $fh-out2 Si; ( $= =- /^115 / ) { fb lines # insert print $fh-out2 foreach print "5-sI\ncol18\n"; (<$fh-inl >) $12 $fh-out2 close Sfh.in close Sfh-inl close Sfh-out2 ); ); ); 'my out2.temp $fn '; "coll2\n" { print $fh-out2 $12; } APPENDIX A. LITHOGRAPHY MASKS 178 A.2 Mask 2 & 3 Generation Scripts PERL : fix.cif .layers.pl 1 #!/usr/bin/perl -w 2 3 4 ?)\. cif$/ $ARGV[0] $fn = $1; print " fixing.Sfn . cir\n-output-is...$fn .out. cif\n\n" 5 6 7 8 " dos2unix..fn . cif" system( ); 9 10 open( Sfhi , "<Sfn. cif" 11 open( $fho , ">Sfn .out. cif" ) or die $!; ) or die $ 12 13 $line (<Sfhi >) { foreach 14 15 if ( $line =~ /^L ) { (.*?);$/ 16 17 Slast-layer = $1; 18 unless ( defined $1ayers{ $1ayers { $1ast-layer 19 } $1ast-layer = $line; } 20 21 } elsif 22 23 ( Sine =- $layers { } elsif ) { /^B/ $last-layer ( Sline =- } .= /^(DFIE)/ next; } else print $fho $line; foreach $key (keys %layers) print $fho $1ayers{Skey}; I print $fho "DF;\nE\n"; 43 close ( $fhi ); 44 close( $fho ); { $line; ) { } ) { A.2. MASK 2 & 3 GENERATION SCRIPTS PERL : layout.pm 1 #!/usr/bin/perl 2 # -w 3 # Package to 4 # 'layout ' CAD 5 -4----------------------------- generating scripts simplify for tool package layout; BEGIN{ require Exporter; @EXPORT, @EXPORT-OK, %EXPORT.TAGS ( @ISA, our @EXPORT = qw( mirror pt clearPts { sub head setup selectAll deselectAll flatAll macro filename # generate the macro heading mry $fn = mac( ' ' ; # point2 copy ); newCell rmy $mac-fn = make-idt mac end head box open( ); = qw( Exporter ); @ISA shift ; ) | $mac.file , ">$fn" die $ '#!/usr/bin/layout mac( "#name=Macro:...Sfn..Perl.Generated" mac( '#help=Recorded...Thu.Jan...7..2007'); mac( 'int..main({ sub end ); '); { # end the macro mac('return.0;}'); sub mac { # print sub make..idt a macro insert Smac-file (shift )."\n"; { # generate macro sequence for an IDT $name = shift Spolarity = shift $c = shift ; # config }; Sw = $c->{ -Width $1 = Sc->{ -Len }; $g = $c->{ -Gap }; $f Sc->{ -Fingers = $a = $c->{ -Ap hash }; # }; Apodization 179 180 APPENDIX A. LITHOGRAPHY MASKS # delete existing idt mac( "layout->drawing->setCell(\"$name\");"); mac( 'layout ->drawing->delete ActuellCell (); setup () # draw IDT finger pairs newCell (); mac( "layout ->drawing->c urrentCell ->cellN ame=\"$name\" ;" box( 0, $1 ); 0, $w, selectAll (); copy( 0, 0, (Sw +$g), ($1-$a)/2 ); selectAll (); foreach copy( ( 2.. $f 0, 0, ) { 2*($w + $g), ); I if ( Spolarity eq 'odd' ) { clearPts (); selectAll (); mirror( 0, (3* 1, (3* $1 $1 - Sa)/4, $a)/4 ); } sub setup { # setup drawing mode for metal features deselectAll () clearPts (); mac( 'layout->drawing->activeLayer=0;' mac( 'layers ::num[O].name="metall";' mac( 'layers::num[0].setStyle(6);' ); mac( 'layers ::num[O]. setColor (130,43,43);' sub box { # point2( mac( ); ); ); draw a box 0. ); 'layout ->drawing->box(); ' } sub mirror point2( mac( sub 'layout ->drawing->mirror(); copy { # point2( mac( sub { # mirror the selected copy selected ' objects .. ); 'layout ->drawing->copy(); point2 my ( objects @. ); { # select $xl, Syl, $x2, $y2) objects = -; ' between two points ); 181 A.2. MASK 2 & 3 GENERATION SCRIPTS mac( 'layout ->drawing->clearPoints(;' pt( $x1, $yl); pt( $x2, $y2); sub selectAll mac( sub pt mac( { 'layout->drawing->selectAll(; ' { # clear selection sub clearPts mac( ); (); 'layout-->drawing->clearPoints { # start a ) selection 'layout-->drawing->point ('(shift ). } sub flatAll mac( { # flatten cell 'layout->drawing->flatA11; ' } sub deselectAll mac( { 'layout-->drawing->deselectAll(; } sub newCell mac( } { 'layout->newCell(; ' ' ' .(shift ).' 182 APPENDIX A. LITHOGRAPHY MASKS PERL : idt generator : idt . pl 1 #!/usr/bin/perl -w 2# 3 # 4 # generates IDTs 5 6 use layout; 7 8 $macfn = $ARGV[0]; 9 head( $macfn ); 10 11 # 12 setup(); 13 # 14 $g 15 $w = $IDT{ -Width 16 $1 = $IDT{ -Len 17 $f initial setup all parameters in nm } = SIDT{ -Gap = 1100; } = 1100; } = 100000; } = 5; = SIDT{ -Fingers 18 19 $IDT{ -Offset 20 $IDT{ -Ap } } = 2; = 100000; 21 22 # 23 make.idt ( make IDTs 24 draw-rails ( 2*( $g+$w)* $f 25 $name = 26 mac( 'CODEO' , 'even', \%IDT ); ); "IDT-" .($w/1000)."um/" . $f."f/" .($1/1000)."L"; "layout ->drawing->currentCell ->cellName=\" $name\";" 27 28 # finish up 29 selectAll(); 30 flatAll (); 31 deselectAll() 32 endo; 33 exit; 34 35 # 36 sub draw-rails { 37 38 = shift; my $len 39 # Rail Width 40 $rw = 30000; 41 Srlen =$en 42 $1 = 43 $a = $IDT{ -Ap + $rw; SIDT{ -Len }; }; 44 45 clearPts ( 46 # 47 box( 48 # 49 box( top -$rw, 0, $rlen , -$rw } ); rail -$rw, $1 + ($1 $rlen , $rw + 50 51 bottom rail - $a)/2, $1 + ($1 - $a)/2 ) ); A.2. MASK 2 & 3 GENERATION SCRIPTS PERL : wide-band idt generator : wb.pl 1 #!/usr/bin/perl 2 # 3 # A 4 -w generates Wide Band SAW IDTS use layout; Smac.fn = $ARGV[0]; # ); $mac.fn head ( setup initial setup (); # all parameters in nm 3000; $IDT{ -Gap} = $IDT{ -Width } = 3000; = 200000; SIDT{ -Len } $IDT{ -Ap} = 194000; $IDT{ -Fingers } - 20; - 2; } $IDT{ -Offset $code = [1,0,1 ,1 1]; ( 1 , 5 , 20 ){ foreach my $f } SIDT{ -Fingers - $f; # make IDTs make-idt ( 'CODEO' make.idt ( 'CODE1' ( $wt , $len draw-RandP( # finish ' even ', \%IDT ); 'odd ' , \%IDT ); ) = encode( $code, $len ); Swt, up selectAll (); flatAll (); deselectAll (); end (); exit ; # Draw Rails and pads sub draw.RandP { my $wt = shift; ry Slen = shift; # Rail Width Srw = 30000; Srlen = $wt * Slen + $rw; $1 = $IDT{ -Len }; \%IDT ); 183 184 APPENDIX A. LITHOGRAPHY MASKS $a = $IDT{ -Ap }; clearPts (); # rail bottom box( -Srw, # top 0, box( -$rw, $1 + Srlen , # ) $rlen , -$rw rail - ($1 $rw + $1 $a)/2, + ($1 Sa)/2 - ); Draw Pads = 100000; Spad-size # bottom pad box( # 0, , $pad-size , (- -Srw box( 0, $rw + - $1 + ($1 $pad-size , Srw + sub Spad.size - Srw) ) top pad ($1 - $a)/2 + $pad-size ); { encode my $en = shift # encoding = shift ; # config my $c $a )/2, $1 + Sw = $c->{ -Width $1 = $c->{ -Len }; $g = $c->{ }; $f = $c->{ -Fingers $s = -Gap Sc->{ -Offset $name = hash }; }; }; #offset spacing between IDTs ' ' ; newCell ( ); # Draw Finger Encodings my $len = 0; # my $wt =2*$f*(Sw + Sg); # total foreach my $encoding $name .= lenthing in X width per idt total ( M$en ) { Sencoding; clearPts (); Sen*$wt , 0); pt( mac( 'layout->drawing->cellref("CODE");' mac( 'layout->drawing->celref("CODE1");' Sien += print $name - $name .mac( ) if ) if Sencoding -= 0; Sencoding == 1; $s ; Sen*$wt."...$en....\n" "WB.[Sname].." (Sw/1000)."um/" . $f ."f/" .( $1/1000)."L" "layout->drawing->currentCell->celName=\"$name\";" return (Swt , Sien ); ); A.2. MASK 2 & 3 GENERATION SCRIPTS PERL : narrow-band idt generator : nb.pl 1 #!/usr/bin/perl 2 # 3 # -w Narrow Band SAW IDTS generates use layout; Smac_fn = SARGV[0]; head ( # Smac.fn ); setup initial setup (); # all parameters in } SIDT{ -Gap = } SIDT{ -Width = 200000; } SIDT{ -Ap 194000; = } = 1; $IDT{ -Fingers SIDT{ 3000; = } SIDT{ -Len nm 3000; } -Offset = 1; # make IDTs make-idt( 'CODEO', 'even', make-idt ( 'CODE1' , 'odd', @encode ( [1,0,1 ,1 ,1], = \%IDT ); \%IDT ); [0,1,1,1,1], [1 ,j 0 ,1 1] foreach my $code ( Swt, Slen draw-RandP( # finish (@encode) ) = encode( $wt, Slen { Scode, \%IDT ); ); up selectAll (); flatAll (); deselectAll (); end(); exit; .4 sub draw.RandP { # Draw Rails and pads my Swt = shift ; my $len = $rw = shift 30000; # Rail Width 185 186 APPENDIX A. LITHOGRAPHY MASKS 53 $rlen = $wt * 54 $1 = $IDT{ -Len 55 $a = $IDT{ -Ap $en + $rw; }; }; 56 57 clearPts (; 58 59 # bottom rail 60 box( 61 # top rail 62 box( -$rw, -$rw, 0, Srlen, $1 + - ($1 $rlen , $rw + 63 -Srw $1 ); $a)/2, + ($1 - $a)/2 ); 64 # Draw Pads 65 66 $pad-size 67 # 68 box( 69 # 70 box( 100000; 0, -$rw , $padsize, $rw) (-$padsize ); top pad 0 , $rw + $1 73 } # 74 sub encode { - + ($1 $pad-size , Srw + 71 72 = bottom pad $a )/2, $1 + ($1 Sa)/2 + # make incoded finger Spad-size ) pattern 75 76 my Sen = 77 my $c # encoding shift ; # config hash = shift 78 79 rny $w = $c->{ -Width 80 my $1 = Sc->{ -Len }; }; }; 81 my $g = $c->{ -Gap 82 my $f = $c->{ -Fingers 83 my $s = $c->{ -Offset }; }; #offset spacing between IDTs 84 85 my $name 86 mac( - 'layout ->newCell(; ' 87 88 # 89 my Slen Draw Finger Encodings = 90 my $wt = 2*$f*($w 0; # lenthing in total + $g); # X width per idt total 91 92 foreach my $encoding 93 $name .= 94 clearPts (); pt ( $len *$wt , 0); 95 ( @$en ) { $encoding; 96 97 mac( 'layout ->drawing->c eIIref 98 mac( 'layout->drawing->ceIIref("CODE1");' 99 Sen += ("CODEO"); ' ) if ) if $encoding $encoding $s } 100 101 102 $name = "NB..[$name]..." 103 $name 104 mac( 105 return 106 } ($w/1000). "um/" . $f. " f/" .( $1 /1000)."L"; "layout ->drawing->currentCe ($wt, $en ); l->cellName=\"$name\";" ); 0; == 1; 187 A.2. MASK 2 & 3 GENERATION SCRIPTS layout : outline.layout 1 #!/usr/bin/layout 2 #name= Magic 3 #help=Adds a Outline items selected around box on current layer 4 5 int maxX,maxY,minX,minY; 6 int selected int getCellExtents( = 0; was something /* selected */ 7 8 cell int *cellp baseX, int baseY, bool selectall 9 10 elementList *elements; 11 element 12 cell *element *tmp; 13 14 pointArray 15 point p; pa; 16 17 18 19 20 cellp if( != NULL { = cellp->firstElement ; elements for(elements 21 element = 22 if( 23 24 25 != NULL; elements { elements ->thisElement element != NULL ) element->select if( |1 ) selectall { selected++; 26 27 // 28 if( reference cell ) element->isCellref() { 29 30 tmp = element ->depend (); 31 pa = element ->getPoints(); 32 p 33 getCellExtents( =pa.point(0); only change selected 35 /* 36 i f (element ->isBox () ) 37 p.y(), p.x(), tmp, true } 34 boxes */ { coordinates */ 38 /* get 39 pa = element ->getPoints(; 40 41 int 42 for( 43 idx; idx = 0; idx < pa.size(); p = pa. point (idx); 44 45 if( 47 if( if( 52 baseX > maxX ) p.y() + p.x() + + baseX; baseY > maxY ) + baseY; baseX < minX ) minX = p.x() + 50 51 + maxY = p.y() 48 49 p.x() maxX = p.x() 46 if( p.y() + baseX; baseY < minY ) minY = p.y() + baseY; idx++ ){ ); elements->nextElement 188 APPENDIX A. LITHOGRAPHY MASKS } 53 54 55 }; /* end if element selected */ 56 57 58 } 59 % 60 int getExtents ( ) { 61 *cells; 62 cell List 63 maxX = -99999999; 64 minX = 65 maxY = -99999999; 66 minY = 99999999; 99999999; 67 68 /* 69 for(cells check 70 { if something was selected at all */ = layout ->drawing->firstCell; cells!=NULL; getCellExtents( cells ->thisCell , 0 , 0 , 71 cells=cells->nextCell) false 72 73 74 if( selected == 0) return 0; 75 76 77 return 1; 78 } 79 % 80 void drawBox ( int x1 , int yl ,int x2, int y2 ){ 81 layout ->drawing->point(x1 ,y1); layout ->drawing->point(x2,y2); 82 83 layout ->drawing->box(); 84 } 85 % 86 int border () { 87 88 int width = layout ->getInteger ( "Input" , "width(um)" 89 int offset = layout ->getInteger( "Input", "offset(um)" ) s 90 91 minX - offset; 92 minY -= offset 93 maxX += offset 94 maxY += offset 95 96 drawBox( 97 drawBox ( minX, 98 drawBox( maxX - 99 drawBox( minX, 100 } 101 102 %int main({ 103 getExtents (); border(; 104 105 106 minX, return 0; } minY, maxX, minY + width ); minY + width , minX + width , maxY width , minY + width , maxX, maxY - width, maxX, maxY ); maxY - 1000; ) * 1000; width ); width ); Appendix B Fabrication Processes B.1 Device Fabrication Process Details B.1.1 Cleaning 1. Ultrasonic immersion in Alconox Detergent 10min, unheated. 2. Deionized H2 0 spray, then 10min deionized H2 0 soak. 3. Spin dry at 3000rpm. This procedure is used to remove stubborn particles and organics from heavily contaminated dirty wafers or parts. Table B.1: Alconox N cleaning procedure. 189 190 APPENDIX B. FABRICATION PROCESSES 1. Ultrasonic cleaning in Acetone 20min, unheated. 2. Spray clean with Acetone then Methanol then Isopropanol, and Spin dry at 3000rpm. Acetone may also be used to remove stubborn particles and organics. While the wafer is on the coater the Acetone then Methanol then Isopropanol may be applied at ~~1000rpm to help dislodge particles, and then accelerated to 3000rpm to dry. Table B.2: Ultrasonic cleaning with Acetone. 1. Mix a 3:1 H2 S0 4 :H20 2 solution by slowly adding sulfuric acid to hydrogen peroxide 2. Gently heat on hotplate at low temperature to keep the reaction at constant vigor. 3. Immerse sample for 20minutes. After 20minutes the efficacy of the piranha mixture is reduced. Table B.3: Piranha cleaning procedure. 1. Select a large Pyrex dish for spill containment and a sufficiently large Pyrex beaker for the SC-1 solution. Place on a hotplate. 2. Fill the beaker with 4 parts deionized H2 0, then fill the Pyrex dish a 1/4 full of H 20. Heat to 55"C. 3. Add one part ammonium-hydroxide (NH 4 0H) when solution reaches 550C. 4. Add one part hydrogen-peroxide (H2 0 2 ) when the water reaches 650C 5. Insert sample when solution reaches 750C. Maintain temperature between 750C and 80"C. 6. When finished, remove substrate, let solution cool and then dump down drain with lots of water. Rinse the beaker three times before drying. Table B.4: RCA or standard clean 1 (SC-1) procedure. B.1. DEVICE FABRICATION PROCESS DETAILS B.1.2 191 Lithography 1. Ready coater by checking the acceleration is at the minimum setting, that the target speed is 3500rpm t 100rpm, and the timer is set for 0 : 60s. Install the proper containment insert and chuck (check for cleanliness). 2. Mount wafer of the chuck, dust with N 2 , and then apply ~ 0.5mL of photo resist covering the useful area (where devices will be located) plus about 1cm extra. Wait 10sec for photoresist to spread out and interact with the wafer's surface. 3. Spin the wafer, remove and place in a Quartz wafer boat and then bake in the oven at 170"C for 30minutes (PMMA). General procedure for coating a wafer with photoresist. Bake times and temperatures vary with resists. This procedure is for PMMA. For NR7-1000P bake for 10minute at 130"C. The oven was used for SiO2 and lithium niobate wafers for even heating because they have low thermal conductivity, causing poor results when using the hotplate. An optional 0. 4 5pm filter may be used when applying the PMMA with a calibrated syringe. Table B.5: Photoresist coating procedure. 192 APPENDIX B. FABRICATION PROCESSES 1. Insert the long-wavelength-filter. Measure optical power output. Should be 3.5mW/cm 2 measured at a wavelength of 320nm. 2. Select the 4inch mask chuck, mount the mask pattern-side out (to contact the wafer). Press the [VAC Mask] button. Insert and tighten the mask chuck nuts. 3. Insert the wafer with the contact lever disengaged (towards the operator). Adjust position and alignment and press the [Hard] contact button. 4. Set the exposure time to 6seconds (nominal dose for NR7-1000P, a sweep of exposure times is often necessary to optimize the dose). Engage the contact lever (by moving away from the operator), then press the [Expose] button. 5. NR7-1000P must be post-baked for 10minutes at 100"C. Table B.6: Exposing using the EML high-resolution MJB3 aligner. 1. Turn Lamp ON, wait 10sec. Press Lamp Start, wait 5sec, green led to the right of the on button should illuminate. If the lamp does not come on, wait 30sec and then retry starting the Lamp. Wait 5 - 10min for the lamp warm up. 2. Set optical power meter to use the 220nm sensor with the switch located on the back of connector. Slide back vacuum chuck with optical power meter sensor. Replace housing door. Turn on exposer timer (the switch is located on the back of the box) and take reading from the power meter. Typical values are in the 0.45mW/cm 2 . Turn off exposer and turn off optical power meter. 3. Adjust exposure time and decimal point. Use multiple exposures for times in excess of 1000sec. 4. Proceed with substrate/mask alignment. See section C.2. Push back chuck, replace housing door and turn on exposer. Table B.7: Exposing using the NSL OAI. B.1. DEVICE FABRICATION PROCESS DETAILS 193 1. Ensure enough IPA is available in the spray bottle to stop the developer. 2. Prepare 500mL of 2 part IPA to 1 part MIBK developer in 1L beaker. Place on a hotplate set initially to ~~50"C. Heat the solution to exactly 21"C, lowering the hotplate temperature to 30"C as the solution's temperature rises. Mixing IPA with MIBK causes an endothermic reaction, thus the temperature must be carefully monitored. 3. Remove the developer from the hotplate and immediately start developing the sample for exactly 90seconds. Immediately spray with IPA for 60seconds after wards. Dry with N2 . 4. Oven bake at 95"C for 30minutes to remove residuals. Make sure the oven temperature is below the glass transition temperature to avoid distortions. By increasing the temperature, some scalloping may be removed. The developer may be reused many times. The 1L beaker should be rinsed with a small amount of developer to remove any containments before pouring in the rest of the developer. The developer may be stored at room temperature. Table B.8: PMMA development procedure. 1. Develop in RD2 at room temperature for 50seconds with light agitation. 2. Submerge in deionized H2 0 for 2minutes to stop development, then dry with N2 3. Bake at 90"C for 1minute. This procedure was poorly implemented. The temperature of the developer should be monitored, which may explain the inconsistent results. Table B.9: NR7-1000P development procedure. 194 B.1.3 APPENDIX B. FABRICATION PROCESSES Lift-Off and Etching 1. Place sample in a bath of NMP carefully heated to 80"C (NMP has a low flashpoint). 2. Gently agitate the wafer for 20min. 3. Carefully remove by spraying a sheet of NMP over the surface of the sample as it is removed from the beaker. Rinse clean with Acetone, Methanol, IPA and then N 2 and spin dry. Ensure lift-off has completed as any material that has not finished liftoff may fall back onto the wafer and be impossible to remove. Light rubbing with a swab saturated with acetone may help stubborn lift-off and remove unwanted metal that has adhered to surface. Only sonicate as a last resort for no more than 10seconds with < 3seconds usually being sufficient. Table B.10: Lift-off of PMMA. 1. Place sample in a bath of Microstrip" and Gently agitate the wafer for 20min. 2. Carefully remove by spraying a sheet of Acetone over the surface of the sample as it is removed from the beaker. Rinse clean with Acetone, Methanol, IPA and then N 2 and spin dry. Table B.11: Lift-off of NR7-1000P. B.1. DEVICE FABRICATION PROCESS DETAILS 195 1. Prepare a 75mL of one part deionized H2 0 to one part CR-7 chrome etchant in a 250mL processing dish at room temperature. 2. Submerse PMMA coated sample in solution for 40seconds. Spray rinse in deionized H20 for 2minutes. Table B.12: Etching chrome to fabricated a patterned mask. APPENDIX B. FABRICATION PROCESSES 196 B.1.4 Vacuum Mask Fabrication This process involves making a 1mm mask master using E-Beam Lithography. The master mask is then used to create 250pm daughter masks using vacuum mask exposure tool. The daughter masks are then used for making the devices. Daughter masks are very fragile, which is the reason a 1mm master mask is used. The end-to-end PMMA process allows image reversal of the daughter mask. Because the daughter mask is mostly metal, Cr, the conduction should help with the sparking caused by the LiNbO 3 handling. adz (1mm mask) Quartz (250pm mask) PMMA / E-Beam Litho PMMA Contact Litho PMMA Contact Litho Figure B-1: Illustrates the process for making devices by first writing a pattern to a 1mm quartz mask master, then transferring the pattern using contact lithography to a conformal mask, and finally patterning the lithium niobate substrate to make the desired devices. B.1. DEVICE FABRICATION PROCESS DETAILS 1. Clean 1mm master mask. 2. Deposit 100nm PMMA. 3. Deposit 7nrm chrome. 4. Pattern with SEBL. 5. Remove Cr. 6. Develop PMMA with IPA:MIBK. 7. Descum with 2s ash (optional). 8. Deposit 40nm of chrome. 9. Lift-off with NMP to finish making master mask. 10. Clean 250um daughter mask. 11. Deposit 100nm PMMA onto daughter mask 12. RCA clean and plasma ash master mask as required. 13. Expose daughter mask with OAL. 14. Develop daughter mask with IPA:MIBK. 15. Deposit 40nm of chrome on daughter mask. 16. Lift-off with NMP to finish making daughter mask. Table B.13: Process steps for making a conformal mask. 197 APPENDIX B. FABRICATION PROCESSES 198 Raith 150 Operational Procedure B.1.5 Loading : 1. Load sample into load-lock chamber. (a) Deposit 100nm gold particles in identifiable location on conductive surface. Make a sketch. (b) Ensure all screws are secure and gold solution is dry. (c) Check continuity is < 3MegQ. aluminum foil. (d) Make sure wafer flat is parallel to x-axis for alignment. (e) N 2 dust and load sample tray ensuring counter-bore hole is aligned, then rotate clockwise until stop. (f) DOUBLE CHECK THAT THE CHUCK HAS BEEN INSERTED CORRECTLY! (g) Then close load-lock door. Ensure transfer rod is all the way out. 2. Log into Raith machine. Passwords are not used. 3. [Desktop 1-+Sample Loading-+Load Sample] 4. Ensure Roughing Pump becomes quiet. 5. Slowly insert transfer rod when prompted. Then check insertion on video screen before continuing. 6. [OK] Move to Upper Exchange Position. 7. Slowly remove transfer rod when prompted. 8. [OK] Reset Coordinates System. 9. Record Extractor Current and Gun Vacuum. B.1. DEVICE FABRICATION PROCESS DETAILS 10. [OK] Switch On Beam. 11. [OK] Set voltage to 10keV. 12. [OK] Set aperture to 30pm. 13. [OK] Set working distance to default. 14. [OK] Set focus and stigmation. 199 15. Goto the Stage Control window's Destination tab. (a) LENGTH = mm (b) BASE = XYZ (c) POSITION = absolute (d) Z = 16.8mm 16. Put SEM into TV mode. DOUBLE CHECK PREVIOUS STEP 17. [Start] , watch motion on TV, if there is a problem click the red STOP button. 18. [File-+Open Script-SHAKEIT. js] , press green run button. View in Height Control window. 19. [Tools--+Goto Control Panel-+SEM Control-Detector-+InLens] [Detector-+Auto BC] un-blank beam, check for stable current on Keithley picoampmeter. 20. Record the Extractor I current Focus, Align, and Stigmation: 1. Zoom to 23X and find gold particles APPENDIX B. FABRICATION PROCESSES 200 2. Zoom to 10OkX, Focus, Stigmation 3. Focus Wobble, Align, then re-Focus. Align Write Field : 1. Adjust UV coordinates and rotation. (a) TV mode, goto wafer flat. Pick first point for rotation, move, pick second point for rotation, [Adjust Rotation-+Adjust] Make Sure Rotation Coordinates go from LEFT to RIGHT (b) Blank beam and move to desired write location. [Adjust UVW(Global) -+Origin Correction-+Adjust] Sets UV position to (0,0) 2. Image and center gold particles, zoom out to 620X. 3. [Desktop 2->Microscope Control] [select (''set'' 620x100pm)-+Set Button] 4. [Detectors-+Auto BC Off] Ensure Detector is InLens NOT TV. 5. [File->New Image] , [ImageScan->Single] To move stage, [CTRL-right-click-+F5] 6. [File-*New Position List] (a) Zoom to features with [right-click] menu (b) [Scan Manager-+Align write field procedures] drag course, medium, and fine to Position List (c) Add 100pm WF - Auto ALWF 1pm window (d) Select and run each procedure from position list one with [F9] B.1. DEVICE FABRICATION PROCESS DETAILS (e) [ctrl-left] 201 and drag to reference feature. 7. Check convergence in Web Browser. Exposing : 1. Layout a GDSII file, then import to CleWin and the save from CleWin. This corrects various file format problems. 2. Move stage to Faraday Cup [Stage Control--Command-+User Positions-*OCT2005-CHUCK] 3. [Desktop 4] , Zoom to 1OOkX, record picoampmeter ~~145pA at 10keV, 30pm aperture. [Measure] 4. Add GDSII file and setup exposure (a) [File-+New Position List] [GDSII Database-+load file] Drag cell to Position List. (b) [Position List-+right-click Properties-+Expose Properties] (c) [Expose Layer] select layers to expose. (d) Set UV position to expose at. (e) Set [dose factor-41] (f) [Calculate Dialog] fill in step size and dose. [dwell--time calculate icon] (g) [Times] to calculate write time. (h) [Desktop 4-+Exposure-+uncheck line and dot] (i) [OK] to close Expose Properties 5. Add GDSII dose matrix file and setup exposure APPENDIX B. FABRICATION PROCESSES 202 (a) Add GDSII file to Position List and setup exposure as in previous step. (b) [Expose Properties-Calculate-+Dose] less than main file. (c) Select Dose Matrix cell in Position List [Filter-*Matrix Copy] {selected,1x6,0x( > device height),V-first,dose factor 0.1, add, auto} 6. Check UV coordinates in Position List. 7. Record all settings. 8. MAKE SURE SEM IS IN SEM MODE (NOT TV MODE)!! 9. [Beam Blank] Check Raith beam is blanked. 10. [Position List-+Highlight Entries] [Scan-+All] 11. Check (a) Proper XY and UV coordinates (b) High Performance Scan Processor, Beam On (c) Picoampmeter. Unloading : 1. [Desktop 1-*Sample Loading-+UnLoad Sample] 2. Insert transfer rod when prompted. Then check insertion on video screen before continuing. 3. [OK] Move to Lower Exchange Position. 4. Remove transfer rod when prompted. B.1. DEVICE FABRICATION PROCESS DETAILS Ly Date Wafer Write Vacuum Before ON Extract-I Before ON Extract-I After ON Voltage Working Distance Stigmation (xy) Aperture Beam Current Gold (x,y) Field Size Area Step Dwell Time Area Dose Beam Speed Est. Write Time Start Write Time Write Time Dose Matrix (U,V)-(xy) Rotation # 203 204 APPENDIX B. FABRICATION PROCESSES Appendix C OAI documentation C.1 Housing Drawings The OAI deep-UV vacuum mask lithography tool in NSL was upgraded to include a radiation shield over the working area. The shield was made of acrylic which attenuates A = 200nm by 60dB and A = 440nm by 40dB. To simplify the design no fasteners were used. Instead the housing was designed with press-fit slot in hole joints. 4-40 tapped holes were drilled along the edges for gaskets. Two clean room corrosion-resistant magnetic catches (McMaster part number 6680A15) were used to keep the front door in place. The patterns were drawn in Pro-Engineer, then exported as DXF, imported into CorelDraw, and then printed using a laser-cutter at the Media Laboratory's fabrication facilities. 205 I 206 APPENDIX C. OAI DOCUMENTATION Figure C-1: OAI deep-UV aligner radiation shield. Made from Standard Cast Acrylic, 0.236inch thick Clear with Bronze Tint, McMaster part numbers. 8505K921, 8505K941, and 8505K951. I I I I I I 26.50 SCALE 0.150 SCALE 0.100 Enginerfsh, JasonM. LaPento (4.2007) Massachusetts Institute of Technology Media Laboratory Nanostructures Laboratory OAl Radiation Guard """s i nch A| I 3rd,.20071|" I A " Page i of 2 207 \IIZ\ Errw(s) Jason M. LcPento (4.2007) Massachusetts Institute of Technology Media Laboratory Title Nanostructures Laboratory OAl Radiation Guard hIs SCALE 0.160 inch Dote April rV0/ 3rd, I REing I A 200T Page 2 of 2 I 208 2.00 4.00 9 . 50 17.00 6.00 13.50 .250 SCALE 0.400 Massachusetts Institute of Technology hmreJcsonM. id LPento (4.2007) inc h Media Laboratory Nanostructures Laboratory OAl Radiation Guard (Top) Aprt 3rd, 200711) 209 3.00 Engweer(s), SCALE 0.350 JasonM. LaPento (4.2007) uns inch Massachusetts Institute of Technology Media Laboratory Nanostructures Laboratory OAl Radiation Guard (Bottom) Apr I 3rd. 20071 I r I I Page i of i 210 I I 10.25 Massachusetts Institute of TechnoLogy Engineer(sh JosonM. Lento (4.2007) Media Laboratory Nanostructures Laboratory OAI Radiation Guard (Left) is- h DateDrawngNmberREV Apr 3r d, 20071 Pagei of I I / 211 I lI 2.00 16. 50 - R.25SCALE 0.500 Engnew(s) JasonM. LaPento (4.2007) Massachusetts Institute of TechnoLogy Media Laboratory Nanostructures Laboratory OAI Radiation Guard (Right) Units inch Dote Apr Drowing N ber REV A 3rd, 20071 Page I of I 212 I I I 2.00 I . 50 SCALE 0.500 Engineer(sh o M LaPento (4.2007) Massachusetts Institute of Technology Media Laboratory ""' uths i nc h Nanostructures Laboratory OAI Radiation Guard (Back) I 3rd. 20o7 DowiREV I i Page of I 213 APPENDIX C. OAI DOCUMENTATION 214 C.2 Mask Chuck Drawings top gasket mask vacuum lower gasket I contact vacuum wafer vacuum substrate gasket Figure C-2: OAI 3inch chuck assembly. A new OAI 3inch vacuum mask chuck was designed for use on this project. The existing mask chuck required 5inch mask and operated in a different manner. The 3inch chuck assembly is illustrated in figure C-2. The lower plate (shown in figure ?? but not in figure C-2) and substrate chuck were pre-existing. The 3inch upper chuck plate was the new part. This part was machined in the MIT Central Machine Shop. The substrate gasket allows atmospheric pressure to be applied to the backside of the substrate, as well as keep the substrates back side from contacting the chuck (useful when making a mask). The top gasket makes the seal to the mask and the lower gasket make the seal to the chuck for the vacuum contact. The mask vacuum holds the mask to the chuck during alignment. There are three supports underneath the chuck as part of the lower plate used to level the mask to the substrate. An xy-level is used to make sure the mask chuck and substrate chuck are perfectly parallel (usually only done once). The operational procedure for alignment and contact is as follows; * Lower substrate chuck to bottom of limit. * Put down substrate gasket, substrate, and apply substrate vacuum. " Mount mask to chuck and apply mask vacuum. C.2. MASK CHUCK DRAWINGS 215 " Place mask chuck onto 3-point support. " Raise substrate stage until fringe patterns are visible, then back off a turn. " Use the microscope to align mask to substrate. " Raise substrate stage until to contact mask to substrate. " Engage contact vacuum, slowly increasing pressure with the adjustable ball valve. " Turn off substrate vacuum to allow backside pressure on the substrate. The valves originally on the OAI were single throw needle valves. These valves do not vent, meaning the sealed vacuum chambers would not release after an exposure. To allow for self-venting and some amount of vacuum throttling, the valves were replace with SwageLok part number B-41VS2 brass vented ball valves. wafer 3inch chuck plate lower plate Figure C-3: OAI 3inch chuck assembly. The machining cost for this chuck was nearly $1600.00. An important note is that parts with more drawings cost more than parts with fewer drawings. The more sheets a machinist has to flip through the higher likelihood of a mistake and the more time is taking matching up features on different pages. For this reason, only one drawing page is used to specify this part. SEE DETAIL DI SECTION S4l-S41 ' DETAIL SCALE DI I .500 .50 5/16 0-Ring McMaster PN 9452Kl5 F///////////, SECTION S20-S20 .360 .10 S20 .31 S20 DETAIL VAC PORT SCALE 1.000 DETAIL PORT *.06 0.400 SECTION S21 SCALE I.000 Engnri(sh, Massachusetts Institute of TechnoLogy JasonM. LaPento (4.2007) Media Laboratory the50lmit.edu Title NanoSfructures Laboratory OAI 3inch Mask Chuck Uits SECT ION S32-S32 i tPoge of D I 216 Appendix D Auxiliary Electronics power SAW package - location - amplifier Figure D-1: Analog test board. Holds SAW test package, low-noise amplifiers, and power regulators. input output amplifier Figure D-2: Closeup of one low-noise amplifier channel. 217 APPENDIX D. AUXILIARY ELECTRONICS 218 S c2 eMIT o c edi RESENV - - e R23 R22 SAW1 C2313l R2. cBO R35©~ 4-.Ci NR33 L ~ * a - N g 13 TP+ m ORO ao T=g ra R~ I g[] g 2.J [ L 70 C&Ias mo Figure D-3: PCT top-side silkscreen. Figure D-4: PCB top-side metal layer. 219 QTY REFDES DEVICE PACKAGE VALUE 1 2 5 2 C1210-TBD C1210P-TBD CAP CAP 2.2pF 22pF 3 13 C10,C1l,C2,C13,C16 C14,C15 C21,C23,C31,C32,C33 C42,C43,C61,C62,C63 C0805-TBD CAP 1OnF 1OOpF 1pF 1OnF 2.2pF 1nF C71,C72,C73 4 5 6 7 8 1 1 1 1 2 C22 C50 C51 C52 C60,C70 C0805-TBD C1210-TBD C1210-TBD C1210-TBD C1210-TBD CAP CAP CAP CAP CAP 9 4 CGND1,GND1,VCC1,VIN1 5016KCT TP1 1 Dl LTST-C170KGKT TO-5 9 142-0701-801 J2,J3,J5,J6,J7,J8 1, J60,J70____________________ COAX-1 J1o 640453-5 SIP-5P 94Z 10 11 ___~~~il 12 1 13 4 L1,L2,L3,L4 L0805-TBD 14 2 L60,L70 L0805-TBD 94Z 15 2 Q2,Q3 BFG424FTR TO-18 16 6 R10,R11,R12,R13,R16 R1210-TBD RES OQ 210Q 500Q 3KQ 210Q 680Q 1OQ OQ 1U R50 17 18 19 20 21 22 23 24 25 26 1 2 2 2 2 2 1 1 1 R15 R21,R31 R22,R32 R23,R33 R24,R34 R25,R35 R41 SAW1 U50 R0805-TBD R0603-TBD R0603-TBD R0603-TBD R0603-TBD R0603-TBD R0603-TBD SAW-SOIC-1 LP2985A-18DBVR RES RES RES RES RES RES RES SAW-i-NC 2 U60,U70 UPC2711TB AMP-6PINS-1 27 1 U80 B3710 SAW_6 Table D.1: Parts list for test board [ . F 42ET~9002-L2- . T .... 1 ......- 2 -- -' ........ 1........................ 8 dnoag suu JTAu3 q esuodse saa .-:s-ares-se-- s20N5i E 2'1 .... P1 N1 63 13 13N ---- t3 EGON5 13N23[-g 8--- ..- - GT3N 13N - V-t33N }- E73N E K 051-60101T -sa -J1O-1 - N WI-EVN1 ..... .. .... . ... .... . ................. . . ..... ....- ....... 2 . 3 4 LNA .. D UT L3 B SINAL A 6 B "".. mDI LOS5-TID 2 N0 3 142-0701-901 ........... .. ...... L J7 BIGNA .L ,N01' r'--l LOOS-TBD 4 A GNO2 GN03.V' GN4 GN04'142-0701-801 A A M I T iv e xr L a b a r a t o r y M e d j.a R e sp o n s En v r o nm en t s G r oup 5 AW ~ ~~~~ 4 .............. .. ........ -............... . . ....... .............. .......................... ..... ........... ............. AP-ENTA :CALF . .... 9 00610 22 221 - ...- 2..... .... .... .. .. ... . . ... .. 4 ................... ...... PUN C2O C2 2P 100 P C23 .NAi-aLIT 3 K Or2 424F TA N NO -- CND32 10 N < 10N N% N07 142-0701-101 MI T Re Me d i a i v e En s p on s L a b o r a t o r y vIr onmen t s Gr aup TITlLE 5 AW ...... ... .. .. .. .. ....... B -.. ... ....... ....... J. B1 L ENTA, - a_________-_1 1_1__3 3-27-2006-10,33 222 ~2 vc BB 3 2C33 C10N -D3K 1A2N 4 C31CQ3 m * CCD LNAZ-..N 10 142-0701-601 B FC424FTO N M.1.I T ... M e d A a ...~. ........ ................ Reas L ab o r a t o r y En v :1r o nm en t s p on s ve G r au p 5 AW -n - - - -- 4rr ., 11 - 8-2 0 0 6_18 13 223 - ..... -.-..-- - -.-- .............-............ - -- - - . -- . 1.. P1111 P1111 01 ii C10 CC11 . C 2 C13P C -L C 14 -- + C 15 PUR VW4 IL CAPS DECDUPLING R 12 I - tp2965mS-1dbvr VOL T AGE V9 REGULATDA v I V OUT O1/OFFAYPASS . .......... - ---- C4 2 ml .......LL.... 'JNi IGNALI R50 10N C5 1 C50 ION 1U .... .....- - - 52 CONDI I42- T ----1 M IT 01101 5018KCT 501B KCT I mncew Me d Aa En vir Respon sive 5i6KCT NNO 1103 N04j .2U Impead fwl 45- Tevs t oi-st i S tr Ip L abo r at o ry on men ts Gr oup 5OIBKCT CHASSIS...No I'I ........................ . ...... . ........ J. LAPENTA r J 9-27-2006-10'34 224 -... ....... ........ .. ........ ..- - - ....... .. 4 ........ 1 .. ....... ......... .... ...... ................. ................. 2 ...... ....... PeS L60 vc C62 L A .IN NA3-QUT IGNAL. .---.Mxo ...... ..... I 10 1F0N C6 3 N -0501 I 1N ~0"" L..IiB- 140-0701-601 10N vci C73 Pup L70 vcc 0 1U 10N C 71 PUS C72 .. A -4.... 10 N 10ON ... .l C7 U 0 I N 711T 142-0701-001 use - -- -=A W.L - INPUT .. sr ai MI T DUTPUT- 43/ L a b o r a t o r y Me d A a R e s pan s cuozo i v e En vir onmen t s Gr oup BI 5 AW . su.. .s.. B f'AT'T ENTA B B 11-8-2006-18-13 225 226 APPENDIX D. AUXILIARY ELECTRONICS Appendix E FPGA VHDL/C/XPS VHDL : rocketio-glue.vhd 1 - 2 -- Copyright 2007 Massachusetts Institute 4 -- Company: Massachusetts Institute 5 -- Engineer: Jason M. LaPenta (JML) of Technology : All rights reserved 3- 6 - 7 -- Create 13:30:08 Date: 8 -- Design Name: uTags - of Technology 02/13/2007 chirp2..rio 9 - Module Name: rocketio.test 10 - Project Name: uTags 11 -- Target Devices : Virtex4 12 -- Tool 13 -- - Behavioral ML405 devel board versions: 14 -- Description : 15 -- cyclically 16 -- Test configuration of a rocket-io port . 17 18 -- 19 - Dependencies: 20 -- 21 -- Revision: 22 -- Revision 0.01 23 -- 24 -- - File Created Changes Date Who Description Additional Comments: 227 Transmitts a pattern 228 APPENDIX E. FPGA VHDL/C/XPS 33 library 34 use IEEE. STD.LOGIC-1164. a IEEE; 35 use IEEE. STD-LOGIC.ARITH. a 36 use IEEE . STD.LOGIC-UNSIGNED. a 37 use IEEE.numeric-std . all; ll ; ll ; ll ; 38 39 - Uncomment the following any Xilinx 40 primitives library in 41 library 42 use UNISIM. VComponents. all; this declaration if instantiating code. UNISIM; 43 44 entity 45 rocketio-glue is 46 port ( usrclk-ip in std-logic -- varies 47 usrclk-in in std-logic -- varies 48 49 system-clk in std-logic 50 reset in std-logic -100 MHz 51 std-logic-vector ( 63 downto 0 52 chirp-pattern 53 delay-time : 55 RX1N..IN in std-logic-vector (0 to 56 RX1PIN in std-logic-vector (0 to 57 TX1N-OUT out std-logic-vector (0 to 58 TX1POUT out std-logic-vector (0 to : in in unsigned ( 31 downto 0 ); ); 54 59 60 led out std-logic-vector (1 61 usrclk-out-p out std-logic; 62 usrclk-out-n out std-logic to 10); 63 64 end rocketio-glue 65 66 67 - ARCHITECTURE 68 69 Behavioral architecture of rocketio-glue is 70 71 72 73 component ROCKETIOWRAPPER generic 74 75 MGTO.GT1lMODE.P string 76 MGTO-vGT.ID.P integer Default Location "A"; := 0 O=A, 77 78 port 79 80 -- MGTO (XOY3) Global MG'ITLPOWERDOWN.IN : in std.logic; Ports 1=B 229 in std-logic; MG'tRXLOCKDUT out std-logic; 90 MGTO-TXLOCK.OUT out std -ogic; 91 - 92 MGTO-TXPOLARITYJN 87 MGTOTXINHIBITIN 88 - 89 PLL Lock Polarity Control Ports---- -- : std-_ogic; in Ports --- 93 for Simulation- 94 MGTO.COMBUSINJN in std-logic-vector (15 downto 0); 95 MGT-COMBUSOUT.OUT out std-logic-vector(15 downto 0); 96 MGTO.REFCLK1.IN in std -logic; 99 MGTO.RXPMARESET-IN in std -ogic; 100 MGTO.TXPMARESETJN in std -logic ; 101 MGTO.TXRESETJN in std -logic; 103 MGTO-RX1NJN in stdlogic; 104 MGTORX1P-IN in std.logic; 105 MGTO-TX1N-OUT out std -logic 106 MGTO-TX1P.OUT out std -logic MGTI-TXBUFERROUT out 97 Resets --- 98 - 102 Status std-logic; Data Path 109 ----------- Transmit 110 MGTO-TXDATA.IN in 112 MGTOTXOUTCLK1_OUT out std logic; 113 MGT0.TXOUTCLK2.OUT out std-logic; 114 MGTOTXUSRCLK.IN in std-logic; 115 MGTO.TXUSRCLK2-IN in std-logic 111 Ports Serial - 107 108 Clocks Reference - Control and std-logic-vector (63 - - Ports downto 0); User Clocks 116 117 118 end component; 119 120 121 -- 122 component UNUSED.MGT 123 124 ............... generic ( 125 GT11-MODEP string "B"; 126 MGTIDP integer 1 -- Default Location Default Location 127 128 129 port ( 130 131 ----------------------------- 132 ----------------------------- 133 -- MGTO 134 135 136 MGTORXLOCKOUT 137 MGTO.TXLOCK.OUT out Lock for Simulation- stdlogic; -Ports 138 PLL out std-logic; vector ( 15 downto 0); 139 MGTO.COMBUSINJN in std-logic 140 MGTUCOMBUSOUTOUT out std.logicvector(15 downto 0); 230 APPENDIX E. FPGA VHDL/C/XPS -_ Clocks- -Reference - ; MGTO.REFCLK1.IN in stdlogic MGTO.RXPMARESET.IN in std logic MGTO.TXPMARESET.IN in std -logic MGTOTXRESETIN in std-logic MGTO-RX1N.IN in std-logic ; -__-- Resets- Serial Ports MGTO_RX1P.IN in std-logic; MGTO-TX1N.OUT out std-logic; MGTO-TX1P.OUT out std-logic; User Clocks MG'IOTXOUTCLKlOUT std-logic MG'T-TXOUTCLK2-OUT std.logic MGTOTXUSRCLK-JN std -logic MGTOTXUSRCLK2_IN std logic end component; component MGT_USRCLKSOURCE port USRCLK.SOURCE out std-logic USRCLK2_SOURCE out std logic DCM.LOCKED out std-ogic TXOUTCLK1.IN :in std logic; DCM.RESET :in std logic end component; component GT11..INIT-TX generic C.SIMULATION : integer := 0 port CLK in STARTINIT in std.-logic LOCK in stdlogic USRCLK.STABLE in stdlogic PCS.ERROR in std_logic PMA.RESET out stdlogic PCS.RESET out stdlogic; READY out stdlogic end component; std-logic; Set to 1 for simulation 231 Instantiations 195 196 197 198 signal usrclk-b std-logic 199 signal usrclk-b2 std-logic 200 signal clk-fb std-logic 201 signal clk_33MHz std-logic; 202 alias is std-logic dcm-clk-b clk_33MHz; 203 204 Signals---- Clock -Reference - std-logic ; 205 signal refclk-b 206 signal dcm-locked std-logic 207 signal dcm-reset-i std-logic ;- TODO -- TODO PLL Lock 208 signal mgt0-txlock-i std-logic; 211 signal mgt0-tx.pmareset.c std-logic ; 212 signal mgt0-tx-reset-c std-logic; signal mgt0-txbuferr-i std-logic ; 209 Resets 210 - - Status- 213 214 Transmit -------- 215 and Data Path Control Ports - ------ : std _logic _vector (63 downto 0); signal mgtO-txdatai 218 signal mgtOtxoutclk1_i std-logic; 219 signal usr-clki std-logic; 220 signal usr-clk2_i stdilogic; signal tx-system.ready-i 216 Clocks User 217 221 222 System Reset 223 224 std-logic ; currently unused, - for reset of user logic 225 226 signal 227 counter : unsigned ( 31 downto 0 ); 228 229 Main Body *********** 230 -- 231 begin 232 233 -- signal Assigments Static 234 235 led(1) <= dcm..locked; 236 led(2) <= dcm-reset-i; 237 led (3) <= mgt0-tx.pmareset.c 238 led (4) <= mgt0.tx-reset-c 239 led (5) <= mgt0-txlock.i; 240 led (6) <= mgt0.txbuferr.i 241 led (7) <= tx-system-ready-i 242 led(8) <= 243 led(9) <= 244 led(10) <= '1'; '1'; '1'; 245 246 usrclk-out-p <= 247 usrclk-out-n <= usr-clk2-i; 248 usr-clk-i; of Code ******************************* 232 APPENDIX E. FPGA VHDL/C/XPS Processes purpose provides data type sequential inputs usr-clk-i , to MGTO-TX reset outputs ( usr-clk-i , txdata-p: process begin process tzdata-p -- if tx-system-ready-i = '0' tx-system.ready-i , then -- counter <= (others > '0'); mgtO-txdata-i <= (others > '0'); elsif usr-clk-i 'event if and usr..clk.i counter >= delay-time counter = > '1' then -- rising clock '0'); chirp-pattern else counter <= counter mgtO-txdata-i end end end - + 1; <= (others => '0'); if; if; process txdata-p; Components ----- -user clocks (for --- IBUFGDS.usrclk refclk-b)----- - ------ IBUFGDS generic map IBUF-DELAY-VALUE => " 0", IOSTANDARD => "LVPECL.25", DIFF-TERM => true) port map ( o I => usrclk-b => , usrclk-ip - IB => usrclk-in BUFG-userclk - Diff-p clock Diff-n clock : BUFG port map ( o => usrclk-b2 I => usrclk-b ---------- Instantiate - Clock buffer output Clock buffer input PMCD/DCM module delay..time) asynchronous reset (active then <= (others mgtOtxdata-i <= = chirp-pattern , for the user clocks- edge low) 233 : MGT-USRCLK.SOURCE mgt-usrclk-source-i port rnap => usr.clk-i USRCLK-SOURCE USRCLK2.SOURCE => usr-clk2-i DCM.LOCKED => dcm-locked TXOUTCLK1.IN => mgtO-txoutc1k1-i DCM-RESET => dcm-reset-i <= not dcm-reset-i mgtO.txlock-i Instantiate ---- -- This module the as recommended in : gt11-init_tx-i GT11.INIT module- an responsible for performing the is correct reset and lock procedure user guide GT11_INIT-TX generic map C-SIMULATION => 0 port map - CLK dcm-clk-b, START-INIT reset , USRCLK.STABLE dcm-locked LOCK mgtO.txlock-i PCSERROR mgtO-txbuferr-i PMARESET mgtOtx.pmareset_c PCS.RESET mgt0-tx.reset-c , READY tx-system.ready-i upper-gt11c1k-mgtinst generic for upper reference clocks -------- GT11CLK.MGT Instantiations ------ : GT11CLK map SYNCLKOUTEN => "ENABLE" SYNCLK2OUTEN => "DISABLE", REFCLKSEL => "REFCLK" port map MCUTLEN => '0', -- unused MG'CLKP => '1', -- unused REFCLK => usrclk-b2 RXBCLK => '0', -- unused SYNCLK1IN => '0', - unused SYNCLK21N => '0', -- unused SYNCLK1OUT => refclkb SYNCLK2OUT => open 234 APPENDIX E. FPGA VHDL/C/XPS Instantiate - MGTO MGT Wrapper - (XOY3) rocketio-wrapper-i ROCKETIO.WRAPPER generic map MGTO.GT11.MODE_P => "B", MGTO-MGT-IDP => 0 port map -_- Global MG'TLPOWERDOWN.IN => '0', MGTO-TXINHIBIT-IN => '0', MGTOJXLOCK.DUT => open, MGTOTXLOCK_OUT => mgto-txlocki , Ports PLL Lock MGTOTXPOLARITYJN => MGTOCOMBUSININ => X" 0000", unused? - Polarity - Control Ports ------ '0', _ Ports for Simulation MG'TLCOMBUSOUT.OUT => open, ___ Reference - MGTO-REFCLK1-IN => refclk-b , MGTO-RXPMARESETJN = > '1', __ Clocks Resets MGTO-TXPMARESETJN => mgt0_tx-pmareset_c, MGTO-TXRESET.IN => mgtO-tx-reset-c , MGTO-RX1N.IN => RX1N-IN (0) MGTORX1P-IN => RX1PIN(0), MGTO-TX1N.OUT => TX1N.OUT(0), MGTOTX1P.OUT => TX1P.OUT (0) , MGTO-TXBUFERR-OUT => mgtO.txbuferr-i , ___- - Serial _- _____ - MGTOTXDATAJN Ports , Status-- Transmit Data Path and Control Ports~ => mgtO-txdata.i , -_ - User Clocks MGTO-TXOUTCLK1-OUT => mgt0-txoutclk1-i , MGTO-TXOUTCLK2-OUT => open , - MGTO-TXUSRCLKJN => usr-clk-i MGTO.TXUSRCLK2.IN => usr-clk2.i Unused MGT paired with MGTO unused-mgt-0-i : UNUSED.MGT 235 generic map GT11.MODEP => "B", MGTIDP => Based on MGT Location -- 1 port map( PLL Lock MGTO.RXLOCKOUT => open, MGTO.TXLOCKOUT => open, MGTO-COMBUSININ => X" 0000 ", -- Simulation for Ports -- MGTO.COMBUSOUT.OUT => open, Reference MGT0.REFCLK1JN Clocks => refclk-b , R s et s MGTO.RXPMARESETJN => '1', MGTOTXPMARESETJN => mgt0.tx.pmareset.c, MGTO.TXRESETJN => mgt0-tx-reset_c , MGTORX1N.IN => RX1NIN (1), MGTORX1P..N => RX1PJN (1), MGTOTX1N.OUT => TX1N..OUT(1), MGTO-TX1P_OUT => TX1POUT( 1), _- -- Ports Serial -t _____________ User Clocks MGTO_TXOUTCLK1_OUT => open, MGT0.TXOUTCLK2-OUT => open, -- MGTOTXUSRCLKJN => usr-clk..i MGTOTXUSRCLK2.JN => usr-clk2-i divides down 100MHz / system clock by 3.0 to create 3 = 33 MHz clock DCM.BASE-inst : DCM.BASE generic map CLKDV.DIVIDE => 3.0, CLKFX-DIVIDE => 1, CLKFX-MULTIPLY => 4, CLKINDIVIDE.BY-2 => false CLKIN.PERIOD Divide by: - => 10.0, - Can be any integer - TRUE/FALSE - two phase shift clock DCMLAUTOCALIBRATION => true DCM.PERFORMANCE.MODE => "MAX.SPEED", DESKEWADJUST => "SYSTEMSYNCHRONOUS" , - DCM - => "LOW' , - -- by of ns MAX.SPEED -- NONE or 1X TRUE/FALSE circuitry Can be an integer in mode of NONE or FIXED feedback calibrartion , clock input or MAXRANGE SOURCE.SYNCHRONOUS, SYSTEM.SYNCHRONOUS LOW to 32 to 1000.00 Specify =>" 1X" , - 1 enable CLKIN divide Specify =>"NONE" , CLK.FEEDBACK - to period of 1.25 CLKOUT-PHASE.SHIFT synthesis from from 2 to 32 feature Specify -- from DFS.FREQUENCY.MODE 3.0 Can be any interger from 0 or HIGH frequency or to 15 mode for frequency 236 APPENDIX E. FPGA VHDL/C/XPS 465 DLL.FREQUENCY.MODE 466 DLL 467 DUTY-CYCLE-CORRECTION => true, 468 FACTORYJF 469 X" FOFO 470 ------ PHASE.SHIFT ---..----- -------- 472 .------ STARTUP-WAIT----------= 474 475 -- =>X"FOF0" 471 473 -..- => "LOW, LOW, , -- HIGH, or HIGH.SER frequency Duty cycle correction , TRUE or FALSE FACTORY Values JF =>_-,----...Amount-offixed Suggested ). >.false -- -- port...map - ( ------ CLKO-....-=>-clk-fb ,-------..0...degree..DCM-CLK...ouptput CLK180 ..- =>-open ,------CLK270--=>...open ,------------------- -.-. 270.d eg ree.. DCMCLK..output 478 ------ CLK2X--- -- .. 2X.DCM.-CLK- output 479 ------ CLK2X180->...open ,----------------.-- 480 ------ CLK90...-. =>-open ,..--- 481 ----482 - CLKDV .-----CLKFX--- ---------------- 487 ----- 488 .. 180-degree .DCM.CLK.output >...open ,------------------- -.--- =->...clk.33MHz ,------ CLKFX180..-=>-open ,--.------ RST--.. ) 489 end-Behavioral 90 . d e gree .DCM.CLK..output D i v i ded .DCM.-CLK.out -(CLKDV.DIVIDE) DCM-CLK.s y n t h e sis -out -(M/D) -- 180-d egree -CLK.synthesis -out DCM-LOCK..status .output ....----- -.. DCM.. c Ioc k .f eed bac k CLKIN---=>..systemclk ,----. 2X,-. 18 0 . d egree .DCM-CLK-out -- =>.open ,------ =>-clk -f b ,- --- LOCKED--=>.open ,----....--- ------ CLKFB -- 486 to Delay..configurat ion ..DONE.u ntil .DCM-LOCK, ------ 490 set TRUE/FALSE ....--.------.---------------------.---------- ------ 485 be -phase- shift -from.. -255-to 477 484 to for 1023 476 483 mode >..reset ------------- -.. Clock .i n p u t .( from -IBUFG, ..BUFG.or ..DCM) - DCM.asynchronous .reset .input ,..active .. high 237 VHDL : chirp3-pads.vhd 1 - 2 -- 3 -- 4 -- Company: Massachusetts Institute 5 -- Engineer: Jason M. LaPenta 6 -- 7 -- Create Date: 12:34:27 08/12/2006 8 - Design Name: uTags - 9 -- Module Name: chirp3 - 10 -- Project Name: uTags 11 -- Target Devices : Virtex4 12 -- Tool 13 -- 14 16 : Technology rights reserved All Technology of chirp1 Behavioral ML405 devel board versions: Description : A simple with # ./ml40x-bit2ace chirp3-pads. bit - a configurable sends out chirp demonstration the make an ace file - 15 of Copyright 2007 Massachusetts Institute chirp3. ace - 17 Dependencies: - 18 - 19 -- Revision: 20 -- Revision 0.01 21 -- Additional Comments: 22 - - File Created 23 IEEE; 24 library 25 use IEEE. STD-LOGIC-1164. all; 26 use IEEE . STD.LOGIC.ARITH. a 27 use IEEE. STDLOGIC.UNSIGNED. a l I; l I; 28 29 ---- primitives Xilinx 30 library 31 use UNISIM; UNISIM. VComponents. all; 32 33 - 34 -- 35 ----- chirp3 Entity _-- chirp3-pads entity is port ( sysclk-i : in std-logic -- 100 mhz system usrclk-ip : in std-logic -- user supplied clock for chirp freq usrclk-in : in std-logic -- user supplied clock for chirp freq reset.n : in std-logic -- active low trig-i : in std-logic -- trigger , clock button A10 reset chirp starts pb.n-i : in std-logic -- push button north pb-s-i : in std-logic -- push in std-logic -- push button center led-reset : out std-logic; -- illuminates when led-trig : out std-logic; -- illuminates on trigger led.timeout : out std..logic; -- illuminates on trigger test-o : out std-logic; -- test pb..ci button south device output H6 diff-clk-out-n reset timeout 238 APPENDIX E. FPGA VHDL/C/XPS chirp-op out std.logic; chirp-on out stdilogic; chirp-o end 61 62 : chirp output chirp output -- out std-logic -- chirp output signal chirp3-pads; - architecture 63 64 architecture component Behavioral of chirp3-pads chirp3-top port ( sysclk-i in std-logic -- 100 mhz system usrclk-i in std-logic -- user supplied clock reset-n in std-logic; trig-i in std-logic pb-n i : pb-s-i pb-ci 83 : trigger , clock starts for chirp freq chirp in std-logic push button north in std-logic push button south in std-logic push button led-reset out std-logic; led-trig out std-logic; led-timeout out std-logic; test-o out std-logic ; chirp-o chirp-en-o -- when illuminates on -- : out std-logic; : out illuminates illuminates - center test device reset trigger on trigger timeout output H6 diff-clk-out-n chirp output std-logic end component; signal sysclk-b std.logic; signal usrclk-b std-logic; signal reset-n-b std-logic; signal trig-b std-logic; signal pb-n-b std-logic push button north signal pb-s-b std-logic -- push button south signal pb-c-b std-logic; - push button signal led-reset-b std-logic -- illuminates when signal led-trig-b std-logic -- illuminates on trigger signal led.timeout.b std-logic - illuminates on trigger signal test-b std-logic signal chirp-b : std-logic ; 100 mhz system user supplied clock for -- trigger - -- clock -- test , starts chirp center output H6 chirp output chirp freq device diff-clk-out-n reset timeout 239 signal std-logic : chirp-en-b begin - top component top.c : chirp3-top sysclki port rnap( => sysclk-b usrclk-i => usrclk-b, reset-n => reset.nb trig-i => trig-b pb-n-i => pb.n-b pb-s-i => pb-s-b pb-ci => pb.c-b led-reset => led-reset-b led-trig => led-trig-b , led-timeout => led-timeout..b test-o => test-b , chirp-o => chirp.b chirpen-o => chirp-en-b ******************************** IBUFGtsysclk : IBUFG generic rmap ( IBUF-DELAYVALUE => " 0", =>"LVTL") IOSTANDARD port rnap ( o => sysclk-b I => sysclk-i IBUFGDS-usrclk IBUFGDS generic map => " ", IBUF-DELAY.VALUE IOSTANDARD => " LVPECL.25", DIFF-TERM => TRUE) port rnap ( o I => usrclk.b => usrclkip , IB => usrclk-in generic Diff-p clock -- Diff-n clock ****************************** -- ********** OBUF-chirp-o -- : OBUFDS rmap ( IOSTANDARD => "LVPECL-25" port o nap => chirp-op OB=> chirp-on I => chirp-b 240 APPENDIX E. FPGA VHDL/C/XPS 161 162 163 ****************** 164 -- 165 IBUF.reset 166 : IBUF generic map ( 167 IBUF.DELAYVALUE => " 0", 168 IFD-DELAYVALUE => "AVID", 169 IOSTANDARD => "LVTTL") 170 port map ( 171 0 => reset-n-b 172 I => reset-n 173 174 175 176 IBUF-trig 177 : IBUF generic map ( 178 IBUF.DELAYVALUE => " 0", 179 IFDJDELAY.VALUE => "AUTO", 180 IOSTANDARD => "LVTTL") 181 port map ( 0 => trigb, 182 I => trigi 183 184 185 186 -****************** 187 IBUF-pb-n 188 : IBUF generic map ( 189 IBUFDELAYVALUE => " 0", 190 IFDDELAYVALUE => "AUTO", 191 IOSTANDARD => "LVTTL") 192 port map ( 0 => pb.n-b, 193 194 I => pb-n-i 195 196 ****************** 197 -- 198 IBUF-pb-s 199 : IBUF generic map ( 200 IBUFDELAYVALUE => " 0", 201 IFDDELAY-VALUE => "AUTO", 202 IOSTANDARD => "LVTTL") 203 port map ( 0 => pb-s-b 204 205 I => pb-s-i 206 207 208 -- 209 IBUF-pb-c 210 ****************** : IBUF generic map ( 211 IBUF.DELAYVALUE => " 0", 212 IFDJDELAY-VALUE => "AUTO" 213 IOSTANDARD => " LVTTL" ) 214 port map ( , 241 215 0 => pb.c-b 216 I => pb.c-i 217 218 219 -****************** 220 OBUF.led-reset OBUF nap ( generic 221 => 12, 222 DRIVE 223 IOSTANDARD => "LVITL" , => "SLOW') SLEW 224 port map ( 225 0 => led-reset 226 I => led-reset-b 227 228 229 230 ****************** -- 231 OBUF-led-trig 232 generic map OBUF=> 12, 233 DRIVE 234 IOSTANDARD => "LVTTL", => "SLOW') SLEW 235 port map ( 236 0 => led-trig 237 I => led-trig-b 238 239 240 ****************** 241 -- 242 OBUF..ed.timeout : OBUF generic map ( 243 => 12, 244 DRIVE 245 IOSTANDARD => "LVTTL", => "SLOW') SLEW 246 port map ( 247 led.timeout 248 0 => 249 I => led-timeout-b 250 251 ****************** 252 -- 253 OBUF.test 254 : OBUF generic map ( => 12, 255 DRIVE 256 IOSTANDARD => "LVTTL" , 257 258 => "SLOW') SLEW port map ( 259 0 => test-o 260 I => test-b 261 262 263 -******************* 264 OBUF.chirp 265 : OBUFT generic map ( 266 IOSTANDARD => "LVTTL" , 267 DRIVE => 268 SLEW => "FAST") 24, 242 269 APPENDIX E. FPGA VHDL/C/XPS port map 270 T => chirp-en-b 271 0 => chirp-o , 272 I => usrclk-b 273 274 275 276 end Behavioral 243 VHDL : chirp3-top.vhd 1 -- 2 3 - Copyright 2007 Massachusetts Institute - Company: Massachusetts Institute Engineer: Jason M. LaPenta : Technology of rights All reserved -- 4 5 - - Create -- -- 12:34:27 08/12/2006 Date: Design Name: uTags - Module Name: chirp3 - Project Name: u Tags Target Devices Virtex4 Tool Technology of chirp1 Behavioral ML405 devel board versions: Description: 15 Sends a 16 a trigger. chirp on a trigger signal , or at 10Hz in the absence of 17 18 -- 19 - changed using the shifted generate phase push buttons wide-band chirps. -- Dependencies: 22 23 to OSERDES utilized version This 20 21 cycles per chirp can be The number of -- 24 Revision: - Revision 0.01 25 26 -- 27 -- File Created Additional Comments: 28 29 library 30 use IEEE; IEEE.STDLOGIC-1164. all; l; 31 use IEEE . STD-LOGIC.ARITH. a 32 use IEEE. STD.LOGIC-UNSIGNED. a 33 use IEEE. numeric.std l I; all; 34 35 Xilinx --- primitives 36 library UNISIM; 37 use UNISIM.VComponents. all; 38 39 40 - Entity chirp3 41 entity port chirp3-top : in std-logic -- 100 MHz system i : in std-logic -- user supplied clock for -- trigger , usrclk reset-n : in stdlogic trig-i : std-logic pbn-i pb s-i pb c-i 52 is ( sysclk-i in clock starts chirp : in std-logic -- push button north : in std-logic -- push button south : std-logic push button led.reset in : out std-logic ; - -- Illuminates I chirp freq center when device reset 244 APPENDIX E. FPGA VHDL/C/XPS led-trig out std-logic led-timeout out std-logic test-o out std-logic chirp-o 59 60 : out chirp-en-o end -- - -- std-logic ; illuminates on trigger illuminates on trigger test output H6 timeout diff-clk-out.n chirp output : out std-logic); chirp3-top; 61 62 -- 63 -- architecture 64 65 architecture component Behavioral of chirp3-top is chirp3-gen port ( clock-i in std-logic reset-b in std-logic le-i in std-logic data-i in std-logic-vector ( 5 downto 0 chirp-o : out variable input clock -- std-logic -- data latch enable chirp ); -- signal data latch enable output end component; signal clk-5MHz std.logic -- signal clk.fb std-logic - signal reset-b std-logic - 84 signal trig-timeout std-logic ; 85 signal trigger std-logic ; signal chirp-en std-logic; signal chirp-len unsigned (7 -- downto internal divided DCM clock Active High Reset for DCM signals tigger timeout signals to trigger 0); chirp length begin -- combinationc led-timeout <= trig.timeout led-trig <= led-reset <= not test-o <= clk-5MHz; reset-b <= not reset.n; chirp-en-o <= chirp-en ; chirp3-genl trigger; reset.n; chirp3-gen port rnap clock-i => usrclk-i, reset-b => reset-b , -- clock Feed Back active low a chirp on in cycles risinq edqe 245 107 le -i => 108 data-i => " 111111", 109 chirp-o => chirp-o '1', 110 111 - 112 113 114 - 115 -- 116 chirp-p uses chirp output to gate trigger : , (usrclk-i process reset.n) 117 (7 118 variable chirp-cntr unsigned 119 variable trig-last std-logic; downto 0); 120 121 122 process chirp-p - begin 123 124 '0' = reset-n if then 125 chirp-cntr := (others 126 chirp-en <= '1'; => '0'); 127 128 'event usrclk-i elsif '1' = usrclk-i and then 129 '1' and chirp-en <= '0'; chirp-cntr := (others = trigger if 130 131 132 = trig-last => '0' then '0'); else 133 134 if 135 chirp-cntr 137 chirp-en then chirp-len /= chirp-cntr 136 + chirp-cntr 1; '0'; <= else 138 <= chirp-en 139 '1'; if; end 140 141 if; 142 end 143 trig-last := trigger; 144 145 end if; 146 147 end process chirp-p; 148 149 150 purpose: create internal 151 152 trig-p : process (clk-5MHz, triger necessary if reset.n , trig-i) 153 154 -- one second timeout 155 variable trig-to-cntr unsigned 156 variable trig-last std-logic (23 downto 0); 157 trig-cntr used for 10kHz timout 158 -- 159 variable trig-cntr unsigned 160 variable trig-internal std-logic; (7 downto 0); rising clock edge 246 APPENDIX E. FPGA VHDL/C/XPS begin -- process reset-n = if trig-p '0' trig-last then '0'; := trig-tocntr (others = > '0'); trig-cntr := (others = > trig-internal := '0' trig-timeout <= '0'; trigger <=0 '0'; elsif clk-5MHz'event -- edge if and clk_5MHz = '1' trig-to-cntr and = '1' reset timeout detect TRIG, trig-i '0'); trig-last := (others = => then if - rising detected '0' then '0'); else if trig-timeout end end = '0' := trig-to-cntr then trig-to-cntr + 1; if; if; := trig-i trig.last 1 second signal timeout to start -if trig-to-cntr = 2000 then trig-timeout <= '1'; <= '0'; 10kHz -- else trig-timeout end if; - internal if trig-cntr counter trigger = 250 then (others trig.cntr trig-internal := not => 'O'); trig-internal; else trig-cntr trig-cntr trig-internal trig.internal; end -- if; trigger if select trig.timeout = '0' trigger <= trig-i; else trigger <= trig-internal; end end end if; if; process trig-p then + 1; signal 5e6 then clock edge 247 -- debounce buttons purpose process ( clk-5MHz , buttons-p one second timeout , -- reset.n) disable buttons for one second after a press begin if : buttons-to-cntr variable downto 0); unsigned (21 process buttons-p -- = reset-n '0' then '0'); buttons-to-cntr := (others chirp-len <= unsigned (to-unsigned(50, elsif clk_5MHz'event if buttons-to-cntr - and => clk_5MHz = pb-n-i = and '1' buttons-to.cntr := (others decrease chirp length pb-s-i = '1' and buttons-to-cntr := (others decrease chirp length by pb-s-i = '1' and buttons-to-cntr := (others reset chirp pb-c-i = => 5; '1'); > 10 then 5; '1'); 1 - <= chirp-len -- - chirp-len chirp-len elsif => > 1 and length to 50 '1' then <= unsigned (to-unsigned (50, buttons-to-cntr := (others => '1'); if; buttons-to-cntr buttons-to-cntr end end --- - 1; if; if; process buttons-p; divides down system 100MHz / clock 20 = 5 MHz clock DCM.BASE-inst < 10 then '1'); else end chirp-len 1; chirp-len end edge by 5 chirp-len <= chirp-len -- + => chirp-len elsif clock < 250 then <= chirp-len -- rising 5 chirp-len chirp-len elsif -- then 0 then = increase chirp length by if '1' chirp-len 'length )); : DCM..BASE by 32 to create chirp-len 'length)); 248 APPENDIX E. FPGA VHDL/C/XPS generic map ( CLKDVDIVIDE -- => 10.0, - Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5 7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0 CLKFX.DIVIDE => 1, - Can be any interger CLKFX.MULTIPLY => 4, -- Can be any integer CLKIN..DIVIDE-BY-2 => true , CLKIN-PERIOD => 10.0, CLKOUT-PHASE.SHIFT => "NONE' , -- CLK.FEEDBACK =>"1X" , - DCM.AUTOCALIBRATION => true, DCM.PERFORMANCE.MODE => "MAX.SPEED" DESKEW.ADJUST => "SYSTEM.SYNCHRONOUS", - TRUE/FALSE Specify - to from 1 enable CLKIN divide period of input Specify phase shift Specify clock -- Can clock by be MAXSPEED => "LOW' , DLL.FREQUENCY.MODE => "LOW, -- FACTORY.JF =>X"F0F0" , PHASE-SHIFT => 0, STARTUP-WAIT => false) -- Duty - cycle or 1X or MAX-RANGE SYSTEM.SYNCHRONOUS SOURCE.SYNCHRONOUS, to 15 of fixed Delay correction , TRUE or FALSE Suggested to be phase shift from -255 configuration DONE until set DCM LOCK, TRUE/FALSE degree DCM CLK ouptput => clk-fb , CLK180 => open, - 180 degree DCM CLK output CLK270 => open, - 270 degree DCM CLK output CLK2X => open, - 2X DCM CLK output - 2X, 180 90 degree DCM CLK output CLK2X180 => open, end 0 CLKO CLK90 => open, - CLKDV => clk-5MHz, - CLKFX => open, - degree DCM CLK out Divided DGM CLK out DCM CLK synthesis (CLKDV-DIVIDE) out (M/D) CLKFX180 => open, 180 degree CLK synthesis out LOCKED => open, DCM LOCK status CLKFB => clk-fb , CLKIN => SYSCLK.I, RST => reset.b Behavioral; -- output DCM clock feedback Clock input (from IBUFG, BUFC or DCM) DCM asynchronous reset input , to X"FOFO to 1023 port map ( - synthesis or HIGH-SER frequency mode for DLL FACTORY JF Values Amount to 1000.00 TRUE/FALSE LOW or HIGH frequency mode for frequency LOW, HIGH, DUTY-CYCLECORRECTION => true , feature or FIXED an integer from 0 DFS.FREQUENCY.MODE two ns from 1.25 of NONE circuitry - in mode of NONE feedback DCM calibrartion , to 32 from 2 to 32 active high or 249 C 1 2 /* chirpnet.c _ ----- of Copyright 2007 Massachusetts Institute Technology : All rights 3 4 -- Create Date: 3/13/2007 5 - Design Name: uTags - File Name: chirp2 . c 6 7 Tool - 9 Virtex4 Target Devices : - 8 xps/chirp-rio/chirp2 ML405 devel board PowerPC 405 Xilinx XPS 8.2 versions : -- Description : Simple program to access UART debug 10 - 11 -- Ethernet User Interface , and 12 -- Peripherial . - 13 14 15 #include <stdio. h> 16 #include < stdlib .h> 17 #include <string .h> 18 #include <xgpio- 19 #include < xbasictypes . h> .h> 20 21 #include "xparameters .h" 22 #include "xromlcd .h" 23 #include "chirp2.h" 24 #include "enet .h" 25 26 VERSION "ChirpNet..v0.10" #define 27 28 / 29 int main (void) { 30 Setup LCD screen 31 /* 32 XromLCDOn (); 33 XromLCDInit (); 34 XromLCDPrintString 35 xil-printf ( VERSION, " Running. ); ( VERSION "\n"); 36 chirp2 peripheral initialize 37 // 38 39 chirp2-reset (; chirp2-set-delay ( 100 40 chirp2-set-pattern( 41 chirp2-enable (); ); Ox88AA55AA, OxFF00FFFF 42 open Ethernet and Accept 43 // 44 enet-open(; 45 for 46 48 1 return 0; 50 52 { enet-proc.conns(; 49 51 (;;) enet-accept (; 47 } New Connections ); interface, the rocket-io chirp2 reserved 250 APPENDIX E. FPGA VHDL/C/XPS Stack Overflow 53 /* 54 void 55 56 & Interrupt { xil-printf("Stack..Overflow..\r\n"); } 57 58 Handler Dummy -stack-overflow-exit (void) void -interrupt-handler () { Functions */ 251 C : enet.c -- Copyright 2007 Massachusetts Institute -- Create Date: 3/13/2007 -- Design Name: uTags - xps/chirp.rio/chirp2 -- Target Devices: Virtex4 ML405 devel Tool -- Technology : All rights board PowerPC 405 Xilinx XPS 8.2 versions : Description : of Supports the Server TCP/IP SocketIO Interface #include <stdio .h> .h> #include <stdlib #include <string .h> .h> <net/xilnet.config #include #include <net/xilsock .h> #include <net/mac.h> #include <xemac -. h> #include <xbasic-types .h> #include " xromlcd . h" #include "enet.h" #include "chirp2.h" // connections Server States for request #define NET.GET 1 // Got a Get #define NET-GETPROC 2 processing a GET request #define NETDONE #define NET.CONNYREE // // // 3 -1 done with a GET request processing conn free to assign to net.conn-ent { struct / int sock; // state; int socket state descriptor of the connection }; /************************************** Global Variables */ * globals { struct isnetinit int // Net Connections Management int sock; struct net.conn-ent struct sockaddr-in net.conns [MAX.NETCONNS]; addr; } g; /************************************** * Local Function Definitions */ void enet-parse-buf void enet-free-conn int enet-add-conn ( void enet-proc-req ********* ( char *buf ); ( int idx int ( int sock ); cidx *********************** client reserved 252 APPENDIX E. FPGA VHDL/C/XPS 53* 54 open int */ ( void enet-open 55 56 int err 57 int idx; 58 59 g. isnetinit 60 g.sock = 0; = 0; 61 62 // 63 for 64 Initialise (idx all net = 0; conns idx++) { idx < MAXNET.CONNS; g.net-conns [idx ].sock =-1; g. net-conns (idx ].state 65 66 } 67 g. isnetinit = = NETCONN.FREE; 1; 68 69 // 70 xilnet-eth-init-hw-addr ( "00:00:00:00:22:38" ); 71 xilnet-eth-init.hwaddr-tbl 72 xilnet-ip-init Set up MAC &4 IP addresses and intialise Ethernet HW Table (); ( ENETADDR ); 73 74 // 75 x i l n e t - m a c .. i n i t ( XPARVYETHERBASEADDR 76 XEmac-mSetMacAddress( 77 XEmac..nEnable ( XPARJvfYETHERBASEADDR MAC Baseaddress , Initialize set MAC address and enable it ) ; XPAR.MYETHERBASEADDR, mb-hw-addr ); ); 78 79 // 80 g.sock = xilsock-socket( 81 if Create , (g. Bind, Listen xil-printf("socket 83 return AF.INET, SOCK.STREAM, 0 ); { sock == -1) 82 on Server Socket ()..error.\r\n"); 0; } 84 85 86 g.addr.sin-family 87 g. addr. sin-addr .saddr = AFJNET; 88 g. addr. sin-port = INADDRANY; = SERVEFLPORT; 89 90 err 91 if = xilsock-bind ( g.sock , (struct == -1) (err 92 xil-printf 93 return 0; { ("bind ()..error...\r\n" } 94 95 96 err 97 if 98 = xilsock-listen ( g.sock , 4 (err == -1) 99 return { ("listen ()..error..\r\n" xil.printf 0; } 100 101 102 103 return 1; } 104 105 106 /********************************** * close */ sockaddr *)&(g.addr), sizeof(struct sockaddr) 253 107 void ) { ("warning.:..enet-close ()...not -implemented..\r\n"); xilprintf 1; return 109 ( enet.close int 108 110 111 } 112 /************************************** 113 114 accept - * Accept new connections */ ( void enet-accept int ) { 115 116 int alen = 0; 117 int rtn = 0; 118 sockaddr ); 119 alen = sizeof(struct 120 rtn = xilsock.accept( sockaddr g.sock , (struct *)&(g.addr), &alen 121 ( if 122 ( "New.Connection-\r\n" enetadd-conn( 124 & XILSOCK.NEW.CONN xilsock-status-flag xil-printf 123 rtn ) { ) ); } 125 126 return 1; 127 128 } 129 130 /************************************* Add a net 131 * 132 int 133 134 connection */ int enet-add-conn( sock ) { int idx; 135 ( idx = 0; idx < MAXNETCONNS; idx++ ) { ( g. net-conns [idx ]. state == NET..CONN.FREE for 136 if 137 break; 138 139 1 140 if ( { i d x <= MAXNET.CONNS) = sock; 141 g.net-conns[idx}.sock 142 g. net-conns [idx]. state = NET.GET; return 143 ("no...free...conns.\r\n" ); 145 xil-printf 146 return -1; 147 idx; } 144 } 148 149 150 151 /************************************* * Process a Net Connection */ void enet-proc-req ( int cidx ) { 152 153 unsigned char *sndptr 155 = (unsigned char*) \ (send buf+LINK.HDR.LEN+IP-HDR.LEN*4+(TCP.HDR.LEN 154 unsigned char * buf = xilsock-sockets [ g .net.conns [cidx]. sock 156 157 if ( buf) return; 158 159 160 if ( xilsock-status.flag & XILSOCK.TCP.DATA ) { *4)); ]. recvbuf. buf; 254 APPENDIX E. FPGA VHDL/C/XPS 161 XromLCDPrintString ( strtok (buf," \n" ) ,"" 162 enet-parse-buf( 163 memset ( sendbuf, 164 memcpy( sndptr, ); buf ); 0, ); LINK-FRAMELEN buf, ); strlen(buf) xilsock-send ( g. net-conns [cidx ]. sock , sendbuf, 165 strlen (sndptr)+1 } 166 167 168 // reset buf ptrs 169 if ( of sockets 1 ) { g.net.conns [cidx]. sock != 170 xilsock-sockets [ g. net.conns [cidx 171 xilsock-sockets [ g. net-conns [cidx .sock 172 173 ] recvbuf . buf .sock = ]. recvbuf . size } } 174 175 /************************************* 176 177 Free a net connection */ * ( void enet-free-conn int idx ) { 178 xil-printf("Free.Connection-%d-\r\n" , idx); 179 180 xilsock-close ( g.net-conns [ 181 g. net.conns [idx] .sock 182 183 state g.netconns[idx]. idx ].sock ) = -1; = NET-CONN.FREE; } 184 185 /************************************* 186 187 Process all net * connections */ void enet-proc-conns ( void 188 189 int idx; 190 for (idx 192 193 = 0; idx < MAX-NET-CONNS; enet-proc-req ( 191 idx idx++){ ); } } 194 195 /************* *************** 196 * 197 * parse , process , 198 * commands sent 199 enet-parse-buf execute and then by client void enet-parse-buf ( char */ *buf ){ 200 201 int 202 char * tok-array [10}; idx = 0; 203 204 // 205 tok-array [0] = strtok ( 206 xil-printf("Tokeno..0-=-'%s '-\r\n" parse no more than 10 tokens buf, " ," ); , tok-array [0] ); 207 208 for ( idx = 1; idx 209 tok-array [idx] = 210 if idx++ ){ tok-array [idx) == 0 ){ break; 211 } 212 213 214 ( < 10; strtok ( 0 , " ," ); xil-printf("Token-%d-.-%s-\r\n", 1 idx, tok-array[idx] ); NUIL; = 0; ); 255 / // parse commands - if( "chirp2, delay , high low;" tok.array [0] , "chirp2" ! strcmp ( ) ){ Xuint32 delay = strtoul ( Xuint32 high = strtoul ( tok-array [2] , 0 , 0 ); Xuint32 low = strtoul ( tok-array [3] , 0, 0 ); xil-printf ( "chirp2'%d 'ox%08X'Ox%08X;\ r\n" , delay , chirp2-set-delay ( delay chirp2-set.pattern ( chirp2-enable (); return; tok-array [1] , 0, 0 ); ); high , low ) high , low ); 256 APPENDIX E. FPGA VHDL/C/XPS Appendix F MATLAB Source Code Source code for simulations in section 2.3 MATLAB : pschirpWB.m chirp = pschirpWB 1 function 2 % 11/29/2006 3 % 4 % creates a phase shifted 5 % the 6 % polarties. 7 % 2 = no signal encoding chirp an array of finger encoding is 0 = ( even, 1 = odd phase 8 9 f = 915e6; % frequency = 915 MHz 10 w = 2*pi*f; % rad/second 11 p = 1/f; % period 12 13 len = size (encoding 2); 14 15 t = 0:(p/100):p; 16 17 even = sin(w*t); 18 odd 19 chirp = -even; = [0]; 20 21 % model input pulse 22 for 23 elseif 30 encoding(i) 0 odd]; == 1 even]; else chirp = [chirp 28 29 == = [chirp chirp = [chirp 26 27 encoding(i) chirp 24 25 i = 1:len if zeros(size(even))]; end end 257 258 APPENDIX F. MATLAB SOURCE CODE MATLAB : nb. m Source code for simulations in section 2.3 1 % This 2 % barker codes code simulates narrow-band for SAW correlators. 3 4 %. 5 % n-5 barker code ................................................. simulation 6 7 % 11101 8 ea receive code, 1 0 1 1 1 2]; 9 rx = pschirpWB( [ 2 = narrow band ea 10 11 % 10111 12 ea 13 tx transmit output code , = [ 2 1 1 1 narrow band 0 1 2]; pschirpWB ( ea 14 15 % narrow band input 16 ec 17 inidt = [2 idt 1 2]; = pschirpWB( ) ec 18 19 figure 20 tl 21 plot ( = conv( tx,conv(rx,inidt)); ) t1 22 23 % ... 24 % example ..... ... ........ .. ... .... narrow-band device .. ...... ..... ......... on mask3. v3 25 receive code , narrow band 26 % 1111110111 27 ea = 28 rx = pschirpWB ( ea ) [ 2 1 1 1 1 1 1 0 1 1 1 2]; 29 30 % 1011111111 31 ea = [ 2 transmit output code, 32 tx = pschirpWB( 1 1 1 0 1 1 ea 1 1 ) 33 34 % narrow band input 35 ec 36 inidt = [2 idt 1 2]; = pschirpWB( ec 37 38 figure 39 t2 = conv( 40 plot ( t2 ) tx,conv(rx,inidt)); 1 1 2]; narrow band 259 Source code for simulations in section 2.3 MATLAB : wb.m simulates wide-band and wide 1 % This code 2 % barker codes for SAW band correlators. 3 .................................................. 4 %.. 5 % n-5 barker code simulation with 2-cycle codes 6 2); 7 10 = zeros(1 8 11 = ones(1,2); 9 ss = 2*ones(1 ,2); % 10111 code ea = [ 2 11 wide ss 10 band ss 11 ss 11 ss 11 2]; ss ss 11 2]; rx = pschirpWB ( ea ); % 11101 code ea = [ 2 11 wide ss 11 band ss 11 10 tx = pschirpWB ( ea ); % narrow band input idt ec 1 2]; [2 1 = ec inidt = pschirpWB( figure ti = conv( tx,conv(rx,inidt)); t1 ) plot( % .... . . . . . . . . . .. . . . . . . . . . . wide-band device % example 10 = zeros(1,5); 11 = ones(1 ,5); on mask3.v3 ss = 2*ones(1,5); % 11101 ea = [ 2 code 11 wide ss rx = pschirpWB( % 11101 ea = [ 2 10 ss 11 ss 11 ss 11 ss 11 42 % narrow band input 43 ec 44 ss 10 inidt = idt 21; pschirpWB( ec 45 46 figure 47 t2 = conv( tx,conv(rx,inidt)); 48 plot( t2 ) 2]; ss 2]; band tx = pschirpWB ( ea ); = [2 11 ss 11 ea ); code wide 11 band 11 . . 260 APPENDIX F. MATLAB SOURCE CODE MATLAB : dual. m Source code for simulations in section 2.3 1 % This 2 % narrow-band SAW code simulates the dual reflector correlator transponder 3 velocity 4 v 5 r1 = 6 r2 = 810e-6; % distance to 7 dl rl/v; % delay (s) to reflector 1 8 d2 = r2/v; % delay (s) to reflector 2 = 3992; % surface (m/s) reflector 1 280e-6; % distance to reflector 2 9 10 f = 323e6; % frequency = 323 MHz 11 w = 2*pi*f; % rad/second 12 p = 1/f; % period 13 t 40 0 = 0:(p/100): e-9; % 0 to 400ns 14 15 % + and - 16 10 = zeros(1 17 11 ones(1 = patterns , 5 in cycles in length 5); 5); 18 19 % 11101 20 ea = 21 rx = pschirpWB ( ea ) code [ 2 11 narrow band 10 11 11 11 2 22 23 % 11101 24 ea = 25 tx = pschirpWB ( ea ) code [ 2 11 wide 11 11 band 10 11 2 26 27 % narrow band input 28 ec = 29 inidt [2 11 idt 2]; = pschirpWB( ec 30 31 % 32 % signal from 33 s = conv( inidt to tz tx,conv(rx,inidt)); 34 35 % amount of time to add to first 36 add p*3)*100/p; 37 s1 (d1 - - [zeros(1,floor(add)), = reflector delay s]; 38 39 % amount of 40 add = (d2 41 s2 - time p* 3 to add to second reflector )*100/p; [zeros(1,floor(add)), s]; 42 43 s1 = [s1, 44 st (sl zeros(1,(size(s2,2)-size(sl 2)))]; + s2);%/(2*maz(s1)); 45 46 % plot 47 figure 48 plot( of one way signal path t(1:size(st ,2)) st ) 49 50 % 51 % signal form 52 s = conv( inidt tx to inidt ,conv(rx,rx) ); delay 261 % amount of time to add to add = (dl - p*3)*100/p; si = [zeros(1,floor(add)), time to add to % amount of add = (d2 s2 = - first reflector s]; second reflector p*3)*100/p; [zeros(l,floor(add)), 62 % conbine signals 63 s1 64 st2 = (s1 + 66 len size(rx,2); 67 st2(1:len) [s1, zeros(1,(size(s2,2) -size(s1,2)))]; s2 + st)/(2*max(st)); 65 = st2(1:len) + rx; 68 69 figure 70 plot( t(1:size(st 2)), st2 delay delay