0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

debug这个问题,贯通了DC、DFT、P&R

全栈芯片工程师 来源:全栈芯片工程师 2023-10-10 15:53 次阅读

当PR工具导入scanchain的scandef,用于reorder,但是报错说scan chain里面的cell在db数据库里面没有?难道是scandef和网表版本对不上?

74e8dc28-6741-11ee-939d-92fbcf53809c.png

74eda19a-6741-11ee-939d-92fbcf53809c.png

SCAN DFF的网表对用如下,熟悉DC、DFT(SCAN部分)、PR的同学应该很快就发现问题所在。

74f232c8-6741-11ee-939d-92fbcf53809c.png

重新吐出网表后,PR工具正常读取scandef

74fe9a68-6741-11ee-939d-92fbcf53809c.png

scan def的语法我们先回顾一下。以一个异步FIFO设计的PR版图来看scan chain,一目了然:

75088488-6741-11ee-939d-92fbcf53809c.png

通常使用DEF文件来定义扫描连,一般称为scan def,以下图异步FIFO的scan DEF语句来说明:

7524b73e-6741-11ee-939d-92fbcf53809c.png

1)SCANCHAINS SCANCHAINS 3 ;表示stub chain的数量为3。

为什么有个stubchain?

注意,scandef里面的stub chain个数与设计中的实际scan chain个数不一定相同。

如上图,因异步FIFO读写时钟之间的scan chain用LOCKUP隔断,C1被分成C1_SG1、C1_SG2,即一条实际的scan chain在scandef中被拆分成两条stub chain。该类stub chain的名字(在scandef文件中以 “-”开头的参数)中会有SG标志字符:

75331676-6741-11ee-939d-92fbcf53809c.png

2)+ START stub chain的开始标志。注意,+ START/+ STOP可以是scan I/O ports, codec logic gates, lockup latches, reconfiguration MUXs, or buffer/inverter pins。

比如:LOCKUP的Q端作为+START:

753dfdf2-6741-11ee-939d-92fbcf53809c.png

内部寄存器(如retiming flipflop例化了非scan cell的DFF):

+ START U_TOP/RETIMING_FLOP Q 外部管脚使用以下格式:

+ START PIN winc

754c420e-6741-11ee-939d-92fbcf53809c.png

3)+ STOP stub chain的结束标志,如异步FIFO网表中LOCKUP插入后:

+ STOP LOCKUP D ;

753dfdf2-6741-11ee-939d-92fbcf53809c.png

内部寄存器(如retiming flipflop例化了非scan cell的DFF):

+ STOPU_TOP/RETIMING_FLOP D 或者内部MUX:

755c8dd0-6741-11ee-939d-92fbcf53809c.png

4)+FLOATING 表示一条stub chain中可以reorder/partition的scan cell。

7560571c-6741-11ee-939d-92fbcf53809c.png

5) + ORDERED 表示一条stub chain中不可以重排序,上图可以看出,异步FIFO同步器synchronizer两个打拍寄存器就是ORDERED。 为什么不能reorder呢,有如下三个原因:

shift registers

用命令set_scan_path -ordered_elements定义的scan segments;

buffers or inverters between scan cells;

也就是说:+ ORDERED 表示需要放在一起的单元,如下图中out_reg_4与u_buf就是ORDERED单元,用方框圈出 scan chain终点。

7578d1c0-6741-11ee-939d-92fbcf53809c.png

757dd2e2-6741-11ee-939d-92fbcf53809c.png

6)+ PARTITION 表示有相同PARTITION名的stub chain可以进行重新划分(repartition),如:

75956146-6741-11ee-939d-92fbcf53809c.png

7) +BITS The BITS attribute表示的是a scan element that represent multiple scan bits. This allows complex scan cells, such as DFT-inserted cores, to be represented in abstract form. 通常说的一个scan cell扫描单元就是指的1bit scan cell。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117723
  • DFT
    DFT
    +关注

    关注

    2

    文章

    219

    浏览量

    22466
  • FIFO芯片
    +关注

    关注

    0

    文章

    10

    浏览量

    8745
  • Mux
    Mux
    +关注

    关注

    0

    文章

    37

    浏览量

    23221
  • Scan
    +关注

    关注

    0

    文章

    12

    浏览量

    3445

原文标题:debug这个问题,贯通了DC、DFT、P&R

