本书以SP-FGCE11AFPGA实验箱为硬件平台阐述了基于CPLD/FPGA技术的常见数字电路和数字系统的设计方法,主要目标是培养学生熟练使用EDA开发工具,应用Verilog HDL硬件描述语言开发电子产品所需的综合知识、素质和技能。
本书按照基于工作过程的“项目”载体和适应“任务驱动”教学模式的思路进行编写,“项目”的选取上以直观性、实用性、针对性为原则,按照学生的认知规律(由浅入深、由简单到复杂、由单项到系统、由验证到设计)对教材内容进行科学合理的安排。全书共3个模块,模块一选取14个常见数字电路设计作为项目载体,介绍EDA技术发展概况和硬件描述语言的相关知识、Quartus II软件和ModelSim软件的使用方法与技巧和运用Verilog HDL设计简单数字电路或系统。模块二选取11个基于SP-FGCE11AFPGA实训平台的项目为载体,介绍可编程逻辑器件产品概况和用硬件描述语言驱动常见外围硬件资源设计数字系统的方法。模块三选取了多功能数字电子时钟、VGA图像显示、UART通信接口和I2C总线接口设计四个综合设计项目,介绍怎样运用自顶向下的数字电路设计方法完成较复杂的数字系统设计。
模块一 EDA基础设计项目
项目1 3-8译码器设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、EDA技术与硬件描述语言
二、Verilog HDL模块结构
三、译码器原理
四、源码
项目实施
一、编辑调试模块代码
二、创建和导入原理图
三、仿真
模块一 EDA基础设计项目
项目1 3-8译码器设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、EDA技术与硬件描述语言
二、Verilog HDL模块结构
三、译码器原理
四、源码
项目实施
一、编辑调试模块代码
二、创建和导入原理图
三、仿真
拓展练习
项目2 8-3编码器设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、Verilog HDL基本规范
二、case语句
三、编码器原理
四、模块符号
五、源码
项目实施
一、编辑调试模块代码
二、仿真测试模块功能
拓展练习
项目3 优先编码器设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、Verilog HDL的常量
二、优先编码器原理
三、模块符号
四、源码
项目实施
一、编辑调试模块代码
二、仿真测试模块功能
拓展练习
项目4 数据选择器设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、Verilog HDL参数型常量
二、if-else语句
三、数据选择器原理
四、模块符号
五、源码
项目实施
一、编辑调试模块代码
二、仿真测试模块功能
拓展练习
项目5 多位数值比较器设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、关系运算符和全等运算符
二、Verilog HDL的变量
三、多位数值比较器原理
四、模块符号
五、源码
项目实施
一、编辑调试模块代码
二、仿真测试模块功能
拓展练习
项目6 半加器与全加器设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、位拼接运算符
二、结构化的建模方式
三、数据流建模方式
四、半加器原理
五、全加器原理
六、模块符号
七、源码
项目实施
一、编辑调试模块代码
二、仿真测试模块功能
拓展练习
项目7 D触发器设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、算术运算符和位运算符
二、行为建模方式
三、D触发器原理
四、模块符号
五、源码
项目实施
一、编辑调试模块代码
二、仿真测试模块功能
拓展练习
项目8 寄存器,双向移位寄存器设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、赋值运算
二、移位运算
三、寄存器原理
四、移位寄存器原理
五、模块符号
六、源码
项目实施
一、编辑调试模块代码
二、仿真测试模块功能
拓展练习
项目9 四位二进制加减计数器设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、逻辑运算符
二、缩减运算符
三、计数器原理
四、模块符号
五、源码
项目实施
一、编辑调试模块代码
二、仿真测试模块功能
拓展练习
项目10 十进制加减计数器设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、Test
二、顺序块语句
三、十进制计数器原理
四、模块符号
五、源码
项目实施
一、编辑调试模块代码
二、仿真测试模块功能
拓展练习
项目11 顺序脉冲发生器设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、顺序脉冲发生器原理
二、模块符号
三、源码
项目实施
一、编辑调试模块代码
二、仿真测试模块功能
拓展练习
项目12 序列信号发生器设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、序列信号发生器原理
二、模块符号
三、源码
项目实施
一、编辑调试模块代码
二、仿真测试模块功能
拓展练习
项目13 串行数据检测器设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、串行数据检测器原理
二、模块符号
三、源码
项目实施
一、编辑调试模块代码
二、仿真测试模块功能
拓展练习
项目14 分频器设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、分频器原理
二、整数分频器的设计
三、模块符号
四、源码
项目实施
一、编辑调试模块代码
二、仿真测试模块功能
拓展练习
模块二 FPGA技术应用项目
项目1 跑马灯设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、可编程逻辑器件
二、SP-FGCE11A FPGA实训平台
三、跑马灯原理
四、引脚分配
五、模块符号
六、源码
项目实施
一、编辑调试模块代码
二、分配引脚
三、配置
四、编译
五、下载
拓展练习
项目2 按键控制LED设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、按键控制led灯原理
二、模块符号
三、源码
项目实施
一、编辑调试模块代码
二、分配引脚
三、配置
四、编译
五、下载
拓展练习
项目3 蜂鸣器设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、蜂鸣器原理
二、模块符号
三、源码
项目实施
一、编辑调试模块代码
二、分配引脚
三、配置
四、编译
五、下载
拓展练习
项目4 七段数码管扫描显示设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、七段数码管扫描显示原理简介
二、模块符号
三、源码
项目实施
一、编辑调试模块代码
二、分配引脚
三、配置
四、编译
五、下载
拓展练习
项目5 点阵控制设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、点阵控制原理简介
二、模块符号
三、源码
项目实施
一、编辑调试模块代码
二、分配引脚
三、配置
四、编译
五、下载
拓展练习
项目6 直流电机控制设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、直流电机控制原理简介
二、模块符号
三、源码
项目实施
一、编辑调试模块代码
二、分配引脚
三、配置
四、编译
五、下载
拓展练习
项目7 步进电机控制设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、步进电机控制原理简介
二、模块符号
三、源码
项目实施
一、编辑调试模块代码
二、分配引脚
三、配置
四、编译
五、下载
拓展练习
项目8 矩阵键盘接口控制设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、矩阵键盘接口控制原理简介
二、模块符号
三、源码
项目实施
一、编辑调试模块代码
二、分配引脚
三、配置
四、编译
五、下载
拓展练习
项目9 LCD1602控制器设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、LCD1602原理
二、模块符号
三、源码
项目实施
一、编辑调试模块代码
二、分配引脚
三、配置
四、编译
五、下载
拓展练习
项目10 ADC0809控制设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、ADC0809转换原理
二、ADC0809控制器符号
三、源码
项目实施
一、编辑调试模块代码
二、分配引脚
三、配置
四、编译
五、下载
拓展练习
项目11 DAC0832控制设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、DAC0832转换原理
二、DAC0832控制器符号
三、源码
项目实施
一、编辑调试模块代码
二、分配引脚
三、配置
四、编译
五、下载
拓展练习
模块三 FPGA技术综合设计项目
项目1 多功能数字时钟设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、自顶向下的设计方法
二、数字钟的功能要求
三、顶层设计
四、模块
五、源码
项目实施
一、编辑调试模块代码
二、分配引脚
三、配置
四、编译
五、下载
拓展练习
项目2 VGA图像显示设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、VGA简介
二、VGA接口引脚图
三、VGA 时序分析
四、硬件电路
五、顶层设计
六、程序解析
七、源码
项目实施
一、编辑调试模块代码
二、分配引脚
三、配置
四、编译
五、下载
拓展练习
项目3 UART通信接口设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、模块实例化方法
二、串口引脚图
三、UART传输时序
四、调试
五、源码
项目实施
一、编辑调试模块代码
二、分配引脚
三、配置
四、编译
五、下载
拓展练习
项目4 I2C总线接口设计
项目要求
一、项目任务
二、实训设备
三、学习目标
项目相关知识
一、I2C总线简介
二、I2C总线特征介绍
三、二线制I2C串行EEPROM读/写操作
四、模块符号
五、源码
项目实施
一、编辑调试模块代码
二、分配引脚
三、配置
四、编译
五、下载
拓展练习