基于Nios II的嵌入式SoPC系统设计与Verilog开发实例

基于Nios II的嵌入式SoPC系统设计与Verilog开发实例 pdf epub mobi txt 电子书 下载 2026

出版者:电子工业出版社
作者:[美] Pong P. Chu
出品人:
页数:664
译者:金明录
出版时间:2015-5
价格:99.00元
装帧:平装
isbn号码:9787121257735
丛书系列:
图书标签:
  • FPGA
  • 简体中文
  • 单片机与嵌入式系统
  • 中国
  • 2015
  • Nios II
  • SoPC
  • 嵌入式系统
  • Verilog
  • FPGA
  • 硬件设计
  • 数字电路
  • Altera
  • 开发实例
  • 嵌入式开发
想要找书就要到 小哈图书下载中心
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

本书利用Altera FPGA开发板和Nios II软核处理器,揭示了基于FPGA的嵌入式系统特有的硬件可编程性,采用“做中学”的模式,介绍了基于Verilog的嵌入式SoPC设计的基本概念和技术。本书通过许多实例说明软、硬件的设计和开发过程,并给出了完整的代码和丰富的实验题目。

好的,这是一份关于一本名为《基于Nios II的嵌入式SoPC系统设计与Verilog开发实例》的书籍的详细图书简介,该简介刻意避开了书籍本身的具体内容,转而聚焦于相关领域和背景知识的拓展。 --- 图书简介:探索现代嵌入式系统设计的广阔图景 当前,随着电子信息技术的飞速发展,嵌入式系统已不再是简单的微控制器应用,而是深入渗透到我们日常生活的方方面面,从智能家电到工业自动化,再到航空航天领域。在这个快速迭代的技术浪潮中,系统级设计(System-on-a-Chip, SoC)已成为实现高性能、低功耗和高集成度目标的核心路径。 本书旨在引导读者深入了解构建现代嵌入式系统的关键技术栈与设计哲学,聚焦于数字逻辑设计、处理器架构以及系统集成策略。它不仅关乎如何选择合适的硬件平台,更在于如何有效地驾驭这些平台,实现复杂的功能。 数字逻辑基础与硬件描述语言的威力 在深入探讨复杂系统之前,坚实的数字逻辑基础是不可或缺的。本书的基石建立在对数字电路设计原理的深刻理解之上,包括组合逻辑与时序逻辑的设计与分析。在此基础上,硬件描述语言(HDL)作为连接软件思维与硬件实现的桥梁,其重要性不言而喻。 详细介绍将涵盖标准化的硬件描述语言的应用,例如如何利用其进行模块化设计、层次化结构构建,以及如何进行功能仿真与综合。理解HDL的精髓在于掌握其与实际硬件资源的对应关系,从而能够高效地描述和实现复杂的数字算法。这不仅是嵌入式硬件开发的必备技能,也是理解系统级IP核工作原理的关键。 从通用处理器到定制化架构的演进 现代嵌入式系统设计面临的挑战之一是如何在通用性与专用性之间取得平衡。传统上,我们依赖成熟的微处理器架构来处理复杂的控制和数据流任务。然而,面对实时性要求极高或数据处理吞吐量巨大的应用场景,单一的处理器核心往往力不从心。 因此,理解不同类型的处理器架构至关重要。这包括对经典冯·诺依曼结构和哈佛结构的深入剖析,以及现代RISC(精简指令集计算机)和CISC(复杂指令集计算机)设计哲学差异的探讨。重点会放在如何通过指令集的优化来提升特定任务的执行效率,以及如何通过流水线技术来提高指令并行度。 SoC集成:构建复杂系统的艺术 系统级集成是现代嵌入式设计皇冠上的明珠。一个功能完备的SoC不仅仅是一个处理器核心,它还包括了大量的定制化外设、存储器接口、总线结构以及系统级的互连机制。 本书将详细阐述集成电路设计中的关键环节。首先是总线架构的选择与设计,无论是早期的并行总线还是现代的片上网络(Network-on-Chip, NoC)思想,它们都是数据在系统中高效流动的生命线。理解总线仲裁、事务处理和握手协议,是保证系统稳定运行的前提。 其次,定制化外设的开发是SoC设计的一大特色。这涉及如何将特定的功能模块(如高速数据采集接口、专用算法加速器等)通过标准化的接口协议集成到系统中,并确保它们能与主处理器协同工作,实现资源共享和高效通信。 软件与硬件的协同开发策略 在一个集成的硬件平台上,软件的开发需要深度耦合于硬件的实际资源配置。本书将探讨这种协同开发模式。对于嵌入式软件开发者而言,了解底层硬件寄存器的映射、中断处理机制以及内存访问的延迟特性,是编写高效、无死锁代码的关键。 此外,理解交叉编译环境的搭建、启动代码的编写以及实时操作系统(RTOS)的移植和配置,是迈向专业嵌入式工程师的必经之路。如何在硬件资源有限的约束下,合理分配任务优先级、管理内存,并实现稳定的并发控制,是系统可靠性保障的核心议题。 设计验证与实现流程:从代码到芯片 任何复杂的数字系统设计,其可靠性都依赖于严谨的验证流程。本书将强调设计验证的重要性,包括功能仿真、时序验证以及形式化验证的概念。有效的验证策略能提前发现潜在的硬件缺陷,避免昂贵的硬件返工。 最后,系统实现涉及从RTL代码到最终可用于生产的硬件描述的整个流程,包括综合(Synthesis)、布局布线(Place and Route)等后端设计步骤。理解这些步骤如何将抽象的逻辑代码转化为具体的物理布局,对于优化系统的功耗、面积和时序性能至关重要。 通过对这些领域的全面梳理与深入探讨,本书旨在为读者提供一个全面、前瞻性的视角,以应对当前及未来嵌入式系统设计所面临的复杂挑战。掌握这些知识体系,将使设计者能够更自信地驾驭从概念到实现的全过程,打造出高性能、高可靠性的SoC解决方案。

作者简介

目录信息

第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部分 基本数字电路开发

第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 FPGA 20
3.1.1 通用FPGA器件概述 20
3.1.2 Altera Cyclone II系列器件
概述 21
3.2 Altera DE1和DE2开发板概述 23
3.3 开发流程 25
3.4 Quartus II概述 26
3.5 Quartus II简易教程 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 SRAM 83
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 II中的时序考虑 93
5.6 案例研究 94
5.6.1 秒表 94
5.6.2 FIFO 缓存器 98
5.7 Cyclone II器件的嵌入式存储器
模块 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 数据宽度可变的FIFO 114
5.9.8 堆栈 115
5.9.9 基于ROM的符号幅值加
法器 115
5.9.10 基于ROM的温度转换 115
第6章 FSM 116
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章 FSMD 132
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的斐波那契数
生成电路:设计方法1 158
7.5.4 含BCD I/O的斐波那契数
生成电路:设计方法2 158
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 FSM 170
8.2.3 FSMD 171
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 II软件开发

第9章 Nios II处理器概述 196
9.1 引言 196
9.2 寄存器文件和ALU 198
9.2.1 寄存器文件 198
9.2.2 ALU 198
9.3 存储器和I/O结构 198
9.3.1 Nios II的存储器接口 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 II和MIPS的比较 201
第10章 Nios II系统的引用和底层
访问 202
10.1 开发流程的再介绍 202
10.1.1 硬件开发 202
10.1.2 软件开发 202
10.1.3 闪烁LED系统 204
10.2 Nios II硬件生成教程 204
10.2.1 在Quartus II中创建一个
硬件工程 204
10.2.2 创建Nios II系统,生成
HDL代码 204
10.2.3 创建顶层HDL文件用于
实例化Nios II系统 209
10.2.4 编译和下载程序 210
10.3 Nios II SBT GUI教程 210
10.3.1 创建BSP库 210
10.3.2 使用BSP编辑器配置BSP 211
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.h 216
10.6.2 alt_types.h 217
10.6.3 io.h 217
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 II 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 增强型闪烁LED Nios II系统 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 UART 240
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 JTAG UART输入 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 II I/O驱动和
HAL API 256
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 BSP 260
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 II处理器的中断
控制器 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外设开发

