diff --git a/doc/source/index.rst b/doc/source/index.rst index 530d829e0..79a0715f8 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -70,7 +70,7 @@ This repository contains end-to-end embedding examples that demonstrate how to u :link-type: doc .. image:: examples/electrothermal/_static/icepak_logo.png - :alt: Icepak + :alt: icepak :width: 250px :height: 200px :align: center diff --git a/examples/edb/legacy_standalone/_static/cpw_via_array.png b/examples/edb/legacy_standalone/_static/cpw_via_array.png new file mode 100644 index 000000000..20b871020 Binary files /dev/null and b/examples/edb/legacy_standalone/_static/cpw_via_array.png differ diff --git a/examples/edb/legacy_standalone/differential_vias.py b/examples/edb/legacy_standalone/differential_vias.py index 4bdaabc79..ef3a5776c 100644 --- a/examples/edb/legacy_standalone/differential_vias.py +++ b/examples/edb/legacy_standalone/differential_vias.py @@ -1,13 +1,11 @@ -# # Parametric differential vias +# # Coplanar Waveguide with Via Array # -# This example demonstrates how a differential via pair can be created using the EDB Python +# This example demonstrates how a coplanar waveguide with via array can be created using the EDB Python # interface. # -# The final differential via pair is shown below. +# # -# -# -# Keywords: **Differential Via** +# Keywords: **coplanar waveguide, via array** # ## Prerequisites @@ -29,7 +27,7 @@ # ### Start the EDB # + -aedb_path = os.path.join(temp_folder.name, "diff_via.aedb") +aedb_path = os.path.join(temp_folder.name, "cpw_via_array.aedb") print(f"AEDB file path: {aedb_path}") edb = pyedb.Edb(edbpath=aedb_path, edbversion=AEDT_VERSION) @@ -43,31 +41,56 @@ # [configuration file](https://examples.aedt.docs.pyansys.com/version/dev/examples/edb/use_configuration/import_stackup.html). edb.stackup.add_layer("GND") -edb.stackup.add_layer("Diel", "GND", layer_type="dielectric", thickness="0.1mm", material="FR4_epoxy") +edb.stackup.add_layer("Diel", "GND", layer_type="dielectric", thickness="0.5mm", material="FR4_epoxy") edb.stackup.add_layer("TOP", "Diel", thickness="0.05mm") # ### Create signal nets and ground planes # Create a signal net and ground planes. points = [[0.0, 0], [100e-3, 0.0]] -edb.modeler.create_trace(points, "TOP", width=1e-3) +trace = edb.modeler.create_trace(points, "TOP", width=1e-3, end_cap_style="Flat", start_cap_style="Flat") points = [[0.0, 1e-3], [0.0, 10e-3], [100e-3, 10e-3], [100e-3, 1e-3], [0.0, 1e-3]] edb.modeler.create_polygon(points, "TOP") points = [[0.0, -1e-3], [0.0, -10e-3], [100e-3, -10e-3], [100e-3, -1e-3], [0.0, -1e-3]] edb.modeler.create_polygon(points, "TOP") +points = [[0.0, -10e-3], [0, 10e-3], [100e-3, 10e-3], [100e-3, -10e-3]] +edb.modeler.create_polygon(points, "GND") + +# ## Create wave ports on the main trace's ends. + +edb.hfss.create_wave_port(prim_id = trace.id, point_on_edge = ["-10mm","10mm"], port_name="wport1") +edb.hfss.create_wave_port(prim_id = trace.id, point_on_edge = ["100mm","0mm"], port_name="wport2") # ## Place vias edb.padstacks.create("MyVia") edb.padstacks.place([5e-3, 5e-3], "MyVia") edb.padstacks.place([15e-3, 5e-3], "MyVia") +edb.padstacks.place([25e-3, 5e-3], "MyVia") edb.padstacks.place([35e-3, 5e-3], "MyVia") edb.padstacks.place([45e-3, 5e-3], "MyVia") +edb.padstacks.place([55e-3, 5e-3], "MyVia") +edb.padstacks.place([65e-3, 5e-3], "MyVia") +edb.padstacks.place([75e-3, 5e-3], "MyVia") +edb.padstacks.place([85e-3, 5e-3], "MyVia") +edb.padstacks.place([95e-3, 5e-3], "MyVia") edb.padstacks.place([5e-3, -5e-3], "MyVia") edb.padstacks.place([15e-3, -5e-3], "MyVia") +edb.padstacks.place([25e-3, -5e-3], "MyVia") edb.padstacks.place([35e-3, -5e-3], "MyVia") edb.padstacks.place([45e-3, -5e-3], "MyVia") +edb.padstacks.place([55e-3, -5e-3], "MyVia") +edb.padstacks.place([65e-3, -5e-3], "MyVia") +edb.padstacks.place([75e-3, -5e-3], "MyVia") +edb.padstacks.place([85e-3, -5e-3], "MyVia") +edb.padstacks.place([95e-3, -5e-3], "MyVia") + +# ### Create simulation setup + +setup = edb.create_hfss_setup(name= "Setup1") +setup.set_solution_single_frequency("1GHz", max_num_passes=1, max_delta_s="0.02") +setup.add_sweep(name="Sweep1") # ### View the nets