一、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…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
