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

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

日志

一种基于文本的对不同电路进行批量仿真的办法

热度 10已有 310 次阅读| 2023-7-8 15:59 |个人分类:ADEXL Cadence|系统分类:芯片设计

更多文章内容,可关注“模拟小笨蛋”微信公众号,定期分享模拟IC设计相关的知识,小技巧。


同一个电路,进行PVT仿真可以用ADEXL来实现,但多个不同电路的批量仿真有什么好的办法呢?前段时间就遇到了这样一个棘手的问题,也是关于仿真的。有一个TOP电路,其系统工作模式的组合约有22种。我当然可以搭建22个Testbench,使用ADEL对每个环境进行仿真分析。但这样做精力比较分散,且同时开很多ADEL很容易让我混乱。还因为我决定不使用cadence的图形化窗口界面,开22个标签简直没眼看。所以从心理上不愿意用这种方式。于是,经过探索找到了下面的办法,解决了这个问题。


(1)首先调通一种模式,导出input.scs的仿真文本。此后的后续一切步骤都是基于该input.scs文本的;

(2)分离input.scs中的公共部分成一个个独立文件,然后用include的方式包含进来。这些公共部分包括:netist、savefile、Lib等。这么做主要是为了简化仿真文件,且之后万一修改netlist和savefile的话只需要修改一个文件。Note:netlist为顶层电路的网表;savefile为需要保存的信号文件。最终将得到一种模式下的仿真文件

(3)基于第2步的仿真文件,在其基础上进行外部激励修改,陆续得到其他21个仿真文件。至此已经得到全部22个仿真文件了。当然每一个文件都是可独立运行的,现在的问题是怎样一键运行所有的仿真文件。

(4)建立一个runSimulation的可执行文件,在其中依次写下22个仿真文件的运行指令,比如下面那样,当然这是最简单的运行指令 。

// runSimulation,command:

spectre input1.scs

spectre input2.scs

spectre input3.scs

......

(5)检查运行指令,建议在指令中包含psf文件的具体存储位置。这样做的目的是呈现出一个清晰可读的设计目录,让结果和仿真文件一一对应。

Note: 意外之喜,runSimulation中的指令是并行执行的。


写在最后:

方法是普通的,但探索的过程还是有点曲折的,还好没有卡住太久。这种方法第四步的建立可执行文件的作为最关键的一步,可以说是一个巧合,还好结果是好的。


在找出建立可执行文件运行指令的方法之前,其实已经让PYLI兄写了个简单的Sheel脚本,寥寥几句指令完全可以解决问题。但是我感觉可以用模拟人员擅长的方式来解决这个问题,只是我还没有找到办法而已。还好,源于那个巧合,还是找到了办法。这可能是模拟人员的执着吧,最终还是用了自己的方法。


我一直觉得仿真文本有三个对我来说很大的优点:

  1. 简介,不用开很多GUI;

  2. 方便,可一键执行操作;

  3. 独立,每个文件可独立执行



点赞

评论 (0 个评论)

facelist

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

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

    周排名
  • 0

    月排名
  • 0

    总排名
  • 1

    关注
  • 23

    粉丝
  • 0

    好友
  • 46

    获赞
  • 8

    评论
  • 145

    访问数
关闭

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

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

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

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