08-07-2009 02:12 AM
Recently, I am working on a project which is quite large. Sometimes I receive change requests about blocks and when I want to re-implement the design it takes about more than 4 hours. And it is really annoying. What I want to ask is are there any tips for lowering the implementation time.
Do you think an analysis of the design and LOC constraints improve the time?
I tried partitioning of the design but at first run after 10 hours virtual memory was not enough and I quit.
My first thoughts about this is physical changes like, what if I use a high RPM HDD. According to my observations XST heavily uses HDD. This is strange, I mean not performig oprations through RAM. Or do you suggest using a RAID HDD. I wonder how XST works and what modifications can be done for a faster design. By the way I use ISE 9.2.
Any kind of suggestions are welcome.
Thanks in advance.
08-07-2009 05:21 AM - edited 08-07-2009 05:24 AM
sorry to say for a big design, 4 hours is short.
The Big answer is incremental Design. But it needs a lot of work up front to get it to work well.
Dedicate a machine to the job,
Get the latest ISE, each is said to be faster than the last.
turn off virus checking, auto backup, indexing, or any other back ground tasks.( you might need to get it off the network to do this )
Lots of Fast memory is good, but windows only supports up to 3G, and your limited by your board chip set, so your a bit snaffed.
The faster the processor the better, synth is inherantly single threaded, so multi core gives little advantage.
fast hard disk is good, as is a fast Graphics card, don't use shared memory graphics systems.
08-07-2009 05:49 AM
Thank you for the valuable suggestions.
You are right. I heard of people waiting for almost a day for implementation, so I am luckier compared to those. My last run took 6 hours.
Do you know anything about the HDD usage? For example I have a plan for using RAID system. System partition will be RAID and my project files will be in a normal second HDD. But, my doubt is I think ISE is using the project folders not the pagefile. In this manner RAID will not affect the performance, am I right?
08-07-2009 07:21 AM
Is your system RAM already at the maximum (at least 3GB)? The normal reason for HDD usage is
insufficient memory requiring virtual memory paging. Are there other applications running at the same
time, perhaps using up memory? Use the Task Manager to check memory usage before and during
your implementation process. Even very fast hard disks are orders of magnitude slower than
RAM. Consider moving to a 64-bit OS if you need more than 3GB of virtual memory during
08-07-2009 09:49 AM
re 64 bit,
you need to check what tools work with 64 bit if you go down that route, and remember, you effectivly need twice the ram to stay stil, so 6G in a 64 bit machine is like 3G in a 32 bit machine. ( rule of thumb but a good one ).
I have also heard that the Linux version of the tool is faster.
Our big machine has a pair of Intel SSD's for maximum speed, but I'm not certain how much it improves things over fast ram.
Most of the speed gain was when we stripped all but the basic applicatoins off the machine. You can spend a long time profiling the machine if you want to.
You can also write the code so it impliments 'faster', if your into that.
But all these things will in general only gain you a few percent, and it seems to be the big designs that take 24 hours plus that gain the most, a short 6 hour compile is less easy to get an improvment.
But Hay, computers are cheap, chuck the best / fastest you can get at the problme. a USD 4000 mahcine is written off against tax in a year, and your time costs a lot more than this.
But to re iterate the above, the only real speed possible is partial re compiling.
08-12-2009 05:01 AM
I think you could use smartguide attribute for map and par. It takes the result of the previous implementation step and use it to reduce time of actual one. I am not sure, if in ISE9.2 was smartguided parameter supported, maybe it was called diferently. Try look for guided map in the manual.
08-17-2009 03:09 AM
I believe RAID 0 helped my machine to run faster when not chaning any hardware.
But if you'd like to buy a new machine, it's worth to pay for
- Faster CPU with Large CACHE (too many cores doesn't help)
- Large Memory
Graphic cards 2D performance can impact the FPGA Editor response time.
OS stability is also important. Linux is good at memory management when memory consumption goes larger and larger.
The correct constriants for the guide of par can also help a lot. But it's hard to get the "correct" constraints before you know the FPGA architecture well.
11-06-2013 02:12 PM
Out of curiosity....if I threw down big bucks for a PC with twice the CPU clock freq and oodles more RAM, would I see a decrease in implementation time around 50%? The answer SHOULD be yes, but I thought I'd ask.
It'd be cool if Xilinx came out with a hardware-accelerator board to hand-off some of the build algorithms to an FPGA ;)
11-06-2013 02:47 PM