FPGA是一种新的PCB吗?
软件革命
近年行业中最大的变化可能是低成本微处理器的运用。微处理器最初用于实现计算器,然后用于个人电脑。由于具有动态重新配置的特点,它们取代了许多硬连接数字系统电路,将真实的“嵌入人工智能”带入先前“笨拙”的器件中。
微处理器成功的关键不在于器件本身,而在于它带给工程师们的、将重要的设计难题从硬连接环境转换为“软”领域的能力。板级硬件平台设计继续使用熟悉的“硬连接、现用器件”模式,但是平台中的产品特性或智能的开发可以加为“软件”。使用这种基于平台的方法,制造相同物理硬件的风险大大降低了,因为构建硬件后还可以修改其特性。
微处理器最初作为一种高效的可升级工具,现在最终改写了电子器件的规则。它不再满足于价格便宜、性能可靠、工作效率高,现在的电子器件需要“智能”。
随着过去十年内微处理器已经改变了电子设计的面貌,FPGA显然代表着行业内的下一件“大事”。
由于FPGA容量大、性能高、成本相对低廉,因此先前固定的设计元素(如处理器及其外设器件和逻辑块)可以转移到一个软领域。它有如此大的吸引力是因为它有可能给硬件设计带来同等水平的自由度,即随着微处理器的广泛普及,将功能转移到软件给开发人员带来的自由度。
FPGA可编程的特点对于开发是一个福音,它充许修改硬件设计,但却没有板卡反复制造所固有的时间和成本损失。而且在产品出厂或生产过程中可立即对下层系统硬件进行修改。开发过程中软件方面享受的高级待遇现在可以延伸到硬件中,这样,产品的可配置智能不仅属于软件,且存在于FPGA中实现的软连接电路。
随着过去十年内微处理器已经改变了电子设计的面貌,FPGA显然代表着行业内的下一件“大事”。
问题在于,如果设计人员没有当前FPGA设计所需要的专业技能,怎样防止被关闭在电子设计模式转变的大门之外?
到日前为止,FPGA设计基本上由HDL专家拥有并操作。传统的FPGA设计技术从定义器件功能的角度发展起来。FPGA开发人员在寄存器传输级(RTL)使用Verilog和VHDL等硬件描述语言定义FPGA的逻辑功能。由于FPGA基板面在过去相对来说比较昂贵,所以焦点集中在从既定可编程器件中抽象n级优化。
随着大容量可编程器件价格的降低,这些器件可能会被用作完整的系统平台,从而大大地改变了人们的上述看法。对器件RTL逻辑功能进行定义,需要在更高抽象层次上开发FPGA功能。焦点集中于系统级设计使得主流系统工程师乐于加入FPGA俱乐部,而他们未必是HDL或FPGA设计专家。
回到未来
从器件角度来看,此阶段的目的是使FPGA作为系统开发平台得到大规模采用。但是当前依靠HDL方法限制了大量可以在此领域轻松工作的工程师。特别是从工具的角度来看,需要的是可以提供高层次抽象的FPGA设计方法,但可以为大多数正在从事系统设计的工程师所用。在四处寻找方法之际,值得重新审视当今行业的支柱——板级设计技术。板级嵌入式系统工程师按惯例创建有效地包含几百万基本门的设计。但是他们不需要处理寄存器级或门级设计的复杂性,系统复杂性包含在用于构建电路的器件中。设计人员仅使用这些大型现用器件,并在系统开发过程中将其当作“黑匣子”处理。
虽然大型IP器件可用于FPGA,但IP块、器件主要为HDL源文件。FPGA设计人员必须在目标源代码中用具体例子说明IP,这通常要求掌握逻辑块的装配方式。一旦包含于电路说明中,整个系统(包括大型IP块)必须针对目标器件加以综合。
当前FPGAIP的分配方法倾向于增加而不是减少FPGA设计流程的复杂性,距现用阶段还很遥远。
显然,要使FPGA中系统级设计具有高效率且为主流工程师所用,必须对为FPGA实现而交付的IP加以精简,使之可以“实用化”。而且,使用此IP的设计环境必须具有设计人员在板级系统中所享有的相同灵活性和高度抽象性。
成功的器件
Altium公司是电子产:品开发解决方案的主要供应商,它已通过最新发布的Altium Designer系统迎接这一挑战。Altium Designer寻求结合板级和FPGA级系统设计的数字系统一体化开发方案,使板级设计人员可以使用构建板卡实现系统的工具和技能创建FPGA系统。
Altium公司的方案是将构建软系统所需的功能打包于大型软器件中并为设计人员提供使用熟悉的原理图方案组装器件的环境。然后设计可以自动实现于目标FPGA器件。
带有预综合模型的基于FPGA的器件以原理图符号形式供应,各个器件为系列目标FPGA进行综合。在设计过程中,选中目标器件的正确模型自动加以抽象,并随原理图定义的连接信息发送到FPGA综合引擎中,作为“黑匣厂”处理。
结果是用于FPGA实现的系统可在Altium Designer中以创建板卡实现系统的相同方式创建——FPGA器件从库中取出、放到原理图上并连接在一起,形成系统硬件,Altium公司的经典板级设计系统Protel实际上是:Altium Designer的一种许可证选项,其输入环境已得到增强,包含FPGA开发功能。
测试时间
与输入系统同样重要的是在开发过程中测试并调试系统的能力。传统的FPGA设计流程严重依靠HDL级仿真解决潜在定时和功能问题。这是因为组成电路的功能块例示为源代码,整个系统必须为实现加以综合,即使在先前测试的代码块中,这也可能引起问题。系统越大越复杂,仿真流程越困难,花费的时间越多。事实上,在许多FPGA应用软件中,仿真花费的超时间可能与初级设计流程一样多。
板级仿真在电路硬件验证的实际测试方面发挥着支持作用。因为用于构建电路的器件是在假定符合制造商的规格说明的条件下进行工作的,所以不需要验证器件本身的性能。
使用“拿来即用的”预先综合器件将简化由FPGA输入流程所引起的如何测试实现于FPGA组织中的系统的问题。与构建于板卡上的电路不同,此处没有访问FPGA中的器件间信号的明显方法