当前位置:   article > 正文

数字IC设计SOC入门进阶_ic设计进阶

ic设计进阶

声明:本系列文章全部来自网络公开资料整理,并在文后附上网页链接。仅用于学习交流

前言

从事FPGA逻辑开发已X年,对于未来的发展方向、技术提升等充满了困惑、迷茫。此时,恰逢数字IC设计岗位兴起,也顺利获得转岗offer,这也注定了未来几十年北漂的辛苦生活。

仅以此文记录自己的学习成长,希望自己不断提升专业技能,也为其他读者了解SOC工作领域提供参考。

SOC涉及很多外设和不同电路,因此前期文章主要以基础概念整理为主,简要整理相关概念、协议、硬件电路等。后期,再逐渐深入介绍。

本文持续更中。

一、概述

1.1 主要内容

1、基于SOC内部结构,逐一对每个模块对介绍说明;

2、整理介绍SOC开发用到的全部开发软件;

3、介绍SOC开发思想;

4、介绍SOC开发流程;

5、总结SOC开发经验;

SOC内部结构示意图

SOC内部结构示意图

二、基础进阶

软件和理论基础
1、linux常用指令1.1 office word文档规范
1.2 excel常用操作

1、makefile

1、flist
2、C语言基础2、TCL基础
3、linux shell基础3、Perl基础
3.1、YAML介绍3.2、总线带宽计算公式
4、SystemVerilog语法5、vim基础
6、Python操作excel基础7、verilog语法+:和-:
6.1、python文本操作6.2 TCL文本操作
6.3、Cmodel介绍
8、sublime_text9、UVM入门基础
10、VCS常用命令11、verdi基础
12、SOC芯片内部结构13、ECO
14、SDC简介15、vivado bit默认路径
21、时钟理论基础26、spyglass使用教程
16、两个显示屏之间鼠标移动方向调整17、win11鼠标文本选择光标变白色
18、git版本管理19、示波器基础
20、Linux串口调试助手20、多周期约束
21、轮询优先级仲裁22、复位理论基础
23、低功耗理论基础24、时序约束理论与实践
25、后仿理论介绍26、GDB调试介绍
数字IC SOC设计基础--协议介绍
1、AMBA总线2、APB
3、AXI4协议介绍4、低功耗和UPF介绍
5、ARMV8 datasheet学习6、二进制和格雷码之间转换介绍
7、8、
9、10
数字IC SOC设计基础
1、WDT2、Timers
3、GPIO4、IIC
5、I2S6、SPI
5.1、ADC介绍6.1、Flash
7、UART8、DMAC
9、SD协议10、EMMC协议
11、SD/SDIO/EMMC12、USB

12.1、GMAC & PHY介绍

12.2、DDR CTRL介绍
13、PWM14、PDM
15、ARMv8通用定时器简介16、GIC
17、ARM Mailbox18、MIPI DSI简介
19、MIPI CSI RX接口简介20、SMMU
21、PMIC介绍
数字IC SOC设计基础--Multi Media
1、2、
3、4、
数字IC SOC设计基础--CPU
1、DDR2、ARM-M3
3、ARM-A554、ARM-RISCV
基于AHB SRAM控制器设计基于AHB FLASH控制器设计
芯片集成芯片仿真
AHP+APB+CPU小系统构建SRAM+SD HOST+FLASH集成和仿真
GPIO+ICTL+DMAC
图书推荐
手把手教你RISC-V CPU我在硅谷管芯片:芯片产品线经理生存指南

Linux入门,学习资料:视频“史上最牛的Linux视频教程—兄弟连”,时长36小时(可以尝试X2播放速度观看)。这里跟着视频坚持学习即可。学习目标,初步了解Linux操作系统,初步掌握软件安装、使用。

数字IC SOC设计,学习资料:视频“数字IC SOC设计”,时长49小时(可以尝试X2播放速度观看)。学习目标:了解总线基础知识、DMCA相关内容、SOC集成、仿真环境、Linux开发环境、脚本语言(TCL/Python)

三、 职业发展前景 

无论是走技术路线还是管理路线,在工作的前六年主要精力都放在技术提升上,并无太大差别。职级提升大概如下:

硕士毕业0~3年(对应本科0~5年):level 1

硕士毕业3~6年(对应本科5~8年):level 2

硕士毕业6+年(对应本科8+年):level 3

在升到level 3 以后就要考虑自己的职业发展方向了。从level3~level4其实很难说要几年,有的人可能需要3年,有的人需要五年,具体看能力和机会了,大多数人到level4应该是没有问题的。而薪资在此时也基本达到可一个技术人的瓶颈(65-80W)

而level 5,甚至Fellow和Director及以上,是属于少部分人的。要么就是业内大牛,对公司有突出贡献的,要么就是猎头眼中的红人,酒桌上推杯换盏的高管。

