一文读懂嵌入式FPGA所有猫腻,改变芯片设计方式岂是闹着玩的
芯片设计人员今天面临的最关键的问题之一是在设计过程中实时重新配置RTL,甚至在系统中也是如此。不幸的是,芯片设计人员无法及时知道是否必须这样做。在这一点上,任何变化都会花费数百万美元,并将项目推迟数月。
有了嵌入式FPGA,这个问题便解决了。芯片设计人员在开展项目时,会知道他们在项目期间拥有随时更改RTL的灵活性,这是前所未有的。
因为嵌入式FPGA是一种新技术,在开始介绍之前,我们要将其与已经存在了几十年的标准FPGA之间的差别说出来。从根本上讲,嵌入式FPGA是一个IP block,允许将完整的FPGA集成到SoC或任意类型的集成电路中。正如RAM,SERDES,PLL以及处理器一样,从单独的芯片转变成常规的IP block。FPGA现在也是一个IP区块。
FPGA在可编程互连结构中组合了可编程/可重配置逻辑块阵列。在FPGA芯片中,芯片的外缘由GPIO,SERDES和专用PHY(如DDR3 / 4)组成。在高级FPGA中,I/O环约占芯片的1/4,架构约占芯片的3/4。“架构”本身在如今的FPGA芯片中大多是互连,其中20-25%的结构面积是可编程逻辑,75-80%是可编程互连。
嵌入式FPGA是一种没有周边环形GPIO,SERDES和PHY的FPGA架构。相反,嵌入式FPGA使用标准数字信号连接到芯片的其余部分,实现非常宽,非常快的片上互连。
深入嵌入式FPGA内部之原始的构造块
FPGA中的可编程逻辑块是查找表(LUT),它可以通过编程实现任意布尔函数:4个,5个或6个输入具有一个或两个输出。
在Flex Logix EFLX阵列中,LUT是一个双4输入LUT,它可以组合形成一个5输入LUT。LUT输出可以任意存储在触发器中。LUT通常被分组为具有进位逻辑的四个组,以便于加法器和移位器。
另一个可编程逻辑块是MAC(乘法累加器)或DSP加速器块。
在Flex逻辑EFLX阵列中,有一个22位预加器,一个22x22乘法器和一个4位后置加法器/累加器。MAC可以组合或级联以实现快速DSP功能。
可编程逻辑块由设置LUT数值的配置位编程,选择是否旁路使用触发器,是否激活进位逻辑等。配置位还对MAC的操作进行编程。通常在FPGA中,配置位从外部闪存加载。
对于嵌入式FPGA,它是相同的,因为几乎所有的SoC都有一个从外部闪存引导的ARM/ARC /MIPS等处理器。同样的闪存用于存储嵌入式闪存的配置位。
可编程逻辑块接收输入并将输出发送到互连网络,该互连网络允许从FPGA架构中的任意逻辑块可编程地进行连接。互连结构同样也由配置位编程。互连结构通常是FPGA架构的主体。
嵌入式FPGA的主要区别是互连结构的设计。最佳互连使用较小的面积和较少的金属层,同时提供资源的高利用率。
与FPGA芯片不同,嵌入式FPGA中没有PHY/SERDES/PLL。嵌入式FPGA中有一个I/O环,但它是真正简单的数字互连到芯片的其余部分。嵌入式FPGA有成百上千的互连,它们可以在芯片内全速运行。这种I/O宽度和带宽的增加是将FPGA嵌入到芯片的巨大优势。
嵌入式FPGA内部之构建任意规模和结构的阵列
当中的一个复杂问题是客户需要各种规模和结构的嵌入式FPGA,并且人人都希望在使用芯片前可以在硅片中验证IP块。
例如,在16nm中,客户可能希望仅需要几百个可编程逻辑的LUT就可以让快速可重构控制逻辑运行在1GHz;而在同一进程中的另一客户可能想要50K-100K个LUT作为数据中心处理器加速器。如何能够满足这些客户最少的设计投资和上市时间?
Flex Logix使用平铺构造块的方法。首先,使用上述方法设计4个EFLX IP核。每个IP核都是一个独立的FPGA,但它们也可以阵列化,提供大约75个EFLX阵列,从100 个LUT到122.5K个LUT,以及任何逻辑/DSP的混合。
每个EFLX IP核都有额外的顶层互连,允许IP核自动连接到周围的IP核,使大型阵列的规模为NxN。
EFLX-100阵列的规模为5x5或3,000个LUT(在EFLX-100中实际上有120个LUT)。
EFLX-2.5K接管2500个LUT,规模为122.5K个LUT。
阵列可以是全逻辑或全DSP或这两种核心的任意组合,如下图所示:
还可以在嵌入式阵列中嵌入大量的RAM。Flex Logix通过使用标准RAM编译器来生成客户请求的任何类型的RAM(单端口,双端口;ECC/奇偶校验/无;根据需要而定),并在核心之间定位RAM。RAM是单个EFLX阵列的一部分。
使用上述方法可以允许少量IP核生成几乎无限种类的嵌入式FPGA阵列,以满足任何客户需求。
嵌入式FPGA内部之在硅片中验证构建块
Flex Logix构建验证芯片以验证硅片中的IP核。下图是TSMC 40ULP的例子。
在这个过程中,客户使用的VT(电压阈值掩码)组合有很大范围,Flex Logix设计的EFLX阵列与所有可能的组合兼容。因此,验证芯片具有5个阵列:在所请求的VT组合中的1个大阵列(4×4)和在其他4种规模中的4个2x2阵列。
由于40nm的EFLX阵列可以以高达300MHz的频率工作,并且GPIO仅在150MHz以内才可靠,因此有一个片上PLL可以产生非常快速、精确的时钟用于测试性能,并且有SRAM可以使用“测试向量”加载,然后全速运行。这提供了“芯片上的测试器”,使得我们可以在上述GPIO速度下验证全速操作。还有温度/电压监视器,以确保在最坏的目标情况条件下进行测试。
所以说嵌入式FPGA将改变芯片和SoC未来的设计方式。设计师无需再被困在项目中,并被迫花费数百万美元来在需要的时候改变RTL。当RTL需要更新时,公司也不再会有延误计划的风险。使用嵌入式FPGA,芯片设计过程变得简单很多,价格也便宜很多。
本文来自:FPGA之家