欢迎关注个人公众号摸鱼范式

转载自:https://zhuanlan.zhihu.com/fpga-hw-discussion

作者:知乎用户生的安格斯牛排

写在前面

准备用3-5篇文章的篇幅,将一些必备的技能cover一遍,期望对于入职IC的新同学有一些帮助。这些东西,每一项其实在网络上的介绍资源都非常丰富,但是IC新同学常常面对的问题是,并不知道“原来这个事情是这么做的”。所以,长话短说。

预计的topic list:

  • Shell and Vim
  • 正则表达式
  • Perforce (版本管理系统)
  • Shell脚本套路
  • Tcl脚本套路
  • Perl脚本套路
  • Makefile套路

为什么是这三个语言?

  • 曾几何时,在找工作时候看Job Description,会发现几乎大部分数字岗位都要求“熟练csh/tcl/perl脚本”。当时,天真以为,“反正都是脚本,会一个就能过关了”。实际上有点大错特错
  • 实际上,这三个脚本技能(我不称为技术,因为它们只是工具)是有非常鲜明的针对性的,是都要会的(除了Perl稍微有点复杂,Tcl/Shell巨简单)

Shell (cshell or bash)

  • 具体这两者的区别就不介绍了,应用上来看,就是一些语法细节的区别。cshell对于会C语言的同学,更容易上手一些。而且,在centOS系统中,默认的脚本解释系统是cshell (tcsh)。所以,如果想学,就是从cshell开始吧 (熟练bash的可跳过this section)。

  • Shell脚本的目标:

    • 批量执行linux命令或者其他self-made脚本的wrapper脚本(理解为一个总管)
    • 能吃进命令行传参,配合if/else, foreach等分支,完成简单的组合功能。
  • 优点:

    • 太容易写了,配合linux各种內建cmd (grep, sed, ls, echo, awk, mutt)基本能完成你想做的任何操作,是做批量处理动作的最佳选择。
  • 缺点:

    • 复杂文本处理任务上,没有perl那么轻松,配合sed,马马虎虎,不堪重任。

Tcl

  • Tcl语言,是工具语言 (Tool command language),是一个能直接操作EDA的工具语言。

  • Tcl的目标:

    • 为什么能操纵EDA?

      • 几乎所有EDA平台,都会将开源的Tcl解释系统include到自己的软件系统中,魔改并提供一些自己EDA平台专用的函数(比如dc_shell)。
      • IC公司的Inhouse eda team,也会魔改Tcl,提供一些专用功能的函数(比如nv的tn_shell)。
  • 优点:

    • 其实没啥大优点,它是IC新同学必须会的一种语言,操纵EDA就靠它了。
  • 缺点:

    • 在文本处理和Hash类数据结构的访问上,没有Perl那么方便。

Perl

  • Perl语言其实在互联网界被黑的有点狠,因为它的语言“随意性”真的是太随意了。如果你是C出身,一开始入门这个语言的时候,会头疼到想放弃,使用规则特别的不严谨。

  • 比如:https://www.zhihu.com/question/37944158/answer/77018535

  • 优点:

    • Perl语言对于文本处理和Hash类数据结构的支持,太过强大了。。是一个你绕不过去的语言。
    • 什么是Hash类数据结构?其实Hash (哈希) 的讲解都太高深莫测。说白了,在IC flow中会用Hash这种数据结构,描述很多config类型的数据,并读取。例如:
$cadConfig = {'chip_name' => 'ampere','jtagreg_dir' => 'xxx',
};# 访问的时候,只要:
print $cadConfig->{'chip_name'} , "\n";  # 即可
  • 缺点:

    • 语法不严谨,对于强迫症同学,真的很头疼。

后面的安排

  • 讲解语言其实很费篇幅,但是!我只会从“工具字典”的角度写短文,将三个脚本最常用的code block拿出来,分解讲一下。这样,同学们在使用时候,只需要点开文章,按图索骥即可。没必要remember.

IC入职新同学必备技能手册①相关推荐

  1. 刚入职新公司做一些什么贡献_如果您有全职工作,如何为Kubernetes做贡献

    刚入职新公司做一些什么贡献 当我在IBM产品安全事件响应团队工作时,我于2018年10月开始为Kubernetes (K8s)做出贡献. 我被分布式系统所吸引,但在日常工作中无法与它们合作,因此我的导 ...

  2. 入职新公司,如何快速凸显个人价值

    如果你初入职场,你是否对职场充满好奇与期待:如果你刚刚跳槽,你是否迫切地希望展示自己的才华!当你进入新公司之后,如何能够快速上手工作.融入团队,展现能力,凸显价值? 如果你对新职场存有困惑,以下八个方 ...

  3. 入职新公司第一周的感受

    0.刚参加工作的实习生 1.经过n轮面试,终于进入了大厂 2.入职新公司第一周的感受 3.勤劳的我被工作干扰师打断了 4.摸鱼大王 5.产品经理低头是在想需求吗? 6.好家伙我还以为是作秀,原来是现实 ...

  4. 一年前被恶意裁员,最近入职新公司背调到上家HR,HR竟主动说我坏话,我可以起诉他恶意诽谤吗?...

    背调被上家公司说坏话并不少见,但还没等人家背调公司开口问,就主动说候选人坏话,这样的HR可不多见! 一位网友就遭遇了这样的奇葩: 一年前上家恶意裁员!跟HR僵持过,最近入职新公司需要背调,背调到上家, ...

  5. 刚入职新公司上班需要注意的点有哪些

    新人刚入职,对一切还不熟悉.又怕犯错又怕别人觉得你太冷漠.不知道自己该怎么做,手足无措.那么刚入职新公司上班需要注意的点有哪些?博士后招聘整理了如下的内容供大家做参考. 1.不要试着既快速又完美地融入 ...

  6. 入职新公司-如何更快的适应节奏(第二周要干活)

    刚入职新公司的第一周应该是比较紧张的,因为第一周算是我们熟悉的时间,到第二周有可能就要开始做项目了,甚至有的节奏快的公司也就让你熟悉个两三天后就开始干活了.那么在这短短的几天的时间里,我们应该重点熟悉 ...

  7. 我如何一分钱没花学完AI课程,入职新浪算法工程师

    机械工程专业本科毕业2年 在某灯具公司任结构工程师 月薪10k,晋升无望,涨薪缓慢,学不到新东西 每天日复一日画图建模,机械性工作非常消耗我的热情 行业发展平缓,吃不饱,饿不死 以上,是我下定决心转行 ...

  8. 入职新公司,如何快速上手公司业务?

    最近很多小伙伴入职新公司,问我入职好如何快速上手自己负责的产品,这里说一下自己的看法: 1.了解一下公司的业务逻辑 可以通过请教别人的方式,了解一下公司的业务,请教的时候可以给别人买一杯咖啡啥的,谁都 ...

  9. 入职新公司,如何快速熟悉一个系统

    文章末尾给大家留下了大量的福利 前言 大家都知道我们新入职一家公司,经常会面临下面一些场景: 新人入职,需要学习已有系统,作为 landing 的一部分,如何学习? 被拉过去参与一个陌生系统的迭代开发 ...

最新文章

  1. correlation 蒙特卡洛_蒙特卡洛模拟法及其Matlab案例
  2. Linux关机和重启命令总结
  3. BZOJ2741 【FOTILE模拟赛】L 【可持久化trie + 分块】
  4. python对文件操作的相关函数_python文件操作的相关函数深入理解Django中内置的用户认证...
  5. 案例 显示分数 js
  6. 一个搜集大量网页特效的网站
  7. java基础—统计一个字符串中各个字符出现的次数
  8. centos6.2安装jdk7
  9. Android study week1
  10. 【sklearn第七讲】数据集加载工具
  11. ubuntu中eclipse无法识别android手机问题
  12. t分布 u分布 卡方分布_u分布(u分布和t分布)
  13. c4d打开没反应_野分享:一大波C4D插件的测试以及分享
  14. 如何快捷修改eclipse黑色背景和字体颜色设置?
  15. 如何定义StrokeIt手势 常用StrokeIt手势大全
  16. kali桌面图标和右键菜单系统更新之后不见了的解决方法
  17. strpos php 中文,php substr中文乱码最有效到解决办法 还有strpos不能比较中文
  18. Pixelmator for Mac(强大的图像处理软件)
  19. ‘\0’ ,‘0’, “0” ,0之间的区别
  20. Sulley安装手记

热门文章

  1. 爱奇艺多模态视频人物识别挑战赛项目总结
  2. SprigData-JPA之Query进行复杂查询并映射到自定对象(非数据库字段用@Transient注解)
  3. k8s部署Archery-SQL审核查询平台
  4. 君君学Linux设备驱动第一天之概述及开发环境搭建
  5. 运维之道 | 三剑客之sed命令 - 增删改查排
  6. parallelStream 底层 ForkJoinPool 实现
  7. 中国大学MOOC-陈越、何钦铭-数据结构-2018秋期中考试
  8. AI助力生命科学创新范式变革 正突破新药研发“双十”困局
  9. 软水处理器为什么要及时加盐
  10. 密码加密:哈希(hash)加盐