Level 5可以说是年薪百万的一道门槛。

而从两个职位发展的前景来看,level 4以前也基本一样,再往上突破,设计应该更占优势一些。做设计更容易转做架构和经理。

注:以上仅代表个人观点,并不绝对

四、 工作内容

IC设计的主要职责如下:

  • 根据功能制定设计方案,制定微架构,编写详细技术文档。
  • 使用Verilog进行RTL逻辑设计,实现模块功能。
  • 进行逻辑综合、时序分析,完成时序收敛。
  • 中小规模的芯片可能还会参与DFT的工作。
  • 参与芯片系统调试,后仿真、FPGA验证等工作。

IC验证的主要职责如下:

  • 阅读design spec,编写verification spec,制定test plan。
  • 搭建验证环境 (C/C++,systemC,systemverilog)。
  • 创建test cases。
  • 监测regression和提升coverage
  • support 其他工程师。

结束语

最后,分享最近读到的一段:

“应该有一个20年的梦想,尽可能大些,尽可能抽象一点。因为你知道20年是很长的时间,可以发生任何事情,这个计划主要以你的梦想为主。

给自己一个不超过10年的理想,这个计划主要以培养和发展你的核心竞争力为主。

对新的机会和趋势永远保持警醒。”

与君共勉

工具书籍推荐:

  • ON-CHIP NETWORKs 片上互联网络--多核/众合处理器关键技术
  • 半导体先进封装技术[美]刘汉诚
  • 综合与时序分析的设计约束 synopsys 设计约束(SDC)实用指南
  • RISC-V 体系结构编程与实践
  • CUDA并行程序设计 GPU编程指南
  • 通用图形处理器设计gpgpu编程模型与架构原理
  • AI加速器架构设计与实现

如果你想深入学习Transformer模型,可以参考以下几本书籍:

1.《Attention Is All You Need》:这是Transformer模型的原始论文,深入介绍了这个模型的思想和实现细节。

2.《Illustrated Transformer》:这是一本非常适合初学者阅读的图文书,详细介绍了Transformer模型的每一个组成部分。

3.《Deep Learning for NLP with PyTorch》:这是一本以PyTorch为主的深度学习NLP入门书,也介绍了Transformer模型的原理和实现。

4.《Transformers from Scratch

下面的内容引用自:

深入了解GPU--学习教材 

1. 入门

   NEHE  http://nehe.gamedev.net         中文版  http://www.owlei.com/DancingWind/

   OpenGL Superbible 4ed      《OpenGL超级宝典(第4版)》

2.OpenGL Shading Language 2ed
这本书有中文版,但是我强烈不建议看,除非你不像学会这门语言。上一本书主要讲解了API使用,但是对于GLSL讲解得不多。所以在用这本书打打牢基础。Shader Programing是现代图形硬件的关键,有相当多的算法仰仗SHader,必须给与足够重视。


3.《OpenGL编程指南 7ed》
这本书俗称红宝书,没有必要专门看,但是作为工具字典书还是很有必要的,查一查API使用。其实最好的API查阅还是看OGL Spec~~~  :>而且要设计GPU的话,OGL/D3D Spec也是要反反复复看个三四遍得!(顺便提一下,微软的D3D Spec / Ref Code是需要和微软签NDA协议才能拿到手的,我记得浙大CAD那边偷偷搞到手过这些文档是源代码,后来泄漏了,还被微软发信警告了某公司~~)

对于D3D编程来说看微软的SDK文档就够了也不用折腾去买什么书,微软SDK文档就是最好的书籍,还免费~:〉


4. 《3D绘图程序设计:使用Direct3D 10/9和OpenGL 2.0》
接下来就是练习各种图形算法以及效果,这里先挑一本简单的书联系一下,这本书写得非常工业化,都是相对来说游戏中比较实用的技术。尽管错误不少,但是学习是足够了。到此为止,你对图形学的学习算是度过第一阶段了,基本完成了入门。接下来要看一系列的中级教程。


5.GPU Gems 1/2/3
这是NV组团出版的一本书,可以说是论文集,包含GPU的各个领域,写得非常好,这三本书必读。这是阅读图形学论文的前提。


6. Graphics Gems 系列
这各系列的书虽然有些老,但是也很经典,多多了解从前的设计,从前的图形算法,有助于理解CG的演变以及近些年来优化的主要方向~~

7.ShaderX 系列
应朋友的要求把这本书加上,这个系列的书我还没来得及看过,(我OUT了……)懂得朋友们可以评价一下~

8.Real-time rendering 2/3ed
本书绝对必读!!!本书在GPU Architecture中的地位堪比CPU中的《量化方法》那本书,包括Reference等论文一定也要看,都是作者精心挑选的,非常经典~~   对于自己的算法只是也是非常开阔的。

