姚钊 教师
单位:青岛大学
部门:电子信息学院
本课程是微电子科学与工程、电子工程与电子科学技术等本科专业的一门专业选修课,EDA技术是借助于计算机软/硬件进行数字系统设计的技术,其实现载体是可编程逻辑器件,该技术具有灵活、高效、快速的优势,可编程逻辑器件是一种功能可编程实现的大规模数字集成器件,相比于传统通用中规模数字集成器件具有功能灵活、功耗低、集成度高、可重配置的优势,相比于微处理器器件具有速度快、可实现SOPC系统的优势。该技术应用领域包括数字集成电路前端设计/验证、高速数字信号处理、高速通信系统、SOPC系统。因此本课程对于培养电子信息类专业的学生具有非常重要的作用。本课程基本内容为EDA技术基本概念,可编程逻辑器件CPLD、FPGA的结构和工作原理,硬件描述语言Verilog HDL语法,EDA工具软件Quartus II和Modelsim的使用方法,以及利用EDA技术进行数字系统的设计、行为仿真、硬件测试的方法等。本课程先修课程为数字电子技术基础。
提供学校: | 青岛大学 |
课程编号: | C06080004008 |
可编程逻辑器件与EDA技术 教学大纲
课程编号:C06080004008
课程名称:可编程逻辑器件与EDA技术
英文名称:EDA devices and Technology
课程性质:专业选修课
学时/学分:48/2.5
考核方式:期末考试+实验成绩+平时成绩
选用教材:《EDA技术实用教程Verilog版》(第6版),潘松,科学出版社,2018年
先修课程:电路分析、模拟电路、数字电路
适用专业及层次:微电子科学与工程、电子工程与电子科学技术本科专业
大纲执笔人:孙中森
大纲审核人:李启昌
一.课程的性质及任务
《可编程逻辑器件与EDA技术》是微电子科学与工程、电子工程与电子科学技术等本科专业的一门专业选修课,该课程的设立依据是青岛大学微电子科学与技术专业培养计划,是一门讲解如何运用计算机进行电子设计的课程。本课程对培养学生的专业设计技能有极重要的作用,是电子技术教学必不可少的内容。课程主要讲述利用可编程逻辑器件和硬件描述语言进行电子系统的开发和设计流程。课程主要以硬件描述语言为主,以编程逻辑器件为载体,学习数字系统的自动化设计方法和流程。要求掌握CPLD和FPGA可编程逻辑器件的使用;能熟练应用Verilog HDL语言输入法,进行简单的数字系统设计;并能对所设计的电子系统进行模拟仿真或实验开发板上硬件实现。
本课程以基础语法教学为主,学生上级实验为辅,让学生切实掌握可编程ASIC(CPLD & FPGA)开发工具使用、硬件描述语言及应用设计。注意培养学生的系统和工程思想,关注可编程ASIC技术的最新进展,注意采用电化教学方式教学。通过本课程的学习使学生掌握可编程器件、EDA开发软件、硬件描述语言和电子线路设计与技能培训等方面知识,提高工程实践能力;学会英语EDA技术解决一些简单的电子设计问题。
依据青岛大学微电子科学与技术专业培养方案,本课程需培养学生的能力是:
(1)掌握工程基础知识,并能够应用其基本概念、基本理论和基本方法解决实际问题;(指标点1.2)
(2)运用所学基础知识,设计简单工程问题的解决方案;(指标点3.1)
(3)能够根据科学或者应用目标,设计仿真或实物实验,确定需要的材料、器件及系统;(指标点4.2)
(4)能够开发、选择与使用恰当的技术、资源和工具,特别是计算机设计与仿真工具,并用于复杂工程问题的设计与仿真。(指标点5.2)
二.课程目标与要求
2.1 课程目标
(1)通过本课程学习,使学生了解可编程逻辑器件的有关知识、EDA技术的基本原理及基本技术;
(2)掌握Verilog语言的基本语法、基本知识;
(3)熟悉EDA软件使用,会进行文本输入、时序和功能仿真和下载实验验证,熟悉应用硬件描述预研Verilog设计数字系统的基本设计方法。
2.2 课程目标与毕业要求对应关系
毕业要求 | 指标点 | 支撑指标点的课程 目标及权重 |
1.工程知识:理解并掌握数学、自然科学、工程基础、电子学专业知识,并能够综合应用这些知识解决电子学工程领域复杂工程问题。 | 掌握工程基础知识,并能够应用其基本概念.基本理论和基本方法解决实际问题。(指标点1.2) | 课程目标1(0.5) 课程目标2(0.5)
|
3.设计/开发解决方案:能够针对电子信息工程及相关领域内的工程问题设计解决方案,设计满足特定需求的系统、单元(部件)或工艺流程,并能够在设计过程中体现创新意识,并综合考虑社会、健康、安全、法律、文化以及环境等因素。 | 运用所学基础知识,设计简单工程问题的解决方案;(指标点3.1)
| 课程目标1(0.3) 课程目标2(0.7)
|
4.研究:能够基于科学原理并采用科学方法对自动化专业领域的复杂工程问题进行研究,包括设计实验、开展实验、实验结果分析,并通过信息综合得到合理有效的结论。 | 能够根据科学或者应用目标,设计仿真或实物实验,确定需要的材料.器件及系统;(指标点4.2) | 课程目标3(1.0)
|
5.使用现代工具:能够针对电子信息工程领域的复杂工程问题,开发.选用恰当的技术、资源、现代工程工具和信息技术工具,能对复杂工程问题进行预测和模拟,并能理解其局限性。 | 能够开发.选择与使用恰当的技术、资源和工具,特别是计算机设计与仿真工具,并用于复杂工程问题的设计与仿真。(指标点5.2) | 课程目标2(0.7) 课程目标3(0.3)
|
2.3 课程目标与培养环节对应矩阵
序号 | 课程目标 | 理论教学 | 作业 | 实验课 |
1 | 通过本课程学习,使学生了解可编程逻辑器件的有关知识、EDA技术的基本原理及基本技术; | H | L | |
2 | 掌握Verilog语言的基本语法、基本知识; | H | M | M |
3 | 熟悉EDA软件使用,会进行文本输入、时序和功能仿真和下载实验验证,熟悉应用硬件描述预研Verilog设计数字系统的基本设计方法。 | M | H |
注:H表示该能力在此环节重点培养;M表示该能力在此环节有应用要求;L表示该能力在此环节有所涉及。
2.4课程目标达成度的评价
(1)课程目标1,在理论课环节进行能力培养,在作业中有所涉及。
主要通过期末考试中名词解释.简答题等形式进行考核。在作业中体现为总结EDA设计的基本原理、设计流程的重点概念和术语,并按时上交作业。目标达成综合以上内容进行评价。
(2)课程目标2,在理论课环节和实验课环节进行能力培养,在作业中有所涉及。
主要通过期末考试中分析题、编程题等形式进行考核。在作业中体现为分析Verilog语法、典型电路设计等。目标达成综合以上内容进行评价。
(3)课程目标3,在理论课环节进行能力培养。根据实验报告和课堂讨论进行考核,根据学生的课堂表现对掌握教学内容的程度做出评估,给出课程目标达成度的定量评价结果。
三.教学基本内容
三、教学基本内容、要求和学时分配 理论教学32学时。 |
(一)第一章 EDA技术概述 学时:2 (支撑课程目标1)
教学内容:
EDA技术及发展
EDA技术实现目标以及常用HDL
EDA设计流程
Quartus Ⅱ简介
教学要求
了解EDA技术及重要性
EDA技术知识体系
EDA技术特点和发展趋势
EDA技术实现目标
EDA与传统电子设计方法比较等。
重点、难点:EDA技术知识体系,EDA技术实现目标,掌握Verilog设计流程
(二)第二章 FPGA与CPLD的结构原理 学时:2 (支撑课程目标1)
教学内容:
CPLD结构原理
FPGA结构原理
硬件测试
CPLD/FPGA编程配置
教学要求:
了解可编程逻辑器件的发展历程和分类
掌握PLD/CPLD/FPGA的结构与工作原理
掌握CPLD和FPGA的编程与配置。
重点、难点:CPLD、FPGA结构与工作原理,CPLD、FPGA编程与配置
(三)第三章组合电路的Verilog描述 学时:6 (支撑课程目标2)
教学内容:
通过几个组合电路的设计实例介绍一下Verilog语法
半加器电路的Verilog描述
多路选择器的Verilog描述
Verilog加法器设计
组合逻辑乘法器设计
教学要求:
了解Verilog的特点,
掌握Verilog程序结构、语言要素、语法基础,包括顺序语句、并行语句和其他语句的结构、特点和应用。
重点、难点:掌握数据对象的定义和用法、赋值语句、流程控制语句;掌握并行信号赋值语句的分类、结构特点。
(四)第四章时序仿真与硬件实现 学时:2 (支撑课程目标3)
教学内容:
通过几个组合电路的设计实例介绍一下Verilog语法
Verilog程序输入与仿真测试
引脚锁定与硬件测试
电路原理图设计流程
signalProbe使用方法
教学要求:
了解Verilog程序输入与仿真测试流程
掌握时序仿真与功能仿真的设置与操作。
重点、难点:掌握Verilog设计仿真的流程及功能仿真、时序仿真操作。
(四)第五章 时序电路的Verilog设计 学时:4 (支撑课程目标2)
教学内容:
本章通过几个时序电路的设计实例掌握时序电路设计方法、时序电路与组合电路的区别
基本时序元件的Verilog设计(D触发器)
二进制计数器及其Verilog表述
移位寄存器的Verilog表述与设计
教学要求:掌握时序逻辑的设计描述。
重点、难点:时序电路描述。
(五)第六章宏功能模块应用及相应语法学时:4 (支撑课程目标2、3)
教学内容:LPM模块的定制与调用方法
计数器LPM
RAM宏模块LPM
锁相环LPM
教学要求:
掌握LPM常用模块的定制方法
掌握LPM模块的调用方法。
重点、难点:LPM模块定制、锁相环设计。
(六)第八章 Verilog设计深入学时:2 (支撑课程目标2、3)
教学内容:
过程中的两类赋值语句
过程语句归纳
if语句归纳、
三态与双向端口设计
教学要求:
掌握always、initial赋值语句
掌握if判断语句和双向端口设计
重点、难点:双向三态电路设计、IF语句设计。
(七)第九章 Verilog Test Bench仿真与时序分析 学时:4(支撑课程目标3)
教学内容:
Verilog 行为仿真流程
Verilog 测试基准实例
Test bench 测试流程
Verilog 系统任务和系统函数
延时模型
仿真激励信号的产生
教学要求:
掌握描述层次和仿真层次的基本概念
掌握Test bench 测试流程
掌握系统任务和系统函数。
重点、难点:Verilog 行为仿真流程、Test bench 测试流程、Verilog 系统任务和系统函数。
(八)第十章 Verilog状态机设计技术学时:4 (支撑课程目标2、3)
教学内容:
Verilog状态机的一般形式
Moore型状态机及其设计
Mealy型状态机设计
不同编码类型状态机
安全状态机设计
硬件数字技术排除毛刺
教学要求:
掌握状态机的一般形式
掌握Moore型状态机
Mealy型状态机设计方法
重点、难点:Moore型状态机、Mealy型状态机设计。
(九)第十二章 Verilog 知识拾遗 学时:2 (支撑课程目标2、3)
教学内容:
Verilog文字规则实现结构描述
数据类型实现结构描述
操作符实现结构描述
常用语句补充
用库元件实现结构描述
教学要求:
掌握常数类型和标识符、关键字;
掌握net型、register型、存储器型三总数据类型;
掌握算术、逻辑、关系运算符。
重点、难点:Verilog文字规则、数据类型、操作符、子程序和程序包。
四、课内实验
实验教学16学时。
4.1本课程实验教学的地位和作用
《可编程逻辑器件与EDA技术》是一门应用性、实践性很强的课程,实验是验证.巩固和补充课堂讲授的理论知识的必要环节。本课程的实验教学目是使学生熟悉Altera FPGA的基本原理及其使用方法,对电子自动化设计过程中的相关开发有一定的了解,为今后从事工程应用和嵌入式开发打好基础。
4.2教学基本要求
1.通过实验,让同学们熟悉基于QuartusII 软件的EDA设计流程,掌握原理图设计、基于Verilog的组合电路、时序电路、状态机等设计。
2.通过实验,培养学生分析应用需求的能力,如何设计电路.编写Verilog代码解决问题的能力,综合提高学生对CPLD/FPGA应用系统的设计.开发与调试能力。
4.3实验内容
实验一 原理图法设计全加器
实验二 组合电路设计
实验三 数控分频器设计
实验四 四位十进制频率计
实验五 序列检测器设计
实验六 基于LPM_ROM的正弦信号发生器
实验七 ADC0809采样控制器设计
实验八自动交通控制器设计自动交通控制器
4.4 教学文件及教学形式
教学文件:《EDA设计实验指导书》。实验报告学生自拟。
教学形式:本课程为上机编程,指导教师应概述实验目的.内容和要求,并作针对性指导,具体实验步骤和结果分析.处理由学生独立完成。
4.5实验成绩评定
根据学生的实验预习.实验纪律.实验动手能力及实验报告结果,进行综合评定,给出成绩。实验成绩作为平时成绩的重要考核依据之一,对缺实验成绩者,本课程不予通过。
六.教学建议进度(课堂学时数32+实验学时数16)
第一章 | EDA技术概述 | 学时:2 |
第二章 | FPGA与CPLD的结构原理 | 学时:2 |
第三章 | 组合电路的Verilog描述 | 学时:6 |
第四章 | 时序仿真与硬件实现 | 学时:2 |
第五章 | 时序电路的Verilog设计 | 学时:4 |
第六章 | 宏功能模块应用及相应语法 | 学时:4 |
第八章 | Verilog设计深入 | 学时:2 |
第九章 | Verilog Test Bench仿真与时序分析 | 学时:4 |
第十章 | Verilog状态机设计技术 | 学时:4 |
第十二章 | Verilog 知识拾遗 | 学时:2 |
实验一 | 原理图法设计全加器 | 学时:2 |
实验二 | 组合电路设计 | 学时:2 |
实验三 | 数控分频器设计 | 学时:2 |
实验四 | 四位十进制频率计 | 学时:2 |
实验五 | 序列检测器设计 | 学时:2 |
实验六 | 基于LPM_ROM的正弦信号发生器 | 学时:2 |
实验七 | ADC0809采样控制器设计 | 学时:2 |
实验八 | 自动交通控制器设计自动交通控制器 | 学时:2 |
七.教学方法
1.以课堂教学加实验教学为主,在理论课环节讲解EDA设计的基本原理与基础知识,回顾数字电路设计知识,并结合实际应用实例的仿真,使学生掌握如何用Verilog进行编程、综合及仿真,对仿真结果进行处理、保存和分析。实验环节针对理论教学进行验证和综合。总之,本科程以课堂理论加实验教学为主要的教学方法和手段,培养学生能力。
2.通过理论讲解.案例讲解.布置作业.作业讲解等多环节训练.督促检查,巩固学习成果。
3.期末考试,内容涉及课程的基本概念和基本方法,题型包括判断题、简答题.论述题.设计题等。
八.考核方式
课程成绩依据学生在各教学环节表现综合评定,各部分的比重分别为:
考核环节 | 比重 |
平时成绩 | 10% |
实验成绩 | 20% |
期末考试 | 70% |
总计 | 100% |
1.期末考核
期末考试,百分制,依据课程目标要求命题,采用闭卷考核方式。
评分依据为:试卷答案及评分标准。
2.平时成绩
平时成绩,百分制,实验.课堂讨论表现.作业.考勤。
平时成绩评分标准为:
考察点 | 占比 | 优 | 良 | 中 | 差 |
出勤情况 | 50% | 全出勤,不迟到 | 旷课一次,迟到1次 | 旷课2次,迟到2次 | 旷课3次以上 |
课堂表现 | 50% | 课堂纪律好,回答问题积极正确 | 课堂纪律好,回答问题积极 | 课堂纪律较好,不回答问题 | 课堂不认真听讲,玩手机等 |
实验成绩评分标准为:
考察点 | 占比 | 优 | 良 | 中 | 差 |
实验报告 | 50% | ||||
动手能力 | 50% |
九.教学参考书
教材:[1] EDA技术实用教程Verilog版(第6版),潘松,科学出版社
参考教材:
1 Verilog数字系统设计教程(第3版),夏宇闻,北航出版社
2 深入浅出玩转FPGA(第2版),吴厚航,北航出版社
3设计与验证Verilog HDL,吴继华,人民邮电出版社
周
次 | 教学作业类别及内容 | ||||||||||
讲 课 (教学大纲分章节和题目的名称) 包括习题课、课堂讨论、测验等 | 学时数 | 实验、实习、课程设计名称 (写明题目及要求) | 学时数 | 实际执行情况 | |||||||
第一周 | 第1 章Verilog的基本知识 | 2 | |||||||||
第二周 | 第2章 Verilog语法的基本概念 | 2 | |||||||||
第三周 | 第3章模块的结构、数据类型、变量和基本运算符号 3.1 模块端口的定义和模块内容 | 2 | |||||||||
第四周 | 3.2 数据类型及其常量和变量 | 2 | |||||||||
第五周 | 3.3 运算符及表达式 | 2 | |||||||||
第六周 | 第4章 运算符、赋值语句和结构说明语句 4.1 逻辑运算符、关系运算符、等式运算符 | 2 | |||||||||
第七周 | 4.2 移位运算符、位拼接运算符、缩减运算符
| 2 | |||||||||
第八周 | 4.3优先级别、关键词 4.4赋值语句和块语句 | 2 | |||||||||
第九周 | 第5章 条件语句、循环语句、块语句与生成语句 5.1条件语句的语法 | 2 | |||||||||
第十周 | 5.2 多路分支语句 5.3 顺序块和并行块 | 2 | |||||||||
第十 一周 | 第6章 结构语句、系统任务、函数语句和显示系统任务 6.1结构说明语句 6.2 系统任务$finish, $stop,$readmemb,$readmemh,$random | 2 | |||||||||
第十二周 | 第七章 调试用系统任务和常用编译预处理语句 7.1 系统任务$monitor,时间度量系统函数$time 7.2系统任务$finish, $stop,$readmemb,$readmemh,$random | 2 | |||||||||
第十三周 | 第8章 Verilog设计深入 8.1 运算部件和数据流动的控制逻辑 8.2数据在寄存器中的暂时保存 8.3数据流动的控制 | 2 | |||||||||
第十四周 | 第9章 同步状态机的原理、结构和设计 9.1状态机的结构 9.2 Mealy状态机和Moore状态机的不同 | 2 | |||||||||
第十五周 | 9.3 如何用Verilog来描述可综合的状态机 第10章 深入理解阻塞和非阻塞赋值的不同 10.1 阻塞和非阻塞赋值的异同 | 2 | |||||||||
第十六周 | 10.2 Verilog的层次化事件队列 10.3 自触发always块 | 2 | |||||||||
第十七周 | 2 | ||||||||||
第十八周 | 2 |
教学参考书
教材:[1] EDA技术实用教程Verilog版(第6版),潘松,科学出版社
参考教材:
1 Verilog数字系统设计教程(第3版),夏宇闻,北航出版社
2 深入浅出玩转FPGA(第2版),吴厚航,北航出版社
3设计与验证Verilog HDL,吴继华,人民邮电出版社