如何建立适合团队的FPGA原型验证系统平台与技术?

电子说

1.3w人已加入

描述

      FPGA原型验证在数字SoC系统项目当中已经非常普遍且非常重要,但对于一个SoC的项目而言,选择合适的FPGA原型验证系统显的格外重要,尤其对于首次使用基于FPGA的原型设计验证的工程师而言,从FPGA原型验证技术目标的细节理解到掌握如何使用它来构建芯片的原型,是一个质的飞跃,做到这一点,并非易事。下面我们来看一下如何Step by Step建立适合团队的FPGA原型验证系统平台与技术。

FPGA的规模到底有多大?

       芯片设计领域通常讲到规模,我们第一反应一定是逻辑规模,当然对于芯片设计验证工程师而言,逻辑门数是规模的第一反应,但实际上FPGA是构建SoC原型系统的最佳选择,它不仅包含大量的组合逻辑和时序逻辑资源,还包含其他资源,比如各种类型的RAM存储资源和DSP算术资源,以及时钟资源、特殊的IO资源和高速互连接口与器件,这些都进一步扩大了FPGA技术用于芯片原型设计与验证的范围。

逻辑资源:FPGA在高度可配置的单元中实现逻辑,将查找表与可选输出FF、进位逻辑和其他特殊元素相结合,以有效映射逻辑。

存储资源:小容量内存可以用查找表配置,大容量的专用内存块会分布在整个设备中,可以用作单端口或双端口R/W同步内存块。这些存储器块可以连接在一起并形成更深或更宽的存储器块,并且可以使用附加的内置逻辑来实现专用存储器,例如单时钟或双时钟FIFO。这些通常是从供应商提供的专用内存IP库中配置的。

DSP资源:FPGA在整个设备中分布专用DSP资源(包括MAC等)也是常见的,(乘法/累加)块、移位、幅度比较器和模式检测等。此外,DSP块具有级联功能,允许它们连接在一起形成更广泛的数学函数,如DSP滤波器,而不使用逻辑FPGA资源。

IO接口资源:FPGA的IO可以多种方式配置,以符合各种标准、驱动强度、差分对等。

互连资源:FPGA中最重要的资源可能是各种块之间互连的手段。除了一些特殊缓冲区之外,这些资源通常不能由用户明确控制,而是由布局布线工具和一些高级综合工具隐含地使用,以便在FPGA上实现设计的连接(Chip2Chip)。

时钟资源:专用于实现设计的时钟。这些专用的可编程时钟发生器,包括PLL、全局和区域时钟缓冲器以及低偏斜分布网络。

特殊用途的模块:一些设备具有实现特定功能的硬核模块,如以太网MAC、PCI Express接口、选定的CPU核心或高速串行收发器(例如SERDES)。这些特殊模块有助于实现行业标准的外围接口。

建议:鉴于专用资源的专用性,SoC逻辑可能不会透明地映射到这些资源中。为了使用专用资源,一些SoC设计块可能需要与FPGA等效功能的模块替换。当进行此类设计更改时,应理解新块的功能行为可能与原始块不同。

关于FPGA资源的估算

      FPGA资源丰富,我们通常希望很快地将这些资源应用到SoC相关的功能设计中,但实际上能否快速的将SoC代码快速移植到FPGA,一方面取决于工程师的经验,另一方面真的取决于SoC的架构设计和代码质量,一般而言组合逻辑路径较短的设计更容易porting到FPGA原型验证,也就是说善于运用寄存器的设计更容易porting,另外合理的流水线设计也将更容易porting。通常需要很多步骤的从SoC代码移植到FPGA代码,才能顺利的porting完成。

      在资源换算上,通常我们常说ASIC门数目,而实际上ASIC的门数和FPGA的门数换算并没有一个严格的计算公式,大多数都是不严谨的估算,作为一名 严苛的工程师,很容易进入到公式计算的思维定式,但实际上,很难有严苛的公式,大多是只是经验之谈,比如一个LUT大概换算多少逻辑门,一个FF大概换算多少门,而在ASIC芯片设计中,所谓的门更是通过综合工具综合结果而来。另外,在FPGA综合工具中,即使代码量差不多,综合出来的结果也会千差万别,说白了,还是取决于代码质量。建议首先根据特殊资源确定设计是否适合FPGA原型设计与验证,一旦设计代码可综合,就通过综合工具运行相关设计代码,以获得准确的FPGA资源使用估计。如果设计是可综合的,建议使用快速综合评估,以表明预期的资源利用率。

      一旦给定设计的FPGA资源利用水平可用,我们就需要为设计的成熟度建立利用水平目标。一般来说,FPGA利用率越高,处理设计(合成、放置和布线等)所需的时间就越长,而且由于布线延迟更大,系统时钟运行速度也会越慢。此外,在原型项目期间,设计可能会发生变化,未来可能会添加一些诊断逻辑,因此系统中FPGA的数量应保守考虑。

      基于FPGA的原型设计的一个关键目标是降低SoC项目的整体风险,因此,将最后一点点的逻辑都要压缩到FPGA中可能不是风险最低的方法。除了不留任何扩展空间外,当设备太满时,FPGA布局布线结果也会降低,运行时间也会大大增加。指导方针可能是保持低于75%的利用率,这对于生产FPGA设计和原型项目来说是典型的,60%甚至50%都是合理的。这将缩短设计迭代时间,更容易达到目标性能。

代码设计:好的设计代码风格比其他设计更有效地映射到FPGA资源中,因为它们与FPGA架构和资源的匹配程度。如上所述,由于FPGA技术含大量触发器,具有较高FF与组合逻辑比的设计可能比具有较低比率的设计实现更高的有效门,简单来讲就是组合逻辑路径不要太长。

时钟资源:虽然有多个时钟域,但FPGA的PLL资源、时钟多路复用器资源和片上的布线资源都是有限的。对于多时钟设计,需要更仔细地查看所选FPGA中的可用时钟资源和时钟域限制。

布线资源:FPGA的可用逻辑可能受到布线资源可用性的限制,布线资源的可用性可能因设计而异。“高密度连接”设计可能会耗尽某些区域的FPGA布线资源,并限制对该区域FPGA资源的访问,从而可能导致这些资源无法使用。此外,与“轻度拥塞”设计相比,此类设计可能以较低的时钟速率运行。

IO资源:在现代SoC设计中,多FPGA分区设计中的FPGA在耗尽逻辑或内存之前耗尽引脚是非常常见的。平衡FPGA之间资源的分区可能仍然需要使用多路复用来路由FPGA之间的所有信号。





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分