如何学习EDA?从开源项目开始,抓紧芯片EDA风口!
背景
互连网的浪潮渐渐退去,芯片行业成为了最新的“风口”。这一轮风口能持续多久并不知晓,因为这一轮风口是由世界局势强行带动的,并不符合行业发展。但总而言之,在这个艰难的秋招时节,能多一条路总是好事。
要乘上这个风口并不意味着要转硬件,芯片公司同样有不少的软件岗位,其软件与硬件的需求人数比例大致为1:1(数据为“身边统计学”,没有大数据支持😂)。
能提供的软件岗位主要有:测试,嵌入式,EDA工具开发这三类。前端也有少量需求,但基本没有校招hc。
对于测试和嵌入式,我了解不多,就不班门弄斧了,感兴趣的同学可以自行了解。我主要讲讲我最近在学的EDA(电子设计自动化)。EDA开发的职业情况分析大致如我之前的文章所述:https://www.nowcoder.com/discuss/1014170。在此不做赘述。
开源项目OpenFPGA和VTR简介
OpenFPGA便是一个开源的芯片框架,用于快速设计原型,并进行个性化定制。FPGA(field programable gate array),现场可编程门阵列,是芯片的一种。
OpenFPGA基于另一个开源项目VTR(verilog to routing),这是一个用于FPGA架构设计和CAD研究的框架。verilog是HDL(hardware description language)硬件描述语言,routing是布线。
EDA所作的工作类似于IDE,将HDL综合成布局布线,类似于将C++程序编译为可执行文件。
VTR
VTR包含以下几个工具,分别做以下任务,以下排序为流程顺序。
- Elaboration & Synthesis (Odin II):细化和综合
- Logic Opimization & Technology Mapping (ABC) : 逻辑优化和工艺映射
- Packing, Placement, Routing & Timing Analysis (VPR) : 打包,布局,布线 和时序分析
这里划重点VPR(Versatile Place and Route),这是OpenFPGA中用到的CAD工具。
OpenFPGA
OpenFPGA在继承的VPR之外,另有四部分内容,分别为
- FPGA-Verilog:把XML转化为verilog netlist
- FPGA-SDC:用于进行时序约束 Timing Constraints
- FPGA-Birstream:(1)verilog to bitstream (2)verilog to verification flow
- FPGA-SPICE:用于时序的模拟分析,和功耗的模拟分析
OpenFPGA框架下的大致流程如下所示:
XML -> yosys(ABC) -> VPR -> OpenFPGA的四大组件。
总结
想要深入学习EDA开发,还是要阅读文档,源码和相关的文献,这已经超出了自学能解决的范畴了。秋招想要找一份EDA开发的工作,并不需要如此深入的知识。
对于想要在秋招中,寻求EDA开发职位的同学来说,结合上文的组件介绍,花几个小时仔细阅读一下官方文档,并对整体流程有大致的了解。这在秋招中便已经是一个极大的加分项了。
感谢你的阅读,如有错误,欢迎批评指正。
EDA布线技术 文章被收录于专栏
整理FPGA的EDA工具的布线技术,期待志同道合的朋友