SOPC嵌入式系统基础教程.docx

上传人:b****6 文档编号:4154202 上传时间:2022-11-28 格式:DOCX 页数:12 大小:40.40KB
下载 相关 举报
SOPC嵌入式系统基础教程.docx_第1页
第1页 / 共12页
SOPC嵌入式系统基础教程.docx_第2页
第2页 / 共12页
SOPC嵌入式系统基础教程.docx_第3页
第3页 / 共12页
SOPC嵌入式系统基础教程.docx_第4页
第4页 / 共12页
SOPC嵌入式系统基础教程.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

SOPC嵌入式系统基础教程.docx

《SOPC嵌入式系统基础教程.docx》由会员分享,可在线阅读,更多相关《SOPC嵌入式系统基础教程.docx(12页珍藏版)》请在冰豆网上搜索。

SOPC嵌入式系统基础教程.docx

SOPC嵌入式系统基础教程

阿SOPC嵌入式系统基础教程

作者:

周立功 

∙市场价:

¥32.00

∙全场购物免配送费!

∙目前无货,欢迎选购其他类似产品。

到货通知我。

 

 

1人评论打分

颗星

颗星

颗星

颗星

颗星

看全部1篇评论

 

 (1篇用户评论|写评论)

关闭

商品缺货登记

我们将在到货后及时通知您!

TopofForm

SOPC嵌入式系统基础教程

商品暂时缺货,我们将尽快采购!

请填写您的E-mail地址,如果您所需的商品能够采购到货,我们将及时通知您。

如果您未收到商品的到货通知,说明您所需商品仍处于缺货状态。

E-Mail:

此地址不会被用于非法的宣传目的

BottomofForm

为该商品打分以改善“为我推荐”

    登陆为该商品打分

    

  

已经有了

基本信息

·出版社:

北京航空航天大学出版社

·页码:

353页

·出版日期:

2006年11月

·ISBN:

·条形码:

29

·包装版本:

第1版

·装帧:

平装

·开本:

16

·正文语种:

中文

产品信息有问题吗?

请帮我们更新产品信息。

内容简介

《SOPC嵌入式系统基础教程》为《SOPC嵌入式开发系列教程》的理论教材,介绍了在嵌入式系统中日益广泛应用的SOPC技术基础知识。

主要以Altera公司的技术资料为基础,加之作者的实践及理解,全面、深入浅出地介绍了SOPC技术。

全书分为3部分:

第1、3、4章为基础部分,主要介绍SOPC技术、NiosⅡ处理器的体系结构、NiosⅡ处理器的常用外设;第2、5、6章为应用部分,重点介绍SOPC开发流程、FPGA配置、Flash编程、软件开发等;第7、8、9章为提高部分,主要介绍Avalon接口规范、SOPC深入设计、混合语言编程等。

《SOPC嵌入式系统基础教程》可作为高等院校电子工程、计算机、微电子、通信、自动控制等相关专业SOPC嵌入式系统课程的理论教材,也可作为从事SOPC嵌入式系统应用开发工程师的参考资料。

《SOPC嵌入式系统基础教程》有配套实验教程以及多媒体教学课件。

第1章概述1

1.1SOPC及其技术1

1.1.1基于FPGA嵌入IP硬核的SOPC系统1

1.1.2基于FPGA嵌入IP软核的SOPC系统1

1.1.3基于HardCopy技术的SOPC系统2

1.2NiosⅡ软核处理器3

1.2.1NiosⅡ软核处理器简介3

1.2.2可配置嵌入式软核处理器的优势5

1.3Altera支持SOPC的FPGA简介9

1.3.1Cyclone系列9

1.3.2CycloneⅡ系列11

1.3.3Stratix系列12

1.3.4StratixⅡ系列14

第2章SOPC开发流程及开发平台简介16

2.1SOPC开发流程16

2.1.1硬件开发18

2.1.2软件开发18

2.1.3SOPC基本开发流程简介19

2.2简单SOPC实例开发任务及步骤21

2.3分析系统需求22

2.4使用QuartusⅡ建立工程23

2.4.1打开QuartusⅡ软件并建立工程23

2.4.2建立顶层模块26

2.5使用SOPCBuilder创建NiosⅡ系统27

2.5.1SOPCBuilder简介27

2.5.2启动SOPCBuilder29

2.5.3指定目标FPGA和时钟设置31

2.5.4添加NiosⅡ处理器内核31

2.5.5添加片内存储器33

2.5.6添加PIO35

2.5.7添加系统ID外设35

