Altera_Forum
Honored Contributor
9 years ago125MHz PCIe application clock on a large cyclone V
We are trying to get a large Avalon bus based design to pass timing using the 125MHz clock from the PCIe block.
The design passed at 62.5MHz (just), but we want to use more than PCIe 1.0 x1 - which requires the faster clock. I'm slowly adding in components, but don't get very far before timing fails badly. Just connecting one of the BAR masters to two simple slaves is enough to cause problems - particularly if one of the slaves also writes to the Txs and Cra ports of the PCIe block. There seem to be far too many logic levels inside the pcie_cv_hip_avmm block to allow for even a small amount of Avalon 'goop'. None of this is helped by the BAR master generating 64bit Avalon burst transfers to slaves which are all 32bit non-burst (I'm changing them to 1 cycle setup and 1 cyle read wait - fairly generous). We don't care about the performance of these BAR master accesses - well not given how slow they are guaranteed to be, and given that the x86 host has difficulty generating PCIe requests for more than 8 bytes. We do need to generate long PCIe TLP into host memory - I've a dma controller to do that. Has anyone else had a similar issue? At the moment I've thrown together an Avalon bridge/buffer that forces the bus width and burst adapters to placed between a single master and slave. This adds two clocks of extra delay to read/write and waitrequest (which aren't a problem to us). I've going to have to test it eventually - unless someone has something equivalent lurking. Hopefully I won't have to make its slave side support 64bit burst transfers!