网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | 基于FPGA与RISC-V的嵌入式系统设计 |
分类 | 人文社科-社会科学-语言文字 |
作者 | 顾长怡编 |
出版社 | 清华大学出版社 |
下载 | ![]() |
简介 | 内容推荐 本书详细介绍了RISC-V指令集及其设计思想,并在此基础上引入了一种称为FARM的软硬件开发模式,将FPGA同RISC-V CPU软核相结合,并利用Arduino与Make作为软件快速开发工具,有效地提高了开发效率,使系统设计具有更好的通用性和可移植性。除了上述有关软硬件的讨论之外,本书的作者还与靠前小脚丫FPGA的团队进行了合作,成功地将书中的大部分内容移植到了小脚丫FPGA旗下的STEP CYC10开发板上,并将相关的技术细节在书中做了详细陈述,以方便读者的动手实践。本书内容既有深度,又有广度,对各类从事软硬件开发的科技人员会有很大的参考价值。对高校相关专业的学生,本书也是一部很好的参考书。 目录 章 概述 1.1背景阐述 1.2FPGA 1.3RISC-V 1.4小脚丫FPGA开发平台 1.5C/C++,Make与工具链 1.6嵌入式操作系统 1.7Arduino集成开发环境 1.8模块授权方式 1.9PulseRainRTL库 1.10资料来源 1.11代码资源 第2章 FPGA 2.1FPGA背景概述 2.2FPGA与数字芯片的异同 2.2.1FPGA与数字芯片在设计流程上的异同 2.2.2FPGA与数字芯片在功耗上的区别 2.2.3FPGA与数字芯片在性能上的区别 2.2.4逻辑设计规模的衡量单位 2.2.5避免使用锁存器 2.3FPGA与CPLD的区别 2.4FPGA开发中硬件设计语言的选择 2.4.1VHDL与System Verilog/Verilog 2.4.2HLS 2.4.3System C 2.4.4Chisel/SpinalHDL 2.5FPGA的片上内存 2.6用FPGA实现双向同步SRAM接口 2.7FPGA的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.12FPGA在数字信号处理中的应用 2.12.1数字滤波器 2.12.24倍频采样 2.12.3复数乘法 2.12.4补码,值饱和,负值,绝对值,四舍五入 2.12.5除法 2.12.6正弦函数与余弦函数 2.12.7CORDIC算法 2.13其他技巧 2.13.1寄存器重定时 2.13.2异或树与多路复用器 2.13.3虚拟输入输出 2.13.4迁移路径 2.14面积与性能的平衡 2.14.1流水线与并行 2.14.2小面积设计 2.14.3AT2定律 2.15数字逻辑与处理器各自适用的领域 第3章 RISC-V指令集 3.1RISC-V的历史 3.28051的CISC指令集与RISC-V的比较 3.2.18051 指令集简介 3.2.28051 指令集对处理器设计的负面影响 3.2.3RISC-V指令集对处理器设计的正面影响 3.3RISC-V与其他RISC指令集的比较 3.4RISC-V基础指令集(RV32I与RV32E) 3.4.1RV32I与RV32E基础指令集简介 3.4.2RISC-V地址空间 3.4.3RV32I通用寄存器与函数调用约定 3.4.4RV32I指令格式 3.4.5RV32I算术与逻辑指令 3.4.6控制转移指令 3.4.7内存载入与存储指令 3.4.8RV32I内存同步指令 3.4.9控制与状态寄存器指令 3.4.10环境调用与软件断点 3.4.11基础指令集的面积优化方案 3.5RISC-V扩展指令集 3.5.1乘除法扩展(M Extension) 3.5.2压缩指令集扩展 3.6RISC-V特权架构 3.6.1特权层级 3.6.2控制状态寄存器 3.6.3定时器 3.6.4中断与异常 3.6.5程序的调试 第4章 设计基于RISC-V指令集的Soft-CPU 4.12018 RISC-V Soft CPU Contest获奖作品:PulseRain Reindeer 4.2适合于FPGA的设计目标 4.3PulseRain Reindeer的设计策略 4.4PulseRain Reindeer的RTL设计 4.4.1与FPGA平台相关部分 4.4.2独立于FPGA平台部分 4.4.3通用寄存器的设计 4.4.4CSR寄存器的实现 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.1UART 5.2I2C和SMBus 5.3SPI 5.4PWM 5.5microSD存储卡 5.6PS/2接口 5.7旋转编码器 5.87段数码管显示器 5.9USB 5.10以太网 第6章 嵌入式软件开发基础 6.1目标文件格式 6.2Link Script(编译用链接脚本) 6.3工具链 6.3.1readelf 6.3.2objdump 6.3.3objcopy 6.4嵌入式系统中不错编程语言的选择 6.5C语言在嵌入式系统中的应用 6.5.1C语言的模块封装 6.5.2C语言的内存对齐访问 6.5.3C语言的静态编译检查 6.5.4volatile与const 6.6C++语言在嵌入式系统中的应用 6.6.1C++语言的口水仗 6.6.2C++语言对C的改进 6.6.3C++语言引入的新概念和新方法 6.7MAKE 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.2Zephyr操作系统的RISC-V移植 7.2.1Zephyr操作系统简介 7.2.2串行口的支持 7.2.3定时器的支持 7.2.4中断的设置 7.2.5修改编译链接选项 7.2.6样本应用程序 第8章 Arduino开发系统 8.1Arduino的历史 8.2Arduino的技术贡献 8.3Arduino开发板 8.4Arduino IDE集成开发环境和ArduinoLanguage 8.4.1Arduino IDE集成开发环境的工作原理 8.4.2Arduino Language 8.5Arduino IDE集成开发环境下第三方开发包的使用和制作 8.5.1Arduino IDE第三方开发包的使用 8.5.2Arduino IDE第三方开发包的制作 8.6Arduino IDE集成开发环境下第三方支持库的使用和制作 8.6.1Arduino IDE第三方支持库的使用 8.6.2Arduino IDE第三方支持库的制作 第9章综合实验平台:小脚丫STEP FPGA开发板 9.1STEP CYC10开发板简介 9.2RISC-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.8GPIO 9.95向按键 9.107段管显示器 9.11三轴加速度传感器(ADXL345) 9.12开发板示范Sketch 0章 知识产权保护 10.1知识产权保护的方式 10.2计算机指令集的知识产权保护 10.3逆向工程 10.4协议授权 10.4.1GPL 10.4.2LGPL 10.4.3Apache 10.4.4知识共享 10.4.5双授权协议 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。