Menu Close

Verilog语言编程与FPGA应用课程介绍

Verilog语言编程与FPGA应用课程介绍

本课程是Verilog 与FPGA 工程训练的体系课程,目的是培养FPGA与IC前端设计应用工程师的教材及相关的教案视频等内容。本课程区别于目前已出版或高校使用的教材,由于已出版的教材是以基础知识介绍为主并加以扩展,因此该类教材往往有如下特点:

  1. 由于FPGA知识体系涉及面极广,因此在有限的篇幅无法介绍工程中比较实用的开发技巧、案例及相关应用
  2. 编写该类教材的作者往往不是工程实践高级工程师,虽然体系结构合理,条理清楚,但往往缺乏工程实战经验,工程师急需的工程实践训练往往无法在教材中体现
  3. 由于教材针对初学者,高级课题无法在教材中体现(如光纤通信,网络交换,DSP,CPU, 图像处理等内容)
  4. 缺乏配套的视频、音频、在线答疑、论坛等辅助课程和手段,因此很难通过自学达到工程师需要知识和技能。
  5. 已出版的教材很难更新,由于教材已出版,更新几乎不可能。但是FPGA及IC技术发展日新月异,往往刚出版的教材还没投入使用,就有部分内容有了新旧交替,但教材已出版,再想更新只能等再版才能实现。

《Verilog语言编程与FPGA应用》是电子版的教材,是专门为培养工程师服务的系列内容,其中涉及的内容非常广泛,有入门知识、进阶知识、高级知识、工程训练、知识面扩展等内容,尤其在工程训练和扩展方面几乎涉及到自动控制、信号处理、通信、人工智能、图像处理等各个领域的基础理论与工程实践相结合综合知识。

一、本体系课程的特点如下:

  1. 更细,教材编写宗旨是可以自学使用,因此教材中提供更详细的解释,更多的案例,以及工程实践
  2. 更广,在更细的基础上提供更广泛的内容。比如就FPGA而言,由于电子版的教材不受篇幅限制,因此不仅提供了国际最流行的FPGA版本进行教学,同时对其它主流的FPGA器件及开发工具也进行了介绍,尤其是对国产FPGA更进行了较为详细介绍。
  3. 更深,涉及到高级课题及有深度难度的课题更是不吝篇幅的进行介绍。如CPU的开发,DSP技术,网络交换技术,人工智能等,使用户从初级到中级再到高级都有了落脚点。
  4. 更新,由于电子版教材随时可以追加和删减内容,因此一旦有了新的技术,本课程和教材会及时更新。
  5. 服务多样化,有文字版教材,视频版教材,以及论坛、答疑等多种形式。

二、Verilog语言编程与FPGA应用课程包含了如下形式:

  1. 教材,主要以文字和图片的方式呈现,便于用户自学和复习。
  2. 文章,虽然有的文章没有编入教材,但由于有许多新技术,新观点,新的应用都在文章中体现,是教材的有利补充。
  3. 视频教材,按照教材的组织体系进行讲解,这部分内容将会放在网络学院进行有体系结构的进行讲解。
  4. 答疑,配合教材内容,把搜集到难点、疑点进行集中答疑,最终答疑也汇集在一起成为课程的一个有机部分。

三、 课程包含如下内容:

  1. 初级内容

    • 预备课程:在进行FPGA课程之前提供了模拟和数字电路基础课,该课程主要针对非相关专业的学员自学或相关专业复习使用。
    • 开发板资料讲解:FPGA是一门实践性非常强的课程,因此学员在学习期间要参于大量编程及调试等多方面的实践训练,开发板是针对课程体系设计的,非常适合学员学习、开发使用。
    • Verilog 语法与编程:在文章中极为详细讲解了Verilog语法及组织结构,每个语法环节都配有开发示例,协助学员对语法结构的理解于运用。在实践方面结合FPGA的开发进行讲解,有程序开发,软件仿真同时配合硬件板卡进行实操,多角度、多方位培养学员在掌握语法结构的同时积累FPGA与IC开发的经验。
    • 开发工具与开发平台的使用:在FPGA与IC的设计过程中主流软件的使用是开发的必备环节,开发工具使用的好坏直接影响开发流程和开发速度,甚至对开发质量的影响也比较大。目前在本课程比较详细介绍的有Xilinx Vivado, Intel-Altera Quartus II, 对于仿真软件主要用Modelsim,以及Vivado自带的Isim等仿真操作工具。
    • 基本IPcore的学习与使用:在FPGA的学习中,除了常规的Verilog编写程序外,还有FPGA厂家提供的经过验证的IPcore,而且这些IPcore无论在性能还是功耗等方面进行了优化。同时还提供了可视化的配置方法,本课程针对常用的IPcore(如ROM,单口RAM,双口RAM,FIFO,Multiply, 乘累加DSP等)作了比较相近的介绍,以及在使用时应注意的问题等,通过不同参数组合仿真,真实工程中应用设计,强化IPcore技术的使用。
  2. 中级内容

    • 中级内容注重工程训练中设计与调试环节,本部分内容涉及IPcore的开发、调试及应用。如通信类有UART的设计与应用,SPI接口设计与应用,I2C接口的设计与应用。包括E2PROM 的读写,FLASH存储器的读写,以及I2C 接口的AD/DA转换等内容。控制类PWM发生器,SPWM发生器等内容。图像显示原理及VGA信号生成器。
  3. 高级内容

    • 通信类:网络通信,TCP/IP协议及FPGA实现,高速串行通信,光纤通信等内容。
    • 控制类:步进电机控制,三相电力参数采集与运算,交流电机控制等相关内容。
    • 图像处理类:摄像头驱动及图像读取,图像显存的调度与使用,HDMI驱动与显示等内容。
    • 信号处理类:频谱分析,滤波器设计,DDC/DUC,DEC/INT ,调制/解调。
  4. 扩展部分

    • RISC-V CPU设计,本部分课程主要介绍微机原理及计算机组成原理,并以RISC-V CPU的设计为例介绍了CPU设计的详细过程。参与本课程的学习,不仅能巩固和加强Verilog的基本知识与设计技巧,同时也是FPGA学习过程中的大型训练。通过该部分课程的内容学习,逐渐掌握SoC的概念,为将来职业拓展打下良好的基础。
    • 数字信号处理,结合数字信号处理原理讲解如何利用FPGA处理DSP的过程及应用
  5. FPGA的设计技巧
    • 时序优化与收敛,分析静态时序的原理,时序收敛的条件以及时序收敛的设计技巧。
    • 异步时钟域处理,介绍如何将一个时钟域的数据安全、平稳的转换另外一个时钟进行处理。
    • 算法与优化,包括时序优化,性能优化、资源优化等内容。
  6. FPGA相关硬件电路设计
    • 时钟树的设计,与FPGA硬件相关的时钟信号设计,与FPGA资源相关的时钟树的设计等内容
    • 电源设计,主要介绍FPGA不同BANK的特性以及相关电源设计,以及核电压,不同BANK 电压的设置原理及上电电压要求,及上电顺序。该部分课程讲解电源配置的基本原理,在具体设计与应用中将会具体展开。
    • 配置电路设计,介绍FPGA的JTAG(下载及调试)接口,不同模式下的FPGA上电配置及相应Flash 存储器烧写过程。
  7. FPGA相关内容介绍:当前流行的FPGA厂家及典型器件介绍。
  8. 相关资料的汇总:介绍与FPGA硬件设计及配套插件的资料汇总,以及与FPGA设计相关的电源、时钟、图像、语音、AD/DA等器件的相关资料,该部分内容主要帮助广大学员及工程师提供与FPGA设计相关的各种资料,节省了设计工程师搜寻资料的时间和难度。

四、 本课程学习应注意如下要点

    • 坚持听课;由于学习内容多,周期长,坚持学习需要毅力。同时采用学习、复习相结合的方法,一边学习新知识,一边巩固学过的知识。
    • 多写、多练,多操作;只有多写、多练才能加强记忆,孰能生巧在本课程的学习中普遍适用。在看懂原理及示例代码后,要自己尝试构建代码并逐步调试代码。不要直接复制示例代码运行,因为示例代码都是经过排错和调试过得代码,直接复制运行许多的中间排错过程学员无法体验到,因此以这种方式学习,学员收获不多。
    • 控制急躁情绪;许多学员在学习过程中会有急躁情绪,往往在调试代码的过程中,遇到问题就着急,希望得到老师的指导,甚至简单的问题还没有解决就有放弃的思想。其实在学习的过程中,经过自己的努力排除错误,解决困难才是正确的学习之道,只有自己解决了问题,才会积累经验。积累经验是长期与困难作斗争积累的,没有排错调试的过程,很难获得实战经验。
    • 多看,除了视频学习,还要多看文章,文章不限于本网站的文章,其它网站,出版教材的文章都要多看,加以体会。

由于本教材编写时间仓促,文章中不可避免的出现一些文字输入,排版,甚至理解上的错误,希望各位朋友在阅读及参与学习的过程中,发现错误,及时指出,并能及时得到改正。总之,希望广大工程师及参与学习的学员能充分利用教材、视频、论坛轻松愉快的完成Verilog与FPGA应用学习,尽早完成自己的职业飞跃。

 

Posted in FPGA, FPGA, 教材与教案, 文章

发表评论

相关链接