• 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. Custom IC SKILL
  3. how to add a special layer for a custom transistor (pcells...

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 144
  • Views 14720
  • 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

how to add a special layer for a custom transistor (pcells) in a techfile

fuelectronics
fuelectronics over 12 years ago

In a standard techfile provided by Cadence (as an example in cadence_inst/tools.lnx86/dfII/samples/ROD/rodPcells), i can sucessfully creat the mos devices as the pcells. But for some reasons, i need to add another speical layer (its shaper and position should be the same as either nwell in nmos or pwell in pmos) in my mos devices, my question is how to modify this previous techfile (either mos.device or mos.il) to produce a new Pcell ? 

Thanks in advance

 

  • Cancel
  • berndfi
    berndfi over 12 years ago

    The file you are talking about "mos.device" or "mos.il" are not techfiles these is the PCell
    SKILL code. As I don’t know your code I assume one contains the PCell drawing routine and the
    other one does the compilation into the library with "pcDefinePCell".

    For that reason the question is not quite clear.
    - If you just want to add a shape with an existing layer to your PCell
      you can do the  this with either dbCreate* or rodCreate* SKILL functions
      in the PCell SKILL code.
    - If you really need a new layer in the Virtuoso techfile you have to
      modify your current techfile or a new techfile.
      CIW -> Tools -> Techfile Manager ...

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • fuelectronics
    fuelectronics over 12 years ago

    Thanks for your answers, as you said, i want to another existing layer in my PCELL codes.

    i think you guesses are right for the functionalities of the mos.device and mos.il files, and you can have a look at them.

    They are loaded in the  /cadence/tool/defII/samples/ROD/rodPcells/components/mos.

    I try to add dbCreat skill funtion in the mos.il file,but it does not show any difference. 

    Could you please give me the inputs in more details? 

     

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • berndfi
    berndfi over 12 years ago

     - In my opinion the example is too complicated for a beginner to understand PCell coding.
    - The example comes with a bunch of SKILL utility function for which it is hard to understand what’s
      going on behind the scenes.

    I don’t want to try how this is meant to be used by Cadence because I don’t need it actually.

    You can try adding the following to the mos.il code.

       when( well?

                         WellObject = rodCreateRect(
                            ?layer wellLayer
                            ?width car(car(gate~>dbId~>points))
                        + leftStretch + transistor_length
                        + rightStretch
                        + wellOverLapDiffusion*2
                            ?length finger_width + wellOverLapDiffusion*2
                            ?origin -(transistor_length*.5 + leftStretch +
                                    wellOverLapDiffusion)
                                    : -wellOverLapDiffusion
                                    )
                         ;; added new well object here            
                         WellObject2 = rodCreateRect(
                            ?layer <youNewLayer>
                            ?width car(car(gate~>dbId~>points))
                        + leftStretch + transistor_length
                        + rightStretch
                        + wellOverLapDiffusion*2
                            ?length finger_width + wellOverLapDiffusion*2
                            ?origin -(transistor_length*.5 + leftStretch +
                                    wellOverLapDiffusion)
                                    : -wellOverLapDiffusion
                                    )
                                      
            )
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • fuelectronics
    fuelectronics over 12 years ago

    it is a good idea, but it creats a very strange mos devices. 

    anyway, i think i need more time to figure it out. thanks.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • berndfi
    berndfi over 12 years ago

     Check if the "WellObject" is aligned to some other object in the code 

    with the "rodAlign" function. If yes repeat this with the second well object.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • fuelectronics
    fuelectronics over 12 years ago

     Thanks a lot, I drop this "Wellobject" word, and directly draw the RodCreat*. 

     It works quite well. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

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