Settings(name='gdsfactoryplus', ignore=[], pdk=PdkSettings(name='cspdk.si220.cband'), api=ApiSettings(host='https://prod.gdsfactory.com/', key='eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcGlfa2V5IjoiMTEwMjQxNjYtYzZiZi00YjMzLWJiYjYtZjg4YTBiNzBmMDYwIiwiYXVkIjoiR0RTRmFjdG9yeTphcGkta2V5cyJ9.EvaJEojL-ETEIMeiI73tONXHwjiu-wv0QKHlJPtFFHo'), drc=DrcSettings(timeout=60, host='https://dodeck.gdsfactory.com', process='', pdk=''), sim=SimSettings(wls=Linspace(min=1.5, max=1.6, num=300)), gpt=GptSettings(host='https://doitforme.gdsfactory.com', pdk=''), kweb=KwebSettings(host='localhost', https=False), log=LogSettings(level='INFO', debug_level='DEBUG'), external=ExternalSettings(axiomatic_api_key=''))
For running this DRC examples you will require to open Klayout and make sure you have klive extension installed.
as well as gdsfactoryPlus
Then you need to configure your PDK, URLs and Keys to point to the correct deployment.
To do this, ensure you create a config file in ~/.gdsfactory/gdsfactoryplus.toml
with the default gdsfactoryplus settings. For example:
Note
You can also use this as a template for your own global gdsfactoryplus config or your per-project pyproject.toml file.
Let's create a GDS with some DRC errors, run DRC on the remote server and review the results locally in your computer.
gdspath = c.write_gds()
lyrdb = gfp.check_drc(gdspath)
lyrdb_path = Path("errors.lyrdb")
lyrdb_path.write_text(lyrdb);
uploading '/tmp/gdsfactory/width_min_S0p1_0p1.gds'...
034474ade4db4a84.gds
running DRC... [pdk='cspdk.si220.cband' process='']...
job_034474ade4db4a84
Job will time out after approximately 60 seconds.
You can change this by setting 'timeout' in [tool.gdsfactoryplus.drc] in your project's pyproject.toml.
RUNNING
SUCCEEDED
<report-database>
<description />
<original-file />
<generator />
<top-cell />
<tags>
</tags>
<categories><category>
<name>Space_Electrodes_LF</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Space_HD_n_type_DF</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Space_HD_p_type_DF</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Space_LD_n_type_DF</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Space_LD_p_type_DF</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Space_Label_Etch_DF</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Space_Si_Etch1_DF_70nm</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Space_Si_Etch2_DF_120nm</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Space_Si_Etch2_LF_120nm</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Space_Si_Etch3_LF_100nm_to_BOX</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Space_Vias_DF</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Width_Electrodes_LF</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Width_HD_n_type_DF</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Width_HD_p_type_DF</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Width_LD_n_type_DF</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Width_LD_p_type_DF</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Width_Label_Etch_DF</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Width_Si_Etch1_DF_70nm</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Width_Si_Etch2_DF_120nm</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Width_Si_Etch2_LF_120nm</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Width_Si_Etch3_LF_100nm_to_BOX</name>
<description />
<categories>
</categories>
</category>
<category>
<name>Width_Vias_DF</name>
<description />
<categories>
</categories>
</category>
</categories><cells><cell>
<name>width_min_S0p1_0p1</name>
<variant />
<layout-name />
<references>
</references>
</cell>
</cells><items>
<item>
<tags />
<category>Width_Si_Etch2_LF_120nm</category>
<cell>width_min_S0p1_0p1</cell>
<visited>false</visited>
<multiplicity>1</multiplicity>
<comment>Min width for Si_Etch2_LF_120nm is 0.35 um</comment>
<image />
<values>
<value>polygon: (0,0;0,0.1;0.1,0.1;0.1,0)</value>
</values>
</item>
</items>
</report-database>
If you have a valid API key you can now browse through the errors in klayout.