IC6.X question

P

PolyPusher

Guest
Hi,

I am new to Virtuoso IC6.X and wish to do the following.

I want to make a "bus"(in this case I mean "a collection of nets to be
routed together" not a vectored bus) in a defined channel. From
reading the manual it appears I need to make a bus of Geometric Wires
in the channel and the router will hook up to the bus. Sounds
good! How do I collect the nets to be routed in the channel and lay
the bus of Geometric Wires?(I have code to get the nets in a list box
if that helps us, see how I pulled you and I into a "us")

What router do I use? Can I specify my bus as routes to be routed?

Any and all feedback is appreciated.

Thank you,
Eric
 
PolyPusher <eric.d.fitzsimmons@gmail.com> writes:

I am new to Virtuoso IC6.X and wish to do the following.
Which version do you use?

I want to make a "bus"(in this case I mean "a collection of nets to be
routed together" not a vectored bus) in a defined channel. From
reading the manual it appears I need to make a bus of Geometric Wires
in the channel and the router will hook up to the bus.
Why do you think you need *geometric* wires?

AFAIK, automatic routing and assisted wire edition works only with
"symbolic" wires, ie. pathsegs in route.

Sounds good! How do I collect the nets to be routed in the channel and
lay the bus of Geometric Wires?(I have code to get the nets in a list box
if that helps us, see how I pulled you and I into a "us")

What router do I use? Can I specify my bus as routes to be routed?
I'm far from knowledgeable in the automatic router, but in principle:

- create a bus constraint to collect all the nets
(this can be already imported from the schematic if you used a constraint
driven flow)
- use the "constraints" workspace
- select the net in the navigator (on the left)
- create the constraint with the constraint manager:
(second icon, routing constraint, bus)
- launch the autorouter (Route|Automatic routing...)
- selected nets (I assume they are still selected from previous step)
- route net of type BUS (in the middle)
- (other settings as wanted...)
- run

You can create pre-route which will be used by the router if they are
deemed helpfull with the CreateWire command. If you do so, you may want to
use the option "lock existing routes" (options button just below the route
net of type setting).

Yours,

--
Jean-Marc
 
PolyPusher <eric.d.fitzsimmons@gmail.com> writes:

1. I need all the excusive nets between my synth block and the three
others in a list of some sort.
....
So, at this point I am confused. It would be ok to use Geometric
wires and NOT ok to use Symbolic since I cannot have the router change
the bus, is that correct? However, it sound like you can use
CreateWire which produces symbolic and lock it. Seems like in this
case it does the same thing?
Yes. There was a misunderstanding on my part: I though you wanted the
router to create geometric wires.

How to make your choice? My understanding (that's not really my area of
expertise) is that when you DEF out, geometric wires will appear in the
special net section of DEF, symbolic one in the normal net section and so
usually you want symbolic one.

Sounds like I will have to write a script for step 1 above to get a
list, anyway given to the user to draw a bus from a list(a function)?
Starting CW/CGW and then (leSetEnv "netNames" "n1,n2,n3") should do what you
want.

Constraints are needed for the router considering the nets are a bus and
apply bus related algorithms.

If you start from a pin whose net has a bus constraint, CW will
automatically picks all the other nets of the bus, starting from related
pins.

Yours,

--
Jean-Marc
 
On Sep 30, 10:02 am, Jean-Marc Bourguet <j...@bourguet.org> wrote:
PolyPusher <eric.d.fitzsimm...@gmail.com> writes:
I am new to Virtuoso IC6.X and wish to do the following.

Which version do you use?

I want to make a "bus"(in this case I mean "a collection of nets to be
routed together" not a vectored bus) in a defined channel.   From
reading the manual it appears I need to make a bus of Geometric Wires
in the channel and the router will hook up to the bus.  

Why do you think you need *geometric* wires?

AFAIK, automatic routing and assisted wire edition works only with
"symbolic" wires, ie. pathsegs in route.

Sounds good!  How do I collect the nets to be routed in the channel and
lay the bus of Geometric Wires?(I have code to get the nets in a list box
if that helps us, see how I pulled you and I into a "us")

What router do I use?  Can I specify my bus as routes to be routed?

I'm far from knowledgeable in the automatic router, but in principle:

- create a bus constraint to collect all the nets
 (this can be already imported from the schematic if you used a constraint
 driven flow)
   - use the "constraints" workspace
   - select the net in the navigator (on the left)
   - create the constraint with the constraint manager:
      (second icon, routing constraint, bus)
- launch the autorouter (Route|Automatic routing...)
   - selected nets (I assume they are still selected from previous step)
   - route net of type BUS (in the middle)
   - (other settings as wanted...)
   - run

You can create pre-route which will be used by the router if they are
deemed helpfull with the CreateWire command.  If you do so, you may want to
use the option "lock existing routes" (options button just below the route
net of type setting).

Yours,

--
Jean-Marc
Hello,

I am using 6.1.4.

How I came up with Geometric paths is from the manual:

"Geometric wires are created using paths, pathSegs, and vias that are
not contained within a route. Paths cannot be placed in routes,
therefore, paths are always geometric data. Geometric wires can be
created in L, XL, and GXL. Geometric wires are used for special
routing (power, ground, clock, and so on). Geometric wires can be used
to create custom interconnect that auto signal routers do not modify
when re-routing, ripping-up, and pushing wires. The autorouter does
not create, delete, or re-route geometric data but it may connect to
geometric data."

The last sentence is why I think I want Geometric. I do not want the
router to attempt to route all these nets ever. I want the router to
route from my "bus" to each block.

Maybe if I speak of the floor plan and what I want a bit it will make
sense, I have a synthesed block that has control signals going to
three other blocks.

1. I need all the excusive nets between my synth block and the three
others in a list of some sort.
2. From this list I want to lay down wires with nets attached that
the router can connect to but not change
3. After placement of the wires from step two(what I was calling the
"bus") I want the router to route from each block to my wire in the
shortest distance.

So, at this point I am confused. It would be ok to use Geometric
wires and NOT ok to use Symbolic since I cannot have the router change
the bus, is that correct? However, it sound like you can use
CreateWire which produces symbolic and lock it. Seems like in this
case it does the same thing?

Sounds like I will have to write a script for step 1 above to get a
list, anyway given to the user to draw a bus from a list(a function)?

Thank you for your help!
Eric
 
PolyPusher <eric.d.fitzsimmons@gmail.com> writes:

On Sep 30, 11:32 am, Jean-Marc Bourguet <j...@bourguet.org> wrote:

In this case I am calling a bus a subset of parent nets, not a vectored
bus. I am worried that that distinction matters.
No. Interactive commands act on any set of nets (as long as they don't
have conflicting constraints), automatic one use bus constraints. There is
purposely no relationship with vectored bits: it is wanted too often to
split vectored bits in several busses and to group other signal as a bus.

To be careful my list that makes up my bus that I need to draw with
one CW/CGW could look like this

"Cat"
"Dog"
"Fish"
"Frog"
"AnimalControl<0:32>"
"PETA"

So from the list above, I want to draw all of them at one time.
This is possible or no?
(leSetEnv "netNames" "Cat,Dog,Fish,Frog,AnimalControl<0:32>,PETA")

should do what you want (if not, try expanding AnimalControl in individual
bits: AnimalControl<0>,AnimalControl<1>...)

Yours,

--
Jean-Marc
 
On Sep 30, 11:32 am, Jean-Marc Bourguet <j...@bourguet.org> wrote:
PolyPusher <eric.d.fitzsimm...@gmail.com> writes:
1.  I need all the excusive nets between my synth block and the three
others in a list of some sort.
...
So, at this point I am confused.    It would be ok to use Geometric
wires and NOT ok to use Symbolic since I cannot have the router change
the bus, is that correct?   However, it sound like you can use
CreateWire which produces symbolic and lock it.   Seems like in this
case it does the same thing?

Yes.  There was a misunderstanding on my part: I though you wanted the
router to create geometric wires.

How to make your choice?  My understanding (that's not really my area of
expertise) is that when you DEF out, geometric wires will appear in the
special net section of DEF, symbolic one in the normal net section and so
usually you want symbolic one.

Sounds like I will have to write a script for step 1 above to get a
list, anyway given to the user to draw a bus from a list(a function)?

Starting CW/CGW and then (leSetEnv "netNames" "n1,n2,n3") should do what you
want.

Constraints are needed for the router considering the nets are a bus and
apply bus related algorithms.

If you start from a pin whose net has a bus constraint, CW will
automatically picks all the other nets of the bus, starting from related
pins.

Yours,

--
Jean-Marc
In this case I am calling a bus a subset of parent nets, not a
vectored bus. I am worried that that
distinction matters.

You wrote:
Starting CW/CGW and then (leSetEnv "netNames" "n1,n2,n3") should do
what you
want

Are you saying start Create Wire OR Create Geometric Wire and for each
net I can do the above
Such as:

Start command
leSetEnv "MyVectorEdBusName" "n1,n2,n3"
leSetEnv "NoVectoredVregCNTRLNet"
leSetEnv "KeepDoingThisUntilYouHaveEnteredAllNetsOfInterest";bus as I
defined it NOT just a vector.

Pick a place on the canvas and draw this bus.

To be careful my list that makes up my bus that I need to draw with
one CW/CGW could look like this

"Cat"
"Dog"
"Fish"
"Frog"
"AnimalControl<0:32>"
"PETA"

So from the list above, I want to draw all of them at one time.
This is possible or no?

Thanks!
Eric
 
On Sep 30, 12:40 pm, Jean-Marc Bourguet <j...@bourguet.org> wrote:
PolyPusher <eric.d.fitzsimm...@gmail.com> writes:
On Sep 30, 11:32 am, Jean-Marc Bourguet <j...@bourguet.org> wrote:
In this case I am calling a bus a subset of parent nets, not a vectored
bus.  I am worried that that distinction matters.

No.  Interactive commands act on any set of nets (as long as they don't
have conflicting constraints), automatic one use bus constraints.  There is
purposely no relationship with vectored bits: it is wanted too often to
split vectored bits in several busses and to group other signal as a bus.

To be careful my list that makes up my bus that I need to draw with
one CW/CGW could look like this

"Cat"
"Dog"
"Fish"
"Frog"
"AnimalControl<0:32>"
"PETA"

So from the list above, I want to draw all of them at one time.
This is possible or no?

(leSetEnv "netNames" "Cat,Dog,Fish,Frog,AnimalControl<0:32>,PETA")

should do what you want (if not, try expanding AnimalControl in individual
bits: AnimalControl<0>,AnimalControl<1>...)

Yours,

--
Jean-Marc
Wow, that is great!

One more thing, do you understand these two sentences from "Wire
Elements" in the manual

Geometric Wires
Geometric wires are created using paths, pathSegs, and vias that are
not contained within a route.

Symbolic Wires
Symbolic wires are created using pathSegs and vias that are contained
within routes.

What does the word "route" mean as used in this sentence? Symbolic
Wires ... "within routes."

Geometric Wires.... "not contained within a route."

Thank you for your help,
Eric
 
PolyPusher <eric.d.fitzsimmons@gmail.com> writes:

On Sep 30, 12:40 pm, Jean-Marc Bourguet <j...@bourguet.org> wrote:
What does the word "route" mean as used in this sentence? Symbolic
Wires ... "within routes."

Geometric Wires.... "not contained within a route."
Route is an object in the database. They represent a linear connection
between two end points (which are terminals, instTerms or "steiner",
junctions between several routes). Pathsegs, vias (and guides) may be put
in a route.

They are used by the routers and my understanding is that interoperability
implies that it is preferable that they are present.

Yours,

--
Jean-Marc
 
On Oct 1, 2:19 am, Jean-Marc Bourguet <j...@bourguet.org> wrote:
PolyPusher <eric.d.fitzsimm...@gmail.com> writes:
On Sep 30, 12:40 pm, Jean-Marc Bourguet <j...@bourguet.org> wrote:
What does the word "route" mean as used in this sentence?   Symbolic
Wires ...  "within routes."

Geometric Wires....  "not contained within a route."

Route is an object in the database.  They represent a linear connection
between two end points (which are terminals, instTerms or "steiner",
junctions between several routes).  Pathsegs, vias (and guides) may be put
in a route.

They are used by the routers and my understanding is that interoperability
implies that it is preferable that they are present.

Yours,

--
Jean-Marc
Ok, I get it now. Can you place your explanation in the manual ;)
You have been a great help. I really appreciate it.

Regards,
Eric
 
PolyPusher <eric.d.fitzsimmons@gmail.com> writes:

Actually I think you meant leSetEnv( "netName" "CAT,Dog,Whatever") ie
netName not netNames.
Right.

I am not posting this to be difficult, but in case someone tries to
use the info.
Typo can be a pain to track out. Especially when you don't know if it is a
typo or a misunderstanding at the source of your problem.

Yours,

--
Jean-Marc
 
On Oct 1, 2:19 am, Jean-Marc Bourguet <j...@bourguet.org> wrote:
PolyPusher <eric.d.fitzsimm...@gmail.com> writes:
On Sep 30, 12:40 pm, Jean-Marc Bourguet <j...@bourguet.org> wrote:
What does the word "route" mean as used in this sentence?   Symbolic
Wires ...  "within routes."

Geometric Wires....  "not contained within a route."

Route is an object in the database.  They represent a linear connection
between two end points (which are terminals, instTerms or "steiner",
junctions between several routes).  Pathsegs, vias (and guides) may be put
in a route.

They are used by the routers and my understanding is that interoperability
implies that it is preferable that they are present.

Yours,

--
Jean-Marc
Actually I think you meant leSetEnv( "netName" "CAT,Dog,Whatever") ie
netName not netNames.
I am not posting this to be difficult, but in case someone tries to
use the info.

Thank you,
Eric
 

Welcome to EDABoard.com

Sponsor

Back
Top