图书介绍

基于Nios Ⅱ的嵌入式SoPC系统设计与Verilog开发实例【2025|PDF下载-Epub版本|mobi电子书|kindle百度云盘下载】

基于Nios Ⅱ的嵌入式SoPC系统设计与Verilog开发实例
  • (美)PongP.Chu著;金明录,门宏志译 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121257735
  • 出版时间:2015
  • 标注页数:641页
  • 文件大小:102MB
  • 文件页数:663页
  • 主题词:可编程序逻辑器件-系统设计-高等学校-教材;可编程序逻辑器件-系统开发-高等学校-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

基于Nios Ⅱ的嵌入式SoPC系统设计与Verilog开发实例PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 嵌入式系统概述1

1.1 引言1

1.1.1 嵌入式系统定义1

1.1.2 示例系统1

1.2 系统设计需求2

1.3 嵌入式SoPC系统3

1.4 本书结构6

1.5 文献注释6

第1部分 基本数字电路开发8

第2章 门级组合电路8

2.1 引言8

2.2 总则8

2.3 基本词法元素和数据类型9

2.4 数据类型10

2.4.1 四值系统10

2.4.2 数据类型组10

2.4.3 数字的表示方法11

2.4.4 运算符12

2.5 程序框架12

2.5.1 端口声明12

2.5.2 程序主体13

2.5.3 信号声明13

2.5.4 另一个实例14

2.6 结构描述14

2.7 测试平台17

2.8 文献注释19

2.9 推荐实验19

2.9.1 门级greater-than电路代码19

2.9.2 门级二进制译码器代码19

第3章 FPGA和EDA软件概述20

3.1 FPGA20

3.1.1 通用FPGA器件概述20

3.1.2 Altera Cyclone Ⅱ系列器件概述21

3.2 Altera DE1和DE2开发板概述23

3.3 开发流程25

3.4 Quartus Ⅱ概述26

3.5 Quartus Ⅱ简易教程27

3.5.1 创建设计工程29

3.5.2 建立测试平台进行RTL仿真33

3.5.3 编译工程33

3.5.4 时序分析34

3.5.5 编程FPGA器件34

3.6 ModelSim HDL仿真器的简易教程36

3.7 文献注释39

3.8 推荐实验40

3.8.1 门级greater-than电路40

3.8.2 门级二进制译码器40

第4章 RTL组合电路41

4.1 运算符41

4.1.1 算术运算符42

4.1.2 移位运算符42

4.1.3 关系运算符和等式运算符43

4.1.4 位运算符、缩减运算符和逻辑运算符43

4.1.5 拼接运算符和复制运算符44

4.1.6 条件运算符44

4.1.7 运算符优先级45

4.1.8 表达式位长调整45

4.1.9 z和x的综合46

4.2 组合逻辑电路的always语句块47

4.2.1 基本语法和行为48

4.2.2 进程赋值语句48

4.2.3 变量数据类型49

4.2.4 简单实例49

4.3 if语句50

4.3.1 语法50

4.3.2 实例51

4.4 case语句52

4.4.1 语法52

4.4.2 实例53

4.4.3 casez和casex语句54

4.4.4 全case语句和并行case语句55

4.5 条件控制结构的路由结构56

4.5.1 优先级路由网络56

4.5.2 多路选择网络57

4.6 always块的一般编码原则58

4.6.1 组合逻辑电路代码的常见错误58

4.6.2 指南61

4.7 参数和常数61

4.7.1 常数61

4.7.2 参数62

4.7.3 Verilog-1995中参数的使用64

4.8 设计实例65

4.8.1 十六进制数的七段LED译码器65

4.8.2 符号幅值加法器67

4.8.3 桶形移位器68

4.8.4 简易浮点数加法器70

4.9 文献注释73

4.10 推荐实验73

4.10.1 多功能桶形移位器73

4.10.2 双优先级编码器74

4.10.3 BCD码增量器74

4.10.4 浮点数greater-than电路74

4.10.5 浮点数和有符号整数间的转换电路74

4.10.6 加强的浮点数加法器75

第5章 常规时序电路76

5.1 引言76

5.1.1 D触发器和寄存器76

5.1.2 同步系统77

5.1.3 代码开发77

5.2 触发器和寄存器的HDL代码77

5.2.1 D触发器78

5.2.2 寄存器80

5.2.3 寄存器文件81

5.2.4 SRAM83

5.3 简单的设计实例84

5.3.1 移位寄存器84

5.3.2 二进制计数器及其变形86

5.4 时序电路的测试平台89

5.5 时序分析92

5.5.1 时序参数92

5.5.2 Quartus Ⅱ中的时序考虑93

5.6 案例研究94

5.6.1 秒表94

5.6.2 FIFO缓存器98

5.7 Cyclone Ⅱ器件的嵌入式存储器模块102

5.7.1 DE1开发板上的存储器选项概述102

5.7.2 嵌入式M4K模块概述102

5.7.3 添加嵌入式存储器模块的方法103

5.7.4 导出同步单口RAM的HDL模块105

5.7.5 导出同步简单双口RAM的HDL模块106

5.7.6 导出同步真双口RAM的HDL模块108

5.7.7 导出同步ROM的HDL模块109

5.7.8 指定RAM初始值的HDL模块110

5.7.9 FIFO缓存器的再仿真112

5.8 文献注释113

5.9 推荐实验113

5.9.1 可编程方波发生器113

5.9.2 脉宽调制电路113

5.9.3 旋转方块电路113

5.9.4 心跳电路114

5.9.5 旋转的LED标语电路114

5.9.6 增强型秒表114

5.9.7 数据宽度可变的FIFO114

5.9.8 堆栈115

5.9.9 基于ROM的符号幅值加法器115

5.9.10 基于ROM的温度转换115

第6章 FSM116

6.1 简介116

6.1.1 Mealy和Moore输出116

6.1.2 FSM的表示方法116

6.2 FSM代码开发118

6.3 设计实例120

6.3.1 上升沿检测器120

6.3.2 去抖电路125

6.3.3 测试电路128

6.4 文献注释130

6.5 推荐实验130

6.5.1 双边沿检测器130

6.5.2 另一种去抖电路130

6.5.3 停车场占用情况计数器131

第7章 FSMD132

7.1 引言132

7.1.1 单一RT操作132

7.1.2 ASMD图133

7.1.3 含寄存器的选择框134

7.2 FSMD代码开发135

7.2.1 基于RT方法的去抖电路135

7.2.2 含显示描述数据通路组件的代码136

7.2.3 含隐式描述数据通路组件的代码139

7.2.4 比较141

7.3 设计实例142

7.3.1 斐波那契数电路142

7.3.2 除法电路145

7.3.3 二进制—BCD码转换电路148

7.3.4 周期计数器151

7.3.5 精确的低频计数器154

7.4 文献注释157

7.5 推荐实验157

7.5.1 另一种去抖电路157

7.5.2 BCD—二进制码转换电路158

7.5.3 含BCD I/O的斐波那契数生成电路:设计方法1158

7.5.4 含BCD I/O的斐波那契数生成电路:设计方法2158

7.5.5 自动进位制的低频计数器158

7.5.6 反应计时器159

7.5.7 Babbage差分机模拟电路160

第8章 Verilog精选主题161

8.1 阻塞赋值语句和非阻塞赋值语句161

8.1.1 概述161

8.1.2 组合电路163

8.1.3 存储器单元164

8.1.4 混合阻塞和非阻塞两种赋值语句的时序电路165

8.2 时序电路的另一种编码方式167

8.2.1 二进制计数器167

8.2.2 FSM170

8.2.3 FSMD171

8.2.4 总结173

8.3 有符号数据类型的使用173

8.3.1 概述173

8.3.2 Verilog-1995中的有符号数174

8.3.3 Verilog-2001中的有符号数175

8.4 综合中函数的使用175

8.4.1 概述175

8.4.2 例子176

8.5 附加的测试平台开发结构178

8.5.1 always块和initial块178

8.5.2 进程语句178

8.5.3 时序控制180

8.5.4 延时控制180

8.5.5 事件控制181

8.5.6 wait语句181

8.5.7 timescale指令181

8.5.8 系统函数和系统任务182

8.5.9 用户自定义的函数和任务186

8.5.10 完备的测试平台的实例187

8.6 文献注释193

8.7 推荐实验193

8.7.1 使用阻塞赋值语句和非阻塞赋值语句的移位寄存器193

8.7.2 BCD计数器的另一种编码风格194

8.7.3 FIFO缓存器的另一种编码方式194

8.7.4 斐波那契数生成电路的另一种编码方式194

8.7.5 双模式比较器194

8.7.6 增强型二进制计数器的监测器194

8.7.7 FIFO缓存器的测试平台194

第2部分 基本Nios Ⅱ软件开发196

第9章 Nios Ⅱ处理器概述196

9.1 引言196

9.2 寄存器文件和ALU198

9.2.1 寄存器文件198

9.2.2 ALU198

9.3 存储器和I/O结构198

9.3.1 Nios Ⅱ的存储器接口198

9.3.2 存储器层次结构概述198

9.3.3 虚拟存储器199

9.3.4 存储器保护199

9.3.5 高速缓冲存储器199

9.3.6 紧密耦合存储器200

9.3.7 I/O结构200

9.3.8 互连结构200

9.4 异常和中断处理201

9.5 JTAG调试模块201

9.6 文献注释201

9.7 推荐实验201

9.7.1 Nios Ⅱ和MIPS的比较201

第10章 Nios Ⅱ系统的引用和底层访问202

10.1 开发流程的再介绍202

10.1.1 硬件开发202

10.1.2 软件开发202

10.1.3 闪烁LED系统204

10.2 Nios Ⅱ硬件生成教程204

10.2.1 在Quartus Ⅱ中创建一个硬件工程204

10.2.2 创建Nios Ⅱ系统,生成HDL代码204

10.2.3 创建顶层HDL文件用于实例化Nios Ⅱ系统209

10.2.4 编译和下载程序210

10.3 Nios Ⅱ SBT GUI教程210

10.3.1 创建BSP库210

10.3.2 使用BSP编辑器配置BSP211

10.3.3 创建用户应用目录并添加应用程序文件212

10.3.4 生成和运行软件212

10.3.5 检查代码大小213

10.4 针对软硬件一致性的系统id核213

10.5 底层I/O直接访问214

10.5.1 C语言指针的复习215

10.5.2 I/O寄存器的C指针215

10.6 鲁棒的底层I/O访问216

10.6.1 system.h216

10.6.2 alt_types.h217

10.6.3 io.h217

10.7 一些关于底层I/O操作的C语言技巧218

10.7.1 位处理218

10.7.2 打包和拆包219

10.8 软件开发219

10.8.1 基本的嵌入式程序框架219

10.8.2 主程序和任务程序220

10.9 文献注释221

10.10 推荐实验221

10.10.1 追赶LED电路221

10.10.2 碰撞LED电路222

10.10.3 脉宽调制电路222

10.10.4 旋转方块电路222

10.10.5 心跳电路222

10.11 完整程序清单222

第11章 预先设计的Nios Ⅱ I/O外设224

11.1 概述224

11.2 PIO核224

11.2.1 配置225

11.2.2 寄存器映射227

11.2.3 用户可见寄存器227

11.3 JTAG UART核228

11.3.1 配置228

11.3.2 寄存器映射229

11.4 内部定时器核229

11.4.1 配置229

11.4.2 寄存器映射230

11.5 增强型闪烁LEDNiosⅡ系统231

11.5.1 SOPC设计232

11.5.2 顶层HDL文件235

11.6 增强型闪烁LED系统软件开发236

11.6.1 设备驱动介绍236

11.6.2 增强型闪烁LED系统程序结构236

11.6.3 主程序237

11.6.4 函数命名习惯237

11.7 设备驱动程序238

11.7.1 PIO外设驱动238

11.7.2 JATA UART240

11.7.3 定时器241

11.8 任务程序242

11.8.1 函数flashsys_init_v1()242

11.8.2 函数sw_get_command_v1()242

11.8.3 函数jtaguart_disp_msg_v1()243

11.8.4 函数sseg_disp_msg_v1()243

11.8.5 函数led_flash_v1()244

11.9 软件构建和测试245

11.10 文献注释245

11.11 推荐实验245

11.11.1 闪烁LED系统的“Uptime”特性245

