一、cadence PDK 自学笔记-心法

2024-02-02 08:52
文章标签 自学 笔记 cadence 心法 pdk

本文主要是介绍一、cadence PDK 自学笔记-心法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我这边ADS /Cadence PDK基本大部分都是自学完成的。

当然也非常感谢我的前同事周**的帮忙,教了我很多基础的。另外也感谢我现在同事,李**和程*的帮忙,学习了很多cad的视角。

其实对于自学写PDK的小伙伴,一般都要如何学习呢?

我总结了我几次完成的学习流程:(以cadence PDK为例)

  1. 首先,自学最重要的是一个成就感的搭建,所以需要先确定以PCell为起点去编写结构。并且,需要了解一下,pdk的所有代码文件的结构是什么。
  2. 对于cadence来说,首先学会如pcDenfinePCell写一个矩形就行了,这样就跑通一个流程了。
  3. 学习skill的语法,将如何设置变量,如何输入输出,如何判断,如何循环,以及一些数据转换的函数,了解完之后就对skil有个大概的了解了。
  4. 试着将矩形组合不同的层结构,搭建一些简单的图形。这个时候看看via、圆形、弧形、多边形、path线用哪些函数?
  5. 学会根据简单的参数,写一个基础的cdf参数。这个时候,可以dump一下别家pdk的cdf的参数,去抄一下别人的面板。
  6. 在cdf的基础上,写一个简单的callback回调。用encrypt的方式,得到一个解码的lie文件,可以查看一下别人写callback的逻辑。并且,理解callback和cdf与pcell之间的关系。
  7. 修改cdf面板中仿真的部分,增加netlist的部分进入cell中
  8. 看看能不能修改libInit去自动载入脚本
  9. 学习一下如何encode代码,然后用libInit去兼容
  10. 怎么增加sch,ivpcell,等等仿真器的设置,以及界面的设置,各种调用设置
  11. 学习别家的文档体系的构成,都有哪些种类的文件,分别是起到什么作用的,各自又有什么区别。试着自己确定一个文档的格式,并且按照自己的格式,将自己pdk的一些内容整理上去。
  12. 直接去做某一家业界一线在用pdk的复刻版本,基本上大部分问题你就都能自我学会了。

以veriloga为例,其实和学习pdk的步骤是差不多的,最重要几个节点就是必须了解清楚需要做的东西的结构,使用的工具的语法,然后试着用软件跑通一个编译的流程后,接着去做一些小东西,之后再查阅一些基础功能集合,再去想办法搜集一些资料,帮助自己继续自学,了解透彻handbook上的函数,之后再进行深入的case编写,一边写一边学。

自学的流程其实都差不多的,不过需要时间和毅力去做这个事情,也要相信自己一定可以做成。

(对于垃圾人的pua可以不用管,因为用pua的人本身就是弱者,这种弱者并不仅仅是能力上的,更是意识上的。对所有自学的人来说,什么都不可怕,最怕就是不相信自己,心气一丢,万事皆休。)

我曾经学习电路的时候,摸爬滚打,遇到了一堆的坎坷,也没人跟我讲如何设计,出现了一些我觉得有问题的设计方法,我自己不知道问题出在哪里,感觉自己设计的时候没有章法。然后就被煞笔领导pua过,觉得我学的很慢,但是问他问题他又不给你教导,所以我就在错误的道路上越走越远。

为了摆脱这种局面,我后来找了一堆的研究生毕业文献,专门找那些逻辑讲得清晰详细的,将哪些只会放几个书上公式和各种不靠谱图片的垃圾文献都丢了,然后专门抽空去过了一遍基础课。我原以为自己会用非常长的时间,原计划是三个月。但是,后来我发现开始做起来,就没那么难了。

学习基础课的时间大概两个礼拜就完成了,需要真正学会的东西不太多。一边做一边消化。

最后发现,垃圾领导给我指的方向是错的。难怪我前面几个月一直走弯路到怀疑人生,感觉自己效率low到爆炸。

从那以后我就知道了,大部分人甚至是领导可能都没有我专业,甚至还要防备领导把自己带错方向。从那以后,我把畏惧心放下来了,开始相信自己的判断,质疑领导的判断,结果发现自己的路几乎都是走的正确的,连判断都是正确的。

应该说,从真正相信自己的那一刻起,我就几乎没有做出过错误的决策。

学习也是如此,心不静的话,书在面前也学不会,其实,我发现真正的捷径都在那些你非常害怕并且觉得头皮发麻,疯狂说不行,不可能的地方。

把上面的小任务当成十个项目目标,3-4天一个小目标,一个月内基本就能直接写出pdk了。

如果卡壳了(卡壳是很正常的),大概要摸爬滚打了解各种边角的知识,抓住框架是什么,才能继续下去,没有人引导的时候,最长我卡过半年。每个人都会卡壳,我也不例外,要学会面对卡壳,就像面对工程难题一样。

习惯于挑战难题,并相信自己能够挑战难题是优秀工程师的基础素质,所以就从学习这件小事开始做起吧。

这篇关于一、cadence PDK 自学笔记-心法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/670169

相关文章

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个

Git 的特点—— Git 学习笔记 02

文章目录 Git 简史Git 的特点直接记录快照,而非差异比较近乎所有操作都是本地执行保证完整性一般只添加数据 参考资料 Git 简史 众所周知,Linux 内核开源项目有着为数众多的参与者。这么多人在世界各地为 Linux 编写代码,那Linux 的代码是如何管理的呢?事实是在 2002 年以前,世界各地的开发者把源代码通过 diff 的方式发给 Linus,然后由 Linus