DFTC的OCC不能级联

多个OCC需求:

当一个设计中存在多个PLL时,输入到每个PLL单元的参考时钟必须是测试模式下的自由运行时钟(PLL的输入时钟必须是free-run的,不能被阻塞,否则PLL会停止震荡导致PLL出错)。必须注意确保OCC控制器不会插入到会阻塞到下游PLL单元的自由运行时钟的位置。

在上图这个设计示例中,名为UPLL1的主PLL接收输入参考时钟(从PAD port进来的板子上稳定的高精度晶振时钟)并生成PLL输出时钟。该PLL输出时钟然后馈送第二PLL(作为UPLL2的参考时钟)或时钟分频器单元(分频对象时钟),产生第二级联PLL输出信号。

针对该clock结构的电路设计,有如下两种OCC-insert的设置:

1.  错误的做法:OCC controller直接插在两个PLL的输出端,这种在UPLL1输出端直接插OCC controller就是错误的做法。

这种OCC-insert设置就会有如下情况:

①OCC controller会被直接插在UPLL1的output端;

②导致输入到UPLL2 reference clock不能free-run,而会被第一个OCC controller阻断,导致UPLL2没有reference clock而出现UPLL2错误、无法正常震荡。

2.   正确的做法:在UPLL1的输出端到FF1的clock分支加个buffer U1,然后在UPLL2和和buffer U1后面插入OCC controller。

这样,使用一个buffer 去隔离第一个OCC controller驱动的下游扇出fanout的负载,这样第一个OCC controller就不会影响到UPLL2的输入reference clock了。

这种OCC-insert 设置就会出现如下情况:

①OCC controller会被插入到由UPLL1驱动的buffer U1的输出端

②这样使得UPLL1的输出时钟free-run clock能直接传送到UPLL2的输入端作为UPLL2的reference clock,从而UPLL2能够正常操作、稳定输出free-run的PLL clock。

注:你必须使用一个set_dont_touch命令或者set_size_only命令或者是使用hierarchy synthesis flow等来确保隔离buffer U1不会被综合过程优化掉。OCC controller插入之后,生成的test protocol 其reference clock是指定到PLL pin的。

DFTC userguide原文:

You must ensure that the isolation buffer is not optimized away by applying a set_dont_touch command, applying a set_size_only command, or using hierarchy. After the clock controller is inserted, the resulting test protocol references the specified pin as a PLL pin.

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值