Press "Enter" to skip to content

Altera Quartus Web 13 a Linux

Začal som trocha koketovať s FPGA. Vybral som si Alteru z viacerých dôvodov a teda som si musel nainštalovať alterácke vývojové prostredie Quartus Web. Keďže som sa stretol s nejakými problémami pri jeho rozchodení, rozhodol som sa o nich napísať.

Keď nemusím, Windows nepoužívam, takže som si nainštaloval Quartus Web 13.0sp1 (novšie verzie už nepodporujú radu Cyclone II) pod Linuxom, ale hneď v zápätí som narazil na dva problémy. USB-Blaster neblasteroval a ModelSim nefungoval vôbec, tak tu nájdete postup ako to vyriešiť.

Quartus používa v jadre vstavané usb_device ovládače, ku ktorým má defaultne prístup len root. Keďže Quartus spúšťam s oprávneniami bežného používateľa, jtag daemon tiež beží s oprávneniami užívateľa a tak nemá prístup k zariadeniu blastera a programovanie FPGA samozrejme nefunguje. Riešením je prinútiť udev, aby k USB-Blasteru pustil aj bežného užívateľa.

Ako root vytvorte súbor /etc/udev/rules.d/51-usbblaster.rules a skopírujte doňho nasledujúce riadky:

#Altera USB-Blaster user permissions
SUBSYSTEM=="usb",\
ENV{DEVTYPE}=="usb_device",\
ATTR{idVendor}=="09fb",\
ATTR{idProduct}=="6001",\
MODE="0666",\
NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}",\
RUN+="/bin/chmod 0666 %c"

Pričom do parametra ATTR{idProduct} je potrebné vyplniť ProductID vášho USB-Blastera. Zistíte to napríklad z výpisu dmesg. Potom ešte treba reštartovať udev a to môžete urobiť buť rebootom počítača, alebo ako root spustite príkaz

udevadm control --reload

Následne by vám už USB-Blaster mal fungovať.

Druhý problém je trocha zložitejší. ModelSim mi po spustení padal s hláškou:

** Fatal: Read failure in vlm process (0,0)
Segmentation fault (core dumped)

Po chvíli pátrania som zistil, že na vine je príliš moderná verzia knižníc freetype. Nezostáva nič iné, len skompilovať posledné funkčné a podhodiť ich ModelSimu. Ja bežím na Slackware, ale keďže bežnejšie sú Debian based distribúcie, popíšem postup radšej pre ne.

V prvom rade budete potrebovať vyriešiť závislosti potrebné pre kompiláciu freetype. Urobíte to príkazom

apt-get build-dep -a i386 libfreetype6

a samozrejme ho treba spustiť ako root. Následne si stiahnite tieto zdrojáky freetype. Je to posledná verzia, s ktorou ModelSim funguje. Rozbaľte ich niekde do pracovného adresára a skompilutjte ich takto:

./configure --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
make -j8

Teraz už len stačí pridať skompilované kninžnice niekam k ModelSimu a donútiť ho používať ich. Vojdite do adresára ModelSimu, vytvorte tam podadresár lib a skopírujte doňho knižnice, napríklad takto:

cd ~/altera/13.0sp1/modelsim_ase/
mkdir lib
cp /tmp/freetype-2.4.12/objs/.libs/libfreetype.so* ./lib

Ďalej upravte spúšťací skript vco nasledovne:

chmod u+w vco
gedit vco

Nájdite riadok č.50, mal by tam byť príkaz dir=`dirname $arg0`. Rovno pod neho dopíšte:

export LD_LIBRARY_PATH=${dir}/lib

a po tomto úkone by už vám ModelSim mal naštartovať. EDIT: Ešte je potrebné opraviť cestu k ModelSimu. Altera dáva predvolenú cestu ~/altera/13.0sp1/modelsim_ase/linuxaloem, čo je zrejme nejaká zrada, pretože to smeruje priamo na binárky a vyššie uvedené zmeny preto nefungujú. Správne tam má byť cesta ~/altera/13.0sp1/modelsim_ase/bin, kde sú symlinky na spúšťacie skripty, ktoré ModelSim spúšťajú tak ako sa má. Nastavuje sa to v Tools/Options/General/EDA Tool options.

Ak používate 64-bit systém, tak budete musieť absolvovať to isté, len si budete musieť doinštalovať aj všetky príslušné 32-bit knižnice. A to je všetko.

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *