FPGA高手请进

我今年大三了,刚开始学FPGA,学的很迷茫。感觉这东西设计的知识太多了,有嵌入式,单片机,汇编语言等等。不知道从哪里开始入手,请从事这方面工作的大侠指点指点。小弟在此谢过。(最好能结合你的亲身经历说说,谢谢)

首先你要明白你究竟想做些什么。我们说C是基于串行结构的编程方式存在的,通俗一点说,就是一条一条的指令顺序执行。而对于FPGA来说,它既然是一种门阵列,你首先要明白的就是它的基本结构,比如什么是LUT,什么是LAB,它们的关系是什么等等。而所谓的VHDL,Verilog,其实只是一种语言,但是你在写代码的时候一定要明白,你所写的东西,是一种硬件结构,而不仅仅象CPU执行C代码那样的一条一条的顺序执行,在高级FPGA工程师眼里,代码就是硬件。比如简单的if,else语句,在C语言中很好理解,但是在VHDL中,if语句很有可能会产生锁存器,导致时序失真,如果你仅仅以C语言那样的观念去学FPGA,很难成为高手。另外,你需要具备的知识,就是数字电路,各种触发器,锁存器,还有Buffer,Ram的结构,以至于后来高端的通讯协议,比如用FPGA来实现一个SPI 或者是Uart通讯协议。另外要明白FPGA和我们传统意义上的CPLD,以及SOC是不一样的,它的缺点就是慢。一切的一切,计数器也好,时序逻辑电路也好,都要基于FPGA的时钟,时钟一旦很慢,协议根本满足不了外设要求的。作为一个学生来讲,尤其是国内的学生来说(我在慕尼黑工大读研究生,这里硬件条件好一些),一块开发板是必须的。但我觉得更重要的是学习高端的东西,关注Altera公司(欧洲的话我比较关注Xilinx)的最新发布的信息和最新技术。再往深里学,可能会用到SystemC来进行modeling。嵌入式是个很大很大的领域,它涉及到电脑技术,FPGA,assembler语言,C语言,单片机,Arm体系结构以及编程,linux设备驱动等应用,QT的UI设计和移植,另外最基本的硬件电路设计Protel或者是Altium等等,内容太多,太广,所以选择一个比较适合自己的领域是最重要的,其它的知识,通过公司里的培训或者项目来进行学习。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-10-10
什么东西并不重要,关键是有一种硬件思想,和C不一样的思想,呵呵。心里要有对于硬件、处理器架构的充分的理解,这样,像单片机、嵌入式,很快就能理解,到时候就是需要什么学什么了。学FPGA应该算是硬件的基础,好好努力吧。等你把FPGA学好了,对于硬件的理解达到一定的高度之后,你会发现,这些东西区别不大。
第2个回答  2010-10-09
呵呵,FPGA有分硬件设计和软件设计,你可以先重点研究一个,就比如说软件设计,先不要把FPGA和其他芯片联系起来,先用FPAG实现几个简单的程序,比如说LED的实验啊,数码管等等,,,当然首先要熟悉一种HDL语言,,然后再做一些扩展,网上有很多例子,也可以先模仿模仿,,推荐你一本入门的教材也是我当初刚学习的教材,,,潘松的《EDA技术实验教材》本回答被网友采纳
第3个回答  2010-10-09
不一定要学单片机的,FPGA就跟单片机差不多,别想太复杂了。最好买块板子,两三百的就行了,照着资料做点小程序很容易的。语言学过C的话都是通的,Verilog更接近C,VHDL也很简单,无非就是if,for语句。
第4个回答  2010-10-08
如果你还没学过单片机,你必须从单片机开始,不然你会感觉很难入手,要在单片机的基础上学习,要想学FPGA,最开始要先学习它的编程语言(VerilogHDL或者其他的)我学的是这个。
相似回答
大家正在搜