前言
本篇文章主要用于记录数字集成电路设计的学习过程,而且许多观点可能略显稚嫩,不过只用于入门的全流程学习,以便于日后需要时可以迅速上手。
学习方法:个人觉得集成电路设计与软件设计类似,应该非常注意理论与实践结合,很多概念刚开始读着抽象的,上手试试就清楚了!这是一定需要注意的。
前期所需预备技能:Verilog学习(在windows系统下跑前端一些EDA软件的话就暂时只用学Verilog就好了)
后期在服务器上跑所需要预备技能:Linux系统的使用(90%的EDA软件都是在Linux系统使用),Vi编辑器,linux系统下的文本编辑器(用得多),或者emacs编辑器等。
一、Top-Down设计流程
我个人对该思想是又爱又恨。先说恨,之前大学期间的时候,只有《数字电子技术基础》的基础,然后准备自学数字集成电路设计,一看书,啥也看不懂。太复杂庞大了,系统架构、时序分析,各个步骤对应各种EDA软件…。所以刚开始我反而不建议去硬磕概念,而是下载EDA软件,去动手操作一遍。可以在PC上跑一些前端EDA工具,等到概念慢慢具象化之后,慢慢尝试连接服务器上用EDA软件(当然这需要所在机构提供),又会惊叹,多么完善的产业布局,多有艺术感!
前端设计:以设计架构为起点,以生成可以布局布线的网表为终点。(实际操作起来,用verilog HDL(用得多)或者VHDL编程的!其他的基本都交给EDA工具自动实现,当然这是我初学者的角度)
后端设计:以布局布线为起点,以生成可以交付Foundry进行流片的GDS文件为终点。当芯片节点进入纳米级后,为了芯片节点可以继续迭代,一个新的理念"设计与工艺协同优化"被提出,至于这个概念应该如何体现,我目前能够考虑到的层面是所谓在设计之初就考虑到工艺条件的限制的意思具体体现在后端加强可靠性验证,静态时序分析等(这些步骤的实现包含工艺的限制条件)。
二、前端设计操作指南
前端设计流程:见我另一篇博文