基于FPGA的数字电路实验指导书 本书特色
本书从数字电路与FPGA的基本概念出发,系统地介绍了数字电路实验课程所必需的FPGA开发的基础知识和开发流程,并设计了26个课程实验项目。 全书共分7章,第1章介绍了数字电路、FPGA与HDL的基本概念;第2~4章分别介绍了Verilog语言基础、Nexys3 FPGA实验板结构和FPGA开发工具软件ISE;第5~7章设计了15个基础实验、6个扩展实验和5个综合实验项目。 本书所列实验项目设计由浅入深、循序渐进,注重培养学生的综合设计和灵活应用能力。每个实验包含了实验目的、实验内容与原理、实验要求、实验步骤和思考与探索5个部分,内容详尽,要求明确,指导适度,适合作为本科院校学生的课程实验及课后自学用书,也适合Xilinx FPGA开发的初学者使用。
基于FPGA的数字电路实验指导书 目录
第1章 数字电路、FPGA与HDL 1 1.1 数字电路 1 1.2 FPGA 3 1.2.1 可编程逻辑器件(PLD) 3 1.2.2 FPGA的基本结构 4 1.3 硬件描述语言(HDL) 5 1.3.1 VHDL 6 1.3.2 Verilog HDL 7
第2章 Verilog HDL基础 8 2.1 Verilog HDL概述 8 2.1.1 数字电路的设计方法 8 2.1.2 Verilog HDL程序结构 9 2.2 Verilog HDL的模块 9 2.2.1 模块的结构 9 2.2.2 模块的声明与内容 10 2.2.3 模块实例与调用 12 2.2.4 时间单位与时延 13 2.3 词法约定 15 2.3.1 标识符 15 2.3.2 关键字 15 2.3.3 注释 16 2.3.4 格式 16 2.4 数据类型 16 2.4.1 常量 17 2.4.2 变量 19 2.4.3 标量与向量 22 2.4.4 参数 22 2.5 表达式与操作符 23 2.5.1 表达式与操作数 23 2.5.2 操作符 23 2.5.3 操作符优先级 28 2.6 系统任务和函数 29 2.6.1 $display和?$write 29 2.6.2 系统任务?$monitor 31 2.6.3 系统函数?$time和?$realtime 32 2.6.4 系统任务?$finish和?$stop 33 2.6.5 系统任务?$readmem 33 2.6.6 系统任务?$random 34 2.7 Verilog HDL建模方式 34 2.7.1 建模方式概述 34 2.7.2 结构建模方式 36 2.7.3 数据流建模方式 40 2.7.4 行为建模方式 42
第3章 实验系统 53 3.1 Nexys3教学开发板简介 53 3.2 Nexys3实验板硬件系统 54 3.2.1 主芯片 54 3.2.2 FPGA配置电路 55 3.2.3 存储模块 56 3.2.4 电源模块 57 3.2.5 时钟模块 58 3.2.6 USB PROG接口 58 3.2.7 USB A型接口 59 3.2.8 USB-UART接口(串口) 60 3.2.9 基本I/O设备 60 3.2.10 以太网口 62 3.2.11 VGA接口 63 3.2.12 Pmod连接器 64 3.2.13 VHDC连接器 64
第4章 系统开发平台 66 4.1 开发平台简介 66 4.2 ISE Design Suite 66 4.2.1 ISE简介 66 4.2.2 ISE Design Suite功能 67 4.2.3 ISE Design Suite安装 67 4.3 Digilent Adept调试工具 73 4.3.1 Digilent Adept 简介 73 4.3.2 Digilent Adept 安装 73 4.4 项目开发流程 75 4.4.1 创建工程 75 4.4.2 编写代码 78 4.4.3 语法检查 80 4.4.4 编写测试代码 81 4.4.5 仿真 83 4.4.6 逻辑综合 84 4.4.7 查看电路 85 4.4.8 配置管脚 87 4.4.9 下载代码 89 4.4.10 板卡实验 91
第5章 基础实验项目 92 5.1 实验1:五输入表决器设计 92 5.1.1 实验目的 92 5.1.2 实验内容与原理 92 5.1.3 实验要求 92 5.1.4 实验步骤 93 5.1.5 思考与探索 93 5.2 实验2:多路数据选择器设计 94 5.2.1 实验目的 94 5.2.2 实验内容与原理 94 5.2.3 实验要求 94 5.2.4 实验步骤 94 5.2.5 思考与探索 95 5.3 实验3:译码器设计 95 5.3.1 实验目的 95 5.3.2 实验内容与原理 95 5.3.3 实验要求 96 5.3.4 实验步骤 96 5.3.5 思考与探索 97 5.4 实验4:二进制优先级编码器设计 97 5.4.1 实验目的 97 5.4.2 实验内容与原理 97 5.4.3 实验要求 98 5.4.4 实验步骤 99 5.4.5 思考与探索 99 5.5 实验5:数值比较器设计 99 5.5.1 实验目的 99 5.5.2 实验内容与原理 99 5.5.3 实验要求 100 5.5.4 实验步骤 100 5.5.5 思考与探索 101 5.6 实验6:加法器设计 101 5.6.1 实验目的 101 5.6.2 实验内容与原理 101 5.6.3 实验要求 101 5.6.4 实验步骤 102 5.6.5 思考与探索 102 5.7 实验7:加/减法运算器设计 102 5.7.1 实验目的 102 5.7.2 实验内容与原理 103 5.7.3 实验要求 103 5.7.4 实验步骤 103 5.7.5 思考与探索 104 5.8 实验8:基本RS触发器设计 105 5.8.1 实验目的 105 5.8.2 实验内容与原理 105 5.8.3 实验要求 105 5.8.4 实验步骤 106 5.8.5 思考与探索 106 5.9 实验9:D触发器设计 106 5.9.1 实验目的 106 5.9.2 实验内容与原理 106 5.9.3 实验要求 107 5.9.4 实验步骤 107 5.9.5 思考与探索 108 5.10 实验10:JK触发器设计 108 5.10.1 实验目的 108 5.10.2 实验内容与原理 108 5.10.3 实验要求 109 5.10.4 实验步骤 109 5.10.5 思考与探索 109 5.11 实验11:同步二进制计数器设计 110 5.11.1 实验目的 110 5.11.2 实验内容与原理 110 5.11.3 实验要求 111 5.11.4 实验步骤 111 5.11.5 思考与探索 111 5.12 实验12:十进制计数器设计 112 5.12.1 实验目的 112 5.12.2 实验内容与原理 112 5.12.3 实验要求 112 5.12.4 实验步骤 113 5.12.5 思考与探索 113 5.13 实验13:可逆计数器设计 113 5.13.1 实验目的 113 5.13.2 实验内容与原理 113 5.13.3 实验要求 114 5.13.4 实验步骤 114 5.13.5 思考与探索 115 5.14 实验14:基本寄存器设计 115 5.14.1 实验目的 115 5.14.2 实验内容与原理 115 5.14.3 实验要求 116 5.14.4 实验步骤 116 5.14.5 思考与探索 116 5.15 实验15:移位寄存器设计 117 5.15.1 实验目的 117 5.15.2 实验内容与原理 117 5.15.3 实验要求 118 5.15.4 实验步骤 118 5.15.5 思考与探索 119
第6章 扩展实验项目 120 6.1 实验16:定时与分频实验 120 6.1.1 实验目的 120 6.1.2 实验内容与原理 120 6.1.3 实验要求 122 6.1.4 实验步骤 122 6.1.5 思考与探索 122 6.2 实验17:流水灯实验 123 6.2.1 实验目的 123 6.2.2 实验内容与原理 123 6.2.3 实验要求 125 6.2.4 实验步骤 125 6.2.5 思考与探索 126 6.3 实验18:数码管扫描显示 126 6.3.1 实验目的 126 6.3.2 实验内容与原理 126 6.3.3 实验要求 129 6.3.4 实验步骤 130 6.3.5 思考与探索 130 6.4 实验19:数字钟设计 130 6.4.1 实验目的 130 6.4.2 实验内容与原理 131 6.4.3 实验要求 131 6.4.4 实验步骤 131 6.4.5 思考与探索 132 6.5 实验20:小键盘扫描实验 132 6.5.1 实验目的 132 6.5.2 实验内容与原理 132 6.5.3 实验要求 135 6.5.4 实验步骤 136 6.5.5 思考与探索 136 6.6 实验21:串口通信实验 137 6.6.1 实验目的 137 6.6.2 实验内容与原理 137 6.6.3 实验要求 144 6.6.4 实验步骤 145 6.6.5 思考与探索 146
第7章 综合实验项目 147 7.1 实验22:寄存器堆设计 147 7.1.1 实验目的 147 7.1.2 实验内容与原理 147 7.1.3 实验要求 148 7.1.4 实验步骤 148 7.1.5 思考与探索 148 7.2 实验23:按键消抖与单脉冲 产生实验 149 7.2.1 实验目的 149 7.2.1 实验内容与原理 149 7.2.3 实验要求 151 7.2.4 实验步骤 151 7.2.5 思考与探索 152 7.3 实验24:出租车计费器设计 152 7.3.1 实验目的 152 7.3.2 实验内容与原理 152 7.3.3 实验要求 153 7.3.4 实验步骤 153 7.3.5 思考与探索 153 7.4 实验25:交通灯设计 154 7.4.1 实验目的 154 7.4.2 实验内容与原理 154 7.4.3 实验要求 155 7.4.4 实验步骤 155 7.4.5 思考与探索 156 7.5 实验26:自动售货机设计 156 7.5.1 实验目的 156 7.5.2 实验内容与原理 156 7.5.3 实验要求 157 7.5.4 实验步骤 158 7.5.5 思考与探索 158
附录A Nexys4-DDR实验板卡 159 A.1 Nexys4-DDR实验板卡概况 159 A.2 Nexys4-DDR部件 160 A.2.1 电源供电 160 A.2.2 FPGA配置 161 A.2.3 基本I/O设备 161 A.2.4 USB-UART接口 162 A.2.5 Pmod连接器 162 A.2.6 VGA接口 163 A.2.7 振荡器/时钟 164 A.2.8 以太网接口 164 A.2.9 温度传感器 164 附录B 实验报告模板 165 参考文献 168
|