在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5967|回复: 20

[求助] skill脚本里面调用shell脚本

[复制链接]
发表于 2021-3-22 09:10:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
请教论坛里面的大牛,我想用skill脚本收集layout里面的一些信息,然后把收集到的信息作为参数传入shell里面,再用shell输出。请问这样可以办到吗?
发表于 2021-3-22 09:39:59 | 显示全部楼层
直接skill输出不好吗
发表于 2021-3-22 09:44:28 | 显示全部楼层
本帖最后由 fyhxyx 于 2021-3-22 11:26 编辑

在skill里面,先把所有信息写到一个文件里面,直接 shell("xxx.sh file.csv") shell读取文件执行,然后把结果写入文件,skill读取文件获取执行结果
 楼主| 发表于 2021-3-22 11:38:45 | 显示全部楼层


lalala2018 发表于 2021-3-22 09:39
直接skill输出不好吗


感谢你的回复,我想做一个skill,在一个cell中,将这个cell里面的所有当前层cell抽gds,分别保存为不同的gds。下面是一个在论坛里面看的脚本,但是不能使用。procedure( pppp()
geSelectAllFig()
selset=geGetSelSet()
celNam=selset~>cellName
i=0
while( i < length(celNam)
a=nth(i celNam)
hiiSetCurrentForm('transStreamOutForm)
transStreamOutForm->pipoPrimaryCell->value = a
transStreamOutForm->pipoLibName->value = "lib33"
transStreamOutForm->pipoOutFile->value = strcat("./gds/" a  ".gds")

streamOutKeys = list(nil
         'runDir                        "."
         'viewName                "layout"
         'scale                        0.001000
         'units                        "micron"
         'compression                "none"
         'hierDepth                32
         'convertToGeo                nil
         'maxVertices                200
         'refLib                        nil
         'libVersion                "5.0"
         'checkPolygon                nil
         'snapToGrid                nil
         'simMosAIcToArray        t
         'caseSensitivity        "preserve"
         'textCaseSensitivity        "preserve"
         'lineToZeroPath                "path"
         'convertDot        "ignore"
         'rectToBox                nil
         'convertPathToPoly        nil
         'keepPcell        nil
         'replaceBusBitChar        nil
         'useParentXYforText        nil
         'reportPrecision        nil
         'runQuiet                nil
         'comprehensiveLog                nil
         'ignorePcellEvalFail                nil
         'errFile                "IPO.LOG"
         'NOUnmappingLayerWarning                nil
         'techFileChoice                nil
         'pcellSuffix                "DbId"
         'respectGDSIILimits                nil
         'dumpPcellInfo                nil
         'genListHier                nil
         'cellMapTable                ""
         'layerTable                ""
         'textFontTable                ""
         'convertPin                "geometry"
         'pinInfo                0
         'pinTextMapTable        ""
         'propMapTable                ""
         'propSeparator                ","
         'userSkillFile                ""
         'rodDir                        ""
         'refLibList                ""


hiFormDone(transStreamOutForm)
)

i++
)
)
请问有办法解决吗?谢谢。
帖子路径http://bbs.eetop.cn/thread-896399-1-1.html
 楼主| 发表于 2021-3-22 11:40:29 | 显示全部楼层


fyhxyx 发表于 2021-3-22 09:44
在skill里面,先把所有信息写到一个文件里面,直接 shell("xxx.sh file.csv") shell读取文件执行,然后把结 ...


感谢你的回复,有办法在可以把skill里的参数直接读取到shell里面吗?不用skill将参数存在一个文档,然后用shell直接读取。谢谢。
发表于 2021-3-22 11:48:42 | 显示全部楼层


wanchengchen 发表于 2021-3-22 11:40
感谢你的回复,有办法在可以把skill里的参数直接读取到shell里面吗?不用skill将参数存在一个文档,然后 ...


你另外一个帖子里不是已经有了么
skill里面: shell(“路径/文件名.sh  libname  cellname”)
shell里面:
#!/bin/csh -f
set cellname = $2
set library = $1

 楼主| 发表于 2021-3-22 13:42:57 | 显示全部楼层


fyhxyx 发表于 2021-3-22 11:48
你另外一个帖子里不是已经有了么
skill里面: shell(“路径/文件名.sh  libname  cellname”)
shell里 ...


是这样的,但是不成功,我在skill里面抽出了顶层的cell里面子cell名字,用while循环将cellname依次传入shell脚本,但是shell脚本不识别cellname这个参数。SKILL:
procedure(pppp()
geSelectAllFig()
selset=geGetSelSet()
celNam=selset~>cellName
i=0
while( i < length(celNam)
a=nth(i celNam)
shell(“路径/脚本.sh  libname  a")
i++
);while
);proc


SHELL:
#!/bin/csh -f
set cellname = $2
set library = $1

$CDSHOME/tools/dfII/bin/strmout \
-library $library \
-strmFile $cellname.gds \
-runDir . \
-topCell $cellname \
-view layout \
-logFile strmOut.log \
-converDot node \
-case Preserve
发表于 2021-3-22 14:09:40 | 显示全部楼层


wanchengchen 发表于 2021-3-22 13:42
是这样的,但是不成功,我在skill里面抽出了顶层的cell里面子cell名字,用while循环将cellname依次传入sh ...


shell(“路径/脚本.sh  libname  a")你这里传进去的是“libname a”的字符串

换成
shell(strcat("路径/脚本.sh  " libname  a) )这样先把变量变成字符串


 楼主| 发表于 2021-3-22 14:42:05 | 显示全部楼层


fyhxyx 发表于 2021-3-22 14:09
shell(“路径/脚本.sh  libname  a")你这里传进去的是“libname a”的字符串

换成


感谢大牛的回复,目前实验成功了。
想请教下shell脚本里面参数在哪里找的呢?比如下面这段脚本前面这个-library这个参数。谢谢。
-library $library \
-strmFile $cellname.gds \
-runDir . \
-topCell $cellname \
-view layout \
-logFile strmOut.log \
-converDot node \
-case Preserve
发表于 2021-3-22 14:54:27 | 显示全部楼层


wanchengchen 发表于 2021-3-22 14:42
感谢大牛的回复,目前实验成功了。
想请教下shell脚本里面参数在哪里找的呢?比如下面这段脚本前面这个-l ...


SHELL:
#!/bin/csh -f
set cellname = $2   ($2就是第二个参数,这里赋值给临时变量,下面引用的时候,可以通过$+变量名,如$cellname就是第2个参数)
set library = $1     ($1就是第一个 参数)

$CDSHOME/tools/dfII/bin/strmout \
-library $library \  ($library对应第一个参数)
-strmFile $cellname.gds \  ($cellname对应第二个参数)
-runDir . \
-topCell $cellname \  ($cellname对应第二个参数)
-view layout \
-logFile strmOut.log \
-converDot node \
-case Preserve
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-5-4 17:33 , Processed in 0.028616 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表