(1)课程简介
本课程以目前流行的Xilinx 7系列FPGA的开发为主线,全面讲解FPGA的原理及电路设计、Verilog HDL语言及VIVADO的应用,并循序渐进地从组合逻辑、时序逻辑的开发开始,深入到FPGA的基础应用、综合应用和进阶应用。
课程紧密结合数字电路课程,对数字电路的实现进行验证,并提供了数字设计开发的平台。课程的Verilog HDL语言部分和C语言比较类似,因此可以借用C语言的一些知识来快速学习Verilog HDL,但硬件设计和软件是不同的,对其区别性在本课程中会重点强调。
本课程具有理论和实践紧密结合的特点,在内容的设计上既重视基础理论知识的认知过程,又通过由易到难的19个实践逐步提高理论知识及培养开发能力。通过这门课程的学习,可以达到的FPGA开发初级水平。
配套MOOC课程,电子科技大学“数字逻辑设计及应用”,负责人姜书艳。本课程和该课程可同步学习或在该课程之后学习。
(2)课程的4条主要线索:
第一条线索是工程, 19个由易到难循序渐进的工程实例分散在第三章开始到第七章。例如最简单的工程是多数表决器,就是第三章组合逻辑设计实践的第一个工程,非常适合入门,通过这个工程掌握开发的各个步骤,巩固HDL语言,因此是“我的第一个工程”。最后一章的工程是实现多通道电压表和简单的示波器,就需要大量的逻辑处理,调用前面工程实现的模块和IP,最后为了调试加入的VIVADO内置逻辑分析仪解决调试方面的问题,难度与一般的工程应用接轨。
第二条线索是工程Verilog HDL的学习。在第二章是关于Verilog HDL的基础内容,虽然精简但是包含了所有核心的内容。读者完全通过只学习本课程中Verilog HDL部分就能完成所有的基础的FPGA设计开发。对于在工作中遇到需要特殊解决的问题,可以通过百度等手段查找资料或参考其他书籍和文献。
第三条线索就是VIVADO的开发,包括了VIVADO安装、工程和文件的组织、综合实现及下载、管脚约束、仿真、电路查看、IP核的使用和设计、VIVADO下XADC及BRAM的开发、内置逻辑分析仪的使用等等。VIVADO的开发单先简单在第二章的最后部分描述,然后在后续章节的实践中进行的应用,逐步掌握VIVADO。
第四条线索是数字电路的应用,因此第三章是组合逻辑设计,第四章是时序逻辑的设计。我认为数字电路是学习FPGA的基础,而通过FPGA实践能够真正掌握数字电路。
(3)课程章节内容:
第一章是FPGA的原理和电路设计,因此后续的开发需要知道管脚的分配,所以将电路设计放在最前面。
第二章是Verilog HDL以及VIVADO的简介。
第三章是组合逻辑设计,包含了“我的第一个工程”--多数表决器。
第四章是时序逻辑,通过第四章的学习后,学生如果认真实践,对数电的理解和掌握会加强,对FPGA的开发也有点熟练了。
第五章是实践部分。实现流水灯、数码管动态显示、VGA显示工程、行列按键识别及消抖、电子秒表,音频播放等,进一步提高开发和应用能力。
已更新增加BRAM和 电压表及示波器、图像识别等内容。
第六章是进阶部分
已添加新版考试
1.掌握最新FPGA基本原理和电路设计,应用和巩固数字电路知识,学会并熟练使用VerilogHDL硬件描述语言,掌握在VIVADO环境下使用VerilogHDL进行Xilinx FPGA开发的方法,通过一系列的从简单到有一定难度的实验培养FPGA开发能力及综合工程实践能力。
2.培养合格的硬件开发工程师。
3.通过翻转课堂,培养沟通和团队合作能力。
电路分析基础、数字逻辑设计及应用
教材:“Xilinx FPGA原理与实践—基于VIVADO和Verilog HDL”,机械工业出版社2018年第1版 卢有亮编著
参考资料:
1. 数字设计—原理与实践(第4版影印版),John F. Wakerly,高等教育出版社 2007
2. 数字逻辑设计及应用,姜书艳主编,电子科技大学出版社,2014
Q : 是否必须有实验板 A : 不是必须,可以进行仿真。但请下载VIVADO,并起码做仿真实验,如果有实验板就可以进行下载实践。
Q : 这门课程需要C语言基础吗A : 不需要,如果有C语言基础学Verilog HDL会快些,但不是必须
Q : VIVADO在哪里下载A : 可以在官网下载,或者在资料中提供下载地址
Q : 课程一开始应注意什么?A : 应尽快在前2周完成VIVADO的下载及安装。
Q : 课程是否有配套的教材 ?A : 建议购买配套教材,“Xilinx FPGA原理与实践—基于VIVADO和Verilog HDL”,机械工业出版社2018年第一版 卢有亮编著
Q : 学好这个课程是否能保证找到理想的工作 A : 应该会有效提高就业的档次和选择面。
Q : 我是如材料、物理等专业的,不是计算机或自动化等,是否应该学这门课程 A : 电子相关专业都应该学习这门课程,如果专业课有数电课程,就非常有必要同步或在数电之后学习这么课程。