LGA/BGA designs in KiCad

Do the file formats that the fab that makes the BGA/LGA devices match what KiCAD can export?

Hello

BGA / LGA substrate inputs/ outputs should be the same as PCBs one (typically, IN: netlist or bonding diagram , OUT: gerber) . Naturally gerber can be imported too

Problem is that aparnetly KiCAD seems not to allow to import individual die layouts, neither not enabled to create a pinout to be connect …

Thanks for the help in advance
Pier

So the problem boils down to arbitrary footprints/pads, yes?
And you wanting to import those from whatever format you got them in?
What format is that?
You might need to write an interpreter/converter that takes care of this then (unless there already exists one).

Hello Joan, both die layout and pinout are usualy available as dxf or dwg… but how to import them in KiCAD to create new entities to be connected? thanks again

To get you started (no idea how up to date this is):

Should give you an idea what is involved.

If you run into problems - just ask - someone will know something :wink:

The terms you need info on how to do what you want are ‘footprints’, ‘pads’ and ‘dxf’ apparently.
Linking those with schematic ‘symbols’ and their ‘pins’ is the other step if you are going to follow the normal design-flow in KiCAD, but that’s not a big problem… you need to take care of the physical side first (Layout) to make sure it works how you need it

wil have a look and try , thanks again !

I donwloaded FreedCAD as suggested here (New way to import DXF outlines to Footprint?) but seems dwg / dxf not supported, anyone solved this already ? ? thanks All

ODA (formerly Teigha) File Converter not found, DWG support is disabled

Is it possible for you to post an example of what you are trying to do?

KiCad’s default footprint libraries have a bunch of BGA’s, and there is also a library with LGA’s:

But as far as I know (and that’s not much regarding this topic) that’s something different from wire bonding. What I’ve seen from wire bonding, a piece of silicon is glued to a PCB with the pads up, then the location is analyzed with a camera and a wire bonding machine uses the analysed pictures as a basis to get the right locations and control a CNC wire bonding machine, and I’m guessing that you can use almost any regular PCB footprint for it as long as it’s bigger then the piece of silicon. There may be some margin for the length of the wire bonding wires.

There is a Footprint Editor / File / Import / Graphics but that does not get you pads. If you want to design a custom footprints you have to add the pads (and other stuff) yourself.
KiCad also comes bundled with a bunch of Footprint wizards. These are accessible via: Footprint Editor / File / Create Footprint. (There currently is a bug in KiCad, and these wizards only work if the PCB Editor has been opened).

These Footprint wizards are Python scripts, so you can examine the way they work, and modify one of those scripts to generate footprints to your own liking.

If these hints are far off, then it may help if you post one of the DXF files you want to do something with. The KiCad StepUp workbench in FreeCAD is a powerful tool, but FreeCAD is not easy to learn.

1 Like

Hello thanks for the help … I am attaching here example of what I create normally in .dxf and I need to import in KiCAD to be electrically connected by PCB substrate Cu traces (die layout and pinout)

many thanks best regards


the upper image looks like an 80’s arcade game :slight_smile:

Can you tell us about the colors?
I did some wire bonding at uni like 16? years ago (just in principle, not with anything to work towards to)… I guess the pinkish lines with different skews are the wire bonds?
The image seems to depict one die sitting atop another or what is what there?
The orange rectangle… the purple rectangle… what are the light blue lands/pads? on pcb, on silicon?

If I were to guess the B&W image below is the footprint you want to have at the end for the whole package, right?

Hello sorry for image quality :slight_smile: …pink are wire bond connecting orange die pads to top Cu layer BF (orange is also die layout perimeter). Yes bottom image is showing bottom Cu layer pinout…actually I need to route Cu die pads on top layer down to bottom Cu layer pinout

I have never done die-attach PCB designs so I may be getting something wrong, but let’s see if I understand. First of all, BGA/LGA are typically referring to types of packaged SMD parts, for normal assembly (not wire bonding). I am assuming you are referring to something like die-attach, where you need to wire-bond a package instead of using SMT.

For a die-attach design, you need a footprint on the board that has the PCB lands for the wire bonds, and you also need to specify where the die is to be glued, right?

KiCad has no “special features” for this – you just need to make use of existing features that are more “generic” to accomplish what you want.

For the bond landing pads, you just need to make a footprint with pads of the appropriate size/shape/location, and exclude these pads from the solder paste mask layer. You can include in this footprint some graphical lines (on a user drawing layer, for example) showing the location of the actual die, and any other reference info about the wire bond strategy.

KiCad can’t natively describe wire bonding or the act of gluing a die to the PCB, but you can just draw these things as graphical annotations and send them to your manufacturer and it should work out fine.

Does this kind of answer your question?

2 Likes

KiCad is quite different from a regular mechanical CAD program.

A very significant difference is that when designing a footprint, you have to add and define pads in KiCad, so KiCad knows where to attach the nets (and therefore copper tracks) to. Mechanical CAD programs have no knowledge of such pads.

Another difference is that KiCad likes to know the center point of pads, while in Mechanical CAD programs it’s much more common to define the edges of items.

That said, Designing a custom footprint in KiCad’s Footprint Editor is a quite straightforward task. Your footprints are quite simple with a few rows of pads. KiCad can simply draw an array of pads, and you can set the size of the defaults in advance.

I’ve also verified that you can import DXF graphics in the footprint editor, but it is of course just graphics. But it’s probably still useful to do so as a sanity check.

You can also make use of this knowledge.
for example, instead of making a full DXF drawing, you can make a simple sketch with a few reference positions for some of the pad centers into your DXF file, then “Ungroup” the DXF file in the footprint editor and then you can snap to the individual graphic items and place some arrays of pads from there.

KiCad’s drawing capabilities are quite limited, but they are also simple and easy to learn.
You may have to adjust a bit to the things that work in KiCad. For example, I have not managed to place a pad directly onto a snap point of a graphical item, but you can first place the pad at a random location, and then snap it to such an endpoint with a move operation.

You only need just a few reference points. A whole row of pads can easily be made with the array function. KiCad also has some nice extra features such as “Move Exactly” from the popup menu. If your array has a somewhat irregular spacing, you can first draw a simple row, then select a part of the pads and use Special Tools / Move Exactly (Or Move with Reference, etc) to further modify.

It really is quite adequate for simple footprints like this. It may take some time to get to grips with a method that works, but after you’ve figured that out it’s quite quick.

1 Like

There are quite a lot of wire bonding video’s on youtube.
A lot of the machines move too fast to see what’s happening.
The two minute video I found below, is quite informative of the process for wirebonding dies directly on PCB’s.

I once saw a video where the dies were manually glued at a quite imprecise location (just shoved around a bit with tweezers) then the machine analyzed the location and did the rest.


I have never done this myself. I assume though that nothing special is required in KiCad itself. You just have to define a footprint with pads that are adequate for your wire bonding process. KiCad works at nanometer resolution (32 bit integers, so max 4 by 4meter PCB’s) and that is plenty for any PCB design.
I may be naive in my assumption though. Would there be anything extra for the PCB program to accommodate the wire bonding process?

2 Likes

Some software has native support for this, including ways of representing bond wires in CAD (so you can for example make sure that bond wires have enough clearance and the fanout will work). You can’t do this in KiCad, but my understanding is that you can for many cases just use “rules of thumb” and come up with a design that works (following the design rules of a manufacturer who is going to do the bonding for you)

1 Like

sorry need a clarification on this, how you create a new footprint ? I can just import existing ones …thx a lot

There are many tutorials out there on making footprints including ones from @peter-dalmaris :slight_smile: A basic one is included in the getting started guide here: Getting Started in KiCad | 6.0 | English | Documentation | KiCad

most often, a footprint represents a physical part that is soldered to a board using either SMT or through-hole soldering techniques. But, this is only most of the time, and a footprint can also mean different things. Creating a footprint that represents both your die and its bond pads on the PCB is probably the right way to go.

Most footprint tutorials will have you create the pad shapes and locations based on the datasheet of a SMD/TH part. In your case, you have no datasheet to work from (probably) - I assume you are the one responsible for determining the wire bond land pad layout, right? In this case, you just create a “surface mount pad” for each bondwire land.

In the pad properties, make sure the F.Paste layer is unchecked because you do not want solder paste on a bondwire land.

2 Likes

@paulvdh :

Would there be anything extra for the PCB program to accommodate the wire bonding process?

KiCAD’s world is really two-dimensional (yes, you can have 3D views, but really all manipulations, traces, etc. are two-dimensional; the coordinates KiCAD pcb manipulates are 2D). With board stackup definitions, KiCAD may become a “2½ D” program. Wire bonding is inherently 3D. How can a 2D or 2½D program be used for an inherently 3D process? This would be true of any PCB layout CAD program.

These questions arise in simulations, too. For example, Sonnet is a very capable 2½D electromagnetics simulator: It can simulate traces over planes and vias, the latter, I think, with some formulas. But for a full simulation of bond wires you will need a full 3D simulator like HFSS.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.