半定制cpu有什么好处(芯片全定制和半定制区别)

对当今的硬件工程师来讲,FPGA的应用是同PCB设计一样必须掌握的技能,因此在过去三年里我们硬禾实战营最重要的技能培训就是融合了PCB设计的FPGA编程和系统应用,因为在数字化逻辑支撑整个现代科技的今天,不会用FPGA也就意味着无法用数字逻辑的思维方式来解决问题,也就很难成为一个优秀的系统工程师,也会错失掉蓬勃发展的物联网、工业4.0、人工智能等浪潮。

我们先来看看FPGA的重要性:

FPGA的技术已经已经发展了30多年了,到了今天它和CPU架构一样,玩家越来越少、技术越来越高端,应用越来越深入到各个领域,成了支撑当今各项高科技领域(物联网、大数据、云计算、无人驾驶、智能制造、人工智能)的基础。

这张图看得出FPGA和CPU并驾齐驱,不断刷新性能指标,由于FPGA的可并行利用资源的特点,其计算能力要远超已经采用多核技术的CPU架构。

经过30年的发展,FPGA已经不再是当初简单的“可编程逻辑器件(PLD)”了,在器件内部集成了更多需要灵活配置的可半定制化的功能,在两个大佬Xilinx和Altera/Intel内部集成了硬核化的CPU之后,现在的FPGA更像是芯片领域的“变形金刚” - 五脏俱全并可变化万千。

CPU届的老大Intel嗅觉灵敏,3年前果断出手将FPGA的两巨头之一的Altera收入囊中,高度整合CPU/FPGA,为大数据、云计算以及人工智能大时代做足了准备。

一路高歌猛进的Xilinx,在兄弟Altera被招安以后,独步江湖成为了数字世界的“擎天柱”。

如果是说Xilinx和Altera是飞机、高铁的话,还有两位低调的小兄弟“Lattice”和“Actel”(先被Microsemi收编,又到了MCU大佬Microchip的麾下),他们不放弃、不抛弃,就像滴滴、摩拜一样用自己精雕细琢的服务支撑着从简单的逻辑变换、协议接口到图像处理、深度学习等几乎所有的领域。

FPGA无处不在 - 这张图可以看出来,几乎你能想象到的所有技术领域都会用到FPGA。

最简单的是做接口/协议连接的功能,通过各种逻辑组合,以灵活、高速、资源丰富的优势帮助ASIC(专用集成电路)实现系统所需要的一切功能,也就是说在数字域,凡是你选用的ASIC不能实现的功能,都可以用FPGA来协助。

在人工智能时代,虽然GPU炙手可热,但在灵活性和高性能之间最佳的平衡绝对离不开FPGA。这就是为什么Xilinx的股票持续上涨、美国总统亲自否决中国对Lattice的收购的原因,因为这玩意儿太重要了,未来会越来越重要 - 具有高度杀伤力的核心技术。

这张图简单地展示了FPGA在人工智能领域应用的优势所在。

微软的云服务当然缺少不了FPGA了,无数颗的CPU、GPU,仍旧离不开FPGA,从这个图上隐约觉得FPGA就是云中的带头大哥“擎天柱”。

是不是“不明觉历”?我们不能只是停留在“不明”的阶段,对这么厉害的技术一定要“明”,一定要知道它是什么?它应该怎么用?先通过一张图简单看一下FPGA是如何构成的。

以Xilinx的Virtex II为例的FPGA内部结构

FPGA是一种可编程的数字逻辑芯片,我们可以通过对其编程实现几乎任何的数字功能,最简单的如:

丰富的可编程逻辑资源(CLB) - 各种组合逻辑、时序逻辑,门“阵列”丰富的内部存储资源(Block RAM) - 可以组成ROM、双口RAM、FIFO等等各种需要的存储结构可编程的IO - 每一个输入输出管脚都可以单独定义、配置,支持同其它器件的灵活连接

看到这里是不是就觉得它很强大了?这只是FPGA冰山的一个小角而已,即便掌握了这些基本功能的使用,就足以让我们硬件工程师的技能得到大大的提升,在产品设计中上一个大的台阶,哪些提升呢?

FPGA在数字世界里它无所不能,就像乐高的积木一样可以搭建各种不同的功能模块,实现你所希望的各种功能,这是你产品中非常重要的一块,可以大大加速你产品的开发时间,可以大大降低系统的成本及设计风险,可以为你产品的升级、调整带来大大的灵活性;数字逻辑的思想 - 首先你必须掌握最基本的数字逻辑知识,学会一种用来构建各种功能的工具语言(在这里我们推荐广受欢迎的Verilog),再次你要动脑(考验的是你的逻辑思维是否清晰),一个优秀的建筑师的作品是在脑子里勾画出来的,而不是拿积木碰运气拼凑出来的;并行设计的理念 - 同CPU不同的是FPGA是并行处理的,如果要处理并行的多个任务,CPU必须经过非常复杂的任务调度,有时候不得不联合多核一起,而多数情况下一颗小小的FPGA就能搞定所有的任务,从设计理念上这是孑然不同的;资源的合理利用 - 各个厂商的各种型号的FPGA可供你选用,有啥呢?就像你出行是选择乘飞机、高铁、出租还是骑自行车一样,每种方式都要付出不同的成本,而根据需要选择最适合的资源配置在使用FPGA的过程中能够得到最充分的体验;哪怕你做一个小小的项目,你会惊奇地发现它很有趣,你任何天马行空的想法都可以通过FPGA来快速实现,在乐趣中找到爆棚的自信感

所以,你有必要像对待PCB设计一样也来学习FPGA,甚至投入更高的热情。