Author Topic: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.  (Read 45012 times)

0 Members and 12 Guests are viewing this topic.

Online BrianHG

  • Super Contributor
  • ***
  • Posts: 8139
  • Country: ca
    • LinkedIn
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #25 on: December 29, 2022, 06:08:25 pm »
I'm aiming to create the same 32-bit data bus width with up to 25Gb/s bandwidth - hopefully that'll be sufficient for the project, @BrianHG?
That is the question I've asked a few posts back, if neccessary/required, it's possible to implement two 32 bit controllers, or some other mix of controllers if it will be beneficial to your project. For what it's worth, real video cards have a bunch of independent memory controllers as it allows video core to access several non-adjacent memory regions on the same clock, but adds it's own level of complexities regarding managing what is stored on each of connected memory devices.

Once the 32-bit DDR3 layout and traces are done, as far as I can see that's the hardest part done; I'll route out the remainder of the IO to the mezzanine connectors and, as these run at much lower speeds, selection and routing will be slightly less of a concern.  The manual I linked to above for the AC7100B includes GTP transceivers and differential signal paths?  I don't know much about these and am not looking to include them (or their power supplies) on the core FPGA card, unless anyone can convince me they're needed?
I understand your desire to rush to PCB design, but trust me, the time spent planning is the time well spent as it might ultimately save you a bunch of money on PCB respins and redesigns.

32 bit DDR3 layout might be the hardest one, but certainly not the fastest one. In your case HDMI will probably be the fastest one (beyond GTPs). As per official specs any regular I/O can go up to 1.25 Gbps per line, but in reality I've never seen an FPGA device that is not capable of doing 1080p@60 at 1.45 Gpbs per differential line. These are certainly faster than 400 MHz DDR3 signals, so don't get too caught up with DDR3 being the biggest obstacle. It might seem that way on a first glance, but it doesn't mean that it actually is. I know DDR3 looks intimidating, trust me I felt the same way back when I was about to embark on my very first one, but it might very well be simply a red herring with real complexity being elsewhere.

Since the Artix7 can go faster than 800mbps, I'm sure Nockieboy will want to maximize DDR3 clock speed.
If Nockieboy keeps on using my multiport, and I hope Xilinx's DDR3 controller is smart enough, there shouldn't be a problem with a single controller 32bit or even 64bit wide.  My multiport keeps track of which row is loaded in each bank and interleaves or sequences bursts accordingly.  IE: DDR3 has 8 banks, store your 2 frame buffers in banks 0 and 1, store textures in banks 2 through 5, 1/4 of the res each quadratured for super-fast fast bi-linear filtering, and use the remaining banks for geometry, software and sound, and the access should be as efficient as if you had 8 individual controllers.  (If Xilinx's controller cant's keep previously used banks open until a mandatory refresh, then my DDR3 controller is a lot smarter than theirs...)

Note, the DDR3 addressing should be set to BANK-ROW-COLUMN for this pseudo 8 channel DDR3 controller.
« Last Edit: December 29, 2022, 06:17:46 pm by BrianHG »
 

Online BrianHG

  • Super Contributor
  • ***
  • Posts: 8139
  • Country: ca
    • LinkedIn
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #26 on: December 30, 2022, 11:59:40 am »
Though if Xilinx's DDR3 controller not only leaves banks open until a necessary bank change or refresh, but if it properly supports 'Dual-Rank' mode, then it is smarter than mine and it would be a plus to use a dual-rank SODIMM module.  This will grant absurd speed and if accessed properly, my multiport feeding a dual rank controller will grant near 0 penalty clock cycle continuous memory access stream as if it were a fat 512bit wide static ram running at 1/8 the DDR_CK clock frequency.  (This means programming a 3D engine which works in multiple chunks of 512bits)

Though, Nockieboy's skills in HDL and software architecture will need some serious planning and foresight to take full use of this setup, but for simple stuff, you could conceivably render Quake I/II in real-time with a single laptop 1.5GHz, dual-rank 64bit SODIMM module.  Or, ~ Sony PS2 territory.

However, I think you will need to go from a Z80 to a >100 MHz 68060 with FPU to handle the game mechanics.
« Last Edit: December 30, 2022, 12:17:19 pm by BrianHG »
 

Offline Miti

  • Super Contributor
  • ***
  • Posts: 1357
  • Country: ca
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #27 on: December 30, 2022, 12:00:59 pm »

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.

Those modules are amazing but are a nightmare to solder if you don’t have a proper stencil, pick and place machine and an x-ray machine to see what’s underneath. Please be aware.

I've downloaded KiCAD 6 and see virtually nothing has changed.  I just don't have time to wade through padded-out video tutorials (all people seem to make these days to attract the YouTube algorithm) on how to do basic things like set up multiple schematics etc. when I could be launching straight into parts selection and wiring them up in a schematic in EasyEDA.  It helps that I've already got schematics for all the IO etc. done already.  All I really need to do is design the power supplies, wire up the FPGA's IOs and configuration and I can move on to PCB design.

I'm going to stick with EasyEDA for these PCB designs as it'll take me long enough to complete them on an EDA I'm familiar with, let alone one I need to learn how to use.  Once it's done, I'll see about transferring the schematics and PCBs to KiCAD, if the interest is out there for it.  Or I might see if I can progress both alongside each other.  Depends on a lot.  Change of job role coming up in February which means the amount of time I have to do any of this is really hard to tell at the moment.

Maybe I'll be forced to switch to it if there's a killer feature I need for this project that EasyEDA doesn't do but KiCAD does - we'll have to wait and see.


It’s interesting how different people go through the same set of emotions when it’s about change and learning new things. I tried several times in the past to switch from Eagle to Kicad, after being an Eagle fan boy for… ever. Once I found the patience and the willing to sit and understand what and how Kikad is doing things and considering the fact that it is free and reliable, I would not go back to Eagle even if Autodesk would stop being dickheads with the licensing model. We all go through the same emotional phases of change apparently.

https://insights.lamarsh.com/hs-fs/hubfs/Kubler-Ross-Model.png?width=1500&name=Kubler-Ross-Model.png
« Last Edit: December 30, 2022, 12:02:47 pm by Miti »
Fear does not stop death, it stops life.
 

Online BrianHG

  • Super Contributor
  • ***
  • Posts: 8139
  • Country: ca
    • LinkedIn
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #28 on: December 30, 2022, 12:13:00 pm »
I've downloaded KiCAD 6 and see virtually nothing has changed.  I just don't have time to wade through padded-out video tutorials (all people seem to make these days to attract the YouTube algorithm) on how to do basic things like set up multiple schematics etc. when I could be launching straight into parts selection and wiring them up in a schematic in EasyEDA.  It helps that I've already got schematics for all the IO etc. done already.  All I really need to do is design the power supplies, wire up the FPGA's IOs and configuration and I can move on to PCB design.

I'm going to stick with EasyEDA for these PCB designs as it'll take me long enough to complete them on an EDA I'm familiar with, let alone one I need to learn how to use.  Once it's done, I'll see about transferring the schematics and PCBs to KiCAD, if the interest is out there for it.  Or I might see if I can progress both alongside each other.  Depends on a lot.  Change of job role coming up in February which means the amount of time I have to do any of this is really hard to tell at the moment.

Maybe I'll be forced to switch to it if there's a killer feature I need for this project that EasyEDA doesn't do but KiCAD does - we'll have to wait and see.


It’s interesting how different people go through the same set of emotions when it’s about change and learning new things. I tried several times in the past to switch from Eagle to Kicad, after being an Eagle fan boy for… ever. Once I found the patience and the willing to sit and understand what and how Kikad is doing things and considering the fact that it is free and reliable, I would not go back to Eagle even if Autodesk would stop being dickheads with the licensing model. We all go through the same emotional phases of change apparently.

https://insights.lamarsh.com/hs-fs/hubfs/Kubler-Ross-Model.png?width=1500&name=Kubler-Ross-Model.png

Before I started with Protel 98/99/99se (now called Altium), I was using 'Advanced PCB' on my Amiga 3000/4000.  You wouldn't believe the s...t I went through as the Advance PCB has some beautiful automated tools and the time I invested over the years learning it's ins and outs.  I was lucky to find at the time a Protel User group where we all helped each other out and it took months, but I learned away and became an avid Protel user.

I watched videos from Dave and others playing with the latest Kicad on youtube.  I looked over the latest Kicad features on their website and I can firmly say for a public domain PCB tool, it has really matured and worth the effort to learn if you will be creating a public domain PCB.  It is recognized enough and has a large enough community of users where I feel comfortable recommending it and not worrying that you will be left out in the cold with an impossible issue if you use it even for a relatively complex 12 layer PCB.  If you are making a PCB for sale or commercial applications as professional work, then I would say go to Altium (also need to buy a license), but this is not the case here.
 

Offline Miti

  • Super Contributor
  • ***
  • Posts: 1357
  • Country: ca
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #29 on: December 30, 2022, 12:48:12 pm »
I watched videos from Dave and others playing with the latest Kicad on youtube.  I looked over the latest Kicad features on their website and I can firmly say for a public domain PCB tool, it has really matured and worth the effort to learn if you will be creating a public domain PCB.  It is recognized enough and has a large enough community of users where I feel comfortable recommending it and not worrying that you will be left out in the cold with an impossible issue if you use it even for a relatively complex 12 layer PCB.  If you are making a PCB for sale or commercial applications as professional work, then I would say go to Altium (also need to buy a license), but this is not the case here.

I work for a contract manufacturer and we get all kind of CAD files from our customers. After learning Kicad and making few boards with it I can say this with confidence: More than 90% of the professional, commercial boards that we assemble could be made with Kicad, and I think that's a conservative number.
Fear does not stop death, it stops life.
 

Offline nockieboyTopic starter

  • Super Contributor
  • ***
  • Posts: 1812
  • Country: england
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #30 on: December 30, 2022, 01:32:49 pm »
If it's any consolation, I'm not designing the schematics and assigning I/O 'blind'.  I'm using reference design(s) wherever possible - I've not found a lot on the XC7A100T unfortunately (no full schematics, anyway), but I've got some reference material I'm using based on the AC7100B board.  It uses two DDR3 chips and includes their pin assignments, so I'm hoping that mirroring those assignments will avoid a lot of the pitfalls that you've mentioned re: pin selection.  There's no detailed PCB drawings unfortunately, so routing two 16-bit datapaths will still be on me.
Don't do this, especially using random chinese board as a reference is not the greatest idea. Instead, get Vivado/Vitis set up and come up with your own, and odds are you are going to change it yet again when you will do routing, which will need to be verified again.
But before you do any of that, come up with an exact  list of stuff you want connected to the FPGA to do some planning, and so you will know which I/O interfaces you will need to implement.

Oh? I figured following an existing working schematic, I couldn't go too far wrong. :-//  I'm installing Vivado via the unified installer as we speak.  Just hoping the simulation side of things isn't too different from what I've been using - I really need to get a grip of simulation. :o

I understand your desire to rush to PCB design, but trust me, the time spent planning is the time well spent as it might ultimately save you a bunch of money on PCB respins and redesigns.

I know, I can be a little hot-headed and want to rush in to the fun stuff. ;D  Thankfully you guys are here to reign me in a little!

32 bit DDR3 layout might be the hardest one, but certainly not the fastest one. In your case HDMI will probably be the fastest one (beyond GTPs). As per official specs any regular I/O can go up to 1.25 Gbps per line, but in reality I've never seen an FPGA device that is not capable of doing 1080p@60 at 1.45 Gpbs per differential line. These are certainly faster than 400 MHz DDR3 signals, so don't get too caught up with DDR3 being the biggest obstacle. It might seem that way on a first glance, but it doesn't mean that it actually is. I know DDR3 looks intimidating, trust me I felt the same way back when I was about to embark on my very first one, but it might very well be simply a red herring with real complexity being elsewhere.

Good point.  My inexperience showing through again, not really understanding the relative speeds of all these different protocols.  To me though, DDR3 is a black box and although I tried routing to a PSRAM (I think it was) aaaages ago, I needed your help in finishing that.  And that's nowhere near as complex as this project will be.  I have the vaguest understanding of trace impedance and impedance-matching from the very limited work I've done with USB on these various projects, but on the scale of a 32-bit bus on a 6- (or more!) layer board... :scared:

GTP are multi-gigabit transceivers and are in my opinion the most exciting feature of these devices, so I would absolutely recommend you to route them to the high-speed connectors and wire up their power supplies. The PDS for GTPs is a bit involed because it requires two ultra-clean power rails (<10 mVpp ripple is no joke!) at 1 and 1.2 V nominal, and the signal routing needs to be very careful as these lines can potentially run at over 6 Gbps, but that is precisely what makes them so exciting. That is my opinion of course and you are free to ignore it, but I think you will miss out a lot if you skip that part.

Okay, well I can't think what I would use GTPs for, so not including them on the core board would remove the need for two additional power supplies and free up the PCB real-estate they would otherwise consume.  The downside is that the core board wouldn't have GTPs and there'd be no option for their use on a carrier board as a result.  If I include them on the core board, I don't have to populate the power supplies or use them on the carrier board I suppose, but someone else might want to, so I really should include them I guess. :)


Though, Nockieboy's skills in HDL and software architecture will need some serious planning and foresight to take full use of this setup, but for simple stuff, you could conceivably render Quake I/II in real-time with a single laptop 1.5GHz, dual-rank 64bit SODIMM module.  Or, ~ Sony PS2 territory.

However, I think you will need to go from a Z80 to a >100 MHz 68060 with FPU to handle the game mechanics.

Yeah, my HDL skills aren't great, though they've come on leaps and bounds since I first learned about FPGAs...  The CPU is on the list for an upgrade.  Even the limited work I've been able to do on software for the uCOM is highlighting some annoying limitations with the Z80, I have been outlining plans for a 68020 version, but that's a long way off yet.  Maybe I should stretch the design to an 030 or 040 clocked at 50MHz or more..


Those modules are amazing but are a nightmare to solder if you don’t have a proper stencil, pick and place machine and an x-ray machine to see what’s underneath. Please be aware.

I'm looking at using these for the power supplies instead: TPS62823.

It’s interesting how different people go through the same set of emotions when it’s about change and learning new things. I tried several times in the past to switch from Eagle to Kicad, after being an Eagle fan boy for… ever. Once I found the patience and the willing to sit and understand what and how Kikad is doing things and considering the fact that it is free and reliable, I would not go back to Eagle even if Autodesk would stop being dickheads with the licensing model. We all go through the same emotional phases of change apparently.

https://insights.lamarsh.com/hs-fs/hubfs/Kubler-Ross-Model.png?width=1500&name=Kubler-Ross-Model.png

Yeah, I'm definitely somewhere between anger and depression with KiCAD at the moment.  Wait 'til I start using Vivado! :palm:


Before I started with Protel 98/99/99se (now called Altium), I was using 'Advanced PCB' on my Amiga 3000/4000.

Would have given my left leg for an A3000 or 4000 back in the day.  Loved my A1200, and A500 Plus before it.

I watched videos from Dave and others playing with the latest Kicad on youtube.  I looked over the latest Kicad features on their website and I can firmly say for a public domain PCB tool, it has really matured and worth the effort to learn if you will be creating a public domain PCB.  It is recognized enough and has a large enough community of users where I feel comfortable recommending it and not worrying that you will be left out in the cold with an impossible issue if you use it even for a relatively complex 12 layer PCB.
I work for a contract manufacturer and we get all kind of CAD files from our customers. After learning Kicad and making few boards with it I can say this with confidence: More than 90% of the professional, commercial boards that we assemble could be made with Kicad, and I think that's a conservative number.

Yeah okay, I'm feeling the pro-KiCAD vibe here and will endeavour to put some more effort into understanding and using it.  You're all making a very good argument for it. ;)  You know, EasyEDA is free as well, and makes ordering the PCBs as easy as a couple of clicks of the mouse, no messing around with BOMs and all the other complexity KiCAD has. :-//
« Last Edit: December 30, 2022, 01:36:25 pm by nockieboy »
 

Online BrianHG

  • Super Contributor
  • ***
  • Posts: 8139
  • Country: ca
    • LinkedIn
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #31 on: December 30, 2022, 02:00:33 pm »
Before I started with Protel 98/99/99se (now called Altium), I was using 'Advanced PCB' on my Amiga 3000/4000.

Would have given my left leg for an A3000 or 4000 back in the day.  Loved my A1200, and A500 Plus before it.

I had one of the first A3000 and A4000 here in Montreal.  Only the Universities got a few A3000s before me.

See the attached 8 layer Excalibur 040 accelerator PCB I made for RCS Management on an A4000 for an A4000.

Also see my 4 layer Turbo AGA which I never released.  I managed to accelerate Amiga's custom chipset from 14.3/28.6 MHz to a whopping 27/54MHz.  The A4000 flew absurdly fast and now had 54Khz audio plus a floppy drive which was almost twice as fast at reading.  Too bad the system clock was too fast, you needed a true multiscan monitor, but, we now had authentic native 800x600, 1024x768 and 1280x1024 laced video modes.  (Sadly, writing corrupted the discs...  At the time, I only managed to patch the serial port which also went absurdly smooth.)

(PCB screenshots only show the top and bottom layers plus power & gnd)
 

Offline nockieboyTopic starter

  • Super Contributor
  • ***
  • Posts: 1812
  • Country: england
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #32 on: December 30, 2022, 03:25:20 pm »
Would have given my left leg for an A3000 or 4000 back in the day.  Loved my A1200, and A500 Plus before it.

I had one of the first A3000 and A4000 here in Montreal.  Only the Universities got a few A3000s before me.

Was that personally, or as part of your job?

See the attached 8 layer Excalibur 040 accelerator PCB I made for RCS Management on an A4000 for an A4000.

Also see my 4 layer Turbo AGA which I never released.  I managed to accelerate Amiga's custom chipset from 14.3/28.6 MHz to a whopping 27/54MHz.  The A4000 flew absurdly fast and now had 54Khz audio plus a floppy drive which was almost twice as fast at reading.  Too bad the system clock was too fast, you needed a true multiscan monitor, but, we now had authentic native 800x600, 1024x768 and 1280x1024 laced video modes.  (Sadly, writing corrupted the discs...  At the time, I only managed to patch the serial port which also went absurdly smooth.)

(PCB screenshots only show the top and bottom layers plus power & gnd)

Nice work. :-+  That's the sort of thing I longed to do as a kid with my Amstrad and Amigas, enhance them with add-ons or tweak their electronics to eek out some extra performance, but I didn't have the electronics knowledge I have now, thanks to the Internet.

The floppy was still able to read existing formats?  If I tried doubling the clock speed on my Amstrad, it would probably read and write at twice the density.

There's something about a PCB layout that I find almost mesmerising.  I hope I'm not the only one who can enjoy a good trace layout, especially if you've designed it yourself and know the problems you've faced getting that last trace to its destination. ^-^
 

Offline Miti

  • Super Contributor
  • ***
  • Posts: 1357
  • Country: ca
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #33 on: December 30, 2022, 04:44:20 pm »
There's something about a PCB layout that I find almost mesmerising.  I hope I'm not the only one who can enjoy a good trace layout, especially if you've designed it yourself and know the problems you've faced getting that last trace to its destination. ^-^

Amen to that!  I see PCB design as modern art. Some boards, you want to cover your eyes when you see them, some are on a par with a Picasso or Dali.  ;)
Fear does not stop death, it stops life.
 

Offline asmi

  • Super Contributor
  • ***
  • Posts: 2839
  • Country: ca
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #34 on: December 30, 2022, 05:31:11 pm »
Oh? I figured following an existing working schematic, I couldn't go too far wrong. :-// 
It's not that simple with FPGAs because pinout is partly driven by the kind of I/O logic you want to implement. Not to mention a lot of Chinese boards suffer from many issues like underpowered PDS and bad thermal design, and I don't want you accidentally "importing" those problems into your boards.

I'm installing Vivado via the unified installer as we speak.  Just hoping the simulation side of things isn't too different from what I've been using - I really need to get a grip of simulation. :o
If anything, it's more simple in Vivado, because it has a separation between "real" hardware HDL and simulation-only stuff, plus the simulator is integrated into IDE itself, while it still officially supports using external simulators if you choose to do so.

I know, I can be a little hot-headed and want to rush in to the fun stuff. ;D  Thankfully you guys are here to reign me in a little!
No worries, I'm more like you, which is why I've wasted a ton of money on dud PCBs due to stupid mistakes because "I just wanna build it already!!!" mentality |O You wouldn't believe how many times I found errors in my PCBs right after I sent it out to manufacturing and it was too late to change/cancel the order so I was waiting for boards knowing they are duds! That's why I've introduced some house rules for myself to slow things down, and recommend others to do the same. Delay of one day before your place an order is not going to matter to a hobbyist, but it often mean a ton because you can discover some problems with your PCB when you open it up on the next day with a fresh mind. And since we're now working with pricey stuff, taking it easy might just mean having one less revision of a PCB and saving you in the best case some of face palming once you discover the problem, or in the worst case some fireworks and smoke from expensive components. As you climb up the complexity ladder, the stuff you work with becomes progressively more expensive, so it's good to learn good habits from the get-go, or it can literally cost you quite a bit of money.

Good point.  My inexperience showing through again, not really understanding the relative speeds of all these different protocols.  To me though, DDR3 is a black box and although I tried routing to a PSRAM (I think it was) aaaages ago, I needed your help in finishing that.  And that's nowhere near as complex as this project will be.  I have the vaguest understanding of trace impedance and impedance-matching from the very limited work I've done with USB on these various projects, but on the scale of a 32-bit bus on a 6- (or more!) layer board... :scared:
That complexity is very overblown. All of that impedance stuff comes down to setting up a specific trace widths and spacings, so once you calculate the widths (it's usually different for different signal layers) you only need to remember to set it for any trace you are routing, and that's it. Routing DDR is a lot like playing chess - you need to think ahead in order to not route yourself into a corner, so as you route a trace, you need to think about how you can route it in a such a way as to be able to also route adjacent traces. I actually like it exactly because how methodical it is.

As for 6 or more layers - you seem to think that having more layers makes routing harder, but in reality it makes it easier because you have more signal layers and so more possibilities of how to route your signals! And the more layers you have, the easier it is to route! This is why nowadays I do 4 layer boards even for simple designs - because my time is worth more than the cost differential between manufacturing a 2 layer and a 4 layer PCB.

Okay, well I can't think what I would use GTPs for, so not including them on the core board would remove the need for two additional power supplies and free up the PCB real-estate they would otherwise consume.  The downside is that the core board wouldn't have GTPs and there'd be no option for their use on a carrier board as a result.  If I include them on the core board, I don't have to populate the power supplies or use them on the carrier board I suppose, but someone else might want to, so I really should include them I guess. :)
Oh, I thought I already gave you some examples. Here are some I can think of right off top of my head:
1. Want to have access to a hard drive? No problem - you can implement a SATA interface using GTP and access any SATA HDD or SSD.
2. Want to work with something even faster and physically smaller? No problemo, you can implement an M.2 port and connect NVMe SSD to it.
3. Maybe you want to add ability to output something more modern than 1080p@60 - like 1080p@120, or 1440p@144, or even 2160p@120 (that's 4K resolution)? Again, GTPs come to a rescue - both HDMI 2.0 and DisplayPort 1.4 can be implemented (you will need some external circuitry for HDMI 2.0, but that's not the point).
4. Eventually you are going to run out of logic inside A100T (and you only need to look at what you already went through to see that it's bound to happen as some point). So you will need to somehow split your logic among two (three, four, ...) FPGAs. But how do you connect them to give you a high-bandwidth link such that this interconnect won't hinder your design? How about having to route just four differential traces and having almost as much bandwidth as your existing 16 bit wide DDR3 interface has? Or even going all way in and implementing a PCI Express root port with a bunch of PCI Express slots where you can plug in other FPGA boards, or even some off-the-shelf cards like USB 3 interface adapter? GTPs make all of that possible.
That list can go on and on. 2.5G Ethernet? Sure! Fiber connection? Here you go! 4 1G Ethernet ports using just one pair of differential traces (QSGMII)? Again, not a problem! So, yeah, unless you are really in a pickle, not routing out GTPs is a biiig mistake in my opinion. It doesn't mean you have to use them right away - hence my suggestion for module/baseboard split. Respining or even redesigning baseboard is likely going to be much cheaper than respining the whole FPGA board.

Yeah, my HDL skills aren't great, though they've come on leaps and bounds since I first learned about FPGAs...  The CPU is on the list for an upgrade.  Even the limited work I've been able to do on software for the uCOM is highlighting some annoying limitations with the Z80, I have been outlining plans for a 68020 version, but that's a long way off yet.  Maybe I should stretch the design to an 030 or 040 clocked at 50MHz or more..
Vivado ships with a free Microblaze CPU (which is heavily inspured by MIPS microarchitecture), together with a software toolchain (Vitis), source code-level line-by-line debugging and everything else you expect to have in a modern software development IDE. And it can be configured so that it can run Linux. Also it's quite small (in terms of resources) so you can even put multiple of them to make a multi-core design.

Of course nothing prevents you from using any other CPU cores. As long as you have full HDL code for it, you can just plug it in.

I'm looking at using these for the power supplies instead: TPS62823.
Be careful with TI parts, as someone who preferentially used their parts in the past I can tell you that their inventory is VERY sketchy nowadays. Soldering LGA modules is not a problem, no x-ray is required unless you plan to do a mass production, a hot air gun is all that required. And since a lot of these modules are designed to work at very high temperature (125°C is not uncommon), you need to try really hard to burn them down with a hot air gun, especially if you use leaded solder.

Yeah, I'm definitely somewhere between anger and depression with KiCAD at the moment.  Wait 'til I start using Vivado! :palm:

Yeah okay, I'm feeling the pro-KiCAD vibe here and will endeavour to put some more effort into understanding and using it.  You're all making a very good argument for it. ;)  You know, EasyEDA is free as well, and makes ordering the PCBs as easy as a couple of clicks of the mouse, no messing around with BOMs and all the other complexity KiCAD has. :-//
My problem with EasyEDA is that it's web-based, and consequently slow. I still remember how painful it was to route like 10 traces, now I shudder to think what it's gonna be like routing close to a hundred of them! KiCAD on the other hand is a desktop application, and so it can take advantage of the GPU to do the heavy lifting (ooh the irony of using a power of GPU to design a GPU! ;D ), that's why it has no problems displaying very complex PCBs.
Also I'm not exactly sure how versioning works in EasyEDA, while KiCAD uses text-based files which can be managed by git for example.

There's something about a PCB layout that I find almost mesmerising.  I hope I'm not the only one who can enjoy a good trace layout, especially if you've designed it yourself and know the problems you've faced getting that last trace to its destination. ^-^
Don't worry - you will get it all with this design! There is going to be plenty of routing-tearing down cycles. Make sure you use a version control so that you can always go back to previous state - because you will need to go back.

