本书根据FPGA/Verilog HDL技术的应用现状,结合作者多年的教学经验总结,以理论基础联系工程设计应用,循序渐进地对FPGA/Verilog HDL技术基础、工程应用案例进行详尽的介绍,使得读者通过学习,能够从事相关技术的研发工作。
全书分为8章,主要介绍了FPGA技术,Verilog HDL语法基础,Verilog HDL设计进阶,Quartus及Modelsim设计工具,FPGA系统设计实例,时序约束分析及实例讲解,Quartus与Matlab协同设计举例,SOPC系统设计及举例。前半部分的基础知识章节列举了大量的例题,并且对易犯错的语句、语法进行对比讲解,后半部分的工程设计实例章节详细说明了操作的每一个步骤,并且配有相应的插图,*后还对设计结果进行了简要分析。
本书可作为高等院校通信工程、自动化控制工程、电子工程及其他相近专业本、专科生的教材,也可供相应的工程技术人员和科研人员参考。
本书循序渐进地对FPGA/Verilog HDL技术基础和工程应用案例进行详尽介绍,包括Verilog HDL语法、Quartus及Modelsim设计工具、FPGA系统设计实例、时序约束分析实例、Quartus与Matlab协同设计实例及SOPC系统设计实例几方面内容。本书包含丰富的例题和设计实例,并对设计结果进行简要分析,有助于读者更好的理解。
序言
电子技术的发展日新月异,从早期的基于晶体管和中小规模集成电路的设计转变为如今的以大规模集成电路为核心的SOC设计; 从以硬件为主的简单电路设计转变为以EDA软件编程技术为主的复杂系统设计。数字电子技术的设计更是如此,从早期的以51单片机为主、基于汇编语言编程的设计,转变为如今以ARM、DSP、FPGA为核心,基于高级软硬件语言编程的电路设计,这些转变不过短短一二十年。早期的电子设计中,FPGA由于其并行执行的能力强,因此一般用在高速信息处理的场合,例如图像、视频数据采集与处理。随着FPGA集成度的提高、大量软核的开发,FPGA体现出越来越多的灵活性,使用的场合也越来越广。以前,以ARM为控制核心,DSP做信号处理,FPGA做高速采集的设计思路,现在可用软核的形式全部集成在一块FPGA芯片中,使得硬件系统的集成化程度变得越来越高。基于上述优势,FPGA的应用领域也变得越来越宽,智能汽车、工业控制、军事航空、消费电子、信息通信等领域对FPGA的依赖程度变得越来越高。FPGA的设计主要以基于硬件描述语言的EDA设计方法为主,在复杂的系统中,也可以采用构建嵌入式处理器加外围接口电路的SOPC等设计方法。本书的编写主要以FPGA的硬件描述语言为核心,并通过大量实例介绍综合系统的设计方法。全书共分为8章,主要内容如下:第1章主要介绍FPGA的开发方法和工具,以及该技术的发展趋势。第2章主要介绍Verilog HDL的基础语法结构和相应的设计实例。第3章主要介绍Quartus Ⅱ及Modelsim设计工具的使用方法。第4章主要介绍Verilog HDL如何应用在组合逻辑电路和时序逻辑电路设计中,同时介绍了状态机的设计。第5章主要介绍基于Verilog HDL的设计实例,包含按键接口、LCD控制、A/D采集等常用模块的FPGA实现。第6章主要介绍时序约束的意义及方法,并通过实例进行详细说明。第7章主要介绍Quartus与Matlab协同设计方法,并通过4个实例进行详细说明。第8章主要介绍SOPC的基本概念,并通过实例介绍SOPC的设计流程。通过本书的学习,读者将能够独立地运用Verilog HDL硬件描述语言及相关EDA软件实现FPGA的系统设计。本书由成都理工大学工程技术学院的李勇、何勇、朱晋、孟照伟4位教师共同编写完成。其中李勇老师主要负责全书的筹划、统稿等工作,并负责编写本书的第1、6、7章; 何勇老师负责编写本书的第3、5、8章; 朱晋老师主要编写本书的第2章; 孟照伟老师主要编写本书的第4章。在本书的编写过程中,成都理工大学工程技术学院电子信息与计算机工程系的系主任柳建博士和其他同仁给予了大力支持,在此表示感谢。另外,编者还引用了其他相关文献和网络资源,在此对其相应的学者和作者表示衷心的感谢!由于编者水平有限,书中不妥之处在所难免,请广大读者批评指正,我们将作进一步完善。
编者2016年3月
目录
第1章FPGA技术
1.1认识FPGA
1.2学习FPGA的意义
1.3FPGA器件选型
1.4FPGA的开发方法及工具
1.5FPGA的三种应用类型
1.6FPGA技术的发展趋势
1.7FPGA与CPLD的特点比较
1.8FPGA的JTAG加载
1.9FPGA的边界扫描测试
习题
第2章Verilog HDL语法基础
2.1Verilog HDL简介
2.2Verilog HDL基本模块结构
2.2.1Verilog HDL设计程序介绍
2.2.2模块端口定义
2.2.3模块内容
2.3Verilog HDL语言要素
2.3.1常量
2.3.2变量
2.3.3标识符
2.3.4关键词
2.4运算符及表达式
2.4.1基本的算术运算符
2.4.2位运算符
2.4.3逻辑运算符
2.4.4关系运算符
2.4.5等式运算符
2.4.6移位运算符
2.4.7位拼接运算符
2.4.8缩减运算符
2.5Verilog HDL基本语句
2.5.1赋值语句
2.5.2块语句
2.5.3条件语句
2.5.4循环语句
2.6任务与函数
2.6.1系统任务
2.6.2函数
2.7预编译指令
2.7.1宏定义指令`define
2.7.2文件包含指令`include
2.7.3时间尺度`timescale
2.7.4条件编译指令`ifdef、`else、`endif
小结
习题
第3章Quartus Ⅱ及Modelsim设计工具的使用方法
3.1Quartus Ⅱ软件使用方法
3.1.1FPGA的设计流程
3.1.2Quartus Ⅱ的设计流程
3.2Modelsim的调用及Testbench编写
习题
第4章Verilog HDL设计进阶
4.1Verilog HDL组合电路设计
4.1.1Verilog HDL设计的不同描述方式
4.1.2选择电路的设计
4.1.3基本组合逻辑电路设计实例
4.2Verilog HDL时序电路设计
4.2.1触发器的描述方式
4.2.2计数器与分频器的设计
4.2.3阻塞赋值与非阻塞赋值
4.3Verilog HDL有限状态机设计
4.3.1Moore型状态机和Mealy型状态机的设计
4.3.2Verilog HDL有限状态机的不同设计方法
小结
习题
第5章基于Verilog的FPGA系统设计实例
5.1LED花样灯控制模块的设计
5.2按键及防抖接口电路设计
5.3LCD1602液晶控制器设计
5.4A/D转换控制器的设计
第6章时序约束分析及实例讲解
6.1关于时序约束
6.2输入最大最小延时
6.2.1最大输入延时
6.2.2最小输入延时
6.3输出最大最小延时
6.3.1最大输出延时
6.3.2最小输出延时
6.4时序约束实例讲解
6.4.1时钟的时序约束
6.4.2I/O口的时序约束
习题
第7章Quartus与Matlab协同设计举例
7.1正弦信号发生器设计
7.1.1设计方案
7.1.2设计步骤
7.1.3设计结果
7.2快速傅里叶变换设计
7.2.1快速傅里叶变换原理
7.2.2设计思路
7.2.3设计步骤
7.2.4设计结果
7.3CIC抽取滤波器设计
7.3.1CIC抽取滤波器设计原理
7.3.212倍抽取滤波器设计与仿真
7.3.3仿真结果分析
7.4CIC插值滤波器设计
7.4.1CIC插值滤波器原理及数据处理
7.4.212倍插值滤波器设计与仿真
7.4.3仿真结果分析
习题
第8章SOPC系统设计
8.1SOPC及其技术概述
8.2基于SOPC的系统设计举例
8.2.1SOPC系统设计流程
8.2.2SOPC系统设计举例
参考文献