×
基于FPGA与RISC-V的嵌入式系统设计

基于FPGA与RISC-V的嵌入式系统设计

1星价 ¥93.2 (7.9折)
2星价¥93.2 定价¥118.0
图文详情
  • ISBN:9787302545385
  • 装帧:平装
  • 册数:暂无
  • 重量:暂无
  • 开本:24cm
  • 页数:19,312页
  • 出版时间:2020-02-01
  • 条形码:9787302545385 ; 978-7-302-54538-5

本书特色

本书详细介绍了RISC-V指令集及其设计思想,并在此基础上引入了一种称为FARM的软硬件 开发模式,将FPGA同RISC-V CPU软核相结合,并利用Arduino与Make作为软件快速开发工具, 有效地提高了开发效率,使系统设计具有更好的通用性和可移植性。除了上述有关软硬件的讨论之外,本书的作者还与国内小脚丫FPGA的团队进行了合作,成 功地将书中的大部分内容移植到了小脚丫FPGA旗下的STEP CYC10开发板上,并将相关的技术细 节在书中做了详细陈述,以方便读者的动手实践。本书内容既有深度,又有广度,对各类从事软硬件开发的科技人员会有很大的参考价值。对 高校相关专业的学生,本书也是一部很好的参考书。

内容简介

本书详细介绍了RISC-V指令集及其设计思想,并在此基础上引入了一种称为FARM的软硬件开发模式,将FPGA同RISC-V CPU软核相结合,并利用Arduino与Make作为软件快速开发工具,有效地提高了开发效率,使系统设计具有更好的通用性和可移植性。 除了上述有关软硬件的讨论之外,本书的作者还与国内小脚丫FPGA的团队进行了合作,成功地将书中的大部分内容移植到了小脚丫FPGA旗下的STEP CYC10开发板上,并将相关的技术细节在书中做了详细陈述,以方便读者的动手实践。 本书内容既有深度,又有广度,对各类从事软硬件开发的科技人员会有很大的参考价值。对高校相关专业的学生,本书也是一部很好的参考书。

目录

