Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Low-Power design with Innovus using UPF

Status
Not open for further replies.

diogorsousa

Newbie level 3
Joined
May 2, 2017
Messages
3
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
24
Hi,

I'm designing a low power circuit with five power domains (TOP, PD1, PD2, PD3 and PD4).
I'm at the final stage of my low power implementation and when I was about to insert filler cells on my chip the tool only inserted them in four of the five power domains (PD1, PD2, PD3, PD4) leaving my TOP power domain unchanged.

When I tried adding filler cells on my TOP power domain with the command addFiller -cell SHFILL1 -powerDomain TOP I got this error:

**ERROR: (IMPSP-5110): No supply-net names for Power Domain 'TOP'.

Any ideas why? Anyone been through this? I have all nets defined in my UPF file. Besides this error I cannot add any power rings around the TOP power domain (what I do is place the rings around the core)

Thanks!

DS
 

I have been through this, yes. Innovus (and Encounter before that) has lots of buggy behaviors when you use powerDomains.

Usually the top powerDomain has interaction with the others and causes the tool to get confused. I have a chip being taped out right now where I did filler insertion BY HAND because of this.
The way you commit the power intent also matters, I have found out. Loading libraries with MMMC and having power domain in UPF/CPF makes it even crazier.

Bottomline is I don't know how to help you, but you are not alone. This functionality has been broken for years.
 

I have been through this, yes. Innovus (and Encounter before that) has lots of buggy behaviors when you use powerDomains.

Usually the top powerDomain has interaction with the others and causes the tool to get confused. I have a chip being taped out right now where I did filler insertion BY HAND because of this.
The way you commit the power intent also matters, I have found out. Loading libraries with MMMC and having power domain in UPF/CPF makes it even crazier.

Bottomline is I don't know how to help you, but you are not alone. This functionality has been broken for years.

Thank you very much for your reply! :thumbsup:

How do you insert fillers by hand?
This is making me crazy since it's the only thing missing and causes dangling wire violations...
 

Ha, you won't like this but it works

I created a tcl script that clicks on the innovus GUI, selects the instance under the clicked area, and asks for the name of the instance. if the name returns as 0x0, I know there is nothing there and a filler should be added. I do that using the addInst command

Lots of assumptions in this code about pitch, powerdomain location, etc. But you get the idea.


Code:
set counter 0

set startx 378.87
set starty 378.672

set endx 653.1
set endy 652.176

set x [expr $startx + 0.048]
set y [expr $starty + 0.048]

set total 0

while {1} {
        deselectAll

        if {$x > $endx} {
                set x [expr $startx + 0.048]
                set y [expr $y + 0.672]

                if {$y > $endy} {
                        return
                }
        }


        gui_select -point [expr $x] [expr $y]
        set ptr [dbGet selected.defName]

        if {$ptr == "0x0"} {
                zoomBox [expr $x -2] [expr $y-2] [expr $x + 2] [expr $y + 2]

                gui_select -point [expr $x] [expr $y]
                set ptr [dbGet selected.defName]

                if {$ptr == "0x0"} {
                        echo "found hole at " $x $y
                        #return
                        set name "SAM_FIX_PASS1_"
                        append name $counter
                        addInst -cell FILL1 -inst $name -loc [expr $x -0.048] $y
                        #selectInst $name
                        #highlight -color white

                        set total [expr $total +1]

                        set counter [expr $counter + 1]
                        set x [expr $x + 0.090]

                } else {
                        #echo "found cell at " $x $y

                        set x [expr $x + [dbGet selected.box_sizex]]
                }

        } else {
                #echo "found cell at " $x $y
                set x [expr $x + [dbGet selected.box_sizex]]
                #
                #set x [expr $x + 0.090]

        }

#       set x [expr $x + [dbGet selected.box_sizex]]



##
 

    V

    Points: 2
    Helpful Answer Positive Rating
If it fits, it sits!
Thank you very much, it works like a charm

Regards
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top