芯学长 | 掌握芯资讯,引领芯未来

您当前所在位置:首页 > 芯片设计 > 数字IC前端

数字IC设计必备知识有哪些?

发布时间:2023-07-27来源:芯学长 0

1. ASIC基础:

(1) Digital Integrated Circuit Design (数字集成电路设计)。

本书是数字集成电路设计课程的经典教材。涵盖了半导体物理、集成电路处理、晶体管级设计、逻辑级设计、系统级设计、测试等知识。这本书比较全面的介绍了芯片设计的各个方面,可以作为入门和流程的学习资料,但在具体工作中其内容显得比较单薄。

(2) Digital Design Principles and Practices(数字设计——原理与实践)。

本书由易到难讲述了数字电路设计的基本原理及经典知识,同时涵盖高层设计(HDL)和低层设计(电子电路)的内容,并通晓大量的中间设计,如门、触发器和其他一些层次较高的数字设计模块。

(3) Advanced Digital Design with the Verilog HDL(Verilog HDL高级数字设计)。

经典的Verilog教程,里面含有各种丰富的模板,很实用。

(4) Clifford.E.Cumming论文集。

Clifford写了很多优秀的论文,讨论ASIC设计中最基本的概念及设计,比如异步FIFO,置位复位,状态机等。深入理解他的论文,不仅对面试极有好处,对日常的工作也有莫大的帮助。对于一些常用的和基本的设计,工程师应该清楚的理解其设计的重点和细节,甚至烂熟于心。

(5) 懂一款MCU。

随着集成电路的规模越来越大,SOC芯片越来越多,大部分的SoC里面都有内置的MCU, 例如ARM, MIPS 等。

懂一款MCU以及常用的总线,比如AMBA, AXI等, 对于IC设计越来越重要。

(6) 熟悉模拟电路及数模混合设计,应用系统

对于一个数字前端工程师来说,如果缺少模拟电路和数模混合的基础,就会导致数字设计和芯片整体、应用系统的脱节;尤其在一些边界问题上会留下隐患,轻则导致芯片出现瑕疵,重则导致芯片必须改版,影响上市时间,甚至因为坐失战机而使得芯片胎死腹中。

(7) 熟悉门级设计、数字后端

数字前端工程师的工作,一般都在和RTL代码打交道。这一点容易让人感觉和程序员工作相似。但是,恰恰要提醒自己的是,我们之所以叫数字设计工程师而不叫程序员,是因为我们和物理层的密切关系。RTL代码的编写,要充分考虑到可综合性、物理实现中面积和性能的权衡、减小后端设计时可能引入的误差和风险。代码狂人,是要不得的。

(8) 熟悉check list

一般在设计完成后,公司的设计流程都会要求工程师按照check list逐项检查,但是,设计规模之大,以至于很难在所有的设计完成后检查出其中的小瑕疵。优秀的工程师,能在熟悉相关流程节点的基础上,把所有的checklist了然于心,不越雷池。

对于数字前端工程师,由于电路都是为了实现某种功能而设计的,除了基本的数字电路设计能力外,还需要掌握一些与所实现功能相关的知识,如通信,图像处理,总线/接口设计等。这些应用相关的知识基础越深,对设计理解越扎实,也越能设计出好的产品。

数字电路设计是一门上手容易,做好很难的工作。数字电路在芯片,系统中处于中间位置,下接模拟电路,上接软件,本身集成了控制和处理。资深人员要求能够与算法人员、模拟工程师、软件工程师无障碍交流。95%的数字IC工程师无法达到要求,一般3—5年以后限制数字工程师发展的都是知识面不够。

(9) 另外还有一些优秀的网站,比如www.eetop.cn会有大量资料下载,并且有很多热心的资深工程师在线解答新手的问题。

2. Unix工具:

大部分IC公司的工作环境都是基于Unix工作站的,熟悉常用命令和熟练使用一种编辑工具,对提高工作效率会有很大的帮助,目前流行的编辑工具是VI和Emacs。Makefile, Perforce(或者CVS)也是项目中常用的工具。

3. 脚本语言:

Shell,Perl(或Python)脚本语言是工作的基础,应该熟练掌握。《Perl 语言入门》也就是大家所称道的“小骆驼书”,是Perl程序设计人员最为仰赖的启蒙读物之一。当看完“小骆驼”后,并觉得不太够用的时候,还有一些Perl进阶的书籍可以参考《Perl语言编程》,《Intermediate Perl》,《Perl高效编程》。而Python的话,可以从《Python核心编程》和《Python学习手册》入手。

TCL语言被嵌入到多种EDA工具中,是熟练使用这些EDA工具的基础。

4. 其他语言:

SystemVerilog,C++被广泛使用在验证模型或者验证环境中,熟悉(至少能读懂)这些语言也是做前端设计必需的要求。

《C++ Primer》是C++最经典的书籍,配合习题解答效果更佳。

5. EDA Tools:

(1) LEDA/VERILINT/SPYGLASS/0-in:RTL代码和Netlist网表静态检查与验证。能在设计阶段就发现RTL和Netlist中存在的风险。

(2) VCS/NC-verilog:RTL和Netlist仿真与调试和代码覆盖率分析。支持Verilog、SystemVerilog、Vera、SystemC、C/C++等语言。

(3) Verdi/Siloti:优秀的调试工具。集分析,验证,调试环境于一身。

(4) DC:RTL综合工具。Design Compiler是Synopsys的王牌。

(5) Formality/LEC:形式验证。检查RTL和Netlist、RTL和RTL、Netlist和Netlist一致性。

(6) DFT-compiler/fast-scan/TetraMax:测试链路插入以及测试向量产生。为Tape-Out后的芯片进行测试准备。

(7) PT:静态时序分析。Prime Time也是Synopsys的王牌。是针对复杂、百万门芯片进行全芯片、门级静态时序分析的signoff工具。


【免责声明】:本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。

文章评价

-   全部 0 条 我要点评

有疑惑?
在线客服帮您
029-81122100

立即咨询 >