周立功博客——给大学生学习ARM和FPGA的建议_第1页
周立功博客——给大学生学习ARM和FPGA的建议_第2页
周立功博客——给大学生学习ARM和FPGA的建议_第3页
周立功博客——给大学生学习ARM和FPGA的建议_第4页
周立功博客——给大学生学习ARM和FPGA的建议_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、0 周立功博客 给大学生学习 ARM 和 FPGA 的建议对于初学者来说,要学的知识点很多,到底从哪里下手,人们常常感到非常迷茫。大一学生先从C语言开始入门,在大一阶段由于对计算机还 非常陌生,因此不可能写出一个具有完整图形界面的软件,重点以 “与 硬件无关的计算方法、数据结构 ”为基础学习 C 语言,至少练习编写一 万行 C 代码,否则不会找到编程的感觉, 也体会不到编程乐趣, 很多人 就是因为缺乏一定量的训练, 所以对编程没有兴趣,以至于未到毕业时 就全部忘记了,程序设计是一项实践性很强的实践活动,没有大量的实 践作为基础是很难入门的, 因此我认为编写一万行代码是判定是否入门 的依据。请初

2、学者记住:当你编写了一万行代码时,这是你能够从事专 业的开始,否则你不要期望在这个领域混下去。与此同时, C 语言也是 学习和使用 Verilog 的重要基础,所以千万不可小视 C 语言。更重要的 是,如果你的 C 语言不好的话, 你将来就业选择的路子就会受到很大的 限制,要么只能做硬件工程师、销售工程师或者转行,别无选择! 有了一万行编程的经验后,大二接着开始学习数字电路和模拟电路了, 这是你的机会!将来的开发工作有几种选择,但这两门都很重要,学好 了你有可能成为顶尖的高手、 专家和系统级水平的人才,即便学得不太 好,你也有可能成为一个优秀的工程师。前一篇博文讲了,如果你精通 了 C/C+

3、,即便你的硬件水平一般, 你也可以成为一个优秀的开发工程 师,即由硬件工程师负责逻辑电路和模拟电路的设计, 由你来编程 你可以编写基于 WinCE 、Linux 、Vxworks 或者 Windows 等操作系统 的程序。那么怎样才算基本上 “精通 ”呢?至少编写五万行代码,当你已 经编写了 10 万行代码时,可以说你已经完全精通了,这个时候你如果 有很大的造化的话, 那完全取决于你当初学习的基础是否牢固了。 所以 我在前面提到了, 精通一门可以成为优秀的开发工程师,但绝对不可能 成为系统级的开发工程师,因为你的知识结构不行。 最好在学习数字电路时购买一个 99 元的 EasyFPGA030

4、开发学习板, 这个板子是我们开发的, 但这个价格是没有利润的,不要认为我是在做 推销,我们推出这个产品完全是针对大二学生的, 希望有更多的大二学 生提早醒悟,能够在学习数字电路时同步学习 FPGA 和 Verilog ,强化 课程之间的关联。 笔者虽然是一个企业家,但也有一份爱心和社会责任 感,为社会做出自己的贡献同样也是企业家的 “销售业绩 ”,我们为这个 开发板撰写了 30 万字的配套资料和适合各种水平的范例,也投入了大 量的精力录制 Verilog 语言视频讲座,这些都是超值和免费的。与此同 时从 2009 年开始着手针对大二和大三学生举办 FPGA 大赛,以提高在 校大学生的兴趣, 让

5、那些觉悟者进一步提高自信心,找到自己未来的坐 标。学好数字电路和模拟电路以及 FPGA 应用技术, 除了成为电子产品 开发工程师之外(高附加值的嵌入式系统产品几乎离不开 FPGA ),还 有一个就业方向就是号称 “金饭碗 ”的集成电路设计。 作为初学者,在学习电子技术基础(数字部分)时同步学习 FPGA 与 Verilog 技术的重点是快速入门和打下一定的基础,根据配套的教材 和数字电路教材的内容将基本的数字电路用 FPGA 实现即可,这是本阶 段的学习目标,不要将学习高深难度的应用技术作为重点。 并利用课余 和暑假期间的空余时间, 将一些图书上现成的使用数字电路实现的例子 用 FPGA 来完

6、成设计即可,比方如何使用 FPGA 实现一个计数器,并 动手做出来。到大三阶段在做出选择,到底是选择成为一个专业的 FP GA 应用设计工程师、 还是嵌入式系统与 FPGA 混合应用系统设计工程 师或集成电路开发工程师,以自己的兴趣和志向为基础而定, 所以在学 习嵌入式系统技术的同时学习 FPGA ,两者之间并不矛盾。 最好在大一开始学习单片机, 这就是笔者为何撰写 新编电类专业计算 机基础这本图书的原因(详见破解电类专业 “就业难、人才荒 ”的解决 方案!( 4)。因为大一不学习单片机,后面的课程都没有办法学好。 对于大一学习单片机,很多老师不去用心研究学习方法和教学规律,反 而搬出一大堆理

7、由来 “吓唬 ”人。笔者当年仅仅是一个技校生,在完全没 有指导老师的情况下,也找不到可以参考的技术资料, 只是凭着偶尔看 到一篇报道罗伯特设计的 Altair 8800 计算机就做出了一台不需要工作 软件的计算机 (改进型的 Altair-80C31 电路详见 新编电类专业计算机 基础教材)。要相信现在公开的信息、资讯条件、人们的聪明智慧与 教师的力量, 因此大学本科生在大一阶段学会单片机是非常容易的一件 事情。 有了单片机基础之后,在大二阶段学习数字电路与模拟电路的同时,结 合单片机学习接口扩展技术与模拟前向通道数据采集技术, 并编写相应 的程序实现一个一个的小系统设计, 大三时根本不再需要

8、学习所谓的接 口技术与微机原理了。 针对数字电路与模拟电路笔者准备写作一套小系 统设计与制作配套图书, 将前后之间的课程也同步和关联起来,期望进一步提高大学生的动手能力。有了大一、二阶段强化训练, 后续的很多课程度可以理论与实践并重地 学习,比方目前大学开设的自动控制理论几乎都是空对空地教学与 联系,如果结合自动控制理论的教学, 让学生学习设计一个自动穿越迷 宫的电脑鼠,并举办相应的大赛, 则能够很好地将嵌入式系统应用技术、 数字电路与模拟电路、计算方法与数据结构、机构设计 相关课程有机地结合起来,学生的兴趣将大大地得到提高。 当学生有了学习的兴趣和动力之后,教学势必由老师个人在课堂上演 “独

9、角戏 ”的场面转变为研讨会,学生也一定会竭尽全力由被动学习向主 动学习转变, 这就是教育要达到的目标, 所以我们不能一味地指责学生 不好学。 作为老师我们一定要思考和拿出行动,让学生喜欢并愿意向您 学习。事实上学生的未来完全取决于老师的引导, 现在教师队伍存在的 很大毛病就是将责任推向扩招和学生不好好学, 扩招有没有问题?当然 有,但作为教师我们做得怎么样呢?我们是否在教学上做出了巨大的努 力,这需要我们扪心自问。 学生不好好学,这也是事实!但也是表象,我们要思考他们为什么不好 好学习?我们应该怎样才能让他们好好地学?作为老师, 第一不能给学 生划定考试范围, 第二学生缺课要坚决扣分, 如果做

10、到这两点基本的要 求,学生不好好学就制度处理,我想效果会有很大的改变。当然就业难 的责任也不能完全推给老师, 但老师们应该做到自己该做到的,因为家 长都希望老师们对他们的子女严格要求, 更迫切的需求就是让他们的子 女学到真本事,他们肯定支持教师的行动。进入大三阶段则需要有选择地重点学习嵌入式操作系统原理与编程、 嵌 入式系统与 FPGA 的混合系统设计或者全力以赴钻研 FPGA 应用技术 等技术方向, 大四阶段就可以真刀真枪地完成一个漂亮的毕业设计,并 能够写出一篇比硕士水平还要高的论文。FPGA 在目前应用领域非常,在目前的单板设计里面,几乎都可以看 到它的身影。从简单的逻辑组合,到高端的图

11、像、通信协议处理,从 单片逻辑到复杂的 ASIC 原型验证,从小家电到航天器,都可以看到 FPGA 应用,它的优点在这里无庸赘述。从个人实用角度看,对于学 生,掌握 FPGA 可以找到一份很好的工作,对于有经验的工作人员, 使用 fgpa 可以让设计变得非常有灵活性。掌握了 fpga 的设计,单板 硬件设计就非常容易(不是系统设计) ,特别是上大学时如同天书的 逻辑时序图,看起来就非常亲切。但 fpga 的入门却有一定难度,因 为它不像软件设计,只要有一台计算机, 几乎就可以完成所有的设计。 fpga 的设计与硬件直接相关, 需要实实在在的调试仪器, 譬如示波器 等。这些硬件设备一般比较昂贵,

12、这就造成一定的入门门槛,新人在 入门时遇到一点问题或者困难,由于没有调试设备,无法定位问题, 最后可能就会放弃。 其实这时如果有人稍微指点一下, 这个门槛很容 易就过去。我用 FPGA 做设计很多年了,远达不到精通的境界,只是熟 悉使用,在这里把我对 fpga 的学习步骤理解写出来,仅是作为一个 参考,不对的地方,欢迎大家讨论和指正。1、工欲善其事,必先利其器。计算机必不可少。目前 FPGA 应用较多的是 Altera 和 xilinx 这两 个公司,可以选择安装quartusll或者ISE软件。这是必备的软件环境。硬件环境还需要下载器、目标板。虽然有人说没有下载器和目标 板也可学习fpga,

13、但那总是纸上谈兵。这就像谈女朋友,总是嘴上说说,通个电话, 连个手都没牵,能说人家是你朋友?虽说搭建硬件 环境需要花费,但想想,硬件环境至多几百元钱, 你要真的掌握 FPGA 的设计,起薪比别人都不止高出这么多。这点花费算什么?2、熟悉 verilog 语言或者 vhdl 语言 ,熟练使用 quartusII 或者 ISE 软件。VHDL 和 verilog 各有优点,选择一个,建议选择 verilog 。熟练使 用设计软件,知道怎样编译、仿真、下载等过程。起步阶段不希望报一些培训班,除非你有钱,或者运气好,碰到 一个水平高、又想把自己的经验和别人共享的培训老师,不然的话, 培训完后总会感觉自

14、己是一个冤大头。 入门阶段可以在利用网络资源 完成。3、设计一个小代码,下载到目标板看看结果 此时可以设计一个最简答的程序,譬如点灯。如果灯在闪烁了,表示基本入门了。如果此时能够下载到 fpga 外挂的 flash, fpga 程序 能够从flash启动,表明fpga的最简单设计你已经成功,可以到下一步。4、设计稍微复杂的代码,下载到目标板看看结果。可以设计一个UART程序,网上有参考,你要懂RS232协议和fpga 内置的逻辑分析仪。网上下载一个串口调试助手,调试一番,如果通 信成功了, 恭喜,水平有提高。进入下一步。5、设计复杂的代码,下载到目标板看看结果。譬如sdram的程序,网上也有参考,这个设计难度有点大。可用 串口来调试sdram,把串口的数据存储到sdram,然后读回,如果成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论