EDA技术是指电子设计自动化(Electronic Design Automation)技术。它是以计算机为工作平台,融合应用电子技术、计算机技术、智能化技术最新成果的电子设计技术,广义上包括IC设计、电子电路设计、PCB设计和电子电路的仿真等。
本课程主要侧重在数字电子系统设计领域,可编程逻辑器件(如CPLD、FPGA)的应用。课程特点是通过典型实例开展教学,学习者通过模仿实例就可在短时间内快速掌握Verilog HDL语言、可编程逻辑器件的基本设计方法,从而在课程设计、毕业设计、科研中发挥作用,提升自身的实践动手能力、计算机应用能力和创新能力。
另外本课程还为广大学习者提供了工程实践案例“触摸屏弹球游戏设计”、“基于FPGA的永磁同步电机驱动控制系统”,给出了系统顶层方案及各个模块的设计方法,开拓学习者的视野,为深入地理解课程提供有力辅助。
通过本课程的学习使学生掌握硬件描述语言(HDL语言)的基本编程方法和可编程逻辑器件(PLD器件)的设计流程。在此基础上,完善学生的工程实际应用技能,强化工程素质培养,提升学生系统设计理念。
第1章 绪论
1.1 EDA技术概述
1.2 CPLD与FPGA比较
1.3 可编程逻辑器件的编程与配置
1.4 实验平台简介1——DE2-70
1.5 实验平台简介2——EGO1
第1章 EDA技术概述单元测验
第2章 Verilog HDL 语言基础
2.1 Verilog HDL语言概述
2.2 2选1数据选择器实例
2.3 4选1数据选择器实例
2.4 四位加法器实例
2.5 七段数码管显示译码器
2.6 D触发器与缺省项问题
2.7 Verilog语言赋值方式
2.8 计数器实例
2.9 状态机设计实例
2.10 FPGA实现延时定时的两种方法
2 11 状态机AD采样控制电路
2.12 奇数分频与小数分频
2.13 CRC校验码
第2章 VerilogHDL 语言基础测验2
第2章 Verilog HDL 语言基础测验
第3章 FPGA开发软件QuartusII使用实例
3.1 FPGA开发软件QuartusII使用实例一——加法器
3.2 FPGA开发软件QuartusII使用实例二——显示译码器
3.3 FPGA开发软件QuartusII使用实例三——计数器160
3.4 FPGA开发软件QuartusII使用实例四——计数器实现数字钟60秒计数
3.5 FPGA开发软件QuartusII使用实例五——状态机交通灯控制
第3章 FPGA开发软件QuartusII使用实例测验
第4章 嵌入式逻辑分析仪及Modelsim仿真验证
4.1 正弦信号发生器——嵌入式逻辑分析仪SignalTapII使用
4.2 仿真程序Testbench编写方法
4.3 正弦信号发生器——modelsim仿真验证
第4章 嵌入式逻辑分析仪及Modelsim仿真验证测验
第5章 FPGA设计实例
5.1 自动售货机设计实例
5.2 交通灯设计实例
5.3 乐曲演奏电路设计
5.4 基于FPGA的超声波测距报警系统设计
5.5 基于SPI接口的ADC转换——LTC2308实现信号采集
第5章 FPGA设计实例测验
第6章 基于FPGA的触摸屏弹球游戏设计
6.1 FPGA实现触摸屏弹球游戏设计01一背景颜色显示01
6.2 FPGA实现触摸屏弹球游戏设计01一背景颜色显示02
6.3 FPGA实现触摸屏弹球游戏设计01一背景颜色显示03
6.4 FPGA实现触摸屏弹球游戏设计02一屏幕字型显示
6.5 FPGA实现触摸屏弹球游戏设计03一综合实验一
6.6 FPGA实现触摸屏弹球游戏设计03一综合实验二
6.7 FPGA实现触摸屏弹球游戏设计03一综合实验三
第6章 基于FPGA的触摸屏弹球游戏设计测验
第7章 基于FPGA的永磁同步电机驱动系统设计
7.1 基于FPGA的永磁同步电机驱动系统设计——概述
7.2 永磁同步电机控制子模块的实现1——加减速模块
7.3 永磁同步电机控制子模块的实现2——位置检测模块
7.4 永磁同步电机控制子模块的实现3——PWM载波调制模块
7.5 永磁同步电机控制的实验验证
第7章 基于FPGA的永磁同步电机驱动系统设计测验
第8章 FPGA时序约束分析与皮秒级脉冲发生器
8.1 时序约束分析一
8.2 时序约束分析二
8.2 时序约束分析三
8.4 时序约束分析与皮秒级脉冲发生器实现
8.5 皮秒级脉冲发生器实现
C语言、数字电子技术基础。
1.《数字电子技术基础》(第二版),杨春玲主编,高等教育出版社,2017年.
2.《EDA/SOPC实验指导》,杨春玲、朱敏主编,哈尔滨工业大学出版社,2015年.
3.《FPGA设计实战演练(逻辑篇)》,吴厚航主编,清华大学出版社,2015年.
(1)“EDA技术与实验”课程需要哪些预备知识?
答:需要数字电子技术基础知识。如果具备一定的C语言编程能力会更好。
(2)传统的电子设计与PLD设计的比较?
传统的电子设计通常是自底向上的,即首先确定构成系统的最底层的电路模块或元件的结构和功能,然后根据主系统的功能要求,将它们组合成更大的功能块,完成整个目标系统的设计。特点是必须首先关注并致力于解决系统最底层硬件的可获得性及具体目标器件的技术细节;PLD采用自顶向下的设计,采用高效的EDA设计方法,最大的优势就是能将所有设计环节纳入统一的自顶向下的设计方案中。EDA技术的标准化使PLD的设计与具体的硬件无关,设计者能更大程度地将精力集中在设计项目性能的提高和成本的降低上。
PLD的设计为自顶向下的设计方法,只有在EDA技术得到快速发展和成熟应用的今天才成为可能。自顶向下设计方法的有效应用必须基于功能强大的EDA工具,具备集系统描述、行为描述和结构描述为一体的硬件描述语言,以及先进的ASIC制造工艺和FPGA开发技术。当今,自顶向下的设计方法已是EDA技术的首选设计方法,是ASIC和FPGA开发的主要设计手段。
(3)硬件描述语言与软件描述语言的区别是什么?
答:硬件描述语言程序通过综合器综合出可以下载到PLD器件中的网表文件,实现相应的逻辑电路;软件语言通过编译器将程序编译成CPU的指令或数据代码。综合器和软件程序编译器都不过是一种“翻译器”,都能将高层次的设计表达转化为低层次的表达,但它们却具有许多本质的区别。
编译器将软件程序翻译成基于某种特定CPU的机器代码,CPU逐条指令执行完成相应的功能。这种代码仅限于这种CPU而不能移植,并且机器代码不代表硬件结构,更不能改变CPU的硬件结构,只能被动地为其特定的硬件电路结构所利用。
综合器则不同,同样是软件代码的硬件描述语言程序,综合器转化的目标是底层的电路结构网表文件。这种满足原设计程序功能描述的电路结构不依赖于任何特定的硬件环境,因此可以独立地存在,并能轻易地被移植到任何通用的硬件环境中,如ASIC和PLD等。换言之,电路网表代表了特定的硬件结构,因此具备了随时改变硬件结构的依据。综合的结果具有相对独立性。另一方面,综合器在将硬件描述语言表达的电路功能转化成具体的电路结构网表的过程中,具有明显的能动性和创造性。它不是机械的一一对应式的翻译,而是根据设计库、工艺库以及预先设置的各类约束条件,选择最优的方式完成电路结构的形成。
(4)本课程配套的教材是哪本?
答:杨春玲、朱敏主编的《EDA/SOPC实验指导》.哈尔滨工业大学出版社. 2015年。