2.5.8指定基地址和中断请求优先级36

2.5.9设置NiosⅡ复位和异常地址36

2.5.10生成NiosⅡ系统37

2.6集成NiosⅡ系统到QuartusⅡ工程39

2.6.1添加NiosⅡ系统模块到QuartusⅡ顶层模块39

2.6.2添加引脚和其他基本单元40

2.6.3选择器件型号41

2.6.4分配FPGA引脚42

2.6.5器件和引脚的其他设置43

2.7设置编译选项并编译硬件系统44

2.7.1设置编译选项44

2.7.2编译硬件系统44

2.7.3查看编译报告44

2.8下载硬件设计到目标FPGA46

2.9使用NiosⅡIDE建立用户程序47

2.9.1创建一个新的C/C++应用工程47

2.9.2设置C/C++应用工程系统属性52

2.9.3编译连接工程53

2.10调试/运行程序53

2.10.1在目标硬件上运行程序54

2.10.2在目标板上调试程序54

第3章NiosⅡ体系结构57

3.1NiosⅡ处理器结构57

3.2NiosⅡ的寄存器文件58

3.2.1NiosⅡ的通用寄存器58

3.2.2NiosⅡ的控制寄存器60

3.3算术逻辑单元(ALU)61

3.3.1未实现的指令61

3.3.2用户指令61

3.3.3浮点指令61

3.4复位信号62

3.5NiosⅡ处理器运行模式62

3.6异常和中断控制器63

3.6.1异常控制器63

3.6.2中断控制器63

3.7NiosⅡ的异常处理64

3.7.1异常类型64

3.7.2异常硬件处理流程64

3.7.3异常判别及优先级64

3.7.4异常的嵌套65

3.7.5异常返回66

3.7.6异常响应时间66

3.8存储器及I/O结构66

3.8.1指令与数据总线67

3.8.2高速缓存68

3.8.3紧耦合存储器69

3.8.4地址映射70

3.9存储器和外设访问70

3.9.1寻址方式70

3.9.2高速缓存访问71

3.10NiosⅡ处理器性能71

第4章NiosⅡ外围设备73

4.1并行输入/输出内核73

4.1.1PIO寄存器描述73

4.1.2PIO内核配置选项75

4.1.3软件编程77

4.2SDRAM控制器内核77

4.2.1SDRAM控制器内核概述77

4.2.2SDRAM内核配置选项79

4.2.3软件编程81

4.2.4SDRAM应用81

4.3CFI控制器内核82

4.3.1CFI控制器内核综述83

4.3.2CFI控制器内核设置83

4.3.3软件编程85

4.4EPCS控制器内核85

4.4.1EPCS控制器内核综述85

4.4.2软件编程86

4.5定时器内核87

4.5.1定时器内核综述87

4.5.2定时器寄存器描述88

4.5.3定时器内核配置选项90

4.5.4软件编程92

4.6UART内核93

4.6.1UART内核综述93

4.6.2UART内核的寄存器描述95

4.6.3UART内核配置选项99

4.6.4软件编程101

4.7JTAG_UART内核104

4.7.1JTAG_UART的寄存器描述105

4.7.2JTAG_UART内核配置选项106

4.7.3软件编程108

4.8SPI内核110

4.8.1SPI内核综述110

4.8.2SPI内核的寄存器描述112

4.8.3SPI内核配置选项115

4.8.4软件编程117

4.9DMA内核118

4.9.1DMA控制器内核综述118

4.9.2DMA寄存器描述119

4.9.3DMA控制器配置选项122

4.9.4软件编程123

4.10带Avalon接口的互斥内核125

4.10.1互斥内核描述125

4.10.2互斥内核配置选项126

4.10.3软件编程126

4.11带Avalon接口的邮箱内核129

4.11.1邮箱内核描述129

4.11.2邮箱内核配置选项129

4.11.3软件编程130

4.12SystemID内核132

4.12.1SystemID寄存器描述133

4.12.2软件编程133

第5章FPGA配置和Flash编程134

5.1FPGA配置134

5.1.1FPGA配置方式134

5.1.2FPGA配置过程136

5.2Cyclone及CycloneⅡFPGA配置138

5.2.1主动串行配置140

5.2.2主动串行配置(AS)的配置时间估算143

5.2.3JTAG配置143

5.3配置芯片145

5.4配置的软件设置146

5.4.1配置方式及配置芯片选择146

5.4.2复用配置引脚处理147

5.5配置文件148

5.5.1配置文件的格式148

5.5.2配置文件设置和转换149

