《FPGA与SOPC设计教程 DE2实践》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:张志刚编著
  • 出 版 社:西安:西安电子科技大学出版社
  • 出版年份:2007
  • ISBN:7560618049
  • 页数:334 页
图书介绍:本书对Altera DE2 SOPC开发平台的硬件设计进行分析,介绍了FPGA与SOPC的设计流程,并通过大量的实验从简到难详细介绍了如何在DE2平台上进行数字系统设计。

第1章 FPGA基本概念与DE2开发平台 1

1.1 可编程逻辑器件 1

1.1.1 可编程逻辑器件概述 1

1.1.2 CPLD的结构与原理 3

1.1.3 FPGA的结构与原理 5

1.1.4 结构化ASIC 7

1.2 Cyclone Ⅱ系列FPGA 9

1.2.1 Cyclone Ⅱ系列FPGA概述 9

1.2.2 逻辑单元 11

1.2.3 逻辑阵列块(LAB) 13

1.2.4 MultiTrack互连 15

1.2.5 全局时钟网络及锁相环 19

1.2.6 嵌入式存储器 23

1.2.7 嵌入式乘法器 25

1.2.8 IOE的结构及特性 28

1.3 DE2开发平台 30

1.3.1 DE2板上资源及硬件布局 30

1.3.2 DE2原理 32

1.4 DE2平台的开发环境 43

1.4.1 安装Quartus Ⅱ及相关软件包 43

1.4.2 安装DSP Builder 44

第2章 FPGA设计流程 46

2.1 Quartus Ⅱ设计流程概述 46

2.2 设计输入 51

2.3 设计约束和分配 54

2.4 设计综合 56

2.5 布局布线 58

2.6 基于模块的设计 60

2.7 仿真 62

2.8 时序分析 65

2.9 时序逼近 67

2.10 用Quartus Ⅱ完成FPGA设计的实例 69

2.10.1 建立一个新工程 69

2.10.2 设计输入 71

2.10.3 分配引脚 76

2.10.4 电路仿真 77

2.10.5 编程与配置FPGA 80

第3章 SOPC技术 83

3.1 SOPC Builder 83

3.1.1 Altera的SOPC技术 83

3.1.2 SOPC系统设计流程 86

3.2 Avalon交换架构 87

3.2.1 Avalon总线基本概念 87

3.2.2 Avalon总线信号 91

3.2.3 Avalon总线传输类型及时序 95

3.3 Nios Ⅱ软核处理器 100

3.3.1 Nios Ⅱ软核处理器概述 100

3.3.2 Nios Ⅱ软核处理器的硬件结构 102

3.4 Nios Ⅱ软核处理器软件开发 103

3.4.1 HAL系统库 104

3.4.2 Nios Ⅱ IDE 105

3.5 SOPC系统设计实例 107

3.5.1 SOPC系统设计流程 107

3.5.2 SOPC系统设计实例 108

3.6 DE2开发板描述及组件库 123

3.6.1 在SOPC Builder中加入DE2开发板描述及组件库 123

3.6.2 DE2 NIOS系统 124

3.6.3 在NiosⅡ IDE中使用Flash Programmer 130

第4章 DE2平台应用 133

4.1 DE2平台内嵌的USB Blaster及FPGA配置 133

4.2 音频编/解码 135

4.2.1 音频编/解码硬件芯片WM8731 135

4.2.2 WM8731控制电路的实现 138

4.2.3 用WM8731 D/A转换器产生正弦波 144

4.3 使用SDRAM及SRAM 153

4.3.1 在Nios Ⅱ中使用SDRAM 153

4.3.2 在Nios Ⅱ中使用SRAM 156

4.4 视频D/A转换器 158

4.4.1 视频D/A转换器 158

4.4.2 VGA显示器应用示例 161

4.5 彩色LCM显示器 167

4.6 用DE2平台实现视频解码 174

4.6.1 电视解码原理 174

4.6.2 用DE2平台实现电视接收机 177

4.7 USB OTG 184

4.8 网络接口 187

4.8.1 DM9000A硬件接口 187

4.8.2 DM9000A与Avalon总线的接口及硬件抽象层 189

4.8.3 LWIP及其在DE2平台上的应用 190

4.9 RS232接口 196

4.10 DE2控制面板 199

4.10.1 安装DE2控制面板 199

4.10.2 控制LED、七段数码管和LCD显示 201

4.10.3 FLASH下载器 201

4.10.4 SDRAM/SRAM控制器和下载器 202

4.10.5 PS/2和七段数码管的显示控制 203

4.10.6 DE2控制面板的总体结构 204

4.10.7 多端口SRAM/SDRAM/FLASH控制器 206

4.10.8 VGA显示控制 207

4.11 DE2高级应用范例 209

4.11.1 DE2平台出厂设置 209

4.11.2 DE2电视机 209

4.11.3 USB画笔 211

4.11.4 卡拉OK机 212

4.11.5 USB设备 213

4.11.6 以太网信息包的发送和接收 214

4.11.7 SD卡音乐播放器 214

4.12 LCM及CIS在DE2平台上的应用范例 215

4.12.1 TRDB-LCM在DE2平台上的应用范例 215

4.12.2 TRDB-DC2在DE2平台上的应用范例 216

第5章 基于Altera FPGA的DSP技术 220

5.1 DSP Builder 220

5.2 用DSPBuilder实现FIR滤波器 222

5.2.1 建立FIR滤波器设计 223

5.2.2 在Simulink中仿真并生成VHDL代码 226

5.3 在DSP Builder中定制开发板库 229

5.3.1 硬件平台与DSP Builder 229

5.3.2 定制开发板库 232

第6章 数字系统设计练习 244

6.1 开关、LED灯及多路复用器 244

6.1.1 将输入/输出器件连接到FPGA上 244

6.1.2 2选1多路复用器 245

6.1.3 3位宽5选1多路复用器 246

6.1.4 用七段数码管显示简单字符 247

6.1.5 循环显示5个字符 248

6.1.6 循环显示8个字符 249

6.2 二进制与BCD码的转换及显示 250

6.2.1 二进制数字的显示 250

6.2.2 二进制值到十进制值的转换 250

6.2.3 并行加法器 252

6.2.4 1位BCD加法器 253

6.2.5 2位BCD加法器 253

6.2.6 2位BCD加法器的另一种实现 253

6.2.7 6位二进制数转换为2位十进制数的电路 254

6.3 无符号数乘法器 254

6.3.1 4位二进制数乘法 255

6.3.2 8位二进制数乘法 256

6.3.3 用LPM实现8位二进制数乘法 256

6.4 锁存器和触发器 256

6.4.1 RS锁存器 256

6.4.2 D锁存器 257

6.4.3 D触发器 258

6.4.4 三种存储单元 258

6.4.5 D触发器的应用 259

6.5 计数器 260

6.5.1 用T触发器实现16位计数器 260

6.5.2 用赋值语句实现16位计数器 260

6.5.3 用LPM实现16位计数器 260

6.5.4 闪烁的数码管 261

6.5.5 循环显示的“HELLO” 261

6.6 时钟与定时器 261

6.6.1 3位BCD计数器 261

6.6.2 实时时钟 261

6.6.3 反应时间测试电路 262

6.7 有限状态机 262

6.7.1 One-hot编码的FSM 262

6.7.2 二进制编码的FSM 264

6.7.3 序列检测FSM 266

6.7.4 模10加计数器 266

6.7.5 用移位寄存器与FSM实现“HELLO”的循环显示 266

6.7.6 用FSM实现“HELLO”的自动循环显示 267

6.7.7 移动速度可控的“HELLO”的自动循环显示 267

6.8 存储器块 267

6.8.1 用LPM实现RAM 268

6.8.2 在DE2上验证RAM 270

6.8.3 用Verilog实现RAM 270

6.8.4 FPGA片外RAM的使用 270

6.8.5 用LPM实现简单双口RAM 272

6.8.6 伪双口RAM 273

6.8.7 用DE2控制面板查看并修改片外RAM的内容 275

6.9 简单的处理器 275

6.9.1 实现一个简单的处理器 277

6.9.2 为处理器增加程序存储器 280

6.10 增强型处理器 281

6.10.1 扩展处理器的指令集并增加地址译码功能 281

6.10.2 在数码管上滚动显示单词 284

6.10.3 增加单词显示速度控制功能 284

第7章 “计算机组成原理”课程练习 285

7.1 一个简单的计算机系统 285

7.1.1 建立一个简单的计算机系统 285

7.1.2 对序列中出现的连续的1计数 286

7.1.3 指令的组成 287

7.1.4 子程序 288

7.1.5 对交替出现的1和0计数 288

7.1.6 C语言与汇编语言的比较 288

7.2 程序控制输入/输出 288

7.2.1 建立包含三个PIO接口部件的系统 289

7.2.2 用Nios Ⅱ汇编语言实现数据输入、累加及输出 290

7.2.3 用按键控制数据读取 291

7.2.4 用七段数码管显示十六进制累加结果 291

7.2.5 将累加结果转换成十进制显示 291

7.3 子程序与堆栈 292

7.3.1 建立一个Nios Ⅱ系统 292

7.3.2 对32位正整数排序 292

7.3.3 用子程序实现排序任务 293

7.3.4 用堆栈向子程序传递参数 293

7.3.5 用递归算法计算阶乘 293

7.4 轮询与中断 294

7.4.1 建立一个包含计时器及JTAG UART的Nios Ⅱ系统 295

7.4.2 通过JTAG UART向主机发送字符 296

7.4.3 用JTAG UART实现打字机功能 297

7.4.4 使用中断方式实现打字机功能 297

7.4.5 计时器中断的使用 298

7.5 总线通信 299

7.5.1 实现外部总线桥及七段数码管控制器 301

7.5.2 将SRAM控制器连接到外部总线上 303

7.5.3 通过外部总线将SRAM中的数据显示到数码管上 304

附录A DE2原理图 305

附录B DE2平台上EP2C35F672引脚分配 329

参考文献 334