问一些关于数字前端的事
想问问这几个问题
1,建库这种,感觉更偏向后端而不是前端?
2,前端需要有什么知识储备以及经历吗?
3,我一个曾在业内公司实习过的朋友跟我说,很多是学计算机而不是微电子的人在那写verilog。事实上是怎么样的呢?
希望大家解惑!
库也有很多种啊,modelsim,dc,pt,icc,里面都有库。
另外哪一个方向都有利弊。
rtl已经被搞水化了。把verilog比作c,不知道害了或者水了多少人。
不过rtl还是需求较大。
做库的话,可能从最开始你就必须建立系统层面,架构层面的思想。
以后转下去,也不会有什么问题。
但是纯在库上做的话,需求较小,尤其国内。
如果你做后端的库,以后往后端发展也不错,国内做的好的人不多,因为培训期的投入较大。
后端和工艺只是越扎实,前端工作越有效。计算机或FPGA出身的一般代码都比较烂
其实只是配合项目,想做一个双轨逻辑的简单一些库,够项目使用就好。
感觉这个偏向后端,但是我更想做前端的事。
主要是这个项目半年做完就好,我还有半年接触前端的一些知识。
但是就怕项目拖得久,没机会做别的前端的事。
所以想了解一下,如果要做前端,需要什么样的知识储备
我也明白这个道理,但是就担心在这个项目上花的时间多了没机会接触前端的事如果想做前端,需要了解什么东西呢?
其实都是距离产生美。
前端如果做的比较好的话,除了专门的数字vlsi的书以外,
最好会一点点模拟vlsi,知道除了0,1之外还有其他东西。
computer architecture或者organization懂一些,现在稍微复杂点的设计都是成体系的,不过也都围绕基本的计算机体系结构。
编程思想有一些,这个对大规模硬件设计的划分,层次化都是有帮助的,写脚本也需要。
dsp知道一些,遇到复杂的东西,知道怎么优化。
剩下就没有什么太大的东西了,就看聪明才智的具体发挥了。
觉得做前端RTL设计的人与写C、做验证最大的区别就在思维方式。
做前端RTL的人用的是并行思维方式,而写C、验证用的是顺序思维方式。
我就是从写C转到做前端的,在转变思维的过程中花了很长时间。不真正经历过这个过程的人是很难理解这种区别的。
如果真的想自己做一些东西,不妨自己试试写一个I2C、SPI、UART这一类的小模块,先仿真,有条件的话就上FPGA与真实的带这类功能的单片机联调试试。你会发现,即使这类很小的模块,要真正做的好也不是一件容易的事情。
同时,你也可以锻炼写验证task的能力,把这些模块的所有触发以及响应条件,都用task写出来,慢慢的就会体会到一些东西。
只有真正动手才能理解,只是看书永远只是纸上谈兵。
还没毕业你急神马呢,技术是有“欲速不达”特性的。可以先和导师交流你的想法,但是随后要踏踏实实做导师安排的工作。
学习前端可以买块FPGA开发板,看看规范、多练代码,从基本功能器件写起,熟练以后慢慢写稍大的协议。SOC、算法、验证可以等代码熟练以后慢慢了解,估计到时候你就有自己的发展方向了。没有人可以精通所有东西,慢慢来吧
做什么工作都是有用的,我之前还做过反向(鄙人嗤之以鼻),不过事实证明这段工作对以后也是有帮助的。
前端也有好多方向,Verilog coding是必须的,貌似有几个方向可以选择:
1.熟悉系统设计,时钟复位啊、存储器啊、内核啊(51、ARM、MIPS)、模块划分神马的(这个貌似需要经验比较多)
2.做协议和算法实现,协议像USB、WIFI神马的,算法需要数学比较NB,同时C++神马的也要精通
3.熟悉验证,VMM,OVM各种库神马的
就知道这么多了,希望能帮到你
硬件设计最好从纸和笔开始。
大结构都设计好了,再翻译成代码。
多看国外优秀教材,养成好习惯。
我也是很困惑。我现在研二了,想学习数字电路设计,正发愁学前端还是后端。不知道这样行不行,先学前端几个模块,然后再学学后端