第1章 基于可编程逻辑的数字系统设计概述 1
1.1 可编程逻辑设计步骤 1
1.1.1 设计输入 1
1.1.2 编译状态 2
1.1.3 功能模拟 2
1.1.4 综合 2
1.1.5 实现 2
1.1.6 时序模拟 2
1.1.7 下载 3
1.2 数字电路设计实验环境配置 3
1.2.1 Logisim安装 3
1.2.2 ModelSim安装配置 3
1.2.3 Vivado安装配置 5
第2章 Logisim基础知识 18
2.1 Logisim基本功能介绍 18
2.2 Logisim使用入门 23
第3章 Verilog HDL基础 28
3.1 Verilog HDL门级描述 28
3.1.1 模块定义 28
3.1.2 端口声明 29
3.1.3 门级调用 30
3.1.4 模块的实例化 32
3.1.5 内部连线声明 34
3.1.6 层次化设计 34
3.2 Verilog HDL数据流级描述 35
3.2.1 assign语句 35
3.2.2 操作符 37
3.2.3 操作数 38
3.3 Verilog HDL行为级描述 42
3.3.1 initial结构和always结构 42
3.3.2 顺序块和并行块 44
3.3.3 if语句 47
3.3.4 case语句 48
3.3.5 循环语句 49
3.3.6 过程赋值语句 52
3.3.7 任务与函数 53
3.3.8 设计的可综合性 56
3.4 Verilog HDL测试平台描述 60
3.4.1 基本的TestBench结构 61
3.4.2 激励信号描述 62
3.4.3 编译指令 64
3.4.4 测试相关的系统任务和系统函数 67
3.5 状态机描述 74
3.5.1 状态机类型 74
3.5.2 状态机表示方法 74
3.5.3 状态机的Verilog HDL描述方法 76
3.5.4 状态机设计实例——上升沿检测器 78
第4章 Xilinx FPGA开发板及软件工具 84
4.1 Xilinx FPGA开发板 84
4.1.1 Nexys 4 DDR开发板介绍 84
4.1.2 主要外围接口电路介绍 85
4.2 Vivado设计流程 88
4.2.1 新建工程 90
4.2.2 设计文件输入 92
4.2.3 功能仿真 102
4.2.4 设计综合 105
4.2.5 工程实现 106
4.3 Vivado时序约束 108
4.3.1 时钟约束简介 109
4.3.2 添加时钟约束 109
4.3.3 Report Timing Summary时序分析 114
4.4 IP核封装及模块化设计 119
4.4.1 创建工程 119
4.4.2 输入设计 122
4.4.3 IP封装 127
4.4.4 添加用户自定义IP 134
4.4.5 模块化设计 136
4.5 Vivado逻辑分析仪ILA的使用 146
4.5.1 创建工程 147
4.5.2 添加源文件和约束文件 147
4.5.3 综合 150
4.5.4 Mark Debug 152
4.5.5 Set up Debug 153
4.5.6 生成Bit文件 154
4.5.7 下载 154
4.5.8 Hardware Debug 155
第5章 ModelSim仿真及调试工具 161
5.1 基本使用 161
5.1.1 用户操作界面简介 161
5.1.2 新建ModelSim库 163
5.1.3 新建工程 163
5.2 波形窗口使用 166
5.2.1 波形调整 166
5.2.2 保存波形文件 167
5.3 数据流窗口使用 167
5.4 断点调试 170
5.4.1 查看代码文件 170
5.4.2 设置断点 170
5.4.3 重新仿真 170
5.4.4 查看信号 171
5.4.5 单步调试 172
5.5 代码覆盖率查看 173
5.5.1 代码覆盖率窗口的调出 173
5.5.2 代码覆盖率窗口的查看与分析 174
5.5.3 代码覆盖率报告 178
5.5.4 根据代码覆盖率修改测试代码 180
5.6 内存查看 182
5.6.1 内存查看窗口调出 182
5.6.2 指定地址单元/数据查看 183
5.6.3 存储器数据导出导入 184
5.6.4 存储器数据修改 184
第6章 数字逻辑实验设计 187
6.1 基本门电路与数据扩展描述实验 187
6.2 数据选择器与数据分配器实验 194
6.3 译码器与编码器实验 196
6.4 桶形移位器实验 200
6.5 数据比较器与加法器实验 203
6.6 触发器与PC寄存器实验 207
6.7 计数器与分频器实验 210
6.8 RAM与寄存器堆实验 212
6.9 行为级ALU实验 215
6.10 数字逻辑综合实验 218
第7章 MIPS CPU基础及设计 219
7.1 MIPS CPU概述 219
7.1.1 概述 219
7.1.2 基本架构及编程模型 220
7.1.3 CP0 222
7.1.4 MIPS CPU中断机制 225
7.1.5 MARS汇编器 227
7.2 MIPS32指令系统介绍 229
7.2.1 指令格式及类型 229
7.2.2 指令的寻址 230
7.3 MIPS 31条指令介绍 231
7.4 MIPS 23条扩展指令介绍 242
7.5 CPU设计方法 249
7.5.1 单周期CPU设计 249
7.5.2 多周期CPU设计 269
7.6 CPU的测试 284
7.6.1 前仿真测试 284
7.6.2 后仿真测试 298
7.6.3 下板测试 298
第8章 计算机组成原理实验设计 304
8.1 MIPS汇编编程实验 304
8.2 32位乘法器实验 306
8.3 32位除法器实验 309
8.4 31条指令单周期CPU设计实验 312
8.5 中断处理实验 314
8.6 54条指令CPU设计实验 318
8.7 54条指令CPU综合应用实验 319
附录A Verilog快速参考指南 321
参考文献 324