作者
Philipp Jacobsohn,SmartDV首席应用工程师
Sunil Kumar,SmartDV FPGA设计总监
本系列文章从数字芯片设计项目技术总监的角度出发,介绍了如何将芯片的产品定义与设计和验证规划进行结合,详细讲述了在FPGA上使用硅知识产权(IP)核来开发ASIC原型项目时,必须认真考虑的一些问题。文章从介绍使用IP核这种预先定制功能电路的必要性开始,通过阐述开发ASIC原型设计时需要考虑到的IP核相关因素,用八个重要主题详细分享了利用ASIC IP来在FPGA上开发原型验证系统设计时需要考量的因素。
在上篇文章中,我们分享了通过一个实际案例来回顾前面讲到的八项关键设计考量因素。本篇文章是SmartDV数字芯片设计经验分享系列文章的最后一篇,继续以实际案例分析的方式来揭示合规性测试、互操作性测和实现方法,以及从不同的方法可能带来不同的结果与目前非常流行的“视点前移(shift left)”模式相结合来对全文进行总结等精彩内容。
作为全球领先的验证解决方案和设计IP提供商,SmartDV的产品研发及工程应用团队具有丰富的设计和验证经验。在国产大容量FPGA芯片和IP新品不断面市,国内RISC-V CPU等IP提供商不断发展壮大的今天,SmartDV及其中国全资子公司“智权半导体”愿意与国内FPGA芯片开发商、RISC-V IP和其他IP提供商、集成电路设计中心(ICC)合作,共同为国内数字芯片设计公司开发基于本地FPGA的验证与设计平台等创新技术与产品。
在上一部分,我们讨论了除了可用证明电路功能(包括仿真、CDC检查、linting)正确性而采用的标准化验证方法之外,还可以进行广泛的测试以确认电路实现和对IP核进行了认证。为了实现这一目标,我们对USB3.2 Gen2大容量存储设备进行了USB Implementers Forum, Inc.推荐的多项合规性和互操作性测试,诸如电气、PHY、链路层和强度测试。认证测试是在台湾的Allion实验室进行的,这是一家获得USB-IF认证的机构。SmartDV的器件已与多种第三方主机进行互操作以便进行认证。
USB 3.2 Device IP合规性测试
USB 3.2 Device IP互操作性测试
所有互操作性测试都已成功通过。
图8:USB 3.2 Gen2x1 Device IP确认平台框图
为了确认USB 3.2 Gen2x1器件的控制器,使用了来自制造商AMD/Xilinx的现成商用的FPGA平台。物理接口是通过使用来自M31公司的外部PHY卡来实现。
USB 3.2 Gen2x1 Device IP实现挑战
在FPGA中实现USB 3.2控制器绝非易事。由于一些时钟频率相当高,时序收敛并不是一件容易的事;它需要对PIPE接口进行设计更改,并需要在FPGA的逻辑综合(Synopsys Synplify Premier)和Xilinx/AMD Vivado工具布局和布线功能中进行多次迭代。值得注意的是,所选FPGA中的逻辑资源利用率相对较低。
可以假设,在资源利用率较高的情况下,时序收敛会更加困难。基于这一假设,我们注意到市场上在过去一段时间里已经出现了一些功能更强大的FPGA器件,如Xilinx/AMD Virtex Ultrascale+/Kintex Ultrascale+、英特尔Stratix-10或Lattice CertusPro-NX,它们都基于比Xilinx/AMD Virtex-7 FPGA更先进的工艺技术,虽然后者在设计和设置这些测试的时候仍然是被广泛使用的器件。可以放心地假设,使用这些新一代FPGA器件可以更容易地确保实现所需的时序。
Virtex-7 FPGA(xc7vx485tffg1761-2)的资源利用率如下:
通过调整这两种工具(Synopsys Synplify Premier和Xilinx/AMD Vivado)的约束和设置,在不违反时间约束的情况下就可能实现。系统中所使用的时钟域和对应的时钟频率如下图所示:
然而,即使在时序收敛之后,设计也不会立即出现在板卡上。从PHY接收的数据没有在USB 3.2控制器中正确采样。因此,有必要部署额外的组件来调整IO延迟值,以便正确地对数据进行采样。
总的来说,使USB 3.2控制器能够与外部PHY互操作是一项极具挑战性的任务。除了解决某些互操作性问题外,还需要开发在Microblaze微控制器上运行所需的固件代码,以便在大容量存储应用模式下确认设计。
结论:鱼与熊掌兼得?
部署可同样用于ASIC和FPGA架构的IP核是一项极具挑战性的任务。因此,必须谨慎选择IP核供应商,并全面询问其在FPGA实现方面的专业知识。
事实上,即使一款IP核已经经历了许多成功的ASIC流片,并在许多产品中得到了使用,但这并不意味着它可以很容易地用于FPGA。相反,尽管FPGA的复杂度通常比硬连线器件低很多,它们至少也需要与ASIC同样的重视程度。其将花费的努力经常被低估和忽视,特别是在ASIC开发在实现和验证方面捆绑了所有工程资源的时候。这在很大程度上是因为在有时间压力的情况下,再加上不断要求产品能够尽快进入市场,所以开发ASIC时难以对FPGA等可编程器件给予必要的关注。
事实仍然是,在ASIC验证中被忽视的错误几乎不可避免地会导致至少需要一次额外的流片,其结果是导致成本大幅增加和项目严重延迟,这与流行术语“加快产品上市时间”所描述的完全相反。通过认真地使用FPGA原型,实现“一次流片成功”的概率显著增加,这会带来许多优势,包括产品更早进入市场、研发团队可以即刻转向新的项目、项目整体成本得以优化等。
FPGA原型设计增加了验证覆盖范围,并增加了在产品开发的早期阶段发现错误的可能性,从而减少了在后期必须处理的错误。当然,使用预定义的和经过测试的IP核也提供相当大的优势,因为在这里可以预期更少的意外。通过扩展,最佳的IC设计解决方案则是结合了作为原型设计载体的FPGA和经硅验证的IP内核,来作为无错误实现的保证。使用经过试验和测试的验证工具及其所有功能,就可以完成其他工作,从而实现早期目标并成功完成项目。
现在有一个很流行的术语可以形容这种方法:视点前移(shift left)。
最后但同样重要的一点是,我们必须提到快速完成项目最重要的因素:人。经验丰富的专家团队对于电路功能的实现、验证和确认的价值是不言而喻的——这是最主要的成功因素。对于所有的工具、辅助工具和预定义的电路功能而言,如果你不知道如何高效地组合和使用它们,则它们都是毫无用处的。无论目标是ASIC还是FPGA,拥有强大且可靠的合作伙伴、具有必要专业知识和适当经验的专家团队,都是您成功的关键。
虽然电路设计从来都不是一件容易的事,但选择合适的合作伙伴肯定会让您更轻松。
【直播预告】