Tim Edwards
03/09/2024, 8:33 PMpython3 -m pip install --upgrade cace
and to launch CACE, after installing per the instruction above, just do
cace-gui
from the Linux command line.
I also made a number of critical bug fixes today. Most notably, I figured out how to prevent ngspice from dropping back into the interpreter after hitting an error, which causes the ngspice process to stall but not exit and leaves the entire CACE system in a hung state. I suggest for anyone who has cloned the version from yesterday or before to remove that version and run the pip install command as shown above.Christoph Maier
03/10/2024, 5:33 AM~/EDA/cace$ cace-gui
Traceback (most recent call last):
File "/home/cmaier/.local/bin/cace-gui", line 5, in <module>
from cace.cace_gui import gui
File "/home/cmaier/.local/lib/python3.8/site-packages/cace/cace_gui.py", line 56, in <module>
from .gui.failreport import FailReport
File "/home/cmaier/.local/lib/python3.8/site-packages/cace/gui/failreport.py", line 21, in <module>
from ..common.cace_makeplot import *
File "/home/cmaier/.local/lib/python3.8/site-packages/cace/common/cace_makeplot.py", line 18, in <module>
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
File "/home/cmaier/.local/lib/python3.8/site-packages/matplotlib/backends/backend_tkagg.py", line 1, in <module>
from . import _backend_tk
File "/home/cmaier/.local/lib/python3.8/site-packages/matplotlib/backends/_backend_tk.py", line 15, in <module>
from PIL import Image, ImageTk
ImportError: cannot import name 'ImageTk' from 'PIL' (/usr/lib/python3/dist-packages/PIL/__init__.py)
So far, I have compiled magic, xschem, netgen, and ngspice, but haven't updated the sky130 process and haven't copied or written configuration files.Leo Moser
03/10/2024, 8:28 AMpython3 -m pip install --upgrade cace
Christoph Maier
03/10/2024, 12:04 PMYou are building a tool for analog designers with a software "engineer"'s minsdet of deliberately tangled hierarchies.
Throw out all the intermediate layers!!!
In the meantime, here's a fix that makes the make errors go away.
to the nonstandard ngspice repository and blame the guy whodunit in person?Christoph Maier
03/10/2024, 12:54 PMChristoph Maier
03/10/2024, 1:16 PM~/EDA/cace$ cace
Traceback (most recent call last):
File "/home/cmaier/.local/bin/cace", line 5, in <module>
from cace.cace_cli import cli
File "/home/cmaier/.local/lib/python3.8/site-packages/cace/cace_cli.py", line 31, in <module>
from .common.cace_makeplot import *
File "/home/cmaier/.local/lib/python3.8/site-packages/cace/common/cace_makeplot.py", line 18, in <module>
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
File "/home/cmaier/.local/lib/python3.8/site-packages/matplotlib/backends/backend_tkagg.py", line 1, in <module>
from . import _backend_tk
File "/home/cmaier/.local/lib/python3.8/site-packages/matplotlib/backends/_backend_tk.py", line 15, in <module>
from PIL import Image, ImageTk
ImportError: cannot import name 'ImageTk' from 'PIL' (/usr/lib/python3/dist-packages/PIL/__init__.py)
Tim Edwards
03/10/2024, 3:49 PMsudo apt install python3-pil.imagetk
). I was unaware of this as a requirement and can add it to the required package installs in my instructions.
Like any piece of software that has a history of running only on one system, as soon as it is publicized and the user base expands, a slew of incompatibilities immediately crops up and has to be patched up. All part of the open source process.Leo Moser
03/10/2024, 5:17 PMpython3 -m pip install --upgrade cace
If that does not work, could you give us some information about your system and which Python version you are running? Thanks.Christoph Maier
03/10/2024, 5:26 PMChristoph Maier
03/10/2024, 5:43 PMpip3 install -r requirements.txt 1>../installationlogs/cace_install_requirements.log 2>../installationlogs/cace_install_requirements.err
.log
Defaulting to user installation because normal site-packages is not writeable
.err
ERROR: Ignored the following versions that require a different python version: 3.8.0 Requires-Python >=3.9; 3.8.0rc1 Requires-Python >=3.9; 3.8.1 Requires-Python >=3.9; 3.8.2 Requires-Python >=3.9; 3.8.3 Requires-Python >=3.9
ERROR: Could not find a version that satisfies the requirement matplotlib>=3.8.3 (from versions: 0.86, 0.86.1, 0.86.2, 0.91.0, 0.91.1, 1.0.1, 1.1.0, 1.1.1, 1.2.0, 1.2.1, 1.3.0, 1.3.1, 1.4.0, 1.4.1rc1, 1.4.1, 1.4.2, 1.4.3, 1.5.0, 1.5.1, 1.5.2, 1.5.3, 2.0.0b1, 2.0.0b2, 2.0.0b3, 2.0.0b4, 2.0.0rc1, 2.0.0rc2, 2.0.0, 2.0.1, 2.0.2, 2.1.0rc1, 2.1.0, 2.1.1, 2.1.2, 2.2.0rc1, 2.2.0, 2.2.2, 2.2.3, 2.2.4, 2.2.5, 3.0.0rc2, 3.0.0, 3.0.1, 3.0.2, 3.0.3, 3.1.0rc1, 3.1.0rc2, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.2.0rc1, 3.2.0rc3, 3.2.0, 3.2.1, 3.2.2, 3.3.0rc1, 3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.4.0rc1, 3.4.0rc2, 3.4.0rc3, 3.4.0, 3.4.1, 3.4.2, 3.4.3, 3.5.0b1, 3.5.0rc1, 3.5.0, 3.5.1, 3.5.2, 3.5.3, 3.6.0rc1, 3.6.0rc2, 3.6.0, 3.6.1, 3.6.2, 3.6.3, 3.7.0rc1, 3.7.0, 3.7.1, 3.7.2, 3.7.3, 3.7.4, 3.7.5)
ERROR: No matching distribution found for matplotlib>=3.8.3
Christoph Maier
03/10/2024, 5:45 PMlsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal
python3 --version
Python 3.8.10
Christoph Maier
03/10/2024, 5:51 PMLeo Moser
03/10/2024, 6:01 PMChristoph Maier
03/10/2024, 6:02 PMLeo Moser
03/10/2024, 6:03 PMpython3 -m pip install --upgrade cace
Tim Edwards
03/10/2024, 6:07 PMgit clone <https://github.com/efabless/cace>
to get the source code locally, then cd cace
and do make editable
(which runs pip3 install -e .
). Then, cace
runs code from the cloned directory, and changes you make there are reflected immediately in the operation of the tool. That sounds like what you're trying to achieve. That's how I run (as a developer) so that if something goes wrong I can dive in and fix it.Christoph Maier
03/10/2024, 6:12 PMpython3 -m pip install --upgrade cace
#worksforme
@Tim Edwards, once I get xschem, magic, ngspice, and netgen working, I'm going to focus on building (bottom-up, from layout) my assigned building block.
Chokepoints, so far:
1. update of unvirtualized sky130 PDK
2. adapt the configuration files to my native installation
Then, I'll probably just design, at least on schematic level, most if not all of the building blocks that interface to mine as "test structures", to avoid CACE-ish stuff for now.
THEN, I want to use CACE, and for that, I want to be able to mess with the source. As I want to keep it out of any critical path of mine, the black box pip3 install version will do if needs be.Tim Edwards
03/10/2024, 6:20 PM/usr/local/share/pdk
./configure --enable-sky130-pdk
make
sudo make install
The build can take a while. You may want to disable most of the standard cell libraries, since you most likely won't be using them (maybe keep HD for 1.8V digital and HVL for 3.3V digital):
./configure --enable-sky130-pdk --disable-sc-hs-sky130 --disable-sc-ms-sky130 --disable-sc-ls-sky130 --disable-sc-lp-sky130 --disable-sc-hdll-sky130
Finally, if you add the option
--with-sky130-variants=A
it will only compile sky130A and not sky130B, which cuts the build time in half.Leo Moser
03/10/2024, 6:35 PMmake build
and install it in editable mode via make editable
. Any changes that you do in the src files are then directly applied without the need to reinstall the package. You may need to uninstall the currently installed package from PyPI then.Christoph Maier
03/15/2024, 5:31 PM~/EDA/efabless/chipalooza2024/sky130_od_ip__tempsensor/cace$ cace -keep -debug -summary sky130_od_ip__tempsensor.txt sky130_od_ip__tempsensor.out 1>~/EDA/installationlogs/sky130_od_ip__tempsensor.cace.log 2>~/EDA/installationlogs/sky130_od_ip__tempsensor.cace.err
sky130_od_ip__tempsensor.cace.err
/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (2.2.1) or chardet (3.0.4) doesn't match a supported version!
warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
Traceback (most recent call last):
File "/home/cmaier/.local/bin/cace", line 8, in <module>
sys.exit(cli())
File "/home/cmaier/.local/lib/python3.8/site-packages/cace/cace_cli.py", line 691, in cli
charresult = cace_run(dataset, paramname)
File "/home/cmaier/.local/lib/python3.8/site-packages/cace/cace_cli.py", line 500, in cace_run
idx1 = poolresult[1][0]
IndexError: list index out of range
Are later versions of urllib3
and chardet
mission critical for analog circuit characterization or can the dependencies be made more tolerant to older versions, or, much better yet, eliminated completely?
(cace-gui
works)Tim Edwards
03/15/2024, 5:41 PMTim Edwards
03/15/2024, 5:44 PMChristoph Maier
03/15/2024, 5:50 PMTim Edwards
03/15/2024, 5:54 PMTim Edwards
03/15/2024, 5:54 PMChristoph Maier
03/15/2024, 5:55 PMcace-gui
works just fine. The commandline version cace
doesn't.Tim Edwards
03/15/2024, 5:56 PMChristoph Maier
03/15/2024, 6:00 PMTim Edwards
03/15/2024, 6:47 PMChristoph Maier
03/15/2024, 7:00 PM