窥探鲜为人知的FPGA和ASIC世界

阿比纳夫·贝尔

845

fpga和asic目前被广泛应用,特别是在笔记本电脑、智能手机和电视机等电子设备上。这些组件各有优缺点。它们的适用性取决于应用程序的类型。随着时间的推移,fpga和asic将经历新的发展,并有效地满足客户的需求。

fpga和asic构成了现代电子系统的核心。没有它们,我们认为理所当然的许多设备将不复存在。但我们看到的远不止这些。在最先进的处理器背后,数月和数年的努力使它们强大和可靠。所以,让我们了解更多关于他们的设计之旅。

专用集成电路(ASIC)是一种只用于特定应用的集成电路。现场可编程门阵列(FPGA)是一种可重复编程的集成电路,可重复用于不同的应用。要做到这一点,需要重写硬件设计语言(HDL)代码,并相应地重新编程FPGA。

它们之间的一些其他区别是:

上市时间

ASIC上市的时间是出了名的慢。一个好的ASIC可能需要5到6年的时间才能完全从零起步。另一方面,PCI和USB等FPGA项目需要8个月到1年的准备时间。

单位成本

与ASIC相比,FPGA的单位成本较高。因此,只有在需要大量生产的情况下才能开发FPGA。

功耗

如今,电力消耗是一个大问题。我们希望我们的电子设备能够节省电池电量并高效工作,即使是在低功耗的情况下。从这个角度来看,FPGA并不是一个好的选择,因为它比ASIC具有更高的功耗率。

频率

与ASIC相比,FPGA的工作频率要低得多。频率越高,操作难度越大。然而,对于ASIC来说,没有特定的频率速度。

设计复杂性

ASIC设计和制造复杂,因此需要很长时间才能推向市场。但是FPGA相对简单。

FPGA设计流程

设计FPGA的过程通常从顶部的功能规范开始。接下来,编写用于行为模拟的HDL代码。然后是合成、放置和路由、下载和验证的步骤,以及静态时序分析,这些都是由设计软件处理的。

FPGA的设计流程
图1:FPGA的设计流程

对于Xilinx FPGA,使用Vivado软件。对于Intel FPGA,使用Quartus。在Vivado中,步骤Place & Route也被称为实现。

在行为模拟期间,检查HDL代码的准确性和预期行为,即代码中是否存在任何功能缺陷。

在静态计时分析期间,检查设置时间和保持时间违反。尽管保持时间延迟可能有点难以解决,但如果您对设计功能有很好的理解,设置时间是很容易的。

最后,生成一个比特流,该比特流必须下载并设计到FPGA中进行电路验证。

ASIC设计流程

ASIC的设计过程也从功能规范开始,然后转移到HDL代码上。使用Questa sim、Model sim和其他类似的模拟器进行行为模拟。在继续合成之前,有一个称为DFT插入的步骤,其中检查触发器连接是否存在任何故障。合成后,需要执行静态时间分析(STA),其中需要特定的STA引擎。因此,需要删除设置时间和保持时间延迟。然而,由于它们的工作频率非常高,因此去除它们是相当具有挑战性的。(与FPGA相比,ASIC的工作频率通常非常高。)

ASIC的设计流程
图2:ASIC的设计流程

接下来是等价性检查和楼层规划,这与ASIC中的标准单元库有关。这里,HDL被转换成RTL。楼层规划是将标准单元从逻辑库替换到芯片上的步骤。

然后将设计交给铸造厂。但在这样做之前,必须确保设计中没有错误或漏洞,否则将导致巨大的损失。最初,这家工厂生产大约100块用于基本测试的芯片。如果在测试过程中发现了错误,整个过程必须从综合和平面规划阶段重复进行,直到从ASIC中删除所有错误。这需要花费大量的时间,因此,上市的时间增加了。这就是为什么首选FPGA作为设计原型的原因。
经过一到三个月的等待,无缺陷ASIC芯片从铸造厂运抵,下一步是再次执行STA以进行接线(与输入输出相关)。

然后验证了二阶和三阶效应。一旦故障被纠正,电路需要被验证。这是通过把ASIC和其他组件放在板上完成的。在确认ASIC的运作符合预期后,将投入市场。

