一、cadence PDK 自学笔记-心法
我这边ADS /Cadence PDK基本大部分都是自学完成的。
当然也非常感谢我的前同事周**的帮忙,教了我很多基础的。另外也感谢我现在同事,李**和程*的帮忙,学习了很多cad的视角。
其实对于自学写PDK的小伙伴,一般都要如何学习呢?
我总结了我几次完成的学习流程:(以cadence PDK为例)
- 首先,自学最重要的是一个成就感的搭建,所以需要先确定以PCell为起点去编写结构。并且,需要了解一下,pdk的所有代码文件的结构是什么。
- 对于cadence来说,首先学会如pcDenfinePCell写一个矩形就行了,这样就跑通一个流程了。
- 学习skill的语法,将如何设置变量,如何输入输出,如何判断,如何循环,以及一些数据转换的函数,了解完之后就对skil有个大概的了解了。
- 试着将矩形组合不同的层结构,搭建一些简单的图形。这个时候看看via、圆形、弧形、多边形、path线用哪些函数?
- 学会根据简单的参数,写一个基础的cdf参数。这个时候,可以dump一下别家pdk的cdf的参数,去抄一下别人的面板。
- 在cdf的基础上,写一个简单的callback回调。用encrypt的方式,得到一个解码的lie文件,可以查看一下别人写callback的逻辑。并且,理解callback和cdf与pcell之间的关系。
- 修改cdf面板中仿真的部分,增加netlist的部分进入cell中
- 看看能不能修改libInit去自动载入脚本
- 学习一下如何encode代码,然后用libInit去兼容
- 怎么增加sch,ivpcell,等等仿真器的设置,以及界面的设置,各种调用设置
- 这个时候,可以开始学习DRC的部分,主要是了解单层的规则,比如同层间距,宽度,密度的相关函数;以及双层的规则,如enc、异层间距、内接、外接等等规则函数。
- 之后看看别家的PDK中的DRC,了解DRC工具间不同的语法,大概的通用结构,然后确定自己的语法结构和规则。之后,试着复现一下别家的DRC文件。
- 而后可以了解LVS的规则,都有哪些识别Pin的,哪些是器件识别结构定义的,不同的器件之间又是如何区分的用什么层结构区分的,哪些结构上不能放哪些结构的等等
- 之后看别家的LVS规则,照着抄一遍,就知道别人在面对一些规则问题的处理手法。
- 学习别家的文档体系的构成,都有哪些种类的文件,分别是起到什么作用的,各自又有什么区别。试着自己确定一个文档的格式,并且按照自己的格式,将自己pdk的一些内容整理上去。
- 直接去做某一家业界一线在用pdk的复刻版本,基本上大部分问题你就都能自我学会了。
以veriloga为例,其实和学习pdk的步骤是差不多的,最重要几个节点就是必须了解清楚需要做的东西的结构,使用的工具的语法,然后试着用软件跑通一个编译的流程后,接着去做一些小东西,之后再查阅一些基础功能集合,再去想办法搜集一些资料,帮助自己继续自学,了解透彻handbook上的函数,之后再进行深入的case编写,一边写一边学。
自学的流程其实都差不多的,不过需要时间和毅力去做这个事情,也要相信自己一定可以做成。
(对于垃圾人的pua可以不用管,因为用pua的人本身就是弱者,这种弱者并不仅仅是能力上的,更是意识上的。对所有自学的人来说,什么都不可怕,最怕就是不相信自己,心气一丢,万事皆休。)
我曾经学习电路的时候,摸爬滚打,遇到了一堆的坎坷,也没人跟我讲如何设计,出现了一些我觉得有问题的设计方法,我自己不知道问题出在哪里,感觉自己设计的时候没有章法。然后就被煞笔领导pua过,觉得我学的很慢,但是问他问题他又不给你教导,所以我就在错误的道路上越走越远。
为了摆脱这种局面,我后来找了一堆的研究生毕业文献,专门找那些逻辑讲得清晰详细的,将哪些只会放几个书上公式和各种不靠谱图片的垃圾文献都丢了,然后专门抽空去过了一遍基础课。我原以为自己会用非常长的时间,原计划是三个月。但是,后来我发现开始做起来,就没那么难了。
学习基础课的时间大概两个礼拜就完成了,需要真正学会的东西不太多。一边做一边消化。
最后发现,垃圾领导给我指的方向是错的。难怪我前面几个月一直走弯路到怀疑人生,感觉自己效率low到爆炸。
从那以后我就知道了,大部分人甚至是领导可能都没有我专业,甚至还要防备领导把自己带错方向。从那以后,我把畏惧心放下来了,开始相信自己的判断,质疑领导的判断,结果发现自己的路几乎都是走的正确的,连判断都是正确的。
应该说,从真正相信自己的那一刻起,我就几乎没有做出过错误的决策。
学习也是如此,心不静的话,书在面前也学不会,其实,我发现真正的捷径都在那些你非常害怕并且觉得头皮发麻,疯狂说不行,不可能的地方。
把上面的小任务当成十个项目目标,3-4天一个小目标,1-2个月内基本就能直接写出pdk了。
如果卡壳了(卡壳是很正常的),大概要摸爬滚打了解各种边角的知识,抓住框架是什么,才能继续下去,没有人引导的时候,最长我卡过半年。每个人都会卡壳,我也不例外,要学会面对卡壳,就像面对工程难题一样。
习惯于挑战难题,并相信自己能够挑战难题是优秀工程师的基础素质,所以就从学习这件小事开始做起吧。
相关文章:
一、cadence PDK 自学笔记-心法
我这边ADS /Cadence PDK基本大部分都是自学完成的。 当然也非常感谢我的前同事周**的帮忙,教了我很多基础的。另外也感谢我现在同事,李**和程*的帮忙,学习了很多cad的视角。 其实对于自学写PDK的小伙伴,一般都要如何学习呢&…...

防御保护--NAT策略
目录 NAT策略 NAT类型 server-map表 P2P --- peer to peer 网络类型 编辑 目标NAT--服务器映射 双向NAT 编辑 多出口NAT NAT策略 静态NAT --- 一对一 动态NAT --- 多对多 NAPT --- 一对多的NAPT --- easy ip --- 多对多NAPT 服务器映射 源NAT--基于源IP地址进行转…...

【C++】C++入门 — 指针空值nullptr
C入门 指针空值 指针空值 在良好的C/C编程习惯中,声明一个变量时最好给该变量一个合适的初始值,否则可能会出现 不可预料的错误,比如未初始化的指针。如果一个指针没有合法的指向,我们基本都是按照如下 方式对其进行初始化: voi…...
Vue3+Koa2实现图片上传(不再畏惧)
大家好,我是勇宝,一个热爱前端的小学生,年关将至,提前祝大家新年快乐。今天呢,我们就来好好的啃一啃图片上传,从一个前端开发者的角度来探讨一下图片上传前后端到底都做了哪些事情。 文章目录 一、技术摘要…...

wsl-ubuntu 安装 nginx
wsl-ubuntu 安装 nginx 1. 安装 nginx2. 确认 nginx 启动状态3. 重启 nginx4. 停止 nginx 1. 安装 nginx sudo apt install nginx2. 确认 nginx 启动状态 systemctl status nginx3. 重启 nginx systemctl restart nginx4. 停止 nginx systemctl stop nginx完成!…...

重学Ajax
摘要:AJAX是一个在前端的应用非常广泛技术,为什么还要谈它呢?么得办法之前学的不全面,再收拾收拾。水平有限,欢迎指正! AJAX(全称:Asynchronous JavaScript and XML)是一…...