9.  Procedural Elements for Computer Graphics (2E)
《计算机图形学的算法基础(原书第2版)》
对于GPU架构设计来说,本书也是绝对必读!这本书实验必须一一过关,本书讲解最底层的图形算法,这些算法不依赖于任何硬件,虽然年代久远,但是在实时图形学里OGL仰仗的大部分图形算法不也都是七八十年代的么,包括Z/S-buffer/Edge function Rasterization/vertex Transform /Ground Shading等等……所以本书必读!

===============计算机架构师=====================

第一阶段步入先做一个CPU架构师~

首先是计算机体系结构(Computer Architecture),因为无论是GPU还是CPU归根到底都是处理器(Processor),而计算机体系结构就是讲解处理器如何工作以及如何权衡取舍各个模块特性参数的一门课程。主要参考书目如下:(读书顺序如编号,参考书目可以根据兴趣穿插在其中~)

1.计算机组成和设计:硬件/软件接口
Computer Organization & Design:The Hardware/Software Interface
本书就不多说了,组成原理是体系结构的专业基础课程,本书必读!

2.《大型RISC处理器设计——用描述语言Verilog设计VLSI芯》
本书的阅读要包括没有翻译的高级本,这本书是教你如何组一个工业级别的CPU。可以获得很多硬件上的定量分析的知识。

3.量化方法第四版英文版
读要包括附录和习题以及参考论文,这本书是体系结构领域的圣经,不读不足以成学过体系结构。

4. Modern Processor Design:Fundamentals of Superscalar Processors 
《现代处理器设计——超标量处理器基础》
这本书也必须做习题,本书讲解了很多处理器设计的实例,要结合书后的参考论文一一阅读。

5.  Chip Multiprocessor Architecture: Techniques to Improve Throughput and Latency
本书主要讲解了面向Web Server的事务处理器的架构应该如何权衡,书中的研究成果来自SUN Niagara得第一手材料。非常具有代表性~书也不厚,可以当做小说来看。

6. Embedded Computing: A VLIW Approach to Architecture, Compilers and Tools
作为VILW的代表作,必须阅读,其实对VLIW支持可以算在编译器领域,因为VLIW处理器在架构上没有太多难懂的地方。不过这里作为预览,稍后再编译技术学习的时候可以轻松一些。

7. VLSI Digital Signal Processing Systemsesign and Implementation 
本书作为DSP里面最经典的微体系结构教材,必读!这本书很工程,没有太多废话,写作效率很高~~~

8.  Stream Processor Architecture
本书主要是斯坦福的对于流处理器设计的总结,其中大部份人都去了AMD或是NV做架构,对于研究GPGPU来说,本书必看!从目前已经有过的研究来看,GPGPU还是难以胜任流计算之外的通用计算任务。

9. Parallel Computer Architecture A Hardware/Software Approach(Second Edition)
本书作为体系结构扩展学习的材料,对于并行计算机讲解的相当深入浅出,虽然年代老了一些,但是技术是不分先进与落后的。要博观约取,日后才能厚积薄发~~。此书我没有通读,所以留下遗憾,导致并行架构方面的知识大大欠缺,不足引经据典。日后有时间要补上~~

10.See MIPS RUN Second RD
《MIPS体系结构透视(英文影印版)(第2版) 》
这本书其实不是讲解CPU如何设计的,但是讲解了CPU如何与软件互动,作为一本补充阅读的材料是非常的好的。即便软件工程师也推荐阅读。

另外,还包括各种总线技术,毕竟总线技术在未来的处理器以及处理器阵列中有不可或缺的意义!必须要搞明白,包括AXI、OCP、PCI、PCI-E,之后就可以看一些关于片上网络(Network on Chip)的书籍和论文(主要是论文。)

另外还包括网格等技术相关的书籍和论文都要多多阅读。体系结构的书籍还是相当多的,数目很多,面向方向包括目前非常火爆的低功耗技术如何与处理器架构联系在一起,也包括专门用于网络传输的网络处理器,容错技术,可重构技术等。一脚下去深不见底……学无止境的。所以读书前要确立好目标,千万别看什么NB就学什么,来回换山头。其实读书永远是一个人入门的阶段,做到熟练之后就是大量的阅读论文了,尤其是ACM的论文,不读论文的话就不可能做到一个好的研究成果,因为只有相对稳定和陈旧的理论才回写入书本。最新的科技都是写在论文当中。多读论文可以节省自己大量的时间。

参考

1、作者博文
数字IC设计与数字IC验证哪个好
IC发展前景

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/966547
推荐阅读
相关标签
  

闽ICP备14008679号