下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
四个步骤玩转FPGAFPGA作为一种高新技术,由于其结构的特殊性,可以重复编程,开发周期较短,越来越受到电子爱好者的青睐,其应用已经逐渐普及到了各行各业。因此,越来越多的学生或工程师都希望跨进FPGA的大门掌握这门技术。网络上各种开发板、培训班更是多如牛毛,仿佛在告诉你不懂FPGA你就OUT啦。那么我们要玩转FPGA必须具备哪些基础知识呢?如何学习FPGA呢?下面我们慢慢道来。(一)要了解什么是FPGA既然要玩转FPGA,那我们首先最重要的当然是要了解什么FPGA。FPGA(Field-ProgrammableGateArray),即现场可编程门阵列。看到编程两个字码农就笑了,不就是编程嘛,那可是我们的强项。且慢,此编程非彼编程。一定要把FPGA的编程和软件编程区分开来。软件的编程,处理器会逐条的把语言翻译成各种控制信号,去控制内部电路完成一个个运算或操作。那么FPGA的编程是怎么实现的呢?无论Altera家还是Xlinix家的FPGA,叫法有什么差异,基本单元都相似,都是由真值表和D触发器构成。改变真值表的值就改变了逻辑功能,再通过和D触发器组合来实现任何时序逻辑。所以我们对FPGA的编程,实际上就是去修改这些真值表和连接关系,使他们组成一张专门的真值表,去实现特定的功能。这和软件编程一步步运行程序有本质的区别。要想玩转FPGA,就必须理解FPGA内部的工作原理,学习如何利用这些单元实现复杂的逻辑设计。(二)正确理解HDL语言HDL(HardwareDescripTIonLanguage),硬件描述语言。通过名称我们能看出来,HDL语言是一种“描述”语言,这一点和C语言是有本质区别的。正确理解描述的含义,对学好HDL语言很有帮助。HDL语言只是用文本的方式把硬件电路描述出来。我们在阅读HDL程序的时候,在脑子里应该能反映出一个完整的硬件电路结构。从另一方面说,我们在编写HDL语言之前,就已经对要实现的电路有清晰的概念。所以HDL语言只是一个描述我们头脑中具体电路的工具,玩转FPGA的根本不是语言而是逻辑电路设计。不要再纠结于我应该学习VHDL还是Verilog,那种语言更好学这些问题。如果把学习FPGA的重点放在学习语言上,死记硬背一些语法,那自然是抓错了重点。语言在日常使用中会越用越熟练,不需要花很长的专门时间去学习。当然一本好的参考资料可以随时方便查询会是很有帮助的。(三)数字电路基础说到底,FPGA就是一堆数字逻辑组合在一起实现特定功能而已。所以数字电路基础知识是根本。如果你连触发器,组合电路,时序电路,竞争,毛刺等等基本概念还莫能两可不清不楚的话,那玩转FPGA只能是痴人说梦的幻想了。我们必须要好好的学好数字电路基础这门课,基本的数字电路烂熟于心。把这些基础打牢固,再往更深的方向发展。什么时候能够从抽象的算法中提炼算法的结构,再分解成具体的模块并通过硬件电路实现出来,这时候就算从菜鸟级别步入老鸟级别了。(四)硬件设计思想这一点应该说是重中之重。学习FPGA,一定要有硬件设计思想。在软件编程的时候,比如1秒钟能实现5次乘法运算,那系统要求1秒钟实现50次乘法运算怎么办,我们会尽可能的优化代码,让代码更简洁更高效,或者提高系统主频,让系统跑的更快。但是在FPGA里面我们不是这种思维方式。在FPGA里实现一个乘法器不够用,那我就实现两个实现三个去满足系统要求;我可以进行流水线设计;串行运行方式不够快了,我可以先串并转换,再并行的做处理……只要FPGA的资源够用,我可以充分利用资源去满足系统要求。因为在我手里的就是一堆硬件资源,我要做的是把他们组合成一个好用的电路。评价硬件描述语言写的好坏的标准和其他软件编程语言的标准是完全不同的。因此一定要摒弃软件编程的一些固有思路,学会用硬件的方式去解决问题。时刻提醒自己正在设计的是一个电路,而不是一行行空洞的代码。这是很多做软件编程的人很难跨过的坎。FPGA学了很久还在纠结到底是用if_else语句好呢还是用case语句好?而不能透过这些语句表面看到他们所具体代表的电路。只有建立了硬件设计思想,才有更深入学习FPGA的可能。如何学习FPGA?笔者经常在FPGA相关技术论坛及FPGA技术交流QQ群解答初学者在学习过程中遇到的技术问题,发现很多初学者都是怀着浮躁的心态来学习FPGA,总是急于求成。在学习FPGA设计技术的过程中,虽然刚开始学习热情很高,但真正坚持下来一直到“学会”的却寥寥无几,除了学生个人毅力的因素外,另外一个重要的原因没有好的学习教程的指引和缺乏正确的学习方法的指导。原本FPGA的学习门槛相对于单片机来说就高了不少,再加上缺少手把手系列的教程资料和正确的学习方法,这就给初学者学习FPGA增添了更多的困难,很多初学者因为找不到入门的方法而渐渐失去了学习FPGA的兴趣和信心。此系列教程主要分为FPGA开发工具的使用、verilog语言学习、FPGA底层硬件解读、SDRAM读写控制、数字信号处理;FPGA开发工具的使用:实例讲解XILINX开发工具Vivado及GOWIN开发工具讲解FPGA开发流程,帮助无FPGA开发经验工程师入门FPGA开发。因为要掌握FPGA这门技术,扎实的理论知识还远远不够,购买一块FPGA开发板,多动手练习实践更显得尤为重要。verilog语言学习:主要让初学者掌握硬件描述语言,结合具体项目实例,掌握verilog用于从门级到开关级的多种抽象设计层次的数字系统建模。通过本篇教程学习主要是让初学者掌握verilog语言。FPGA底层硬件解读:结合XILINX及GOWIN等器件的对比分析,让学员在了解硬件的底层结构中掌握实际FPGA的特点、异同。SDRAM读写控制:原厂实例讲解FPGA,掌握读写操作与写入命令等。同时,指导学员完成基于高云
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年外研衔接版九年级历史下册月考试卷含答案
- 服装购买合同协议书范本(2篇)
- 2025年外研版三年级起点选择性必修1历史上册阶段测试试卷
- 2025年牛津上海版七年级生物上册月考试卷
- 2025年粤教沪科版八年级地理下册阶段测试试卷含答案
- 2025年广东生态工程职业学院高职单招职业适应性测试近5年常考版参考题库含答案解析
- 2025年山东特殊教育职业学院高职单招高职单招英语2016-2024历年频考点试题含答案解析
- 2025年山东交通职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025年安徽城市管理职业学院高职单招职业适应性测试近5年常考版参考题库含答案解析
- 2025年机械员(设备管理与维护)技能资格知识考试题库与答案
- 八年级上册 第三单元 11《简爱》公开课一等奖创新教学设计
- 中小商业银行数字化转型现状及对策研究
- 亲子非暴力沟通培训讲座
- 保险投诉处理流程培训
- JJG 707-2014扭矩扳子行业标准
- 2025财年美国国防预算概览-美国国防部(英)
- 2024年江西省南昌市中考一模数学试题(含答案)
- 《采暖空调节能技术》课件
- 游戏综合YY频道设计模板
- 中兴ZCTP 5GC高级工程师认证考试题库汇总(含答案)
- 大学生创新创业教程PPT全套完整教学课件
评论
0/150
提交评论