第1个回答 2012-06-21
学习这种东西,最好是在公司或者研究所里做项目。首先明确一点,就是IC分成宏观的设计和微观的设计,比如说做一个宏观的项目,设计一个简单的秒表,那么你可以用FPGA来实现,这种东西属于IC的范畴,但不是说你会这么点微末的东西就说你是搞IC的了。当你拿到一块TI的芯片之后,你看它的Datasheet,里面有很多应用的电路,数字电路终归是要由模拟电路来搭建的,那么什么是IC呢,你可以说它是集成电路,这个没错。但是,这些东西的基础就在于你对半导体技术,半导体工艺,射频微波,高频IC的掌握,这个没有10年的研发功力,不要去想了。电子业拼的就是工艺和架构。频率越来越高,那些传统的设计思路和架构都要随之改变,芯片逐渐变小,功能越来越强,试想,芯片里的两个导体在相距28nm时,在频率达到100MHZ以上时会出现什么情况呢,这些东西不是说你看点书就能学到的。IC设计,千万别说是搞IC的,因为它真的是太难了。如果想学,我推荐你去TI或者去英飞凌做实习,然后慢慢学习,这些公司都是世界顶级的IC芯片设计公司。我在英飞凌做的是FPGA和ARM的研发,做的也是宏观的东西,其实已经很头疼了。想接触到最尖端的东西,在外企,就更难了。我建议你不要把FPGA看成是编程,而是一种hardware implementation。在德国,企业在招聘启事中都会写Hardware Entwicklung(硬件开发) ,然后要求是Fpga ,VHDL/Verilog Kenntnisse。可见在工程师眼中,FPGA的开发是硬件开发,而不属于软件范畴,尽管你是坐在电脑前完成的。
要说的是,首先明确自己的学习目标,嵌入式是个大的范畴,所以不要对自己说我是搞嵌入式系统的,要更细化自己的目标,比如我就要学习ARM在linux下的驱动程序开发,或者我就编写Can Bus协议等等,然后在实际的工作中再去扩展所需要的东西。作为工程师,没有项目来做,就相当尴尬了吧。还有学东西要有很大的关联性,比如我看到你说你会Matlab和FPGA,这两个东西不能说毫不相关,也有不少领域需要交叉移植,可是毕竟这两个东西关联性不是特别的大,所以学习起来很孤立。还有你说你会数字信号处理(DSP),这个我想很多工程师都不敢说对DSP很熟悉,这也是个变态的领域呵呵。当你完全掌握了FPGA的开发流程,并且开发过几个中大型项目(5000行代码或者更多,这个标准是BMW AG Automobil定义的)之后,你就可以算是一个合格的硬件工程师了,不过已经很幸福了,软件工程师至少10000行代码才算出道呵呵。知识没有界限,学会放弃一些冷门的东西,学习一些流行的东西,并为之努力,做自己喜欢做的事情,才能做好在别人眼里枯燥无味的工作。
第2个回答 2010-09-08
我觉得首先FPGA中verilog编程不是一般意义的编程。需要从硬件角度思考问题。
所以看别人程序最好从系统结构开始,搞懂功能。即各个module是干什么的,如何与其它module连接起来完成功能,弄出一张系统框图。然后再看各个module具体怎么实现的。
这是一个痛苦的过程,看别人的程序不如自己写,呵呵。
貌似你是打算学习数字IC设计或者只是FPGA设计,所以需要学习:
1,verilog语法,coding style。网上资料很多,不要小看简单的例子。呵呵
2,FPGA的内部结构。这个比较复杂点。
第3个回答 2010-08-31
没办法硬件的东西都是比较容易出错,我也学习过一段时间FPGA,就算是下载程序的时候有时都会出问题,最后自己总结了每次下载完都要把下载线断掉,下次再连才能下载,可能是因为静电的原因。说这些只是想告诉你必须坚持下去,要是感觉学习没有方向可以找一些研究生的毕业设计来做,可能只是做一部分不必全做(在学校图书馆的中国知网上找)。希望你能成功
第4个回答 2010-08-30
说真的,本科的那点基础对于IC设计简直太皮毛了。
基本上研究生的工作是ic设计的起点。
搞数字还好点,模拟则需要更长的时间。
不知道你要学什么。。。