what‘s CDF of cadence?what‘s usage?tks! | Forum for …

参考:CDF cadence

.il, .ile, .cxt都是skill代码,其中.il是源码,可以用文本编辑器查看,.ile是加密过的,.cxt是编译过的,后两者用文本编辑器看不了。

在设置CDF时,经常用到w(Total Width),wf(Finger Width),simW(simulation Width)三项,一般设置w的值为A,wf为B,simW为iPar(“wf”),若nf(Fingers Number)=1,A=B。在调用symbol时,改变nf,w的值就会自动改变为nf*B。
请问各位达人,这是怎么实现的?在哪儿设计的?
我自己做的CDF一直没法实现…

这个是CDF的callback 函数起作用的。CDF 的callback函数如果不是单独装载进来的话,就是跟着库一起装载进来的,比如库子目录下有个文件libInit.il, 很多代工厂的CDF函数就是在那里定义的,不过有可能是加密的方式,打印不出来罢了。

目前可以成功加载libInit.il,但是CDF.cxt也就是CDF 的callback函数加载有问题。


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;  libInit.il
;;
;;  PDK Automation System (PAS)
;;  Cadence Design Systems
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

let( ( ddObj (success t) (libName "1830bd15ba") )

  printf("Loading %s/libInit.il ...\n" libName)

  if( ddGetObj(libName) then
    
     ;; load custom library initialization file
     when( ddObj = ddGetObj(libName nil nil "libInitCustomEnter.il")
        printf("\tLoading %s/%s ... " libName ddObj~>name)
        if( errset(load(ddGetObjReadPath(ddObj))) then
           printf("done!\n")
        else
           success = nil
           printf("failed!\n")
        )
     ) ; ** when ddObj **


     ;; load loadCxt.ile
     unless( fboundp('PasLoadLibContext)
        when( ddObj = ddGetObj(libName nil nil "loadCxt.ile")
           printf("\tLoading %s/%s ... " libName ddObj~>name)
           if( errset(load(ddGetObjReadPath(ddObj))) then
              printf("done!\n")
           else
              success = nil
              printf("failed!\n")
           ) ; ** if errset **
        ) ; ** when ddObj **
     ) ; ** unless fboundp **
     
     ;; load library context files
     if(  fboundp('PasLoadLibContext) then
        unless( PasLoadLibContext(libName libName)
           success = nil
        )
        unless( PasLoadLibContext(libName "pdkUtils")
           success = nil
        )
     else
        success = nil
     ) ; ** if fboundp **
     
     ;; load library .cdsenv file
     when( ddObj = ddGetObj(libName nil nil ".cdsenv")
        printf("\tLoading %s/%s ... " libName ddObj~>name)
        if( errset(PasEnvLoadFile(ddGetObjReadPath(ddObj))) then
           printf("done!\n")
        else
           success = nil
           printf("failed!\n")
        ) 
     ) ; ** when ddObj **
     
     ;; load library display resource file
     when(  fboundp(`drLoadDrf)     
        when( ddObj = ddGetObj(libName nil nil "display.drf")
           printf("\tLoading %s/%s ... " libName ddObj~>name)
           if( errset(drLoadDrf(ddGetObjReadPath(ddObj) nil)) then
              printf("done!\n")
           else
              success = nil
              printf("failed!\n")
           )
        ) ; ** when ddObj **
     ) ; ** when fboundp **
     
     ;; set the number of digits to be displayed to 6
     when( fboundp('aelPushSignifDigits)
        aelPushSignifDigits(6)
     )

     ;; load circuit prospector configuration
     when( ddObj = ddGetObj(libName nil nil "libInitCktPro.il")
        printf("\tLoading %s/%s ... " libName ddObj~>name)
        if( errset(load(ddGetObjReadPath(ddObj))) then
           printf("done!\n")
        else
           success = nil
           printf("failed!\n")
        )
     ) ; ** when ddObj **
     
     ;; load custom library initialization file (exit)
     when( ddObj = ddGetObj(libName nil nil "libInitCustomExit.il")
        printf("\tLoading %s/%s ... " libName ddObj~>name)
        if( errset(load(ddGetObjReadPath(ddObj))) then
           printf("done!\n")
        else
           success = nil
           printf("failed!\n")
        )
     ) ; ** when ddObj **
  else
     success = nil
  ) ; ** if ddGetObj **

  if( success then
     printf("Loaded %s/libInit.il successfully!\n" libName)
  else
     printf("Failed to load %s/libInit.il successfully!" libName)
  )
  
  t
  
) ; ** let **


cadence license server ip

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值