11.11.2 不同定时器模式的计数246

11.11.3 JTAGUART输入246

11.11.4 增强型冲撞LED电路246

11.11.5 旋转LED标语电路246

11.11.6 改进的秒表246

11.11.7 停车场占用情况计数器246

11.11.8 带按钮开关控制的反应时间定时器247

11.11.9 带键盘控制的反应时间定时器247

11.11.10 串行端口通信247

11.12 完整程序清单247

第12章 预先设计的Nios Ⅱ I/O驱动和HAL API256

12.1 HAL概述256

12.1.1 桌面式嵌入式系统和准系统嵌入式系统256

12.1.2 HAL范式257

12.1.3 设备类别258

12.1.4 遵从HAL的设备驱动258

12.1.5 _regs.h文件259

12.1.6 基于HAL的初始化序列260

12.2 BSP260

12.2.1 概述260

12.2.2 BSP文件结构261

12.2.3 BSP配置262

12.3 基于HAL的闪烁LED程序263

12.3.1 使用通用I/O设备的函数264

12.3.2 使用非通用I/O设备的函数266

12.3.3 初始化程序和主程序266

12.3.4 软件构建和测试267

12.4 设备驱动程序考虑268

12.4.1 I/O访问法268

12.4.2 比较269

12.4.3 本书中的驱动程序271

12.5 文献注释271

12.6 推荐实验271

12.6.1 闪烁LED系统的“Uptime”特性271

12.6.2 改进的碰撞LED电路271

12.6.3 停车场使用情况计数器271

12.6.4 带键盘控制的反应定时器271

12.6.5 数字闹钟271

12.7 完整程序清单272

第13章 中断及中断服务程序275

13.1 HAL框架中的中断处理275

13.1.1 概述275

13.1.2 Nios Ⅱ处理器的中断控制器276

13.1.3 顶层异常处理程序276

13.1.4 中断服务程序277

13.2 基于中断的闪烁LED程序277

13.2.1 定时器核的中断278

13.2.2 定时器核的驱动278

13.2.3 中断服务程序(版本1)279

13.2.4 中断服务程序(版本2)281

13.3 中断和调度282

13.3.1 调度282

13.3.2 性能283

13.4 文献注释284

13.5 推荐实验285

13.5.1 含按钮开关ISR程序的闪烁LED系统285

13.5.2 ISR驱动的闪烁LED系统285

13.5.3 闪烁LED系统中的“Uptime”特性285

13.5.4 带键盘控制的反应时间定时器285

13.5.5 数字闹钟285

13.6 完整程序清单285

第3部分 用户I/O外设开发292

第14章 带PIO核的用户I/O外设292

14.1 引言292

14.2 集成除法电路到Nios Ⅱ系统292

14.2.1 PIO模块292

14.2.2 集成293

14.3 测试293

14.4 推荐实验296

14.4.1 除法核的ISR296

14.4.2 8位数据的除法核296

14.4.3 64位数据的除法核296

14.4.4 斐波那契数电路297

14.4.5 周期计数器297

第15章 Avalon互连与SOPC组件298

15.1 引言298

15.2 Avalon MM接口300

15.2.1 Avalon MM从设备接口信号300

15.2.2 Avalon MM从设备接口性质301

15.2.3 Avalon MM从设备时序301

15.3 Avalon接口的系统互连结构304

15.4 SOPC I/O组件封装电路305

15.4.1 接口I/O缓存器306

15.4.2 内存对齐308

15.4.3 Avalon MM主设备的输出译码308

15.4.4 Avalon MM主设备的输入多路选择310

15.4.5 实际考虑311

15.5 SOPC组件构建指南311

15.5.1 Avalon接口312

15.5.2 寄存器映射312

15.5.3 封装的除法电路313

15.5.4 SOPC组件创建315

15.5.5 SOPC组件实例化320

15.6 测试320

15.7 文献注释323

15.8 推荐实验323

15.8.1 除法核的ISR323

15.8.2 除法核的另一种缓存方案323

15.8.3 8位数据的除法核323

15.8.4 64位数据的除法核323

15.8.5 斐波那契数电路323

15.8.6 周期计数器323

第16章 SRAM和SDRAM控制器324

16.1 DE1开发板存储器资源324

16.2 时序和时钟管理的概述324

16.2.1 时钟分配网络324

16.2.2 片外访问的时序问题325

16.2.3 PLL326

16.3 SRAM概述327

16.3.1 SRAM单元327

16.3.2 基本结构327

16.3.3 时序328

16.3.4 IS61LV25616AL SRAM芯片329

16.4 SRAM控制器IP核330

16.4.1 Avalon接口331

16.4.2 控制器电路332

16.4.3 SOPC组件的创建333

16.5 DRAM概述334

16.5.1 DRAM单元334

16.5.2 基本的DRAM结构335

16.5.3 DRAM时序336

16.6 SDRAM概述337

16.6.1 基本的SDRAM结构337

16.6.2 SDRAM时序338

16.6.3 ICSI IS42S16400 SDRAM芯片340

16.7 SDRAM控制器和PLL340

16.7.1 基本的SDRAM控制器340

16.7.2 SDRAM控制器IP核341

16.7.3 SOPC PLL IP核342

16.8 测试系统344

16.8.1 测试硬件配置344

16.8.2 测试软件346

16.9 文献注释349

16.10 推荐实验349

16.10.1 没有I/O寄存器的SRAM控制器349

16.10.2 SRAM控制器速度测试349

16.10.3 带Avalon MM三态接口的SRAM控制器349

16.10.4 SDRAM控制器时钟偏斜测试349

16.10.5 存储器性能比较350

16.10.6 锁存器的影响350

16.10.7 从零构建SDRAM控制器350

16.11 完整程序清单350

第17章 PS2键盘和鼠标352

17.1 引言352

17.2 PS2接收子系统352

17.2.1 PS2设备到主机的通信协议352

17.2.2 设计和代码353

17.3 PS2传送子系统356

17.3.1 主机到PS2设备的通信协议356

17.3.2 设计和代码357

17.4 完整的PS2系统361

17.5 PS2控制器IP核开发363

17.5.1 Avalon接口363

17.5.2 寄存器映射363

17.5.3 封装的PS2系统364

17.5.4 SOPC组件创建365

17.6 PS2驱动365

17.6.1 寄存器映射366

17.6.2 写操作程序366

17.6.3 读操作程序366

17.7 键盘驱动367

17.7.1 扫描码概述367

17.7.2 与主机的交互368

17.7.3 驱动程序369

17.8 鼠标驱动373

17.8.1 PS2鼠标协议概述373

17.8.2 与主机的交互373

17.8.3 驱动程序374

17.9 测试376

17.10 书中用户IP核的使用379

17.10.1 文件组织结构379

17.10.2 SOPC库集成379

17.10.3 综合的Nios Ⅱ测试系统380

17.11 文献注释385

17.12 推荐实验385

17.12.1 带看门狗定时器的PS2接收子系统385

17.12.2 软件接收FIFO385

17.12.3 软件PS2控制器385

17.12.4 键盘控制的LED闪烁电路385

17.12.5 增强型键盘驱动程序Ⅰ386

17.12.6 增强型键盘驱动程序Ⅱ386

17.12.7 遥控模式鼠标驱动386

17.12.8 滚轮鼠标驱动386

17.13 完整程序清单386

第18章 VGA控制器399

18.1 引言399

18.1.1 CRT显示器的基本操作399

18.1.2 DE1板上的VGA端口400

18.1.3 视频控制器400

18.2 VGA同步402

18.2.1 水平同步402

18.2.2 垂直同步403

18.2.3 VGA同步信号时序计算403

18.2.4 HDL实现404

18.3 基于SRAM的视频RAM控制器406

18.3.1 视频存储器概述406

18.3.2 DE1开发板的存储器问题407

18.3.3 Ad Hoc SRAM控制器407

18.3.4 HDL代码411

18.4 调色板电路414

18.5 视频控制器IP核的开发415

18.5.1 完整的视频控制器415

18.5.2 Avalon接口416

18.5.3 寄存器映射416

18.5.4 封装的视频控制器416

18.5.5 SOPC组件创建418

18.6 视频驱动418

18.6.1 视频内存访问程序418

18.6.2 几何模型程序419

18.6.3 位图处理函数421

18.6.4 位映射文本程序423

18.7 鼠标处理程序426

18.8 测试程序427

18.8.1 图形绘制程序429

18.8.2 通用绘图程序430

18.8.3 竖条交换程序432

18.8.4 鼠标演示程序433

18.8.5 位映射文本程序434

18.9 位图文件处理434

18.9.1 BMP格式概述435

18.9.2 BMP文件的生成435

18.9.3 基于子画面的设计436

18.9.4 BMP文件访问437

18.9.5 基于主机的文件系统437

18.9.6 位图文件获取程序437

18.10 文献注释441

18.11 推荐实验442

18.11.1 基于PLL的VGA控制器442

18.11.2 使用16位内存配置的VGA控制器442

18.11.3 三位色彩深度的VGA控制器442

18.11.4 一位颜色深度的VGA控制器442

18.11.5 带双缓存的VGA控制器442

18.11.6 分辨率为320×240的VGA控制器442

18.11.7 含垂直模式操作的VGA控制器442

18.11.8 几何模型函数442

18.11.9 位图处理函数443

18.11.10 模拟“神奇画板”玩具443

18.11.11 调色板查找表电路443

18.11.12 虚拟LED闪烁系统控制板443

18.11.13 虚拟模拟挂钟443

18.12 推荐工程443

18.12.1 可配置的VGA控制器443

18.12.2 使用系统SDRAM的VGA控制器444

18.12.3 绘图程序444

18.12.4 视频游戏444

18.13 完整程序清单444

第19章 音频编解码控制器469

19.1 引言469

19.1.1 编解码器概述469

19.1.2 WM8731芯片简介469

19.1.3 WM8731芯片寄存器470

19.2 I2C控制器473

19.2.1 I2C接口概述473

19.2.2 HDL实现474

19.3 编解码器数据访问控制器481

19.3.1 数字音频接口概述481

19.3.2 HDL实现481

19.4 音频编解码控制器IP核开发484

19.4.1 完整的音频编解码控制器484

19.4.2 Avalon接口486

19.4.3 寄存器映射486

19.4.4 封装的音频编解码控制器487

19.4.5 SOPC组件创建489

19.5 编解码驱动489

19.5.1 I2C命令程序490

19.5.2 数据源选择程序490

19.5.3 芯片初始化程序491

19.5.4 音频数据访问程序491

19.6 测试程序492

19.7 音频文件处理496

19.7.1 WAV格式概述496

19.7.2 音频格式转换程序497

19.7.3 音频数据读取程序497

19.8 文献注释499

19.9 推荐实验500

19.9.1 软件I2C控制器500

19.9.2 使用主设备时钟模式设计硬件数据访问控制器500

19.9.3 使用从设备时钟模式的软件数据访问控制器500

19.9.4 使用主设备时钟模式的软件数据访问控制器500

19.9.5 可配置的数据访问控制器500

19.9.6 语音录音机500

19.9.7 实时正弦波发生器501

19.9.8 实时音频波形显示501

19.9.9 回音效果501

19.10 推荐工程501

19.10.1 完整的I2C控制器501

19.10.2 数字均衡器501

19.10.3 数字音频示波器502

19.11 完整程序清单502

第20章 SD卡控制器514

20.1 SD卡概述514

20.2 SPI控制器514

20.2.1 SPI接口概述514

20.2.2 HDL实现515

20.3 SPI控制器IP核开发518

20.3.1 Avalon接口518

20.3.2 寄存器映射518

20.3.3 封装的SPI控制器519

20.3.4 SOPC组件创建520

20.4 SD卡协议520

20.4.1 SD卡的命令和响应格式520

20.4.2 初始化和辨识过程522

20.4.3 数据读和写过程523

20.5 SPI与SD卡驱动程序524

20.5.1 SPI驱动程序524

20.5.2 SD卡驱动程序525

20.6 文件访问531

20.6.1 FAT16结构概述531

20.6.2 只读FAT16文件访问驱动程序535

20.7 测试程序543

20.8 SD卡的数据传输性能547

20.9 文献注释548

20.10 推荐实验548

20.10.1 SD卡的数据传输性能测试548

20.10.2 鲁棒性强的SD卡驱动程序548

20.10.3 SD卡存取的专用处理器548

20.10.4 基于硬件的SD卡的读写操作548

20.10.5 SD卡信息读取549

20.10.6 MMC卡支持549

20.10.7 多扇区读写操作549

20.10.8 带CRC校验的SD卡驱动程序549

20.10.9 数字音乐播放器549

20.10.10 数字相框549

20.10.11 附加的FAT功能549

20.11 推荐工程550

20.11.1 HAL API文件访问集成550

20.12 完整程序清单550

第4部分 硬件加速器实例研究572

第21章 GCD加速器572

21.1 引言572

21.2 软件实现573

21.3 硬件实现573

21.3.1 ASMD图573

21.3.2 HDL实现574

21.4 时间测量576

21.4.1 HAL时间戳驱动576

21.4.2 定制的硬件计数器577

21.5 GCD加速器IP核开发577

21.5.1 Avalon接口577

21.5.2 寄存器映射577

21.5.3 封装的GCD加速器578

21.6 测试程序580

21.6.1 GCD程序580

21.6.2 主程序581

21.7 性能比较582

21.8 文献注释583

21.9 推荐实验583

21.9.1 使用其他处理器配置的性能583

21.9.2 最小规模的GCD加速器583

21.9.3 带后补零电路的GCD加速器583

21.9.4 64位数据的GCD加速器583

21.9.5 128位数据的GCD加速器583

21.9.6 欧拉算法的GCD583

21.10 完整程序清单583

第22章 Mandelbrot集合分形加速器587

22.1 引言587

22.1.1 Mandelbrot集合的概述587

22.1.2 Mandelbrot集合点的确定588

22.1.3 配色方案589

22.1.4 分形图像的生成589

22.2 定点运算590

22.3 函数calc_frac_point()的软件实现591

22.4 函数calc_frac_point()的硬件实现592

22.4.1 ASMD图592

22.4.2 HDL实现592

22.5 Mandelbrot集合分形加速器IP核开发594

22.5.1 Avalon接口594

22.5.2 寄存器映射595

22.5.3 封装的Mandelbrot集合分形加速器595

22.6 测试程序596

22.6.1 分形图形用户接口596

22.6.2 分形硬件加速器引擎控制程序598

22.6.3 分形绘图程序598

22.6.4 文本区显示程序599

22.6.5 鼠标处理程序601

22.6.6 主程序603

22.7 讨论603

22.8 文献注释604

22.9 推荐实验604

22.9.1 含一个乘法器的硬件加速器604

22.9.2 逃逸条件修改的硬件加速器604

22.9.3 使用Q4.1 2格式的硬件加速器604

22.9.4 多个分形引擎的硬件加速器604

22.9.5 “Burning-ship”分形605

22.9.6 改进的测试程序605

22.10 推荐工程605

22.10.1 浮点硬件加速器605

22.10.2 通用画分形图平台605

22.11 完整程序清单605

第23章 直接数字频率合成616

23.1 引言616

23.2 设计和实现616

23.2.1 数字波形的直接合成616

23.2.2 未调制的模拟波形的直接合成617

23.2.3 调制的模拟波形的直接合成618

23.2.4 HDL实现618

23.3 DDFS IP核开发621

23.3.1 Avalon接口621

23.3.2 寄存器映射621

23.3.3 封装的DDFS电路622

23.3.4 编解码器的DAC集成623

23.4 DDFS驱动623

23.4.1 配置程序624

23.4.2 初始化程序625

23.5 测试625

23.5.1 音符的概括和合成625

23.5.2 测试程序626

23.6 文献注释630

23.7 推荐实验630

23.7.1 正交相位载波生成630

23.7.2 缩减的相位—幅度查找表631

23.7.3 合成音乐播放器631

23.7.4 键盘钢琴631

23.7.5 键盘记录仪631

23.7.6 硬件包络发生器631

23.7.7 谐波叠加合成器631

23.7.8 采样合成器631

23.8 推荐工程632

23.8.1 声音发生器632

23.8.2 函数发生器632

23.8.3 完整的电子合成器632

23.9 完整程序清单632

参考文献640

热门推荐