springboot3+vue3支付宝交易案例-结算支付
springboot3vue3支付宝交易案例-结算支付!今天下午整理了一下结算的内容。遇到了很多问题。汇总分享给大家。 第一个问题:支付宝结算后,返回的交易编码,和交易时间,交易状态,都应该使用varchar来存。 第二…...
c语言 ceil() 函数
ceil()是C语言中的一个数学函数,用于向上取整。它的函数原型定义在math.h头文件中。 ceil()函数的作用是返回一个大于或等于给定参数的最小整数值,即将参数向上取整到最接近的整数。返回值的数据类型为double。 以下是ceil()函数的函数原型:…...
virtualBox虚拟机安装ubuntu后的必要配置
1. 使能双向copy 粘贴功能。在device menu的 shared clipboard项, 选bidirectional. 2.启用共享文件夹。 在device 菜单的 shared folder 项配置, (对于日期乱码问题和命令行打不开的问题请见ubuntu18.04安装后时间日期乱码及terminal打不开解决方法_电脑日期变成…...

《Pandas 简易速速上手小册》第6章:Pandas 时间序列分析(2024 最新版)
文章目录 6.1 时间序列数据基础6.1.1 基础知识6.1.2 重点案例:股票市场分析6.1.3 拓展案例一:温度变化分析6.1.4 拓展案例二:电商平台日销售额分析 6.2 日期与时间功能6.2.1 基础知识6.2.2 重点案例:活动日志分析6.2.3 拓展案例一…...
滇西科技师范学院食堂大宗物资采购项目(冰冻制品类)招标公告
滇西科技师范学院食堂大宗物资采购项目(冰冻制品类)招标公告 (招标编号:YDZOH20240158) 项目所在地区:云南省,临沧市,市辖区 一、招标条件 本滇西科技师范学院食堂大宗物资采购项目(冰冻制品类)已由项目审批/核准/备案机关批准,项目资金来源为…...

(2024,SaFaRI,双三上采样和 DFT,空间特征和频率特征)基于扩散模型的图像空间和频率感知恢复方法
Spatial-and-Frequency-aware Restoration method for Images based on Diffusion Models 公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群) 目录 0. 摘要 3. 方法 3.1 修改数据保真度 3.2 …...

【Linux】环境基础开发工具的使用之gcc详解(二)
前言:上一篇文章中我们讲解了Linux下的vim和yum的工具的使用,今天我们将在上一次的基础上进一步的讲解开放工具的时候。 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:Linux的深度刨析 👈 Ὂ…...
go语言-用channel控制goroutine的退出
用channel控制goroutine的退出 本文简要介绍了,如何用channel控制goroutine的退出的基本方法 for-range主动停止goruitine package mainimport ("fmt""sync""time" )/* Go并发编程模型:主动停止goroutine 方法一&#…...

强大的虚拟机Parallels Desktop 19 mac中文激活
Parallels Desktop是一款功能全面、易于使用的虚拟机软件,它为用户提供了在Mac电脑上同时运行多个操作系统的便利。 软件下载:Parallels Desktop 19 mac中文激活版下载 Parallels Desktop 19 mac具有快速启动和关闭虚拟机的能力,让用户能够迅…...

单元测试框架深入(一):单元测试框架深入
一、一个简单的例子 1、引入Maven依赖:JUnit框架和Surefire插件 2.在src/test/java目录下新建名字以“Test”结尾的测试类,并用Test注释测试方法 3.运行单元测试用例 或用mvn命令运行单元测试: 二、单元测试基础之单元测试框架:J…...
苏门X学士常识学习
前言 苏轼(1037年—1101年)是北宋的文坛领袖,很喜欢奖掖后进。其门下最有名的是“苏门四学士”,另外还有“苏门六学士”和“苏门后四学士”之说。 一、苏门四学士 苏轼在《与李昭玘书》中说: 轼蒙庇粗遣࿰…...

MD5算法:高效安全的数据完整性保障
摘要:在数字世界中,确保数据完整性和安全性至关重要。消息摘要算法就是一种用于实现这一目标的常用技术。其中,Message Digest Algorithm 5(MD5)算法因其高效性和安全性而受到广泛关注。本文将详细介绍MD5算法的优缺点…...

JavaScript基础五对象 内置对象 Math.random()
内置对象-生成任意范围随机数 Math.random() 随机数函数, 返回一个0 - 1之间,并且包括0不包括1的随机小数 [0, 1) 如何生成0-10的随机数呢? Math.floor(Math.random() * (10 1)) 放大11倍再向下取整 如何生成5-10的随机数&…...
curl之网络接口
Curl_cftype 连接接口定义 struct Curl_cftype {const char *name; /* name of the filter type */int flags; /* flags of filter type */int log_level; /* log level for such filters */Cu…...

练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...

3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...

Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...