← Back to team overview

kicad-developers team mailing list archive

Re: On pin/unit swapping

 

Not until after the new schematic and symbol library file formats are
implemented.  Support for pin and unit swapping will be built in to the
new symbol library file format.  I have attached the original file
format documents that I generated during our previous discussion.
Please look over them and be ready to comment when I reopen the file
format discussion (not any time soon).  Please do not comment on this
now.  I will not respond and I will not go back and search the mailing
list to update the documents.  I will open the discussion again after
the eeschema I/O manager code is implemented. Please search the mailing
list archives to follow the previous discussion if you are interested.
Be prepared to do a lot of reading.  When I open up the discussion
again, it will only be for new issues.  There are a few things that I'm
rethinking compared to what is in these documents:

1) I may choose not to go unitless.  The original concept was that
schematics do not have to have units but it's a much easier to think and
code in units of distance rather than scaling unitless coordinates.

2) I'm thinking about embedding symbols in the schematic file similar to
footprints in the board file.  This would simplify our symbol library
management code.

3) I want to add support for external and internal linking of symbols
and sheets using a url format where sch::// is a link internal to the
schematic file and the other standard url formats are external to the
schematic file.  This would give us the ability to have reusable symbols
and sub-schematics (I called them circuits in the new file format but
the naming is still open for discussion).

4) Matched pair support for the matched pair router needs to be added to
the schematic file format.   The current _P/_N matched pair semantics
were just a stop gap measure until we could implement the new schematic
file format.

On 12/11/2015 12:11 AM, Simon Richter wrote:
> 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
> 
> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
> 

Attachment: eeschema_schematic_sexpr_file_format_EN.odt
Description: application/vnd.oasis.opendocument.text

Attachment: eeschema_symbol_library_sexpr_format_EN.odt
Description: application/vnd.oasis.opendocument.text


Follow ups

References