Offline nockieboyTopic starter

  • Super Contributor
  • ***
  • Posts: 1812
  • Country: england
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #35 on: December 30, 2022, 08:37:19 pm »
No worries, I'm more like you, which is why I've wasted a ton of money on dud PCBs due to stupid mistakes because "I just wanna build it already!!!" mentality |O You wouldn't believe how many times I found errors in my PCBs right after I sent it out to manufacturing and it was too late to change/cancel the order so I was waiting for boards knowing they are duds! That's why I've introduced some house rules for myself to slow things down, and recommend others to do the same. Delay of one day before your place an order is not going to matter to a hobbyist, but it often mean a ton because you can discover some problems with your PCB when you open it up on the next day with a fresh mind. And since we're now working with pricey stuff, taking it easy might just mean having one less revision of a PCB and saving you in the best case some of face palming once you discover the problem, or in the worst case some fireworks and smoke from expensive components. As you climb up the complexity ladder, the stuff you work with becomes progressively more expensive, so it's good to learn good habits from the get-go, or it can literally cost you quite a bit of money.

I've been lucky so far with my board designs, only having one or at most two occasions where I've spotted a mistake after making the order.  Fortunately on both occasions it was rectifiable with some fine wire or breaking a trace and solder-bridging another one.  That's not something I want to be doing with a board costing me ten times as much... and any errors on internal layers won't be fixable at all!

As for 6 or more layers - you seem to think that having more layers makes routing harder, but in reality it makes it easier because you have more signal layers and so more possibilities of how to route your signals! And the more layers you have, the easier it is to route! This is why nowadays I do 4 layer boards even for simple designs - because my time is worth more than the cost differential between manufacturing a 2 layer and a 4 layer PCB.

Yes, you're right, I don't know why I get anxious about more layers.  I guess in my mind it means more complexity, more things to go wrong. ;)

