Just copy his PCB and we will double verify your IO selection and placement to ensure you also get the chance to achieve 720p with at worst having increasing the VCCint from 1.1v to ~1.15v/1.2v if it didn't already do the 720p out of the box.
From experience routing CycloneIII with tests on an older true 5gs/sec/channel scope with amplified 1.5GHz jfet low capacitance probes, your output jitter and EYE is well under the +/-250ps, much closer to the +/-150ps in practice and the PLL is designed to go up past 700MHz.
*deep breath*
Okay, I'm going to pull the trigger and remove the TFP410 and VGA gubbins from the board. We're going full-throttle on a DVI-D-compatible 480p (maybe 720p later) video output by driving the HDMI connector directly from the FPGA.
I'll keep the 3.3VA supply at the bottom-right corner of the board to supply the PCM5101.
As for the DDR2/3, your cyclone is guaranteed to do 250MHz/500mtps by Intel. I'm not sure about the lower frequency limit of DDR3, but if it can do 250MHz, then you can use it. DDR2s are still readily available with 4 banks allowing you continuous streaming memory access providing at least 3x the speed of a Hyperbus ram when comparing with an 8bit DDR2/3. Since your core internally is 250MHz 16bit, this means the ram would also run internally in 1:1 mode in clock and depth. Sparing up a second 8bit IO bank for a 16bit DDR2/3 will give you 8x the speed of the current Hyperbus ram. Though, you core pixel writer and other newer functions will probably never saturate that speed.
Let me get this straight - the existing HyperRam setup requires two BGA chips and will require some nifty HDL-ing to interface with it and push it up over its 200MHz rated limit. Even then, it's only fast enough to give full-speed, no latency access to one MAGGIE?
However, if I strip that out and replace with a DDR2 or 3 chip, I'll only need one chip but a load more IOs (so I'll be setting two banks to 1.8V instead of that faff trying to find just the one for the HyperRam) - I could potentially use the entire bottom-right corner/quadrant of the FPGA for the DDR. But all that aside, what benefit will the DDR2/3 bring? Would it be a little closer to the internal RAM in terms of performance? i.e. could more than 1 MAGGIE access it? I'm just wondering if I could use it as the frame buffer.... that would unlock some serious resolutions and colour combos....
Just copy his PCB
Do you have a link to it? I couldn't find anything.
As far as I can tell from watching this
, he's using a bog-standard Cyclone EP2C5T144 board,
like this one, and incidentally, exactly like one I've got sitting in a tin on my shelf that I was using when I started this thread... Doesn't appear to be any fancy wiring, he's just connected the IOs to the HDMI connector, although I can't see if there's any discrete components on the connector PCB in the video. Jump to 1min50secs to see.
Overall I'm surprised that it's incredibly hard to find any schematics for direct HDMI out for Antel FPGAs, while there are tons of implementations using Xilinx devices. I spent about half an hour trying to find any schematic in the Google, but totally failed.
Maybe it's a good time to discuss moving to Artix/Spartan-7?
Well, I guess this is the elephant in the room now. Am I using the right tool for the job? Thing is, whilst I'd likely be as clueless with a Xilinx as I am with an Altera FPGA, I'm quite comfortable and familiar with the Cyclone dev chain. That's not to say that Xilinx's 7-series isn't appealing - they seem to have more RAM than the equivalent Cyclones and that's a big factor in our current designs. I do actually have a Spartan-6 dev board and programmer, still in their static bags, sitting around somewhere.
The biggest thing though, is that whether or not he'd like to admit it, BrianHG is critical to the success or failure of this project. He's the only one who knows how to finish what we've started on the HDL-side (if nothing else, I have learned a lot about what I don't know about HDL so far), so I'll always be guided by his preference here. And I'm sure that if we did move over to Xilinx, there'd be a lot of head-scratching as the HDL wouldn't just lay back and allow us to port it without causing issues.
Artix-7 in 1 mm BGA256 package has 170 user IO balls, so it should be enough for everything we've got + direct HDMI out up to 1080p@60 + x16 DDR2/3 memory module running at 400 MHz. This package also has a wide range of pin-compatible densities from 15K to 100K, so you can easily scale device up or down as required without any PCB changes aside from possibly minor changes in PDS. The top level device (A100T with 100K) requires a beefy DC-DC converter for Vccint rail as it can consume up to about 6 Amps@1.0 V, and it will need at least some glued-on or clipped-on heatsink. Smaller density devices can get away without heatsink.
At the end of the day, this GPU card sits on a stack of cards that all draw power from either a USB serial connection to my PC, or a DC jack connected to a 7805 regulator. Yep. Exactly. I've been putting off redesigning the power card for a while, as the current GPU (Cyclone IV) works just fine on the USB (though I've just checked and it only draws 0.08A!). I'm hoping that the Cyclone V will work without MAJOR issues - I might have to run it from the jack rather than the USB supply like I do now with the Cyclone IV, but then again it should actually be more power efficient than the IV. I suspect that a Xilinx (certainly some of the ones you've described) may cause power issues.