作者
Philipp Jacobsohn,SmartDV首席应用工程师
Sunil Kumar,SmartDV FPGA设计总监
本系列文章从数字芯片设计项目技术总监的角度出发,介绍了如何将芯片的产品定义与设计和验证规划进行结合,详细讲述了在FPGA上使用IP核来开发ASIC原型项目时,必须认真考虑的一些问题。文章从介绍使用预先定制功能即IP核的必要性开始,通过阐述开发ASIC原型设计时需要考虑到的IP核相关因素,用八个重要主题详细分享了利用ASIC IP来在FPGA上开发原型验证系统设计时需要考量的因素。
在上篇文章中,我们分享了第七到第八主题,介绍了如果目标技术是FPGA,而不是ASIC,那么需要如何测试IP核的功能?和设计团队还应该牢记什么?本篇文章是SmartDV数字芯片设计经验分享系列文章的第五篇,将通过一个实际案例来回顾前面讲到的八项关键设计考量因素。
作为全球领先的验证解决方案和设计IP提供商,SmartDV的产品研发及工程应用团队具有丰富的设计和验证经验。在国产大容量FPGA芯片和IP新品不断面市,国内RISC-V CPU等IP提供商不断发展壮大的今天,SmartDV及其中国全资子公司“智权半导体”愿意与国内FPGA芯片开发商、RISC-V IP和其他IP提供商、集成电路设计中心(ICC)合作,共同为国内数字芯片设计公司开发基于本地FPGA的验证与设计平台等创新技术与产品。
实际案例:使用基于FPGA的方法来确认USB 3.2 Gen2x1 Device IP
要实现一个可工作的FPGA原型并不是一件容易的事。通常,工程师的想法是使用合适的FPGA逻辑综合和布局布线(P&R)工具,将已经可用于ASIC技术的IP核映射到足够大且快速的FPGA上就足够了,以达到一个功能性FPGA实现。这里的要求是所需的功能应该即刻可用,并且无需进行任何更改。IP核的制造商必须达到这一期望。毕竟,IP核应该能够集成到现有设计中,且不会有任何重大的时间延迟。假设IP供应商已经提前进行了所有必要的测试,以致于将功能集成到现有电路中毫无困难。
然而对于IP提供商来说,将IP核移植到FPGA架构中是一个具有挑战性的目标——如果不付出相当大的努力,这几乎是不可能的。事实是,在没有适当的基础架构和外围设备的情况下,测试一个孤立的IP核只有有限的价值。例如,“独立”实现并不能保证在符合所有规范的情况下实现所需的功能,特别是在FPGA不仅仅包含孤立IP核的情况下。如果要在FPGA中实现具有高时钟频率要求的其他电路部件,这一点尤为重要。
IP制造商面临的一个特别挑战是缺乏关于在后期实现中添加的电路组件的信息,如它们的复杂性,它们对时钟速度的要求等。事实上,一个内核可能已经成功地在与该问题无关的ASIC流片中使用了很多次。毕竟,IP核不仅要满足标准和规范所定义的所有参数(例如,USB 3.2总线协议规范),而且即使将其集成到一个复杂的整体系统中,该系统被映射到一个可编程器件(即FPGA)上,也仍然要能够工作。这样一个整体系统的复杂性,加上它的所有组件,如微处理器、信号处理电路和接口,对所需的时钟频率是否能够实现以及FPGA提供的资源是否足够都有重大影响。必须有足够数量的等效逻辑门,但其他硬件参数也有限制,如存储器资源、时钟分布组件、高速IO和/或收发器等。
为了实现可用于在FPGA电路环境中测试IP核的功能性系统,IP核供应商必须考虑的不仅仅是要提供的功能。IP供应商可以接触到自己创建的功能,但不能接触到IP核用户使用的开发和测试环境,也不能访问连接最终产品的外设,并通过这些外设提供物理输入信号。同样,也不能访问客户使用的模拟刺激和测试模式生成器。验证覆盖范围也被视为是至关重要的;在任何可能的情况下,都应该涵盖极端情况,以避免在使用IP的后续阶段出现令人不快的意外情况。值得注意的是测试电路板,通常情况下市场可提供的印刷电路板,与IP核客户随后将用于所有测试的电路板都有不同。
在输出端,可以预见到的复杂性并不比输入信号的供应端更低。以USB接口为例,如果实现接口IP,就需要使用外部PHY作为物理接口。因为这是一个模拟接口,在FPGA上不可用,因此必须使用外部组件。这种PHY由各种各样的制造商提供,尽管希望将USB控制器连接到由最终客户选择的外部PHY组件上,不需要对物理接口进行任何与电气特性相关的更改,如电压值、摆幅、输出引脚的驱动器强度或接口的引脚分配,所有参数都必须在功能测试中进行详细验证。这是确保物理接口符合所有规范的唯一方法,并且数据传输的质量也要符合预期。所有这些功能测试都必须提前进行,以保证在交付前的阶段就可提供功能。由于IP核必须是通用的,即不同的客户在不同的应用中选择PHY来配套都可用,测试设置必须在测试中包括来自不同制造商的许多不同的PHY。
创建数据库也需要一些工作量。当然,仅仅提供RTL代码和相应的约束条件是不够的。为了简化将IP核集成到现有电路中的工作,通常提供以下数据库:
·Verilog中的RTL设计
-RTL能够在客户选择的FPGA逻辑综合工具上可以进行综合
·具有豁免文件的Lint、CDC和逻辑综合脚本
·Lint、CDC和逻辑综合报告
·如果适用,提供C语音驱动包(裸机驱动)
·更详细的技术文档
·易于使用的、带有Verilog测试用例的Verilog测试环境
·IP测试套件
·为最终用户集成的IP测试台
·用于RTL地址映射的IP-XACT文件
·带有豁免的代码覆盖率报告
·如果适用,提供IC设计文档/数据表
为了确认USB 3.2 IP核,需要对现有IP核进行大量的更改。包括对RTL代码本身的更改,以及对物理输入和输出的微调。对RTL代码的更改是很有必要的,以使时钟分布和时钟生成适应目标FPGA架构。为此,额外的、专用于FPGA的库组件就被实例化,如所谓的MMCM(数字锁相环)。
这时也很有必要将数据路径的总线宽度从32位调整到64位,否则就不可能控制PIPE接口中的时间冲突。由于对PIPE接口的更改,有可能将FPGA中的时钟频率从312.5MHz(32位实现)降低到156.25MHz(64位实现),从而使设计适用于目标FPGA目标。最后,FPGA上的布局布线就可以在不存在时间冲突的情况下完成。
除了上述的设计变更之外,Xilinx/ AMD的专有微控制器,即专为该制造商的FPGA开发的Microblaze处理器也被集成到电路中,以执行实验设置所需的固件代码。由于USB 3.2 IP核被配置用于大容量存储应用,因此板载DDR3存储器被用于外部存储,该存储在FPGA本身上不可用,但在选定的原型平台上可用。USB控制器通过主机AXI接口访问该DDR3存储器,而USB控制器的核心寄存器由处理器通过AHB从接口访问。
硬件平台选择如下配置:
SmartDV USB 3.2 Gen2x1 Device Controller是为USB大容量存储应用而配置的。它完全符合USB 3.2规范(rev. 1.0)和USB 2.0规范(rev. 1.0)。IP内核有以下接口:
• USB 3.2 Gen2物理层接口
-64位PIPE数据路径
• USB 2.0物理层接口
-16位UTMI兼容接口
• 系统主数据路径接口
-64位AXI主接口
• 系统从属寄存器访问接口
-32位AHB从从属接口
• EPO处理器接口
除了可用于证明电路功能(包括仿真、CDC检查、linting)正确性而采用的标准化验证方法之外,还进行了广泛的测试以确认电路的实现。最后,对IP核进行了认证。为了实现这一目标,USB3.2 Gen2大容量存储设备进行了USB Implementers Forum, Inc.推荐的多项合规性和互操作性测试,诸如电气、PHY、链路层和强度测试。认证测试是在台湾的Allion实验室进行的,这是一家获得USB-IF认证的机构。SmartDV的器件已与多个第三方主机进行互操作以便进行认证。
未完待续
由于篇幅限制,本案例分析的合规性测试、互操作性测、实现方法以及全文总结等精彩内容,将放在本系列文章的最后一篇发表。我们将介绍设计师可以采用哪些方法来进行确认,以及在充满挑战的数字芯片验证过程中,如何做到鱼与熊掌兼得的结论。
【直播预约】