第1章 CPU的设计与实现 1
1.1序 2
1.2计算机系统 4
1.2.1什么是计算机 4
1.2.2什么是CPU 5
专栏 CPU的位宽 8
1.2.3什么是内存 8
1.2.4什么是I/O 9
专栏 字节序 10
1.2.5什么是总线 12
专栏 总线的优缺点 14
1.2.6小结 14
专栏 计算机相关书籍 14
1.3数字电路基础 15
1.3.1什么是数字电路 15
1.3.2数值表达 15
1.3.3有符号二进制数 16
专栏 比特和字节 17
专栏 1K字节有多大 17
1.3.4 MOSFET的结构 17
1.3.5逻辑运算 19
1.3.6 CMOS基本逻辑门电路 20
1.3.7存储元件 21
专栏 建立时间与保持时间 24
1.3.8组合电路和时序电路 25
1.3.9时钟同步设计 25
1.3.10小结 25
专栏 数字电路相关书籍 25
1.4 Verilog HDL语言 26
1.4.1什么是VerilogHDL 26
1.4.2电路描述 27
专栏 默认网络类型 32
专栏 组合电路描述中锁存器的推定与Don’t care 37
专栏 正逻辑与负逻辑 42
1.4.3电路仿真 43
专栏 同步电路中信号变化的时序 45
1.4.4 Verilog HDL的仿真环境 50
1.4.5小结 56
专栏 VerilogHDL相关书籍 56
1.5系统蓝图 57
1.5.1目标系统整体介绍 57
1.5.2关于本章中的代码 58
专栏 字编址与字节位移 62
1.6总线的设计与实现 63
1.6.1总线的设计 63
1.6.2总线的实现 66
1.6.3小结 78
1.7存储器的设计与实现 79
1.7.1 FPGA的RAM区域 79
1.7.2 ROM的设计与实现 81
1.7.3小结 83
专栏 存储器相关书籍 83
1.8 AZ Processor的设计与实现 84
1.8.1关于CPU 84
专栏CPI和MIPS值 93
1.8.2 AZ Processor的设计 93
专栏 指令集架构与微架构 105
1.8.3 AZ Processor的实现 106
1.8.4小结 159
专栏 计算机架构相关书籍 159
1.9 I/O的设计与实现 162
1.9.1定时器 162
1.9.2 UART 167
专栏 UART实例 168
1.9.3 GPIO 181
1.9.4小结 188
专栏 I/O相关书籍 188
1.10 AZPR SoC整体连接 189
1.10.1各模块的连接 189
1.10.2时钟模块的实现 191
1.10.3顶层模块的实现 193
1.10.4小结 193
1.11 AZPR SoC的仿真 194
1.11.1仿真模型的编写 194
1.11.2 Testbench的编写 197
1.11.3执行仿真 200
1.11.4小结 201
1.12本章总结 202
第2章 电路板的设计与制作 203
2.1序 204
2.2电路板规格 206
2.2.1电路板名称 206
2.2.2电路板的构成 206
2.2.3电路板尺寸 206
2.2.4电路板层数 207
2.2.5 FPGA选型 207
2.2.6外围电路的选定 208
专栏 关于FPGA 209
专栏 关于JTAG 211
2.3元件选型 212
2.3.1元件选型标准 212
2.3.2元件选型 212
2.3.3元件的选购 218
2.4电路设计 221
2.4.1下载规格书 222
2.4.2配置电路 223
2.4.3外围电路 228
2.4.4电源电路 232
2.4.5电路板设计环境 234
2.4.6使用Eagle设计电路图 236
专栏 关于U LP 241
专栏 Eagle使用方法相关的书籍/说明书 241
2.4.7完成的电路图 241
2.5布局设计 247
2.5.1电路板设计约束条件及布线策略 247
2.5.2 FPGA板的布局设计 248
2.5.3电源板的布局设计 252
2.5.4使用Eagle布局 254
2.5.5完成的布局 259
2.6制作元件库 261
2.6.1制作Symbol 261
2.6.2制作Package 263
2.6.3制作Device 264
2.7电路板3D模型 269
2.7.1软件使用说明 269
2.7.2准备3D模型库 271
专栏 关于3D模型库的管理 278
2.7.3制作电路板模型 279
2.8制作感光板电路板 280
2.8.1整体流程 280
2.8.2制作光罩 282
2.8.3粘合光罩 284
2.8.4曝光 285
2.8.5显像 288
2.8.6蚀刻 289
2.8.7阻焊剂 291
2.8.8开孔 296
2.8.9在背面安装VPort接头时的处理 298
2.8.10制作通孔 299
2.8.11飞线 300
2.9使用电路板制造服务 302
2.9.1电路板制造服务 302
2.9.2 DRC 302
2.9.3输出Gerber数据 305
2.9.4检查Gerber数据 306
专栏 执行DFM检查的方法 309
专栏 阻焊层遮罩的印刷设置 312
2.9.5向P板.com公司下单制板 312
专栏 拼板数据的准备 314
2.9.6向OLIMEX公司下单制板 318
2.10组装电路板 321
2.10.1电源板 321
2.10.2组装FPGA板 321
2.11功能测试 323
2.11.1识别FPGA 323
2.11.2诊断程序 323
2.12本章总结 326
第3章 编程 327
3.1序 328
3.2开发环境 329
3.2.1准备工作 329
3.2.2 FPGA开发环境 330
3.2.3 ISE WebPACK 331
3.2.4 UrJTAG 359
专栏 cblsrv-0.1_ft2232 370
3.2.5交叉汇编程序 370
3.2.6第一个程序 376
3.3串口通信 381
3.3.1安装TeraTerm 381
3.3.2编写程序 382
专栏 子程序 388
专栏 ASCII码 389
3.3.3执行程序 390
3.4程序加载器 391
3.4.1 XMODEM协议 391
3.4.2编写程序 393
3.4.3编写加载测试程序 402
3.4.4执行程序 403
3.5中断与异常 406
3.5.1什么是中断 406
3.5.2编写程序 410
3.5.3执行程序 414
3.5.4什么是异常 415
3.5.5编写程序 415
3.5.6执行程序 419
3.6七段数码管 420
3.6.1什么是七段数码管 420
3.6.2七段数码管的控制 420
3.6.3七段数码管计数器概要 422
3.6.4编写程序 423
3.6.5执行程序 428
3.7制作一个实用程序 429
3.7.1功能概要 429
3.7.2制作程序 433
3.7.3执行程序 446
3.8结语 447
谢辞 448
后记 449
版权声明 450