You are not logged in.
Hi,
I tried to build the EDK project and it does not meet timing. It has a final timing score of 4631 (Setup: 4631).
This is the procedure I followed:
A. Download latest release (1.4.0) from: http://warpproject.org/trac/wiki/802.11/Download
B. Follow Step 1-3 from the website: http://warpproject.org/trac/wiki/802.11/Usage/SDK
C. Open EDK project using Version 14.4 Xilinx tools
D. Project -> Clean All Generated Files
E. Generate BitStream
Did I miss something?
Last edited by jasonb (2016-Jan-28 23:23:59)
Offline
That's the right procedure; you have repositories setup correctly if the XPS flow ran to the point of a timing failure.
How many failing paths were there? And which constraints failed? This info is printed in the timing report towards the end of implementation/xflow.log.
One parameter you can tweak is the placer cost table. This acts like a seed for the place/route process. It's set by the "-t X" (for integer X) in the map section of etc/fast_runtime.opt.
It's also worth noting you can use the SDK to modify the MAC C code without re-building the hardware project in XPS. The SDK_Workspace folder in the reference design archive includes the output of a pre-built hardware project. The software compilation flow will use this hardware project data to write a bitstream with updated software.
Offline
Thanks. I will try tweaking the placer cost table.
I plan to modify the PHY as well as the MAC so I will need to get this to work. How often do you run into timing issues on this design? Either I'm very unlucky or this must happen quite often.
This is the failing constraint:
----------------------------------------------------------------------------------------------------------
Constraint | Check | Worst Case | Best Case | Timing | Timing
| | Slack | Achievable | Errors | Score
----------------------------------------------------------------------------------------------------------
* TS_clk_gen_proc_bus_clks_clk_gen_proc_bus | SETUP | -0.935ns| 7.185ns| 49| 4631
_clks_SIG_MMCM0_CLKOUT1 = PERIOD | HOLD | 0.005ns| | 0| 0
TIMEGRP "clk_gen_proc_bus_clks_cl | | | | |
k_gen_proc_bus_clks_SIG_MMCM0_CLKOUT1" | | | | |
TS_samp_clk * 2 HIGH 50% | | | | |
Offline
Sorry, I know that's frustrating. I've iterated on the XPS design 10's of times in the last few weeks without failing timing. We used to have more timing failures. I've added pipeline registers to critical paths in the PHY cores as they failed, which helped a lot.
The failing constraint here is the 160MHz clock used by most of the FPGA logic. 49 paths missing by up to 1nsec is a surprisingly big failure. The Timing Analyzer can pinpoint the failing paths. You can run the Timing Analyzer from ISE Design Tools -> 64-bit Tools, choose Open Design, then direct it to <xps project>/implementation/system.ncd & system.pcf. The "Timing -> Run Analysis" default report options will show the worst timing paths.
Offline
Thanks. Tweaking worked and the 2nd run met timing with 1ps worst case slack on hold time.
Offline