Oh, I thought I already gave you some examples. Here are some I can think of right off top of my head:
1. Want to have access to a hard drive? No problem - you can implement a SATA interface using GTP and access any SATA HDD or SSD.
2. Want to work with something even faster and physically smaller? No problemo, you can implement an M.2 port and connect NVMe SSD to it.
3. Maybe you want to add ability to output something more modern than 1080p@60 - like 1080p@120, or 1440p@144, or even 2160p@120 (that's 4K resolution)? Again, GTPs come to a rescue - both HDMI 2.0 and DisplayPort 1.4 can be implemented (you will need some external circuitry for HDMI 2.0, but that's not the point).
4. Eventually you are going to run out of logic inside A100T (and you only need to look at what you already went through to see that it's bound to happen as some point). So you will need to somehow split your logic among two (three, four, ...) FPGAs. But how do you connect them to give you a high-bandwidth link such that this interconnect won't hinder your design? How about having to route just four differential traces and having almost as much bandwidth as your existing 16 bit wide DDR3 interface has? Or even going all way in and implementing a PCI Express root port with a bunch of PCI Express slots where you can plug in other FPGA boards, or even some off-the-shelf cards like USB 3 interface adapter? GTPs make all of that possible.
That list can go on and on. 2.5G Ethernet? Sure! Fiber connection? Here you go! 4 1G Ethernet ports using just one pair of differential traces (QSGMII)? Again, not a problem! So, yeah, unless you are really in a pickle, not routing out GTPs is a biiig mistake in my opinion. It doesn't mean you have to use them right away - hence my suggestion for module/baseboard split. Respining or even redesigning baseboard is likely going to be much cheaper than respining the whole FPGA board.

Sold. I'll make sure to include GTPs then.  And to read up on them. ;)

Yeah, my HDL skills aren't great, though they've come on leaps and bounds since I first learned about FPGAs...  The CPU is on the list for an upgrade.  Even the limited work I've been able to do on software for the uCOM is highlighting some annoying limitations with the Z80, I have been outlining plans for a 68020 version, but that's a long way off yet.  Maybe I should stretch the design to an 030 or 040 clocked at 50MHz or more..
Vivado ships with a free Microblaze CPU (which is heavily inspured by MIPS microarchitecture), together with a software toolchain (Vitis), source code-level line-by-line debugging and everything else you expect to have in a modern software development IDE. And it can be configured so that it can run Linux. Also it's quite small (in terms of resources) so you can even put multiple of them to make a multi-core design.

Of course nothing prevents you from using any other CPU cores. As long as you have full HDL code for it, you can just plug it in.

There's something about designing and building it myself using genuine discrete components that I don't want to lose in all this FPGA excitement, but you're right - I could just use a CPU IP core in the FPGA itself (especially with all the extra space) and it'd run at ludicrous speeds and save me significant costs in time and money.

I'm looking at using these for the power supplies instead: TPS62823.
Be careful with TI parts, as someone who preferentially used their parts in the past I can tell you that their inventory is VERY sketchy nowadays. Soldering LGA modules is not a problem, no x-ray is required unless you plan to do a mass production, a hot air gun is all that required. And since a lot of these modules are designed to work at very high temperature (125°C is not uncommon), you need to try really hard to burn them down with a hot air gun, especially if you use leaded solder.

The reason I'm looking at using those TI parts is purely because they're available and in stock - and a good price.  I've been using low-temp solder for all my recent PCB work - I think it's about 180 degrees Celsius (without going to look).  Obviously I'll have to work with whatever's on the bottom of any BGA packages I'm soldering, but if I use a solder stencil I can always add a thin layer of low-temp solder to help ease the melting point a little lower.

My problem with EasyEDA is that it's web-based, and consequently slow. I still remember how painful it was to route like 10 traces, now I shudder to think what it's gonna be like routing close to a hundred of them!

I've had no issues with speed with EasyEDA?  The auto-router was very hit and miss and not as good as DipTrace, but I haven't used auto-route since before the first GPU card I made, when BrianHG shamed me into routing it by hand and I discovered the joys of a good layout. ;D  My experience with EasyEDA has left me VERY reticent to want to try anything else.

KiCAD on the other hand is a desktop application, and so it can take advantage of the GPU to do the heavy lifting (ooh the irony of using a power of GPU to design a GPU! ;D ), that's why it has no problems displaying very complex PCBs.
Also I'm not exactly sure how versioning works in EasyEDA, while KiCAD uses text-based files which can be managed by git for example.

I may not be using EasyEDA properly, but as far as versioning goes I just clone the project and carry on with the changes.  Not as flexible as git versioning, admittedly, but has served me well so far.

Talking of KiCAD, I've just tried to make a start on the new PCB schematic project and two things hit me immediately.  The first (a positive!) is that I can use a 'dark mode' theme, which is excellent when doing schematics and not something I can do with EasyEDA.  The second (a negative), is that I'm stuck at a blank schematic.  If I'm going to re-create the existing (incomplete) project from EasyEDA, I need to create 9 schematic pages - the first being the title page - but when I look up how to do a 'flat' schematic, all I get back is that hierarchical schematics are (somehow) better for everything and you should use those as KiCAD does them far better.

I can see why hierarchical schematics would be useful, if you're repeating the same sub-circuit constantly, but for what I'm doing they're completely pointless.  I want FPGA config on one schematic, DDR on another, power supplies on another, etc.  I don't want to create a hierarchical schematic with a box on the main page with potentially over 200 signals coming out of it.  I just want nine different schematics that share global labels. |O

There's something about a PCB layout that I find almost mesmerising.  I hope I'm not the only one who can enjoy a good trace layout, especially if you've designed it yourself and know the problems you've faced getting that last trace to its destination. ^-^
Don't worry - you will get it all with this design! There is going to be plenty of routing-tearing down cycles. Make sure you use a version control so that you can always go back to previous state - because you will need to go back.

Another reason to stick at KiCAD I suppose, but the issue mentioned above is a real problem for me.
« Last Edit: December 30, 2022, 08:39:46 pm by nockieboy »
 

Offline SiliconWizard

  • Super Contributor
  • ***
  • Posts: 15441
  • Country: fr
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #36 on: December 30, 2022, 09:03:42 pm »
I can see why hierarchical schematics would be useful, if you're repeating the same sub-circuit constantly, but for what I'm doing they're completely pointless.  I want FPGA config on one schematic, DDR on another, power supplies on another, etc.  I don't want to create a hierarchical schematic with a box on the main page with potentially over 200 signals coming out of it.  I just want nine different schematics that share global labels. |O

You can define global labels in KiCad and they'll be shared across all sheets.
 
The following users thanked this post: nockieboy

Offline asmi

  • Super Contributor
  • ***
  • Posts: 2839
  • Country: ca
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #37 on: December 30, 2022, 09:44:21 pm »
The reason I'm looking at using those TI parts is purely because they're available and in stock - and a good price.  I've been using low-temp solder for all my recent PCB work - I think it's about 180 degrees Celsius (without going to look).  Obviously I'll have to work with whatever's on the bottom of any BGA packages I'm soldering, but if I use a solder stencil I can always add a thin layer of low-temp solder to help ease the melting point a little lower.
I personally don't trust power parts which don't have a thermal pad :D
I've recently found this part: https://www.monolithicpower.com/en/mpm3833c.html It's quite cheap, can be used everywhere (good for BOM consolidation), and is low-ripple (important for sensitive analog circuits like GTPs, PLL, DAC/ADC, etc.). I plan to buy a bunch of them as I'm sure I'll find a good use for them. As for the main Vccint rail, so far I'm leaning towards this part: https://www.monolithicpower.com/mpm3683-7.html It's not quite as cheap, but I like how compact it is.

180°C is about the melting temperature of a regular leaded solder, so I'm not exactly sure what's so "low temperature" about it. When I hear "low temp" I usually think of something like bismuth or indium alloys which melt close to the water boiling temperature (100°C).

I've had no issues with speed with EasyEDA?  The auto-router was very hit and miss and not as good as DipTrace, but I haven't used auto-route since before the first GPU card I made, when BrianHG shamed me into routing it by hand and I discovered the joys of a good layout. ;D  My experience with EasyEDA has left me VERY reticent to want to try anything else.
Maybe because you have nothing to compare it against? Have you ever done a somewhat complex design using something other than EasyEDA? I clearly remember that as soon as I assigned colors to traces, it all ground to a halt, and even their "desktop" version (which is the same Javascript, just running over a local sandbox). And I can't work without such coloring, because it makes it much easier to see at a glance what needs to go there, especially when you work with big BGAs with hundreds of traces coming out of them.

Talking of KiCAD, I've just tried to make a start on the new PCB schematic project and two things hit me immediately.  The first (a positive!) is that I can use a 'dark mode' theme, which is excellent when doing schematics and not something I can do with EasyEDA.  The second (a negative), is that I'm stuck at a blank schematic.  If I'm going to re-create the existing (incomplete) project from EasyEDA, I need to create 9 schematic pages - the first being the title page - but when I look up how to do a 'flat' schematic, all I get back is that hierarchical schematics are (somehow) better for everything and you should use those as KiCAD does them far better.

I can see why hierarchical schematics would be useful, if you're repeating the same sub-circuit constantly, but for what I'm doing they're completely pointless.  I want FPGA config on one schematic, DDR on another, power supplies on another, etc.  I don't want to create a hierarchical schematic with a box on the main page with potentially over 200 signals coming out of it.  I just want nine different schematics that share global labels. |O
It's absolutely possible to design a flat multipage schematics using KiCAD, here is an example from the project in my signature: https://github.com/asmi84/kicad-projects/raw/master/S7_Min/S7_Min.pdf No need for wires sticking out of anything. Most FPGA or SoC projects in KiCAD are done fundamentally the same way I've done it - others just tend to put more effort itno making the first page to not look as empty as mine is, but it's always a good idea to have some sort of title or index page for complex designs which would provide an overview of what's where - in my case I just felt page names are descriptive enough, but they obviously weren't, which became clear once others started looking at it ::)

Offline asmi

  • Super Contributor
  • ***
  • Posts: 2839
  • Country: ca
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #38 on: December 30, 2022, 09:46:24 pm »
You can define global labels in KiCad and they'll be shared across all sheets.
I still wish there would be a toggle switch somewhere in project settings to make all labels global, like it's done in many other eCADs...

Online BrianHG

  • Super Contributor
  • ***
  • Posts: 8139
  • Country: ca
    • LinkedIn
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #39 on: December 30, 2022, 10:48:50 pm »
Nice work. :-+  That's the sort of thing I longed to do as a kid with my Amstrad and Amigas, enhance them with add-ons or tweak their electronics to eek out some extra performance, but I didn't have the electronics knowledge I have now, thanks to the Internet.

The floppy was still able to read existing formats?  If I tried doubling the clock speed on my Amstrad, it would probably read and write at twice the density.

There's something about a PCB layout that I find almost mesmerising.  I hope I'm not the only one who can enjoy a good trace layout, especially if you've designed it yourself and know the problems you've faced getting that last trace to its destination. ^-^

For my work, I was first contracted by RCS management to fix their overheating problem with their Fusion 40 for the Amiga 2000.  The Excalibur was still designed by them, but, I was contracted to do the PCB.  The prize was the A4000 itself.  I was never employed by them.

My turbo AGA had a clock wire which went to the floppy drive's motor crystal.  It sped up the floppy drive in tandem with the Amiga chip set.  So, loading from floppy was like watching and listening to a video running at 2x speed.  Though, game speed and pitch were also all off.  Thanks to the Amiga mouse being a parallel interface, the 100Hz refresh rate made it's hand-to-screen connection time beyond amazing.  (I still need to try the newer 1kHz sample rate gaming mouses on a PC to compare....)

Though, because of Commodore's half speed motor trick for HD 1.7mb floppies since their Paula was speed limited, with my Turbo AGA, writing to HD floppies still worked unlike 880kb mode where just reading worked fine as the disk speed was too fast for the erase and write head.

« Last Edit: December 30, 2022, 11:48:24 pm by BrianHG »
 

Offline miken

  • Regular Contributor
  • *
  • Posts: 102
  • Country: us
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #40 on: December 30, 2022, 11:29:57 pm »
Just another vote for KiCAD... Having used a whole bunch of different PCB EDA tools in my career, I'll say that all tools have their annoyances, some more than others. (OrCAD would crash often and sometimes corrupt the project. Xpedition was way too complex for its own good, and yet let odd things through DRC.) I'm perfectly happy using KiCAD for my home projects.

The lock-in from an existing design is real, though, and I totally understand the reluctance to re-do all that work. Maybe you could stay in EasyEDA for the motherboard, and adopt KiCAD for the daughtercard? It means you have to be especially careful about the interface though.

Philosophically speaking, designing an FPGA board or any complex PCB is a lot of bookkeeping, really. There's a lot of subfeatures and requirements that can bite you. So managing that complexity and being methodical is important.

Going back to earlier conversation, if you have the luxury of having (most) of an FPGA project to run through the tools, definitely do as much as you can. Most of the time, projects I've worked on have the HW done before the FPGA, and there's always some pin arrangement that's less than ideal but we have to live with because the HW already shipped.
 

Offline nockieboyTopic starter

  • Super Contributor
  • ***
  • Posts: 1812
  • Country: england
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #41 on: December 31, 2022, 09:49:20 am »
I personally don't trust power parts which don't have a thermal pad :D
I've recently found this part: https://www.monolithicpower.com/en/mpm3833c.html It's quite cheap, can be used everywhere (good for BOM consolidation), and is low-ripple (important for sensitive analog circuits like GTPs, PLL, DAC/ADC, etc.). I plan to buy a bunch of them as I'm sure I'll find a good use for them. As for the main Vccint rail, so far I'm leaning towards this part: https://www.monolithicpower.com/mpm3683-7.html It's not quite as cheap, but I like how compact it is.

Those MPM3683s are around £7 per piece - a touch on the expensive side for what I want, if I'm honest.  The MPM3833s, however, are less than half that at around £3/piece - I'll look a little closer at these as an option once I start worrying about space on the PCB. :-+

180°C is about the melting temperature of a regular leaded solder, so I'm not exactly sure what's so "low temperature" about it. When I hear "low temp" I usually think of something like bismuth or indium alloys which melt close to the water boiling temperature (100°C).

Yeah, maybe it's a typo or I've just got normal solder paste.  I think it should say 138 degrees, not 183 - I've had no issues with it, to be honest.  Just added a little extra flux to the mix for some of the finer SMD work on QFNs etc.  But the fact I'm even questioning it means it's not the best quality and isn't something I'll be using for this project! ;)  I'd be worried using a solder that melts as low as 100 degrees C, specially on power parts and industrial-grade chips.  Wouldn't want them dropping off the board under high load! :o

Maybe because you have nothing to compare it against? Have you ever done a somewhat complex design using something other than EasyEDA?

I've only ever used DipTrace and EasyEDA, so my basis for comparison is rather limited - and DipTrace was limited to 500 pin designs due to the free licence, so it was only simple boards I could design on it (plus I was learning, so it hardly impinged my skills for the first few boards).  In fact, DipTrace's pin count limit was one of the reasons I went with a modular computer instead of a single-board design.

I clearly remember that as soon as I assigned colors to traces, it all ground to a halt, and even their "desktop" version (which is the same Javascript, just running over a local sandbox). And I can't work without such coloring, because it makes it much easier to see at a glance what needs to go there, especially when you work with big BGAs with hundreds of traces coming out of them.

That's the one thing I've never done - assigning colours to traces.  That must explain our differing experiences of EasyEDA. ???

It's absolutely possible to design a flat multipage schematics using KiCAD, here is an example from the project in my signature: https://github.com/asmi84/kicad-projects/raw/master/S7_Min/S7_Min.pdf No need for wires sticking out of anything. Most FPGA or SoC projects in KiCAD are done fundamentally the same way I've done it - others just tend to put more effort itno making the first page to not look as empty as mine is, but it's always a good idea to have some sort of title or index page for complex designs which would provide an overview of what's where - in my case I just felt page names are descriptive enough, but they obviously weren't, which became clear once others started looking at it ::)

I thought there must be a simple solution, but when you keep getting hierarchical pages shoved at you on every answer you find on Google... :rant:
 

Offline nockieboyTopic starter

  • Super Contributor
  • ***
  • Posts: 1812
  • Country: england
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #42 on: December 31, 2022, 10:03:35 am »
For my work, I was first contracted by RCS management to fix their overheating problem with their Fusion 40 for the Amiga 2000.  The Excalibur was still designed by them, but, I was contracted to do the PCB.  The prize was the A4000 itself.  I was never employed by them.

My turbo AGA had a clock wire which went to the floppy drive's motor crystal.  It sped up the floppy drive in tandem with the Amiga chip set.  So, loading from floppy was like watching and listening to a video running at 2x speed.  Though, game speed and pitch were also all off.  Thanks to the Amiga mouse being a parallel interface, the 100Hz refresh rate made it's hand-to-screen connection time beyond amazing.  (I still need to try the newer 1kHz sample rate gaming mouses on a PC to compare....)

Though, because of Commodore's half speed motor trick for HD 1.7mb floppies since their Paula was speed limited, with my Turbo AGA, writing to HD floppies still worked unlike 880kb mode where just reading worked fine as the disk speed was too fast for the erase and write head.

Did you use your Amigas for recreation as well?  How did you get the contract for the work?  You must have been pretty experienced in the field for them to choose you?

Just another vote for KiCAD... Having used a whole bunch of different PCB EDA tools in my career, I'll say that all tools have their annoyances, some more than others. (OrCAD would crash often and sometimes corrupt the project. Xpedition was way too complex for its own good, and yet let odd things through DRC.) I'm perfectly happy using KiCAD for my home projects.

The lock-in from an existing design is real, though, and I totally understand the reluctance to re-do all that work. Maybe you could stay in EasyEDA for the motherboard, and adopt KiCAD for the daughtercard? It means you have to be especially careful about the interface though.

Philosophically speaking, designing an FPGA board or any complex PCB is a lot of bookkeeping, really. There's a lot of subfeatures and requirements that can bite you. So managing that complexity and being methodical is important.

Going back to earlier conversation, if you have the luxury of having (most) of an FPGA project to run through the tools, definitely do as much as you can. Most of the time, projects I've worked on have the HW done before the FPGA, and there's always some pin arrangement that's less than ideal but we have to live with because the HW already shipped.

I'm not going to gripe any further about KiCAD.  Well, at least I'll try not to. ;)  I guarantee, however, that when I get to completing the schematics and have a million symbols to link to footprints, I'll have a rant at that point. :o
 

Online BrianHG

  • Super Contributor
  • ***
  • Posts: 8139
  • Country: ca
    • LinkedIn
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #43 on: December 31, 2022, 10:19:39 am »
For my work, I was first contracted by RCS management to fix their overheating problem with their Fusion 40 for the Amiga 2000.  The Excalibur was still designed by them, but, I was contracted to do the PCB.  The prize was the A4000 itself.  I was never employed by them.

My turbo AGA had a clock wire which went to the floppy drive's motor crystal.  It sped up the floppy drive in tandem with the Amiga chip set.  So, loading from floppy was like watching and listening to a video running at 2x speed.  Though, game speed and pitch were also all off.  Thanks to the Amiga mouse being a parallel interface, the 100Hz refresh rate made it's hand-to-screen connection time beyond amazing.  (I still need to try the newer 1kHz sample rate gaming mouses on a PC to compare....)

Though, because of Commodore's half speed motor trick for HD 1.7mb floppies since their Paula was speed limited, with my Turbo AGA, writing to HD floppies still worked unlike 880kb mode where just reading worked fine as the disk speed was too fast for the erase and write head.

Did you use your Amigas for recreation as well?  How did you get the contract for the work?  You must have been pretty experienced in the field for them to choose you?

A lot of Amiga gaming was done as well, but I was more interested in how to make the machine really compute and shine.

I started with my own high end audio digitizers which got recognized for their quality. (There were only a few stores which sold Amigas and since I demoed my digitizer at the local Amiga club, everyone knew me...)
RCS management had problems with their first revisions of their Amiga 2000 Fusion 40 overheating and crashing.  The Amiga community was small enough that not many here in Montreal with hardware engineering experience for Amiga existed at all, (I think I was the only other one...) so Suresh of RCS management heard my name through the grapevine and we met.  I solved the problem in a single all too simple swoop and we sort of attempted a few other projects together as I had my own private company.  (Basically it boiled down to luck...)
« Last Edit: December 31, 2022, 10:57:25 am by BrianHG »
 

Offline nockieboyTopic starter

  • Super Contributor
  • ***
  • Posts: 1812
  • Country: england
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #44 on: December 31, 2022, 11:44:53 am »
A lot of Amiga gaming was done as well, but I was more interested in how to make the machine really compute and shine.

I had Blitz Basic back in the day, wrote a few games with a friend but nothing that got further than our little Amiga club at school - I remember doing a 'Scorched Earth' clone.  Wish I had kept all my old Amiga stuff, especially the source code for those old games.  Life was moving very quickly at that point and I didn't have the time or resources (books weren't cheap!) to get into the hardware.

I started with my own high end audio digitizers which got recognized for their quality. (There were only a few stores which sold Amigas and since I demoed my digitizer at the local Amiga club, everyone knew me...)
RCS management had problems with their first revisions of their Amiga 2000 Fusion 40 overheating and crashing.  The Amiga community was small enough that not many here in Montreal with hardware engineering experience for Amiga existed at all, (I think I was the only other one...) so Suresh of RCS management heard my name through the grapevine and we met.  I solved the problem in a single all too simple swoop and we sort of attempted a few other projects together as I had my own private company.  (Basically it boiled down to luck...)

I take it that 'slap a big heatsink on it' wasn't the answer? 
 

Online BrianHG

  • Super Contributor
  • ***
  • Posts: 8139
  • Country: ca
    • LinkedIn
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #45 on: December 31, 2022, 12:05:07 pm »
A lot of Amiga gaming was done as well, but I was more interested in how to make the machine really compute and shine.

I had Blitz Basic back in the day, wrote a few games with a friend but nothing that got further than our little Amiga club at school - I remember doing a 'Scorched Earth' clone.  Wish I had kept all my old Amiga stuff, especially the source code for those old games.  Life was moving very quickly at that point and I didn't have the time or resources (books weren't cheap!) to get into the hardware.

I started with my own high end audio digitizers which got recognized for their quality. (There were only a few stores which sold Amigas and since I demoed my digitizer at the local Amiga club, everyone knew me...)
RCS management had problems with their first revisions of their Amiga 2000 Fusion 40 overheating and crashing.  The Amiga community was small enough that not many here in Montreal with hardware engineering experience for Amiga existed at all, (I think I was the only other one...) so Suresh of RCS management heard my name through the grapevine and we met.  I solved the problem in a single all too simple swoop and we sort of attempted a few other projects together as I had my own private company.  (Basically it boiled down to luck...)

I take it that 'slap a big heatsink on it' wasn't the answer?
It was a bus timing and contingency issue.
The answer was change all the 74F245s, 74F574s & 74F04 to 74HC245, 74HC574 and 74HC04.

The higher 2.5v high logic level (vs 1.2v ttl) input delayed output enables long enough to clear everything up and the card ran cool.
 

Offline nockieboyTopic starter

  • Super Contributor
  • ***
  • Posts: 1812
  • Country: england
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #46 on: December 31, 2022, 02:51:51 pm »
It was a bus timing and contingency issue.
The answer was change all the 74F245s, 74F574s & 74F04 to 74HC245, 74HC574 and 74HC04.

The higher 2.5v high logic level (vs 1.2v ttl) input delayed output enables long enough to clear everything up and the card ran cool.

What did they say when you came out with that peach of a solution?  Might have been a few embarrassed engineers (or one, perhaps) slinking away into the background.  ;D
 

Offline asmi

  • Super Contributor
  • ***
  • Posts: 2839
  • Country: ca
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #47 on: December 31, 2022, 04:05:28 pm »
Those MPM3683s are around £7 per piece - a touch on the expensive side for what I want, if I'm honest.  The MPM3833s, however, are less than half that at around £3/piece - I'll look a little closer at these as an option once I start worrying about space on the PCB. :-+
When comparing prices, remember that parts I've mentioned are modules and so already include inductor and a bunch of other passives.

That's the one thing I've never done - assigning colours to traces.  That must explain our differing experiences of EasyEDA. ???
I've attached two views of the same layout (this is a 64 bit DDR3 SO-DIMM interface), one without trace coloring (so trace color just indicates a layer it's on), and another one where different trace groups (address/control group and 8 byte lanes) were assigned different colors. And two more views of a single layer from that layout, again with and without trace coloring. Which one is easier to read? And also imagine that none of those traces are there yet (which is going to be your case), and you need to quickly figure out how to place components such that it will be easier to route.

Offline Miti

  • Super Contributor
  • ***
  • Posts: 1357
  • Country: ca
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #48 on: December 31, 2022, 06:06:47 pm »
Which one is easier to read?

To me, definitely the one without the colors but we are all different.
Fear does not stop death, it stops life.
 

Offline asmi

  • Super Contributor
  • ***
  • Posts: 2839
  • Country: ca
Re: Planning/design/review for a 6-layer Xilinx Artix-7 board for DIY computer.
« Reply #49 on: December 31, 2022, 07:10:24 pm »
To me, definitely the one without the colors but we are all different.
What about these?


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf