Tim Edwards
03/11/2024, 1:28 AMcicsim for characterization: Carsten has just added some syntax compatibility with CACE, so that schematics created for one system should be able to be used with the other. Long ago when I first wrote CACE for the Open Galaxy platform, I had noted that ngspice only evaluates mathematical expressions in parameters and some interactive commands, but not in other places like components. Whereas it is a common case to do something like set a voltage value at 1/2 Vdd or set a pulse width at 1/2 the period, where those values may be variables changing with the characterized corners. I had previously introduced a very awkward stack notation which was clever but not very readable. For the off-platform update, I introduced a new notation using brackets [ ... ] to encapsulate any arbitrary math. Then CACE would evaluate the expression to determine the value to substitute into the simulation netlist. So Carsten has added the same notation to cicsim. He also pointed out the danger of using python eval() on content which in the intended use of CACE is expected to come from any arbitrary 3rd-party source on the web. So I looked up how to do a non-exploitable evaluation in python, and it's safe now.