入行IC| 数字IC设计和验证哪个好?(内含薪资对比)

2024-02-09 03:40

本文主要是介绍入行IC| 数字IC设计和验证哪个好?(内含薪资对比),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

网上有一个很火的问题那就是数字IC设计和验证哪个好?接下来我们从以下几个维度来对比一下这两个岗位。
在这里插入图片描述

入行门槛

在这里插入图片描述

从上述对比就可以看出,IC设计要比验证门槛高。

具体工作内容有哪些?

数字IC前端设计

1.配合芯片架构的设计;一般当芯片需求架构到手之后,首先就应该进行架构设计,这时候就需要数字前端设计工程师和架构工程师一起配合完成。
2.负责数字电路结构的实现、仿真;这块是数字前端工程师主要的工作内容,首先需要对架构工程师设计的内容进行微架构的设计。
3.配合验证人员制定验证方案,完成验证. 每个人对于芯片设计的理解不同,这种情况下,就需要和验证工程师对接好内容,弄清楚到底需要测试哪块,哪些是重点。这些都需要验证工程师一起商量制订。
4.配合FPGA工程师及后端工程师分析及调试问题;
5.配合芯片测试工程师;在芯片设计的整个过程中都需要与测试工程师紧密配合。

数字验证工程师

①读文档,写文档:Verification spec、Test plan。
②编程搭建验证平台:通常是用Systemverilog/UVM,如果做SOC,则用到C或C++。验证工程师也需要学习很多脚本语言,如Perl,Makefile,python。
③Debug:创建测试用例,跑仿真。
④support

一般来说数字IC验证岗位企业的需求会比较大。一个数字前端设计,需要2-3个甚至更多的数字验证工程师,目前市场对于验证工程师的人才需求非常大。

分别需要学习哪些东西?

数字前端设计
1、熟悉数字电路设计
2、熟悉Verilog或VHDL
3、熟悉异步电路设计
4、熟悉FIFO的设计
5、熟悉UNIX系统及其工具的使用
6、熟悉脚本语言Perl、Shell、Tcl等
7、熟悉C/C++语言、SystemVerilog、Matlab等
8、熟悉DC、VCS、Verdi、LEC、PT、Spyglass等工具的使用
9、有FPGA验证经验
10、熟悉CMOS电路原理
11、熟悉数字信号处理算法、通信算法、图像算法、人工智能算法等中的一种或多种
12、熟悉计算机体系结构、熟悉通用MCU/SOC设计流程
13、熟悉各种总线协议、接口协议等14、有相关芯片设计/流片经验

这里给大家推荐几本书

《Verilog HDL高级数字设计》

在这里插入图片描述

书里对如何用Verilog HDL对数字系统进行建模、设计、验证讲的很详细,涵盖了RISC、UART、异步FIFO、数字信号处理、乘法器和触发器相关知识。对ASIC/FPGA系统芯片工程设计开发的关键技术与流程也进行了深入讲解。

对于前端设计来说,这本书对code水平提升很有帮助,大家可以试着做个简单但完整的设计。

《数字集成电路:电路、系统与设计(第2版)》

在这里插入图片描述

这本书是加州大学伯克利分校的经典教材,也是国内高校的参考教材和考研参考书。

书里详细地介绍了MOS管原理、CMOS组合逻辑、时序逻辑、加法器乘法器等运算单元、存储结构、以及时序、互连、电路寄生效应,包含充分的理论分析和电路结构图。

在这里插入图片描述
(文末可领)

数字验证工程师
IC验证工程师要学习的主要有数字电路基础、软件设计思想、SystemVerilog、OVM/UVM以及环境脚本语言等相关知识。这些学好之后可以获得如下好处:

1、学习了数字电路基础之后,才可以更好地在工作中,去理解RTL硬件设计。
2、必须要学会相应的编程语言,例如:SystemVerilog,最好也要懂C和C++。
3、还要学习OVM/UVM,因为这些都是基于SystemVerilog的一些基础的验证方法学。
4、还要学习好制定验证计划,这样才可以在今后工作中做好搭建验证平台。
5、环境脚本语言也是必学的课程,这样才可以在今后工作中编程时应用得到,如:Tcl,Perl,Python。

要想成为验证工程师,就必须要掌握好基础知识,只有把基础打扎实之后,才能成为一名合格的验证工程师。

这里给大家推荐几本验证书目

《UVM实战》

在这里插入图片描述

这本书的内容简单易懂,详细介绍了UVM的各种机制,以及寄存器模型的使用。值得一提的是,这本书提供了大量的实例代码,这些代码都是经过实际运行过的。

至于Perl跟Python这两种入行必备的脚本语言就不用多说了,对想要入行IC的小伙伴而言,都是必须掌握的基础语言。

《System verilog验证》

在这里插入图片描述

这是一本学习SV语言的初级阶段读物。主要讲SV语言的工作原理和各种验证方法,书里还有大量的实例可供参考。

《C语言程序设计》

在这里插入图片描述

说起C语言,不少小伙伴应该都挺熟悉了。这本书介绍了C语言的“现代方法”,在聚焦程序设计的核心问题的前提下,给C语言这门经久不衰的语言赋予了崭新面貌。

本书介绍了C99和C1X的许多新特性,而且编排十分直观,方便读者查阅。特别适合具备了一定语言基础,想深入了解C语言精髓的读者进行阅读。

在这里插入图片描述

就业前景怎么样?

IC前端设计
毫无疑问,随着IC行业不断发展,前端设计一般门槛相比其他岗位高,一般要求学历硕士以上,薪资待遇也比较高,但是总体来说,就业情况比较好。

北京上海深圳平均薪资多数在30W以上,南京武汉成都西安平均薪资多数也在25W以上,优秀者甚至可以开到40W-60W。

数字IC验证
这个岗位之所以非常受关注,是因为相比于数字前端设计、模拟IC设计岗位,数字验证岗位的门槛没有那么高,包括一些本科生也在企业考虑的范围之内,专业技能要求也不是特别高。年薪可达20-40万,这让不少人心动。

总而言之,这两个岗位工作内容所要求的技能点也有所区别。就设计而言,对理论知识的要求更高一些,比如算法协议、接口、功能、结构等。

对验证来说,对工程师的coding能力要求更高,需要更熟悉各类EDA工具,熟悉各种脚本。

要说天花板,那肯定是设计高。

设计能出架构师和项目经理的概率比验证要大很多(从比例上来说),虽然我也见过做pv出身的arch,但真心不多。

对于想要入行的同学来说,验证(或者后端)都是比设计更好的选择,真的对设计有执念的话,之后工作几年再转de也未尝不可。具体还是要看你感兴趣的方向。

如果你当下对入行/转行有一定困惑和意向,或者想获取项目资源,以及免费获取上述学习资料,任何关于转行的问题都有老师会为你解答。

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

这篇关于入行IC| 数字IC设计和验证哪个好?(内含薪资对比)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/693014

相关文章

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

Linux中的more 和 less区别对比分析

《Linux中的more和less区别对比分析》在Linux/Unix系统中,more和less都是用于分页查看文本文件的命令,但less是more的增强版,功能更强大,:本文主要介绍Linu... 目录1. 基础功能对比2. 常用操作对比less 的操作3. 实际使用示例4. 为什么推荐 less?5.

基于Go语言实现Base62编码的三种方式以及对比分析

《基于Go语言实现Base62编码的三种方式以及对比分析》Base62编码是一种在字符编码中使用62个字符的编码方式,在计算机科学中,,Go语言是一种静态类型、编译型语言,它由Google开发并开源,... 目录一、标准库现状与解决方案1. 标准库对比表2. 解决方案完整实现代码(含边界处理)二、关键实现细

PostgreSQL 序列(Sequence) 与 Oracle 序列对比差异分析

《PostgreSQL序列(Sequence)与Oracle序列对比差异分析》PostgreSQL和Oracle都提供了序列(Sequence)功能,但在实现细节和使用方式上存在一些重要差异,... 目录PostgreSQL 序列(Sequence) 与 oracle 序列对比一 基本语法对比1.1 创建序

exfat和ntfs哪个好? U盘格式化选择NTFS与exFAT的详细区别对比

《exfat和ntfs哪个好?U盘格式化选择NTFS与exFAT的详细区别对比》exFAT和NTFS是两种常见的文件系统,它们各自具有独特的优势和适用场景,以下是关于exFAT和NTFS的详细对比... 无论你是刚入手了内置 SSD 还是便携式移动硬盘或 U 盘,都需要先将它格式化成电脑或设备能够识别的「文

Python实现特殊字符判断并去掉非字母和数字的特殊字符

《Python实现特殊字符判断并去掉非字母和数字的特殊字符》在Python中,可以通过多种方法来判断字符串中是否包含非字母、数字的特殊字符,并将这些特殊字符去掉,本文为大家整理了一些常用的,希望对大家... 目录1. 使用正则表达式判断字符串中是否包含特殊字符去掉字符串中的特殊字符2. 使用 str.isa

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat