第1章 绪论 1
1.1 嵌入式系统发展趋势 1
1.2 基于XILINX FPGA设计嵌入式产品的优势 2
1.3 如何阅读本书 3
第2章 Xilinx公司新型FPGA结构 5
2.1 Spartan-3系列FPGA 5
2.1.1 Spartan-3型FPGA 5
2.1.2 Spartan-3E型FPGA 7
2.1.3 Spartan-3L型FPGA 8
2.1.4 Spartan-3A型FPGA 9
2.2 Virtex-4型FPGA结构 11
2.2.1 CLB结构 11
2.2.2 DCM结构 14
2.2.3 PMCD结构 18
2.2.4 局部时钟网络 19
2.2.5 IO特性 20
2.3 Virtex-5型FPGA结构 24
2.3.1 CLB逻辑架构 25
2.3.2 时钟资源 26
2.3.3 其他资源优势 27
第3章 Microblaze处理器结构 29
3.1 Microblaze逻辑结构 30
3.2 Microblaze总线结构 31
3.2.1 Microblaze的OPB总线 32
3.2.2 Microblaze的LMB总线 38
3.2.3 Microblaze的FSL总线 41
3.3 Microblaze的寄存器结构 43
3.3.1 通用寄存器组 43
3.3.2 特殊功能寄存器组 43
第4章 PowerPC405处理器核 45
4.1 PowerPC405总体结构 45
4.2 PowerPC405核的总线与控制器 47
4.2.1 OCM控制器 47
4.2.2 APU控制器 49
4.2.3 PLB总线 50
4.3 寄存器结构 52
4.3.1 通用寄存器 52
4.3.2 特殊寄存器 52
第5章 嵌入式设计的FPGA配置 63
5.1 传统配置和嵌入式设计配置 63
5.2 SPI/BPI FLASH加载原理 64
5.2.1 FPGA和SPI FLASH的连接 64
5.2.2 复用SPI FLASH 66
5.2.3 复用BPI FLASH 67
5.2.4 SPI FLASH+通用FLASH 69
5.3 混用并行FLASH加载原理 69
5.4 基于System ACE的加载方式原理 70
5.4.1 System ACE技术简介 70
5.4.2 System ACE的构成 71
5.4.3 ACE控制器的连接电路 72
5.4.4 ACE控制器的时序 74
5.4.5 ACE控制器的内部寄存器 77
第6章 Xilinx的XPS和SDK开发环境 82
6.1 Platform Studio 8.1工具套件简介 82
6.2 XPS使用的特殊文件 82
6.2.1 XMP文件结构 83
6.2.2 MHS文件结构 83
6.2.3 MSS文件结构 84
6.2.4 UCF文件结构 85
6.2.5 CMD文件结构 86
6.3 XPS的图形界面 87
6.3.1 XPS的窗口 87
6.3.2 XPS的菜单 94
6.4 软件调试图形界面 99
6.4.1 软件调试图形界面的窗口 99
6.4.2 软件调试图形界面的菜单 100
6.5 SDK图形界面 101
6.5.1 SDK图形界面的窗口 102
6.5.2 SDK图形界面的菜单 103
第7章 EDK工程设计流程 110
7.1 设计流程图 110
7.2 建立一个简单的Microblaze工程 111
7.2.1 构建基本硬件结构 111
7.2.2 连接所有组件 116
7.2.3 生成硬件比特流文件 121
7.2.4 分析报告和日志 122
7.2.5 编译相关测试应用软件 122
7.2.6 下载设计到目标板 125
7.3 建立一个简单的PPC405工程 126
7.3.1 构建基本硬件结构 126
7.3.2 连接所有组件 128
7.3.3 其他步骤 130
7.4 使用SDK建立应用软件工程 131
7.4.1 创建C语言工程 131
7.4.2 添加和调试源代码 134
7.4.3 运行程序和分析统计信息 135
7.4.4 向XPS加入调试后的应用软件工程 138
第8章 仿真和调试 139
8.1 仿真技术简介 139
8.2 使用Modelsim工具仿真嵌入式设计 140
8.2.1 Modelsim工具简介 140
8.2.2 生成Modelsim嵌入式仿真库 141
8.2.3 设置Modelsim嵌入式仿真环境 143
8.2.4 Testbench初步 146
8.2.5 仿真一个简单的嵌入式设计 148
8.2.6 使用第三方仿真核仿真复杂嵌入式设计 155
8.3 使用XMD工具调试嵌入式软件 159
8.3.1 XMD工具的基本命令 160
8.3.2 使用XMD工具 164
8.3.3 使用XMD命令行界面 165
8.3.4 使用图形调试界面基本流程 169
第9章 ISE工具和EDK工具协作设计 174
9.1 ISE工具简介 174
9.2 在ISE工具中添加处理器结构 175
9.3 输出EDK设计到ISE 180
第10章 定制与添加外设 188
10.1 IP核简介 188
10.2 EDK提供的IP核 188
10.3 添加EDK提供的IP核 190
10.3.1 添加SPI接口核 190
10.3.2 添加System ACE接口核 194
10.4 使用IPIF接口定制IP核 194
10.4.1 生成OPB总线上的新外设 195
10.4.2 添加用户逻辑代码 199
10.4.3 输入IP核到EDK工程 200
10.4.4 验证生成的IP核 207
10.5 完全定制IP核 207
10.5.1 构建用户逻辑 208
10.5.2 编写功能文件 208
10.5.3 输入IP核 210
10.5.4 验证IP核 212
第11章 使用Chipscope Pro调试设计 214
11.1 Chipscope Pro简介 214
11.2 在EDK中可使用的Chipscope core 215
11.2.1 Chipscope_icon原理 215
11.2.2 Chipscope_ila原理 215
11.2.3 Chipscope_opb_iba原理 217
11.2.4 Chipscope_plb_iba原理 218
11.2.5 Chipscope_vio原理 218
11.3 在设计中添加和配置Chipscope core 218
11.3.1 在设计中添加和配置ICON核 219
11.3.2 在设计中添加和配置ILA核 219
11.3.3 在设计中添加和配置IBA核 223
11.3.4 在设计中添加和配置VIO核 227
11.4 通过Analyzer调试嵌入式设计流程 228
11.4.1 调试前的准备工作 228
11.4.2 连接Analyzer工具与目标板 229
11.4.3 使用Analyzer观察ILA信号 230
11.4.4 使用Analyzer观察IBA信号 233
11.4.5 使用Analyzer观察VIO信号 234
第12章 用于FPGA的嵌入式操作系统 236
12.1 嵌入式操作系统发展历程 236
12.2 嵌入式操作系统分类与选型原则 237
12.3 嵌入式Linux操作系统 240
12.4 VxWorks操作系统 241
12.5 Nucleus操作系统 242
第13章 EDK软件库 244
13.1 LibXil Net库 245
13.2 LibXil File库 249
13.3 LibXil FATFile System(FATfs)库 250
13.4 LibXil Memory File System(MFS)库 251
13.5 LwIP库 253
13.6 LibXil Drivers库 254
第14章 基于Standalone的软件设计 255
14.1 应用软件工程的组成 256
14.1.1 代码文件 256
14.1.2 编译与连接选项设置 257
14.1.3 连接文件的结构 261
14.1.4 软件平台设置与生成BSP库文件 264
14.2 Microblaze的BSP 267
14.2.1 中断操作类 267
14.2.2 异常操作类 267
14.2.3 指令缓存操作类 268
14.2.4 数据缓存操作类 268
14.2.5 FSL总线接口宏 269
14.2.6 寄存器操作宏 270
14.3 PowerPC405的BSP 271
14.3.1 启动代码 271
14.3.2 缓存操作类 272
14.3.3 异常操作类 272
14.3.4 文件操作类 274
14.3.5 内存操作类 274
14.3.6 计时器操作类 274
14.3.7 FSL总线接口宏 275
第15章 基于Xilkernel的软件设计 278
15.1 Xilkernel简介 278
15.2 Xilkernel的API函数 279
15.2.1 线程管理类 279
15.2.2 信号灯类 281
15.2.3 消息队列类 283
15.2.4 共享内存类 284
15.2.5 互斥锁类 285
15.2.6 动态缓冲内存管理类 286
15.2.7 软件计时器类 286
15.3 Xilkernel的开发流程 287
15.3.1 构造硬件结构 287
15.3.2 设置软件平台 288
15.3.3 代码分析 296
15.4 生成文件系统并验证设计 301
第16章 移植Montavista Linux 305
16.1 Montavista Linux简介 305
16.2 构建基于Montavista Linux的交叉编译环境 305
16.3 构造基于PowerPC405的硬件系统 311
16.4 生成基于Montavista Linux的BSP 313
16.5 给Montavista Linux内核打补丁 315
16.5.1 补丁文件解析 315
16.5.2 操作步骤 317
16.6 定制和编译Montavista Linux内核 317
16.7 基于RAM方式启动Montavista Linux 320
16.8 通过SystemACE固化Montavista Linux内核 321
16.9 Montavista Linux移植中容易出现的错误 322
16.10 通过网络获得Montavista Linux帮助资源 326
附录 328
附录A 常用逻辑符号对照表 328
附录B 本书常用英文缩略语中英文对照表 329
参考文献 331