Electronics > FPGA

Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.

(1/45) > >>

nockieboy:
Hi everyone,

This thread is a branch off from another thread here, which is itself a branch from a (large!) thread here.

TLDR for the large original thread; I was almost brand-new to electronics and had built a DIY 8-bit computer on a breadboard and had transitioned to 2-layer PCB design, making the computer as a stack of cards - each card with its own function (CPU, memory, IDE, power/serial etc.), and I needed a video card for the system.  That long thread culminates in the production of some serious SystemVerilog HDL to produce an HDMI-compatible graphics card for my computer, with 2D graphics functions, full SD-card read/write, a massive amount of work by BrianHG to produce an excellent DDR3 memory controller, programmable sound generators, etc., all whilst teaching me about FPGAs and HDL.

The FPGA line used were from Intel/Altera - starting with the Cyclone IV and moving to the MAX 10M50 on the Arrow DECA development board.

I'm now wanting to move across to Xilinx, mostly to test the design on a different platform, but also because I can't seem to find a reasonable upgrade path from the Intel 10M50 to something around the 75K LE mark on Mouser that won't take 4 years to be made and delivered and a mortgage to afford. :o

Following is part of the previous thread to help kick this one off:


--- Quote from: nockieboy on December 22, 2022, 09:39:41 am ---
--- Quote from: asmi on December 22, 2022, 07:04:54 am ---As for your project, I would actually recommend going for a FGG484 package - it will allow implementing a 32 bit DDR3@400 MHz interface to give you additional room to grow in terms of memory bandwidth, it also has 4 multi-gigabit transceivers in case you want to implement some kind of serial interface - like SATA, PCI Express (say for NVMe storage, or some extension slot for future upgrades), DisplayPort, high-bandwidth HDMI (above 1080p@60), or something else. Speed grade 2 devices and higher can go as high as 6.6 Gbps per transceiver.
--- End quote ---
The bigger packages are more enticing for the very reasons you've mentioned, but again I've never soldered a BGA before and was a little concerned I was making too big a leap from 2-layer boards and QFP/QFNs to 6-layers with 484-BGAs.  Interestingly, every step 'forward/smaller' in the SMD world (with the exception of discretes - 0402 is a little uncomfortable for me without more practice) has gotten easier.  Those E-QFP144 Cyclone IVs were a lot harder than QFNs to solder, for example - I'm hoping BGA will be the same (with the liberal application of heat).


--- Quote from: asmi on December 22, 2022, 07:04:54 am ---Finally, these Artix parts get pretty toasty, so you will need to provision for some sort of heatsink, or maybe even a small fan to help keep things from overheating. Remember, unlike CPUs, FPGAs don't have built-in overheating protection (unless you implement one yourself, that is), and will happily fry themselves if you are not careful.
--- End quote ---
Good point, hadn't considered that.  That will have a direct affect on the PCB design.  Instead of going for an intermediate 'Beaglebone-compatible' design which I can plug into the DECA interface (and thus sits at the bottom of the stack with no room for cooling), I might just design a specific board for my DIY computer and include the 3.3V-5V translation on it so it will just go onto the computer stack without an interface board.  That way it can sit at the top of the stack and I can mount a passive heatsink, ducted fan or nitrogen-cooled reservoir as necessary. ;)


--- Quote from: asmi on December 22, 2022, 07:04:54 am ---But it's kind of offtopic in this thread, so if you want to discuss this further, let's find a more suitable venue.
--- End quote ---

--- End quote ---

...and here's that thread. ;)

So I'm looking at using the XC7A100T-2FGG484C as suggested by asmi.  I'm assuming Vivado will support creating bitstreams for this FPGA without the need to pay for a licence?  As far as I could tell from their website, it does.  Having to buy a licence is a deal-breaker for me as this is a learning journey, I won't be making anything for profit.

