Home > Community > Forums > Digital Implementation > How to dump out blockages into a file

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 How to dump out blockages into a file 

Last post Sun, Aug 12 2012 1:56 PM by kazad. 3 replies.
Started by Anuragjn 31 Jul 2012 07:23 AM. Topic has 3 replies and 2534 views
Page 1 of 1 (4 items)
Sort Posts:
  • Tue, Jul 31 2012 7:23 AM

    • Anuragjn
    • Not Ranked
    • Joined on Sat, Aug 6 2011
    • Posts 12
    • Points 195
    How to dump out blockages into a file Reply

    Hi all,

    I want to dump out placement blockage (hard,soft,partial) into file is there any utility in encounter gui to do so,as we can do to dump out the marco place,By using save "place" utility in gui

    and vice versa to dump routing blockages.

     So can any one guide me if there's any utility in GUI and even command based woul be good .

     

    Regards,

    Anurag

    • Post Points: 20
  • Tue, Jul 31 2012 7:30 AM

    • Kari
    • Top 10 Contributor
    • Joined on Tue, Jul 15 2008
    • Cary, NC
    • Posts 693
    • Points 14,295
    Re: How to dump out blockages into a file Reply

    You can write them out in a DEF file:

    defOutBySection -noComps -noNets -pBlockages -rBlockages myBlockages.def

    pBlockages is the placement blockages (all kinds) and rBlockages is the routing blockages. 

    • Post Points: 20
  • Sat, Aug 11 2012 10:05 PM

    • Anuragjn
    • Not Ranked
    • Joined on Sat, Aug 6 2011
    • Posts 12
    • Points 195
    Re: How to dump out blockages into a file Reply

    HI Kari,

    Thanks for the Command

    But Partial Blockages are not being dumped ,I tried even loading the DEF file but the partial blockage are no where seen

     

    Filed under: , , , ,
    • Post Points: 20
  • Sun, Aug 12 2012 1:56 PM

    • kazad
    • Top 500 Contributor
    • Joined on Tue, Sep 15 2009
    • Posts 22
    • Points 305
    Re: How to dump out blockages into a file Reply

    This is a tcl command-based solution for dumping out the placement (including soft, partial & hard) /routing blockages from Encounter session:

    ################################################################################
    # Procedure to save blockages into tcl command
    # Usage: saveBlockages -type <placement | routing | all> -outFile <output_tcl_file>
    ################################################################################
    proc saveBlockages {args} {

        global env

        # Get blockage type
        if {[regexp {\-type} $args]} {
     set blockageType [lindex $args [expr [lsearch $args -type] + 1]]
        }

        # Get output file
        if {[regexp {\-outFile} $args]} {
     set outfile [lindex $args [expr [lsearch $args -outFile] + 1]]
        }


        # Help
        set helpString "Usage : saveBlockages \
                                    \-type <placement | routing | all> \
                                    \-outFile <file_name> \
                                    \-help"


        if {[regexp {\-help} $args] || $args == ""} {
            puts $helpString
            return 0
        }


        # Main code
        ############################################################ 

        set f [open $outfile w]


        # Placement blockages
        if {$blockageType == "placement" || $blockageType == "all"} {

     foreach pblkgType [dbGet -u top.fPlan.pBlkgs.type] {

         foreach obsPtr [dbGet -p top.fPlan.pBlkgs.type $pblkgType] {
      set obsName [dbGet $obsPtr.name]
      set box [exl [dbGet $obsPtr.boxes]]
      
      switch -- $pblkgType {

          "hard" {
       puts $f "createObstruct -box $box -name $obsName"
          }
          "partial" {
       set density [dbGet $obsPtr.density]
       puts $f "createDensityArea -name $obsName $box $density"
          }
          "soft" {
       set density [dbGet $obsPtr.density]
       puts $f "createDensityArea -name $obsName $box $density"
          }
      }
         }
     }

        }

        # Routing blockages
        if {$blockageType == "routing" || $blockageType == "all"} {
     
     foreach rBlkPtr [dbGet top.fPlan.rBlkgs] {
         set name [dbGet ${rBlkPtr}.name]
         set attr [dbGet ${rBlkPtr}.attr]
         set layer [dbGet ${rBlkPtr}.layer.name]
         foreach box [exl [dbGet ${rBlkPtr}.boxes]] {
      puts $f "createRouteBlk -box ${box} -layer ${layer} -name ${name}"
      
         }
     }
        }
       
        close $f
    }

    ################################################################################
    # Procedure to split the list
    ################################################################################
    proc exl {singleList} {
            set mylist {}
            foreach item $singleList {
                    set mylist [concat $mylist $item]
            }
            return $mylist
    }

    • Post Points: 5
Page 1 of 1 (4 items)
Sort Posts:
Started by Anuragjn at 31 Jul 2012 07:23 AM. Topic has 3 replies.