5 First set up an schroot debootstrap jail with debian 9.0.
6 These instructions are based on information taken from here:
7 <https://www.debian.org/releases/stretch/amd64/apds03.html.en>
9 In advance, on the host system, edit /etc/fstab and add mount points:
11 (edit: personally I prefer using mount --bind points. however if doing
12 that then after a reboot the chroot will lose the bind mountpoints
13 and the commands need to be re-run, without which the chroot is
16 /dev /home/chroot/coriolis/dev none bind 0 0
17 /dev/pts /home/chroot/coriolis/dev/pts none bind 0 0
18 /proc /home/chroot/coriolis/proc none bind 0 0
19 /sys /home/chroot/coriolis/sys none bind 0 0
20 /tmp /home/chroot/coriolis/tmp none bind 0 0
22 Then run these commands:
25 apt-get install debootstrap schroot
26 mkdir /opt/chroot/coriolis
27 /usr/sbin/debootstrap stretch !$ http://ftp.us.debian.org/debian
28 mount /home/chroot/coriolis/dev
29 mount /home/chroot/coriolis/dev/pts
30 mount /home/chroot/coriolis/proc
31 mount /home/chroot/coriolis/sys
32 mount /home/chroot/coriolis/tmp
33 echo "coriolis2" > /home/chroot/coriolis/etc/debian_chroot
35 To do some preparation (users):
37 chroot /home/chroot/coriolis2 /bin/bash
38 adduser {yourpreferredusername}
40 It is best to make the username the same as the first user that
41 was added during the *main* (non-chroot) debian install, so that
42 uid 1000 matches between both main and chroot. You can check
43 this by looking at /etc/passwd as root, or by typing "id".
46 uid=1000(lkcl) gid=1000(lkcl) groups=1000(lkcl),5(tty),....
48 Alternatively, /etc/passwd and /etc/group may
49 be mount-bound as well as /home however if you later forget you did
50 this and decide to delete the chroot, you will delete the entire /home
51 of your main system, as well as /etc/passwd.
53 You may wish to follow some of the other things such as configuring apt,
54 locales and keyboard, from the above-linked debian-admin HOWTO.
55 bootloader, kernel, ssh access, all these are
56 unnecessary. do run "apt clean" to clear out /var/cache/apt/archives
61 Create an schroot file section:
64 description=Debian Stable for Coriolis
65 directory=/home/chroot/coriolis
66 groups=sbuild-security,lkcl,users
68 Now as an *ordinary* user - not as root - you may type:
70 lkcl@fizzy:~$ schroot -c coriolis
72 and, due to the contents of /etc/debian\_chroot, and that you were in
73 fact logged in as uid 1000 and did in fact add a user to the chroot
74 as uid 1000, the prompt should become:
76 (coriolis2)lkcl@fizzy:~$
78 ## check out alliance and alliance-check-toolkit
80 Adapted from <https://www-soc.lip6.fr/en/team-cian/softwares/alliance/>
84 git clone https://gitlab.lip6.fr/jpc/alliance-check-toolkit.git
86 TODO: document how to build alliance, basically this:
88 In the chroot, as root:
91 apt-get install git build-essential libtool automake \
92 flex bison xfig imagemagick \
93 texlive texlive-pictures texlive-latex-extra \
94 libx11-dev libxt-dev libxaw7-dev libxpm-dev libmotif-dev
96 In the chroot, as the ordinary schroot user:
98 mkdir -p alliance/build alliance/install
100 git clone https://www-soc.lip6.fr/git/alliance.git
104 export ALLIANCE_TOP=$HOME/alliance/install
105 export LD_LIBRARY_PATH=${ALLIANCE_TOP}/lib:${LD_LIBRARY_PATH}
106 ../alliance/src/configure --prefix=$ALLIANCE_TOP --enable-alc-shared
109 the two exports are best added to ~/.bash_profile for later convenience
113 These are nominally taken from
114 <https://www-soc.lip6.fr/equipe-cian/logiciels/coriolis/>
115 however there are errors in the original at the moment.
116 Do not try qt5, it will not work.
118 In ~/.bash\_profile add the following so that builds (rebuilds) if you need
119 them will be quicker, and you can run the GUI from the chroot:
121 export PATH=/usr/lib/ccache:"$PATH"
124 Second (or at a new terminal / xterm), log in as root on the host (not
125 the chroot) then do schroot -c coriolis to get to be root in the chroot
126 (or, you can install sudo in the chroot and then do "sudo bash" in the
129 Then run the following commands, as root, *in* the chroot:
132 apt-get install -y build-essential binutils-dev \
133 git cmake bison flex gcc python-dev \
134 libboost-all-dev libboost-python-dev \
136 libbz2-dev libxml2-dev rapidjson-dev libbz2-dev \
137 doxygen dvipng graphviz python-sphinx \
138 texlive-fonts-extra texlive-lang-french \
139 libqwt-dev qt4-dev-tools python-qt4 \
140 libxt-dev libxpm-dev libmotif-dev \
143 Then, as the ordinary (non-root) user in the schroot:
145 mkdir -p ~/coriolis-2.x/src
146 cd ~/coriolis-2.x/src
147 git clone https://www-soc.lip6.fr/git/coriolis.git
151 ./bootstrap/ccb.py --project=coriolis --make="-j4 install"
153 To set up the alliance environment, run this:
155 eval `~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py`
157 For convenience that may be placed in a file and "sourced", to avoid
158 having to look this page up every time
160 echo "eval `~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py`" > \
164 To run the graphical editor go to the bin directory
166 cd ~/coriolis-2.x/Linux.MyARCH/Release.Shared/install/bin
169 Then run the following commands from the menubar
171 Tutorials / Run Demo (Python Flavour)
173 The following window will appear
175 [[!img chicken.png ]]
177 click on the chicken several times
179 # Tutorials and checks
181 * <https://gitlab.com/Chips4Makers/alliance-check-toolkit>
182 * See coriolis-2.x/Linux.x86_64/Release.Shared/install/share/doc/coriolis2/en/html/main/PythonTutorial/index.html
184 ## Information from Jean-Paul
186 There should be very soon a website at https://coriolis.lip6.fr (it is not yet
187 online). Where I intend to put all the documentation about Alliance/Coriolis.
189 In the meantime did you find the doc shipped with Coriolis ?
191 There are also very cursory informations about installing Alliance here:
192 https://www-soc.lip6.fr/en/team-cian/softwares/alliance/
194 You also have a third repository for various blocks/chip/examples here:
195 https://gitlab.lip6.fr/jpc/alliance-check-toolkit
197 (with a basic doc under "doc/"...)
201 You must create a configuration for alliance-check-toolkit:
203 alliance-check-toolkit/etc/mk/users.d/user-LOGIN.mk
205 where you define where the various tools are installed
206 (look in other ones to have an idea).
208 You can try the ARM in alliance-check-toolkit:
210 > cd alliance-check-toolkit/benchsARM/cmos/
213 Should take about five minutes. It's symbolic, but should be
214 a configuration compatible with 180nm. To actually see the
219 Then "File -> Open", "arm_chip_cts_r"
221 To have a very rough approximation, you can say that one lambda
224 Depends on the zoom level and of the fact that you ask to see
225 the inside of the cells.
227 To actually see the transistors:
228 Tools -> Controller -> Filter Tab -> check "Process Terminal Cells"
230 You can also tweak the layer display:
231 Tools -> Controller -> Layers & Go
233 You can quicly hide/show the Controller with CTRL+I.
235 You may also toy with Controller -> Look, try the other ones.
236 If you want a new one, to mimic something you're better
237 familiar with, it's in configurations files all written
238 in Python so easy to do, if a little tedious.
240 > i'd expect such a chip to be in the alliance-check-toolkit however we
241 > don't even know what we're looking at in order to know which bits we
242 > need, let alone know what to do or how to run them.
244 > we're *literally* completely in the dark, here, having never done this
245 > before - at all - so unless there's a specific tutorial which says, to
246 > make a chip layout do this: "step 1: install these tools. step 2: get
247 > this project repo. step 3: cd to this directory. step 4: run make or
248 > ./compile-place-and-route.sh" we're absolutely lost.
250 > thx jean-paul, and apologies for not knowing where to begin, here.
252 No problem. You're welcome.
254 The doc is mostly for people who already have a background in ASICs,
255 I will try to patch something from my lecture in VLSI to help people
256 to orient themselves.
258 The up-to-date documentation is supplied directly in the Coriolis
261 coriolis/documentation/output/index.html
263 The links toward the doxygen doc will be invalid a this point,
264 but everython else works.
266 After installation, it is put in:
268 coriolis-2.x/Linux.x86_64/Release.Shared/install/share/doc/coriolis2/en/html/index.html
270 # Upgrading to latest yosys and nmigen in the chroot
272 yosys in debian/stretch may not be enough to work with nmigen,
273 therefore it's probably a good idea to upgrade. if this was
274 not a debian/stretch chroot, it would be a simple matter of
275 "apt-get install yosys" however it's probably best, here to
278 add the following to /etc/apt/sources.list:
280 deb-src http://ftp.uk.debian.org/debian stretch main
282 then as root, in the chroot, run the following:
285 apt-get build-dep yosys
286 apt-get install clang
289 this will remove debian/stretch yosys however getting the build
290 dependencies is quick and easy enough.
292 then, as the ordinary user, the following instructions can be followed
293 (<http://www.clifford.at/yosys/download.html>)
296 git clone https://github.com/cliffordwolf/yosys.git
305 # Installing python3.7 into debian/stretch chroot
307 python 3.6 is a prerequisite for nmigen however something
308 weird is going on, and it can't be installed. instead,
309 python 3.7 has to be installed instead. we do this by
310 adding debian/testing and
313 chroot, add the following to /etc/apt/sources.list
315 deb http://ftp.de.debian.org/debian testing main
319 echo 'APT::Default-Release "stable";' | tee -a /etc/apt/apt.conf.d/00local
321 apt-get -t testing install python3.7 python3-setuptools \
322 python3-jinja2 python3-pip
324 At this point it becomes possible to follow the main
325 instructions in [[HDL_workflow]] for installing nmigen,
326 ieee754fpu, soc and nmutil.
328 # Check out the libresoc "soclayout" repository
330 See [[HDL_workflow]] for git clone instructions
332 $ git clone ssh://gitolite3@git.libre-riscv.org:922/libresoc.git