I did push awhile back for home-made DVI transmitter, but Nockieboy felt at better ease using the TFP410.
Look way back on this thread and I found a public domain HDMI transmitter with audio support written in Verilog for both Intel and Xilinx.Do you happend to have a link? I would be curious to see the one for Antel devices.
https://github.com/charcole/NeoGeoHDMI Altera true 480P with embedded audio.
so I can't really see it. I do wonder though what "true" part means, 480p is the lowest resolution supported by HDMI without pixel repeats (as 25 MHz is the minimum allowed HDMI clock). Sounds kind of cheesy to me if I'm being honest
Are there any HDL-only implementations for Antels?Do you do your layout in KiCAD? If so, do you have your project published anywhere? I can take a look and help if necessary/desired. I love routing. It's my favorite part of the design process.
- but I'm not giving up just yet. 
0402 caps? Can they even be hand-soldered?!Looks like another opportunity to push the limits of my soldering skills (and I thought 0603 was small!)
Don't worry, if you've got proper equipment (microscope), you can manually solder even 0201. I've done quite a bit of them, though I prefer reflowing.
That is consistent with the point I made above. The only people who choose Antel voluntarily are those who never used Xilinx 7 series. Once you do, you will never want to go back.
I did push awhile back for home-made DVI transmitter, but Nockieboy felt at better ease using the TFP410.
Look way back on this thread and I found a public domain HDMI transmitter with audio support written in Verilog for both Intel and Xilinx.Do you happend to have a link? I would be curious to see the one for Antel devices.
Here are the only links I remember:
https://www.realdigital.org/doc/189f72e0ee822643d7946fb639754841
https://github.com/charcole/NeoGeoHDMI Altera true 480P with embedded audio.
https://github.com/hamsternz/FPGA_DisplayPort
https://github.com/hamsternz/DisplayPort_Verilog

No, I'm using EasyEDA which is - as best I can tell - very similar to KiCAD, but all online (though there is a desktop version as well). Thanks for the offer of help, let me know if you feel you can get to grips with EasyEDA and I'll give you access to the project- but I'm not giving up just yet.
I don't have a microscope - I'm using a loupe where necessary, but that's about it. What sort of microscope do you use?
)Okay, so I've just had a very quick look at the Spartan 7 series - am I reading it right in that it has about 520KB of RAM in it, not included distributed RAM?
In fact, BrianHG, I have next to no recollection of having a conversation with you about direct HDMI or using a TFP410. That's not to say it didn't happen, of course - I do have a memory like a sieve - but I'm wondering now if it wouldn't be a bad idea. I've no reason to keep the VGA output if I can get HDMI up and running - doing so would save lots of IOs and routing headaches for me at the bottom of the PCB...
EDIT: Of course, when I say HDMI I mean DVI-D.
Okay, so I've just had a very quick look at the Spartan 7 series - am I reading it right in that it has about 520KB of RAM in it, not included distributed RAM?That sounds about right for the S100 device, but keep in mind that BRAMs in 7 series are natively 72 bits wide (can be split into two independent 36 bits wide parts), so depending on whether your design actually uses these additional 8 or 4 bits for something (ECC or some other data like flags or whatever), you might end up having less actually available (because remember each BRAM is all-or-nothing, you either use it fully or you don't). That said, since these BRAMs are very fast (depending on the mode of operation and speed grade, it can go from low 400's well past 500 MHz) and can be configured as hardware FIFOs.
No, I'm using EasyEDA which is - as best I can tell - very similar to KiCAD, but all online (though there is a desktop version as well). Thanks for the offer of help, let me know if you feel you can get to grips with EasyEDA and I'll give you access to the project- but I'm not giving up just yet.
I think so as it supports length tuning as well. At the very least I'm hoping to provide some constructive feedback.
I use relatively cheap x10/x20 stereo microscope (mostly in x10 mode for soldering) - AmScope SE410, it was about US$170 (+ delivery charge) at the time of purchase. If you browse ebay/aliexpress, you can find a ton of options if pretty much the same basic design as mine with all kinds of combinations of objectives, eyepieces and other accessories.
You could also then widen the external PSRAM unless you want to go to a true DDR 32bit ram setup and run the core ram at 64 bits. You do not need to stretch too much more here in speed, even if you want texture filled polygons as with this setup, you could fill above ~150 million 32 bit pixels a second compared to our current ~100 million 16 bit pixels a second. (Read/modify/write for each pixel) (Yes, better is possible, but a lot of code changes will need to be done and a lot of legacy graphics functions/modes used for small CPUs like Z80s would get pushed out of the way.)
Note that 1 smaller dual port 400MHz 1KB ram would still be need for the palette.
There is no other ram in the system except for a 512 word x16bit FIFO which can be worked around if nessary.
Oh, I'm all for constructive feedback - let me know when/if you create an account with EasyEDA and I'll give you access to the project. Or try to, anyway - I tried with BrianHG but I think he had to clone a copy of the project in the end.
Will keep my eyes open for a decent one then, thanks.
You could also then widen the external PSRAM unless you want to go to a true DDR 32bit ram setup and run the core ram at 64 bits. You do not need to stretch too much more here in speed, even if you want texture filled polygons as with this setup, you could fill above ~150 million 32 bit pixels a second compared to our current ~100 million 16 bit pixels a second. (Read/modify/write for each pixel) (Yes, better is possible, but a lot of code changes will need to be done and a lot of legacy graphics functions/modes used for small CPUs like Z80s would get pushed out of the way.)Since DDR3 has 8n-prefetch architecture, DDR3 controllers typically runs at 1:2 or 1:4 memory clock rate. Xilinx memory controller can ....
A single DDR3 can do triple that with a comfort zone other than some blits when using rotate will break page boundaries when writing every single pixel unless the writes are done to onboard FPGA ram.
Aside from being a complete mess already, I also need to add in two vias for each signal that is currently only on one layer so that the via count for those signals matches the ones that already have two vias?
Arrrggggg.. Ok, if 'asmi' doesn't help you out there, I'll make time toward the end of the week to route the ram for you. For now, try your best with everything else and just leave room for the ram and don't touch the power or GND plane for now.


I'm trying to get to the grips with the tool. It looks like differential pairs need to have suffixes _P/_N in order for PCB editor to recognize them as such. Can you please rename all differential pairs so that they would have these suffixes at the end, and push this change into the board? I don't feel confident enough with the tool to do it myself yet.
Also - are you targeting JLCPCB's JLC2313 stackup? This is important to determine the trace geometry for differential pairs as well as for data lines (50 Ohm single-ended/100 Ohm differential).
Have just tried the differential pair routing tool and it's working (although it's trying to do odd things when connecting to the first DRAM - there is guidance here about how to use the tool).
Also - are you targeting JLCPCB's JLC2313 stackup? This is important to determine the trace geometry for differential pairs as well as for data lines (50 Ohm single-ended/100 Ohm differential).
Probably not as I was unaware of it. I'll go take a look at it and see how it compares with the stackup BrianHG has specified and that I'm (trying) to work to.
I don't know if it's my PC or what, but it's sooooo freaking laggy - sometimes I have to wait up to 10 seconds for my command to register! 
I did connect both memory modules, now will need to connect them to the FPGA. What kind of pin swapping is allowed? I assume all data pins can be swapped around, but what about others? My work file is saved right next to original, since I don't want to screw up others' work.
If you are planning to use JLCPCB for manufacturing, this is the best stackup to use for high speed designs as it allows using narrower tracks to reach 50 Ohm impedance. That is because the prepreg is thinner in that stackup.
This EDA is a serious test of my patienceI don't know if it's my PC or what, but it's sooooo freaking laggy - sometimes I have to wait up to 10 seconds for my command to register!
I did connect both memory modules, now will need to connect them to the FPGA. What kind of pin swapping is allowed? I assume all data pins can be swapped around, but what about others? My work file is saved right next to original, since I don't want to screw up others' work.
Finally - how are you planning to assemble these boards? If using hot air gun, I suspect that memory chips are too close to FPGA. But maybe I'm wrong - it's been a while since I soldered BGAs with hot air gun.

Believe it or not, this thought had crossed my mind too. I think at the moment I'm going to get the FPGA SMT-assembled by JLCPCB when the PCB is manufactured. LCSC don't stock the DRAMs we're using when I last checked, so I'll have to source them from elsewhere and hot-air solder them. What's a safe distance to mount them at? Or will I have to use some sort of heat shield to protect the FPGA whilst heating up the DRAMs? Though I guess that won't help with the PCB heating up and stressing the BGA solder connections on the FPGA.
Slowly warming the PCB on a hot plate will help with mechanical stresses, but I don't think this will become too much of a problem as melting a 5x5 ball IC will be close to a few seconds.
Just make absolutely sure you choose the exact part number for 1.8v, 200MHz...
Hmm $4.12 at multiple vendors with stock VS $2.75 where only Mouser has stock.
https://www.findchips.com/search/W956D8
At least they are compatible & I believe there is also 1 more manufacturer of HyperBus ram.
You can also change to 1 ram chip and use this part number:
https://www.mouser.com/ProductDetail/Winbond/W957D8MFYA5I?qs=YwPsRIUVAOfDQ6YTWk12AA%3D%3D
It's basically 2 hyper-ram in 1 chip package & @ $4.04, you are saving...
Scrap that, I don't think you can interleave within a single 128mb ram chip. (Unless you place 2 of them for 32mb.)
Safer to use 2 chip and interleave commanding the 2 to maximize hyperbus activity and throughput.
Though, I guess you can just increase the burst size & use data write without initial latency & stick with 1 16mb ram chip. Much easier to route.
Having one DRAM chip would reduce cost marginally, but the biggest benefit would be easier routing and soldering. Whether those benefits are offset by worse performance due to lack of interleaving or increased burst size making the controller more complicated, I just don't know enough to determine and will have to be guided by your judgement on that one.