2 git remote set-url origin https://gitlab.lip6.fr/vlsi-eda/alliance-check-toolkit.git
3 git remote set-url origin https://gitlab.lip6.fr/vlsi-eda/alliance.git
4 git remote set-url origin https://gitlab.lip6.fr/vlsi-eda/coriolis.git
10 First set up an schroot debootstrap jail with debian 9.0.
11 These instructions are based on information taken from here:
12 <https://www.debian.org/releases/stretch/amd64/apds03.html.en>
14 In advance, on the host system, edit /etc/fstab and add mount points:
16 (edit: personally I prefer using mount --bind points. however if doing
17 that then after a reboot the chroot will lose the bind mountpoints
18 and the commands need to be re-run, without which the chroot is
21 /dev /home/chroot/coriolis/dev none bind 0 0
22 /dev/pts /home/chroot/coriolis/dev/pts none bind 0 0
23 /proc /home/chroot/coriolis/proc none bind 0 0
24 /sys /home/chroot/coriolis/sys none bind 0 0
25 /tmp /home/chroot/coriolis/tmp none bind 0 0
27 Then run these commands:
30 apt-get install debootstrap schroot
31 mkdir /opt/chroot/coriolis
32 /usr/sbin/debootstrap stretch !$ http://ftp.us.debian.org/debian
33 mount /home/chroot/coriolis/dev
34 mount /home/chroot/coriolis/dev/pts
35 mount /home/chroot/coriolis/proc
36 mount /home/chroot/coriolis/sys
37 mount /home/chroot/coriolis/tmp
38 echo "coriolis2" > /home/chroot/coriolis/etc/debian_chroot
40 To do some preparation (users):
42 chroot /home/chroot/coriolis2 /bin/bash
43 adduser {yourpreferredusername}
45 It is best to make the username the same as the first user that
46 was added during the *main* (non-chroot) debian install, so that
47 uid 1000 matches between both main and chroot. You can check
48 this by looking at /etc/passwd as root, or by typing "id".
51 uid=1000(lkcl) gid=1000(lkcl) groups=1000(lkcl),5(tty),....
53 Alternatively, /etc/passwd and /etc/group may
54 be mount-bound as well as /home however if you later forget you did
55 this and decide to delete the chroot, you will delete the entire /home
56 of your main system, as well as /etc/passwd.
58 You may wish to follow some of the other things such as configuring apt,
59 locales and keyboard, from the above-linked debian-admin HOWTO.
60 bootloader, kernel, ssh access, all these are
61 unnecessary. do run "apt clean" to clear out /var/cache/apt/archives
66 Create an schroot file section:
69 description=Debian Stable for Coriolis
70 directory=/home/chroot/coriolis
71 groups=sbuild-security,lkcl,users
73 Now as an *ordinary* user - not as root - you may type:
75 lkcl@fizzy:~$ schroot -c coriolis
77 and, due to the contents of /etc/debian\_chroot, and that you were in
78 fact logged in as uid 1000 and did in fact add a user to the chroot
79 as uid 1000, the prompt should become:
81 (coriolis2)lkcl@fizzy:~$
83 If however you need to run as root, then from outside the chroot,
84 as *root*, you run this:
86 lkcl@fizzy:~# schroot -c coriolis
88 and you will see this as a result:
90 (coriolis2)lkcl@fizzy:~#
92 ## check out alliance and alliance-check-toolkit
94 Adapted from <https://www-soc.lip6.fr/en/team-cian/softwares/alliance/>
98 git clone https://gitlab.lip6.fr/jpc/alliance-check-toolkit.git
100 TODO: document how to build alliance, basically this:
102 In the chroot, as root:
105 apt-get install ccache git build-essential libtool automake \
106 flex bison xfig imagemagick \
107 texlive texlive-pictures texlive-latex-extra \
108 libx11-dev libxt-dev libxaw7-dev libxpm-dev libmotif-dev
110 In the chroot, as the ordinary schroot user, in ~/.bash\_profile add
111 the following so that builds (rebuilds) if you need them will be quicker:
113 export PATH=/usr/lib/ccache:"$PATH"
115 In the chroot, as the ordinary schroot user:
117 mkdir -p alliance/build alliance/install
119 git clone https://www-soc.lip6.fr/git/alliance.git
123 export ALLIANCE_TOP=$HOME/alliance/install
124 export LD_LIBRARY_PATH=${ALLIANCE_TOP}/lib:${LD_LIBRARY_PATH}
125 export LD_LIBRARY_PATH=${ALLIANCE_TOP}/lib64:${LD_LIBRARY_PATH}
126 ../alliance/src/configure --prefix=$ALLIANCE_TOP --enable-alc-shared
129 the two exports are best added to ~/.bash_profile for later convenience
133 These are nominally taken from
134 <https://www-soc.lip6.fr/equipe-cian/logiciels/coriolis/>
135 however there are errors in the original at the moment.
136 Do not try qt5, it will not work.
138 In ~/.bash\_profile add the following so that builds (rebuilds) if you need
139 them will be quicker, and you can run the GUI from the chroot:
141 export PATH=/usr/lib/ccache:"$PATH"
144 Second (or at a new terminal / xterm), log in as root on the host (not
145 the chroot) then do schroot -c coriolis to get to be root in the chroot
146 (or, you can install sudo in the chroot and then do "sudo bash" in the
149 Then run the following commands, as root, *in* the chroot:
152 apt-get install -y ccache build-essential binutils-dev \
153 git cmake bison flex gcc python-dev \
154 libboost-all-dev libboost-python-dev \
156 libbz2-dev libxml2-dev rapidjson-dev libbz2-dev \
157 doxygen dvipng graphviz python-sphinx \
158 texlive-fonts-extra texlive-lang-french \
159 libqwt-dev qt4-dev-tools python-qt4 \
160 libxt-dev libxpm-dev libmotif-dev \
163 Then, as the ordinary (non-root) user in the schroot:
165 mkdir -p ~/coriolis-2.x/src
166 cd ~/coriolis-2.x/src
167 git clone https://www-soc.lip6.fr/git/coriolis.git
171 ./bootstrap/ccb.py --project=coriolis --make="-j4 install"
173 To set up the alliance environment, run this:
175 eval `~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py`
177 For convenience that may be placed in a file and "sourced", to avoid
178 having to look this page up every time
180 echo "eval `~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py`" > \
184 To run the graphical editor go to the bin directory
186 cd ~/coriolis-2.x/Linux.MyARCH/Release.Shared/install/bin
189 Then run the following commands from the menubar
191 Tutorials / Run Demo (Python Flavour)
193 If the following window appears you have an error.
195 [[!img chicken.png ]]
197 click on the chicken several times
199 If you have the following, congratulations:
201 [[!img demo_cell.png ]]
203 # Tutorials and checks
205 Install alliance-check-toolkit in the chroot:
207 * <https://gitlab.com/Chips4Makers/alliance-check-toolkit>
208 * See coriolis-2.x/Linux.x86_64/Release.Shared/install/share/doc/coriolis2/en/html/main/PythonTutorial/index.html
210 Run the following (if not done already):
214 Then, picking a random example:
216 cd alliance-check-toolkit/benchs/AM2901/standart_cells/cmos
220 A nice view of a chip should appear
222 ## Information from Jean-Paul
224 There should be very soon a website at https://coriolis.lip6.fr (it is not yet
225 online). Where I intend to put all the documentation about Alliance/Coriolis.
227 In the meantime did you find the doc shipped with Coriolis ?
229 There are also very cursory informations about installing Alliance here:
230 https://www-soc.lip6.fr/en/team-cian/softwares/alliance/
232 You also have a third repository for various blocks/chip/examples here:
233 https://gitlab.lip6.fr/jpc/alliance-check-toolkit
235 (with a basic doc under "doc/"...)
239 You must create a configuration for alliance-check-toolkit:
241 alliance-check-toolkit/etc/mk/users.d/user-LOGIN.mk
243 where you define where the various tools are installed
244 (look in other ones to have an idea).
246 You can try the ARM in alliance-check-toolkit:
248 > cd alliance-check-toolkit/benchsARM/cmos/
251 Should take about five minutes. It's symbolic, but should be
252 a configuration compatible with 180nm. To actually see the
257 Then "File -> Open", "arm_chip_cts_r"
259 To have a very rough approximation, you can say that one lambda
262 Depends on the zoom level and of the fact that you ask to see
263 the inside of the cells.
265 To actually see the transistors:
266 Tools -> Controller -> Filter Tab -> check "Process Terminal Cells"
268 You can also tweak the layer display:
269 Tools -> Controller -> Layers & Go
271 You can quicly hide/show the Controller with CTRL+I.
273 You may also toy with Controller -> Look, try the other ones.
274 If you want a new one, to mimic something you're better
275 familiar with, it's in configurations files all written
276 in Python so easy to do, if a little tedious.
278 > i'd expect such a chip to be in the alliance-check-toolkit however we
279 > don't even know what we're looking at in order to know which bits we
280 > need, let alone know what to do or how to run them.
282 > we're *literally* completely in the dark, here, having never done this
283 > before - at all - so unless there's a specific tutorial which says, to
284 > make a chip layout do this: "step 1: install these tools. step 2: get
285 > this project repo. step 3: cd to this directory. step 4: run make or
286 > ./compile-place-and-route.sh" we're absolutely lost.
288 > thx jean-paul, and apologies for not knowing where to begin, here.
290 No problem. You're welcome.
292 The doc is mostly for people who already have a background in ASICs,
293 I will try to patch something from my lecture in VLSI to help people
294 to orient themselves.
296 The up-to-date documentation is supplied directly in the Coriolis
299 coriolis/documentation/output/index.html
301 The links toward the doxygen doc will be invalid a this point,
302 but everython else works.
304 After installation, it is put in:
306 coriolis-2.x/Linux.x86_64/Release.Shared/install/share/doc/coriolis2/en/html/index.html
308 # Installing python3.7 into debian/stretch chroot
310 python 3.6 is a prerequisite for nmigen however something
311 weird is going on, and it can't be installed. instead,
312 python 3.7 has to be installed instead. we do this by
313 adding debian/testing but setting the default release
317 chroot, add the following to /etc/apt/sources.list
319 deb http://ftp.de.debian.org/debian testing main
323 echo 'APT::Default-Release "stretch";' | tee -a /etc/apt/apt.conf.d/00local
325 apt-get -t testing install python3.7 python3-setuptools \
326 python3-jinja2 python3-pip
328 At this point it becomes possible to follow the main
329 instructions in [[HDL_workflow]] for installing nmigen,
330 ieee754fpu, soc and nmutil.
332 # Upgrading to latest yosys and nmigen in the chroot
334 yosys in debian/stretch may not be enough to work with nmigen,
335 therefore it's probably a good idea to upgrade. if this was
336 not a debian/stretch chroot (i.e. was a debian 10), it would be
337 a simple matter of "apt-get install yosys" however it's probably best,
338 here to install from source.
340 **however**.. there is another way: once the instructions
341 for installing python3.7 have been carried out. As root,
344 apt-get -t testing install yosys
348 To install instead from source, add the following to
349 /etc/apt/sources.list:
351 deb-src http://ftp.uk.debian.org/debian stretch main
353 then as root, in the chroot, run the following:
356 apt-get build-dep yosys
357 apt-get install clang
360 this will remove debian/stretch yosys however getting the build
361 dependencies is quick and easy enough.
363 then, as the ordinary user, the following instructions can be followed
364 (<http://www.clifford.at/yosys/download.html>)
367 git clone https://github.com/cliffordwolf/yosys.git
376 # Check out the libresoc "soclayout" repository
378 See [[HDL_workflow]] for git clone instructions
380 $ git clone ssh://gitolite3@git.libre-riscv.org:922/libresoc.git