0基础进入FPGA

[复制链接]
861|0
 楼主| 明德扬科技 发表于 2018-5-5 17:18 | 显示全部楼层 |阅读模式
学FPGA,从哪里开始学起?先来看看需要哪些基础知识吧。要写数字电路、VHDL或Verilog等硬件描述语言、QUARTUS/ISE/MODELSIM等软件工具、脚本语言,甚至还有人认为要学完C语言。O  my  god!这实在太多了!不错,这就是大部分人认为FPGA“入门难”的原因。中国有句谚语,“世上无难事,只怕有心人”。我认为,这句话除了表达做事需要有决心恒心以外,应该还有另外一种理解。那就是:如果一件事情非常的难,或许是因为你还不够“有心”,没有找到正确的方法。
我曾经有一位邻居是一位汽车工业领域的大学教授。他的一生都致力于汽车工业的研究和教学。在动力、材料、电路、制造等方面,专业知识非常深厚。然而,他本人不会驾驶汽车!
举这个例子并非否认基础学科研究的意义和实效,因为如果没有这些,汽车工业不可能发展。准确的说,是根本就无法出现“汽车”这个东西。这里想说明的是,懂得汽车制造的“知识”,与驾驶汽车的“技能”,两者之间不尽相同。如果我们的需要是掌握技能(驾驶汽车),那么懂得汽车原理、制造相关的知识就只属于加分项,而不是必须项。
所以,首先要有明确的学习目的。
    明确学习目的不仅仅是 “能运用IC/FPGA完成项目功能”这个整体的大目的,同时应该贯穿在整个学习过程中。我们应该非常清晰地知道每一个具体项目、架构、模块、信号目的是什么?我们去学的知识点,要完成哪些可以具体的、甚至可以量化的目标?
目的不清晰,就容易出现混乱。先来看下面几个小例子:
    1.语言是基础,学语言总是没错的。那就从Verilog开始吧。买回一堆相关的书籍,花费了很大的时间和精力,终于懂了。进入实际设计,突然发现Verilog很多语法是不能综合的,也没有实际的电路与之对应,在具体的逻辑设计时也不能用,书上又没有明确指出。然后再去买一本与之相关的扩展的书籍学习。最后枯燥的理论知识越来越多,混乱成一团,还是不能设计出项目;
2.按照书上的做法,以普通信号作为always的敏感信号列表。最后编写出错,而且根本不知道错误出在哪里。一直到有人指点,或是工作N年之后才明白:作为理论知识体系出现的专业书籍,全面和系统是基本要求。例如Verilog语法书籍中的很多用法作为知识点是对的,在实际应用中却存在出错的可能;
3.买个开发板,看代码,下载例程看现象。唔,好像会写流水灯代码了哦。接着进入一个实际项目,马上一筹莫展;
……
上面种种现象,究其原因,都或多或少与目的不明确有关系。类似的问题必须先明确。我们完全可以把IC/FPGA设计看做一种“技能”。通过这个技能,高效高质地开发出产品。我们应该围绕“功能”这个目标,提升自己专业技能的高度,然后在这个基础上去扩展宽度。
接下来的问题就是我们需要的是“渔”还是“鱼”?也就是,是掌握到FPGA这种设计方法,还是会写某一个具体的FPGA程序?有了明确的学习目的之后,就需要有正确的学习方法。那么正确的学习方法有哪些呢?敬请关注下一节。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

19

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部