700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【一起学Verilog】104 东一榔头 西一棒槌

【一起学Verilog】104 东一榔头 西一棒槌

时间:2023-01-20 19:07:41

相关推荐

【一起学Verilog】104 东一榔头 西一棒槌

有位学生朋友发了条微信私聊,说IC相关的知识点太多了,又是git,又是Linux,又是EDA软件,还没开始看Verilog就已经一头雾水了。

是的。

某种意义上说,IC前端设计工程师需要的技能是全面的,或者说是零散的。

除了这位朋友提到的一些基础知识准备,真的深入学习代码的时候,还会发现很多领域专业(domain-specific)知识。

比如要深入学习蜂鸟开源内核,就需要了解计算机体系结构,了解CPU基本设计思路,了解软件代码经过编译、链接、以及在CPU上执行的过程。这些知识点都是在Verilog之外的。(推荐一本非常厚的书:CSAPP)

如果要学习人工智能相关的硬件加速器设计,需要了解一些神经网络基础原理,一些通用框架的基本用法,比如Caffe或者TensorFlow,能够自己尝试着运行一两个开源的demo程序,然后还会涉及到乘法器、加法器、Cache、总线、以及软硬件结合的一些调度方案。

以上的每一个专有技术名词,都会需要投入时间和精力去搞懂,然后才会建立起对应的产品相关的技术框架,然后在具体芯片设计中进行平衡考虑,设计出满足应用需求的产品。

这个过程有点像计算机程序的堆栈处理过程。从主函数开始起,本来是要学习开源蜂鸟的内核代码设计,然后发现需要使用Git,就去学习一下,学会了再回来,然后发现需要搭建Linux和EDA环境,又去学习一下,学会了再回来,然后发现需要学习计算机体系结构的基础知识,再去学习,再回来…

每一次遇到新的知识点,要注意保护现场,记得最开始学到什么地方了,最终的目标在什么地方,当然,堆栈的深度要考虑清楚。

要深入地学习一门技术,东一榔头,西一棒槌是不行的,要有恒心,有方法。

[005] 统计一下rtl目录的代码行数。2 分钟

# 切换到rtl代码目录cd /SI-RISCV/e200_opensource/rtl/e203# 统计代码行数find . -name "*.v" | xargs wc -l

亲自试一下,看看一共有多少行代码需要阅读?

其中有一大半代码是在perips目录下的,那些是使用Chisel转换出来的代码,类似于netlist一样,所以行数很多。

去除perips目录,再去除代码中的注释,空行,还有端口声明,变量定义等,真正的逻辑相关代码有多少行呢?

# 排除 ./perips目录find . ! -path "./perips/*" -name *.v | xargs wc -l# 去除注释find . ! -path "./perips/*" -name *.v | xargs cat | grep -v // | wc -l

如果每天阅读100行代码,需要多少天能看完呢?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。