# Supported Tools CACE supports a variety of EDA tools. See the entries below for a list of supported tools and their implemented functionality. ## `ngspice` Perform spice simulation using ngspice. Arguments: - `template`: `` The template schematic under the `templates/` folder for simulation. - `jobs` (optional): `` The number of jobs (threads) that CACE allocates for a single simulation run. Make sure to set `num_threads` to `CACE{jobs}` in the template testbench. If not specified, the default is 1. - `collate` (optional): `` Used to collate results for Monte Carlo simulations. - `format` (optional): `<'ascii'>` The file format of the ngspice result. Currently only `ascii` is supported. - `suffix` (optional): `` File extension of the result file. For example: `.data`. - `variables`: `` A list of results inside the result file. Use `null` to ignore a column. - `script` (optional): `` Name of a Python script in the script folder. It will be executed on the results of each simulation. - `script_variables` (optional): `` A list of results generated by the specified Python script. These results are available in addition to the ones specified under `variables`. - `spiceinit_path` (optional): `` Path to a spiceinit file that is copied to the simulation directory and renamed to `.spiceinit`. If not specified, the PDK spiceinit is used. Results: The results depend on the `variables` and optionally the `script_variables` arguments. ## `magic_drc` Perform DRC (Design Rule Check) with magic. Arguments: - `args` (optional): `` Additional args that are passed to magic. - `gds_flatten` (optional): `` Flatten the GDSII layout prior to running DRC. If not specified, the default is false. Results: - `drc_errors`: `` Number of DRC errors. ## `magic_area` Perform area measurements with magic. Arguments: - `args` (optional): `` Additional args that are passed to magic. Results: - `area`: `` Area of the design in µm² - `width`: `` Width of the design in µm. - `height`: `` Height of the design in µm. ## `magic_antenna_check` Perform the magic antenna check to find antenna violations in the layout. Arguments: - `args` (optional): `` Additional args that are passed to magic. - `gds_flatten` (optional): `` Flatten the GDSII layout prior to running DRC. Results: - `antenna_violations`: `` The number of antenna violations. ## `netgen_lvs` ```{note} The `netgen_lvs` tool always compares the `schematic` netlist with the `layout` extracted netlist, independent of the selected netlist source. ``` Perform LVS (Layout VS Schematic) with netgen. Arguments: - `args`: `` Additional args that are passed to netgen. - `script`: `` A custom LVS script relative to `scripts/`. Results: - `lvs_errors`: `` Number of LVS errors. ## `klayout_drc` Perform DRC (Design Rule Check) with KLayout. Arguments: - `jobs` (optional): `` The number of jobs (threads) that CACE allocates for running DRC. If not specified, the default is 1. - `args` (optional): `` Additional args that are passed to KLayout. For example `['-rd', 'feol=true']`. - `drc_script_path` (optional): `` Path to a KLayout DRC deck that is used to run DRC. If not specified, the PDK DRC deck is used. Results: - `drc_errors`: `` Number of DRC errors. ## `klayout_lvs` Perform LVS (Layout VS Schematic) with KLayout. Arguments: - `args` (optional): `` Additional args that are passed to KLayout. For example `['-rd', 'variable=value']`. - `script` (optional): `` A custom LVS script relative to `scripts/`. Results: - `lvs_errors`: `` Number of LVS errors. ## Missing a tool? If you are missing a tool or functionality, please open an issue [here](https://github.com/efabless/cace/issues).