DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

[待整理] 调试设计:芯片设计中必不可少之举

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-27 10:16:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
  测试与调试分别有不同的问题。在测试中,目的是要尽快确定芯片是否以较高的稳定性正常工作,而不是绝对的稳定性。现在芯片设计团队普遍认识到,这需要在芯片上添加DFT(可测试设计)电路。第三方工具和IP (知识产权)企业可帮助实现此目标。

  而调试则完全不同了。调试的目的并不只是简单地确定芯片出现了故障,而是要找出故障的原因。这种检查并不限于在测试台上的几秒钟,可能要持续数周时间。它并不是自动进行的,而是需要芯片设计团队的参加。它出现在设计周期中的离散点上:在第一个芯片设计阶段、在可靠性研究阶段和现场故障分析阶段。

  根据这种情况,可以想象,良好的DFT 策略应能够满足芯片调试的需要,而且,实际上也往往是如此。随着SoC(单片系统) 设计越来越复杂,一流
的设计团队表 示,他们将对支持调试而不是测试的电路提供更多的计划、实现工作以及芯片面积。

  “十年前在设计3层金属层时,这并不是什么大问题,”Bay MICrosystems 工程部的高级副总裁Tony Chiang说。“如果芯片有问题,应该直接研究金属层来察看电路,而对于聚焦离子束系
统则应该重新布线。现在,对于9层金属层和0.2mm金属间距,问题就不是那么简单了。必须将电路设计成具有从芯片外部能控制和能观察的,而在成本和时间预算上不超出我们的目标。”

  这种情况,简单扼要地描述了调试设计界的情况。

  技术概览

  调试与DFT并不是完全脱离的。Broadcom公司的测试开发工程高级总监Kris Hublitz举例介绍说,Broadcom有一个由70多名工程师组成的公司级团队,他们与公司其它的芯片设计团队共同从事调试和测试。Hublitz再三宣称DFT厂商LogicVision是Broadcom芯片调试策略的主要合作伙伴。

  其他人也同意这种观点。“调试设计与生产测试并不是毫无关系,” CSR (Cambridge Silicon Radio) 的副总裁David McCall说。“两者的起点差不多。”

  很多设计经理强调,这一起点就是探寻电路的能控性和能观性。调试与生产测试相似,基本问题是将电路设置在一个已知的状态,然后开始运行,观察其行为。在中等规模的集成中,边界扫描技术可有效地完成此任务。由于芯片内部状态较少,可以全面地对其进行测试:将输入通过已知的一系列状态,对电路进行时钟同步,然后观察输出。

  随着微处理器的出现,事情变得更加复杂了。微处理器有很多内部状态,所以只将输入施加给一个已知矢量并观察输出并不是特别有效。早期,业界尝试了多种技术使微处理器实现可调试,从对寄存器间的每群逻辑进行扫描到依赖同类的跟踪、断点及微机用于进行软件调试的单步函数等。将两种方法结合起来才能起作用。

  如今设计人员对SoC的数字部分使用相同的工具套件。另有一些技术用于混合信号的模拟电路。但没有单独一种方法可以囊括整个复杂的SoC。所以,调试的设计流程包括将系统分割成独立的可调试模块,对每个模块实施一个调试策略,并将这些策略整合到一个完整芯片的方案中,使单个模块的用户接口相似并尽量减少电路需要的芯片资源。最后,设计师必须使用这些调试资源重新检查,使完全集成的芯片的运行既可控制又可观察,因为你不能只根据隔离功能模块就能判断某些问题。

  数字SoC

  最基本的SoC 形式是由简单的往往是可编程的外设模块和内存所包围的CPU 核。多数情况下,CPU 核为第三方的IP,至少有一个内部调试内核的选项。软件开发团队经常强调这一点。此内核与标准的DFT 电路相结合,这种电路是设计团队为外设所实施的,以实现能观性和能控性来隔离故障。可以在CPU 核中应用这种调试内核,模拟核的非同步部分,以捕捉结果。通过让CPU 读写外设寄存器,此内核也可模拟并观察外设,通常允许设计师在可以处理的级别上确定扫描链中的故障。

  但如今并没有多少这么简单的SoC(图 1)。更多的情况下,芯片有几个或一群CPU 核和几种不同的处理器内核。某些外部控制器非常复杂,只用CPU对其进行模拟来观察结果,并不能对其有效诊断。还有多个时钟域,它们之间通常彼此并不同步。这样的芯片需要更有效的方法来调试。


  在这种情况下,有几种策略可用。Broadcom的Hublitz介绍的一种简单方法是使所有主要功能模块的输入和输出可以访问芯片的针脚。这种方法需要大量的多路复用。在有大量I/O 和内存接口的设计中,在引入任何额外访问进行调试之前,芯片针脚数已经限定了,设计人员必须复用针脚进行调试访问。只将输入输出简单引出每个复杂模块,可能比将其在主CPU 核上执行更有用,设计师可能需要引出内部信号。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-28 23:35 , 耗时 0.087638 秒, 21 个查询请求 , Gzip 开启.

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

桂公网安备 45031202000115号

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

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

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

QQ:28000622;Email:libyoufer@sina.com

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

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