5.5.3配置文件的压缩150

5.6配置可靠性及电路设计注意事项152

5.6.1配置的可靠性152

5.6.2电路设计注意事项153

5.7下载配置文件到FPGA153

5.8下载配置文件到EPCS155

5.8.1AS接口的EPCS直接编程155

5.8.2JTAG接口的EPCS间接编程157

5.8.3SOF文件转换为JIC文件158

5.8.4JIC文件转换为JAM文件161

5.8.5JIC和JAM文件的内容163

5.8.6使用JIC文件和QuartusⅡProgrammer对EPCS编程163

5.8.7使用JAM文件和QuartusⅡProgrammer对EPCS编程163

5.9IDEFlashProgrammer介绍164

5.9.1IDEFlashProgrammer编程工作过程165

5.9.2Flash编程设计165

5.9.3目标板Flash编程设计165

5.9.4Flash编程内容的类型166

5.9.5Flash文件166

5.10用户程序引导167

5.10.1从CFIFlash引导167

5.10.2从串行配置器件EPCS引导167

5.10.3引导复制程序168

5.10.4用户程序ELF文件连接设置169

5.10.5用户程序引导小结171

5.11使用IDEFlashProgrammer编程172

5.12创建目标板Flash编程设计176

第6章NiosⅡ应用程序及其外设HAL驱动开发184

6.1NiosⅡIDE简介184

6.2设置工程系统库属性和编译选项186

6.2.1C/C++Build设置187

6.2.2C/C++Indexer设置188

6.2.3SystemLibrary设置188

6.3调试/运行程序190

6.3.1调试器目标连接设置191

6.3.2调试器设置192

6.3.3运行程序194

6.4下载程序到Flash194

6.5硬件抽象层(HAL)系统库194

6.5.1HAL的构成195

6.5.2HAL的通用设备模型196

6.6使用HAL开发应用程序197

6.6.1NiosⅡIDE工程结构197

6.6.2与目标系统相关的system.h系统描述文件198

6.6.3数据宽度及HAL类型定义200

6.6.4HAL对系统启动的支持200

6.6.5HAL与异常处理201

6.6.6提高处理性能的措施203

6.7设备驱动概述204

6.7.1设备的寄存器抽象205

6.7.2处理器外围设备的分类205

6.7.3标准I/O访问方法206

6.7.4标准I/O函数到具体驱动程序的映射206

6.7.5驱动程序与设备交互的方法--轮询和中断208

6.7.6调用设备驱动的方式208

6.8开发HAL下的设备驱动209

6.8.1创建一个描述设备寄存器的头文件209

6.8.2为各类设备创建驱动程序210

6.8.3把设备驱动集成到HAL中218

6.9μC/OSⅡ221

6.9.1μC/OSⅡ简介222

6.9.2设备驱动的线程安全222

6.9.3NewlibC标准库的线程安全223

6.9.4HAL系统时钟与μC/OSⅡ系统时钟224

6.9.5μC/OSⅡ代码编译和初始化225

6.9.6使用NiosⅡIDE开发μC/OSⅡ应用程序225

6.9.7μC/OSⅡ基本常识230

6.10NiosⅡC语言至硬件加速编译器(C2H)简介231

第7章Avalon接口规范233

7.1Avalon总线简介233

7.2术语和概念235

7.2.1Avalon交换结构235

7.2.2Avalon外设237

7.2.3Avalon信号238

7.2.4Avalon端口238

7.2.5主从端口对239

7.2.6传输239

7.2.7周期239

7.2.8PTF文件与SOPCBuilder239

7.3Avalon信号240

7.3.1信号命名规则241

7.3.2信号类型的完全列表241

7.3.3信号极性244

7.3.4信号序列和时序244

7.3.5传输属性245

7.4从端口传输246

7.4.1从端口基本信号246

7.4.2从端口基本读传输247

7.4.3带传输属性的从端口读传输248

7.4.4从端口基本写传输252

7.4.5带传输属性的从端口写传输252

7.5主端口传输255

7.5.1主端口信号256

7.5.2主端口基本读传输257

7.5.3主端口基本写传输258

7.5.4主端口传输的等待周期、建立时间及保持时间属性259

7.5.5主端口传输的流水线、突发及三态属性260

7.6流水线传输属性260

7.6.1具有固定延迟的从端口流水线读传输260

7.6.2具有可变延迟的从端口流水线读传输261

7.6.3主端口流水线读传输263

7.7流控制属性264

7.7.1具有流控制的从端口传输265

7.7.2具有流控制的主端口传输267

