当前位置:首页 > 厂商动态 > 厂商动态
[导读]本系列文章从数字芯片设计项目技术总监的角度出发,介绍了如何将芯片的产品定义与设计和验证规划进行结合,详细讲述了在FPGA上使用IP核来开发ASIC原型项目时,必须认真考虑的一些问题。文章从介绍使用预先定制功能即IP核的必要性开始,通过阐述开发ASIC原型设计时需要考虑到的IP核相关因素,用八个重要主题详细分享了利用ASIC IP来在FPGA上开发原型验证系统设计时需要考量的因素。

本系列文章从数字芯片设计项目技术总监的角度出发,介绍了如何将芯片的产品定义与设计和验证规划进行结合,详细讲述了在FPGA上使用IP核来开发ASIC原型项目时,必须认真考虑的一些问题。文章从介绍使用预先定制功能即IP核的必要性开始,通过阐述开发ASIC原型设计时需要考虑到的IP核相关因素,用八个重要主题详细分享了利用ASIC IP来在FPGA上开发原型验证系统设计时需要考量的因素。

在上篇文章中,我们分享了第二到第四主题,介绍了使用FPGA进行原型设计时需要立即想到哪些基本概念、在将专为ASIC技术而设计的IP核移植到FPGA架构上时通常会遇到的困难,以及为了支持基于FPGA的原型,通常会对ASIC IP核进行的一些更改。本篇文章是SmartDV数字芯片设计经验分享系列文章的第三篇,将继续分享第五、第六主题,包括确保在FPGA上实现所需的性能和时钟两个方面的考量因素。

作为全球领先的验证解决方案和设计IP提供商,SmartDV的产品研发及工程应用团队具有丰富的设计和验证经验。在国产大容量FPGA芯片和IP新品不断面市,国内RISC-V CPU等IP提供商不断发展壮大的今天,SmartDV及其中国全资子公司“智权半导体”愿意与国内FPGA芯片开发商、RISC-V IP和其他IP提供商、集成电路设计中心(ICC)合作,共同为国内数字芯片设计公司开发基于本地FPGA的验证与设计平台等创新技术与产品。

主题5:我们如何确保在FPGA上实现所需的性能?

当已经在ASIC上实现的IP核被移植到FPGA中时,解决性能问题至关重要。在具有高时钟频率的ASIC上运行的电路,在原型上可能必须进行调整,以达到运行所需的时钟频率。甚至可能需要以较低的时钟频率或降低复杂性来运行电路。这里以PCIe接口为例,这样的接口在物理上是用ASIC中的几个通道(lane)来实现的,但在FPGA中可能必须限制为单个通道。

另一种解决方案是使用被称为“降速桥(speed bridge)”的电路。这种电路能够降低以高时钟速度输入数据流的频率,然后馈送至FPGA中以较低时钟速度运行的IP核进行读取。这时在IP核的输出端需要另一个电路,因为输出数据流必须重新相应地提高时钟。否则,输入和输出的数据将不会与电路设计的其余部分同步。

这样的解决方案在技术上非常复杂,并且通常只在硬件模拟器或专用ASIC原型设计平台中提供。两者的成本都是极高的,因此遵循前面描述的电路改变路径通常更有意义:实现适合FPGA的IP核,例如使用单通道PCI接口而不是在ASIC中通常使用的四通道。当然,这意味着IP核制造商在将ASIC的功能移植到FPGA的目标架构上时需要付出额外的努力;但结果是,FPGA的复杂性和资源占用程度都降低了,并且可以期望实现更高的时钟频率。

通常还需要使RTL代码适应FPGA特定的结构。相关的例子有乘法器、移位寄存器和存储器。FPGA具有所谓的“硬宏(hard macro)”,可以有效地实现复杂的电路。如果去构造一个由逻辑单元和寄存器组合而成的功能等效电路,而不是提供硬连线乘法器,这将导致一种带有许多“逻辑级别”上的实现,并且只能在FPGA上低效地映射。这反过来又导致可实现的时钟频率大大降低。ASIC是不会提供这种预先定义结构,因此必须调整RTL代码以使FPGA逻辑综合工具有机会去识别将要实现的功能。否则,有关该函数标识的信息(例如,乘法器、移位寄存器或存储器)可能会丢失。

同样,重要的是要确保主IP输入和输出的时钟是干净的。这是确保通过使用FPGA上提供的寄存器对物理输入和输出进行寻址的唯一方法。如果做不到这一点,它就不太可能满足时钟到输出规则的时序(tCO约束)要求。使用寄存的输入和输出通常是一种良好的设计实践,但必须注意要确保引入了良好电路设计这一要求。

图4:对于可靠的器件运行,诸如遵循时钟域交叉规则等良好的设计实践至关重要。

