00001 #ifndef __WIRE_H
00002 #define __WIRE_H
00003
00004 #include "flp.h"
00005 #include "math.h"
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #define TECHNODE130
00036
00037
00038 #define WIRE_GLOBAL 0
00039 #define WIRE_INTER 1
00040
00041
00042
00043
00044
00045
00046 #define WIRE_A 0.4
00047 #define WIRE_B 0.7
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058 #if defined(TECHNODE180)
00059 #define WIRE_R_G 36.0
00060 #define WIRE_C_G 0.350
00061 #define WIRE_R_I 107.0
00062 #define WIRE_C_I 0.333
00063 #define WIRE_LCRIT_G 3.0
00064 #define WIRE_SOPT_G 179.0
00065 #elif defined(TECHNODE130)
00066 #define WIRE_R_G 61.0
00067 #define WIRE_C_G 0.359
00068 #define WIRE_R_I 188.0
00069 #define WIRE_C_I 0.336
00070 #define WIRE_LCRIT_G 2.4
00071 #define WIRE_SOPT_G 146.0
00072 #elif defined(TECHNODE100)
00073 #define WIRE_R_G 103.0
00074 #define WIRE_C_G 0.361
00075 #define WIRE_R_I 316.0
00076 #define WIRE_C_I 0.332
00077 #define WIRE_LCRIT_G 2.12
00078 #define WIRE_SOPT_G 96.0
00079 #elif defined(TECHNODE70)
00080 #define WIRE_R_G 164.0
00081 #define WIRE_C_G 0.360
00082 #define WIRE_R_I 500.0
00083 #define WIRE_C_I 0.331
00084 #define WIRE_LCRIT_G 1.2
00085 #define WIRE_SOPT_G 82.0
00086 #elif defined(TECHNODE50)
00087 #define WIRE_R_G 321.0
00088 #define WIRE_C_G 0.358
00089 #define WIRE_R_I 1020.0
00090 #define WIRE_C_I 0.341
00091 #define WIRE_LCRIT_G 0.99
00092 #define WIRE_SOPT_G 48.0
00093 #endif
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108 #define WIRE_LCRIT_I (WIRE_LCRIT_G * \
00109 sqrt((WIRE_R_G / WIRE_R_I) * (WIRE_C_G / WIRE_C_I)))
00110 #define WIRE_SOPT_I (WIRE_SOPT_G * \
00111 sqrt((WIRE_R_G / WIRE_R_I) / (WIRE_C_G / WIRE_C_I)))
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122 #define WIRE_DELAY_G (WIRE_LCRIT_G * WIRE_R_G * WIRE_C_G * 1.0e-9 * \
00123 (2.0 * WIRE_A + sqrt (2.0 * WIRE_A * WIRE_B)))
00124 #define WIRE_DELAY_I (WIRE_LCRIT_I * WIRE_R_I * WIRE_C_I * 1.0e-9 * \
00125 (2.0 * WIRE_A + sqrt (2.0 * WIRE_A * WIRE_B)))
00126
00127
00128 double wire_length2delay(double length, int layer);
00129
00130 #endif