|

Up
| |
Custom MRR Manual Check Code ~ Generic Code in C#
// CustomMRR Rate Checker
// To compile this file you need to install Microsoft.NET Framework SDK
// file: CheckCustomMRR.cs
// Compile: csc /r:CustomMRR.dll CheckCustomMRR.cs
using System;
class Test
{
static void
Main()
{
//
Parameters for CustomMRR.Rate
//
TODO: Please set parameters'
initial values according to your test scenario.
string Comment = String.Empty; //
Comment for CustomMRR
double CMPPrssNow = 0.0;
// Wafer Contact Pressure (g/mm2)
double PadVNow = 0.0;
// Wafer/Pad Relative Velocity (mm/sec)
double CMPTempNow = 0.0;
// Average Temperature (Celsius degree)
double CMPSurfaceTempNow = 0.0;
// Wafer Surface Temperature (Celsius degree) -
Flash Temp. - You need to use "Heat Mode"
double PadWaferGap = 0;
// Gap between Pad and Wafer (A)
double FlowNow = 250;
// Slurry Flow Rate (cc/min)
int MatNoNow = 1; //
Material ID No (no unit)
int PadNoNow = 1; //
Pad ID No (no unit)
int SlyNoNow = 1; //
Slurry ID No (no unit)
double ARNow = 1.0;
// Layer Area Ratio (no unit) - ex. Pad Groove etc.
double CMPStepPrssNow = 0.0;
// Nominal Pressure for CMP Step (g/mm2)
double PrestonSFlowNow = 250;
// Slurry Flow Rate during Preston Test (cc/min)
double PrestonCOF = 0.0;
// Friction Coefficient during Preston Test (no
unit)
// Preston Parameter from CMPxML
double C1Now = 0.0;
double C2Now = 0.0;
double C3Now = 0.0;
double C4Now = 0.0;
double C5Now = 0.0;
double C6Now = 0.0;
double C7Now = 0.0;
double C8Now = 0.0;
double PthNow = 0.0;
while(true)
{
//
Manual input of parameters for CustomMRR
//
TODO: Please comment-out/rewrite according to your test scenario!
Console.WriteLine("Please input CMPPrssNow (g/mm2)");
CMPPrssNow = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Please input PadVNow (mm/sec)");
PadVNow = Convert.ToDouble(Console.ReadLine());
// for future use
// Console.WriteLine("Please input CMPTempNow (Celsius degree)");
// CMPTempNow = Convert.ToDouble(Console.ReadLine());
// Console.WriteLine("Please input CMPSurfaceTempNow (Celsius
degree)");
// CMPSurfaceTempNow = Convert.ToDouble(Console.ReadLine());
// Console.WriteLine("Please input PadWaferGap (A)");
// PadWaferGap = Convert.ToDouble(Console.ReadLine());
// Console.WriteLine("Please input FlowNow (cc/min)");
// FlowNow = Convert.ToDouble(Console.ReadLine());
// Console.WriteLine("Please input MatNoNow (no unit)");
// MatNoNow = Convert.ToDouble(Console.ReadLine());
// Console.WriteLine("Please input PadNoNow (no unit)");
// PadNoNow = Convert.ToDouble(Console.ReadLine());
// Console.WriteLine("Please input SlyNoNow (no unit)");
// SlyNoNow = Convert.ToDouble(Console.ReadLine());
// Console.WriteLine("Please input ARNow (no unit)");
// ARNow = Convert.ToDouble(Console.ReadLine());
// Console.WriteLine("Please input CMPStepPrssNow (g/mm2)");
// CMPStepPrssNow = Convert.ToDouble(Console.ReadLine());
// Console.WriteLine("Please input PrestonSFlowNow (cc/min)");
// PrestonSFlowNow = Convert.ToDouble(Console.ReadLine());
// Console.WriteLine("Please input PrestonCOF (no unit)");
// PrestonCOF = Convert.ToDouble(Console.ReadLine());
// Console.WriteLine("Please input C1Now");
// C1Now = Convert.ToDouble(Console.ReadLine());
// Console.WriteLine("Please input C2Now");
// C2Now = Convert.ToDouble(Console.ReadLine());
// Console.WriteLine("Please input C3Now");
// C3Now = Convert.ToDouble(Console.ReadLine());
// Console.WriteLine("Please input C4Now");
// C4Now = Convert.ToDouble(Console.ReadLine());
// Console.WriteLine("Please input C5Now");
// C5Now = Convert.ToDouble(Console.ReadLine());
// Console.WriteLine("Please input C6Now");
// C6Now = Convert.ToDouble(Console.ReadLine());
// Console.WriteLine("Please input C7Now");
// C7Now = Convert.ToDouble(Console.ReadLine());
// Console.WriteLine("Please input C8Now");
// C8Now = Convert.ToDouble(Console.ReadLine());
// Console.WriteLine("Please input PthNow");
// PthNow = Convert.ToDouble(Console.ReadLine());
// Calculation of Rate by CustomMRR.Rate
double Rate =
CustomMRR.Rate
(
// Please do not change
parameters!
out
Comment,
// Comment for CustomMRR
CMPPrssNow, // Wafer Contact Pressure
(g/mm2)
PadVNow, // Wafer/Pad Relative Velocity
(mm/sec)
CMPTempNow, // Average Temperature
(Celsius degree)
CMPSurfaceTempNow, // Wafer Surface
Temperature (Celsius degree) - Flash Temp. - You need to use
"Heat Mode"
PadWaferGap, // Gap between Pad and Wafer
(A)
FlowNow, // Slurry Flow Rate (cc/min)
MatNoNow, // Material ID No
PadNoNow, // Pad ID No
SlyNoNow, // Slurry ID No
ARNow, // Layer Area Ratio (no unit) - ex.
Pad Groove etc.
CMPStepPrssNow, // Nominal Pressure for
CMP Step (g/mm2)
PrestonSFlowNow, // Slurry Flow Rate
during Preston Test (cc/min)
PrestonCOF, // Friction Coefficient during
Preston Test (no unit)
// Preston Parameter from CMPxML
C1Now, //
C2Now, //
C3Now, //
C4Now, //
C5Now, //
C6Now, //
C7Now, //
C8Now, //
PthNow //
);
//
Output on Console
Console.WriteLine("CustomMRR Comment: " + Comment);
Console.WriteLine("Rate (mm/sec) = {0}",
Rate);
Console.WriteLine("----------------------------------------------------");
}
}
}
|