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.

SKILL file for Path and bus creation

Status
Not open for further replies.

Subhash

Newbie level 6
Joined
Jan 20, 2005
Messages
14
Helped
2
Reputation
4
Reaction score
3
Trophy points
1,283
Location
Bangalore, Karnataka, India
Activity points
110
virtuoso skill draw path

Hi Guys,
Need your help. I want to draw the Bus (metal paths) in Virtuoso Layout editor.
It takes more time for creation of a path and copy paste adjusting etc... etc...
Hence I am trying to write a code for creation of bus, for that i need to understand how the leHiCreatePath() function works.

Anyone who knows how the leHICreatePath internally works.!!!?
Or if any has already done the skill code for Bus creation please do let m e know.

Will look forward for your valuable reply.
Thanks and regards,
Subbu
 

ledefinempptemplate

Subhash said:
i need to understand how the leHiCreatePath() function works.
Subbu
Hi Subbu,
perhaps you can get info about this topic in this group, especially from this thread.
Good luck! erikl
 
  • Like
Reactions: Tprasad

    Subhash

    Points: 2
    Helpful Answer Positive Rating

    Tprasad

    Points: 2
    Helpful Answer Positive Rating
skill code bus

I would not use leHiCreate... I would say for you the easiest way is to use multi part path mpp
For example 20um wide metal bus:
;The template name is : M5_Bus_20u,
leDefineMPPTemplate(
?techId tech
?name "M5_Bus_20um"
?layer list("METAL5" "drawing")
?width 20.000000
?choppable nil
?endType "flush"
?beginExt 0.000000
?endExt 0.000000
?justification "center"
?offset 0.000000
?offsetSubPath list(
list(
?layer list("METAL5" "drawing")
?width 20.000000
?choppable t
?sep 22.000000
?justification "center"
?beginOffset 0.000000
?endOffset 0.000000
)
)
?subRect list(
list(
?layer list("METAL5" "drawing")
?width 4.000000
?length 4.000000
?choppable t
?sep 11.000000
?justification "center"
?space 4.000000
?beginOffset -5.000000
?endOffset -5.000000
?beginSegOffset 20.000000
?endSegOffset 20.000000
?gap "distribute"
)
)
) ; end of leDefineMPPTemplate procedure

You can define it by text file like this or by clicking it in layout editor in Create - Multipart Path
 

    Subhash

    Points: 2
    Helpful Answer Positive Rating
skillfile

Thank you very much Erik.
Hey the discussion u mentioned talks about changing the layer in leHiCreatePath and about changing the layer using replay files.
it was very informative but unfortunately I couldnt get much help for my goal.

If u find any other info please do let us know.
Regards,
Subbu

erikl said:
Subhash said:
i need to understand how the leHiCreatePath() function works.
Subbu
Hi Subbu,
perhaps you can get info about this topic in this group, especially from this thread.
Good luck! erikl

Added after 4 minutes:

Hi Teddy,
Thank you very much for your reply.
At present we are creating the bus by this way.
It has few drawbacks like,
- If we want to stretch one single path in this path we will not be able to do so.
- if we want to vary the width/ space then we need to edit the subpart which I feel is a tedious job.
So we are trying to implement the easier way.
Regards,
Subbu

Teddy said:
I would not use leHiCreate... I would say for you the easiest way is to use multi part path mpp
For example 20um wide metal bus:
;The template name is : M5_Bus_20u,
leDefineMPPTemplate(
?techId tech
?name "M5_Bus_20um"
?layer list("METAL5" "drawing")
?width 20.000000
?choppable nil
?endType "flush"
?beginExt 0.000000
?endExt 0.000000
?justification "center"
?offset 0.000000
?offsetSubPath list(
list(
?layer list("METAL5" "drawing")
?width 20.000000
?choppable t
?sep 22.000000
?justification "center"
?beginOffset 0.000000
?endOffset 0.000000
)
)
?subRect list(
list(
?layer list("METAL5" "drawing")
?width 4.000000
?length 4.000000
?choppable t
?sep 11.000000
?justification "center"
?space 4.000000
?beginOffset -5.000000
?endOffset -5.000000
?beginSegOffset 20.000000
?endSegOffset 20.000000
?gap "distribute"
)
)
) ; end of leDefineMPPTemplate procedure

