本书以Xilinx公司的Vivado FPGA设计套件为软件平台,以依元素科技有限公司的EGO1 Aritix-7实验板卡为硬件平台,将硬件描述语言Verilog HDL与FPGA设计实例相结合,系统介绍了利用Vivado和Verilog HDL进行数字电路设计和FPGA开发的方法与流程。 本书主要内容包括硬件开发平台介绍、Vivado软件平台介绍、FPGA设计实例、组合逻辑电路设计实例、时序逻辑电路设计实例、数字逻辑设计和接口实例及数字逻辑综合实验。本书将Verilog HDL的语法讲解融入大量的FPGA设计实例中,内容由浅入深、循序渐进、系统全面,易于读者掌握Verilog HDL和FPGA设计方法。
目 录
第1章 硬件开发平台介绍 (1)
1.1 Xilinx FPGA器件 (1)
1.1.1 Xilinx公司简介 (1)
1.1.2 Xilinx的FPGA器件系列 (1)
1.2 EGO1实验板卡 (4)
1.2.1 EGO1实验板卡概述 (4)
1.2.2 板卡使用注意事项 (4)
1.2.3 EGO1实验板卡用户手册 (5)
1.3 EGO1实验板卡测试流程 (19)
1.4 EGO1实验板卡的引脚约束 (20)
第2章 Vivado软件平台介绍 (25)
2.1 Vivado设计套件 (25)
2.1.1 Vivado软件安装流程 (25)
2.1.2 IP封装器、IP集成器和可
扩展IP目录 (29)
2.1.3 标准化XDC约束文件 (30)
2.1.4 工程命令语言 (31)
2.1.5 Vivado设计套件的启动
方法 (31)
2.1.6 Vivado设计套件的界面 (31)
2.2 FPGA设计流程 (36)
2.2.1 Vivado套件的设计流程 (36)
2.2.2 设计综合流程 (39)
2.2.3 设计实现流程 (41)
2.3 硬件描述语言 (43)
2.3.1 VHDL简介 (44)
2.3.2 Verilog HDL简介 (47)
第3章 FPGA设计实例 (53)
3.1 74系列IP封装设计实例 (53)
3.1.1 IP核分类 (53)
3.1.2 IP封装实验流程 (54)
3.2 基于原理图的设计实例—
全加器 (66)
3.2.1 全加器实验原理 (66)
3.2.2 实验步骤 (67)
3.3 基于Verilog HDL的设计实例—
流水灯 (79)
3.3.1 设计要求 (79)
3.3.2 操作步骤 (79)
第4章 组合逻辑电路设计实例 (89)
4.1 逻辑门电路 (89)
4.1.1 基本及常用的逻辑门 (89)
4.1.2 与非门电路的简单应用 (94)
4.2 多路选择器 (96)
4.2.1 2选1多路选择器 (96)
4.2.2 4选1多路选择器 (97)
4.2.3 4位2选1多路选择器 (100)
4.2.4 74LS253的IP核设计及
应用 (102)
4.2.5 74LS151的IP核设计 (104)
4.3 数值比较器 (105)
4.3.1 4位二进制数值比较器 (106)
4.3.2 74LS85的IP核设计及
应用 (108)
4.3.3 利用数据选择器74LS151
设计2位比较器 (111)
4.4 译码器 (112)
4.4.1 3-8线译码器 (112)
4.4.2 74LS138的IP核设计及
应用 (114)
4.4.3 显示译码器 (116)
4.5 编码器 (121)
4.5.1 二进制普通编码器 (121)
4.5.2 二进制优先编码器 (122)
4.5.3 中规模集成8-3线优先
编码器74LS148的IP核
设计 (124)
4.6 编码转换器 (126)
4.6.1 二进制-BCD码转换器 (126)
4.6.2 格雷码转换器 (129)
4.7 加法器 (130)
4.7.1 半加器 (131)
4.7.2 全加器 (131)
4.7.3 4位全加器 (132)
4.8 减法器 (135)
4.8.1 半减器 (135)
4.8.2 全减器 (135)
4.9 乘法器 (138)
4.10 除法器 (141)
第5章 时序逻辑电路设计实例 (144)
5.1 锁存器和触发器 (144)
5.1.1 锁存器 (144)
5.1.2 触发器 (145)
5.1.3 74LS74的IP核设计及
应用 (150)
5.2 寄存器 (152)
5.2.1 基本寄存器 (152)
5.2.2 移位寄存器 (155)
5.2.3 74LS194的IP核设计及
应用 (161)
5.3 计数器 (163)
5.3.1 二进制计数器 (163)
5.3.2 N进制计数器 (166)
5.3.3 任意波形的实现 (171)
5.3.4 74LS161的IP核设计及
应用 (173)
5.4 脉冲宽度调制 (177)
5.5 时序逻辑电路综合设计 (179)
第6章 数字逻辑设计和接口实例 (186)
6.1 有限状态机 (186)
6.1.1 Moore状态机和Mealy
状态机 (186)
6.1.2 有限状态机设计例程 (186)
6.2 最大公约数 (197)
6.2.1 GCD算法 (198)
6.2.2 改进的GCD算法 (205)
6.3 整数平方根 (208)
6.3.1 整数平方根算法 (209)
6.3.2 改进的整数平方根算法 (216)
6.4 存储器 (219)
6.4.1 只读存储器 (219)
6.4.2 分布式的存储器 (222)
6.5 VGA控制器 (225)
6.5.1 VGA的时序 (226)
6.5.2 VGA控制器实例 (227)
6.6 键盘和鼠标接口 (246)
6.6.1 键盘 (248)
6.6.2 鼠标 (251)
第7章 数字逻辑综合实验 (259)
7.1 数字钟 (259)
7.2 数字频率计 (268)
7.3 7段数码管滚动显示号码 (272)
7.4 电梯控制器 (276)
参考文献 (282)