!!!!!!!!!!!!!!!!!!!!!!
审核麻烦看一下,无下载,只是推荐书单。谢谢
!!!!!!!!!!!!!!!!!!!!!!
0 引言
数字IC设计或者FPGA在笔试、或者面试中的基础知识提问环节,考察的知识点范围还是比较广的,个人整理主要包括:
- 基本的Verilog、SystemVerilog语法相关的问题。
- 数电模电的基础知识。
- FPGA相关知识。这一块主要包括FPGA基本结构、电路映射、高速收发器、时钟树等问题。可能很多人(包括我自己)在校园都没有流片经验,更多的是涉及FPGA相关的知识,FPGA设计与IC设计涉及到的基础知识有一部分是相通的,所以也是一个比较常考的部分。
- HDL设计相关知识。这一块主要包括FIFO设计、复位电路、同步异步电路、跨时钟域、状态机、速度优化、面积优化、功耗优化等设计具体电路设计相关的知识。
- 静态时序分析相关知识。
- 数字IC基础知识。主要包括PVT(工艺(Process)、电压(Voltage)、温度(Temperature))的影响、7.3 ASIC设计流程/FPGA设计流程、低功耗设计方法等。另外不可避免的还会涉及到验证相关的一些知识。
- 其他的主要有计算机体系结构相关知识、总线协议等。
这些知识我在找工作过程中也整理成文档了,后续会发布在这个专栏的“知识整理篇”。这篇文章主要是推荐一些学习这些知识过程中比较有用的参考资料。
省流:
序号 | 知识 | 推荐资料 |
---|---|---|
1 | Verilog、SystemVerilog语法 | 《2005 V:Verilog IEEE Std(1364-2005)》、《2005SV:IEEE Std 1800-2005(System Verilog)》、《Verilog数字系统设计教程.夏宇闻》、《SYSTEM VERILOG验证-测试平台编写指南》 |
2 | 数电模电 | 《数字逻辑电路与系统设计(第二版).蒋立平》 、《模拟电子技术基础(第四版).华成英》 |
3 | FPGA相关 | Xilinx的官方文档:UG474、UG472、UG901、UG906、UG903 |
4 | HDL设计 | 《硬件架构的艺术-数字电路的设计方法与技术.Mohit Arora著.李海东译》、《FPGA设计实战演练(高级技巧篇).王敏志》 |
5 | 静态时序分析 | 《wp-01082-quartus-ii-metastability》、《Static Timing Analysis for Nanometer Design》、《Contraining Designs for Synthesis and Timing Analysis》 |
6 | 数字IC基础 | 《SOC设计方法与实现(第3版)_郭炜》、《高级ASIC芯片综合.Himanshu Bhatnagar著.张文俊译》、《数字集成电路-电路、系统与设计(第二版)》、《UVM实战(卷Ⅰ)_张强》、《芯片验证漫游指南》 |
7 | 其他 | AMBA协议规范、《计算机组成与设计-硬件软件接口-原书第5版》、《Perl语言入门_中文版_第六版》、《Tcl_Tk入门经典(第2版)》 |
链接:
以上资料我都整理好了,由于CSDN版权原因不能公布,后面再想办法发布。
多嘴:
- 除了基础知识需要详细的阅读资料进行学习外,其他的建议归纳或做题中去查阅进行学习。
- 网上看了再多的知识整理都没有自己去看一遍原资料好,自己看了原文才有更好的理解。
文章目录
1 Verilog、SystemVerilog语法相关
推荐资料:《2005 V:Verilog IEEE Std(1364-2005)》、《2005SV:IEEE Std 1800-2005(System Verilog)》
辅助资料:《Verilog数字系统设计教程.夏宇闻》、《SYSTEM VERILOG验证-测试平台编写指南》
1.1 介绍
- IEEE语法标准是最权威的资料,涉及到Verilog、SystemVerilog语法问题的考点,我推荐直接查看IEEE标准就可以了。
- 除了可以对一些问题涉及的知识点进行查询外,有的题目甚至直接就是IEEE标准中的例子。
例子:
比如有一个涉及到{}连接符用法的题目,考察知识点是连接符内不能为空白,verilog标准中就有这个代码的示例。
原文来源:Verilog IEEE STD(2005) 5.1.14 Concatenations:
parameter P = 32;
// The following is legal for all P from 1 to 32
assign b[31:0] = { {32-P{1’b1}}, a[P-1:0] } ;
// The following is illegal for P=32 because the zero
// replication appears alone within a concatenation
assign c[31:0] = { {{32-P{1’b1}}}, a[P-1:0] }
// The following is illegal for P=32
initial
$displayb({32-P{1’b1}}, a[P-1:0]);
有些公司笔试题就直接引用的原文,问是否有语法问题、什么问题 之类的。
1.2 封面
《2005 V:Verilog IEEE Std(1364-2005)》:
《2005SV:IEEE Std 1800-2005(System Verilog)》:
2 数电模电基础知识
推荐资料:优先推荐你自己上课使用的教材。其他书籍就算写得再全面,也没有你曾经上课的教材使用效果来的好。因为需要使用到的也只是其中一小部分基础知识。
如果没有学习过相关课程,推荐
- 《数字逻辑电路与系统设计(第二版).蒋立平
- 《模拟电子技术基础(第四版).华成英》
1.1 介绍
最基本的基础知识就不用过多介绍了。
数电主要复习不同编码及其特点、卡诺图化简、逻辑门电路、竞争与冒险、组合时序逻辑基本电路的结构。
模电主要复习:CMOS电路的特性,这对于理解时序有很大的帮助,因为这是最底层的原因。可以参考 深扒“亚稳态”的底裤,从MOS管到CMOS门电路,再到亚稳态分析
1.2 封面
《数字逻辑电路与系统设计(第二版).蒋立平》
《模拟电子技术基础(第四版).华成英》
3 FPGA相关知识
FPGA相关的知识只推荐Xilinx的官方文档,涵盖了所有FPGA相关的知识。
介绍几篇比较重要的:
序号 | 名称 | 内容 | 参考 |
---|---|---|---|
0 | UG474. 7 Series FPGAs Configurable Logic Block User Guide | 主要学习Xilinx的FPGA中可编程逻辑块(Configurable Logic Block,CLB)的结构,SliceL与SliceM的区别,另外重点需要看的是不同电路(分布式RAM、移位寄存器、数据选择器、进位逻辑)对应的CLB映射结构,这个是FPGA相关工作必问的。 | UG474】可配置逻辑块(configurable logic block,CLB)资源学习 |
1 | UG472. 7 Series FPGAs Clocking Resources User Guide | 主要学习 FPGA 时钟树架构,如果找FPGA相关工作,如果回答上来了非常加分,另外在回答IC时钟树相关的问题、或者FPGA与ASIC区别的问题时也可以带着介绍。 | |
2 | UG901. Vivado Design Suite User Guide - Synthesis | 除了作为FPGA综合相关知识学习的文档外,主要学习第4章 HDL Coding Techniques:包含寄存器、锁存器,三态缓冲器、移位寄存器、数据选择器、FIR、FSM等编程教学。第7章 Verilog Language Support:主要包含vivado对verilog语法是否可综合的支持,学习这个就可以回答大部分是否可综合的问题了。 | 以Vivado synthesis支持的Verilog结构来学习 Verilog语句可综合性 |
3 | UG906. Vivado Design Suite User Guide - Design Analysis and Closure Techniques | 如果你是做FPGA开发的,学习完这篇文章肯定会对功力提升有很大的帮助。主要学习时序收敛的基础知识与FPGA时序分析的方法 | UG906学习笔记:Xilinx官方时序分析教程,时序分析基础知识,Vivado时序分析方法,时序报告查看 |
4 | UG903. Vivado Design Suite User Guide - Using Constraints | 主要学习第3~6章时序约束相关的知识,包括时钟约束、输入输出延迟约束、时序例外约束、跨时钟域约束。 | FPGA时序约束学习(1)-如何约束时钟 |
以上是一些常用的,Xilinx的每篇手册都可以学习到很多知识,比如,如果遇到FPGA低功耗设计的问题,就可以整理好ug907-vivado-power-analysis-optimization中低功耗设计的注意点进行回答,遇到FIFO相关的问题可以查看pg057-fifo-generator,里面就有各种FIFO的结构。有时间的话可以多看多学习。
4 HDL设计相关知识
1.1 介绍
- 上文的《UG901. Vivado Design Suite User Guide - Synthesis》第4章 HDL Coding Techniques 主要是一些基本电路设计的参考。
- 《硬件架构的艺术-数字电路的设计方法与技术.Mohit Arora著.李海东译》第一章 亚稳态的世界 对亚稳态的概念介绍的比较好。
- 《FPGA设计实战演练(高级技巧篇).王敏志》中对跨时钟域、复位、状态机、速度优化、面积优化设计介绍的很详细。
1.2 封面
《硬件架构的艺术-数字电路的设计方法与技术.Mohit Arora著.李海东译》
《FPGA设计实战演练(高级技巧篇).王敏志》
5 静态时序分析相关知识
1.1 介绍
-
上文的Xilinx文档 《UG906. Vivado Design Suite User Guide - Design Analysis and Closure Techniques 》对FPGA中时序分析与时序收敛技术做了详细的介绍。另外altera有一篇文档《wp-01082-quartus-ii-metastability》对亚稳态的介绍非常通俗易懂。
-
《Static Timing Analysis for Nanometer Design》:主要是基本概念学习,包括时序分析在IC、FPGA设计流程中的作用、静态时序分析的基本概念(特点是从硬件电路底层介绍了时序的由来),包括传播延迟、信号间的偏斜、时序弧、最小最大时序路径这些进行静态时序分析前必须了解的基础知识。
-
《Contraining Designs for Synthesis and Timing Analysis》,对应中文翻译版为《综合与时序分析的设计约束-Synopsys设计约束(SDC)实用指南》:详细介绍了各种时序的基本概念以及如何进行约束。包括时钟、生成时钟、时钟组、输入输出延迟、虚假路径、多周期路径等时序约束,非常全面。
1.2 封面
《Static Timing Analysis for Nanometer Design》:
《Contraining Designs for Synthesis and Timing Analysis》:
6 数字IC基础知识
1.1 介绍
- 《SOC设计方法与实现(第3版)_郭炜》:这个属于是基本概念介绍,大致有总体概念。我一般用来查找一些验证和可测性设计相关的知识。
- 《高级ASIC芯片综合.Himanshu Bhatnagar著.张文俊译》:主要学习ASIC设计流程以及涉及到的一些EDA工具。
- 《数字集成电路-电路、系统与设计(第二版)》:用于了解ASIC生产流程,以及互联引起的寄生效应相关的知识,基本上只用来找答案 😃。
- 《UVM实战(卷Ⅰ)_张强》:主要介绍UVM相关知识,由于我对验证不熟悉,所有遇到验证相关的问题基本上是需要查阅这本书。另外就是路桑的《芯片验证漫游指南》。
1.2 封面
《SOC设计方法与实现(第3版)_郭炜》:
《高级ASIC芯片综合.Himanshu Bhatnagar著.张文俊译》:
《数字集成电路-电路、系统与设计(第二版)》:
《UVM实战(卷Ⅰ)_张强》:
7 其他
1.1 介绍
- AMBA协议规范:去RAM官网搜索AMBA即可。CHI、AXI、AHB、APB这些通信协议至少熟悉一个、其他都了解,能回答上面试问题就行。
- 《计算机组成与设计-硬件软件接口-原书第5版》
- 脚本语言知识查阅:《Perl语言入门_中文版_第六版》、《Tcl_Tk入门经典(第2版)》
1.2 封面
《AMBA® AXI and ACE Protocol Specification 》:
《计算机组成与设计-硬件软件接口-原书第5版》:
《Perl语言入门_中文版_第六版》:
《Tcl_Tk入门经典(第2版)》: