基于FPGA的SOPC嵌入式系统设计与典型实例
2009-1
电子工业出版社
王刚,张潋
489
无
基于FPGA的电子系统设计技术是21世纪电子应用工程师必备的基本技能之一,而基于FPGA的SOPC设计技术是当前电子系统设计领域最前沿的技术之一。Altera公司、Xilinx公司、Lattis公司、QuickLogic公司等全球最重要的FPGA及EDA公司都分别推出SOPC系统解决方案。SOC设计技术将是2l世纪的技术发展趋势,是现在高校和社会嵌入式培训班必需的内容和亮点。 SOPC设计具体包括以32位Nios II为核心的嵌入式系统的硬件配置、硬件设计、硬件仿真、软件设计以及软件调试等。SOPC系统设计的基本软件工具包括: ·Quartus II:用于完成Nios II系统的综合、硬件优化、适配、编程下载以及硬件系统 调试等; ·SOPC Builder:是Altera Nios II嵌入式处理器开发软件包,用于实现Nios II系统的配 置、生成; ·ModelSim:用于对SOPC生成的NiosⅡ系统的HDL描述进行系统功能仿真; ·Nios II IDE:用于进行软件开发、调试以及向目标开发板进行Flash下载。 目前市场上同类的SOPC书比较少,而且清一色地介绍编程语言和基础原理,对设计技术细节和实际工程案例涉及甚微,与SOPC设计技术现在的蓬勃发展与大量应用远远不符。本书的出版正可以填补这种空白。本书将以实用和应用为基本原则,根据作者多年积累的开发经验,通过讲练结合、循序渐进的形式来讲解,便于读者牢固深入学习,快速入门与提高。
基于FPGA的SOPC设计技术是当前电子系统设计领域最前沿的技术之一。全书通过核心技术与典型实例的形式,全面系统、深入浅出地介绍了基于FPGA的嵌入式SOPC系统设计技术与应用实例。全书共分14章,第1~3章简要介绍了FPGA硬件结构知识、Verilog HDL编程基础、FPGA常用开发工具,引导读者入门;第4~7章重点对嵌入式SOPC系统设计技术进行了细致阐述,内容包括:SOPC硬件系统开发、SOPC软件系统开发、Avalon总线规范、Nios II外围设备及其编程;第8~14章通过7个典型实例,对基于FPGA的嵌入式SOPC系统设计过程进行实际演练,具体包括:七段数码管时钟显示实例、串口通信DMA传输实例、LED灯控PWM IP核的设计实例、通用TFT-LCD控制器及PS2鼠标设计实例、对对碰游戏设计实例、GPS信息接收系统设计实例以及基于Nios II的I2C总线传输应用设计。经过这些例子的学习,读者设计的能力将迅速提升,产生质的飞跃。 本书语言通俗,结构清晰,基础知识和大量工程实例结合,实践性强。不但详细介绍了基于FPGA的嵌入式SOPC系统设计的构架与软硬件编程,同时提供了应用设计思路与方案,对实例的所有程序代码做了详细注释,利于读者理解和巩固知识点。 本书配有光盘一张,包含了全书所有实例的硬件原理图和程序源代码,方便读者学习和使用。本书适合计算机、自动化、电子及硬件等相关专业的大学生,以及从事FPGA开发的科研人员使用。
第一篇 FPGA基础第1章 FPGA硬件结构知识1.1 CPLD/FPGA概述1.1.1 CPLD/FPGA的特点1.1.2 CPLD/FPGA的发展方向1.1.3 CPLD/FPGA的应用领域1.2 FPGA体系结构1.2.1 FPGA基本结构1.2.2 FPGA的结构特点1.2.3 FPGA的编程工艺1.3 FPGA常用芯片与选用1.3.1 FPGA常用芯片1.3.2 FPGA器件的选用1.4 本章小结第2章 VerilogHDL语言编程基础2.1 VerilogHDL语言特点2.2 VerilogHDL程序的基本结构2.2.1 模块2.2.2 模块调用2.3 程序格式2.4 注释与间隔符2.5 数值2.6 字符串2.7 标识符2.8 系统任务和函数2.9 编译指令2.10 数据类型2.10.1 线网(Net)和变量(Variable)2.10.2 标量(Scalar)与矢量(Vector)2.10.3 线网(Net)数据类型2.10.4 变量(Variable)数据类型2.10.5 数组(Array)类型2.10.6 参数2.10.7 名字空间2.11 表达式2.11.1 操作符2.11.2 操作数2.11.3 延迟表达式2.11.4 表达式的位宽2.11.5 有符号表达式2.12 本章小结第3章 FPGA常用开发工具3.1 硬件开发工具QuartusⅡ3.1.1 QuartusⅡ简介3.1.2 QuartusⅡ设计流程3.1.3 QuartusⅡ设计方法3.1.4 QuartusⅡ功能详解3.1.5 时序约束与分析3.1.6 设计优化3.1.7 SignalTapⅡ3.2 ModelSim开发工具3.2.1 ModelSim简介3.2.2 基本仿真步骤3.2.3 ModelSim各界面介绍3.2.4 ModelSim调试功能3.3 本章小结第二篇 SOPC入门第4章 SOPC硬件系统开发4.1 SOPC系统特点与开发流程4.2 SOPCBuilder硬件开发环境介绍4.2.1 SOPCBuilder功能4.2.2 SOPCBuilder组成4.2.3 SOPCBuilder中包含的组件4.3 使用SOPCBuilder创建NiosⅡ系统模块4.3.1 创建QuartusⅡ 工程4.3.2 启动并配置SOPCBuilder4.3.3 添加CPU及外设IP模块4.3.4 生成NiosⅡ 系统4.4 集成NiosⅡ 系统到QuartusⅡ工程4.4.1 创建包含NiosⅡ 系统的QuartusⅡ顶层模块4.4.2 FPGA引脚分配及其他设置4.4.3 QuartusⅡ 工程的编译并下载4.5 本章小结第5章 SOPC软件系统开发5.1 NiosⅡ 处理器结构5.1.1 NiosⅡ 处理器概述5.1.2 编程模型5.1.3 JTAG调试模块5.2 NiosⅡ 指令系统介绍5.2.1 NiosⅡ 处理器的指令集5.2.2 NiosⅡ 定制指令介绍5.2.3 定制指令实现方式5.2.4 定制指令设计实例——前导0检测器5.3 NiosⅡ IDE集成开发环境5.3.1 NiosⅡ IDE简介5.3.2 HAL系统库5.3.3 RTOS和TCP/IP协议栈5.4 使用NiosⅡ IDE建立应用程序5.4.1 创建C/C++工程5.4.2 配置工程的系统属性5.4.3 编译及运行工程5.4.4 调试模式5.5 使用FlashProgrammer下载5.5.1 定制目标板5.5.2 FlashProgrammer配置及下载5.6 本章小结第6章 Avalon总线规范6.1 Avalon总线概述6.1.1 Avalon总线的特点6.1.2 术语和概念6.2 Avalon总线信号6.2.1 Avalon信号类型列表6.2.2 Avalon信号时序6.2.3 Avalon总线传输特性6.3 Avalon从端口传输6.3.1 Avalon从端口信号介绍6.3.2 Avalon从端口读传输6.3.3 Avalon从端口写传输6.4 Avalon主端口传输6.4.1 Avalon主端口模块介绍6.4.2 Avalon主端口读传输6.4.3 Avalon主端口写传输6.5 Avalon流水线传输模式6.5.1 具有固定延迟的从端口流水线读传输6.5.2 具有可变延迟的从端口流水线读传输6.5.3 主端口流水线读传输6.6 Avalon流传输模式6.6.1 流模式从端口传输6.6.2 流模式主端口传输6.7 Avalon三态传输6.7.1 三态从端口传输6.7.2 三态主端口传输6.8 Avalon突发传输6.8.1 主端口突发传输6.8.2 从端口突发传输6.9 与传输无关的信号6.9.1 中断请求信号6.9.2 复位控制信号6.10 Avalon总线地址对齐方式6.10.1 本地地址对齐6.10.2 动态地址对齐6.11 本章小结第7章 NiosⅡ 外围设备及其编程7.1 并行输入/输出(PIO)7.1.1 功能描述7.1.2 配置选项7.1.3 寄存器描述与中断7.1.4 软件编程模型7.2 通用异步收发器(UART)7.2.1 功能描述7.2.2 配置选项7.2.3 寄存器描述与中断7.2.4 软件编程模型7.3 定时器(Timer)7.3.1 功能描述7.3.2 配置选项7.3.3 寄存器描述与中断7.3.4 软件编程模型7.4 JTAGUART7.4.1 功能描述7.4.2 配置选项7.4.3 寄存器描述与中断7.4.4 软件编程模型7.5 SDRAM控制器7.5.1 功能描述7.5.2 配置选项7.5.3 SDRAM控制器配置实例7.5.4 软件编程模型7.6 CFI控制器7.6.1 功能描述7.6.2 配置选项7.6.3 软件编程模型7.7 EPCS设备控制器7.7.1 功能描述7.7.2 配置选项7.7.3 软件编程模型7.8 DMA控制器7.8.1 功能描述7.8.2 配置选项7.8.3 寄存器描述与中断7.8.4 软件编程模型7.9 系统ID7.9.1 功能描述7.9.2 配置选项7.9.3 软件编程模型7.10 SPI7.10.1 功能描述7.10.2 配置选项7.10.3 寄存器描述7.10.4 软件编程模型7.11 本章小结第三篇 应用实战第8章 基于FPGA的SOPC系统开发实例1——七段数码管时钟显示实例8.1 实例内容说明8.2 设计思路分析8.3 硬件设计8.4 软件设计与程序代码8.5 实例小结第9章 基于FPGA的SOPC系统开发实例2——串口通信DMA传输实例9.1 实例内容说明9.2 设计思路分析9.3 硬件设计9.4 软件设计与程序代码9.4.1 NiosⅡ HAL中与DMA设计相关的API函数9.4.2 软件部分的设计9.5 实例小结第10章 基于FPGA的SOPC系统开发实例3——LED灯控PWMIP核设计10.1 实例内容说明10.2 设计思路分析10.3 硬件设计10.4 软件设计与程序代码10.5 实例小结第11章 基于FPGA的SOPC系统开发实例4——通用TFT-LCD控制器及PS2鼠标设计实例11.1 实例内容说明11.2 设计思路分析11.3 硬件设计11.4 软件设计与程序代码11.5 实例小结第12章 基于FPGA的SOPC系统开发实例5——对对碰游戏12.1 实例内容说明12.2 设计思路分析12.3 硬件设计12.4 软件设计与程序代码12.5 实例小结第13章 基于FPGA的SOPC系统开发实例6——GPS信息接收系统的设计13.1 实例内容说明13.2 设计思路分析13.3 硬件设计13.4 软件设计与程序代码13.5 实例小结第14章 基于FPGA的SOPC系统开发实例7——基于NiosⅡ的I2C总线传输应用设计14.1 实例内容说明14.2 设计思路分析14.3 I2C总线介绍14.3.1 I2C总线特点14.3.2 I2C总线工作原理14.4 AT24C02芯片介绍14.4.1 AT24C02概述14.4.2 AT24C02读写时序14.5 SOPC系统的创建14.6 软件设计与程序代码14.7 实例小结附录A NiosⅡ HAL中与PIO设计相关的API函数
第一篇 FPGA基础 第1章 FPGA硬件结构知识 随着信息技术革命和计算机技术的飞速发展,可编程逻辑技术已发展成一门关键的科学技术,而FPGA在工业界也已被广泛的应用。本书第1章,将首先介绍FPGA硬件结构知识。 1.1 CPLD/FPGA概述 CPLD是复杂可编程逻辑器件(Complex Programable Logic Device)的简称,FPGA是现场可编程门阵列(Field Programable Gage Array)的简称,两者的功能基本相同,只是实现原理略有不同,所以有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/FPGA。 CPLD最早由Altera公司推出即MAX系列,多为Flash、EEPROM架构或乘积项(Product Term)架构,需外接配置用的EPROM下载。由于Altera的FLEX/ACEX/APEX系列也是ARAM架构,所以通常把Altera的FELX/ACEX/APEX系列芯片也叫做FPGA。
语言通俗,结构清晰,基础知识和大量工程实例结合,实践性强。不但详细介绍了基于FPGA的嵌入式SOPC系统设计的构架与软硬件编程,同时提供了应用设计思路与方案,对实例的所有程序代码做了详细注释,利于读者理解和巩固知识点。 《基于FPGA的SOPC嵌入式系统设计与典型实例》配有光盘一张,包含了全书所有实例的硬件原理图和程序源代码,方便读者学习和使用。《基于FPGA的SOPC嵌入式系统设计与典型实例》适合计算机、自动化、电子及硬件等相关专业的大学生,以及从事FPGA开发的科研人员使用。
无
基于FPGA的SOPC嵌入式系统设计与典型实例 PDF格式下载