7.8三态传输属性269

7.8.1三态从端口传输270

7.8.2三态主端口传输276

7.9突发传输属性277

7.9.1主端口突发传输277

7.9.2从端口突发传输280

7.10非传输相关的信号283

7.10.1中断请求信号283

7.10.2复位控制信号285

7.11地址对齐286

7.11.1静态地址对齐286

7.11.2动态地址对齐287

7.11.3为Avalon端口选择地址对齐参数288

7.11.4不同地址对齐方式的连线及编程操作289

第8章NiosⅡ系统深入设计291

8.1定制基于Avalon的用户外设291

8.1.1定制用户外设简介291

8.1.2PWM设计说明293

8.1.3将PWM设计封装为SOPCBuilder元件296

8.1.4使用并验证新创建的PWM元件300

8.1.5手工修改创建的元件302

8.2定制NiosⅡ用户指令302

8.2.1NiosⅡ定制指令综述303

8.2.2定制指令实现方式307

8.2.3定制指令设计示例308

8.2.4定制指令的使用方法312

第9章NiosⅡ汇编程序设计及混合语言程序开发317

9.1历史回顾317

9.2NiosⅡ的指令集318

9.2.1数据传输指令318

9.2.2寄存器间数据拷贝指令319

9.2.3算术逻辑运算指令319

9.2.4比较指令320

9.2.5移位指令321

9.2.6跳转、分支和子程序调用指令321

9.2.7断点及异常指令322

9.2.8用户指令322

9.2.9未实现的指令323

9.2.10空操作323

9.3NiosⅡ汇编程序设计323

9.3.1利用NiosⅡ汇编语言实现“HelloWorld!

”323

9.3.2在C语言中内嵌汇编334

9.4使用混合语言进行程序开发341

附录1SmartSOPC多功能教学实验开发平台344

附录2LA系列高性能逻辑分析仪349

参考文献354

……

[看更多目录]

序言

微电子技术的发展历史是一个不断创新的过程,这种创新包括理论创新、技术创新和应用创新。

每一种创新都能开拓出一个新的领域,带来新的市场,产生重大的影响。

在集成电路(IC)发展初期,电路设计主要是器件的物理版图设计。

后来出现了集成电路单元库(Cell,使得集成电路设计从器件级进入逻辑级,极大地推动了IC产业的发展。

随着IC设计与工艺水平的提高,原先由许多IC组成的电子系统可以集成到一个芯片上,构成片上系统(SystemonaChip,SOC)。

SOC的设计思想有别于普通IC:

SOC从整个系统的角度出发,把处理机制、模型算法、芯片结构直至器件的设计紧密结合起来,在单个(或少数几个)芯片上实现整个系统的功能。

SOC的设计以IP核为基础,以分层次的硬件描述语言为系统功能和结构的主要描述手段,并需要借助EAD工具。

研究表明,与IC组成的系统相比,由于SOC设计能够综合考虑整个系统的各种情况,因而可以在同样的工艺条件下,实现更高性能的系统指标。

SOPC(SystemOnProgrammableChip,可编程的片上系统),是Altera公司提出来的一种灵活、高效的SOC解决方案,是一种新的软硬件协同设计的系统设计技术。

它将处理器、存储器、I/O口、LVDS、CDR等系统设计需要的功能模块集成到一个可编程器件上,构成一个可编程的片上系统。

SOPC是PLD和ASIC技术融合的结果。

目前0.13μm的ASIC产品制造价格仍然相当昂贵,而集成了硬核或软核CPU、DSP、存储器、I/O设备和可编程逻辑的SOPC芯片,在应用灵活性和价格上有相当大的优势,所以有人认为SOPC代表了半导体产业未来的发展方向。

本书为《SOPC嵌入式开发系列教程》的理论教材,而事实上,本书的内容并非纯理论的,也包含很多实践部分。

以作者的经验,SOPC技术只有通过大量的实战与实践才能很好并快速地掌握,因此本书的内容编排力求实用、深入浅出。

本书内容编排如下:

第1章以简短的篇幅介绍了SOPC技术及Altera公司系列产品中可用于SOPC的FPGA,重点介绍了32位NiosⅡ软核处理器。

第2章首先详细介绍了SOPC开发的基本流程,然后非常详细地描述了一个简单SOPC系统的设计过程,包括使用QuartusⅡ、SOPCBuilder定制NiosⅡ系统以及利用NiosⅡIDE进行应用程序开发。

本章力求通过实例让读者以最快的方式了解SOPC开发以及各软件的使用,从而激起读者对SOPC的兴趣。

第3章详述了NiosⅡ处理器的体系结构,以便让读者了解NiosⅡ处理器的工作细节。

虽然在软件开发过程中我们多数情况下只使用C语言,无须关心体系结构的细节。

但熟悉体系结构对开发出高效、健壮的程序是非常有好处的。

第4章介绍了NiosⅡ处理器常用外围设备的特点、配置以及软件编程,供读者在使用这些外设定制NiosⅡ系统时查阅。

第5章对较难掌握的FPGA配置、Flash(包括EPCS)编程、目标板Flash编程设计的创建以及NiosⅡ系统用户程序引导等内容进行了详细阐述。

第6章首先简单介绍NiosⅡIDE开发环境的使用;然后重点介绍了硬件抽象层(HAL)系统库,包括HAL下的应用程序开发以及开发HAL下的设备驱动两部分内容;最后讲述了MicroC/OS-Ⅱ实时操作系统及其应用程序开发实例。

本章还简单介绍了最新的NiosⅡC语言至硬件加速编译器。

第7章详细介绍了Avalon接口规范,着重从Avalon外设的角度论述Avalon接口。

如果用户只使用已经定制好的外设来创建自己的系统,就无须了解有关Avalon的相关知识。

但对于需要自己设计外设的用户来说,就需要掌握诸如传输类型、信号时序等全面的Avalon接口知识,第7章的内容就显得尤为重要。

第8章讲述有关SOPC的深入设计,以帮助读者掌握如何定制用户逻辑外设和用户指令。

定制用户逻辑外设和定制用户指令是使用NiosⅡ嵌入式软核处理器的SOPC系统的重要特性,用户还可以通过定制用户逻辑外设和定制用户指令来实现各种应用要求。

第9章首先简单地回顾了程序语言发展的历史,并从中总结了汇编程序的重要性;随后概要地介绍了NiosⅡ的指令集;最后重点介绍了NiosⅡ汇编程序的设计方法以及混合语言程序开发。

附录1介绍了广州致远电子有限公司的SmartSOPC多功能教学实验开发平台,本书的许多内容都在该开发平台上通过验证。

附录2首先简单介绍了逻辑分析仪的基础知识;重点比较了逻辑分析仪与示波器的区别,以此得出逻辑分析仪在数字电路设计中的重要作用。

最后向读者简单介绍了广州致远电子有限公司的LA系列高性能逻辑分析仪。

在阅读本书的过程中,请读者注意以下几点:

本书的部分内容是基于Altera公司的6.0版本的英文手册,Altera公司会不断更新和修改各参考手册的内容,如遇到不符,请读者以最新的手册为准。

本书列出了作者们在验证内容过程中遇到很多问题的解决方法和注意事项,书中特别用表示出来。

本书对一些术语在不同场合下并没有严格进行统一,事实上Altera公司的英文手册也是如此。

不统一的术语主要是外设、元件、IPCore。

在SOPCBuilder中通常使用元件(component)或IPCore来描述硬件模块,而在软件编程中通常把在SOPCBuilder中称之为元件或IPCore的硬件模块描述为外设或设备。

由于中文资料缺乏,一些内容是在Altera英文文档及软件帮助内容的基础上翻译的,在翻译过程中一些表达可能不恰当,为此在括号内给出了相应的英文表达,以便于读者更好地理解。

最后建议读者在学习本书的过程中要进行实际的动手操作,“纸上得来终觉浅,绝知此事要躬行”。

再好的讲述也比不上亲身的体验,如果不亲自动手,可能永远都不知道什么是困难。

在实验的过程中,推荐使用本书的配套实验教程《NiosⅡSOPC嵌入式系统实验教程

(一)》以及SmartSOPC多功能教学实验平台。

本书适合于高等院校电子工程、计算机、微电子、通信、自动控制等专业以及对此类专业感兴趣的高年级本科生和研究生。

作者相信本书的读者只要认真、勤奋地学习好书中的内容,并勇于实践,就能较快地进入SOPC技术世界。

参与本书编写工作的主要人员有周书武、刘英斌、张晶、芮文彬、杜佳、许惠泉、余文亮等,本书由周立功负责规划、内容编排、定稿与修改。

感谢北京航空航天大学出版社的大力支持,使本书得以快速出版。

由于作者水平有限,书中的内容难免有疏忽、不恰当甚至错误的地方,恳请各位老师及同行指正,并请您将阅读中发现的错误或建议发送到tools@,以使本书不断完善。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1