《Altera FPGA工程师成长手册》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:陈欣波等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302280996
  • 页数:394 页
图书介绍:本书以Altera公司的FPGA为例,详细讲述了基于可编程逻辑技术的设计方法。

第1篇 FPGA开发基础 2

第1章 EDA技术概述 2

1.1 EDA技术及发展 2

1.1.1何谓EDA技术 2

1.1.2基于大规模可编程逻辑器件的数字系统设计 2

1.2可编程逻辑器件的发展简介 3

1.2.1逻辑设计基本流程 3

1.2.2可编程逻辑器件PAL 5

1.2.3从PAL到PLD到复杂可编程逻辑器件CPLD 7

1.2.4从CPLD到FPGA的产生 9

1.2.5在系统编程问题的解决 9

1.3 FPGA系统结构和资源 10

1.3.1可编程逻辑单元(LE) 10

1.3.2可编程布线 12

1.3.3可编程I/O 13

1.3.4嵌入式存储器RAM 13

1.3.5嵌入式乘法器 13

1.3.6时钟 13

1.3.7锁相环 14

1.3.8 FPGA与CPLD的对比 14

1.4 FPGA的设计流程 15

1.5 Altera公司FPGA低成本器件——Cyclone Ⅱ 16

1.5.1主要特性 16

1.5.2基于数字信号处理(DSP)应用 17

1.5.3专用外部存储器接口 17

1.5.4嵌入式锁相环 18

1.5.5单端I/O特性 19

1.5.6差分I/O特性 20

1.5.7自动CRC检测 20

1.5.8支持Nios Ⅱ嵌入式处理器 21

1.6 Altera公司FPGA高成本器件——Stratix Ⅲ器件 21

1.6.1主要特性 21

1.6.2体系架构 22

1.6.3 TriMatrix嵌入式存储器 23

1.6.4 DSP块 24

1.6.5 时钟网络和锁相环 25

1.6.6高速I/O信号和接口 25

1.6.7设计安全性 26

1.7小结 27

第2章 Altera QuartusⅡ软件开发流程 28

2.1 Quartus Ⅱ综述 28

2.1.1 Quartus Ⅱ软件的特点 28

2.1.2 Quartus Ⅱ设计软件的流程和集成的工具 29

2.1.3 Quartus Ⅱ软件的用户界面 30

2.2设计输入 33

2.2.1建立工程 33

2.2.2输入方式 34

2.3约束输入 36

2.3.1使用分配编辑器 36

2.3.2使用引脚规划器 38

2.3.3使用Settings对话框 39

2.4综合 40

2.4.1使用Quartus Ⅱ软件集成的综合工具 40

2.4.2使用其他EDA综合工具 42

2.4.3使用RTL查看器和状态机查看器分析综合结果 43

2.5布局布线 45

2.5.1设置Fitter选项 46

2.5.2设置物理综合优化选项 48

2.5.3通过反标保留分配 50

2.6仿真 50

2.6.1 Quartus Ⅱ仿真器设置 52

2.6.2建立用于仿真的波形文件 53

2.7编程与配置 56

2.7.1建立编程文件 56

2.7.2器件编程和配置 59

2.8小结 60

第3章 Altera QuartusⅡ软件开发向导 61

3.1模块编辑及设计流程 61

3.1.1原理图输入文件的建立 61

3.1.2图表模块输入 65

3.1.3原理图设计流程 71

3.1.4波形仿真 77

3.1.5引脚分配 79

3.1.6下载验证 79

3.1.7 Quartus Ⅱ的几个常用功能 83

3.2文本编辑及设计流程 84

3.2.1建立文本文件 84

3.2.2文本设计流程——建立新工程 88

3.2.3文本设计流程——编译工程 88

3.2.4文本设计流程——建立矢量波形文件 89

3.2.5文本设计流程——仿真波形 92

3.2.6文本设计流程——引脚分配及下载验证 94

3.3混合设计 94

3.3.1建立计数器文件 94

3.3.2建立七段译码显示电路文件 95

3.3.3设计流程 96

3.4使用Signal Tap Ⅱ的实时测试 100

3.4.1打开Signal Tap Ⅱ的编辑窗口 100

3.4.2调入待测信号 100

3.4.3设置Signal Tap Ⅱ参数 102

3.4.4文件存盘 103

3.4.5编译选择 104

3.4.6启动Signal Tap Ⅱ进行采样分析 104

3.4.7 Signal Tap Ⅱ的其他设置和控制方法 104

3.5小结 105

第4章 VHDL语言基础 106

4.1 VHDL语言基本结构 106

4.1.1实体 108

4.1.2结构体 109

4.1.3配置 110

4.1.4库 111

4.2 VHDL语言要素 114

4.2.1 VHDL语法规则 114

4.2.2 VHDL数据对象 116

4.2.3数据类型 118

4.2.4操作符 120

4.3顺序语句 123

4.3.1赋值语句 123

4.3.2 IF语句 124

4.3.3 CASE语句 126

4.3.4 LOOP语句 127

4.3.5跳出循环的语句 129

4.3.6 RETURN语句 130

4.3.7 NULL语句 131

4.4并行语句 131

4.4.1并行信号赋值语句 131

4.4.2进程(PROCESS)语句 133

4.5子程序 136

4.5.1过程 137

4.5.2函数 140

4.6 VHDL语言描述风格 143

4.6.1行为描述 143

4.6.2数据流描述 144

4.6.3结构化描述 145

4.7小结 148

第5章 基本逻辑电路设计 149

5.1组合逻辑电路设计 149

5.1.1门电路设计 149

5.1.2三态门及总线缓冲器设计 151

5.1.3编码器、译码器设计 153

5.1.4多路数据选择器和多路数据分配器设计 155

5.2时序逻辑电路设计 157

5.2.1触发器设计 158

5.2.2寄存器设计 159

5.2.3计数器设计 161

5.3有限状态机电路设计 165

5.3.1有限状态机概述 165

5.3.2有限状态机的算法描述 166

5.3.3有限状态机的VHDL描述模式 167

5.4设计实例:交通信号灯控制器设计 171

5.4.1交通信号灯控制器的设计要求 171

5.4.2交通信号灯控制器的设计分析 172

5.5小结 179

第2篇 FPGA实例开发 182

第6章 宏模块和LPM函数的应用 182

6.1存储器模块的用法 182

6.1.1 RAM的使用 182

6.1.2 ROM的建立过程 187

6.1.3 FIFO的建立使用 191

6.2乘法器和锁相环的使用 193

6.2.1乘法器的使用 193

6.2.2锁相环的使用 196

6.3 NCO IP核的使用 199

6.4基于宏模块的设计实例 204

6.4.1正弦波信号发生器的设计 204

6.4.2流水线乘累加器的设计 205

6.5小结 208

第7章 基于FPGA的DSP开发设计 209

7.1概述 209

7.2 DSP Builder功能简介与设计流程 210

7.2.1 DSP Builder功能简介 210

7.2.2 DSP Builder设计流程 210

7.3基于DSP Builder技术的设计示例——调幅电路 212

7.3.1在MATLAB/Simulink中建立算法模型 212

7.3.2准备工作 212

7.3.3在新模型窗口中添加单元模块 215

7.3.4在Simulink环境中仿真 219

7.3.5在Modelsim环境中进行功能仿真 222

7.3.6在Quartus Ⅱ环境中进行时序仿真 224

7.4基于DSP Builder的层次化设计——FIR滤波器 229

7.4.1 FIR滤波器的原理 229

7.4.2建立系统设计模型 230

7.4.3建立子系统的模型 232

7.4.4在Simulink和Modelsim中仿真 234

7.5 Megacore函数的使用 236

7.5.1安装Megacore函数 236

7.5.2使用Megacore函数的设计流程 236

7.5.3使用Megacore函数设计FIR滤波器 236

7.6小结 241

第3篇 FPGA高级应用 244

第8章 SOPC技术开发概述 244

8.1 SOPC的概念 244

8.2 SOPC系统的核心——Nios Ⅱ处理器 245

8.3 SOPC系统开发流程 247

8.3.1 SOPC Builder的设计流程 247

8.3.2 SOPC的设计阶段 248

8.4 SOPC系统开发环境 249

8.5小结 251

第9章 SOPC系统构架 252

9.1 Nios Ⅱ处理器体系结构 252

9.1.1 Nios Ⅱ的内部寄存器 254

9.1.2 Nios Ⅱ存储器与I/O组织 256

9.2 Nios Ⅱ的异常处理 259

9.2.1硬件中断 259

9.2.2软件异常 259

9.2.3 NIos Ⅱ的异常处理流程 260

9.3算术逻辑单元和复位信号 261

9.3.1算术逻辑单元 261

9.3.2复位信号 262

9.4 JTAG调试模块 262

9.5 Avalon总线 263

9.5.1 Avalon互连规范 264

9.5.2 Avalon总线的概念 265

9.5.3 Avalon总线信号 267

9.5.4 Avalon的中断与复位信号 271

9.5.5 Avalon总线传输 272

9.6小结 272

第10章 SOPC系统硬件开发 273

10.1数字钟的设计要求 273

10.2硬件开发流程 273

10.3创建Quartus Ⅱ工程 274

10.3.1创建Quartus Ⅱ工程 274

10.3.2创建顶层实体文件 276

10.4创建Nios Ⅱ系统模块 277

10.4.1创建新系统 277

10.4.2加入Nios Ⅱ处理器 278

10.4.3加入外围模块 280

10.4.4分配系统各IP模块的地址和中断号分配、Nios Ⅱ系统配置 284

10.4.5生成Nios Ⅱ并添加到工程中 286

10.4.6 建立锁相环PLL模块 288

10.5编译和下载 294

10.5.1引脚分配 294

10.5.2配置工程 295

10.5.3编译设计 296

10.5.4程序配置下载 296

10.6小结 297

第11章 SOPC系统软件开发 298

11.1 Nios Ⅱ IDE简介 298

11.1.1 Nios Ⅱ IDE的功能模块 298

11.1.2 Nios Ⅱ IDE开发流程 300

11.2基于Nios Ⅱ IDE软件示例——数字钟软件 301

11.2.1建立软件工程 301

11.2.2编译工程 305

11.2.3运行 308

11.3数字钟的程序设计 310

11.4 HAL系统库 313

11.4.1 HAL简述 313

11.4.2目前提供的主要HAL资源 315

11.5使用HAL开发应用程序 317

11.6小结 318

第12章 NiosⅡ常用外设使用 319

12.1并行输入/输出内核(PIO) 319

12.1.1 PIO内核简介 319

12.1.2 PIO内核的配置 320

12.1.3 PIO内核的C语言编程 323

12.2定时器的使用 328

12.2.1内核定时器简介 329

12.2.2定时器内核的配置 330

12.2.3定时器内核的C语言编程 331

12.3 Flash接口控制器的使用 333

12.3.1 Flash接口控制器简介 333

12.3.2 CFI控制器的配置 334

12.3.3 CFI控制器的C语言编程 335

12.4 SDRAM控制器的使用 336

12.4.1 SDRAM控制器内核概述 336

12.4.2 SDRAM内核配置 338

12.4.3软件编程 340

12.5 UART的使用 341

12.5.1 UART内核简介 341

12.5.2 UART内核的寄存器 343

12.5.3 UART内核配置 346

12.5.4软件编程 348

12.6小结 350

第13章 LogicLock优化技术 351

13.1 LogicLock优化技术简介 351

13.1.1 LogicLock设计方法目标 351

13.1.2 LogicLock的区域 352

13.1.3锁定区域的基本方式 353

13.1.4 LogicLock技术的应用流程 354

13.2为应用LogicLock技术准备的具体实例 355

13.2.1数字滤波器结构及其VHDL描述 355

13.2.2滤波器设计和结果 358

13.3 LogicLock优化设计——底层模块设计 359

13.3.1建立底层模块工程 360

13.3.2建立父区域 360

13.3.3定义逻辑锁定子区域 363

13.3.4将设计实体移至锁定区域 365

13.3.5编译优化锁定后的filter模块 365

13.3.6输出逻辑锁定后的VQM文件 367

13.4 LogicLock优化设计——顶层设计 368

13.4.1建立顶层工程 368

13.4.2将VQM文件加到顶层工程中 368

13.4.3导入LogicLock约束 370

13.5小结 373

第14章 数字系统设计实例——电子乐器 374

14.1电子乐器的设计 374

14.1.1设计要求 374

14.1.2设计原理 374

14.1.3乐曲硬件演奏电路的层次化设计方案 376

14.2 FFT设计 381

14.2.1 FFT的原理 381

14.2.2基于DSP Builder设计FFT的方法 382

14.3 SD卡驱动的设计 384

14.3.1 SD卡和SPI内核简介 385

14.3.2 SD卡与FPGA接口电路 386

14.3.3硬件系统的SOPC设计 387

14.3.4系统软件设计 388

14.4小结 394