DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 153|回复: 0
打印 上一主题 下一主题

使用现有布局来省去缓冲器/逆变器(对)的解决方案

[复制链接]
跳转到指定楼层
楼主
发表于 2011-4-22 11:36:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
摘要
  在SoC设计中,EDA工具处理完网络列表之后插入的逻辑均被称作ECO。可以不必进行合成、地点和路线、提取、串音等整个SoC设计周期,从而节省完成ECO的时间。可以采用省钱方式来执行后掩膜工程变更清单。 如果只修改少量金属层就能完成一项更改,那么涉及的成本要比将整个设计完全重做少得多。 ECO通常会使用到备用门模块(在合成期插入)。通常,这些备用门模块包括NAND、NOR、 触发器、 缓冲器、逆变器以及其他可能使用到的逻辑单元。 本文重点介绍如何使用现有布局的缓冲器/逆变器(对)逻辑,使用备用单元模组来避免违反设计(DRV)规则。
  介绍
  实施工程变更订单(ECO),是片上系统(SoC)设计阶段十分常用的一个步骤。 在设计中采用ECO的原因有很多。
  1.事先规划好的ECO: 有时候,设计人员可以预先设定好采用ECO。 例如,有时候可能有这种情况:在ASIC设计周期的后期需要引入IP,因此设计人员要对其活动进行适当规划,以免设计阶段受到限制。 但有说法认为在设计周期中采用ECO,大部分属于偶然。
  2.功能性修改: ECO也可能是设计规范需要进行功能性修改的结果,如果客户需要附加功能或者应用软件要求硬件部署该功能,那就有可能需要进行此类修改了。
  3.设计问题: 门级模拟(GLS)或类似技术中一些先前的测试芯片的硅结果中可能会出现设计问题。
  要在逻辑门里实施ECO,设计人员需要一个最佳解决方案,因为增加额外的门可能导致要再制造基础层(如激活层、多晶硅层、氮化物层)掩膜,这比互连掩膜的成本高得多。 因此理想的情况是,设计人员会希望只包含使用现有逻辑的逻辑,来减少因再制造产生的成本。
  问题陈述:
  使用额外的逻辑门来包含ECO,可能会对整个时序及设计的可路由性产生影响,具体来说,当ECO逻辑相当大时,受到影响的模块实施密度将达到100%。
  现行方法:
  当前针对该问题所采取的解决方法是在设计的物理合成阶段,在每个模块内添加额外的门,因此在执行ECO时,现有的备用门在以后可以用来包含设计中的修改。这样就不必增加更多的逻辑。 但这种方法具有一定的局限性。
  现行方法的局限:
  1.设计人员不能预测一个模块的最佳备用门数量,以避免ECO的中途中止; 例如,假设功能性ECO需要在一个链里连接10个缓冲器。 但现有的备用单元模组只有6个缓冲器,由于没有缓冲器/逆变器(对)所以我们必须重新转动SoC。基本上,这个局限在于设计人员必须要在一个模块中放置更多冗余逻辑,或在另一个模块中备用放置有限的备用门。
  2. 规模过大的ECO必然会违反保持时间并违反设计规则,例如违反逻辑门的最大过渡或最大驱动强度。 这需要额外的冗余缓冲器来解决保持时间违反问题,或提高DRV易发生的信号压摆率性能。
  建议的解决方案:
  本文欲介绍一款我们可以使用现有布局来省去缓冲器/逆变器(对)的解决方案。
  请记住,在备用规模块中,可能必须增加冗余的NAND/NOR门和额外的触发器/闩锁,但不一定需要增加冗余的缓冲器和逆变器。
  基本上,本文试图演示一种创新方法,它使用优化技术,可从现有布局恢复缓冲器/逆变器逻辑。
  算法和伪代码
  


  图1: 一个(x1,y1,x2,y2)窗口大小所要实施的基本算法
  生成窗口大小的伪代码:
  开头
  x=x1;y=y1;
  当 x < x2,
  y < y2时
  x’ = x + a, y’ = y + b;
  x=x’,y=y’
  如果 x > x2 或 y > y2
  x=x2, y="y2";
  结束
  生成的每个窗口坐标用 (x, y, x’, y’)表示
  此处a、b需要根据具体的设计和技术而定。 如果SoC的SoG(Sea of Gates)区域是 7 mm2 或更大,设计人员在计算窗口大小时需要注意计算的复杂性。
  描述:
  如上面的流程图所示,该思路的核心是如何识别非关键性的缓冲器(w.r.t时序余量)。 在实施ECO时,我们不可避免地需要使用备用单元模组的缓冲器。 现在,这个缓冲器的放置是比较随意的,使用它会违反DRV规则。
  例如,我们假设使用BUFX8来驱动5个扇出。总的容量负荷(包括线路和引脚)是200fF。现在根据该缓冲器的SPICE特征,任何高于150fF的负荷都会导致不好的输出压摆。差的输出压摆不仅会违反最大过渡值,而且还会影响扇出驱动电路的时序。
  因此,在这种情况下,明智的做法是遵从上面的算法,这样我们可以进行以下步骤:
  1.找出ECO的目标点: 我们应当找出开始点和结束点位置,这是放置缓冲器元件的位置。该位置决定着窗口大小,我们应当在这个窗口里搜索非关键性缓冲器/逆变器(对)。
  2.决定窗口大小: 这完全由设计人员决定。 他可以根据技术选择窗口大小。如果缓冲器能驱动的最大负荷是200fF,那么窗口大小应当相应地进行修改。
  3.缓冲器/逆变器(对)的识别: 现在,该算法将在特定窗口上运行,并且尝试识别已标记位置中出现的所有缓冲器/逆变器(对)。
  4.计算时序余量: 一旦缓冲器/逆变器(对)做了标记,算法应尝试通过这些标准单元找出时序余量。如果这些标准单元对时序很关键,那么该缓冲器/逆变器(对)就不需要标记。只要该缓冲器/逆变器(对)保留为标记状态,那么取消哪一个都不会对该设计的现有时序情况产生影响。
  5.最后一步: 现在,带标记的缓冲器/逆变器(对)可以用于ECO。
  结论
  布局优化和冗余单元的使用可以帮助设计人员在以后数百万个门SOC的设计阶段,消化复杂的ECO,同时避免对整个产品的上市时间造成影响。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-16 07:12 , 耗时 0.092927 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表