The PCB for this board will either be custom to fit my computer's stack headers, or potentially could be more of a generic development card design with Beaglebone headers - I am not fully set on either yet as each has its pros and cons.  If I go the custom-board route, it will be powered from the computer's power supply in the stack headers - so power consumption may become a concern as the power supply was never designed with FPGAs in mind (I didn't even know they existed when I slapped a through-hole 7805 and AMS1117-3.3 on the power card), it'll look neat and I can fit a heatsink if required to the FPGA.  The generic development card route will give me more room to fit peripherals on the board and its own, separate, power supply so that will negate concerns about power consumption, it'll be a board design that others may be interested in and make use of, but it won't fit the ergonomics of the computer stack (which, to be fair, is hardly a problem at all as I currently have a DECA sticking out at right-angles to the stack on the bottom at the moment anyway).

EDIT:  As the design progressed, it has become a fully standalone board, with no intention to plug into the old uCOM stack I was using.  Instead, it has become a board designed to run soft-core CPUs as full computer systems.

asmi:
Maybe for long term it would be best to design a carrier board of sorts which would host both FPGA module, and your existing stack side-by-side? See a picture in attachment. This way you can upgrade/iterate over both parts separately from each other.

1. FPGA module would be the most "high-tech" part of a design, it would use high-speed connectors on the bottom side to connect to a carrier.  The module itself would host the bare minimum required for FPGA to work - FPGA itself, QSPI flash for the bitstream, DDR memory devices and a power delivery system.

2. Carrier will provide power for the whole system, it would also host high-speed interface connectors (PCIE, DisplayPort, HDMI, 1G Ethernet, USB, whatever), and would also connect FPGA module to extension stack.

You can use any Artix-7 part with a free license of Vivado/Vitis.

I think this thread belongs in a FPGA section as it's more about FPGA than it is about CAD. Maybe ask moderators to move it?

nockieboy:

--- Quote from: asmi on December 22, 2022, 03:00:11 pm ---Maybe for long term it would be best to design a carrier board of sorts which would host both FPGA module, and your existing stack side-by-side? See a picture in attachment. This way you can upgrade/iterate over both parts separately from each other.

1. FPGA module would be the most "high-tech" part of a design, it would use high-speed connectors on the bottom side to connect to a carrier.  The module itself would host the bare minimum required for FPGA to work - FPGA itself, QSPI flash for the bitstream, DDR memory devices and a power delivery system.

2. Carrier will provide power for the whole system, it would also host high-speed interface connectors (PCIE, DisplayPort, HDMI, 1G Ethernet, USB, whatever), and would also connect FPGA module to extension stack.
--- End quote ---

Ah, I like this idea.  You mean something like this?





This is a Lattice FPGA available on AliExpress.  The base/carrier board has what appears to be a SODIMM connector (?) which the FPGA and its DDR3 chips slot into.  Looks like power generation is done on the FPGA card too.  This would allow me to develop the FPGA section and carrier separately - I could do two carriers, one for a general development board to make public and another that fits my DIY computer's layout.  Food for thought - thanks for that. :-+


--- Quote from: asmi on December 22, 2022, 03:00:11 pm ---You can use any Artix-7 part with a free license of Vivado/Vitis.
--- End quote ---

That's good to know.


--- Quote from: asmi on December 22, 2022, 03:00:11 pm ---I think this thread belongs in a FPGA section as it's more about FPGA than it is about CAD. Maybe ask moderators to move it?
--- End quote ---

Will do.

Whilst that's being done, I have a question about power.  Have you built a board for an Artix-7 before?  I'm wondering about power chip selection.  I've got the schematics for the Arty A7 dev board, but the older version uses power management chips that cost in excess of £15 together, or the latest Arty-A7 board (E.2 revision) uses a newer (DA9062) chip that seems to need to be programmed, is only available non-programmed to particular companies or as a bulk purchase (with signed disclaimer by the client) in excess of £12,000 in total... not really an option for me!

I'm following the Arty 7 schematic and parts as closely as I can, but would like to minimise the cost of the power supply as much as is reasonable.  I'm going to need 5V, 3.3V, 1V, 1.35V and 0.675V rails.  Any suggestions for an alternative to the DA9062 I could use?

asmi:

--- Quote from: nockieboy on December 22, 2022, 08:45:16 pm ---Ah, I like this idea.  You mean something like this?
--- End quote ---
No, something more like this: https://www.myirtech.com/list.asp?id=553


--- Quote from: nockieboy on December 22, 2022, 08:45:16 pm ---This is a Lattice FPGA available on AliExpress.  The base/carrier board has what appears to be a SODIMM connector (?) which the FPGA and its DDR3 chips slot into.  Looks like power generation is done on the FPGA card too.  This would allow me to develop the FPGA section and carrier separately - I could do two carriers, one for a general development board to make public and another that fits my DIY computer's layout.  Food for thought - thanks for that. :-+
--- End quote ---
I don't like edge connectors because they usually command an extra charge for PCB manufacturing.


--- Quote from: nockieboy on December 22, 2022, 08:45:16 pm ---Whilst that's being done, I have a question about power.  Have you built a board for an Artix-7 before?  I'm wondering about power chip selection.  I've got the schematics for the Arty A7 dev board, but the older version uses power management chips that cost in excess of £15 together, or the latest Arty-A7 board (E.2 revision) uses a newer (DA9062) chip that seems to need to be programmed, is only available non-programmed to particular companies or as a bulk purchase (with signed disclaimer by the client) in excess of £12,000 in total... not really an option for me!

I'm following the Arty 7 schematic and parts as closely as I can, but would like to minimise the cost of the power supply as much as is reasonable.  I'm going to need 5V, 3.3V, 1V, 1.35V and 0.675V rails.  Any suggestions for an alternative to the DA9062 I could use?

--- End quote ---
You don't have to use these exact converters, any one which meets Artix DC specs (±5% voltage regulation, <50 mV noise) will work just fine. Artix-7 100T device can consume up to about 7 A of current on Vccint rail (at 1 V nominal). For example, you can use MP8772GQ - it can output up to 12 A of current, so very decent margin, it's quite affordable (just over 3 USD for qty 1), and - most importantly in our times - it's actually available in stock in decent quantities. For other rails you can use even "classic" TLV62130 (if you can find it in stock), or something like MP2384 (which is available in stock in quantities).

Alternatively you can use modules like this one: https://www.monolithicpower.com/mpm3683-7.html Their advantage is that they already have an integrated inductor, so all you need to use it is 2 resistors to set the voltage, a couple of caps for decoupling and filtering. They take less space than a "discrete" solution would, and are easier to route because one of the most critical traces (FET-to-inductor loop) is already done inside the package, so you literally just slap a cap or two nearby and you are done. The downside is the higher price - although it's not as clear-cut as it seem because you need more discrete parts for "discrete" solution, so sometimes modules actually end up cheaper. I personally prefer using modules when I need to pack things as tight as possible (typical problem for "compute modules" like that FPGA module we're talking about), but if space is not a big problem, you can use discrete converters as well.

BrianHG:
Note that the 48$-39$ 85KLE fpgas from Lattice are finally available once again.
Though, you need to convert my DDR3 controller as Lattice's DDR3 costs money.

Note that in your current design, Parallel layers in my video controller eats a few K-LE per layer while the Sequential layers are near free in LE usage.  Obvious using the 2 layer types together is what gives you the 16-64 layers you may be using.

The way your current pixel writer is designed is slow and excessive in gate count because it was engineered to run on the old FPGA dual-port ram and support backward compatibility.  This is how things end up when you begin with engineering with a design for a 6KLE FPGA, then just recklessly add layers ontop.

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod