Advertisement
Guest User

Untitled

a guest
Jun 2nd, 2013
396
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.32 KB | None | 0 0
  1. ;====================== Set to XL mode =========================================
  2. ocnSetXLMode()
  3. ocnxlProjectDir( "~/simulation" )
  4. ocnxlTargetCellView( "bgOptimization" "opamp_tb_pload" "adexl" )
  5. ocnxlResultsLocation( "" )
  6. ocnxlSimResultsLocation( "" )
  7.  
  8. ;====================== Tests setup ============================================
  9.  
  10. ;---------- Test "bgOptimization:opamp_tb_pload:1" -------------
  11. ocnxlBeginTest("bgOptimization:opamp_tb_pload:1")
  12. simulator( 'spectre )
  13. design( "bgOptimization" "opamp_tb_pload" "schematic")
  14. modelFile(
  15. '("/opt/pdk/tsmc65/CadenceKit/tsmcN65/../models/spectre/toplevel.scs" "tt_lib")
  16. )
  17. definitionFile(
  18. "/home/akanago/tsmc65/gm_save.scs"
  19. )
  20. stimulusFile( ?xlate nil
  21. "/home/akanago/simulation/bgOptimization/opamp_tb_pload/adexl/results/data/.tmpADEDir_akanago/bgOptimization:opamp_tb_pload:1/bgOptimization_opamp_tb_pload_schematic_spectre/netlist/_graphical_stimuli.scs")
  22. analysis('tran ?stop "2u" )
  23. analysis('dc ?saveOppoint t )
  24. analysis('ac ?start "1" ?stop "2G" )
  25. desVar( "vcm" 650m )
  26. desVar( "vcc" 1.0 )
  27. desVar( "vcm_in" 0.65 )
  28. envOption(
  29. 'analysisOrder list("dc" "ac" "tran")
  30. )
  31. saveOption( ?simOutputFormat "psfxl" )
  32. save( 'i "/I0/M0/S" "/I0/M6/S" "/I0/M9/S" )
  33. temp( 27 )
  34. ocnxlOutputSignal( "/vout" ?plot t)
  35. ocnxlOutputTerminal( "/I0/M0/S" ?save t)
  36. ocnxlOutputTerminal( "/I0/M6/S" ?save t)
  37. ocnxlOutputTerminal( "/I0/M9/S" ?save t)
  38. ocnxlOutputSignal( "/vout_cmrr" ?plot t)
  39. ocnxlOutputSignal( "/vout_pssr" ?plot t)
  40. ocnxlOutputExpr( "peakToPeak(VT(\"/vout\"))" ?name "Output Swing" ?plot t)
  41. ocnxlOutputExpr( "dB20(value(VF(\"/vout_cmrr\") 1))" ?name "CMRR" ?plot t)
  42. ocnxlOutputExpr( "dB20(value(VF(\"/vout\") 1))" ?name "DC Gain" ?plot t)
  43. ocnxlOutputExpr( "dB20(value(VF(\"/vout_pssr\") 1))" ?name "PSRR" ?plot t)
  44. ocnxlOutputExpr( "ymax(VT(\"/vout\"))" ?name "Vout Max" ?plot t)
  45. ocnxlOutputExpr( "((IDC(\"/I0/M0/S\") + IDC(\"/I0/M6/S\") + IDC(\"/I0/M9/S\")) * -1 * VAR(\"vcc\"))" ?name "Power Consumption" ?plot t)
  46. ocnxlOutputExpr( "bandwidth(VF(\"/vout\") 3 \"low\")" ?name "3-dB Bandwidth" ?plot t)
  47. ocnxlOutputExpr( "unityGainFreq(VF(\"/vout\"))" ?name "UGF" ?plot t)
  48. ocnxlOutputExpr( "phaseMargin(VF(\"/vout\"))" ?name "Phase Margin" ?plot t)
  49. ocnxlOutputExpr( "VDC(\"/vout\")" ?name "Output DC" ?plot t)
  50. ocnxlOutputAreaGoal( "((\"/I0/M1\" \"nch\" \"m*nf*w*l\" \"user-defined\" \"enabled\") (\"/I0/M3\" \"pch\" \"m*nf*w*l\" \"user-defined\" \"enabled\") (\"/I0/M0\" \"nch\" \"m*nf*w*l\" \"user-defined\" \"enabled\") (\"/I0/M2\" \"pch\" \"m*nf*w*l\" \"user-defined\" \"enabled\") (\"/I0/M4\" \"nch\" \"m*nf*w*l\" \"user-defined\" \"enabled\") (\"/I0/M5\" \"pch\" \"m*nf*w*l\" \"user-defined\" \"enabled\") (\"/I0/M6\" \"nch\" \"m*nf*w*l\" \"user-defined\" \"enabled\") (\"/I0/M7\" \"pch\" \"m*nf*w*l\" \"user-defined\" \"enabled\") (\"/I0/R0\" \"rppolywo\" \"sumW*sumL\" \"user-defined\" \"enabled\") (\"/I0/M9\" \"nch\" \"m*nf*w*l\" \"user-defined\" \"enabled\") (\"/I0/C0\" \"mimcap\" \"wt*lt\" \"user-defined\" \"enabled\") (\"/I0/R1\" \"rppolywo\" \"sumW*sumL\" \"user-defined\" \"enabled\"))" ?name "Device Area" ?plot t ?save t)
  51. ocnxlOutputExpr( "dB20(VF(\"/vout_pssr\"))" ?plot t)
  52. ocnxlEndTest() ; "bgOptimization:opamp_tb_pload:1"
  53.  
  54. ;====================== Specs ==================================================
  55. ocnxlPutMinSpec( "bgOptimization:opamp_tb_pload:1" "Power Consumption" "5u" ?weight "6")
  56. ocnxlPutMaxSpec( "bgOptimization:opamp_tb_pload:1" "DC Gain" "42" ?weight "10")
  57. ocnxlPutMaxSpec( "bgOptimization:opamp_tb_pload:1" "UGF" "1M" ?weight "6")
  58. ocnxlPutMinSpec( "bgOptimization:opamp_tb_pload:1" "CMRR" "-20" ?weight "10")
  59. ocnxlPutMinSpec( "bgOptimization:opamp_tb_pload:1" "PSRR" "-20" ?weight "10")
  60. ocnxlPutToleranceSpec( "bgOptimization:opamp_tb_pload:1" "Phase Margin" "60" 'percent "35" ?weight "10")
  61. ocnxlPutMinSpec( "bgOptimization:opamp_tb_pload:1" "Device Area" "2n" ?weight "2")
  62. ocnxlPutMaxSpec( "bgOptimization:opamp_tb_pload:1" "Vout Max" "750m" ?weight "6")
  63. ocnxlPutToleranceSpec( "bgOptimization:opamp_tb_pload:1" "Output DC" "500m" 'percent "20" ?weight "25")
  64.  
  65. ;====================== Sweeps setup ===========================================
  66. ocnxlSweepVar("vcc" "1.0")
  67. ocnxlSweepVar("vcm" "0.65")
  68. ocnxlSweepVar("vcm_in" "0.65")
  69. ocnxlSweepParam("bgOptimization/opamp/schematic/M3/fingers" "1:1:8")
  70. ocnxlSweepParam("bgOptimization/opamp/schematic/M3/l" "60n:60n:1u")
  71. ocnxlSweepParam("bgOptimization/opamp/schematic/M3/w" "60n:60n:20u")
  72. ocnxlSweepParam("bgOptimization/opamp/schematic/M2/fingers" "M3/fingers@bgOptimization/opamp/schematic")
  73. ocnxlSweepParam("bgOptimization/opamp/schematic/M2/l" "M3/l@bgOptimization/opamp/schematic")
  74. ocnxlSweepParam("bgOptimization/opamp/schematic/M2/w" "M3/w@bgOptimization/opamp/schematic")
  75. ocnxlSweepParam("bgOptimization/opamp/schematic/M1/fingers" "1:1:8")
  76. ocnxlSweepParam("bgOptimization/opamp/schematic/M1/l" "60n:60n:1u")
  77. ocnxlSweepParam("bgOptimization/opamp/schematic/M1/w" "60n:60n:20u")
  78. ocnxlSweepParam("bgOptimization/opamp/schematic/M4/fingers" "M1/fingers@bgOptimization/opamp/schematic")
  79. ocnxlSweepParam("bgOptimization/opamp/schematic/M4/l" "M1/l@bgOptimization/opamp/schematic")
  80. ocnxlSweepParam("bgOptimization/opamp/schematic/M4/w" "M1/w@bgOptimization/opamp/schematic")
  81. ocnxlSweepParam("bgOptimization/opamp/schematic/M7/l" "60n:60n:1u")
  82. ocnxlSweepParam("bgOptimization/opamp/schematic/M7/w" "60n:60n:10u")
  83. ocnxlSweepParam("bgOptimization/opamp/schematic/M7/fingers" "1:1:4")
  84. ocnxlSweepParam("bgOptimization/opamp/schematic/M9/l" "60n:60n:1u")
  85. ocnxlSweepParam("bgOptimization/opamp/schematic/M9/w" "60n:60n:10u")
  86. ocnxlSweepParam("bgOptimization/opamp/schematic/M9/fingers" "1:1:4")
  87. ocnxlSweepParam("bgOptimization/opamp/schematic/M6/l" "60n:60n:1u")
  88. ocnxlSweepParam("bgOptimization/opamp/schematic/M6/w" "60n:60n:20u")
  89. ocnxlSweepParam("bgOptimization/opamp/schematic/M6/fingers" "1:1:8")
  90. ocnxlSweepParam("bgOptimization/opamp/schematic/M5/l" "60n:60n:1u")
  91. ocnxlSweepParam("bgOptimization/opamp/schematic/M5/w" "60n:60n:10u")
  92. ocnxlSweepParam("bgOptimization/opamp/schematic/M5/fingers" "1:1:8")
  93. ocnxlSweepParam("bgOptimization/opamp/schematic/R0/w" "500n:500n:4u")
  94. ocnxlSweepParam("bgOptimization/opamp/schematic/R0/l" "5u:5u:30u")
  95. ocnxlSweepParam("bgOptimization/opamp/schematic/R1/w" "500n:500n:4u")
  96. ocnxlSweepParam("bgOptimization/opamp/schematic/R1/l" "5u:5u:30u")
  97. ocnxlSweepParam("bgOptimization/opamp/schematic/C0/lt" "1u:1u:30u")
  98. ocnxlSweepParam("bgOptimization/opamp/schematic/C0/wt" "1u:1u:30u")
  99. ocnxlSweepParam("bgOptimization/opamp/schematic/M0/l" "60n:60n:1u")
  100. ocnxlSweepParam("bgOptimization/opamp/schematic/M0/w" "60n:60n:10u")
  101. ocnxlSweepParam("bgOptimization/opamp/schematic/M0/fingers" "1:1:8")
  102.  
  103. ;====================== Model Group setup ==========================================
  104.  
  105. ;====================== Corners setup ==========================================
  106. ocnxlCorner( "Process"
  107. '(
  108. ("variable" "temperature" "0,25,80")
  109. ("model" "/opt/pdk/tsmc65/CadenceKit/tsmcN65/../models/spectre/toplevel.scs" ?section "\"ff_lib\" \"fs_lib\" \"sf_lib\" \"ss_lib\"")
  110. ("model" "/opt/pdk/tsmc65/CadenceKit/tsmcN65/../models/spectre/toplevel.scs" ?enabled nil ?section "")
  111. ("model" "/opt/pdk/tsmc65/CadenceKit/tsmcN65/../models/spectre/toplevel.scs" ?enabled nil ?section "")
  112. ("model" "/opt/pdk/tsmc65/CadenceKit/tsmcN65/../models/spectre/toplevel.scs" ?enabled nil ?section "")
  113. ("model" "/opt/pdk/tsmc65/CadenceKit/tsmcN65/../models/spectre/toplevel.scs" ?enabled nil ?section "")
  114. ("model" "/opt/pdk/tsmc65/CadenceKit/tsmcN65/../models/spectre/toplevel.scs" ?enabled nil ?section "")
  115. ("model" "/opt/pdk/tsmc65/CadenceKit/tsmcN65/../models/spectre/toplevel.scs" ?enabled nil ?section "")
  116. ("modelGroup" "")
  117. )
  118. )
  119. ocnxlCorner( "MC"
  120. '(
  121. ("variable" "temperature" "25")
  122. ("model" "/opt/pdk/tsmc65/CadenceKit/tsmcN65/../models/spectre/toplevel.scs" ?section "\"mc_lib\"")
  123. ("model" "/opt/pdk/tsmc65/CadenceKit/tsmcN65/../models/spectre/toplevel.scs" ?enabled nil ?section "")
  124. ("model" "/opt/pdk/tsmc65/CadenceKit/tsmcN65/../models/spectre/toplevel.scs" ?enabled nil ?section "")
  125. ("model" "/opt/pdk/tsmc65/CadenceKit/tsmcN65/../models/spectre/toplevel.scs" ?enabled nil ?section "")
  126. ("model" "/opt/pdk/tsmc65/CadenceKit/tsmcN65/../models/spectre/toplevel.scs" ?enabled nil ?section "")
  127. ("model" "/opt/pdk/tsmc65/CadenceKit/tsmcN65/../models/spectre/toplevel.scs" ?enabled nil ?section "")
  128. ("model" "/opt/pdk/tsmc65/CadenceKit/tsmcN65/../models/spectre/toplevel.scs" ?enabled nil ?section "")
  129. ("modelGroup" "")
  130. )
  131. )
  132.  
  133. ;====================== Test v/s corners setup =================================
  134.  
  135. ;====================== Job setup ==============================================
  136. ocnxlJobSetup( '(
  137. "blockemail" "1"
  138. "configuretimeout" "300"
  139. "distributionmethod" "Local"
  140. "lingertimeout" "300"
  141. "maxjobs" "5"
  142. "name" "ADE XL Default"
  143. "preemptivestart" "1"
  144. "reconfigureimmediately" "1"
  145. "runtimeout" "-1"
  146. "showerrorwhenretrying" "1"
  147. "showoutputlogerror" "0"
  148. "startmaxjobsimmed" "1"
  149. "starttimeout" "300"
  150. ) )
  151.  
  152. ;====================== Disabled items =========================================
  153. ocnxlDisableCorner("Process")
  154.  
  155. ;====================== Run Mode Options ======================================
  156. ocnxlLocalOptimizationOptions( ?effort "BFGS" ?runFullEvaluation "0" ?meetAllGoals "1" ?timeLimit "" ?numPoints "" )
  157. ocnxlSizeOverCornersOptions( ?soclazy "1" ?socoptmethod "neocircuitGlobal" ?socreferencepoint "1" ?soceffort "0" ?soctimelimit "" ?socmaxpoints "3000" ?sociterations "3" ?socstopifnoimprovement "0" ?socfinaloptmethod "BFGS" ?socfinalopttimelimit "" ?socfinaloptmaxpoints "1000" ?socrunfinallo "1" )
  158. ocnxlGlobalOptimizationOptions( ?refPoint "0" ?runFullEvaluation "0" ?meetAllGoals "1" ?timeLimit "" ?numPoints "" ?noImprvPoints "" ?pointsAfterAllSpecsSatisfied "" )
  159. ocnxlMonteCarloOptions( ?mcMethod "all" ?mcNumPoints "100" ?mcNumBins "" ?mcStopEarly "0" ?mcYieldTarget "99.73" ?mcYieldAlphaLimit "0.05" ?samplingMode "random" ?saveProcess "1" ?saveMismatch "0" ?useReference "0" ?donominal "1" ?saveAllPlots "0" ?monteCarloSeed "" ?mcStartingRunNumber "" )
  160.  
  161. ;====================== Starting Point Info ======================================
  162. ocnxlStartingPoint( '(
  163. ("parameter" "bgOptimization/opamp/schematic/M3/fingers" "2")
  164. ("parameter" "bgOptimization/opamp/schematic/M3/l" "660.0n")
  165. ("parameter" "bgOptimization/opamp/schematic/M3/w" "13.2u")
  166. ("parameter" "bgOptimization/opamp/schematic/M1/fingers" "8")
  167. ("parameter" "bgOptimization/opamp/schematic/M1/l" "600n")
  168. ("parameter" "bgOptimization/opamp/schematic/M1/w" "19.02u")
  169. ("parameter" "bgOptimization/opamp/schematic/M7/l" "480.0n")
  170. ("parameter" "bgOptimization/opamp/schematic/M7/w" "360.0n")
  171. ("parameter" "bgOptimization/opamp/schematic/M7/fingers" "1")
  172. ("parameter" "bgOptimization/opamp/schematic/M9/l" "840.0n")
  173. ("parameter" "bgOptimization/opamp/schematic/M9/w" "5.76u")
  174. ("parameter" "bgOptimization/opamp/schematic/M9/fingers" "4")
  175. ("parameter" "bgOptimization/opamp/schematic/M6/l" "900n")
  176. ("parameter" "bgOptimization/opamp/schematic/M6/w" "2.82u")
  177. ("parameter" "bgOptimization/opamp/schematic/M6/fingers" "1")
  178. ("parameter" "bgOptimization/opamp/schematic/M5/l" "360.0n")
  179. ("parameter" "bgOptimization/opamp/schematic/M5/w" "540.0n")
  180. ("parameter" "bgOptimization/opamp/schematic/M5/fingers" "4")
  181. ("parameter" "bgOptimization/opamp/schematic/R0/w" "500n")
  182. ("parameter" "bgOptimization/opamp/schematic/R0/l" "30u")
  183. ("parameter" "bgOptimization/opamp/schematic/R1/w" "3u")
  184. ("parameter" "bgOptimization/opamp/schematic/R1/l" "30u")
  185. ("parameter" "bgOptimization/opamp/schematic/C0/lt" "27.0u")
  186. ("parameter" "bgOptimization/opamp/schematic/C0/wt" "27.0u")
  187. ("parameter" "bgOptimization/opamp/schematic/M0/l" "300n")
  188. ("parameter" "bgOptimization/opamp/schematic/M0/w" "4.92u")
  189. ("parameter" "bgOptimization/opamp/schematic/M0/fingers" "4")
  190. )
  191. )
  192.  
  193. ;====================== Run command ============================================
  194. ocnxlRun( ?mode 'globalOptimization ?nominalCornerEnabled nil ?allCornersEnabled t ?allSweepsEnabled t)
  195. ocnxlOutputSummary(?exprSummary t ?specSummary t ?detailed t ?wave t)
  196.  
  197. ;====================== End XL Mode command ===================================
  198. ocnxlEndXLMode()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement