我的数字IC学习路线

引言

很多朋友和我一样也是从FPGA转行入到数字IC,所以对数字IC很多知识也不是很清楚,我也一样不清楚,我想把我的数字IC学习路线记录在此, 全网也没有博客能如此详细的汇总这条路线并且分享出来,本博主希望开一个第一次,方便日后查阅和各位同道中人学习分享。另外,知识也需要不断巩固。经常回头看看,才能加深对知识的理解,当然我并不会写下所有理解的东西,因为有的需要你去探索,感悟,才属于自己。这只是一段历程,经历,学习IC并非一两天,几个月的事。尤其是网上视频资源模糊、各种资源都是英文,但我觉得不应该受到这些限制而退步,甚至任何东西都不应该成为阻挡的借口,且lab也不像互联网那样顺畅,更需要一份耐心,和等待,只要你有一颗不放弃IC的心,就会逐步突破,哪里不懂查哪里,哪里不会补习哪里,简单来说,比如有人一开始一个makefile文件或者tcl文件就难倒了,更要有一份耐心, 比如说有的视频其实我在不同的时间节点累计起来看过5遍~,但真正到了越后面,你才能抓住一些细节,领会到视频中说的意思,此外,新手不要只看视频,要多看userguide,学会自己研究阅读英文文档的能力,另外我的以下博文也并非按照顺序书写,而是以模块建立各个分支,然后每个分支都在不断前行。随着本人不断对知识的深入,本博客在不断更新,并可能删除一些含金量不高的文章,以及之前现在觉得并不太好的一些建议。另外一些公司培训的Lab感想,仅作为个人纪录,不对外公布。另外,还有自己本人研究的一些具有较高价值的文章,不对外公布。部分个人感悟文章,感兴趣,可以读者根据标题自行去研究,暂缓不公开,每篇文章都cost博主大量时间版权所有,请勿抄袭转载

1、准备入门IC的全局观念系列

1.1 准备入门IC的全局观念系列-上

1.2 准备入门IC的全局观念系列-中

1.3 准备入门IC的全局观念系列-下

2、前期准备

2.1 ubuntu18.04安装VCS+verdi错误集锦

2.2 一文搞懂Linux基本操作(上)

2.3 一文搞懂Linux基本操作(下)

2.4 一文深入搞懂Linux(实用篇)

2.5 一文搞懂VIM基本操作

2.6 添加内存条,加快你的笔记本

2.7 三星SSD T5 装ubuntu随身携带即插即用

3、重新开始认识数字电路和Verilog吧

3.1 一文重新认识Verilog

4、IC工具使用篇-VCS

4.1 IC-工具篇–VCS使用教程-卷一(20200328)

4.1 补充 VCS官方指导读书笔记

4.2 IC-工具篇–VCS使用教程-卷一(20200413)

4.1 VCS-bilibili教程篇1-Simulation Basics

4.2 VCS-bilibili教程篇2-Debug Basic

5-1、IC工具使用篇-DC

5.1 DC使用教程系列1-.synopsys.dc.setup的建立

5.2 DC使用教程系列2-时钟的概念与约束脚本

5.3 DC使用教程-command(持续更新)

5-2 、IC工具bilibili视频教程篇-DC

5.1 DC课程笔记-数字逻辑综合工具-DC Environment Attributes

5.2 DC课程笔记-数字逻辑综合工具-DC Synthesis Optimization Techniques

5-3 、IC工具使用-DC 官方workshop篇

5.1 DC workshop指导篇1- Setup and Synthesis Flow

6-1、DFT视频系列 概念篇

6.2 DFT DRC

6.3 DFT command

6-2 、DFT实训课程笔记篇-bilibili版

6.1 DFT实训教程笔记1(bibili版本)- introduction to DFT& DFT Architecture

6.2 DFT实训教程笔记2(bibili版本)- Scan synthesis practice

6.3 DFT实训教程笔记3(bibili版本)-SOC Scan Implementtation(后半部分待再看)

6.4 DFT实训教程笔记4(bibili版本)- ATPG(137后需再看D算法等理论)

6.5 DFT实训教程笔记5(bibili版本)- ATPG Practice&ATPG Practice II (93后因lab采用mentor ,暂未看)

6-3、关于DFT相关问题的思考

6.2.3、如何真正理解DFT的一些概念想法?

6-4、DFT ug读书笔记篇

DFTug -Getting Started (DFT basic flow) -上篇

DFTug -Getting Started (DFT basic flow) -下篇

DFTug - Architecture Your Test Design

DFTug - Architecture Test Clocks

DFTug - Introduction to Test Models

DFTug - Test_point

DFTug - Pipelined Scan Data

DFTug - change_names With Verilog Rule

DFTug - Scandef

DFTug - OCC support

DFTug - Configuring Clock-Gating Cells(ICG)

ATPG (TMAX ug篇)

S1 violation - Troubleshooting a Scan Chain Blockage

TMAX使用【GSV&pin data】

6-5 、DFT axr理论与实践视频教程笔记篇

6-5.1 Scan Chain的原理与实现(理论)

6-5.2 Scan Chain的原理与实现(实践) - TOP Down Flow(上)

6-5.3 Scan Chain的原理与实现(实践) - TOP Down Flow(下)

7、Training感想篇

7.1 Memory Test 概念与Flow Lab (不公开)

7.2 DFT-TDS Flow(不公开)

7.3 Review DFT Lab1 training (不公开)

8、工作中Linux/VIM技巧补充

Linux如何显示文件数目的技巧&比较两个文件夹是否相同

强大的grep命令使用

VIM实际工作技巧

Linux实际工作技巧

9、Design for Test读书思考

9.1 为什么要做scan extraction?

9.2 深入理解Scan_replacement

10、Tmax ATPG ug系列

IEEE STIL文件语法总结

TMAXug - getting start

TMAXug ATPG Design Flow

11、Verdi 篇

11.1 Verdi GUI技能操作 Before you start

11.2 Verdi GUI技能操作-nwave部分

11.3 Verdi GUI技能操作-nschema部分

11.4 Verdi GUI技能操作-Application Tutorials部分

11.5 Verdi .rc操作(不公开)

11.6 Verdi与TCL脚本(不公开)

12、TCL项目实战

12.1 TCL基础语法篇

12.2 TCL实际项目应用篇

13、IC前端设计系列(bilibili版)

13.1 DC的理论与实践操作【task 9、10】

14、DFT project实训经验篇(保密不公开)

关于block_setting里面的疑惑点

XX33项目(2021/2月-2021/5月):

DFT projectXX44项目经验总结篇1

DFT projectXX44时间流程笔记

XX44项目bug经验总结

XX39项目bug经验总结

XX39项目FINAL总结

XX39项目 chip try版总结

15、project经历

待看资料&疑问问题

DFT sign-in Form

XX30 scan plan

XX30:block - otp_top

获取netlist的方法以及co-work注意事项

16、工作篇(大部分保密不公开)

待看资料与疑问

Slide制作技巧

聊天记录

Linux快速使用工作经验(公开:持续更新)

关于verdi使用的需求和技巧(公开: 持续更新)

公司组织架构和业内新闻

导入verdi的symbol library

工作中的FLOW中的注意事项INT&mail&qrsh&

scan设置易出错点

chip设置易出错点

IC co-work mail Flow

workcareer DFT关键经验篇(不公开)

make it - 如何处理1‘b0和1‘b1

搞懂所有的report文件

如何查看当前的pattern环境是否有测到哪些fault?(不公开)

如何查看当前instance覆盖了多少或者哪些faults

How to improve Scan Test Coverage to An Acceptable Level

为什么正常产生的pattern的SE信号并没有每次拉低?

为什么dump waveform的时候serial至少要设定为2以上

如何理解c39 violation?

PSD - Debugging Parallel Simulation Failures for Combined Pattern Validation(CPV)

验证STIL的pattern的输入顺序

验证force_PI&measure_po是否有实现

为什么netlist post之后我们还需要跑ATPG?

为什么要开启SDFF/Q与test_mode相&的功能?

how to achive scan_replacement during scan insertion?

Error: can‘t find OCC toggle in patterns!

根据所有OCC drive的faults_list提取指定OCC测到的AN

Auto Latch Insertion Flow

验证insert lockuplatch at pipehead/pipetail

探索在compression架构下lockup的插入位置

checklist机制

为什么scan_clk与function_clk不可以共用

为什么不推荐正沿+lockup+负沿的scan chain?

彻底弄懂理解ICG的基础概念

DFTug - Configuring Clock-Gating Cells(ICG)

pindata =load的含义

Modify inout port

PAD改为buf的高效style

ATE上机测试co_work

sub_module加wrapper提升testcov

指定DFT logic insertion的位置(DFT Logic insertion Location)

SPC(shift power control)基础知识

DFTC与TMAX的差异认知 - clock edge的认知差异& function aware insertion

read_faults XX.list -force_retain_code的作用

使用SNPS TCL 快速修改D1/D3 violation进行验证ATPG

Netlist/SPF 匹配 for ATPG的使用说明

SAF coverage improvement to Target 实际项目经验

SAF coverage improvement to Target 实际项目经验2

ATPG Faults归类深度分析

intl pattern count 限制减少测试时间

LIB cell命名与组合逻辑关系汇总

如何快速生成OCC_info相关的信息以及注意事项

ug setting timing variable设置时序参数

对target_lib的映射限制HVT&LVT的理解

如何切出指定的pattern进行debug分析

在TMAX simulation里什么是 “unload 2“ ?

postsim mismatch

Error: check OCC ATE connection

17 、ATPG DRC深度研究(暂不公开)

ATPG Z系列错误 Tristate rules

ATPG S系列错误 Scan Chain Rules

ATPG C系列错误 clock rules

ATPG B系列错误 build model

奇怪的Error系列

18 、advaned DFT Techology(保密不公开)

DFT高级处理方法与实现 – 在com架构insert_dft时候禁用某些cell

DFT高级处理方法与实现 – classify port or cell

DFT高级处理方法与实现 – 对PIPO的处理让cov提升

DFT高级处理方法与实现 – 对PIPO的处理让cov提升2

19 、周末学一点TCL系列(公开)

TCL incr的含义和用法

TCL foreach的用法

TCL proc的用法

TCL with SNPS - collection

TCL with SNPS - get_object_name&sizeof_collection&string

TCL with SNPS info exists&create_cell&create_net&connect_net

TCL with SNPS sizeof_collection&get_object_name&find&get_libs&list_attributes

TCL with SNPS collection_limit&get_lib_pins

TCL with SNPS get_attribute&get_lib_attribute&list_attributs&report_attribute

TCL with SNPS llength&lappend&get_cells

TCL with SNPS file exists&file rename/copy & redirect & lsearch & split

20、DFT 中的Python开发

python速学 2021/12/31

python速学 2022/1/2

Python excel 转 csv 的自动化

Python理解 if name == ‘main

Python 在shell模式写写for循环进行debug

[python] import后的模块是否能del移除掉

Python sys.argv[ ] 用法

Python 如何在linux下面调试

python开发IC utility 一些常用的方法和函数和语法规则

Formality使用篇

Formality篇 - 基于DFT验证新手基础使用篇

Ncverilog 使用篇

NCverilog 篇 - 基于DFT presim基础使用篇

VCS 使用篇

VCS篇 - 基于DFT presim基础使用篇

VCS篇 - 基于DFT sim pattern

STA系列

STA系列 – STA的基本概念

STA系列 — 如何理解标准单元 library

STA系列 — 建立时间和保持时间的check

STA系列 — multicycle path/半周期时序分析和falsepath约束

DFT 进阶

异步时钟setup与hold的彻底理解以及multicycle

Timing model

DFT 扩展 — Memory BIST

bottom_Up multimode 下stitch/atpg研究

Top down Flow

DFTMAX 架构基础

How to speed up scan shift frequency

如何去modify shift testbench for fixing timing

上机scan debug 指导

关于DFT的问题一年汇总


职业发展第二阶段

1、基础概念

1.1 什么是Harden

1.2 常见的config文件用法解析

1.3 Tessent shell T系列 - Scan chain Trace Rules经验积累

1.4 项目中的注意和潜在规定

1.5 I/O pad reuse EXCEL

1.6 内部命令研究

1.7 PDL的语法概念

2 Tessent TestKompress系列

2.1 EDT技术 ug - 第一章节 Getting Start

2.2 EDT技术 ug - 第二章节 The Compressed Pattern Flows(持续更新)

2.4 EDT技术 ug - 第四章节Creation of the EDT Logic (持续更新)

3、疑问以及实验论证

3.1 test pattern和simulate pattern有啥区别呢

3.2 tessent pdl&proc文件关系

3.3 如何搭建原汁原味的实验去验证一些想法

3.4 tessent 命令研究 - stil2mgc的使用

4、项目经验

4.1 如何做feedthrough

4.2 mem自动实现分组

4.2 交付时候sdc的处理

4.3 内部Flow流程研究

4.4 tessent ATPG 使用flatten model保存文件

4.5 验证ATPG中如何处理非scan的端口以及delete_pin的原则

4.6 ATPG仿真时如何初始化寄存器的值以及test_mode上电自解

4.7 如何正确的remove design,避免反复吃入db浪费时间

4.8 如何知道子模块的hierarchy

4.9 异步复位同步释放的原理

4.10 insert_dft时候有UPF相关错误(MV-090)

5、 Tessent ATPG ug系列

5.1 Tessent Atpg系列 第七章 Running ATPG Patterns

5.2 Tessent Atpg系列 第七章 Running ATPG Patterns ug

5.2 Tessent Atpg系列 第八章 Test Pattern Generation - Verify Test Pattern

5.3 Tessent Atpg系列 第八章 Test Pattern Generation - ATPG Tool Pattern Types(sequential pattern概念)

6、 仿真环境问题经验

6.1 stuck at presim环境建立

6.2 VCS仿真环境 - 如何解组合逻辑环loop

6.3 VCS报告大量Timing violation in mem?

6.4 postsim如何进行反标SDF

7、Tessent JTAG/IJTAG - ug系列

7.1 Tessent Ijtag 第一章节介绍篇

7.2 Tessent IJtag 第二章 什么是ICL?

7.3 JTAG标准协议介绍

7.6 Tessent IJTAG课程笔记 - IEEE1687 Introduction

7.7 IEEE 1687标准协议介绍

8、 Tessent Error 系列

8.1 Tessent test_setup mismatch Error: E14解法

8.2 Tessent ATPG ATPG - R2解法与pad方向

8.3 Tessent ATPG - D1 violation

8.4 Tessent ATPG - C1 violation

8.5 Tessent ATPG C22 violation

8.6 Tessent ATPG EDT Error: F10解法

8.67 Tessent ATPG EDT Error: F9解法

8.8 Tessent ATPG EDT Error: T24解法

8.9 Tessent ATPG mismatch debug经验

8.10 tessent ATPG TDF mismatch PLL配置完毕后引入X态

8.11 Tessent ATPF SAF mismatch debug经验 D/Q来源于同一个时钟

8.12 Tessent ATPG P1错误

9、ECO系列

9.1 ECO系列 — 防止输入pin悬空

10、formality系列

10.1 formality系列 - 对比dft之后的网表与PR吐出来的网表

10.2 formality系列 - 设置dont verify之后的影响

10.3 formality系列 - clock gating输入确定,输出X

11 、Prime Time系列

11.1 走进Prime Time系列 - 走进PT - 01

11.2 走进Prime Time系列 - PT的constraint - 02

11.3 走进Prime Time系列 - PT的Timing exception 03

11.4 STA系列 - 特殊时序分析multicycle/half-cycle/false path

11.5 STA系列 - 特殊时序分析 across clock domain分析/multiple clocks分析

11.6 STA系列 - 特殊时序分析 异步复位信号的recovery和remove time

11.7 STA系列 - 芯片的复位POR

11.8 STA系列 - 如何看懂时序报告

11.9 STA系列 - 芯片的鲁棒性OCV之set_time_derate

11.10 STA系列 - 为什么要对最小信号脉宽检查

11.11 STA系列 - clock transition\input transition\max transition的含义和区别

11.12 STA系列 - data to data check

12 STA命令系列

12.1 STA命令系列 - set_ideal_network

12.2 STA命令系列 - set_input_transition

13、mbist系列

13.1 shared_in_controller与per_interface的区别

13.2 Tessent MBIST课程笔记 - MBIST flow Introduction

13.3 Tessent MBIST课程笔记 - MBIST flow Introduction(2)

13.4 MBIST错误收集系列 - 与期待时钟不匹配

13.5 MBIST错误收集系列 - 与期待时钟不匹配2

14、Tessent Kompress系列

14.1 Tessent ATPG系列 - EDT Dual结构

14.2 Tessent ATPG系列 - EDT Bypass结构

15、IDDQ测试系列

15.1 IDDQ guide 入门

17 、library学习篇

17.1 library库学习篇 - libcomp将.v转.mdt的方法

19、全新课程系列培训篇

你可能感兴趣的:(数字IC系列,DFT,DFT,tessent)