第14章 带PIO核的用户I/O外设 292
14.1 引言 292
14.2 集成除法电路到Nios II
系统 292
14.2.1 PIO模块 292
14.2.2 集成 293
14.3 测试 293
14.4 推荐实验 296
14.4.1 除法核的ISR 296
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 除法核的ISR 323
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 PLL 326
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控制器和PLL 340
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 II测试系统 380
17.11 文献注释 385
17.12 推荐实验 385
17.12.1 带看门狗定时器的PS2
接收子系统 385
17.12.2 软件接收FIFO 385
17.12.3 软件PS2控制器 385
17.12.4 键盘控制的LED闪烁
电路 385
17.12.5 增强型键盘驱动程序I 386
17.12.6 增强型键盘驱动程序II 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文件访问集成 549
20.12 完整程序清单 550

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

第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 欧拉算法的GCD 583
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.12格式的硬件
加速器 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
· · · · · · (收起)

读后感

评分

评分

评分

评分

评分

用户评价

评分

对于一个希望深入理解嵌入式系统底层原理的开发者而言,这本书无疑是一座宝库。作者对 Nios II 处理器架构的讲解,细致入微,从其精简的指令集到高效的流水线设计,都进行了深入的剖析。我能够清晰地看到 Nios II 如何在 FPGA 这一灵活的平台上,实现强大的处理能力。更令我印象深刻的是,书中对 Verilog 开发实例的重视。每一个实例都紧密结合 Nios II 的特性,从最简单的 LED 控制,到复杂的通信协议实现,都展示了 Verilog 在嵌入式系统设计中的核心作用。我从中学习到了如何用 Verilog 来描述硬件,如何实现各种嵌入式功能,以及如何将这些功能与 Nios II 处理器进行高效的集成。书中对 SoPC 设计理念的阐述,更是让我对如何构建一个完整的嵌入式系统有了更深刻的理解。我能够看到 Nios II 处理器、各种 IP 核以及用户自定义模块是如何通过 Avalon 接口等标准接口进行通信,从而构成一个功能强大的系统。作者在书中还探讨了一些在实际开发中非常重要的议题,例如中断处理、时钟域同步以及低功耗设计等,这些内容对于我提升嵌入式系统设计的质量和效率具有非常重要的指导意义。这本书的讲解逻辑清晰,层层递进,让我能够一步步掌握 Nios II 和 Verilog 的核心技术,是一本非常值得推荐的参考书。

评分

作为一名对嵌入式系统充满好奇的初学者,我一直被 Nios II 的强大功能和 FPGA 的灵活性所吸引,但往往缺乏一个清晰的入口来系统地学习。这本书的出现,恰好填补了我的这一空白。作者以一种非常友好的方式,将 Nios II 的核心概念,如指令集、存储器接口、中断处理等,通过生动形象的比喻和深入浅出的语言进行了阐述。我最欣赏的是书中对 Verilog 开发实例的侧重。很多教程往往停留在理论讲解,而这本书却将大量的篇幅用于展示如何用 Verilog 来设计和实现各种嵌入式功能。从简单的 LED 闪烁,到复杂的 UART 通信,再到更高级的 AXI 总线接口,每一个实例都循序渐进,逻辑清晰,并且附带了详细的 Verilog 代码和讲解。这让我能够直观地感受到 Verilog 代码是如何转化为实际硬件功能的,也学会了如何根据 Nios II 的特点来优化自己的 Verilog 设计。书中的 SoPC 设计部分,更是让我大开眼界。我之前对如何将不同的 IP 核集成到一个 FPGA 芯片上感到困惑,而这本书则通过具体的实例,展示了如何使用 Qsys 或 Platform Designer 等工具来构建完整的 SoPC 系统,并讲解了各个组件之间的通信机制。这种从硬件到软件,再到系统集成的全面讲解,为我构建一个完整的嵌入式系统打下了坚实的基础。这本书的价值不仅在于技术知识的传授,更在于它所提供的解决实际问题的思路和方法,是一本非常值得珍藏的参考书。

评分

