Ah, you want to know how multi-cut contacts are specified in the XML. That is explained in the page on technology XML files:

    https://www.staticfreesoft.com/jmanual/mchap08-10.html

Look for the term "multicutbox" and you will see where these contact arrangements are defined.

   -Steven Rubin

On 11/30/2020 7:18 AM, Alexandre Rusev wrote:
My question may be unclear, sorry.

I mean node cuts scaling rules. This is about  how to add cuts or vias automatically when we are increasing size of resistor or capacitor.



Where the cut replication rules are coded in this  fragment of XML desc?
(How cuts are placed when size of resistor scaled in X/Y directions)

    <primitiveNode name="Hi-Res-Poly2-Resistor" fun="RESHIRESPOLY2">
        <nodeBase>
            <box>
                <lambdaBox klx="-20.0" khx="20.0" kly="-5.0" khy="5.0"/>
            </box>
        </nodeBase>
        <nodeLayer layer="Hi-Res" style="FILLED">
            <box>
                <lambdaBox klx="-22.0" khx="22.0" kly="-7.0" khy="7.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Metal-1" style="FILLED">
            <box khx="-1.0">
                <lambdaBox klx="-27.0" khx="-23.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Metal-1" style="FILLED" portNum="1">
            <box klx="1.0">
                <lambdaBox klx="23.0" khx="27.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="*Poly-Cut*" style="FILLED">
            <multicutbox khx="-1.0" sizex="2.0" sizey="2.0" sep1d="3.0" sep2d="3.0">
                <lambdaBox klx="-26.0" khx="-24.0" kly="0.0" khy="0.0"/>
            </multicutbox>
        </nodeLayer>
        <nodeLayer layer="Poly-Cut" style="FILLED">
            <multicutbox klx="1.0" sizex="2.0" sizey="2.0" sep1d="3.0" sep2d="3.0">
                <lambdaBox klx="24.0" khx="26.0" kly="0.0" khy="0.0"/>
            </multicutbox>
        </nodeLayer>
        <nodeLayer layer="Polysilicon-2" style="FILLED">
            <box>
                <lambdaBox klx="-30.0" khx="30.0" kly="-5.0" khy="5.0"/>
            </box>
        </nodeLayer>
        <primitivePort name="left">
            <portAngle primary="0" range="180"/>
            <portTopology>0</portTopology>
            <box khx="-1.0">
                <lambdaBox klx="-26.0" khx="-24.0" kly="-1.0" khy="1.0"/>
            </box>
            <portArc>Metal-1</portArc>
        </primitivePort>
        <primitivePort name="right">
            <portAngle primary="0" range="180"/>
            <portTopology>1</portTopology>
            <box klx="1.0">
                <lambdaBox klx="24.0" khx="26.0" kly="-1.0" khy="1.0"/>
            </box>
            <portArc>Metal-1</portArc>
        </primitivePort>
    </primitiveNode>




*I mean the question in the sense of this paragraph*:
https://www.staticfreesoft.com/jmanual/mchap08-09.html

Quotation of Chap08-09:
<<When all of the geometry, highlighting, and ports have been placed, you can double-check your work with the *Identify Primitive Layers* command (in menu *Edit / Technology Editing*), which will display this information (note that the port name "Center" has been moved away for clarity):
Figure 8.21

The final step in the definition of this node is to create three more copies that illustrate scaling in both axes. This is done simply by selecting all five objects and using the *Duplicate* command (in menu *Edit*). Once duplicated in a new location, each piece must be stretched appropriately. In this example, the contact cut is designed so that the number of cut elements grows with the node. Thus, when stretched horizontally or vertically, there are two cuts, and when stretched in both directions there are four cuts. The technology editor will determine precise multicut rules from the cut spacing and the amount of stretch, so that even more cuts will appear as the node grows larger. The finished node definition is shown below. All that is necessary is to convert this library back to a technology, and the new technology will have this node.