第 1 章 概述 1.1 背景阐述 1.2 FPGA 1.3 RISC-V 1.4 小脚丫 FPGA 开发平台 1.5 C/C++,Make 与工具链 1.6 嵌入式操作系统 1.7 Arduino 集成开发环境 1.8 模块授权方式 1.9 PulseRainRTL库 1.10 资料来源 1.11 代码资源 第 2 章 FPGA 2.1 FPGA 背景概述 2.2 FPGA 与数字芯片的异同 2.2.1 FPGA 与数字芯片在设计流程上的异同 2.2.2 FPGA 与数字芯片在功耗上的区别 2.2.3 FPGA 与数字芯片在性能上的区别 2.2.4 逻辑设计规模的衡量单位 2.2.5 避免使用锁存器 2.3 FPGA 与 CPLD 的区别 2.4 FPGA 开发中硬件设计语言的选择 2.4.1 VHDL?与 System?Verilog?/?Verilog 2.4.2 HLS 2.4.3 System?C 2.4.4 Chisel/SpinalHDL 2.5 FPGA 的片上内存 2.6 用 FPGA 实现双向同步 SRAM 接口 2.7 FPGA 的 DSP?Block 2.8 时钟与复位 2.9 时钟域跨越 2.9.1 单个电平信号的时钟域跨越 2.9.2 单个脉冲信号的时钟域跨越 2.9.3 多比特总线的时钟域跨越 2.10 有限状态机的 System?Verilog 模板 2.11 高速 IO 与源同步总线(Source?Synchronous?Bus) 2.12 FPGA 在数字信号处理中的应用 2.12.1 数字滤波器 2.12.2 4倍频采样 2.12.3 复数乘法 2.12.4 补码,值饱和,负值,绝对值,四舍五入 2.12.5 除法 2.12.6 正弦函数与余弦函数 2.12.7 CORDIC 算法 2.13 其他技巧 2.13.1 寄存器重定时 2.13.2 异或树与多路复用器 2.13.3 虚拟输入输出 2.13.4 迁移路径 2.14 面积与性能的平衡 2.14.1 流水线与并行 2.14.2 小面积设计 2.14.3 AT定律 2.15 数字逻辑与处理器各自适用的领域 第 3 章 RISC-V 指令集 3.1 RISC-V 的历史 3.2 8051的 CISC 指令集与 RISC-V 的比较 3.2.1 8051?指令集简介 3.2.2 8051?指令集对处理器设计的负面影响 3.2.3 RISC-V 指令集对处理器设计的正面影响 3.3 RISC-V 与其他 RISC 指令集的比较 3.4 RISC-V 基础指令集(RV32I 与 RV32E) 3.4.1 RV32I?与 RV32E 基础指令集简介 3.4.2 RISC-V?地址空间 3.4.3 RV32I 通用寄存器与函数调用约定 3.4.4 RV32I 指令格式 3.4.5 RV32I 算术与逻辑指令 3.4.6 控制转移指令 3.4.7 内存载入与存储指令 3.4.8 RV32I 内存同步指令 3.4.9 控制与状态寄存器指令 3.4.10 环境调用与软件断点 3.4.11 基础指令集的面积优化方案 3.5 RISC-V 扩展指令集 3.5.1 乘除法扩展(M?Extension) 3.5.2 压缩指令集扩展 3.6 RISC-V 特权架构 3.6.1 特权层级 3.6.2 控制状态寄存器 3.6.3 定时器 3.6.4 中断与异常 3.6.5 程序的调试 第 4 章 设计基于 RISC-V 指令集的 Soft—CPU 4.1 2018?RISC-V?Soft?CPU?Contest 获奖作品:PulseRain?Reindeer 4.2 适合于 FPGA 的设计目标 4.3 PulseRain?Reindeer 的设计策略 4.4 PulseRain?Reindeer 的 RTL 设计 4.4.1 与 FPGA 平台相关部分 4.4.2 独立于 FPGA 平台部分 4.4.3 通用寄存器的设计 4.4.4 CSR 寄存器的实现 4.4.5 时钟定时器的实现 4.4.6 流水线的设计 4.5 处理器验证的方式 4.5.1 黑盒(Black?Box)测试与白盒(White?Box)测试 4.5.2 用 Verilator 做处理器内核的黑盒验证 4.5.3 用 Modelsim 做处理器的白盒验证 第 5 章 外围设备接口 5.1 UART 5.2 I 2 C 和 SMBus 5.3 SPI 5.4 PWM 5.5 microSD 存储卡 5.6 PS/2 接口 5.7 旋转编码器 5.8 7段数码管显示器 5.9 USB 5.10 以太网 第 6 章 嵌入式软件开发基础 6.1 目标文件格式 6.2 Link?Script(编译用链接脚本) 6.3 工具链 6.3.1 readelf 6.3.2 objdump 6.3.3 objcopy 6.4 嵌入式系统中高级编程语言的选择 6.5 C 语言在嵌入式系统中的应用 6.5.1 C 语言的模块封装 6.5.2 C 语言的内存对齐访问 6.5.3 C 语言的静态编译检查 6.5.4 volatile 与 const 6.6 C++ 语言在嵌入式系统中的应用 6.6.1 C++ 语言的口水仗 6.6.2 C++ 语言对 C 的改进 6.6.3 C++ 语言引入的新概念和新方法 6.7 MAKE 6.7.1 支持增量编译的 Makefile(Makefile?for?Incremental?Build) 6.7.2 支持内核配置语言的 Makefile 第 7 章 嵌入式操作系统的移植 7.1 嵌入式操作系统的分类 7.1.1 裸金属系统 7.1.2 实时操作系统 7.1.3 通用操作系统 7.2 Zephyr 操作系统的 RISC-V 移植 7.2.1 Zephyr 操作系统简介 7.2.2 串行口的支持 7.2.3 定时器的支持 7.2.4 中断的设置 7.2.5 修改编译链接选项 7.2.6 样本应用程序 第 8 章 Arduino开发系统 8.1 Arduino 的历史 8.2 Arduino 的技术贡献 8.3 Arduino 开发板 8.4 Arduino IDE 集成开发环境和 Arduino Language 8.4.1 Arduino IDE 集成开发环境的工作原理 8.4.2 Arduino Language 8.5 Arduino IDE 集成开发环境下第三方开发包的使用和制作 8.5.1 Arduino IDE 第三方开发包的使用 8.5.2 Arduino IDE 第三方开发包的制作 8.6 Arduino IDE 集成开发环境下第三方支持库的使用和制作 8.6.1 Arduino IDE 第三方支持库的使用 8.6.2 Arduino IDE 第三方支持库的制作 第 9 章 综合实验平台:小脚丫 STEP FPGA开发板 9.1 STEP?CYC10?开发板简介 9.2 RISC-V?for?Step?FPGA 9.3 动态内存的访问与时序约束 9.3.1 动态内存的仿真 9.3.2 动态内存的时钟设置 9.3.3 动态内存的时序约束 9.3.4 动态内存的读写测试 9.4 处理器仿真 9.4.1 用 Verilator 做仿真 9.4.2 用 Modelsim 做仿真 9.5 外围设备与中断 9.5.1 外围设备(RTL 模块)与物理设备 9.5.2 中断映射 9.5.3 中断处理程序 9.6 外围设备寄存器地址列表 9.7 串行口 9.8 GPIO 9.9 5 向按键 9.10 7 段管显示器 9.11 三轴加速度传感器 (ADXL345) 9.12 开发板示范 Sketch 第 10 章 知识产权保护 10.1 知识产权保护的方式 10.2 计算机指令集的知识产权保护 10.3 逆向工程 10.4 协议授权 10.4.1 GPL 10.4.2 LGPL 10.4.3 Apache 10.4.4 知识共享 10.4.5 双授权协议
展开全部

作者简介

顾长怡, 于1995年免试直升上海交通大学本硕联读班,1998年获该校计算机科学与工程学士学位,2001年获该校通信与信息系统工程硕士学位。 同年赴美,在美国加州的多家高科技公司从事嵌入式系统和FPGA的开发工作,其间还曾获得美国南加州大学集成电路设计专业硕士学位。 顾长怡先生对软硬件开发和数字信号处理有着丰富的业界经验,他也是美国PulseRain Technology公司的创始人。 在2018年由RISC-V 基金会官方举办的全球首届RISC-V Soft CPU 设计大赛中,由顾长怡先生主持设计的PulseRain Reindeer 处理器内核在激烈的竞争中脱颖而出,荣获季军。在2019年以物联网安全为主题的第二届竞赛中,他主持设计的PulseRain Rattlesnake处理器成功挫败了所有的黑客模拟攻击,并获综合成绩**而夺冠。 他同时还是英文学术专著 Building Embedded System - Programmable Hardware 的作者(该书已由美国APress出版社于2016年出版),以及开源软硬件的狂热支持者。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航