ngspice CI flow checks - #107
Conversation
|
@LuighiV Can you please review. |
| # Both PDKs ship ngspice model libs: sky130 at | ||
| # sky130A/libs.tech/ngspice/sky130.lib.spice, gf180 under the ciel | ||
| # versioned path. run_cell_sim.py resolves the right one per --pdk. | ||
| pdk: [sky130] |
There was a problem hiding this comment.
Please, enable for gf180. Models are not the same as sky130
There was a problem hiding this comment.
The resistance value depends on the techology, as the RDS might differ for each device. Maybe is better defining threshold values for resistances like lower than certain value (10k) for Ron and higher than certain threshold (1M) when it is off.
| ) | ||
| if libs: | ||
| cand = libs[0] | ||
| return cand, corner |
There was a problem hiding this comment.
For gf180 is not enough just declaring the design model file, you need to declare for all the devices.
Example:
.include $::180MCU_MODELS/design.ngspice
.lib $::180MCU_MODELS/sm141064.ngspice typical
.lib $::180MCU_MODELS/sm141064.ngspice cap_mim
.lib $::180MCU_MODELS/sm141064.ngspice res_typical
.lib $::180MCU_MODELS/sm141064.ngspice moscap_typical
.lib $::180MCU_MODELS/sm141064.ngspice mimcap_typical
Also the typical is not a section of design.ngspice so placing it after the declaration of design.ngspice is incorrect.
|
Hi Prof. @msaligane @Nimok15 I've reviewed the PR. In general I think it looks good and follows the pattern used for LVS. However, need to fix for gf180 as it has a different model structure requirement to simulate it. Currently, cannot simulate gf180 and consequently cannot pass using that pdk. Thanks, |
The CI currently verifies cells structurally, i.e., DRC + LVS. This PR adds a functional layer: ngspice testbenches that simulate each block and check measured behaviour against expected values within a ±10% tolerance.
ngspice testbenches — Use the extracted netlist from DRC artifacts, apply stimulus and bias, and measure the figures of merit.
JSON test specs — one JSON per cell declaring the expected value and the pass band (default ±10%).
Results table — the runner parses ngspice output, compares measured vs expected, and renders a pass/fail row per metric
PDK compatibility is only verified for sky130