本书就像一位经验丰富的向导,带领我穿梭于 Nios II 嵌入式 SoPC 系统设计的奇妙世界。作者以一种清晰而系统的方式,将 Nios II 处理器强大的功能和 Verilog 灵活的开发方式相结合,为我提供了一套完整的学习框架。我尤其欣赏书中对 Nios II 架构的深度解析,它让我了解了 Nios II 作为一颗软核处理器,是如何通过精巧的设计实现强大的性能的。而 Verilog 开发实例部分,更是本书的灵魂所在。作者通过一系列精心设计的实例,展示了 Verilog 代码如何一步步转化为实际的硬件功能。从基础的 GPIO 操作到复杂的通信接口设计,每一个实例都包含了作者在实际开发中的经验和思考。我能够从中学习到 Verilog 代码的编写技巧,以及如何根据 Nios II 的特性来优化设计。书中对 SoPC 整体架构的讲解,也让我从一个更宏观的视角理解了嵌入式系统的构成。我能够清晰地看到 Nios II 处理器、内存控制器、各种外设接口以及用户自定义逻辑是如何协同工作,形成一个功能强大的系统。这本书的价值在于,它不仅仅传授技术知识,更重要的是培养了我的一种系统性的设计思维,让我能够更从容地应对复杂的嵌入式开发挑战。

评分

这本书如同一幅精美的蓝图,为我勾勒出了基于 Nios II 和 Verilog 的嵌入式 SoPC 系统设计的清晰路径。作者的讲解,将 Nios II 这一强大的软核处理器,从一个抽象的概念,转化为我手中可控的工具。我被书中对 Nios II 架构的细致剖析所吸引,从指令集的设计到存储器接口的运作,都清晰明了。而最让我感到欣喜的是,本书并没有止步于理论的阐述,而是通过大量的 Verilog 开发实例,将这些理论知识转化为可执行的代码。每一个实例都经过精心设计,从基础的 IO 控制,到复杂的通信协议实现,都展示了 Verilog 在 Nios II 系统中的关键作用。我能够清晰地看到 Verilog 代码是如何一步步构建出功能强大的嵌入式系统的,这对于我理解硬件描述语言的实际应用,以及如何将其与 Nios II 完美结合,起到了至关重要的作用。书中对 SoPC 设计理念的探讨,更是让我明白了如何将 Nios II 处理器、各种外设 IP 核以及用户自定义模块有机地整合到 FPGA 平台上,构建出一个高度定制化的嵌入式解决方案。这种系统级的思考方式,对于我未来的项目开发,将是宝贵的财富。书中的图表清晰,示例代码注释详尽,阅读体验极佳,即使遇到一些技术难点,也能通过作者的讲解和实例迎刃而解。这本书不仅仅是一本技术手册,更是一本能够激发创造力和解决实际问题的指南。

评分

对于我而言,这本书并非仅仅是关于 Nios II 和 Verilog 的技术堆砌,而是一次关于嵌入式系统思维的系统性重塑。作者并非仅仅罗列 Nios II 的指令和 Verilog 的语法,而是将它们巧妙地编织在一起,形成了一个完整而连贯的学习路径。在深入 Nios II 架构的各个方面时,作者总是能够及时地引出相关的 Verilog 开发实例,让我能够立刻将学到的知识应用到实际的代码编写中。这种“理论与实践相结合”的学习模式,极大地提高了我的学习效率和理解深度。书中对 SoPC 设计的讲解,更是点睛之笔。我之前总觉得 SoPC 是一个遥不可及的概念,但通过本书的实例,我才明白如何将 Nios II 处理器、各种外设 IP 核以及用户自定义的 Verilog 模块,在一个 FPGA 平台上高效地整合起来。书中对于不同 IP 核之间的通信接口,例如 AXI 总线,有着非常详尽的介绍和应用演示,这对于我理解现代嵌入式系统的互联互通至关重要。此外,作者还触及了一些在实际嵌入式开发中非常重要的议题,例如中断处理、时钟域同步以及功耗优化等,这些内容往往在其他入门书籍中难以找到,但在这本书中却得到了充分的探讨。总而言之,这本书以其系统性的讲解、丰富的实例以及前瞻性的视角,为我打开了通往复杂嵌入式系统设计的大门,是每一个想要深入理解 Nios II 和 FPGA 开发的工程师的必读之作。

