适合人群: 大学生、研究生及FPGA学习者
点拨FPGA在线课程是明德扬精心制作的视频,采用颠覆性的教学方式,教学与实践结合。现在让我们按着顺序学习FPGA吧,感受FPGA学习乐趣吧!
本节视频是点拨FPGA的课程介绍
点拨FPGA是明德扬精心制作的在线培训课程,同学们只需要一个开发板的价格,就能掌握FPGA,效果就相当于参加培训班,但培训班的价格可是要上万哦。
点拨FPGA总结培训经验,精心安排学习步骤,同学们再不用担心学习有障碍,有困难了。
点拨FPGA配置了众多的练习,同学们通过做练习,逐步掌握FPGA设计技巧,而不必再盲目的学习。
点拨FPGA还有老师在线指导哦,同学们再不用担心学习走弯路了。
Questasim是代码仿真工具,用来验证和调试代码。在FPGA开发的整个流程中,仿真验证的时间占用了绝对部分,因此明德扬科教强烈建议同学们要重视仿真验证的学习。
本节课介绍了questasim的安装和破解方法。由于questasim与modelsim再功能上是一样的,本视频选用questasim,仅仅是因为questasim便于破解。
已经安装过modelsim和questasim的同学,可以跳过此视频。
对仿真软件的版本不作要求。
Quartus是Altera公司的综合软件,用于将RTL代码综合成能在FPGA上运行的电路。
本节课介绍了Quartus的安装和破解方法。为了保持项目工程的一致,避免出现打开工程错误,我们推荐使用9.2版本,这个版本用于学习已经足够了。
已经安装过Quartus的同学可以跳过此视频。
在FPGA设计中,我们通常通过Guartus自带的编辑器输入代码,这在工程不大、代码量比较少时,还能勉强使用。明德扬推荐使用GVIM编辑器,原因如下:
1. 由于FPGA代码大部分是相同的、使用GVIM可以方便复制;
2. 由于FPGA代码都是并行执行的,阅读FPGA代码时,经常需要在不同信号间跳转,而GVIM有非常强大的跳转功能,阅读代码非常方便;
3. 明德扬提供很多模板,如设计module模板、测试文件模板等,可以极大提高设计效率,这些模板要求安装GVIM;
4. 业界中,GVIM是最常使
工具安装好了,那我们就正式开始学FPGA吧。
首先,同学们Quartus软件的使用方法,不用太复杂的功能,只要学会建立工程、选择器件、配置管脚、加载就足够了。其他Quartus功能,连概念都不清楚的话,学来也没用,后续练习用到时,自然会讲的。
本节课明德扬通过第一个上板例程,介绍了quartus的使用方法。大家也跟着来模仿一遍吧。
学完了第一个上板例程,感觉Guartus也挺简单的吧,是不是觉得自己掌握了呢?别急,明德扬科教认为,只有去动手了才能真正掌握。现在就开始我们的第一个练习吧!请按要求做完,如果有困难,先思考。完成后,可以看下配套的答案视频,检验下结果。
通过第一个上板例程,介绍了quartus的使用方法。例程下载路径:
https://yunpan.cn/cHRC6ZIfPXdmR 访问密码 a101
QuartusⅡ使用练习1练习答案,主要讲述了配置管脚的方法。
建议实现功能后,再看这个视频。
初步接触FPGA的同学,对FPGA的代码都不是很了解。本节课通过讲解一份verilog代码,介绍一个module文件的各个部分,如端口申明、信号定义和主体程序。
同学们通过本节课的学习,对FPGA程序有一个感性认识。特别是要读懂主体程序。
通过verilog代码详细讲解,是否读懂程序了呢?明德扬培训时发现,很多同学声称已经完全读懂了,但实际却相差很远。
本节课的练习,改变一些小功能,从而检验您对代码的理解程度,加深对信号位宽的理解。
本节课练习,在例程的基础上,改变计数的时间,从而加深对计数器的理解,并理解信号之间是如何关联起来的。
本节课的练习更进了一步,在例程基础上,不仅改变了时间,还要改变LED闪烁情况。巩固对代码的理解。
本节课的的练习又难了一点,在例程的基础上,增加了输出信号。本节课需要您修改包括端口、信号定义、配置管脚、编写代码等。通过这一个练习,真正理解了这一分参考代码。
modelsim是FPGA代码的仿真工具。FPGA代码编写后,通常需要通过软件仿真,确定代码逻辑正确后,才加载到FPGA板上运行。业界有一句话,“没有经过验证的代码,都是有问题的代码”,直接编写的代码,99%都会出现问题。
在学习verilog之前,我们首先学习modelsim的使用。因为后续的代码,您都必须经过仿真,亲自检查发现代码的问题。如果没有仿真,您都不知道代码写得如何,出了问题也不知道如何处理。
本节课介绍了modelsim建立工程、编译、加载以及产生信号波形的方法,是modelsim
本节课介绍了modelsim观看信号波形的方法。观看信号波形的方法,很多其他课程都没有教这个内容,可能认为这个比较简单。但实践证明,很多同学还是需要花一定时间和精力,才能理解的。
明德扬将波形观看的方法,做了总结,同学们可以不理解原因前,先按这个方法观看波形,后续学习到时序,就自然会懂得这些道理的。
本节课对一份有错误的代码进行仿真,通过仿真找出错误。通过仿真找出错误和改正错误,这也是FPGA开发中的日常工作。巩固此练习,熟悉modelsim工具的使用,并熟悉观看波形的方法。
通过第一个上板例程,介绍了quartus的使用方法。例程下载路径:
https://yunpan.cn/cHRC6ZIfPXdmR 访问密码 a101
本节课继续对有错误的代码进行仿真,通过仿真找出错误和改正错误。但这个代码比练习1的较难,从而继续巩固modelsim工具的使用和观看波形的方法。
下载路径:
https://yunpan.cn/cHvCFCZafGcsE 访问密码 7152
本节课继续对有错误的代码进行仿真,通过仿真找出错误和改正错误。但这个代码难度继续加深,从而继续巩固modelsim工具的使用和观看波形的方法。
下载路径:
https://yunpan.cn/cHvazGnxIbNdG 访问密码 6c2e
本节课继续对有错误的代码进行仿真,通过仿真找出错误和改正错误。前面的练习,一般只有一个错误,而本练习有多个错误,需要您充分理解代码,才能改正错误。
下载路径:
https://yunpan.cn/cH2gY2jrb6WbJ 访问密码 3cf2
下载路径:
https://yunpan.cn/cH2gY2jrb6WbJ 访问密码 3cf2
本节课继续对有错误的代码进行仿真,通过仿真找出错误和改正错误。前面的练习,一般只有一个错误,而本练习有多个错误,需要您充分理解代码,才能改正错误。
下载路径:
https://yunpan.cn/cH2AWxjqZr7wK 访问密码 35c1
大家开始学习verilog。
相信绝大部分的同学学习FPGA,是从verilog开始学起的。Verilog的书籍很多,例程也很多。但很多书籍都是从语法层面上讲述verilog,而同学们也是很精心第研究各种语法的使用,研究哪些语法更好,用哪个语法会使代码量更少等等。
但其实FPGA设计用到的verilog语法非常少,用来用去就是always语句、if else和case。其他语法基本上没怎么使用,甚至很多企业制定出很多规范,只允许使用其中的一点点语法。
同学们花很多的精力去研究各种v
通过模块例化,可以实现FPGA开发的自顶向下的设计和模块的复用,模块例化是必须掌握的方法。本节课讲述了模块例化的概念和方法。尤其注意例化时的参数传递。
本节课讲述了代码中会使用到的运算符,如加减乘除、左移右移等。注意的是除法和求余要慎用。
同学们只需要理解即可,明白有这个运算符,通过后面的练习,大家就很容易掌握这些知识的。
通过一个简单的例子,讲述如何编写一个模块的代码。请按照电路图编写出此代码。通过此练习,建立起电路和verilog的对应关系
本节课提供一份代码,同学们对代码进行编译,查找和修正编译出现的错误。通过修改错误,来理解代码,因为明德扬认为,只有从错误中学习,印象才最深刻,效果也最好。
本节课提供一份代码,同学们对代码进行编译,查找和修正编译出现的错误。通过修改错误,来理解代码,因为明德扬认为,只有从错误中学习,印象才最深刻,效果也最好。
本节课提供一份代码,同学们对代码进行编译,查找和修正编译出现的错误。通过修改错误,来理解代码,只有从错误中学习,印象才最深刻,效果也最好。
本节课要求同学们根据电路图编写代码。通过此练习,固定电路和verilog的理解。
有同学会问,为什么要将电路和verilog对应起来?因为FPGA设计与软件设计不同,软件设计从来不需要考虑硬件问题,而FPGA设计本质上是数字电路设计,正确的思维是心中有数字电路图,然后通过verilog表达出来。深刻理解这个过程,决定了您掌握FPGA的程度。曾经见过一些有两年FPGA工作经验的人,从不考虑数字电路,结果还是FPGA新手,很快被工作几个月的人超越。
本节课要求同学们根据电路图编写代码。通过此练习,固定电路和verilog的理解。
通过前面内容的学习,同学们可以发现,verilog的很多内容是重复的,代码结构都差不多。
对于这些重复的内容,没必要都敲代码,那多费时间。为此,明德扬精心制作了一些模板,同学们可以通过命令,快速调用模板出来,提高效率,学习的精力用到在刀刃上。
本视频讲述通过命令Module快速调用module模块。
测试文件是用来产生测试激励的文件,通过模拟信号,产生激励,加载到被测模块中,就能观察被测模块的正确性。
本节课介绍了testbench的编写技巧,包括Testbench的结构、激励的产生方式等。
精心制作的测试文件模板,方便大家调用,同学们再不用想文件有哪些部分了。
本节课要求同学们编写一份简单的测试问题,固定前面测试文件编写的知识。
FPGA最大的应用领域是通信,通信常采用包文的格式传递数据,例如IP包文、以太网包文等等。将包文的概念应用到练习中来,约定成俗一些信号的定义,从而较少后续练习对功能的歧义。在功能明确的前提下,同学们才能专注于练习,否则花大量的时间理解和解释功能,非常得不偿失。
本节课重点讲述包文的概念,请同学们反复观看学习,务必掌握。
本节课要求同学们编写一份测试文件,按要求产生所需要的信号。同学们只要按格式要求填写即能完成练习。
"本节课要求同学们编写一份测试文件,按要求产生所需要的信号。本练习在上一练习基础上增加了数据递增的要求,可能需要用到for循环。
"本节课要求同学们编写一份测试文件,按要求产生所需要的信号。本练习在上一练习基础上增加了数据随机的要求,使同学们掌握$random的用法。
"本节课要求同学们编写一份测试文件,按要求产生所需要的信号。本练习在上一练习基础上增加了概率的要求,使同学们掌握$random如何产生有概率要求的信号。
本视频重点讲述明德扬的规范,会要求大家使用固定的几个语法去设计电路。其他语法有些就是永远不允许使用,有些是等同学们练到一定程度后,才允许使用。
明德扬要求同学们“一个always只设计一个信号”,不是为了代码好看,而是通过这个强制的要求,让同学们使用正确的设计思维。后续的思路都是按照这个要求来讲解的,请同学们务必掌握。
时钟和复位关系着整个FPGA系统的稳定,没有好的规范,系统是很容易崩溃的。曾经见过有同学为了检测信号的上升沿,把信号放在always的敏感列表里(接到时钟上),这是非常错误的做法!
本视频讲述时钟和复位的规范,要求同学们必须遵守此规范!无论任何原因,如设计更简单等,都不是违反此规范的理由。请相信,遵守此规范,是可以设计出功能电路出来的。
组合逻辑的条件一定要补全,否则会产生不希望的锁存器。例如有if 就一定要有else,case一定要加default等。请同学们时刻遵守。
本视频要求同学们设计一个module,同学们通过此练习,来体会一下"一个always只设计一个信号"的思考过程及好处
前面已经介绍了多个明德扬的模板,本视频将所有的模板汇总起来,供同学们查询和掌握。
IC设计领域最常用的编辑器,可以极大提高编写代码效率,介绍了一些常用的命令。这些命令足以应付大部分场合。
FPGA的在线调试工具。当发现上板与仿真不同时,就要用到此工具了。强烈要求同学们掌握。
后续将补充练习。
signaltap是quartus自带的在线调试工具,它是除了modelsim外,最常使用的工具。
请深刻理解下面的使用场景“当仿真正确,但上板不正确时,使用signaltap抓取FPGA的内部和管脚信号,从而定位和发现问题”。
当上板不正确时,同学们一定要先用modelsim去仿真,去找出错误。如果仿真还是正确,说明测试文件的激励有部分我们没想到,或产生的激励与实际的不符。此时,再用signtap来抓信号。
千万不要只用signaltap,而不用仿真,这样会耗费很多时间的。
本节课,明德扬讲述
FPGA代码最常使用的功能模块是哪个呢?是状态机、乘法器、加法器、计数器?答案就是计数器!几乎我们的每个设计都要用到计数器,用来计算接受或发送了多少个数据,用来衡量用了多少时间,用来做选择信号等等。可以这么说,只要掌握了计数器的设计精髓,也就基本上掌握了FPGA。
但同学们使用计数器很多都比较随意,例如初始值随便给,加1减1条件混乱、计数结束条件不明确等,甚至还有本来要计8个数,结果计到了9个,但又觉得无所谓等等。这些都是不规范的使用方法。不规范的计数器,不仅使代码杂乱、冗余,而且使调试和定位问
本视频是计数器练习1的说明,请大家按照练习要求完成设计。要完成后才能看答案哦。
本视频是计数器练习2的说明,请大家按照练习要求完成设计。要完成后才能看答案哦。
本视频是计数器练习3的说明,请大家按照练习要求完成设计。要完成后才能看答案哦。
本视频是计数器练习4的说明,请大家按照练习要求完成设计。要完成后才能看答案哦。
本视频是计数器练习5的说明,请大家按照练习要求完成设计。要完成后才能看答案哦。
本视频是计数器练习6的说明,请大家按照练习要求完成设计。要完成后才能看答案哦。
本视频是计数器练习7的说明,请大家按照练习要求完成设计。要完成后才能看答案哦。
暂无课件
共58节 · 13小时56分钟
¥380.0020609人在学
共28节 · 9小时套餐优惠
¥28.0015465人在学
共10节 · 6小时34分钟套餐优惠
¥29.0014590人在学
共42节 · 7小时6分钟
¥149.0021183人在学
评价
给该课程打分: