为什么很多人从FPGA转IC前端岗?哪个前景好?

很多入行不久的朋友潜意识里会认为FPGA是很高深的东西,能掌握FPGA的一定都是极其厉害的人。

其实,这是一个误解。

我们所讨论的FPGA只是基于已有的FPGA芯片去做后端排列组合的工作内容,而不是设计制造新的FPGA芯片,世界上能做这件事的公司屈指可数。

在说明FPGA为什么转IC前端之前,需要明确一下概念。

一、什么是FPGA?

在这里插入图片描述

FPGA像是IC行业里的乐高(拼乐高很容易,造乐高就极难了),它由大量基本的单元构成,让你组成自己想实现的功能。
FPGA:Field(现场)Programmable(可编程)Gate(逻辑门) Array(阵列)

这其中凸显了大量的逻辑门单元,这些逻辑单元是可以在任何地方随时进行组装的,这是不是跟组装积木一样?

在硬件描述语言出现之前,电路是用门搭的。

逻辑门单元是构成一切数字逻辑器件的基本单元,在数字世界里你想做任何事情、实现任何功能,都可以通过逻辑门的堆砌来实现,也就是说FPGA在数字领域里几乎无所不能。

前些年某FPGA公司在宣传其产品是称之为“万能芯片”,万能有些夸张,但FPGA高度灵活,理论上来讲,只要有足够的资源(积木数量足够多)几乎可以实现数字域的任何功能,受限的是速度、功耗以及系统的成本。

二、FPGA和ASIC的区别和共通点

1、作用ASIC——专用集成电路ASIC由IC设计人员根据特定的电路需求,设计专用的逻辑电路,在设计完成后生成设计网表,交给芯片制造厂家流片。

在流片之后,内部逻辑电路就固定了,芯片的功能也就固定的。FPGA——现场可编程门阵列FPGA由Xilinx,Alter等器件厂家提供,设计人员只需要根据需求选择相应的器件,然后设计逻辑电路,并下载到FPGA器件中去,实现需求的电路功能,随时可以修改电路功能。

2、适用性FPGA主要用于要求快速迭代或者小批量产品,或者作为ASIC的算法验证加速。ASIC用于设计规模大,复杂度比较高的芯片,或者是成熟度高,产量比较大的产品。

3、成本小批量需求时,单片FPGA成本低于ASIC,随着产品量的增加,单片ASIC成本逐步降低

4、功耗在相同工艺条件下,FPGA要大于ASIC。FPGA,尤其是基于占用大量硅面积的、每个单元六个晶体管的静态存储器(SRAM)的查寻表(LUT)和配置元件技术的FPGA,其功耗要比对等的ASIC大得多

5、速度FPGA内部是基于通用的结构,根据RTL设计选择内部布局布线,当然通用必然导致冗余。ASIC是根据设计需求,最优化cell逻辑资源,并且做到最优布局走线,降低走线延迟和CELL延时。

显而易见,FPGA在适用性、普遍性、成本、功耗、速度等等方面都难以与ASIC竞争。

至于共通点,需要了解掌握FPGA应当具备以下能力:

1、需要有数字逻辑的设计思想 :针对任意一项具体的功能,如何组合你器件内的单元来实现,需要哪些单元?如何连接这些单元?各个单元之间连接的先后顺序如何?

2、一套从头到尾执行的设计环境(FPGA厂商提供的编译工具 - Lattice的Diamond、Intel的Quartus、Xilinx的Vivado)

3、一种连接你的逻辑思维和机器操作之间的沟通工具 - 设计语言(原理图、Verilog、VHDL等等)。 而设计思想和语言工具在ASIC上也是所必须的,说白了大家都要写Verilog,很多地方自然互通。

三、FPGA转IC前端的原因

并不是说FPGA必须转数字IC,这只是一个方向。

真正的原因是做RTL的工程师一定要往系统层面的工程师转,只在RTL和协议这条路上走下去,没有任何希望。

19年的Xilinx 开发者大会(XDF)之后,新的开发平台和自适应芯片降低了FPGA的使用门槛,将软硬件放在同一平台上开发,尽可能的使用高级软件语言(c++、python等)进行整体SOC的开发,这也是将来FPGA开发的趋势,让无论是否会HDL的人都能立马上手使用。

最开始从底层做起,慢慢的积累学习,最终能在SOC上实现软硬件的整体把控设计,才能在当前岗位上提升一个层面。

RTL出身的工程师,在这方面本身就具有一点点优势,而且从技术上来说,数字IC设计只会比FPGA更加复杂:

更快的时钟

更统一的coding style

更严格的STA

更系统的仿真

更低的功耗

更少的可用资源

至于UVM仿真,即便不做IC,传统的FPGA工程师也应该有所掌握,一个系统的仿真对产品的开发和后期维护,节省的时间不可估量。

FPGA受限于环境因素,ASIC/SOC一定是之后发展的大趋势。

如果愿意待在目前的舒适区,做个传统的FPGA工程师也没什么不好,但是想工作上有突破,就大胆迈向IC前端吧!

如果你还是不知道怎么选择岗位的话,不妨先跟行业的工程师了解一下岗位的学习难度,薪资,就业这些信息,再做抉择。

这里放个入口:IC入行指导

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/124978.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Blocking waiting for file lock on the registry index 问题解决

问题表现: cargo build时一直卡在Blocking waiting for file lock on the registry index。 解决方法: 1、之前在linux下出现过一次,采用这种方法解决了:rust - Cargo build hangs with " Blocking waiting for file lock…

图扑智慧农业:农林牧数据可视化监控平台

数字农业是一种现代农业方式,它将信息作为农业生产的重要元素,并利用现代信息技术进行农业生产过程的实时可视化、数字化设计和信息化管理。能将信息技术与农业生产的各个环节有机融合,对于改造传统农业和改变农业生产方式具有重要意义。 图…

[Linux/UOS]同一解决方案下的控制台程序依赖SO库的方法

该方法是基于VS2019的远程调试Linux的方案,使用的是UOS系统,本文不会去详述如何远程调试Linux和如何新建解决方案中的.so项目和.out项目 只关注于如何令.out项目依赖.so,并成功调用运行 以一个如上图结构的解决方案为例子,SysInfo…

Unity 如何查看编译的耗时?

Unity 如何查看编译的耗时? 关键词: 编译、脚本、编辑器、静态类、程序集、函数、命名空间、构造函数、回调方法、注册时间、注册方法 文字记录: hello,大家好,今天和大家分享一下Unity项目如何查看编译的时间,或者说是编译的耗…

Java学习_day08_finalnativeabstract接口

文章目录 final关键字注意 native关键字abstract关键字抽象类定义继承 接口定义实现 final关键字 final关键字表示常量,其值在程序运行期间不会改变。 final用来修饰变量,可以是静态变量,也可以是成员变量,也可以是局部变量&…

5G-DFS最新动态-产品不在需要走FCC官方测试

添加图片注释,不超过 140 字(可选) 最近,FCC公布了最新版本的PAG(Product Acceptance Group)清单,即388624 D02 Pre-Approval Guidance List v18r04。这个清单的主要改变是将带有雷达侦测功能的…

51单片机的篮球计分器液晶LCD1602显示( proteus仿真+程序+原理图+PCB+设计报告+讲解视频)

51单片机的篮球计分器液晶LCD1602显示 📑1.主要功能:📑讲解视频:📑2.仿真📑3. 程序代码📑4. 原理图📑5. PCB图📑6. 设计报告📑7. 设计资料内容清单&&…

jenkins2

构建docker镜像 jenkins插件管理安装:docker-build jenkins安装了docker 配置docke builder 添加 unix:///var/run/docker.sock rootubuntu20:~# usermod -G docker jenkins 测试失败 修改docker中service文件添加 -H tcp://0.0.0.0:2376 jenkins中系统管理…

了解高防服务器的工作原理

在当今互联网时代,网络安全问题日益突出,各种网络攻击层出不穷。为了保护企业的网络安全,高防服务器应运而生。那么,你是否了解高防服务器的工作原理呢?下面就让我们一起来探索一下。 高防服务器是一种能够有效抵御各种网络攻击的…

尚硅谷Docker基础篇和Dockerfile超详细整合笔记

Docker基础篇DockerFile Docker:您要如何确保应用能够在不同环境中运行和通过质量检测?并且在部署过程中不出现令人头疼的版本、配置问题,也无需重新编写代码和进行故障修复?而这个就是使用容器。Docker解决了运行环境和配置问题…

【Unity】简单案例脚本实现 | 鼠标观察/键盘控制移动飞行/行走/碰撞检测

《Unity5实战-使用C#和Unity开发多平台游戏》第二章-构建一个让你置身3D空间的演示 鼠标观察/键盘控制移动飞行/行走/碰撞检测 Unity版本:2019.4.23f1c1 注意脚本名称和组件添加,不在文章中一一强调场景模型都是在资源商店选择的免费下载(选…

vue-router路由守卫进阶

vue-router路由守卫进阶 路由守卫,可以想象为古代御前侍卫,路由守卫,则是对路由进行权限控制 分类:全局守卫、独享守卫、组件内守卫 全局前置-路由守卫 作用:主要用来鉴权 用户点击导航区,随后引起路径的…

Flink ON Yarn 模式 --- per job mode 与application mode的区别

1、per job mode: 对于yarn-per-job模式调度的过程: 1、资源调度: 1、因为是yarn模式,所以客户端会向ResourceManager申请资源,申请容器负责来启动ApplicationManager 2、此时ResourceManager接受到客户端的请求&#…

文件上传 [GXYCTF2019]BabyUpload1

打开题目 传个是jpg文件后缀的一句话木马上去 代码如下 <script languagephp>eval($_POST[v]);</script> 发现上传成功 因此我们需要先上传 .htaccess 文件&#xff0c;然后再上传 2.jpg文件 .htaccess作用&#xff1a;文件将别的后缀名文件内容解析为php程序…

CSS特效001:鼠标放div上,实现旋转、放大、移动等效果

GPT能够很好的应用到我们的代码开发中&#xff0c;能够提高开发速度。你可以利用其代码&#xff0c;做出一定的更改&#xff0c;然后实现效能。 css实战中&#xff0c;经常会看到这样的场景&#xff0c;鼠标放到一个图片或者一个div块状时候&#xff0c;会出现旋转、放大、移动…

Linux 本地Yearning SQL审核平台远程访问

文章目录 前言1. Linux 部署Yearning2. 本地访问Yearning3. Linux 安装cpolar4. 配置Yearning公网访问地址5. 公网远程访问Yearning管理界面6. 固定Yearning公网地址 前言 Yearning 简单, 高效的MYSQL 审计平台 一款MYSQL SQL语句/查询审计工具&#xff0c;为DBA与开发人员使用…

如何设值固定ip地址

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 如何设值固定ip地址 一、找到网络和Internet选项二、选择更改适配器选项2.双击&#xff0c;选择属性3.选择ipv4&#xff0c;点击属性4.选择使用下面的IP地 总结 一、找到网络…

阿里云99元服务器40G ESSD Entry云盘、2核2G3M带宽配置

阿里云99元服务器新老用户均可以买&#xff0c;你没看错&#xff0c;老用户可以买&#xff0c;活动页面 aliyunfuwuqi.com/go/aliyun 配置为云服务器ECS经济型e实例、2核2G、3M固定带宽、40G ESSD Entry云盘&#xff0c;并且续费不涨价&#xff0c;原价99元即可续费&#xff0c…

基于轻量级卷积神经网络CNN开发构建打架斗殴识别分析系统

在很多公共场合中&#xff0c;因为一些不可控因素导致最终爆发打架斗殴或者大规则冲突事件的案例层出不穷&#xff0c;基于视频监控等技术手段智能自动化地识别出已有或者潜在的危险行为对于维护公共场合的安全稳定有着重要的意义。本文的核心目的就是想要基于CNN模型来尝试开发…

05-MySQL-进阶-存储引擎索引SQL优化

一、存储引擎 涉及资料 链接&#xff1a;https://pan.baidu.com/s/1M1oXN_pH3RGADx90ZFbfLQ?pwdCoke 提取码&#xff1a;Coke ①&#xff1a;MySQL体系结构 1.连接层 最上层是一些客户端和链接服务&#xff0c;包含本地sock 通信和大多数基于客户端/服务端工具实现的类似于 T…