Figure 8.22

>>


On Mon, Nov 30, 2020 at 9:30 AM <[email protected] <mailto:[email protected]>> wrote:

    [email protected]
    
<https://groups.google.com/forum/?utm_source=digest&utm_medium=email#!forum/electricvlsi/topics>
        Google Groups
    
<https://groups.google.com/forum/?utm_source=digest&utm_medium=email/#!overview>
        
<https://groups.google.com/forum/?utm_source=digest&utm_medium=email/#!overview>

    Topic digest
    View all topics
    
<https://groups.google.com/forum/?utm_source=digest&utm_medium=email#!forum/electricvlsi/topics>


      * [No Subject] <#m_1881890056990299367_group_thread_0> - 2 Updates
      * Digest for [email protected] - 2 updates in 1
        topic <#m_1881890056990299367_group_thread_1> - 1 Update

    [No Subject]
    
<http://groups.google.com/group/electricvlsi/t/971c11eb4012fcb6?utm_source=digest&utm_medium=email>

    Alexandre Rusev <[email protected]
    <mailto:[email protected]>>: Nov 30 12:38AM +0300

    Looking into Electric docs I don't see extensible explanation
    ("Creating
    new technologies") how scaling rules are coded for nodes in XML file.

    I need to parse code implementation to make it out ...

    Could anyone point out document, where scaling of teh nodes in XML is
    explained?
    Steven Rubin <[email protected]
    <mailto:[email protected]>>: Nov 29 01:58PM -0800

    The only scaling rules available for a technology are the "scale
    units"
    that convert lambda distances (the scalable value) to nanometers.
    This
    scale appears near the top of the XML file and is controllable
    from the
    "Technology / Units" Preferences. There is no way to adjust the
    details
    of a technology from this scale.

       -Steven Rubin

    On 11/29/2020 1:38 PM, Alexandre Rusev wrote:

    Back to top <#m_1881890056990299367_digest_top>
    Digest for [email protected] - 2 updates in 1 topic
    
<http://groups.google.com/group/electricvlsi/t/a34c1ca71611385a?utm_source=digest&utm_medium=email>

    Alexandre Rusev <[email protected]
    <mailto:[email protected]>>: Nov 29 12:56PM +0300

    Ok.

    Before having good understanding of scaling algos in Electric I am not
    ready to code scaling rule infering appropriately ;)
    (straight forward approaches to fix it don't work for me)
    Postponing my efforts on this direction in favour of using XML
    description

    But it would be convenient to use advantage of placing geometries
    using
    GUI, than add scaling rules in textual form.


    Adam had to implement a special code generator due to generate complex
    geometries for Sky130..

    Would you like to include his code to the main repository as example
    tech-generator?
    https://gitlab.com/westernsemico/com.westernsemico.vlsi


    Alex

    Back to top <#m_1881890056990299367_digest_top>
    You received this digest because you're subscribed to updates for
    this group. You can change your settings on the group membership
    page
    
<https://groups.google.com/forum/?utm_source=digest&utm_medium=email#!forum/electricvlsi/join>.
    To unsubscribe from this group and stop receiving emails from it
    send an email to [email protected]
    <mailto:[email protected]>.

--
You received this message because you are subscribed to the Google Groups "Electric VLSI Editor" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>. To view this discussion on the web visit https://groups.google.com/d/msgid/electricvlsi/CACoSTqJSDYN%2Bk%3DKrStCEA5yivPeAEN-nqbZC7D-zjdgrTACS9g%40mail.gmail.com <https://groups.google.com/d/msgid/electricvlsi/CACoSTqJSDYN%2Bk%3DKrStCEA5yivPeAEN-nqbZC7D-zjdgrTACS9g%40mail.gmail.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups "Electric 
VLSI Editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/electricvlsi/ad0a9815-f328-fde5-2ac5-07831d5f52b4%40staticfreesoft.com.

Reply via email to