This tutorial is to walk you through the basic steps of getting started with Microwave Office. It will highlight basic steps and then you click buttons to have those steps done for your. The intent is to show you the basic steps without getting into details of how to accomplish each step. The specific steps are covered in the Getting Started Guides. Please select Help > Getting Started from the Help menu to find this guide when in the software to click the button below.
<script> var bSystemCheck = true; </script> <button class="gh-button" id="reset" onclick="runAwrScript('open_gs');">Open Getting Started Guide</button> |
Use the button below to start over at any time.
<button class="gh-button" id="reset" onclick="reset();">Start Over</button> |
<div id = "start" class = "start"> <p>The first step to any design is to create a schematic or another type of simulation document (data file, netlist or EM structure). In this example, we will create a simple schematic to start our design. </p> <button class="gh-button" id="step1" onclick="addSchematic();">Add Schematic</button> </div> <div id = "step2" class = "next" style="display:none"> <p>The next step will be to add elements to your schematics. This example will add a simple transmission line. For linear simulation we also need ports. </p> <button class="gh-button" id="but2" onclick="addElements();">Add Elements</button> </div> <div id = "step3" class = "next" style="display:none"> <p>Now lets take a look at the schematic layout. </p> <button class="gh-button" id="but3" onclick="viewLayout();">View Layout</button> </div> <div id = "step4" class = "next" style="display:none"> <p>If you simulate at this point, nothing happens. You can try with clicking the button below to simulate. This is because you have not asked for any output. Find the 'Status Window' and notice there is nothing listed meaning no simulation occurred. </p> <button class="gh-button" id="but4" onclick="simulate1();">Simulate</button> </div> <div id = "step5" class = "next" style="display:none"> <p>Lets fix this problem by adding a graph and a measurement to the graph. We will add a Smith chart with an S(1,1) measurement. </p> <button class="gh-button" id="but5" onclick="addGraphMeas();">Add Graph and Measurement</button> </div> <div id = "step6" class = "next" style="display:none"> <p>Now that we have a graph, we are ready to simulate again. </p> <button class="gh-button" id="but6" onclick="simulate2();">Simulate</button> </div> <div id = "step7" class = "next" style="display:none"> <p>Oops, there is no substrate defined for the microstrip line. Look at the status window to see the errors produced by the simulator. To fix this, lets add the substrate block for this microstrip line. </p> <button class="gh-button" id="but7" onclick="addSubstrate();">Add Substrate</button> </div> <div id = "step8" class = "next" style="display:none"> <p>Now everything is ready to go, try simulating again. </p> <button class="gh-button" id="but8" onclick="simulate3();">Simulate</button> </div> <div id = "step9" class = "next" style="display:none"> <p>Lets change the length of the line. </p> <button class="gh-button" id="but9" onclick="changeParams();">Change Length</button> </div> <div id = "step10" class = "next" style="display:none"> <p>Notice the graph trace is dimmer than before, indicating the schematic has changed and needs to be resimulated. </p> <button class="gh-button" id="but10" onclick="simulate4();">Simulate</button> </div> <div id = "step11" class = "next" style="display:none"> <p>Now we need to change our frequency range. The default is 1 and 2 GHz, lets use 1 to 20 in steps of 1. </p> <button class="gh-button" id="but11" onclick="changeFrequency();">Change Frequency</button> </div> <div id = "step12" class = "next" style="display:none"> <p>After frequencies are changed, simulate yet again. </p> <button class="gh-button" id="but12" onclick="simulate5();">Simulate</button> </div> <div id = "step13" class = "next" style="display:none"> <p>Just for fun, lets now tune the width of the line, watch the layout, schematic results and W parameter in the schematic update. </p> <button class="gh-button" id="but13" onclick="tune();">Tune</button> </div> <div id = "step14" class = "next" style="display:none"> <p>That is the end, hope you enjoyed. </p> </div> |
<script> function reset() { document.getElementById("reset").disabled = true; //document.getElementById("but1").disabled = true; runAwrScript('clean', step_end); //document.getElementById("reset").disabled = false; document.getElementById("start").style.display = 'block'; var divsToHide = document.getElementsByClassName("next"); for(var i = 0; i < divsToHide.length; i++) { divsToHide[i].style.display='none'; } } </script> <script> function debug_steps() { var divsToShow = document.getElementsByClassName("next"); for(var i = 0; i < divsToShow.length; i++) { divsToShow[i].style.display='block'; } } </script> <script> function addSchematic() { document.getElementById("reset").disabled = true; //document.getElementById("but1").disabled = true; runAwrScript('create_schematic', step_end); document.getElementById("start").style.display = 'none'; document.getElementById("step2").style.display = 'block'; } </script> <script> function addElements() { document.getElementById("reset").disabled = true; //document.getElementById("but1").disabled = true; runAwrScript('add_elements', step_end); document.getElementById("step2").style.display = 'none'; document.getElementById("step3").style.display = 'block'; } </script> <script> function viewLayout() { document.getElementById("reset").disabled = true; //document.getElementById("but1").disabled = true; runAwrScript('view_layout', step_end); //document.getElementById("but1").style.backgroundColor='green'; document.getElementById("step3").style.display = 'none'; document.getElementById("step4").style.display = 'block'; } </script> <script> function simulate1() { document.getElementById("reset").disabled = true; //document.getElementById("but1").disabled = true; runAwrScript('simulate', step_end); document.getElementById("step4").style.display = 'none'; document.getElementById("step5").style.display = 'block'; } </script> <script> function addGraphMeas() { document.getElementById("reset").disabled = true; //document.getElementById("but1").disabled = true; runAwrScript('add_graph_meas', step_end); document.getElementById("step5").style.display = 'none'; document.getElementById("step6").style.display = 'block'; } </script> <script> function simulate2() { document.getElementById("reset").disabled = true; //document.getElementById("but1").disabled = true; runAwrScript('simulate', step_end); document.getElementById("step6").style.display = 'none'; document.getElementById("step7").style.display = 'block'; } </script> <script> function addSubstrate() { document.getElementById("reset").disabled = true; //document.getElementById("but1").disabled = true; runAwrScript('add_sub', step_end); document.getElementById("step7").style.display = 'none'; document.getElementById("step8").style.display = 'block'; } </script> <script> function simulate3() { document.getElementById("reset").disabled = true; //document.getElementById("but1").disabled = true; runAwrScript('simulate', step_end); document.getElementById("step8").style.display = 'none'; document.getElementById("step9").style.display = 'block'; } </script> <script> function changeParams() { document.getElementById("reset").disabled = true; //document.getElementById("but1").disabled = true; runAwrScript('change_parameters', step_end); //document.getElementById("but1").style.backgroundColor='green'; document.getElementById("step9").style.display = 'none'; document.getElementById("step10").style.display = 'block'; } </script> <script> function simulate4() { document.getElementById("reset").disabled = true; //document.getElementById("but1").disabled = true; runAwrScript('simulate', step_end); //document.getElementById("but1").style.backgroundColor='green'; document.getElementById("step10").style.display = 'none'; document.getElementById("step11").style.display = 'block'; } </script> <script> function changeFrequency() { document.getElementById("reset").disabled = true; //document.getElementById("but1").disabled = true; runAwrScript('update_frequencies', step_end); document.getElementById("step11").style.display = 'none'; document.getElementById("step12").style.display = 'block'; } </script> <script> function simulate5() { document.getElementById("reset").disabled = true; //document.getElementById("but1").disabled = true; runAwrScript('simulate', step_end); document.getElementById("step12").style.display = 'none'; document.getElementById("step13").style.display = 'block'; } </script> <script> function tune() { document.getElementById("reset").disabled = true; //document.getElementById("but1").disabled = true; runAwrScript('tune', step_end); //document.getElementById("but1").disabled = true; document.getElementById("step13").style.display = 'none'; document.getElementById("step14").style.display = 'block'; } </script> <script> function step_end(Response) { document.getElementById("reset").disabled = false; ShowJSONResponse(Response); } </script> |
<script id="awrscript" type="text/awrscript"> Sub tune() Dim p As Parameter Dim Swp As Sweeper MWOffice.Activate d = 0.05 Set p = Project.Schematics("My Schematic").Elements("MLIN.TL1").Parameters("W") nom = p.ValueAsDouble Set Swp = Project.Sweeper Swp.AddVariable("W",p) If Project.Units(mwUT_Length).UnitString = "um" Then strt = nom/4 stopp = nom*4 ElseIf Project.Units(mwUT_Length).UnitString = "mm" Then strt = nom/2 stopp = nom*2 ElseIf Project.Units(mwUT_Length).UnitString = "mil" Then strt = nom/4 stopp = nom End If Stp = ((stopp-strt)/20) For v = strt To stopp Step stp Swp.Value("W") = v Swp.Update(True,True) Wait(d) Next v Project.Schematics("My Schematic").Windows(2).ViewAll End Sub Function open_gs pth = MWOffice.Directories(1).ValueAsString stg = "hh.exe " & pth & "\Getting_Started.chm::/output/gs_intro.html" Shell(stg,vbMaximizedFocus) End Function Function blank_project_check 'checks to make sure that it is blank project. If Project.Schematics.Count <> 0 Or Project.SystemDiagrams.Count <> 0 Or Project.DataFiles.Count <> 0 Or Project.Graphs.Count <> 0 Or Project.EMStructures.Count <> 0 Or Project.EM3DStructures.Count<> 0 Then MsgBox("This tutorial expects a new project when starting. Please save your current project and create a new project from the File menu or click the 'Start Over' button to erase everything in the current project") End End If End Function Function view_layout Project.Schematics("My Schematic").NewWindow(mwWT_SchematicLayout) MWOffice.Windows.Tile(mwWTD_Horizontal) MWOffice.Activate End Function Function change_parameters Dim s As Schematic Dim e As Element Set s = Project.Schematics("My Schematic") Set e =s.Elements("MLIN.TL1") If Project.Units(mwUT_Length).UnitString = "um" Then e.Parameters("L").ValueAsString = "1000" ElseIf Project.Units(mwUT_Length).UnitString = "mm" Then e.Parameters("L").ValueAsString = "4" ElseIf Project.Units(mwUT_Length).UnitString = "mil" Then e.Parameters("L").ValueAsString = "200" End If Project.Schematics("My Schematic").Windows(2).ViewAll MWOffice.Activate End Function Function update_frequencies Project.Frequencies.Clear For i = 1 To 20 Project.Frequencies.Add(i*1e9) Next i MWOffice.Activate End Function Function simulate Project.Simulator.Analyze MWOffice.Activate End Function Function create_schematic blank_project_check Dim s As Schematic Set s = Project.Schematics.Add("My Schematic") s.Windows(1).WindowState=mwWS_Maximized MWOffice.Activate End Function Function add_elements Project.Schematics("My Schematic").Elements.Add("Port",0,0) Project.Schematics("My Schematic").Elements.Add("Port",1000,0,180) Project.Schematics("My Schematic").Elements.Add("MLIN",0,0,0) Project.Schematics("My Schematic").Views(1).ViewAll MWOffice.Activate End Function Function add_graph_meas Dim g As Graph Set g = Project.Graphs.Add("Match",mwGT_SmithChart) g.Measurements.Add("My Schematic","S(1,1)") MWOffice.Windows(2).Activate MWOffice.Windows.Tile(mwWTD_Horizontal) MWOffice.Activate End Function Function get_errors 'want to print on web page when return them. Dim grp As StatusGroup Dim allerrors As StatusItems Dim er As StatusItem Dim txt As String txt = "" For Each grp In MWOffice.Status.Groups Set allerrors=grp.Search("",mwRIC_Error) For Each er In allerrors 'Debug.Print er.Text txt = txt & er.Text & vbCrLf Next er Next grp get_errors = txt End Function Function add_sub Project.Schematics("My Schematic").Elements.Add("MSUB",0,1000) Project.Schematics("My Schematic").Views(1).ViewAll MWOffice.Activate End Function Function clean MWOffice.New("Getting Started") End Function </script> |