一、项目说明
1.1 索引目的
本篇索引旨在收藏CSDN全站中有关数字IC领域高价值文章,在数字芯片领域中,就算将架构,设计,验证,DFT,后端诸多岗位加在一起的数量,都不及软件类一个细分方向的岗位数量多,反映在社区氛围或是开源资料的丰富度而言,数字IC领域相较于软件/互联网领域来说都是远远不足的的,本索引的收录,希望可以为初学者提供路径帮助和内容指引,为进阶者提供高价值文章的分享,为CSDN数字IC领域的作者提供展示的平台和引流,最终达到提升数字IC领域社区开放程度,减低检索成本的目的。
1.2 收录原则
1.原创性优先原则
优先收录发表于CSDN的原创内容而非转载内容,鼓励原创性与分享性
2.公益性优先原则
优先收录免费文章和免费专栏,强调索引公益性。
3.价值优先原则
宁缺勿滥,挑选CSDN高价值文章,拒绝无效低效信息,降低每一位ICer的检索信息的成本。
4.自荐优先原则
数字IC领域涉及方方面面,作者只是一名数字IC设计中很细分领域的一名小兵,难以顾及浩瀚知识图谱的全部,欢迎CSDN的作者投稿相关内容,加强索引建设,补充相关信息。
5.专栏优先原则
位置有限,优先提供给成体系知识的专栏作者,收录专栏,提供跳转窗口,减少位置占用。
6.学无止境原则
本篇索引只能涉及一点点内容,属于师傅领进门的那种作用,数字IC领域有很多中英文资料,使用手册,教材书籍,利用起来,无限进步!
PS:本项目最终解释权归俺所有!
1.3 投稿方式
因本索引属性,推荐采取邮件投稿的形式提出意见和进行自荐
邮件至“E210064@e.ntu.edu.sg”邮箱,即可提出相关意见和投稿内容,由”芯片设计验证社区”管理员“myhhhhhhh”定期进行收纳整理,此外,私信作者也可提出相关意见,不过邮件会有存档,而私信没有,作者无法实时更新,推荐采用前者进行内容自荐。
1.4 版本迭代
二、数字IC学习路线
1.数字IC技能树(mangopapa大佬版)
2.如何学习FPGA(有着四千收藏的精品学习路线)
3.数字IC/FPGA设计之——学习路径(Sky大佬版)
点评:以上三篇文章的作者分别是验证出身,FPGA出身,ASIC设计出身,其实本身数字IC前端领域的知识脉络是非常清晰的,无论是设计还是验证,都要从通用基础知识开始,学习数电,硬件描述语言,微机原理,C语言,linux,计算机组成原理等内容,通用进阶技能中,学习体系架构,总线,SOC设计方法,数字集成电路设计等内容,到实战环节,设计人员可以做一些通用接口的小项目,验证人员补充SV知识和UVM知识,做些验证项目,其他零零散散等内容参考文章链接即可,这三篇看完就足矣!。
三、通用技能篇
3.1 数字电路
1.专栏:数字电路(记得诚,认证为CSDN专家账号的大佬的免费数电专栏)
2.专栏:数字电子技术基础笔记(9w阅读,800收藏,近20篇文章)
点评: 数电是专业基础课,基础差的建议跟着数字IC学习路线的内容上网课,基础不错的建议跟着专栏过一遍知识,我觉得数电最重要的内容是基本电路与Verilog的对应关系,如何think in hardware是硬件与软件最大的不同。
3.2 硬件描述语言(Verilog)
1.专栏:BUNOOB Verilog教程(从基础语法到进阶教程的一站式Verilog免费学习场所,写的是真的全)
2.专栏:Verilog高级教程(来自数字IC新兵的Verilog进阶语法的使用感悟,持续更新ing)
点评:不用特别注重Verilog的语法问题,实战中的演练方为正途,Verilog的语法无非是assign和always,翻来覆去的几句语法组成了Inter的CPU和NV的GPU,无限的组合,无限的可能,语法知识微不足道的一小块,拿出来做点东西才有意思。
3.3 linux操作系统
1.文章:Linux常用命令(1w8收藏的精品文章)
点评:同样不用注重linux操作系统的内容,工作中的指令无非“增删查改”,现用现查即可,因此只收藏了一篇工具性质的文章以供大家参考,下载一个linux操作系统实操两下,配合着EDA工具,什么都会了。
3.4 C语言
1.专栏:零基础看得懂的C语言入门教程(2020年博客之星TOP5作者出品,20w的阅读量)
2.专栏:C语言入门案例(超10w阅读的实战C语言专栏)
3.文章:C语言经典100题(单篇文章上万阅读)
点评: C语言对于数字IC前端的意义在哪里呢? 对于设计工程师,你的工作内容可能是C算法的硬件实现,对于验证工程师,你或许会使用C在keil上写代码,转成机器码验证功能,或许是C model的golden model,作为工科入门基础,C语言的用处很多很多。
3.5 微机原理
1.学习微机原理与接口这一篇就够了(详细版)
2.微机原理知识整理(简略版)
点评:重要的数字IC基础课,CPU是如何运行的,SOC是如何组成的,汇编语言是如何执行的,中断是什么意思,数据是如何存储的,这部分你都能找到答案,一篇详细版,一篇简单版,微机原理的应用,体现在数字IC的方方面面。
3.6 汇编语言
1.王爽《汇编语言》笔记(详细)(单篇文章4k收藏,精品!)
2.手把手教你学习汇编语言——从入门到起飞(带环境安装的精品教程)
点评:汇编语言,构筑起了电路结构和软件应用之间的桥梁,ICer或许不需要会写汇编程序,但需要理解底层机器语言和硬件之间是如何构建联系的
3.7 计算机组成原理
1.计算机组成原理:最详细笔记
2.专栏:计算机组成原理(7篇文章收获35w阅读的专栏)
点评:数字IC很重要的课,计算机组成原理会有两个方向深入的点,一个是面向硬件电路,一个是面向软件开发,从硬件的角度或者是软硬件协同的角度去理解这门课的内容,是每一名ICer的必修课。
3.8 计算机体系架构
1.Mit6.004学习记录(Mit计算机体系架构学习笔记)
2.专栏:Mit6.004计算机体系结构笔记专栏(合计30余篇的专栏)
3.(空置待自荐)
点评: 计算机体系架构是计算机组成原理的进阶课程,大部分国内高校微电子学院不教这门课绝对是一个重大的遗憾,虽然说很多东西和3.7相同,但是3.8讲解的更为深入。冯诺依曼结构,哈佛结构,通用性考量,专用性考量,每一名数字IC架构师都要熟练掌握这门课的内容
3.9 STA静态时序分析
1.讲芯片的邸老师-数字集成电路静态时序分析基础
点评:任何文章,任何培训班的内容,都不如直接看这个视频,我愿称之为“中文资料中讲解的最为清楚的STA课程”了,其中的建立时间,保持时间,时序报告等等内容都是数字IC的高频考点!
3.10 SystemVerilog
1.SystemVerilog 教程
点评:每月点击超过300w的英文教程网站,受到全世界开发者认可的SV学习网站,兼容设计与验证的SystemVerilog,完全兼容老版本Verilog,一人一本绿皮书,学起来!
3.11 UVM
1.专栏:UVM源码与设计模式
2.专栏:UVM源码解读(mango出品的13w阅读的UVM解读专栏)
3.UVM极简教程
4.(空置待自荐)
点评:验证工程师的圣经,软件化方式加速大规模硬件验证的宝典,验证工程师的基础内容!
3.12 SVA
1.数字前端的功能验证利器——SVA断言学习笔记
2.SVA(立即断言、并发断言、触发判断)-概述
3.SVA介绍-----断言基础
点评:设计工程师也能写,验证工程师也能写的断言部分,工作中会是最容易扯皮的地方吗?
3.13 信号与系统
1.【信号与系统】笔记合集
点评:看着好像又没用又难,但是实际上很有用的一门课。
3.14 数字信号处理
1.数字信号处理:重要知识点整理
2.数字信号处理----全套Matlab实验报告
点评:信号与系统的进阶课,滤波!滤波!滤波!多的我也不会~
四、总线、接口与协议
UART,SPI,I2C是基础中的基础,需要学会,AMBA协议是移动端默认的数字胶,非常重要,其它的方向因人而异,酌情学习即可
4.1 UART协议
1.【数字IC】深入浅出理解UART(理论篇)
2. UART协议快速扫盲(图文并茂+超详细)(理论篇)
3.【数字IC】从零开始的Verilog UART设计(实战篇)
4.【Verilog实战】UART通信协议,半双工通信方式(附源码))(实战篇)
芯片人必会的通用异步串型收发接口
4.2 SPI协议
1.【数字IC】深入浅出理解SPI协议(理论篇)
2. SPI协议详解(图文并茂+超详细)(理论篇)
3.【数字IC】从零开始的Verilog SPI设计)(实战篇)
4.【Verilog实战】SPI协议底层硬件接口设计和功能验证(附源码))(实战篇)
来自摩托罗拉公司的串型外围设备接口,基础协议中的基础,芯片人必会!
4.3 I2C协议
1.【数字IC】深入浅出理解I2C协议(理论篇)
2. I2C协议靠这16张图彻底搞懂(超详细)(理论篇)
3. verilog I2C_eeprom 手册分析及代码编写思路(实战篇)
4. I2C介绍及verilog实现(主机/从机可综合)(实战篇)
飞利浦公司开发的简单的双向两线总线,规则简单,高实用性!
4.4 AMBA协议
4.4.1 AHB
1.AHB总线协议(理论篇)
2.专栏:AHB-SRAM(实战专栏合计四篇)
4.4.2 APB
1.一文看懂APB总线协议(理论篇)
2.APB协议详解(理论篇)
3.APB 基本原理(理论篇)
4.Verilog实现—AHB_APB通讯架构(中国科学院大学作者的APB实战篇)
5.AHB-APB_Lite总线协议及Verilog实现(AHB to APB Bridge实战)
6.【Verilog实战】AMBA 3 APB接口设计和功能验证(xlinxdu大佬的APB接口实战)
4.4.3 AXI
1.【AXI】解读AXI协议双向握手机制的原理(理论篇)
2.【AXI】解读AXI协议中的burst突发传输机制(理论篇)
3.【AXI】解读AXI协议事务属性(Transaction Attributes)(理论篇)
4.【AXI】解读AXI协议乱序机制(理论篇)
5.【AXI】解读AXI协议原子化访问(理论篇)
6. 【AXI】解读AXI协议的额外信号(理论篇)
7.【AXI】解读AXI协议的低功耗设计(理论篇)
8.【数字IC】深入浅出理解AXI协议(理论篇)
9.【数字IC】深入浅出理解AXI-lite协议(理论篇)
10.AMBA协议之AXI协议——中文翻译(理论篇)
4.4.4 AXI-stream
1.AXI-STREAM及接入思路解析
2.AXI4_stream协议详解
3.(空置待自荐)
4.4.5 ACE
1.ARM ACE协议学习(一)
2.ARM ACE协议学习(二)
3.(空置待自荐)
4.5 LIN总线
1.LIN总线总结
2.LIN总线协议简介
定位车身通信(车身电子配件的地方如车窗、后视镜、大灯、车锁等),基于UART/SCI的低成本串行通讯协议,车辆中最重要的协议总线之一。
4.6 CAN总线
1.专栏:CAN笔记(30w阅读,专注can总线的专栏)
2.CAN总线详解
3.CAN详解–CAN与com口介绍
定位车辆计算机控制系统, 高速,短距离,闭环的异步通信协议,车辆中最重要的协议总线之一。
4.7 GPIO接口
1. Verilog GPIO 模块设计
2. GPIO工作原理(八种工作方式超详细分析,附电路图)(单篇文章10w阅读)
通用性输入输出接口,位于芯片数字部分和外面模拟PAD之间的模块,每枚芯片都会存在,通信,控制,数据采集三大功能
4.8 SDIO 接口
1.SDIO解析
2.一文搞懂SDIO
SD卡的协议演化升级版,为SD卡槽的设备进行外设功能扩展
4.9 JTAG
1.JTAG接口定义与其他简介(理论篇)
2.专栏:JTAG(理论篇)
3.Verilog——JTAG标准的状态机实现(实战篇)
JTAG是“编程,探测和调试”的常见端口
4.9 PCIE 总线
1.专栏:PCIe 协议(mango出品,12w阅读,挑战中文互联网最详细的PCIE协议理解专栏)
2.PCI与PCIe学习一——硬件篇(8w阅读PCIE基础解析)
一个字,快!,最快传输速度256Gb/s
4.10 NOC总线
1.NoC总线介绍
2.NoC(Network on Chip)学习笔记(1)
3.NoC(Network on Chip)学习笔记(2)
多核设计是现在芯片提升效能的普遍方式,多核处理器的关键挑战就体现在NoC上
4.10 USB协议
1.USB接口那么多!!你都认识吗??知道他们的区别吗??(扫盲式了解USB的通识性文章)
2.USB协议简介(单篇文章6w阅读)
3.专栏:USB协议详解(40篇文章,10w阅读的USB专栏)
4.实战篇—USB2.0的Verilog实现(USB实战环节)
5.实战篇—USB2.0 KEIL配置及调试BUG(USB实战环节)
6.实战篇—USB2.0内部存储器相关内容及固件配置程序(USB实战环节)
通用高速接口的代表作,USB
4.11 DDR协议
1.专栏:深入浅出理解DDR(写的不全,不过已有的文章不错)
2.专栏:DDR4标准(DDR4手册中文翻译版)
3.文章:DDR工作原理(大佬推荐的DDR原理篇)
上升沿和下降沿都能传输数据的双倍速率内存,双倍的速度,双倍的快乐!
4.12 I2S(音频接口)
1.I2S详解
2.【音频】I2S协议时序及使用粗解(7w 阅读的时序解析)
Inter-IC Sound总线,专为音频而设计
4.13 VGA(视频接口)
1.VGA显示图像 详细总结(理论篇)
2.【科普】显示器VGA、DVI、HDMI、DP等各种接口详细科普(科普向)
3.Verilog——基于FPGA的贪吃蛇游戏(VGA显示)(实战篇)
来自IBM 1987的智慧结晶,常用于电脑的视频图形接口
4.14 DVI(视频接口)
1.DVI-A、DVI-D、DVI-I接口定义、DVI接口图和DVI接口标准介绍(理论篇)
2.视频编码(四)——详解DVI接口(理论篇)
视频接口标准,广泛的应用于LCD和数字投影机上,显示类芯片的必会技能
4.15 HDMI(高清多媒体接口)
1.HDMI协议解析(软件工程师的角度解读HDMI)
2.HDMI详解(理论篇)
高清多媒体接口,可同时发送视频信号和音频信号
4.16 DP(显示接口)
1.DisplayPort-DP接口知识(科普向)
2.硬件知识:DP接口和HDMI接口对比,看完你就懂了!(科普向)
免认证、免授权金的接口,用以取代VGA和DVI
4.17 SDI接口
1.SDI科普— SD-SDI/HD-SDI/3G-SDI/12G-SDI(科普向)
2.SDI视频数据流格式简介(频率、速率、YUV、EAV、SAV)(理论篇)
3.(空置待自荐)
4.18 BNC接口
1.(空置待自荐)
常用于安防摄像头的摄像设备连接头
4.19 CameraLink接口
1.Camera Link协议解析图文及视频
2.(空置待自荐)
相机与采集卡之间沟通的桥梁,Cameralin接口
4.20 MIPI接口
1.MIPI学习记录——初识mipi
2.(空置待自荐)
五、脚本语言篇
5.1 Tcl脚本语言
1.TCL脚本语言:
Tcl专栏(17w阅读精品专栏)
5.2 Perl脚本语言
1.Perl 完整教程(一篇文章标清所有知识)
2.Perl专栏(30篇Perl文章的专栏)
3.PERL(知识点标明的很细致)
5.3 Shell脚本语言
1.linux shell 脚本 入门到实战详解(单篇文章8w阅读)
5.4 Python脚本语言
1.python——正则表达式(re模块)详解
2.Python模块——os模块详解
3.Python基础——sys模块的使用详解
4.python文本txt处理
5.python:文件处理之TXT
6.python处理txt文件的常用操作
7.编写一个完整的python脚本(新建脚本–编写脚本–执行脚本)
8.个人整理的常用python脚本【很好用】
9.(盘点)25个值得收藏的Python文本处理案例
Tcl,Perl,Shell,Python四种脚本语言,IC前端工作者选择一个学习即可,因为可以和软件团队语言拉通,作者推荐学习Python.
5.5 正则匹配
1.Tcl正则表达式的语法
2.Perl正则表达式超详细教程
3.shell 中匹配正则 字符串处理
4.python 正则表达式匹配
5.(空置待自荐)
脚本语言中逃不开的篇章,大量的验证打印数据/网表数据/各式文本处理/怎么办?正则变换一定要来帮帮场子!因为他重要,所以单独拎出来划分了一个标题,虽然不同语言的正则匹配不尽相同,但是思想是一致的!
5.6 Makefile
1.IC设计中Makefile的应用
2.makeflie脚本,verilog代码一步完成编译仿真
3.Makefile教程(绝对经典,所有问题看这一篇足够了)
4.VCS仿真教程:Verilog+波形+Makefile
一键功耗分析,一键综合,一键仿真的秘籍,谁用谁说好
六、工具使用篇
6.1 Modesim/Questasim
1.Modelsim 安装步骤详解(Modesim安装教程)
2.Questasim10.6c下载与安装教程(Questasim安装教程)
3.Modelsim/QuestaSim教程——基础篇
4.Modesim/Questasim使用技巧专栏(来自数字IC新兵使用感悟,持续更新ing)
初学者常用的仿真软件和波形查看软件,Modesim/Questasim姊妹不分家,有啥用啥,不需要纠结版本问题
6.2 VCS
1.仿真工具-VCS入门教程(虽然会索引至站外,但还是推荐看,比较全)
2.VCS使用教程小结
3.VCS工具的基本使用
对标Modesim/Questasim的真实工作环境,工作中最经常使用的仿真器
6.3 Verdi
1.Verdi 基础教程
2.Verdi 使用笔记
3.专栏:Verdi快速实战指南
对标Modesim/Questasim的真实工作环境,工作中最经常使用的波形查看软件
6.4 DC
1.专栏:DC逻辑综合
2.DC综合——学习笔记
3.DC综合简单总结
4.DC综合的基本流程
5.DC综合的流程以及分步骤讲解
企业中最常用的综合工具,谁说综合只有中端岗芯片工程师才要会?
6.5 nLint
1.nlint使用笔记
2.Verdi2013.07和nLint2011.10安装及启动license
3.(空置待自荐)
HDL规则检查软件,除了检查代码的语法和语义错误,也会检查如“异步反馈,位宽不匹配”等更为隐蔽的错误内容。
6.6 spyglass
1.spyglass使用教程(数字IC小众工具,单篇文章2w阅读300收藏)
2.(空置待自荐)
业界唯一可靠的RTL Sign off解决方案,可以帮助客户在设计早期发现潜在问题,保证产品质量,极大的减少设计风险,降低设计成本。尤其是CDC检查
6.7 Timegen
1.【超好用】时序图画图工具TimeGen 3.2安装和使用教程
2. 时序图绘制工具 — TimeGen使用方法总结
轻便小巧的时序图绘制工具
6.8 Visio
1.visio2019安装教程
2.Visio的使用
3.(空置待自荐)
功能强大,无论是针对于绘制时序,还是模块连接示意图
6.9 Vim/Gvim
1.【Linux入门学习之】vi/vim编辑器必知必会
总有一个困扰代码人数十年的问题,Vim是不是最强大的文本编译器?
6.10 Quartus
1.QuartusII 9.0安装教程详解及例程测试
2.Quartus II 13.0 最全的安装、破解教程(包含下载地址)
3.彻底掌握Quartus——基础篇
4.Quartus II 使用详解
5.quartus的使用流程
数字IC初学者/FPGA初学者常用的开发平台,比隔壁家用起来更简单!版本高低无所谓,背后的思想和界面布局都是相似的!
6.11 Matlab
1.零基础入门Matlab(一篇两个小时就能学完的入门博客)(10w阅读的文章)
2.MATLAB下载+安装教程(Matlab2018版)
3.专栏:MATLAB新手简明使用教程(40w阅读的专栏)
4.专栏:MATLAB图像处理(Matlab图像处理扛把子)
5.(方向太多,内容太多,空置待自荐)
学术界横行多年的老将,理工科学生逃不掉的工具
6.12 Vivado
1.Xilinx_Vivado_2019.1下载和安装教程
2.Vivado FPGA设计基础操作流程:Vivado的基本使用
3.Vivado初次使用教程
4.专栏:Vivada使用技巧
5.(方向太多,内容太多,空置待自荐)
功能比quartus更强大,工业界更喜欢的开发套件,但是上手难度比Quarts大,推荐初学学Quartus
6.12 SVN/Git
6.12.1 SVN
1.什么是SVN?SVN的简介安装和使用
2.SVN的安装及使用,超级详细
3.【图文详解】入职必备——SVN使用教程
6.12.2 Git
1.Git 详细安装教程(详解 Git 安装过程的每一个步骤)
2.关于Git这一篇就够了
3.Git使用详细教程
6.12.3 Perforce
1.Perforce入门
2.Perforce使用教程
公司中会使用的版本迭代工具,学生党就不用学了,很简单一东西,去了企业三两天就会了。准备入职的可以去问问mentor自己公司使用的是哪一款版本迭代工具,有针对性的看一看基础操作和产品逻辑,不同软件也是大同小异的。
七、芯片架构篇
本章内容未得到充分收纳,亟待自荐推荐
7.1 ARM
(空置待自荐)
arm汇编教程
1.ARM汇编基础教程——ARM汇编简介
2.ARM汇编简介(一)ARM数据类型和寄存器
3.ARM汇编简介(二)ARM指令集
4.ARM汇编简介(三)内存指令-加载和存储 (上)
5.ARM汇编简介(三)内存指令-加载和存储 (下)
6.ARM汇编简介(四)载入/存储多个值,入栈和出栈
7.ARM汇编简介(五)条件执行指令&&Thumb模式下的条件执行指令&&分支指令
8.ARM汇编简介(六)堆栈和函数
从arm的汇编指令集讨论arm架构,翻译自国外“Azeria Labs”,原作者为“福布斯 2020年网络安全年度人物,专注于 Arm Cortex-A 设备的漏洞利用开发和逆向工程” 的女性工程师作者Maria Markstedter
移动设备的通用架构,来自英国剑桥的万能数字胶
7.2 X86
(空置待自荐)
PC端的永恒霸主,每一台windows运行底层的数学逻辑
7.3 RISCV
1.RISC-V详细介绍
2.RISC-V指令集(R,I,S,B,U,J指令的解读)
3.RISC-V汇编(算术,移位,逻辑,内存读取汇编语言)
4.(空置待自荐)
我要战未来!RISCV是否是中国芯片突围的捷径?
7.4 MIPS
(空置待自荐)
落寞的架构,用的越来越少了。