← Back to team overview

kicad-developers team mailing list archive

On pin/unit swapping

 

Hi,

I'm thinking about adding some support for pin and unit swapping. To
make it maximally useful, I'd like to generate a list of alternative
mappings inside the netlist, and add the actual swap functionality
inside pcbnew -- so if it turns out that the layout becomes easier if
two pins are swapped, this can be done during layout.

Use cases so far:

1. unit swap for multi-unit ICs

Fairly straightforward: I have two identical units on the same IC, and
can exchange them.

2. gate swap for pins with the same name within the same unit

Also straightforward: One unit on an IC has two pins with the same name,
which can be exchanged (think logic gates).

3. unit swap between equal (or similar) ICs

Mostly easy for two ICs that are equal, but we need a constraint that
the power supply for both comes from the same source.

4. I/O pin swap on FPGAs

Pins can be swapped easily inside the same I/O bank, but:
 - some pins may have optional special functions, and whether swapping
is allowed depends on whether that function is selected
 - some pins may optionally be part of a differential pair that may only
be swapped against another differential pair
 - some pins may have bootstrap configuration functions

5. bank swap on buffer/driver ICs

 - banks using the same power supply can be swapped, if the supply and
enable pins follow

6. bank merge on buffer/driver ICs

 - banks using the same power supply and having their enable/direction
pins connected can be merged, so pins can be exchanged between them

7. bank swap on FPGAs

 - banks can be swapped if the used functions can be replicated on the
other bank, and the bank's power supply is swapped at the same time
 - banks can optionally have a reference voltage input, which needs to
be swapped as well (including its special function status)
 - banks that include special function pins (e.g. configuration) may
have a fixed power supply requirement

8. bank merge on FPGAs

 - banks that have the same power supply and reference voltage (if used)
can be merged, so pins can be exchanged between them

9. bootstrap configurable pin configuration

 - using a pull-up or pull-down on a specific pin, the mapping of
another pin changes. Exchanging two pins changes the net connection on
the resistor to another supply rail

Obviously, these need discussion, extension and prioritisation.

Specifically, since this needs an extension of the netlist format, this
extension should be carefully planned in order to not introduce more
incompatibility than needed.

Ideally, I'd like to be able to use the existing 74xx components, and
generate pin/gate swap information from them as they are -- for anything
more complex, I think the component format needs to be extended as well.

Comments?

   Simon

Attachment: signature.asc
Description: OpenPGP digital signature


Follow ups