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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5850|回复: 7

[求助] 深度讨论—tessent工具做ATPG以后进行后仿,定义的时钟始终为Z态,请教各位坛友如何解决

[复制链接]
发表于 2020-8-21 19:12:37 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 IC菜鸟无敌 于 2020-8-21 19:20 编辑

各位亲爱的坛友大神们,目前遇到一个问题,一直无法解决,请教一下大家。
项目阶段:DFT模式下做后仿。目前我们的项目进展已经做完了PR和PT,后端工程师已经把SDF和PR后的网表交付了过来,现在我用PR后的网表,完成了ATPG相关的流程,用的是tessent工具。这一过程生成了stil格式的pattern和用于后仿的.Verilog格式的testbench。说明一下这是在做transition测试的时候遇到的问题。ATPG流程中fault_type主要是SA和transition。这些基本常识大牛们自然都清楚,不用我多说了。

项目说明:我们公司在做的是一款模数混合芯片,我们公司采取的是模拟包数字的方式,其实挺复杂的,准确的说是模拟包数字,数字又包了几个模拟的小模块。我们芯片的顶层是模拟部分,模拟部分例化了数字顶层;然后数字部分内部又例化了几个模拟小模块。数字部分内部例化的几个模拟小模块很重要,芯片数字部分使用的所有时钟全部是由这几个模拟小模块提供的,数字部分没有使用外部的时钟源。类似于下图所示的情况。
image.png

如上图所示有两个模拟模块analog_A和analog_B。这两个模拟模块是在数字顶层中例化。而模拟顶层又例化了数字顶层。这就是所谓的模拟包数字,数字又包模拟。其中analog_A模块产生时钟CLK_A和CLK_B;analog_B模块产生时钟CLK_C和CLK_D。数字部分的所有模块都是使用CLK_A、CLK_B、CLK_C、CLK_D这四个时钟信号。上图的四个低速时钟信号A/B/C/D都是DFT的clock,不是function clock。也就是说数字部分的所有时钟都是由analog_A和analog_B这两个模拟模块提供。
因为我们是模数混合芯片,所以我们数字部分做DFT时,只有数字部分的网表,没有模拟部分的网表,在我做ATPG时,上图中的analog_A和analog_B模块都没有网表,仅仅在数字网表中例化了这两个模拟模块。

图中的OCC_CTRL1-OCC_CTRL4属于OCC控制模块,是我们DFT环节中添加的。OCC模块里面有MUX用于控制选择时钟是低速dft时钟还是高速时钟。


现在我的问题就在于,我用tessent工具做完ATPG之后,拿生成的Verilog格式的testbench以及测试向量做后仿,打开Verdi看波形发现模拟模块analog_A和analog_B生成的四个时钟CLK_A、CLK_B、CLK_C、CLK_D全是高阻Z态。

说明一下,我在做ATPG的过程中,已经使用add_clocks命令将analog_A和analog_B的输出端口CLK_A、CLK_B、CLK_C、CLK_D定义为了时钟。并且在testproc里面也将这些时钟定义在timeplate里面,并且在shift、capture等procedure中将这些时钟pulse起来。

即便我进行了以上设置,仍有问题,analog_A和analog_B生成的四个时钟CLK_A、CLK_B、CLK_C、CLK_D全是高阻Z态。

下面是tessent官方做ATPG时的脚本,因为我的脚本和环境在工作站上,由于信息安全问题不能截图。反正我的脚本类似于下图的tessent官方的例子。
image.png
image.png


请大家给我指点一下,有什么方法做了ATPG之后去后仿,模拟部分的时钟输出不会为Z态。现在的情况是即使定义模拟输出的端口为时钟信号,也不起作用,Verdi看波形仍是高阻Z态。


发表于 2020-8-21 23:06:02 | 显示全部楼层
如果确定实际芯片,工作时有时钟的!你就用tcl加个时钟。
发表于 2020-8-23 07:18:56 | 显示全部楼层
我觉得简单一点就是按照实际写一个简单的analog 的model。
发表于 2022-5-11 16:20:53 | 显示全部楼层
请问一下楼主最后是怎么解决的?
我新接触这方面,下面的分析可能不够正确,还请讨论~
1、看了您的分析,感觉您的analoga/b好像是pll模块?就是一个锁相环,里面有vco去产生高频震荡时钟,为了测transition的fault。是这样吗?
2、您说在verdi里面看是高阻态,请问您的vcs仿真有报no error或者是0 mismatch 吗?您的用tessent去atpg的check rules都过了吗?
3、请问您产生z态的位置是在哪里呢?是se=1还是=0?是低速时钟生效的时候?

期待大佬回复~
发表于 2022-5-30 15:44:17 | 显示全部楼层
跑仿真的时候给他force时钟?
发表于 2023-7-10 17:10:45 | 显示全部楼层
感谢分享
发表于 2023-8-14 23:54:27 | 显示全部楼层
感谢分享
发表于 2023-8-15 11:33:53 | 显示全部楼层
请问PR之后产生的pattern和之前 pre-layout产生的pattern可以怎么转换吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-5-15 11:25 , Processed in 0.024867 second(s), 10 queries , Gzip On, MemCached On.

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