• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Digital Implementation
  3. Delete all buffers between IO ang register

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 91
  • Views 17346
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Delete all buffers between IO ang register

spach
spach over 15 years ago

hi

i need to delete all series of buffers with fanput 1 from input to register & register to output

one way is using deletebuffertree command with selected nets(nets b/w buffers).

can any one tell me how i can get all net names between input & register, register & output using encounter db commands.

regards,

suresh pachha  

  • Cancel
Parents
  • BobD
    BobD over 15 years ago

    Interesting challenge- thanks for posting it.

    The first thing I'd mention is that deleteBufferTree -selNet isn't precisely limited to the list of nets it is supplied with.  For example, in this netlist, there are 2 buffers in series before the register:

    module testcase(in1, in2);
     input in1, in2;
     wire net1;
     BUFX1 i0(.A(in1), .Y(net1));
     BUFX1 i1(.A(net1), .Y(net2));
     DFFX1 i2(.D(net2));
    endmodule 

    If you called deleteBufferTree -selNet and supplied it with only "in1" as the net, both buffers would be deleted because deleteBufferTree traverses and tries to delete all the buffers (and inverter pairs) in the tree of the net name you supply.

    Because of this, the requirement about limiting the removal to only the buffers with a fanout of 1 is a little trickier than it might otherwise appear.  You might get a good ways towards where you're trying to get if you call deleteBufferTree -selNet with a file containing all the nets connected to IOs.  You could capture that list of nets like this:

    set outfile [open sel.net "w"]
    foreach net [dbGet -u top.terms.net.name] {
      puts $outfile "$net"
    }
    close $outfile

    Then you could call deleteBufferTree -selNet sel.net and it would delete all of the buffer trees that are connected to IOs.

    If you truly needed to restrict this to  nets with a fanout of 1 you'd need to do something more sophisticated where you examine the fanout tree prior to including the IO net to make sure the fanout of each net downstream from the IO net is a buffer or inverter pair and has a fanout of 1.

    Let me know what you think of this so far and we can continue our discussion.

    Hope this helps,
    Bob

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • BobD
    BobD over 15 years ago

    Interesting challenge- thanks for posting it.

    The first thing I'd mention is that deleteBufferTree -selNet isn't precisely limited to the list of nets it is supplied with.  For example, in this netlist, there are 2 buffers in series before the register:

    module testcase(in1, in2);
     input in1, in2;
     wire net1;
     BUFX1 i0(.A(in1), .Y(net1));
     BUFX1 i1(.A(net1), .Y(net2));
     DFFX1 i2(.D(net2));
    endmodule 

    If you called deleteBufferTree -selNet and supplied it with only "in1" as the net, both buffers would be deleted because deleteBufferTree traverses and tries to delete all the buffers (and inverter pairs) in the tree of the net name you supply.

    Because of this, the requirement about limiting the removal to only the buffers with a fanout of 1 is a little trickier than it might otherwise appear.  You might get a good ways towards where you're trying to get if you call deleteBufferTree -selNet with a file containing all the nets connected to IOs.  You could capture that list of nets like this:

    set outfile [open sel.net "w"]
    foreach net [dbGet -u top.terms.net.name] {
      puts $outfile "$net"
    }
    close $outfile

    Then you could call deleteBufferTree -selNet sel.net and it would delete all of the buffer trees that are connected to IOs.

    If you truly needed to restrict this to  nets with a fanout of 1 you'd need to do something more sophisticated where you examine the fanout tree prior to including the IO net to make sure the fanout of each net downstream from the IO net is a buffer or inverter pair and has a fanout of 1.

    Let me know what you think of this so far and we can continue our discussion.

    Hope this helps,
    Bob

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information