硬件描述语言
(Hardware Description Language)
课程编号: | 109232 | 学分: | 2 |
开课单位: | 电子信息工程学院 | 总学时: | 32 |
课程类别: | 专业课 | 课程性质: | 任选 |
注:课程类别是指通识类平台课/学科平台课/专业核心课/专业课/;课程性质是指必修/限选/任选
一、课程的性质和目的
课程性质:本课程是电子信息工程及通信工程专业的必修课,主要介绍Verilog语言基本语法和设计思想,熟悉FPGA开发流程,培养学生应用Verilog及EDA工具开发设计数字系统的基本方法及技术,具有很强的工程实践性。
目的:使学生通过对Verilog语言及FPGA开发技术的学习和训练,获得现代硬件数字电路的软件化设计方法,了解并初步掌握当代数字电子技术设计领域的最新技术,为学生在数字技术领域的进一步深入探索和创新奠定基础。
二、课程教学内容及基本要求
掌握Verilog语言的程序结构、基本描述语句及描述方法,熟悉行为级描述、结构级描述和开关级描述的要求和特点,掌握采用硬件描述语言描述各层次的方法,熟悉EDA实验开发系统的使用;掌握小型数字系统的Verilog设计技术。
(一)课程教学内容及知识模块顺序
1.知识单元一 绪论(3学时)
(1)知识点一:EDA技术和可编程器件的发展
(2)知识点二:可编程逻辑器件设计流程简介
(3)知识点三:硬件描述语言Verilog HDL与VHDL
教学基本要求:
本章为介绍性内容,要求了解硬件描述语言的特点,掌握CPLD/FPGA的发展历史和两者的区别,理解ASIC、SOPC等的含义。
2. 知识单元二: Verilog HDL语法基础(5学时)
(1)知识点一:模块的概念
(2)知识点二:Verilog HDL语法的一些基本要素
(3)知识点三:数据类型及常量变量
(4)知识点四:运算符及表达式
(5)知识点五:赋值语句和条件语句
(6)知识点六:结构描述语句always与assign
(7)知识点七:函数和循环语句
(8)知识点八:从硬件角度理解Verilog HDL语法
教学基本要求:
理解Verilog HDL程序的基本结构,重点掌握常用的变量数据类型。掌握常用运算符和表达式。重点掌握过程语句、块语句和赋值语句的含义和用法。掌握条件语句和循环语句。理解任务和函数的含义及适用场合。熟练掌握常用组合逻辑和时序逻辑电路的设计方法。
3. 知识单元三: CPLD/FPGA的基本结构(2学时)
(1)知识点一:CPLD的基本结构
(2)知识点二:FPGA的基本结构
(3)知识点三:CPLD与FPGA的区别和联系
教学基本要求:
理解CPLD和FPGA的基本结构,熟悉Altera和Xilinx公司的典型芯片,理解CPLD和FPGA的区别和联系及其各自的应用场合。
4. 知识单元四: CPLD/FPGA设计基础(4学时)
(1)知识点一:同步与异步电路设计
(2)知识点二:时钟、复位与临界设计
(3)知识点三:有限状态机设计
(4)知识点四:速度与资源
(5)知识点五:模块化设计
教学基本要求:
理解CPLD/FPGA设计中的基本概念,重点掌握同步和异步电路的设计方法,时钟复位的设计及状态机的设计等实例。掌握模块化设计的方法。
5. 知识单元五:FPGA在数字信号处理系统中的应用(2学时)
(1)知识点一:数的表示方法
(2)知识点二:加减法与乘法单元
(3)知识点三:数字信号处理中的FPGA与DSP芯片
教学基本要求:
了解FPGA 数字信号处理系统中的应用方式,掌握三个设计实例:FIR滤波器、IIR滤波器和快速傅里叶变换FFT。
(二)课程的重点、难点及解决办法
重点:(1)Verilog HDL、CPLD/FPGA、SOPC的基本概念;(2)Verilog HDL程序的基本结构,常量、变量和运算符,线网类型和寄存器类型变量的区别和使用方法,模块的定义与调用,顺序块和并行块,条件语句,循环语句,阻塞赋值与非阻塞赋值,系统任务和系统函数,常用组合逻辑电路和时序电路的描述;(3)数据流建模、结构化建模和行为建模;(4)有限状态机设计方法,基于FPGA的数字系统设计流程、原则及技巧。
难点:(1)线网类型和寄存器类型变量的区别和使用方法,这是最常用的两种变量类型,包含了硬件电路物理连线和数据存储的概念,初学者不易理解;(2)常用组合逻辑电路和时序电路的描述,学生应该能通过例子掌握诸如比较器、译码器、数据选择器、触发器、锁存器、计数器、分频器、寄存器等基本电路的描述方法,并能够举一反三;(3)基于FPGA的设计原则和技巧;这些都是初学者比较难以理解的内容,需要反复实践、慢慢积累、逐步掌握。
解决办法:理论课的课堂教学要充分利用多媒体课件辅助课堂教学,课件的制作要图文并茂,从学生已掌握的知识引出新的内容,以较自然的方式引入新内容,降低难度。实践环节加强对学生的管理,使学生都能够得到应有的训练。考核时兼顾到设计过程和设计结果,合理评定成绩。
重点难点在讲授时,对容易出错的内容反复讲反复练,讲深讲透,再通过练习和实践加以巩固,从而达到预期的效果。
三、实验实践环节及基本要求
1.实验实践教学环节在本课程中的作用及要求
本课程是实践性很强的课程,上机实验环节对于整个课程的学习至关重要。学生通过上机实验才能更好地理解理论知识,将这些理论知识真正用于程序中解决问题,配合实验箱会用Verilog HDL编程才是学习这门课的最终目的。上机实验环节重在培养学生运用Verilog HDL进行数字系统设计的能力和对硬件的动手能力。
2.实验项目(具体要求见实验教学大纲)
实验一:FPGA开发流程(2学时)
实验二:常见同步与异步电路设计(4学时)
实验三:脉冲序列检测电路设计 (4学时)
实验四: IIR与FIR滤波器设计 (6学时)
四、本课程与其它课程的联系与分工
先修课程:数字电路与系统;后续课程:FPGA课程设计
五、对学生能力培养的要求
通过本课程的学习,使学生在掌握Verilog HDL基本要素的基础上,具有运用Verilog进行数字系统设计的能力,面对实际问题时独立分析和解决问题的能力,自主学习的能力。
六、课程学时分配
总学时32,其中讲课16学时,实验16学时。课程主要内容和学时分配见课程学时分配表。
课程学时分配表
学环节 时数 课程内容 | 讲课 | 上机 | 实验 | 习题及讨论 | 小计 |
绪论 | 3 |
|
|
| 3 |
Verilog HDL语法基础 | 4 |
|
| 1 | 5 |
CPLD/FPGA的基本结构 | 2 |
|
|
| 2 |
CPLD/FPGA设计基础 | 4 |
|
|
| 4 |
FPGA在数字信号处理系统中的应用 |
|
|
|
| 2 |
FPGA开发流程 |
|
| 2 |
| 2 |
常见同步与异步电路设计 |
|
| 4 |
| 4 |
脉冲序列检测电路设计 |
|
| 4 |
| 4 |
IIR与FIR滤波器设计 |
|
| 6 |
| 6 |
总计 | 15 |
| 16 | 1 | 32 |
七、主要教学方法
1、每节课应有重点,围绕中心,举一反三。
2、教育语言、板书语言、肢体语言和多媒体语言有机结合,取长补短。教育语言、板书语言、肢体语言适合逻辑推理的、计算的、操作的内容;多媒体语言适合说明性的、图示的、演示的内容,并根据不同的教育内容制作了不同类型的课件。
3、每节课需要留下课外作业,包括实验。
八、建议教材和主要教学参考书目
1.教材
[1]《Verilog HDL与FPGA开发设计及应用》,李洪涛等,清华大学出版社,2012年
2.主要参考书
[1]《Verilog 数字系统设计与FPGA应用》,赵倩,叶波,清华大学出版社,2012年
[2]《Verilog HDL设计与实战》,北京航空航天大学出版社
九、课程考核
本课程采用闭卷考试方式,总评成绩由平时成绩和期末成绩组成。平时成绩占总评的40%,期末成绩占总评的60%。平时成绩从作业、上课出勤率、实验等几方面进行考核。
执笔人:赵航 审核人:王芳 教学院长(主任):杨亦文
注:审核人一般为本专业负责人。