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

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

SKILL语言按格式读取文件并获取指定内容(cds.lib)

已有 733 次阅读| 2023-9-18 09:21 |个人分类:SKILL|系统分类:芯片设计| Cadence, SKILL, virtuoso

接这一篇:virtuoso启动时自动sos更新.cds_project.lib文件(SKILL语言)

上次说有一个BUG,如果用户把cdslib文件放在非项目目录下,sosupdate就会捕捉不到路径,导致更新失败。所以我们需要读取用户定义在cds.lib文件中INCLUDE项目的路径。这个在此篇进行修复。

被读取cds.lib文件的格式示例:

INCLUDE ./cds_project.lib
DEFINE test ./test
UNDEFINE test1 ./test1

下面是SKILL代码:

没有注释,代码比较简单。大致思路是按行读取cds.lib文件,然后按空格分隔。判断第一列是否等于“include"(转小写),且第二列是否包含指定字符串,同时满足的情况下执行指定的SHELL命令。

inPort = infile( ddGetStartup("cds.lib") )
when( inPort
  while( gets(line inPort)
    line = parseString( line )
    col1 = nth(0 line)
    col2 = nth(1 line)
    if( and( lowerCase( col1 )=="include" index( col2 "cds_project.lib"))
    then ipcBeginProcess( sprintf( nil "$CLIOSOFT_DIR/bin/soscmd updatesel %s" col2) )
    )
  )
)
close( inPort)

这里面用到两个cadence的内置函数:ddGetStartup,ipcBeginProcess。

ddGetStartup:得到项目文件的路径

图片

ipcBeginProcess:执行命令

图片

其余相关的函数可以通过以下方式查看:

CIW 里输入命令 startFinder,或者在 Terminal 上输入 cdsFinder& . Finder 适
用于至少知道函数名的一部分,这里可以查到函数的用法简介。

图片

qrcode_for_gh_08b27cd86e53_258 (1).jpg


点赞

评论 (0 个评论)

facelist

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

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 2

    粉丝
  • 0

    好友
  • 2

    获赞
  • 1

    评论
  • 26

    访问数
关闭

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

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

GMT+8, 2024-5-18 06:20 , Processed in 0.024216 second(s), 16 queries , Gzip On, Redis On.

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