# Parameters and their Configuration Variables These are the parameters available in CACE. Use their IDs to specify the parameters in the datasheet. Configuration variables are used to configure the behavior of the parameters. ## KLayout (step-klayout-antennacheck)= ### Antenna check (KLayout) ID: `KLayout.AntennaCheck` Run antenna check using KLayout to find antenna violations in the layout. (klayout.antennacheck-configuration-variables)= #### Configuration Variables
Variable Name Type Description Default
`jobs` int Number of jobs (threads) to use in parallel. `1`
`args` List[str]? Additional arguments. `None`
`drc_script_path` Path? Optional path to a custom KLayout antenna script.. `None`
(klayout.antennacheck-configuration-results)= #### Results
Variable Name Type Description
`antenna_violations` Any The number of antenna violations.

(step-klayout-drc)= ### Design Rule Check (KLayout) ID: `KLayout.DRC` Run DRC using KLayout. (klayout.drc-configuration-variables)= #### Configuration Variables
Variable Name Type Description Default
`jobs` (int|
'max')
Number of jobs to run in parallel. `1`
`args` List[str]? Additional arguments. For example `['-rd', 'variable=value']`. `None`
`drc_script_path` Path? Path to a custom KLayout DRC script. If not specified, the PDK DRC deck is used. `None`
(klayout.drc-configuration-results)= #### Results
Variable Name Type Description
`drc_errors` Any The number of DRC errors.

(step-klayout-lvs)= ### Layout Versus Schematic (KLayout) ID: `KLayout.LVS` Run LVS using KLayout. (klayout.lvs-configuration-variables)= #### Configuration Variables
Variable Name Type Description Default
`args` List[str]? Additional arguments. For example `['-rd', 'variable=value']`. `None`
`script` Path? Custom LVS script relative to `scripts/`. `None`
(klayout.lvs-configuration-results)= #### Results
Variable Name Type Description
`lvs_errors` Any The number of LVS errors.

## Magic (step-magic-antennacheck)= ### Antenna check (Magic) ID: `Magic.AntennaCheck` Run antenna check using magic to find antenna violations in the layout. (magic.antennacheck-configuration-variables)= #### Configuration Variables
Variable Name Type Description Default
`args` List[str]? Additional arguments. `None`
`gds_flatten` bool Flatten the GDS before running the check. `False`
(magic.antennacheck-configuration-results)= #### Results
Variable Name Type Description
`antenna_violations` Any The number of antenna violations.

(step-magic-drc)= ### Design Rule Check (Magic) ID: `Magic.DRC` Run DRC using magic. (magic.drc-configuration-variables)= #### Configuration Variables
Variable Name Type Description Default
`args` List[str]? Additional arguments. `None`
`gds_flatten` bool Flatten the GDS before running the check. `False`
(magic.drc-configuration-results)= #### Results
Variable Name Type Description
`drc_errors` Any The number of DRC errors.

(step-magic-geometry)= ### Get area, width and height (Magic) ID: `Magic.Geometry` Take measurements of the layout geometry using magic. (magic.geometry-configuration-variables)= #### Configuration Variables
Variable Name Type Description Default
`args` List[str]? Additional arguments. `None`
(magic.geometry-configuration-results)= #### Results
Variable Name Type Description Units
`area` Any The area of the layout. μm²
`width` Any The width of the layout. μm
`height` Any The height of the layout. μm

## Netgen (step-netgen-lvs)= ### Layout Versus Schematic (Netgen) ID: `Netgen.LVS` Run LVS using netgen. ```{note} The `netgen_lvs` tool always compares the `schematic` netlist with the `layout` extracted netlist, independent of the selected netlist source. ``` (netgen.lvs-configuration-variables)= #### Configuration Variables
Variable Name Type Description Default
`args` List[str]? Additional arguments. `None`
`script` Path? Custom netgen LVS script located relative to `scripts/`. `None`
(netgen.lvs-configuration-results)= #### Results
Variable Name Type Description
`lvs_errors` Any The number of LVS errors.

## Ngspice (step-ngspice-simulation)= ### Simulation (Ngspice) ID: `Ngspice.Simulation` Run simulations using ngspice. Results: The results depend on the `variables` and, optionally, the `script_variables` configuration variables. (ngspice.simulation-configuration-variables)= #### Configuration Variables
Variable Name Type Description Default
`jobs` (int|
'max')
Number of jobs to run in parallel. Make sure to set `num_threads` to `CACE{jobs}` in the template testbench. `1`
`template` Path The template testbench under the `templates/` folder. `None`
`collate` str? Merge runs with the same conditions but different iterations. Used to collate results for plotting Monte Carlo simulations. `None`
`format` 'ascii' Output format of the testbench simulation result file. Currently only `ascii` is supported. `ascii`
`suffix` str Suffix of the testbench simulation result file. `.data`
`variables` List[str?] The results inside the simulation result file. Use `null` to ignore a column. `None`
`script` Path? Postprocessing using user-defined Python script relative to `scripts/`. It will be executed on the results of each simulation. Note: This is experimental and the API might still change. `None`
`script_variables` List[str?]? Results generated by the user-defined Python script. These results are available in addition to the ones specified under `variables`. `None`
`spiceinit_path` Path? Path to a spiceinit file that is copied to the simulation directory and renamed to `.spiceinit`. If not specified, the PDK spiceinit is used. `None`

## Misc If you're missing a tool or functionality, please open an issue [here](https://github.com/efabless/cace/issues).