You can define it by text file like this or by clicking it in layout editor in Create - Multipart Path
 

skill code to draw bus in the layout

Subhash said:
If u find any other info please do let us know.
offers skill tools for practical manipulation of bus routing.
 

Re: skill code bus

Hai all


I know the code for creating MultiPartpath using SKILL code..........
but i don't know, how to utilize it while writing a code...

If anybody know this, please do let me know,,


Thank U
regards,
T.Prasad
 

Re: skill code bus

I know the code for creating MultiPartpath using SKILL code..........
but i don't know, how to utilize it while writing a code...

  • Write your code into a file, named e.g. fileName
  • In the CIW type: load("fileName")
  • If necessary, you can assign a bindKey to the load statement
 
Re: skill code bus

Hai erikl,

How to create Blind Keys to select a particular layer in LSW , while designing layouts

If u know, please do let me know,,

Thank U
Regards,
T.Prasad
 

Re: skill code bus

How to create Blind Keys to select a particular layer in LSW , while designing layouts

BindKey (not: BlindKey !) definitions may depend on the C@dence version you are using, which you didn't mention yet. In version 5.1.41 you could write e.g. for activation by the key "b" :
hiSetBindKey("Layout" "<Key>b" "load(\"fileName\")")
You can write this definition into the CIW (every session), or put it into your bindkey file to be loaded automatically. Its name and location also depends on the version. For more info, better ask in one of the groups I linked to above.
 
Thank You erikl

Now i am using Virtuoso 6.1.4 version

During creation of a Pcell, how can i use multi Partpath SKILL code for creating guard ring........?

Thank U
T.Prasad

---------- Post added at 14:21 ---------- Previous post was at 14:16 ----------

Hai erikl,

why we are using both multipliers and fingers for a transistor(MOSFET) during designing
What is the difference between multipliers and fingers????
Which one is use full.........?

Thank You
Regards
T.Prasad
 

Now i am using Virtuoso 6.1.4 version
During creation of a Pcell, how can i use multi Partpath SKILL code for creating guard ring........?
I've got no experience with Virtuoso 6.1.4, sorry! Pls. search or ask in the appropriate !

---------- Post added at 14:21 ---------- Previous post was at 14:16 ----------
why we are using both multipliers and fingers for a transistor(MOSFET) during designing
What is the difference between multipliers and fingers????
Which one is use full.........?

Both: Multipliers are for a corresponding number of identical single transistors, whereas finger is for one single transistor with <finger_count> of gate fingers.
 

Re: ledefinempptemplate

Hi erikl,

I want to draw inductor using cadence virtuoso 6.1.4 version. what are the different parameters we have, for an inductor??
 

Thank You erikl,

I have a small doubt...
I saw transistors parameter defined as w=1u, l=2.5u, m/nf=4/5 and total M=20
what is the meaning of m/nf?
Is it dividing the width 5 times and repeating it 4 times....?

According to your replied yesterday, is it 4 identical transistors...?

Thank You
Regards
T.Prasad
 

Re: virtuoso skill draw path

Hi guys,
Can we us any no of fingers is there any disadvantages while using large no of fingers.If there is no limit to no of fingers why we are using multiplier.
 

I saw transistors parameter defined as w=1u, l=2.5u, m/nf=4/5 and total M=20
what is the meaning of m/nf?
Is it dividing the width 5 times and repeating it 4 times....?
According to your replied yesterday, is it 4 identical transistors...?

If total M=20 I'd think this means 4 identical transistors with 5 fingers of w=1u, l=2.5u each. wtotal = 20µ .

---------- Post added at 09:44 ---------- Previous post was at 09:38 ----------

If there is no limit to no of fingers why we are using multiplier.
If you need matching of transistors (current mirrors, differential stages), you should make a symmetrical (common centroid) layout, which could mean a mix of several identical transistors. That's why you need the multiplier.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top