ISE8.1 on Linux, first impressions

I just installed ISE 8.1 on Linux and these are my first impressions:

  • Project Navigator finally feels like a native Linux program. Previous versions often felt unresponsive and slow. With this version I no longer feel an immediate urge to build everything with Makefiles. This is great!

  • Impact does not work out of the box with kernel version 2.6.15.1. I had to download linuxdrivers2.6.tar.gz and compile it. Furthermore, I had to edit the configure script in windrvr and make sure that UDEV was not used. (The udev interface seems to have changed in later 2.6.x series. The relevant symbols are also GPL-only now, so I don't think a binary only module can be distributed using UDEV in later 2.6.x kernels.) I also had to install fxload to download the firmware to the programming cable and make sure /proc/bus/usb was mounted.

All in all, I got it to work, but I really wish that Xilinx could remove the dependence on windriver. It is a real nuisance if you have to upgrade your kernel for whatever reason since you will need to recompile the kernel module in that case. If you happen to use parallel cable III or IV you can use XC3Sprog instead. You have to modify the program somewhat if you want to use it with Virtex-II FPGA:s. (You have to make sure that it recognizes the FPGA.) I haven't tested V2P or V4 FPGA:s with it though.

  • Test benches seem to be handled much more sanely in Project Navigator. You can now for each source file decide if it should be used for simulation, synthesis or both.

/Andreas

Reply to
Andreas Ehliar
Loading thread data ...

Thanks for the info. what Linux distro are you running?

The drivers you referred to: linuxdrivers2.6.tar.gz was that something you had to download from Xilinx's site?

Phil

Reply to
Phil Tomson

I wrestled similarly with windrvr. It apparently uses some class_simple functions removed Jun. 20 2005. I subscribe to the LKML and was easily able to reverse patch it.

Project manager and some other window were converted to QT I think. All other windows use the hideous WindU lib, so you can start the ise executable without fooling with DISPLAY but you still need it set to ":0" for all those secondary programs. Other than the subpar hotkey junk, the interface is much more natural.

Everything much more usable now. (Gentoo, 2.6.14-gentoo-r4 w/ class_simple unpatch, WebPack 8.1, Spartan-3 starter kit w/ parallel cable III).

Reply to
Dan

See

formatting link
for tar.gz link and instructions.

Reply to
Dan

I'm using Suse 9.3. The linuxdriver2.6.tar.gz information is found in answer record 22648.

/Andreas

Reply to
Andreas Ehliar

Hi,

i tried to install it on a Debian Sarge with a 2.6.12 kernel but without success. It complained about a missing libqt_qt.so (or similar). Which packages are missing?

Thanks in advance.

Thomas

"Dan" schrieb im Newsbeitrag news: snipped-for-privacy@g49g2000cwa.googlegroups.com...

Reply to
Thomas Gebauer

Hi,

nice info... can someone tell me if the USB cable works on Linux?

Ivan

Andreas Ehliar wrote:

Reply to
Ivan

Perhaps my posting wasn't clear on the issue, but I used the USB programming cable in Linux. (At least insofar as I got impact up and running with the USB cable, I haven't tested it much so I can't say that it is rock solid as yet.)

/Andreas

Reply to
Andreas Ehliar

I haven't tried it, yet, but I think such a package does not exist. It is either provided by ISE itself (set the environment variables correctly) or is an aliased version of something else (i.e. symlink libqt-mt.so to libqt_qt.so and run ldconfig or set LD_LIBRARY_PATH).

I think I'll find some time to try it today, but don't rely on this ;)

--
mail: adi@thur.de  	http://adi.thur.de	PGP: v2-key via keyserver

Darf ich bitten - oder tanzen wir zuerst?
Reply to
Adrian Knoth

For me, the problem with the extremely slow GUI is still there. Funny enough, the version 7 of ISE was running fine on RedHat Linux

2.4.21. Now that we upgraded to 8.1, it takes ISE 3 Minutes (!) to start beyond the splash screen. All interaction is extremely slow but the commandline tools are very fast.

Is there anything I am missing? Do I need a newer version of Java / Qt / whatever?

I would be thankful for any suggestions. Cheers, Joachim

Reply to
hutzelbutz

Sorry, I forgot to mention: The hardware is Dual AMD 3800 with 2GB RAM. Everything else is snappy and extremely fast. It was fine with ISE 7.1 but 8.1 broke it. I even installed the service pack 8.1.01, which didn't bring any help.

Reply to
hutzelbutz

I would suggest using scripts or makefiles to run the toolchain. Scripting allows you to automate things and thus offers advantages that the GUI can't.

Phil

Reply to
Phil Tomson

sure, I know about all those scripting and makefile advantages, there have been enough wars on that. However, I _do_ like graphical user interfaces and once everything is set up, I can press one button to run the complete designflow over and over again... Some people like one, some the other, no worries, everybody is free. So thanks for your suggestion but I am not looking for a workaround but a real fix of the ISE GUI.

Reply to
hutzelbutz

I agree.

For my own part, I like the commadn line interface. Once everything is set up, I can type "make", press return, and run the complete designflow over and over again. :-) I find it faster and more convenient to type "make" than to mouse to a button. But that's a matter of personal taste.

Reply to
Eric Smith

:-)

Back to the problem:

I think I forgot to mention that I am running the tools on dual-core machines, which seems to be part of the problem. When I watch the _pn processes while starting in "top", I see that with one call of ise, there are two _pn started on the same CPU. One has a bit of CPU usage for a short time, the splash screen shows and then they both stand with 0.1 % CPU. After 4 Minutes, one _pn is moved to the other CPU and this process then takes 1% CPU. 10 seconds later the GUI is there. Still both processes take exactly the same amount of memory and live happily ever after.

I don't know enough about multi-processor load distribution in Linux, but this behavior is reproducable. Could it be that those 4 minutes come from the time, the OS needs to find out that one process should be switched to the other CPU???

I would be curious to hear the experts about this topic!

Cheers, Joachim

Reply to
hutzelbutz

No, at least process migration should not matter. Maybe they have a race condition which doesn't appear in the sequential single-CPU case.

Simply do a "strace -p " and you will see what is going on at the syscall-level. Most of the time it is also possible to start the program directly with "strace -f ", but it can have problems with catching forked threads.

BTW: Haven't yet used 8.1 myself, but I suspect an issue either with thread handling (mutexes, etc.) or some name resolution (for whatever cause they need it).

--
         Georg Acher, acher@in.tum.de
         http://www.lrr.in.tum.de/~acher
         "Oh no, not again !" The bowl of petunias
Reply to
Georg Acher

Hello,

thanks for the excellent hint! Later on that day, I tried a linux kernel without smp and the same problem occurred. So multi-processors did not seem to be part of the problem. That also brought me back to networking issues, since I heard about 7.1 needing correct hostname and so on. But I couldn't figure it out until I read your hint.

So I tried "strace -f ise". When the splash screen is over, I get never ending loops of the following messages (it might not be cut at the right part of the message...)

[pid 22097] close(7) = 0 [pid 22097] getpid() = 22097 [pid 22097] open("/etc/hostid", O_RDONLY) = -1 ENOENT (No such file or directory) [pid 22097] open("/etc/hostid", O_RDONLY) = -1 ENOENT (No such file or directory) [pid 22097] uname({sys="Linux", node="lmesim121", ...}) = 0 [pid 22097] socket(PF_FILE, SOCK_STREAM, 0) = 7 [pid 22097] connect(7, {sa_family=AF_FILE, path="/var/run/.nscd_socket"}, 110) = -1 ENOENT (No such file or directory) [pid 22097] close(7) = 0 [pid 22097] open("/etc/hosts", O_RDONLY) = 7 [pid 22097] fcntl(7, F_GETFD) = 0 [pid 22097] fcntl(7, F_SETFD, FD_CLOEXEC) = 0 [pid 22097] fstat(7, {st_mode=S_IFREG|0644, st_size=349, ...}) = 0 [pid 22097] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2a97390000 [pid 22097] read(7, "# Do not remove the following li"..., 4096) = 349 [pid 22097] read(7, "", 4096) = 0 [pid 22097] close(7) = 0 [pid 22097] munmap(0x2a97390000, 4096) = 0 [pid 22097] socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 7 [pid 22097] connect(7, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("10.122.0.1")}, 28) = 0 [pid 22097] fcntl(7, F_GETFL) = 0x2 (flags O_RDWR) [pid 22097] fcntl(7, F_SETFL, O_RDWR|O_NONBLOCK) = 0 [pid 22097] poll([{fd=7, events=POLLOUT, revents=POLLOUT}], 1, 0) = 1 [pid 22097] sendto(7, "V\374\1\0\0\1\0\0\0\0\0\0\tlmesim121\5ikoop\6pri"..., 40, 0, NULL, 0) = 40 [pid 22097] poll([{fd=7, events=POLLIN, revents=POLLIN}], 1, 5000) = 1 [pid 22097] ioctl(7, FIONREAD, [197]) = 0 [pid 22097] recvfrom(7, "V\374\205\200\0\1\0\1\0\4\0\3\tlmesim121\5ikoop\6pri"..., 1024, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("10.122.0.1")}, [16]) = 197

"ikoop.privat" is the domainname and the computer is in the

10.122.182.x subnet. So although I do not have a clue, what's going on, I see that it seems to hang with networking issues. Probably "name resolution" as you mentioned.

However, something must have changed in version 8, since 7 was running fine. I set hostname and domainname and the /etc/hosts with no success. My Linux knowledge is at its end, can anybody help me, please?

Thanks a lot, Joachim

Reply to
hutzelbutz

OKok, my Linux knowledge is on the edge but not gone: :-)

The important line is: [pid 22097] open("/etc/hostid", O_RDONLY) = -1 ENOENT (No such file or directory)

This told me that ISE is looking for the file /etc/hostid, which was not existent at my computer. However, the command "hostid" gives the right value. So I did " sudo hostname > /etc/hostid" to create the file and voila: ISE starts in 5 seconds.

Problem solved !

Thanks for your help, I wouldn't have done it without all of your help ! I hope, this helps everybody with the same problem.

Cheers, Joachim

Reply to
hutzelbutz

I hope for Xilinx that it is possible to configure this filename.

It is clearly unacceptable that a (more or less) simple userland application needs a system-wide configuration file. I agree for daemons or default-overrides like /etc/opera6rc, but not for a tool which might run without uid-0-interaction at all.

Whoever has insisted on this filename should go back to the 90th and code Win95-applications when there was still no need to divide into user-related stuff (configuration, save files) and system installation.

In other words: put your xilinx.ini in the windows directory ;)

SCNR ;)

--
mail: adi@thur.de  	http://adi.thur.de	PGP: v2-key via keyserver

Kein Kind ass das Pilzgericht, nur der Juergen, der muss wuergen.
Reply to
Adrian Knoth

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.