文章出处:【微信号:全栈芯片工程师,微信公众号:全栈芯片工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    新型DC-DC电源简化电源设计

    本帖最后由 eehome 于 2013-1-5 10:11 编辑 <p&;gt;<font face="Verdana&
    发表于 11-14 11:14

    ST DC照明调光解决方案

    ;/font></p&;gt;<p&;gt;&am
    发表于 12-15 17:18

    开关电容升压式DC-DC变换设计

    DC-DC变换设计<br/></strong>&
    发表于 12-17 10:41

    p, *p, &p

    定义一个指针变量 int *p那么,p表示指针指向的地址(如A);*p表示p指向地址里的内容(即地址A中的内容);&
    发表于 01-16 21:49

    【NanoPC-T3 Plus试用体验】连接WIFI&更换apt软件源&更新系统支持

    restricted universe multiverse</font></p&;gt;&amp
    发表于 02-23 17:10

    飞思卡尔 S12通过BDM或者P&;E下载程序调试,重新上电后,为什么必须要连接BDM或者P&;E才能运行程序?请教

    飞思卡尔 S12通过BDM或者P&;E下载程序调试,重新上电后,为什么必须要连接BDM或者P&;E才能运行程序?请教各位 补充内容 (2018-3-9 09:37): S12单片机在线调试正常运行,重新上电后就不运行,必须连接调试器才运行。求教大侠
    发表于 03-09 00:19

    运行P&R的Vivado并行工作

    你好我想使用并行作业来运行P& R.如果我的杯芯有30,那么-jobs可以配置30?launch_run -to_step opt_design -jobs号码以上来自于谷歌翻译以下为原文
    发表于 11-06 11:31

    使用P&;E Micro MultiLink调试IMXRT1064闪存编程错误怎么解决?

    在使用 P&;amp;E Micro Probe 进行调试期间,我遇到以下错误。你能告诉我使用 MCUXpresso 的 P&;amp;E 微型调试探针调试可能出现的错误和
    发表于 03-14 13:11

    可以使用P&;amp;E Multilink Universal对RT1064 QSPI Flash on chip进行编程吗?

    我刚拿到 RT1064-EVK 来尝试评估我的应用程序的功能。 在我使用 P&;amp;E Multilink Universal 使用 MCUXpresso 为 MK66 和 KV58
    发表于 06-01 08:26

    使用P&;amp;E multilink universal将LED演示应用程序编程到RT1064-EVK,无法对FlexSPI闪存进行编程的原因?怎么解决?

    我尝试测试 RT1064-EVK 并遇到以下问题: 我正在使用 P&;amp;E multilink universal 将 LED 演示应用程序编程到 RT1064-EVK 1)如果我
    发表于 06-05 08:00

    存储类&作用域&生命周期&链接属性

    目录前言一、存储类&作用域&生命周期&链接属性的
    发表于 12-09 15:51 5次下载
    存储类&<b class='flag-5'>amp</b>;作用域&<b class='flag-5'>amp</b>;生命周期&<b class='flag-5'>amp</b>;链接属性

    如何区分Java中的&amp;amp;和&amp;amp;&amp;amp;

    首先给i赋值为0,如果i大于10,并且i++等于1,则输出“错误”和i的值。否则输出“正确”和i的值。分别用&amp;和&amp;&amp;运行,观察运行结果的不同。
    的头像 发表于 02-24 10:46 1222次阅读
    如何区分Java中的&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;和&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;

    if(a==1 &amp;amp;&amp;amp; a==2 &amp;amp;&amp;amp; a==3),为true,你敢信?

    接下来咱们来尝试解决这个问题。假设 if(a==1&amp;&amp;a==12)是等于 true的,那么a肯定不可能是一个“普通的变量”。它势必要有能力在执行的时候能够动态改动值。
    的头像 发表于 05-08 11:01 752次阅读
    if(a==1 &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>; a==2 &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>; a==3),为true,你敢信?

    HarmonyOS &amp;amp;amp;amp;润和HiSpark 实战开发,“码”上评选活动,邀您来赛!!!

    出色的系统 助力优秀的设备 为应用开发者带来丰富的体验与想象空间 正如当HarmonyOS遇见润和HiSpark 这万物互联的时代 将由你的&amp;lt; 代码 &amp;gt;来定义
    的头像 发表于 04-11 15:33 828次阅读
    HarmonyOS &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;润和HiSpark 实战开发,“码”上评选活动,邀您来赛!!!

    摄像机&amp;amp;amp;雷达对车辆驾驶的辅助

    摄像机&amp;amp;雷达担负着可辅助驾驶员安全驾驶的、高级驾驶辅助系统的传感功能。尼得科正在进一步推进摄像机&amp;amp;雷达的高性能化进程。
    的头像 发表于 11-26 10:02 518次阅读
    摄像机&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;雷达对车辆驾驶的辅助