良好的设计实践是至关重要的。遵循时钟域交叉规则(CDC)可以支持可靠的器件运行,并避免发生时序违规。作为IP核的制造商,您有义务根据电路实现的通用规则开发您的产品。在具有一个以上时钟域的电路中,应特别注意避免亚稳态(metastable state)。从一个时钟域干干净净地过渡到另一个时钟域至关重要。为了实现这一点,必须在每种情况下选择最合适的变量。这可以是上面展示的通过寄存器级的简单同步,也可以根据需要通过更复杂的电路实现。一种可靠方法的案例是使用FIFO存储器。

主题6:在时钟方面必须加以考量的因素有哪些?

将IP核从ASIC移植到FPGA上时的另一个要点是时钟分布。这是指IP核中包含的时钟结构,如果电路有多个内部使用的时钟域,并且在IP核中生成所需的时钟,则该时钟结构的实现必须兼容FPGA。为了能够在FPGA上无故障地运行电路,同步时钟分布是必不可少的。事实上,这是避免过多的时钟偏移(clock skew)和不可预测的时钟延迟的唯一方法。这意味着内部生成的时钟既不是波纹时钟(从FF时钟分频器产生的时钟信号),也不是门控时钟(从组合逻辑门中派生的时钟,如多路复用器)。这种结构并不可靠,因为在时钟分布中会出现不可预测的延迟。

FPGA具有专门的时钟网络来分配时钟信号,以确保在整个芯粒(die)上没有明显的偏移。如果因为使用派生时钟而不使用这些时钟网络,这不仅会导致时序问题,还会导致故障。一方面,不能保证在寄存器逻辑上可以保持已设置时间,这是因为时钟信号在分配到所有寄存器中后难以计算的延迟。另一方面,不能保证时钟信号到达寄存器时钟输入端时的速度,会比数据信号到达用于电路实现的顺序单元的“D输入”端更快,这反过来又会导致在保持时间方面出现违规行为。

与ASIC设计相反,FPGA存在一个根本问题。在ASIC库中,为所有组件都定义了最短和最长时长。另一方面在FPGA中,时序分析只计算“情况最坏时的时间”——即最大延迟。正因为如此,数据信号也可以用比时序分析中的估计值更短的时间分配:因此,数据信号可以比时钟信号更早出现在寄存器中。为了解决这个问题,在可编程逻辑模块中经常使用一种兼容FPGA的时钟分布。不是使用许多不同的、彼此之间有明确联系的时钟信号,而是使用一个单一的时钟信号,并从其派生出使能信号(而不是分频时钟)。然后使用这些使能信号来实现所需的时钟域,结果是时钟域之间都是物理同步。

IP核内时钟分配的另一种可能性是使用锁相环/延迟锁相环(PLL/DLL),FPGA都有相应单元供开发者使用,他们也可被用于时钟生成。有必要使电路去适应目标架构,从而确保一个兼容的(同步)时钟分布。FPGA中的时钟分配要求与ASIC中的时钟分配要求不同。为了可靠地运行电路,可能需要更改IP核的RTL代码。理解这一点是重要的,即使完全相同的功能已经在ASIC上成功实现,情况亦是如此。此外,还需要提供特别用于FPGA的逻辑综合和P&R约束。

例如:如果使能信号被用于提供不同的时钟域,则所有的时钟控制单元(如FF、存储器)都要连接到一个主时钟上。这个时钟通常具有系统中最高的时钟频率。对于运行速度稍微比主时钟慢的时钟域来说,必须定义所谓的多周期约束。否则可能导致整个系统无法达到所需的时钟频率。在没有提供适当约束的情况下,时序估计假设所有时钟域都必须达到主时钟定义的系统时钟频率。当然,现实中并非如此;一大部分电路根本不需要达到这个频率,因为它们是通过使能逻辑控制的。反过来,缺少约束将导致时序违规。因此,在创建打算映射到FPGA中的电路时,就应该特别注意提供合适的逻辑综合和布局布线(P&R)约束。

即使在IP核具有多个时钟域的情况下,必须注意确保时钟比率是被明确地进行定义;在FPGA的启动阶段中,其设计是确保电路功能在定义的时间点覆盖所有的时钟域,并且通过使用一个合适的时钟生成器和适当的时序约束来避免时钟之间的偏移。

图5:PLL/DLL可用于在多时钟设计中创建一个已定义的启动序列。(图片来源:SmartDV)

PLL/DLL的用途并不局限于调偏、频率合成和时钟操作。另一个应用是以这种方式去设计FPGA的启动序列,电路功能在所有时钟域的规定时间内都能得到保证。PLL上电后自动锁定;无需额外重置。只有当时钟稳定时,复位才会解除。这在具有多个时钟域的电路中是必不可少的。

当然,这种预防措施只有在时钟彼此同步的情况下才有必要。在这种情况下,就需要通过相应的逻辑综合约束来定义相关时钟域的确切比例。这不仅需要提供带有相应设置脚本的RTL代码,还需要提供将IP核集成到电路中的所有必要的时钟约束和时序特例,如多周期路径和假路径约束。

需要注意的是,如果一个电路包含多个时钟,不仅要特别注意时钟结构,还要特别注意复位分布。如果没有特别注意到同步复位域,就不会以违反时序要求而终止运行,但可能导致电路故障。

图6:如果一个电路包含多个时钟,必须同时特别注意到时钟和复位分配。

为了无故障地使用IP核,时钟域的同步是必不可少的。在分配复位信号时,需要对复位域交叉采取适当的预防措施。

接下来:

本系列文章的目标是全面分享经验,帮助读者利用ASIC IP来实现完美的FPGA验证原型,在前两篇文章中讲述了了解ASIC IP与FPGA验证原型的区别并提前做相应规划和调整之后,本篇文章介绍了我们如何确保在FPGA上实现所需的性能,以及在时钟方面必须加以考量的因素。接下来将介绍剩下的两大主题:如果目标技术是FPGA而不是ASIC,那么需要如何测试IP核的功能?设计团队还应该牢记什么?欢迎关注SmartDV全资子公司“智权半导体”微信公众号继续阅读。

最后,SmartDV在利用8个主题进行相关介绍和分析之后,还将提供实际案例:用基于FPGA的方法来验证USB 3.2 Gen2x1 Device IP,包括:

USB 3.2 Gen2x1 Device IP:实现、验证和物理验证

USB 3.2 Gen2x1 Device IP的实现挑战

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在数字化浪潮席卷全球的今天,FPGA技术正成为驱动创新的核心引擎。2025年8月21日,深圳将迎来一场聚焦FPGA技术与产业应用的盛会——2025安路科技FPGA技术沙龙。本次沙龙以“定制未来 共建生态”为主题,汇聚行业...

关键字: FPGA 核心板 开发板

在现代电子系统中,现场可编程门阵列(FPGA)凭借其开发时间短、成本效益高以及灵活的现场重配置与升级等诸多优点,被广泛应用于各种产品领域。从通信设备到工业控制,从汽车电子到航空航天,FPGA 的身影无处不在。为了充分发挥...

关键字: 可编程门阵列 FPGA 数字电源

2025年8月4日 – 提供超丰富半导体和电子元器件™的业界知名新品引入 (NPI) 代理商贸泽电子 (Mouser Electronics) 即日起开售Altera®的Agilex™ 3 FPGA C系列开发套件。此开...

关键字: FPGA 边缘计算 嵌入式应用

内窥镜泛指经自然腔道或人工孔道进入体内,并对体内器官或结构进行直接观察和对疾病进行诊断的医疗设备,一般由光学镜头、冷光源、光导纤维、图像传感器以及机械装置等构成。文章介绍了一款基于两片图像传感器和FPGA组成的微型3D内...

关键字: 微创 3D内窥镜 OV6946 FPGA

运用单片机和FPGA芯片作为主控制器件 , 单片机接收从PC机上传过来的显示内容和显示控制命令 , 通过命令解释和数据转换 , 生成LED显示屏所需要的数据信号和同步的控制信号— 数据、时钟、行同步和面同步 。FPGA芯...

关键字: 单片机 FPGA LED显示屏

在异构计算系统中,ARM与FPGA的协同工作已成为高性能计算的关键架构。本文基于FSPI(Fast Serial Peripheral Interface)四线模式,在150MHz时钟频率下实现10.5MB/s的可靠数据...

关键字: ARM FPGA FSPI

在全球FPGA市场被Xilinx(AMD)与Intel垄断的格局下,国产FPGA厂商高云半导体通过构建自主IP核生态与智能时序约束引擎,走出差异化高端化路径。本文深入解析高云半导体FPGA工具链的两大核心技术——全栈IP...

关键字: FPGA 高云半导体

2025年6月12日,由安路科技主办的2025 FPGA技术沙龙在南京正式召开,深圳市米尔电子有限公司(简称:米尔电子)作为国产FPGA的代表企业出席此次活动。米尔电子发表演讲,并展出米尔基于安路飞龙派的核心板和解决方案...

关键字: FPGA 核心板 开发板

高 I/O、低功耗及先进的安全功能,适用于成本敏感型边缘应用

关键字: FPGA I/O 机器视觉

本文讨论如何为特定应用选择合适的温度传感器。我们将介绍不同类型的温度传感器及其优缺点。最后,我们将探讨远程和本地检测技术的最新进展如何推动科技进步,从而创造出更多更先进的温度传感器。

关键字: 温度传感器 CPU FPGA
关闭