Hi,
I'm running into a problem with a memory controller design (mid-range FPGA, 76% utilization) and am wondering if anyone out there has seen synthesis / place-n-route options causing a design to fail when programmed onto a boar d?
Functional simulation passes all tests, and the RTL has been frozen for a w hile, and I am experimenting with different synthesis and place-&-route opt ions to see if I can get better area and speed results. My steps are: I cha nge a few options, re-compile, program the board and do a few functional te sts.
What happens is if I use non-default options for synthesis and/or place-&-r oute, the functional hardware read/write tests fail in an erratic way. I've narrowed it down to (not 100% sure) possibly synthesis options involving s tate-machine encoding, but am wondering if there are flaws in my RTL, const raints or design that are causing these.
Here are some questions that I'm trying to get a handle on:
- Could these problems be due to bugs in my synthesis / place-&-route tool ? (Am omitting the vendors here to avoid debates on whose tools are bette r but both the synthesis and par tool are versions that are older than the latest versions by a couple of software generations).
- If you have experienced such problems, were they more due to synthesis o ptions or to place-&-route ones? In the sense that, if the synthesis tool i s causing problems, maybe I can just fiddle with par options instead.
- Will formal verification or some sort of pre-/post-synthesis or par equi valence checking help resolve such problems?
If anyone has seen such issues before, I'd appreciate it if you can share s ome of your experiences (and solutions!).
Much appreciated, Harnhua