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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
12
返回列表 发新帖
楼主: wuenj

[求助] 有关tessent使用中的cell library相关问题

[复制链接]
发表于 2024-6-3 09:59:15 | 显示全部楼层


wuenj 发表于 2024-5-31 16:15
就是看了.tcelllib和.v文件里面的格式不一样,然后也不知道怎么搞,好像是缺少了`celldefine和`endcellde ...


我现在用的中芯国际的库,它的tcelllib的是atpg结尾的后缀文件,主要就是看model这个语法确定是不是tessent的文件。但是中芯国际这个文件里缺少定义,需要像上面说的那样补全。或者自己手动根据tessent手册里tcelllib的说明,也可以补。
 楼主| 发表于 2024-6-3 10:15:32 | 显示全部楼层
确实是的,我看了一下里面的内容,.atpg与.tcelllib的内容格式是一样的。大佬你说的那个添加定义,请问有什么技巧吗?
发表于 2024-6-3 13:21:22 | 显示全部楼层
本帖最后由 liph123 于 2024-6-3 13:22 编辑


wuenj 发表于 2024-6-3 10:15
确实是的,我看了一下里面的内容,.atpg与.tcelllib的内容格式是一样的。大佬你说的那个添加定义,请问有什 ...


用tessent回读一下,下面这些写到一个dofile里

read_cell_library   a.atpg
read_liberty    a.lib
write_cell_library   a.tcellib -replace

然后执行
tessent -shell -dofile  run.do
 楼主| 发表于 2024-6-4 08:36:57 | 显示全部楼层


liph123 发表于 2024-6-3 13:21
用tessent回读一下,下面这些写到一个dofile里

read_cell_library   a.atpg


感谢大佬,从.atpg生成.tcelllib是会了。但是现在我没办法用libcomp把.v文件转换成.atpg文件,.v文件吃不进去,运行libcomp就报错,文件里的格式不对,大佬知道怎么改吗
发表于 2024-6-4 09:43:44 | 显示全部楼层


wuenj 发表于 2024-6-4 08:36
感谢大佬,从.atpg生成.tcelllib是会了。但是现在我没办法用libcomp把.v文件转换成.atpg文件,.v文件吃不 ...


dofile内容如下:
add mode -all
set system mode translation
run
write  library  a.atpg -replace
然后libcomp运行上面的dofile
libcomp  a.v  -dof  a.do  -log  a.log  -replace
 楼主| 发表于 2024-6-4 15:08:44 | 显示全部楼层


liph123 发表于 2024-6-4 09:43
dofile内容如下:
add mode -all
set system mode translation


之前按照这个运行好几次都报错,这次运行又可以了。。。感谢大佬指点
大佬,他这个默认的验证工具是modelsim吗,他跑完之后准备验证,但是显示
model technology modelsim  。。。 error loading the design

// VERIFY ERROR: Error executing verification script.
//               See the log file: ./sim.log for more
//               information about the specific error.




发表于 2024-6-5 09:52:34 | 显示全部楼层


wuenj 发表于 2024-6-4 15:08
之前按照这个运行好几次都报错,这次运行又可以了。。。感谢大佬指点
大佬,他这个默认的验证工具是model ...


默认应该是fastscan,不清楚你的报错是什么原因,可以去sim.log里看一下,里面有statistics report,coverage达到应该就可以了吧(个人猜测),仔细分析一下报错原因也行。也可以试试先不管验证的报错接着去生成tcellib,看一下结果怎么样。
 楼主| 发表于 2024-6-5 14:10:06 | 显示全部楼层


liph123 发表于 2024-6-5 09:52
默认应该是fastscan,不清楚你的报错是什么原因,可以去sim.log里看一下,里面有statistics report,cove ...


感谢大佬指导
发表于 2024-7-2 13:25:00 | 显示全部楼层


wuenj 发表于 2024-5-24 10:22
3、tessent里的libcomp命令好像可以转换这样的格式,但是在转换的时候总是报错,也不知为什么,有没有大神 ...


说明转换的时候libcomp有不识别的std cell,然后生成了BlackBox,可以把这个模块单独拿出来,写一个.v然后用libcomp转一下,也可以看看这个netlist里面有没有用到这个cell,如果没用到,直接拿生成的atpglib应该也能用

 楼主| 发表于 2024-7-23 22:07:49 | 显示全部楼层


molin_zhang 发表于 2024-7-2 13:25
说明转换的时候libcomp有不识别的std cell,然后生成了BlackBox,可以把这个模块单独拿出来,写一个.v然后用 ...


我看了一下,差不多,是在compile的时候,莫名其妙的有未定义的变量,类似于这种报错

Compiling module DFFRS_X1
** Error: ../../Verilog/NangateOpenCellLibrary.v(1477): (vlog-2730) Undefined variable: 'RN_AND_SN'.
就导致后面的vsim有未识别的模块,最后就fail了
但是我看我的.v文件里面这个变量也有定义,所以也不明白,里面的代码部分大概相关就是这些了

module DFFRS_X1 (D, RN, SN, CK, Q, QN);
  .....
  `ifdef NTC
    `ifdef RECREM
      buf (SN_d, SN_di);
      buf (RN_d, RN_di);
    `else
      buf (SN_d, SN);
      buf (RN_d, RN);
    `endif
    ....
    buf(RNx, RN_d);
    and(RN_AND_SNx, RN_d, SN_d);
    buf(SNx, SN_d);
    `ifdef TETRAMAX
    `else
      ng_xbuf(RN_d, RNx, 1'b1);
      ng_xbuf(RN_AND_SN, RN_AND_SNx, 1'b1);
      ng_xbuf(SN_d, SNx, 1'b1);
      ng_xbuf(xid_14, id_14, 1'b1);
    `endif
  `else
    .....
    // SDF Logic
    buf(RNx, RN);
    and(RN_AND_SNx, RN, SN);
    buf(SNx, SN);
    `ifdef TETRAMAX
    `else
      ng_xbuf(RN, RNx, 1'b1);
      ng_xbuf(RN_AND_SN, RN_AND_SNx, 1'b1);
      ng_xbuf(SN, SNx, 1'b1);
      ng_xbuf(xid_10, id_10, 1'b1);
    `endif
  `endif

  specify
    (posedge CK => (Q +: D)) = (0.1, 0.1);
    ....
    (posedge CK => (QN -: D)) = (0.1, 0.1);
    .....
    `ifdef NTC
      `ifdef RECREM
      ....
      `else
      ....
      `endif
      $setuphold(posedge CK &&& (RN_AND_SN === 1'b1), negedge D, 0.1, 0.1, NOTIFIER, , ,CK_d, D_d);
      $setuphold(posedge CK &&& (RN_AND_SN === 1'b1), posedge D, 0.1, 0.1, NOTIFIER, , ,CK_d, D_d);
      ....
    `else
      ....
      $setuphold(posedge CK &&& (RN_AND_SN === 1'b1), negedge D, 0.1, 0.1, NOTIFIER);
      $setuphold(posedge CK &&& (RN_AND_SN === 1'b1), posedge D, 0.1, 0.1, NOTIFIER);
      ....
    `endif
  endspecify

endmodule
我忽略这个error,继续使用不完整的库也没有问题,但是还是想请教一下这个该怎么弄

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-22 04:46 , Processed in 0.021425 second(s), 6 queries , Gzip On, Redis On.

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