因此,ASIC有一个漫长的设计流程,需要大量的时间来制造,而FPGA则需要更少的时间。

FPGA结构及其加速流程

图3显示了FPGA的内部,其中绿色框称为I/O单元。橙色框称为逻辑块,由可配置逻辑块(CLB)和查找表(LUT)组成。根据FPGA的不同,I/O单元和逻辑块可以改变。蓝色线表示可编程互连资源,允许生成不同的位文件。

FPGA内部
图3:FPGA内部

如果在验证FPGA电路时检测到一个bug,将在HDL代码中进行修改以纠正它,同时对任何中断的流进行行为模拟检查。然后生成位文件,然后在板上测试,以检查其工作。通常需要3-4天的时间来纠正fpga中的错误。但在asic中,增加到6-7个月。

ASIC RTL设计完成后,将原型化到FPGA上,以验证设计功能。好处是,在RTL的帮助下,漏洞可以很容易地与任何CDC或STA违规一起解决。但是,必须注意的是,不能保证代码结果100%没有bug。只有60-80%的错误可以在FPGA中解决。剩下的40-20%的bug只能在ASIC中解决。

FPGA只能加快缺陷的检测速度,这需要花费大量的时间才能在ASIC中解决。检测到错误后,RTL再次从FPGA更改为ASIC。

外围设备连接

从图4中我们可以看到,芯片组、CPU和各种其他外围设备从外部连接到FPGA,因为FPGA不提供将CPU嵌入其内部的功能(尽管许多公司,如Xilinx,正在努力改变这一点)。但是这种情况在ASIC中是不存在的,CPU可以直接嵌入ASIC中。

FPGA的连接
图4:FPGA连接

ASIC的设计挑战

在设计ASIC时面临的主要挑战之一是时钟路由(CLKrouting)。在ASIC中,时钟应该被正确路由,以便它在同一时间到达每个触发器,以防止时钟偏移。为此,有h树和x树类型的电路。在H树和X树中,时钟都是在(字母H或X的)交点处给出的,如图5所示。触发器被放置在边缘上,允许时钟同时到达而不产生任何时钟偏差。

接下来是电源路由和接地(GND)路由。在ASIC中,电源和地面通道有不同的层,它们使用via连接。万博就是皇冠通过连接的钻孔为电源布线和接地布线提供了不同的芯片层。

下一个挑战是相声。如果两条平行信号车道之间的距离太小,信号可能相互干扰。因此,必须保持特定的距离。然后我们可以将比特流下载到FPGA中并运行它。串扰问题存在于ASIC中,而不存在于FPGA中。

由于FPGA中没有触发器问题,其利用率相当高。但ASIC不应加热,应在低温和高温下工作。如果两个触发器挨得太近,ASIC的两个不同部分可能会有不同的温度,从而造成设计失败。所以,我们必须确保电路路由是完美的。我们在FPGA中不必担心这个问题,因为Vivado软件将它们放在FPGA的不同块的小部件中。

相互作用时给出的时钟
图5:交互时给出的时钟

FPGA的设计挑战

ASIC在启动之前首先在FPGA中进行测试。但是,这种原型方法的一个主要缺点是,与ASIC相比,FPGA的运行速度较慢。ASIC以较快的时钟速度运行,这是FPGA无法比拟的。

第二个缺点是功耗。与FPGA相比,ASIC的功耗非常低。

此外,由于所有器件都以触发器和lut的形式存在,因此锁存器不能被容纳在FPGA中。但是锁存可以很容易地在asic中实现。
其他成型方法

仿真器可以用作原型方法,有助于比FPGA更进一步地缩短上市时间。然而,这些产品价格昂贵,几年前才在市场上推出。FPGA已经存在很多年了。

对于数千个信号和数百行HDL代码,仿真器为我们的设计提供了完整的信号调试,允许我们精确地定位代码的特定部分中的错误。
其中一个模拟器是由Mentor Graphics提供的用于ASIC原型的Veloce模拟器。


本文基于LogicFruit Technologies RTL设计师Abhinav Behl在2021年2月举行的技术世界大会上发表的演讲“快速原型解决方案:FPGA的作用”。

没有评论

分享你的想法和评论

请输入您的评论!
请在这里输入您的姓名

Baidu