element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Autodesk EAGLE
  • Products
  • More
Autodesk EAGLE
EAGLE User Support (English) Gateswap across schematic   sheets
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Autodesk EAGLE to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 13 replies
  • Subscribers 179 subscribers
  • Views 1718 views
  • Users 0 members are here
Related

Gateswap across schematic   sheets

autodeskguest
autodeskguest over 9 years ago

I just discovered GATESWAP only works within the current schematic sheet.

I am using a quad opamp.  IC10A and IC10B are on schematic sheet 9, and

IC10C and IC10D on sheet 10.  Now that I'm placing parts on the board, I

want to swap IC10A <> IC10D and IC10B <> IC10C.

 

In the schematic editor, I went to sheet 9 and entered "gateswap ic10a

ic10d".  This resulted in the rather unhelpful pop "Can't swap gate IC10A

and IC10D".  Why can't these gates be swapped?  I checked the swaplevel of

each gate.  No, they are all set to 1.  Maybe the gate names need to be

enclosed in apostrophies?  No, that didn't help.  Upper case?  No, that

wasn't it either.

 

Then I tried "gateswap ic10a ic10b".  That worked.  OK, maybe I had a small

typo.  Using up-arrow, I got the previous command back and carefully

changed only the B to a D.  Now its back to "Can't swap gate IC10A and

IC10D".  It must be that gate A and D are on different sheets, but that's

not intuitive at all.

 

I got around this by moving all of the sheet 10 contents to the side of

sheet 9, doing the gateswaps, then moving the sheet 10 content back to

sheet 10.

 

Am I missing something?

 

If not, then here are my suggestions:Allow GATESWAP to work across

schematic sheets when entered as a command.

 

Fix the GATESWAP error dialog to explain why it can't swap the gates as

requested (incompatible swap level, different numbers of pins, no such

gate, not allowed on Tuesday afternoons, etc).

 

If you don't do #1, at least mention this limitation in the GATESWAP help

page.

 

 

--

Web access to CadSoft support forums at www.eaglecentral.ca.  Where the CadSoft EAGLE community meets.

 

  • Sign in to reply
  • Cancel
Parents
  • autodeskguest
    autodeskguest over 9 years ago

    Olin Lathrop wrote:

    I just discovered GATESWAP only works within the current schematic sheet.

     

    It is clear why "gateswap (x1 y1) (x2 y2)" won't work across sheets

    (at least the clickety-click way, and the command line version would

    require an extended coordinate syntax), but ...

     

    ... I can't see any reason why "gateswap gate1 gate2" should pose any

    implementation problems.

     

     

    Disclaimer: I'm using 6.6, don't know if 7.x allows it.

    --

     

    Lorenz

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • autodeskguest
    autodeskguest over 9 years ago in reply to autodeskguest

    On 11/10/2016 2:17 AM, Lorenz wrote:

    Olin Lathrop wrote:

    I just discovered GATESWAP only works within the current schematic sheet.

     

    It is clear why "gateswap (x1 y1) (x2 y2)" won't work across sheets

    (at least the clickety-click way, and the command line version would

    require an extended coordinate syntax), but ...

     

    ... I can't see any reason why "gateswap gate1 gate2" should pose any

    implementation problems.

     

    Under the current Hierarchy implementation there is the possibility for

    ambiguity with the command line syntax.

     

    Disclaimer: I'm using 6.6, don't know if 7.x allows it.

    Just to clarify it still doesn't allow it.

     

    I'm of the opinion that a gateswap in the board would be most useful.

    Usually you decide to swap a gate because you are on the layout and

    realize using a different gate would simplify your routing task.

     

    The problem I see is that I can't think of what the user interface for

    that would be like. Now in current V7 we have to deal with how hierarchy

    is implemented and that confuses a lot of things.

     

    Do you guys have any ideas? If we can have a suggestion of what should

    be implemented then that gives direction for the devs. How would you

    guys want this to work?

     

    Best Regards,

    Jorge Garcia

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • autodeskguest
    autodeskguest over 9 years ago in reply to autodeskguest

    Jorge Garcia wrote on Thu, 10 November 2016 12:24

    ... I can't see any reason why "gateswap gate1 gate2" should pose

    any

    implementation problems.

     

    Under the current Hierarchy implementation there is the possibility for

     

    ambiguity with the command line syntax.

     

     

    I haven't used hierarchy, so don't understand the issue.  What about

    hierarchy makes "IC1A", for example, ambiguous?  Is it that there can be a

    IC1 in each of several sub-blocks?  If so, then that must cause trouble for

    various other commands too.  How do those commands deal with it?

     

    Quote:

    I'm of the opinion that a gateswap in the board would be most useful.

    Usually you decide to swap a gate because you are on the layout and

    realize using a different gate would simplify your routing task.

     

     

    True, but I don't think I'd blindly swap gates without looking in the

    schematic to make sure there aren't any issues.  Once there, I'd probably

    do the gate swap there.  If it only worked in the board, I could live with

    it though.

     

    In the example that prompted this, I was doing component placement and

    realized routing would be simplified by swapping some opamps of a quad

    opamp chip around.  That's probably a pretty normal case for wanting to

    swap gates.  However, it never even occurred to me to try doing this in the

    board.  I didn't know it wouldn't work, but I wanted to see what exactly I

    was swapping in the schematic, and that's where I attempted to do the swap.

    Doing it in the board seems awkward, but, again, I could live with it.

     

    Quote:

    The problem I see is that I can't think of what the user interface for

     

    that would be like. Now in current V7 we have to deal with how

    hierarchy

    is implemented and that confuses a lot of things.

     

    Do you guys have any ideas?

     

     

    I need to understand more about hierarchy and why that causes trouble

    before making any suggestions.  Please explain.

     

    --

    Web access to CadSoft support forums at www.eaglecentral.ca.  Where the CadSoft EAGLE community meets.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • autodeskguest
    autodeskguest over 9 years ago in reply to autodeskguest

    I feel it should work in a manner very similar to the current pin swap in

    the board editor.

     

    The following assumes the user has already determined the name of the two

    gates to swap.

     

    By mouse:

    Select gate swap icon (new).

    Left click on a pin of a gate that will be involved in the swap.(Just as

    you currently do with pin swap)

    Dialog appears listing all gates with the same swap level as the gate (pin)

    you selected.

    Click to select that gate.

    The display is modified as pin swap does but now there are multiple pin

    swaps that will need tidying up.

    'Cancel' in this dialog should mean swap the first gate with

    itself.Currently Eagle does not let you swap a gate with itself.

     

    By command line:

    No change needed if you know the two gates to be swapped.

    GATESWAP gate_name gate_name..;

     

     

    GATESWAP gate_name

    This would display the same dialog as by mouse to select the second gate.

    Within a script this scenario could well be invalid unless it is the last

    line of the script.

    As above, 'Cancel' in this dialog should mean swap the first gate with

    itself.Currently Eagle does not let you swap a gate with itself, but by

    swapping to itself,the script always continues with a valid gate name.

     

     

    At the beginning of the work flow the user will likely have right clicked

    on the element and selected 'Display Device' as a method of confirming the

    gatename/pins of the gate they wish to swap with.

    A deluxe implementation would remove this step as follows:

     

    By mouse:

    Select gate swap icon (new).

    Left click on a pin of a gate that will be involved in the swap.(Just as

    you currently do with pin swap)

    Dialog appears with an image displaying the device view as you see it in

    the library (This is the deluxe bit)

    and also listing all gates with the same swap level as the gate (pin) you

    selected.

    Click to select that gate.

     

    The gate swap being initiated from the board is, in fact, a change to the

    schematic. The swap can be done blindly from the board without reference to

    the schematic because the gates will always be identical, controlled by the

    swap level when the library was created.

     

    Board only design:

    For a board only design the above should work without the need for a

    schematic to be updated.

     

     

    Modules:

    For modules, if you change the layout instance of one module, with a gate

    swap, all other layouts of the same module should reflect the change as

    there is only one schematic for each module type on the board.

     

    If users desire to be able to swap gate on only one of the modules then

    that layout instance would logically need to be the layout for of a another

    module of a different name. That new module (schematic sheet) could be

    created and would only need to be cloned further when there is more than

    one in use so that multiple changes to one module would not generate a new

    module each time. This could be achievable but some users will run into

    problems due to limited sheets being available to them.

     

     

    Module part naming issues;

    I cannot see that there would be any ambiguity using command line. Parts

    within modules can be identified by name. When you know the module name you

    can deduce the part name in the module schematic once you determine the

    naming notation used. 

     

     

    HTH

    Warren

    --

    Web access to CadSoft support forums at www.eaglecentral.ca.  Where the CadSoft EAGLE community meets.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • autodeskguest
    autodeskguest over 9 years ago in reply to autodeskguest

    Jorge Garcia <jorge@cadsoftusa.com> wrote:

    On 11/10/2016 2:17 AM, Lorenz wrote:

    Olin Lathrop wrote:

    I just discovered GATESWAP only works within the current schematic sheet.

     

    It is clear why "gateswap (x1 y1) (x2 y2)" won't work across sheets

    (at least the clickety-click way, and the command line version would

    require an extended coordinate syntax), but ...

     

    ... I can't see any reason why "gateswap gate1 gate2" should pose any

    implementation problems.

     

    Under the current Hierarchy implementation there is the possibility for

    ambiguity with the command line syntax.

     

     

    I need to play more with multiple sheets before I understand that.

     

    I'm of the opinion that a gateswap in the board would be most useful.

    Usually you decide to swap a gate because you are on the layout and

    realize using a different gate would simplify your routing task.

     

    Agreed.

     

    The problem I see is that I can't think of what the user interface for

    that would be like. Now in current V7 we have to deal with how hierarchy

    is implemented and that confuses a lot of things.

     

    Do you guys have any ideas? If we can have a suggestion of what should

    be implemented then that gives direction for the devs. How would you

    guys want this to work?

     

    Definitely at the board layout level. Makes the most sense there

    from my perspective.

     

    For the board GUI interface, I humbly suggest

     

    1.  click on gate-swap. Would be nice to highlight device pins

    corresponding to swappable gates at this time - but the user knows

    which device anyway -- and it could get pretty crowded with many

    eligible devices;

     

    2. click on one gate pin and the other "eligible" pins are

    highlighted so that the user can easily see to select the

    (functionally) equivalent pin on another gate;

     

    3. click on one of the highlighted pins to finish and update the

    corresponding schematic.

     

    Finished.

     

    A different implementation would be to show the gate objects on the

    device at board level with connections and to let the user click and

    drag a gate objects to swap. But that changes the interface

    paradigm.  V10.1 perhaps. image

    --

    /"\ Bernd Felsche - Somewhere in Western Australia

    \ /  ASCII ribbon campaign | For every complex problem there is an

    X   against HTML mail     | answer that is clear, simple, and wrong.

    / \  and postings          |  --HL Mencken

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • autodeskguest
    autodeskguest over 9 years ago in reply to autodeskguest

    On 10.11.2016 18:24, Jorge Garcia wrote:

    Do you guys have any ideas? If we can have a suggestion of what should

    be implemented then that gives direction for the devs. How would you

    guys want this to work?

     

    I don't think there are hierarcy issues with the command line syntax

    Olin suggested. Gate swapping across hierarcy can be done with

    reference to "[module_instance_name:]gate_name" (the format that is

    listed under allparts() loop member in ULP). The colon character is

    already illegal as refdes, so it should be easy to resolve this. It also

    works with deeper modules.

     

    When it comes to GUI, I suggest (from sch)

    Click swap gate, click the gate you want to swap.

    [If the clicked gate is inside a module, list all the module instances

    and let the user choose wich one to swap.]

    Now bring up a list of other gates within the selected device (maybe

    with their page# listed), then select wich one to swap with.

     

    If you want to support this from brd in a future version:

    Command line can be identical to sch.

    For GUI, click swap gate, click part, list gates + pin#'s belonging to

    the gates, pick one to swap, and the one to swap with. There are several

    usable ways to format this. A version further down the line can improve

    this even further with dynamic highlighting and other visual effects.

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • autodeskguest
    autodeskguest over 9 years ago in reply to autodeskguest

    On 11/11/2016 5:01 AM, Morten Leikvoll wrote:

    On 10.11.2016 18:24, Jorge Garcia wrote:

    Do you guys have any ideas? If we can have a suggestion of what should

    be implemented then that gives direction for the devs. How would you

    guys want this to work?

     

    I don't think there are hierarcy issues with the command line syntax

    Olin suggested. Gate swapping across hierarcy can be done with

    reference to "[module_instance_name:]gate_name" (the format that is

    listed under allparts() loop member in ULP). The colon character is

    already illegal as refdes, so it should be easy to resolve this. It also

    works with deeper modules.

     

    I agree with you, however I don't think the GATESWAP command currently

    supports using the module name, it's not documented at least.

    Gateswapping between different levels of the hierarchy would get messy

    fast although a read of Warren's suggestion gives a work around.

     

    I'll create an enhancement report with Warren's suggestion, since it is

    the most detailed and addresses a few corner cases.

     

    Let's see what the devs do with it.

     

    Best Regards,

    Jorge Garcia

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • autodeskguest
    autodeskguest over 9 years ago in reply to autodeskguest

    On 11/11/2016 5:01 AM, Morten Leikvoll wrote:

    On 10.11.2016 18:24, Jorge Garcia wrote:

    Do you guys have any ideas? If we can have a suggestion of what should

    be implemented then that gives direction for the devs. How would you

    guys want this to work?

     

    I don't think there are hierarcy issues with the command line syntax

    Olin suggested. Gate swapping across hierarcy can be done with

    reference to "[module_instance_name:]gate_name" (the format that is

    listed under allparts() loop member in ULP). The colon character is

    already illegal as refdes, so it should be easy to resolve this. It also

    works with deeper modules.

     

    I agree with you, however I don't think the GATESWAP command currently

    supports using the module name, it's not documented at least.

    Gateswapping between different levels of the hierarchy would get messy

    fast although a read of Warren's suggestion gives a work around.

     

    I'll create an enhancement report with Warren's suggestion, since it is

    the most detailed and addresses a few corner cases.

     

    Let's see what the devs do with it.

     

    Best Regards,

    Jorge Garcia

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
  • autodeskguest
    autodeskguest over 9 years ago in reply to autodeskguest

    On 12/11/2016 8:35 a.m., Jorge Garcia wrote:

    On 11/11/2016 5:01 AM, Morten Leikvoll wrote:

    On 10.11.2016 18:24, Jorge Garcia wrote:

    Do you guys have any ideas? If we can have a suggestion of what should

    be implemented then that gives direction for the devs. How would you

    guys want this to work?

     

    I don't think there are hierarcy issues with the command line syntax

    Olin suggested. Gate swapping across hierarcy can be done with

    reference to "[module_instance_name:]gate_name" (the format that is

    listed under allparts() loop member in ULP). The colon character is

    already illegal as refdes, so it should be easy to resolve this. It also

    works with deeper modules.

     

    I agree with you, however I don't think the GATESWAP command currently

    supports using the module name, it's not documented at least.

    Gateswapping between different levels of the hierarchy would get messy

    fast although a read of Warren's suggestion gives a work around.

     

    I'll create an enhancement report with Warren's suggestion, since it is

    the most detailed and addresses a few corner cases.

     

    Let's see what the devs do with it.

     

    Best Regards,

    Jorge Garcia

     

     

    There is one case that has not been mentioned so far:

     

    You can currently gate swap gates that are not in the same device so

    long as they are equivalent. The HELP describes the rules for this.

    So one should be able to choose from those gates also.

     

    Warren

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • autodeskguest
    autodeskguest over 9 years ago in reply to autodeskguest

    On 12.11.2016 01:40, warrenbrayshaw wrote:

    On 12/11/2016 8:35 a.m., Jorge Garcia wrote:

    On 11/11/2016 5:01 AM, Morten Leikvoll wrote:

    On 10.11.2016 18:24, Jorge Garcia wrote:

    Do you guys have any ideas? If we can have a suggestion of what should

    be implemented then that gives direction for the devs. How would you

    guys want this to work?

     

    I don't think there are hierarcy issues with the command line syntax

    Olin suggested. Gate swapping across hierarcy can be done with

    reference to "[module_instance_name:]gate_name" (the format that is

    listed under allparts() loop member in ULP). The colon character is

    already illegal as refdes, so it should be easy to resolve this. It also

    works with deeper modules.

     

    I agree with you, however I don't think the GATESWAP command currently

    supports using the module name, it's not documented at least.

    Gateswapping between different levels of the hierarchy would get messy

    fast although a read of Warren's suggestion gives a work around.

     

    I'll create an enhancement report with Warren's suggestion, since it is

    the most detailed and addresses a few corner cases.

     

    Let's see what the devs do with it.

     

    Best Regards,

    Jorge Garcia

     

     

    There is one case that has not been mentioned so far:

     

    You can currently gate swap gates that are not in the same device so

    long as they are equivalent. The HELP describes the rules for this.

    So one should be able to choose from those gates also.

     

    Warren

     

    There is a very special case to look out for:only devices powered with

    the same power rails should swap gates! This may be a bit difficult to

    verify, since there is no direct relation between gates and their supply

    pins. Assuming that all gates are powered by their devices their 'pwr'

    pins is maybe a good approximation, but it's not covering all cases.

     

    I guess the current function is to not care about power nets?

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • autodeskguest
    autodeskguest over 9 years ago in reply to autodeskguest

    On 12.11.2016 01:40, warrenbrayshaw wrote:

    On 12/11/2016 8:35 a.m., Jorge Garcia wrote:

    On 11/11/2016 5:01 AM, Morten Leikvoll wrote:

    On 10.11.2016 18:24, Jorge Garcia wrote:

    Do you guys have any ideas? If we can have a suggestion of what should

    be implemented then that gives direction for the devs. How would you

    guys want this to work?

     

    I don't think there are hierarcy issues with the command line syntax

    Olin suggested. Gate swapping across hierarcy can be done with

    reference to "[module_instance_name:]gate_name" (the format that is

    listed under allparts() loop member in ULP). The colon character is

    already illegal as refdes, so it should be easy to resolve this. It also

    works with deeper modules.

     

    I agree with you, however I don't think the GATESWAP command currently

    supports using the module name, it's not documented at least.

    Gateswapping between different levels of the hierarchy would get messy

    fast although a read of Warren's suggestion gives a work around.

     

    I'll create an enhancement report with Warren's suggestion, since it is

    the most detailed and addresses a few corner cases.

     

    Let's see what the devs do with it.

     

    Best Regards,

    Jorge Garcia

     

     

    There is one case that has not been mentioned so far:

     

    You can currently gate swap gates that are not in the same device so

    long as they are equivalent. The HELP describes the rules for this.

    So one should be able to choose from those gates also.

     

    Warren

     

    There is a very special case to look out for:only devices powered with

    the same power rails should swap gates! This may be a bit difficult to

    verify, since there is no direct relation between gates and their supply

    pins. Assuming that all gates are powered by their devices their 'pwr'

    pins is maybe a good approximation, but it's not covering all cases.

     

    I guess the current function is to not care about power nets?

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube