(no commit message)
[libreriscv.git] / HDL_workflow.mdwn
index 80d0b0851b49544b7fe082e7dc249f245760f655..ff8b5e10a1bb6a5a4b206f9c62cf4a5a45978891 100644 (file)
@@ -396,6 +396,35 @@ Install gdb from source.  Obtain the latest tarball, unpack it, then:
     make -j$(nproc)
     make install
 
+## power_instruction_analyzer (pia)
+
+We have a custom tool built in rust by programmerjake to help analyze
+the power instructions execution on *actual* hardware.
+
+Note: a very recent version of pip3 is required for this to work.
+
+Install rust:
+
+    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
+
+Make sure we have the correct and up-to-date rust compiler (rustc):
+
+    rustup default stable
+    rustup update
+
+Use rust's package manager *cargo* to install the rust-python build tool maturin:
+
+    cargo install maturin
+
+Install from git source by doing the following:
+
+    git clone https://salsa.debian.org/Kazan-team/power-instruction-analyzer.git pia
+    cd pia
+    maturin build --cargo-extra-args=--features=python-extension
+    python3 -m pip install --user target/wheels/*.whl
+
+Note: an ongoing bug in maturin interferes with successful installation.  This can be worked around by explicitly installing only the .whl files needed rather than installing everything (*.whl).
+
 ## Coriolis2
 
 See [[coriolis2]] page, for those people doing layout work.
@@ -453,6 +482,7 @@ if you want it, always ensure that a new git checkout is set up with rebase.
 * cd !$
 * git clone gitolite3@git.libre-soc.org:nmutil.git
 * git clone gitolite3@git.libre-soc.org:ieee754fpu.git
+* git clone gitolite3@git.libre-soc.org:nmigen-soc.git
 * git clone gitolite3@git.libre-soc.org:soc.git
 
 In each of these directories, in the order listed, track down the