找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1365|回复: 1

[转帖] virtuoso文件被锁打不开解决方法

[复制链接]

17

主题

0

回帖

103

积分

技术员

积分
103
发表于 2024-3-27 08:34:42 | 显示全部楼层 |阅读模式
本帖最后由 huoying 于 2024-3-27 08:36 编辑

Cadence软件使用过程中偶尔会遇到文件被lock的情况,这是Cadence软件对文件的一种保护措施,大部分情况都是对用户友好的,但是偶尔也会给用户带来困扰,给工作带来的一定的不便。
文件是如何被锁的
Cadence在用户打开文件进行编辑的时候会在文件的同一级目录新建一个lock文件,用来标识文件的状态。
一般情况下如果文件被正常关闭,这个lock文件会在文件关闭或者程序退出的时候自动删除。
可是如果编辑过程中文件被非正常关闭,软件来不及删除对应的lock文件就会导致下一次文件无法以编辑模式打开,需要用户去该文件的所在路径删除遗留的lock文件。

Using the CLS Administrative Tool
Cadence提供了CLS Administrative Tool给用户使用,通过这个工具,用户可以随时查看或者释放lock文件。
使用CLS Administrative Tool管理lock文件比用户直接去某一目录下操作lock文件要安全并且方便很多,通过CLS Administrative Tool可以轻易完成以下几个工作:
  • 解锁指定的文件(删除指定目录下的lock文件)
  • 查看某一目录及其子目录下所有的lock文件
  • 删除某一目录及其子目录下所有的lock文件
  • 删除所有CLS格式的lock文件,无论该文件在何时、何地创建

CLS Administrative Tool还可以实现其它功能,感兴趣的同学可以自行在Cadence Help中搜索与CLS Administrative Tool相关的内容,进行更深入的学习。CLS Administrative Tool可以运行在交互式界面或者命令行模式,小目同学觉得它运行在命令行模式更加方便,也与脚本实现更加相近,所以这里只简单介绍一下它运行在命令行模式下的内容。
CLS Administrative Tool运行命令
命令功能描述
clsAdminTool -ale directoryHierarchy列出该文件夹及其子文件夹下所有lock文件
clsAdminTool -are directoryHierarchy删除该文件夹及其子文件夹下所有lock文件
clsAdminTool -asre filePath删除该文件对应的lock文件
直接在终端中输入上面命令,可以运行CLS Administrative Tool并输出相应的结果,下面是输出信息。

使用skill脚本运行命令
有了上面的铺垫应该很容易想到,所谓的删除lock文件的脚本最简单、最安全的方法就是编写一个skill脚本,可以按照需要执行上面的命令。恰好,skill脚本提供sh()函数,可以在skill脚本中执行shell命令。
根据需要编写了一个skill脚本,其中定义了一个函数和一个快捷键,在需要删除lock文件的时候使用相应的快捷键调用一遍函数运行lock文件删除命令即可。
  1. /**********************************************************************
  2. *author     :   Write by Official Wechat Account: ICSkillSharing
  3. *date       :   2020-08-07
  4. *function   :   Delete lock files
  5. **********************************************************************/

  6. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  7. ;;; start Delete Lock Files
  8. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

  9. ;;; bindkeys

  10. hiSetBindKeys("Layout"
  11.     list(
  12.         list("<Key>D" "view_delete_lock_file_cb()")
  13.     )
  14. )

  15. hiSetBindKeys("Schematics"
  16.     list(
  17.         list("<Key>D" "view_delete_lock_file_cb()")
  18.     )

  19. procedure( view_delete_lock_file_cb( )
  20.     sh(strcat("clsAdminTool -asre " geGetWindowCellView( hiGetCurrentWindow( ) )~>fileName))
  21.     printf("Delete lock file for view: %s" geGetWindowCellView( hiGetCurrentWindow( ) )~>cellName )
  22. ); procedure

  23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  24. ;;; end Delete Lock Files
  25. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
复制代码
很多时候只删除一个文件的lock文件可能还无法满足需求,将脚本完善,分别为单个文件和库定义删除lock文件的函数。
  1. /**********************************************************************
  2. *author     :   Write by Official Wechat Account: ICSkillSharing
  3. *date       :   2020-08-07
  4. *function   :   Delete lock files
  5. **********************************************************************/

  6. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  7. ;;; start Delete Lock Files
  8. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

  9. ;;; bindkeys

  10. hiSetBindKeys("Layout"
  11.     list(
  12.         list("<Key>D" "view_delete_lock_file_cb()")
  13.         ;list("Shift<Key>D" "lib_delete_lock_file_cb()")
  14.     )
  15. )

  16. hiSetBindKeys("Schematics"
  17.     list(
  18.         list("<Key>D" "view_delete_lock_file_cb()")
  19.         ;list("Shift<Key>D" "lib_delete_lock_file_cb()")
  20.     )
  21. )

  22. procedure( view_delete_lock_file_cb( )
  23.     sh(strcat("clsAdminTool -asre " geGetWindowCellView( hiGetCurrentWindow( ) )~>fileName))
  24.     printf("Delete lock file for view: %s" geGetWindowCellView( hiGetCurrentWindow( ) )~>cellName )
  25. ); procedure

  26. procedure( lib_delete_lock_file_cb( )
  27.     sh(strcat("clsAdminTool -are " ddGetObjReadPath(geGetWindowCellView( hiGetCurrentWindow( ) )~>lib)))
  28.     printf("Delete lock file for library: %s" geGetWindowCellView( hiGetCurrentWindow( ) )~>libName )
  29. ); procedure

  30. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  31. ;;; end Delete Lock Files
  32. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
复制代码


本帖子中包含更多资源

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

×
EDA1024论坛免责声明
请勿上传侵权资料及软件! 如果发现资料侵权请及时联系,联系邮件: fenxin@fenchip.com QQ: 2322712906. 我们将在最短时间内删除。

0

主题

21

回帖

621

积分

工程师助理

积分
621
发表于 2024-4-23 23:26:58 | 显示全部楼层
非常好!谢谢!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|EDA1024技术论坛

GMT+8, 2024-12-19 06:53 , Processed in 0.043042 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表