结果:
文章插图
文章插图
可以看到,这个和一般的高级语言差别比较大 。
学习FPGA必须有过硬的硬件电路基础 。
例2:
文章插图
上述为lattice的一款FPGA架构,你可以把它想象成一块放满电子元件的硬件电路板,图中“电路板”上的元件有IIC和SPI硬核接口“器件”,有NVCM程序存储“器件”,有RAM数据存储“器件”,还有最小单元的LUT(查找表)器件 。
一般FPGA工程师会使用硬件描述语言Verilog或者VHDL对FPGA进行“编程”,之后,再经过厂家提供的FPGA开发工具(Diamond或Radiant、vivado)的综合、布局、布线,会产生bit文件或bin文件 。
如果工程师将最终产生的bit文件或bin文件下载到FPGA中,就相当于一位硬件工程师,在FPGA芯片这块已经放置了“元件”的“电路板”上,进行了布线操作 。(也就是把毫无关联的与器件,用铜线连接起来)
下载程序后的FPGA,我们就不能简单称之为“电路板”了 。
举个例子,FPGA实现的功能是SPI转并口,那么这块FPGA就可以称为“spi接口转换板” 。
当然,FPGA和“电路板”终究是不同的,FPGA可以进行重复编程,相当于一块可以反复布线的电路板 。
七、为什么效率会如此之高?1. FPGA与GPU的区别本质上是体系结构的区别CPU、GPU 都属于冯·诺依曼结构,指令译码执行、共享内存 。
FPGA 本质上是无指令、无需共享内存的体系结构 。
- CPU与FPGA区别之(指令): CPU结构——有指令: 冯氏结构中,由于执行单元(如 CPU 核)可能执行任意指令,就需要有指令存储器、译码器、各种指令的运算器、分支跳转处理逻辑 。由于指令流的控制逻辑复杂,不可能有太多条独立的指令流,因此 GPU 使用 SIMD(单指令流多数据流)来让多个执行单元以同样的步调处理不同的数据,CPU 也支持 SIMD 指令 。 FPGA结构——无需指令: 而 FPGA 每个逻辑单元的功能在重编程(烧写)时就已经确定,不需要指令 。
- CPU与FPGA区别之(内存) CPU结构——仲裁与共享内存: 冯氏结构中使用内存有两种作用 。一是保存状态,二是在执行单元间通信 。由于内存是共享的,就需要做访问仲裁; 为了利用访问局部性,每个执行单元有一个私有的缓存,这就要维持执行部件间缓存的一致性 。
FPGA 同时拥有流水线并行和数据并行,而 GPU 几乎只有数据并行(流水线深度受限) 。
- FPGA流水线与数据并行处理: 例如:处理一个数据包有 10 个步骤,FPGA 可以搭建一个 10 级流水线,流水线的不同级在处理不同的数据包,每个数据包流经 10 级之后处理完成 。每处理完成一个数据包,就能马上输出 。
- GPU数据并行处理: 而 GPU 的数据并行方法是做 10 个计算单元,每个计算单元也在处理不同的数据包,
这就要求 10 个数据包必须一起输入、一起输出,输入输出的延迟增加了 。
总结一句话,很多算法如果用纯软件实现,需要很多条指令才能完成,如果用FPGA,只需要在有限个时钟周期即可完成,速度快的不是一点半腥 。
八、收入FPGA军品使用非常广泛,基本上只要涉及无线通信的产品都会涉及到FPGA开发 。
尤其在高校里,应用非常广,这个领域,特别容易发论文(博士论文)
还有一些其他领域都是些小公司,工控机器人,3d成像,裸眼3d公司,led拼接屏公司,
通信领域用的比较多,还有些大数据的,比如说腾讯和百度也有类似的岗位做数据挖掘
一口君随手截取了某App发布的南京、上海、深圳的FPGA岗位信息 。
推荐阅读
- 枸杞适合搭配什么泡水,百合跟什么搭配泡水好
- Go泛型系列:slices 包讲解
- 合欢花和什么搭配最好,合欢花和什么起泡水
- 主色都有什么颜色,五行看你适合啥颜色的衣服
- 什么是数字签名?
- 红花泡水喝有什么效果,蒲公英泡水喝治什么病
- 五十岁女人养生喝什么好,熬夜喝什么好
- 吃什么容易睡眠,吃什么东西利于睡眠
- 初识python正则表达式
- 什么样的藏红花是最好的,目前国内市场上的藏红花价格参差不齐