评分

初读此书,便被其深厚的功底和严谨的逻辑所折服。作者对于 Nios II 架构的阐述,并非停留在表面,而是深入到指令流水线、寄存器组、存储器访问机制等底层细节,并辅以清晰的示意图,让我对 Nios II 的内部工作原理有了前所未有的理解。而当结合 Verilog 开发实例时,这种理解得到了进一步的升华。书中精心挑选的每一个实例,都紧密围绕 Nios II 的特性,从最简单的 IO 扩展,到复杂的自定义指令实现,都展示了 Verilog 在 Nios II 系统设计中的关键作用。我尤其欣赏书中对 Verilog 代码风格和设计模式的探讨,这让我能够写出更规范、更易于维护的代码。在 SoPC 设计方面,本书提供了对 Avalon 接口和 AXI 接口的深入剖析,并展示了如何利用这些接口将 Nios II 与各种 IP 核进行高效集成。这对于我理解现代 FPGA 设计的互联互通标准,以及如何构建可复用的 IP 核,具有极其重要的指导意义。书中还涉及了一些高级话题,如性能优化、中断响应以及调试技巧等,这些都是在实际嵌入式项目开发中不可或缺的知识。这本书的阅读体验非常流畅,作者的语言也富有感染力,让我能够沉浸其中,乐此不疲。它不仅仅是一本技术书籍,更是一位经验丰富的导师,在我探索 Nios II 和 Verilog 的世界里,提供了源源不断的启迪。

评分

这本书就像一把解锁嵌入式系统设计宝库的钥匙,对于我这样渴望深入理解 Nios II 架构并渴望将理论知识转化为实际应用的开发者来说,简直是久旱逢甘霖。书中对 Nios II 的讲解,从最基础的处理器架构到更复杂的指令集,都剖析得淋漓尽致,让我对这个强大的软核处理器有了前所未有的认识。尤其吸引我的是,作者并非仅仅停留在理论层面,而是通过大量精心设计的 Verilog 开发实例,将抽象的概念具象化。那些实例,从简单的 GPIO 控制到复杂的通信协议实现,都紧密结合了 Nios II 的特性,并且讲解得细致入微,几乎达到了手把手的教学程度。我能够清晰地看到 Verilog 代码是如何一步步构建出功能强大的嵌入式系统的,这对于我理解硬件描述语言的实际应用,以及如何将其与 Nios II 完美结合,起到了至关重要的作用。更难得的是,书中还探讨了 SoPC(System on a Programmable Chip)的设计理念,让我明白如何将各种外设、IP 核以及 Nios II 处理器有机地整合到 FPGA 平台上,构建出一个高度定制化的嵌入式解决方案。这种系统级的思考方式,对于我未来的项目开发,将是宝贵的财富。书中的图表清晰,示例代码注释详尽,阅读体验极佳,即使遇到一些技术难点,也能通过作者的讲解和实例迎刃而解。这本书不仅仅是一本技术手册,更是一本能够激发创造力和解决实际问题的指南,我强烈推荐给所有对 Nios II 和 FPGA 开发感兴趣的工程师和学生。

评分

这本书为我打开了一个全新的嵌入式系统设计领域。我一直对使用 FPGA 来构建定制化的嵌入式系统感到好奇,但苦于找不到一个能够全面讲解 Nios II 处理器和 Verilog 开发的优秀资源。这本书的出现,无疑是我的幸运。作者以一种非常系统化的方式,从 Nios II 的基础架构入手,层层递进,深入到其各种特性和应用。我特别喜欢书中对 Nios II 处理器内部工作机制的细致分析,这让我能够更深刻地理解它为何能在 FPGA 上实现强大的处理能力。而 Verilog 开发实例的部分,更是本书的精华所在。作者通过大量贴合实际的例子,展示了如何用 Verilog 来实现各种嵌入式功能,从简单的硬件控制到复杂的通信接口,都讲解得非常到位。我能够从这些实例中学习到 Verilog 代码的编写技巧,以及如何将其与 Nios II 处理器进行有效的集成。书中对 SoPC 设计的讲解,也让我对如何构建一个完整的嵌入式系统有了清晰的认识。我能够理解 Nios II 处理器、各种 IP 核以及用户自定义模块是如何通过特定的总线接口进行通信,从而构成一个功能强大的系统。这本书的讲解不仅停留在理论层面,更注重实际操作和问题解决,这对于我这样动手能力强的学习者来说,无疑是最大的帮助。

