• 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 Design
  3. Import some particular shape in to Cadence layout L

Stats

  • Locked Locked
  • Replies 23
  • Subscribers 128
  • Views 21755
  • 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

Import some particular shape in to Cadence layout L

engine2011
engine2011 over 13 years ago

 Hi everyone,

 I want to use standard technology to fabricate a device which is basically a circle shape realized with the toppest level metal layer. Because the process resolution is 0.01um, the smooth brim of circle is not acceptable and will introduce some class a DRC errors. 

 Now I am making the brim of circle replaced by 90 degree polygon to solve these errors. The problem is, if I want to make it a good approximation to a circle, the polygon will be very complex. I can use Matlab to generate this shape without much effort, however, it will be very complex to draw it manually in Cadence. Does cadence have some function to import the shape data from Matlab?

 Thanks!

EF

  • Cancel
  • Quek
    Quek over 13 years ago

    Hi EF

    How about using "Edit->Advanced->Convert to Polygon" to convert your circle into a polygon?

    Best regards
    Quek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • engine2011
    engine2011 over 13 years ago

    Hi Quek,

     Yes, it will turn the circle to a polgon with 20 sides. But the angle between the sides are not 45 degree or 90 degree so there are still some DRC problems.

     Thanks,

    EF

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dmay
    dmay over 13 years ago

    Sounds like you would want to create a list of points from your Matlab result and then run dbCreatePolygon with that list of points. If you output the points as a list of coordinate pairs you could read the file using Skill and build your list, or simply create the coordinate pair list as a valid Skill file like this:

    skillFileCreatedByMatlab.il:
    pts = list(
    x1:y1
    x2:y2
    x3:y3
    ...
    xn:yn
    )

    load("skillFileCreatedByMatlab.il")
    dbCreatePolygon(geGetEditCellView() list("metal1" "drawing") pts)

    Derek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • engine2011
    engine2011 over 13 years ago

    Hi Derek,

     The method works, thanks a lot for your code!

    EF

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    Although I'm sure building the points in SKILL would be pretty straightforward - it seems a little excessive to have to do it in Matlab. But hey, pragmatism rules OK!

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • LCHAO
    LCHAO over 13 years ago

    Hi Derek,

    Currently I have a complicated shape in matlab generated matrix. And where it is metal I marked as '1'. And I marked SiO2 as '0'. So I have all the coordinate pair. But it is not marking the start point and ending points for the polygon. If I inport this file by the 'dbCreatePolygon' command it showed error. I would like to know for my situation, whether there is any method to successfully plot that shape quickly in Cadence layout. (such as other function, parameters or software)

    Thank you.

    Best,

    Liu

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • LCHAO
    LCHAO over 13 years ago

    In a simple word, I would like to draw many single points in the layout in one time. Or I can use nested loops. But I know nothing with the SKILL language. So I need the related functions. 

     Thank you.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dmay
    dmay over 13 years ago

    Unfortunately, I don't completely understand what you are looking for. It sounds like you want to create polygons on different layers. Since I have no idea what your output looks like I don't know how to help.

    The dbCreatePolygon is very straightforward. It takes three arguments: cellView id, layer, list of points

    If you need to create polygons on various layers you'll need to call this command multiple times.

    Derek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • LCHAO
    LCHAO over 13 years ago

    Hi Derek,

    The pattern is indicated by a matrix (array) containing only 0 and 1. I want to import such matrix into the layout. (0 is blank, 1 is metal)

    To use the function ' dbCreatePolygon'. I generate a list of points file. The list of points I have comes from this matrix where the number is '1'. It contains all the points inside the polygon not only the edges of the polygon.  

    But 'dbCreatePolygon' creates the ploygon's edge and then fill the area inside it. (that is, 'dbCreatePolygon' cannot  draw a straight line or single point)

    So is there any way to import such point matrix (array) into the layout?

    Thank you.

    Liu

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • engine2011
    engine2011 over 13 years ago

    Hi Derek,

     Liu is my friend and we are working on the same thing. What Liu basically means the matlab coordinate data are not listed in a good sequence for the command of dbCreatePolygon. For example, if we make a circle function in matlab and fit the coordinates of the points on the brim of circle to integer number, the data list generated from matlab will list the data with a stupid sequence, like X increasing or decreasing while Y is constant, then increase Y by 1 and then do the X increasing or decreasing again, and follow this loop. I basically want to say if I want Matlab to list the points long the brim of circle (precisely, not circle anymore) clockwise or anti-clockwise seems a little difficult.

     I am custom circuit designer and as I know if I want to draw a polygon I must click the vertices of the shape one by one with a sequence which can make it a close shape. And even skill language does the same thing. What Liu wants to know is, whether Cadence layout designer has a function which will not draw the points by sequence but stream in the matrix first then draw it without thinking which point is the first and which point is the second.

     In sum, as I discussed, I think the way "CreatePolygon" works determines it cannot draw a shape with the points in the list are not in sequence. Or is there any other commands can draw a shape in the layout, we don't know?

     Or, can Matlab generate a list of the cooridnates with a clockwise or anti-clockwise sequence, we need to figure out that?

     EF

     

    • 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