abby118的个人空间 https://blog.eetop.cn/?1555282 [收藏] [复制] [分享] [RSS]

日志

check rule 为了偷懒

已有 51 次阅读| 2025-9-19 16:58 |个人分类:学习笔记|系统分类:芯片设计

//////////////////////////////////////////////

// Loigc Operation                          //

//////////////////////////////////////////////

//*Form Bulk layer

DRC:1   = EXTENT

BULK    = SIZE DRC:1 BY 1.0


AA = iAA NOT DCTY

GT = iGT NOT DCTY


rpoly_m = RESP1 OR HRPDMY

rpoly = GT INTERACT rpoly_m

poly  = GT NOT (rpoly OR AA)

rdiff = AA INTERACT RESAA

rpoly_T = rpoly NOT rpoly_m

rdiff_T = rdiff NOT RESAA


gate = AA AND GT

diff_a = AA NOT (GT OR rdiff)

diff = diff_a NOT SAB

//METAL_OPTION 62

//MIM_LOCATION 56


rmetal0_T = M0 NOT RESM0

rmetal0 = M0 AND RESM0


metal1 = M1 NOT MOMMK1

metal2 = M2 NOT MOMMK2

metal3 = M3 NOT MOMMK3

metal4 = M4 NOT MOMMK4

metal5 = M5 NOT (MOMMK5 OR MIM)

metal6 = COPY TM2


metal1_m = M1 AND MOMMK1

metal2_m = M2 AND MOMMK2

metal3_m = M3 AND MOMMK3

metal4_m = M4 AND MOMMK4

metal5_m = M5 AND (MOMMK5 OR MIM)


cont = COPY CT

via0 = COPY V0

via1 = COPY V1

via2 = COPY V2

via3 = COPY V3

via4 = COPY V4

via5 = COPY TV1

via5a = via5 AND MIM 

via5b = via5 NOT MIM


//connection

//CONNECT metal0 metal0_r

CONNECT metal1 metal1_m

CONNECT metal2 metal2_m

CONNECT metal3 metal3_m

CONNECT metal4 metal4_m

CONNECT metal5 metal5_m



CONNECT poly gate


CONNECT metal1 poly BY cont

CONNECT metal1 diff BY cont

CONNECT metal1 rpoly_T BY cont

CONNECT metal1 rdiff_T BY cont

CONNECT metal1 rmetal0_T BY via0

CONNECT metal2 metal1 BY via1

CONNECT metal3 metal2 BY via2

CONNECT metal4 metal3 BY via3

CONNECT metal5 metal4 BY via4

CONNECT metal6 metal5 BY via5b

CONNECT metal6 MIM BY via5a



//check metals  not connect to AA gate res mom  

float_M1{

       metal_no = NET AREA RATIO metal1 diff gate metal1_m metal2_m metal3_m metal4_m metal5_m rdiff_T rpoly_T rmetal0_T == 0 [!!AREA(diff)+!!AREA(gate)+!!AREA(metal1_m)+!!AREA(metal2_m)+!!AREA(metal3_m)+!!AREA(metal4_m)+!!AREA(metal5_m)+!!AREA(rdiff_T)+!!AREA(rpoly_T)+!!AREA(rmetal0_T)]

       copy metal_no

      } 


float_M2{

       metal_no = NET AREA RATIO metal2 diff gate metal1_m metal2_m metal3_m metal4_m metal5_m rdiff_T rpoly_T rmetal0_T == 0 [!!AREA(diff)+!!AREA(gate)+!!AREA(metal1_m)+!!AREA(metal2_m)+!!AREA(metal3_m)+!!AREA(metal4_m)+!!AREA(metal5_m)+!!AREA(rdiff_T)+!!AREA(rpoly_T)+!!AREA(rmetal0_T)]

       copy metal_no

      } 


float_M3{

       metal_no = NET AREA RATIO metal3 diff gate metal1_m metal2_m metal3_m metal4_m metal5_m rdiff_T rpoly_T rmetal0_T == 0 [!!AREA(diff)+!!AREA(gate)+!!AREA(metal1_m)+!!AREA(metal2_m)+!!AREA(metal3_m)+!!AREA(metal4_m)+!!AREA(metal5_m)+!!AREA(rdiff_T)+!!AREA(rpoly_T)+!!AREA(rmetal0_T)]

       copy metal_no

      } 


float_M4{

       metal_no = NET AREA RATIO metal4 diff gate metal1_m metal2_m metal3_m metal4_m metal5_m rdiff_T rpoly_T rmetal0_T == 0 [!!AREA(diff)+!!AREA(gate)+!!AREA(metal1_m)+!!AREA(metal2_m)+!!AREA(metal3_m)+!!AREA(metal4_m)+!!AREA(metal5_m)+!!AREA(rdiff_T)+!!AREA(rpoly_T)+!!AREA(rmetal0_T)]

       copy metal_no

      } 


float_M5{

       metal_no = NET AREA RATIO metal5 diff gate metal1_m metal2_m metal3_m metal4_m metal5_m rdiff_T rpoly_T rmetal0_T == 0 [!!AREA(diff)+!!AREA(gate)+!!AREA(metal1_m)+!!AREA(metal2_m)+!!AREA(metal3_m)+!!AREA(metal4_m)+!!AREA(metal5_m)+!!AREA(rdiff_T)+!!AREA(rpoly_T)+!!AREA(rmetal0_T)]

       copy metal_no

      } 


float_M6{

       metal_no = NET AREA RATIO metal6 diff gate metal1_m metal2_m metal3_m metal4_m metal5_m rdiff_T rpoly_T rmetal0_T == 0 [!!AREA(diff)+!!AREA(gate)+!!AREA(metal1_m)+!!AREA(metal2_m)+!!AREA(metal3_m)+!!AREA(metal4_m)+!!AREA(metal5_m)+!!AREA(rdiff_T)+!!AREA(rpoly_T)+!!AREA(rmetal0_T)]

       copy metal_no

      } 




//check via between top and bottom metal// jin jian cha xiang lin metal de kong //

check_ct{ 

        via_all = copy cont

        ct_co = (metal1 AND diff CONNECTED) OR (metal1 AND poly  CONNECTED)

        ct_co1 = ct_co INTERACT via_all 

        ct_co1a = ct_co NOT ct_co1

        ct_co2 = ct_co1 NOT (via_all SIZE BY 0.21)

        ct_co3= (ct_co2 SIZE BY -0.09) SIZE BY 0.09

        error = ct_co3 OR ct_co1a

        copy error

        }


check_via1{

         via_all = copy via1

         via_co = metal2 AND metal1 CONNECTED

         via_co1 = via_co INTERACT via_all

         via_co1a = via_co  NOT via_co1

         via_co2 = via_co1 NOT (via_all SIZE BY 0.28)

         via_co3 = (via_co2 SIZE BY -0.11) SIZE BY 0.11

         error = via_co1a OR via_co3

         copy error

         }


check_via2{

         via_all = copy via2

         via_co = metal3 AND metal2 CONNECTED

         via_co1 = via_co INTERACT via_all

         via_co1a = via_co  NOT via_co1

         via_co2 = via_co1 NOT (via_all SIZE BY 0.28)

         via_co3 = (via_co2 SIZE BY -0.11) SIZE BY 0.11

         error = via_co1a OR via_co3

         copy error

         }


check_via3{

         via_all = copy via3

         via_co = metal4 AND metal3 CONNECTED

         via_co1 = via_co INTERACT via_all

         via_co1a = via_co  NOT via_co1

         via_co2 = via_co1 NOT (via_all SIZE BY 0.28)

         via_co3 = (via_co2 SIZE BY -0.11) SIZE BY 0.11

         error = via_co1a OR via_co3

         copy error

         }



check_via4{

         via_all = copy via4

         via_co = metal5 AND metal4 CONNECTED

         via_co1 = via_co INTERACT via_all

         via_co1a = via_co  NOT via_co1

         via_co2 = via_co1 NOT (via_all SIZE BY 0.28)

         via_co3 = (via_co2 SIZE BY -0.11) SIZE BY 0.11

         error = via_co1a OR via_co3

         copy error

         }


check_via5a{

         via_all = copy via5a

         via_co = metal6 AND MIM CONNECTED

         via_co1 = via_co INTERACT via_all

         via_co1a = via_co  NOT via_co1

         via_co2 = via_co1 NOT (via_all SIZE BY 0.35)

         via_co3 = (via_co2 SIZE BY -0.18) SIZE BY 0.18

         error = via_co1a OR via_co3

         copy error

         }


check_via5b{

         via_all = copy via5b

         via_co = metal6 AND metal5 CONNECTED

         via_co1 = via_co INTERACT via_all

         via_co1a = via_co  NOT via_co1

         via_co2 = via_co1 NOT (via_all SIZE BY 0.35)

         via_co3 = (via_co2 SIZE BY -0.18) SIZE BY 0.18

         error = via_co1a OR via_co3

         copy error

         }



check_single_CT{

                via_all = copy cont

                check_area = (metal1 AND diff) OR (metal1 AND poly)

                check_via = via_all INSIDE check_area

                check_area INTERACT check_via < 2

               }


check_single_via1{

                  via_all = copy via1

                  check_area = metal1 AND metal2

                 check_via = via_all INSIDE check_area

                 check_area INTERACT check_via < 2

               }


 check_single_via2{

                  via_all = copy via2

                  check_area = metal2 AND metal3

                 check_via = via_all INSIDE check_area

                 check_area INTERACT check_via < 2

               }


check_single_via3{

                  via_all = copy via3

                  check_area = metal3 AND metal4

                 check_via = via_all INSIDE check_area

                 check_area INTERACT check_via < 2

               }

check_single_via4{

                  via_all = copy via4

                  check_area = metal4 AND metal5

                 check_via = via_all INSIDE check_area

                 check_area INTERACT check_via < 2

               }


check_single_via5a{

                  via_all = copy via5a

                  check_area = metal5 AND MIM

                 check_via = via_all INSIDE check_area

                 check_area INTERACT check_via < 2

               }  

    

check_single_via5b{

                  via_all = copy via5b

                  check_area = metal5 AND metal6

                 check_via = via_all INSIDE check_area

                 check_area INTERACT check_via < 2

               } 



点赞

全部作者的其他最新日志

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 1

    关注
  • 1

    粉丝
  • 5

    好友
  • 5

    获赞
  • 5

    评论
  • 306

    访问数
关闭

站长推荐 上一条 /1 下一条


手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-9-20 00:36 , Processed in 0.030957 second(s), 15 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部