评分

当我翻开这本书时,我立刻被它严谨的学术风格和丰富的实践内容所吸引。作者对 Nios II 处理器架构的讲解,堪称教科书级别的细致,从其指令集的设计理念到流水线执行的原理,都进行了深入的剖析。这让我对 Nios II 的性能和灵活性有了更深刻的认识。而 Verilog 开发实例部分,更是本书的亮点。作者精心挑选的每一个实例,都紧密结合了 Nios II 的特性,并提供了完整的 Verilog 代码和详细的解释。我从中学习到了如何利用 Verilog 来设计各种嵌入式硬件模块,以及如何将这些模块与 Nios II 处理器进行高效的连接和交互。书中的 SoPC 设计部分,更是将 Nios II 和 Verilog 的知识融会贯通,展示了如何在一个 FPGA 平台上构建一个完整的嵌入式系统。作者对 Avalon 接口和 AXI 总线等标准接口的讲解,让我明白了不同组件之间是如何进行高效通信的。此外,本书还触及了一些在实际开发中非常关键但往往被忽略的细节,例如中断处理机制、时钟域同步以及内存管理等,这些内容对于我提升嵌入式系统设计的鲁棒性和稳定性有着非常重要的意义。总而言之,这本书不仅提供了扎实的理论基础,更赋予了我解决实际问题的能力,是每一位嵌入式开发者不可多得的宝贵财富。

评分

这本书简直是我在嵌入式开发道路上的一次“灵魂伴侣”。我之前尝试过阅读一些零散的 Nios II 和 Verilog 教程,但总是感觉缺乏一个清晰的脉络,学习起来断断续续,效果不佳。直到我遇到了这本书,它以一种循序渐进、逻辑严密的方式,将 Nios II 的精髓和 Verilog 的强大功能完美地结合起来。书中对 Nios II 处理器内部结构的剖析,让我看到了它作为一颗软核处理器,是如何通过精巧的设计实现强大的处理能力的。而对 Verilog 的讲解,则让我明白如何用一种“硬件化”的思维去描述和实现各种嵌入式功能。最让我惊喜的是,书中提供的每一个 Verilog 开发实例,都不仅仅是简单功能的展示,而是包含了作者在实际开发中的经验和思考。例如,在设计一个数据采集模块时,书中不仅给出了 Verilog 代码,还详细讲解了如何与 Nios II 进行高效的数据交互,以及如何处理数据溢出等常见问题。这种贴近实际应用的设计思路,让我受益匪浅。此外,书中对 SoPC 整体架构的讲解,也让我从一个更宏观的视角理解了嵌入式系统的构成。我能够清晰地看到 Nios II 处理器、内存控制器、各种外设接口以及用户逻辑是如何协同工作,形成一个功能强大的系统。这本书的价值在于,它不仅仅教会你“怎么做”,更重要的是教会你“为什么这么做”,并引导你形成一种系统性的设计思维。

评分

编者应该是努力做出一本好书的,前面语法部分很鸡肋,SOPC部分作为入门有点深,深入研究又太浅

评分

编者应该是努力做出一本好书的,前面语法部分很鸡肋,SOPC部分作为入门有点深,深入研究又太浅

评分

编者应该是努力做出一本好书的,前面语法部分很鸡肋,SOPC部分作为入门有点深,深入研究又太浅

评分

编者应该是努力做出一本好书的,前面语法部分很鸡肋,SOPC部分作为入门有点深,深入研究又太浅

评分

编者应该是努力做出一本好书的,前面语法部分很鸡肋,SOPC部分作为入门有点深,深入研究又太浅

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 qciss.net All Rights Reserved. 小哈图书下载中心 版权所有