[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

gEDA: PCB and GAF PIN Swapping and Gate Swapping



I just want to get a few brainstorm ideas out on the table for discussion.

I am in the middle of a board layout which has almost one thousand nets with a 900 pin PLD. This design is using a customized version of GAF which allows me to use hierical buses. It is a very rough version and I have given Ales a copy of the code with the modifications. After I get this board out the door I expect to work on cleaning up the customizations for possible future inclussion in GAF.

Durring the layout process I find myself moving back and forth between gschem, gnetlist and pcb rearanging how the io pins of the PLD are used. For the pld a xilinx sparten 3 I have created a number of symbols. One symbol for each IO Bank and a few extras for power and configuration.

Imagine a Bank of IO being used as a memory interface. A number of the banks pins are conected to a data bus others are connected to an address bus.


GAF symbol libraries.

1) GAF should have a collection of symbol libraries that normally arn't modified. The pins stay in the same place in the symbol and the pin attributes should remain fixed.

2) When starting a project a new GAF library is created in the project directory.

3) For a PLD type device I would create a new top level logical symbol for what ever the functionality of the pld is ment to be. This new symbol should reside in the project GAF library. I also create lower level logical symbols for a major functions that the PLD is going to implement (the memory controller for example). Each of these lower level logical symbols should be in the project GAF library.

4) As I add the PLD (or any other pin swappable device) sub-symbols (an IO bank being a sub symbol) into the schematic for a logical symbol, the symbol file from the main GAF libraries should be copied into the project GAF library and given a unique name. The unique name allows multiple instances of the part to be used in a design and each one having its pins rearanged in a unique way.


Pin Swapping

1) highlight or re-color a group of pins which may freely be swapped.

2) If in the netlist file PCB could be told which pins could be freely swapped (sellect two pins and use a menu command which generates a list of swapped pins)

3) PCB exports a file with a list of swapped pins and causes a GAF utility to be run

4) A GAF utility imports the schematic and the swapped pin file. It opens the symbol files (in the project GAF library) for the device whos pins were swapped and it exchanges the attributes between two pins which have been swapped. Not the position and orientation of the two pins remains the same just that their attributes are swapped. Normally these atributes would be the pinnumber and pinlabel.

5) PCB upon completion of the pin swapping gaf utility causes gnetlist to be run

6) PCB then imports the new netlist



Gate Swapping

Gate swapping can be very similar to pin swapping in that PCB is told which devices have multiple gates and what the pins are for each gate. PCB then generates a list of swaped gates and exports it to a gaf utility which modifies the schematic. PCB then asks that gnetlist be run. Then pcb imports the the new netlist.



As I said, just a few wild ideas which would make my life easier.

Steve Meier

P.S. Ales I haven't forgotten your questions. I am just so wrapped up in this layout that I havn't taken the time to put my thoughts together. I expect the layout done early this week and then I am going to turn some of my attention back to the hierarchical bus issue.