我们现在的SoC设计中,常需要集成来自第三方供应商的IP模块和芯片级的内部设计。有时,这些IP块通过标准化接口协议直接连接到其他模块或互连结构,但也有不按照标准接口协议连接的情况,这时IP块连接还需要添加一些粘合逻辑。模块接口和I / O pad之间也总是有一些粘合逻辑。所有这些连接也都需要我们彻底的验证。
这些接口有没有特定的时序,但是信号连接通路却不一定简单,在顶层可能还有许多数据选择器及其他组件。使用基于仿真的定向测试来验证这种连接耗时且低效。对于每个这样的连接,验证工程师不得不递增地在测试平台上force信号以及添加观察点。这种测试在总是项目周期很晚时才开始进行,并且一般这样的错误只能通过ECO来修正。
所以,我们在本文想推荐Cadence公司的IFV帮助我们提高验证有效性和效率。
SoC连接性验证面临的问题
顶层连接依赖于某些后续的信息,包括功能操作和测试模式的编程。通常,在我们的设计周期中,这些信息常在tapeout前两个月左右才完成,所以给验证工作造成巨大的压力。RTL冻结之后,发现的错误都只能走ECO流程。但同时,顶层连接验证不仅工作量大,而且要求十分严格。
在我们的典型设计中,有很多用于DFT及测试总线选择目的的存储器端口连接。测试信号可以经由不同路径连接到顶层I/O pad或存储器。
图1显示了一个32位输出接口。32位组合中配置了多路选择器,可为32位接口的每位选择最多高达256位之一。此外,从一个设计和下一个设计,测试信号和序列会变化。从上一个项目到下一个项目,常有50%以上的变化。因此,我们需要一个理想的验证解决方案,使其易于跨项目重复使用,并且还能轻松管理不断变化的连接规范。
之前的连接性验证方法
我们曾有项目有10到15种不同的定向测试类型。建立测试环境很乏味耗时,需要2-3个月,每个测试类型几乎一个星期。此外,force/observe 测试并不能穷尽所以情况,特别是当信号路径复杂程度如图1所示时。此外,考虑到测试总线信号和序列变化,现有方法不能在项目间复用。这种测试在项目中进行得很晚,发现的错误又必须通过高度可见的ECO过程来修复。通常情况下,每个项目都会出现一个需要ECO的bug。
我们想到的一个改进方法是在接口上手动创建断言。这种方法的一个明显缺点是需要验证工程师来编写断言,而且不能在项目间复用。
同时,设计工程师并不像验证工程师一样熟练使用断言。所以基于电子表格的连接规范方法将更有效率,并且其他团队更容易理解。电子表格记录着不断变化的连接规范,使验证和设计工程师之间的沟通更清晰,这本身将消除许多连接问题,益处将是巨大的。
更高效的连接性验证流程
这种基于电子表格的连接规范方法,自动创建断言来检查指定的连接,现在可以使用商业的验证工具。我们在这里描述的案例研究使用的是来自Cadence公司的IFV(Incisive庐 Formal Verifier )。验证流程如图2所示。
检查连接性的步骤是:
1.在电子表格中捕获连接信息。有关连接性电子表格的说明,请参阅原文。工具提供了模板和电子表格示例。设计人员必须在电子表格中完成的如下的一些关键字段: