热搜关键词: 信号与系统无刷电机ADSTCP/IP

pdf

RISC-Ⅴ处理器与片上系统设计:基于FPGA与云平台的实验教程

  • 1星
  • 日期: 2022-03-19
  • 大小: 28.54MB
  • 所需积分:1分
  • 下载次数:6
  • favicon收藏
  • rep举报
  • free评论
标签: 嵌入式

嵌入式

FPGA

FPGA

本书将线下的FPGA开发板与线上的云平台结合,完成基于开源RISC-V处理器的SiFive  Freedom  E300片上系统,以及E21处理器配合云平台设计方法的相关实验教程。并用Chisel编程的方式与FPGA硬件,完成国产RT-Thread操作系统验证的移植。  全书包含三大部分内容:首先讲述了基于实验所用Digilent  Nexys板级硬件设计平台和Vivado开发工具。其次是介绍Verilog  HDL、Chisel  HCL和一种由国内自主开发的Coffee-HDL这三种硬件描述语言。最后是三种实验教程的设计与实现方法,包含开源的SiFive  Freedom  E300片上系统的实验;以英伟达开源的深度学习硬件架构NVDLA为例,介绍如何在Freedom  E300平台上集成Verilog  IP的方法及介绍SiFive  E21处理器IP的使用方式与国内自主开发云端SoC开发平台的实验;移植国内自主开发RT-Thread实时多任务操作系统的原理与应用到SiFive  Freedom  E300片上系统的实验。

第1章  RISC-V的历史和机遇  1

1.1  RISC-V发明团队与历史  1

1.1.1  商业公司的指令集架构载浮载沉  4

1.1.2  RISC-V指令集架构有什么不同  6

1.1.3  RISC-V发展史及其标志性事件  7

1.2  RISC-V基金会成长的历史  8

1.2.1  RISC-V基金会的成员介绍  9

1.2.2  RISC-V基金会推动20个重点领域的技术  11

1.2.3  RISC-V基金会标准制定过程及工作群组机制  12

1.2.4  RISC-V国际协会的诞生  13

1.3  RISC-V的生态系统  13

1.3.1  RISC-V的开发板和生态系统  14

1.3.2  部分RISC-V社区生态的支持厂商  18

1.3.3  芯片设计业界的RISC-V产品进展  22

1.4  SiFive研发团队技术沿革  24

1.4.1  Rocket  Chip  SoC生成器  24

1.4.2  使用Chisel语言编写Rocket  Chip生成器  26

1.4.3  Rocket标量处理器  27

1.4.4  SiFive强力推动RISC-V生态发展  28  [1] 

第2章  RISC-V指令集体系架构介绍  32

2.1  引言  32

2.2  RISC-V架构特性  32

2.2.1  简洁性  33

2.2.2  模块化  33

2.3  指令格式  35

2.3.1  指令长度编码  35

2.3.2  指令格式  36

2.4  寄存器列表  37

2.4.1  通用寄存器  37

2.4.2  控制和状态寄存器  38

2.4.3  程序计数器  39

2.5  地址空间与寻址模式  39

2.5.1  地址空间  39

2.5.2  小端格式  40

2.5.3  寻址模式  40

2.6  内存模型  40

2.7  特权模式  41

2.8  中断和异常  42

2.8.1  中断和异常概述  42

2.8.2  RISC-V机器模式下的中断架构  42

2.8.3  机器模式下中断和异常的处理过程  43

2.9  调试规范  44

2.10  RISC-V未来的扩展子集  45

2.10.1  B标准扩展:位操作  45

2.10.2  H特权态架构扩展:支持管理程序(Hypervisor)  45

2.10.3  J标准扩展:动态翻译语言  45

2.10.4  L标准扩展:十进制浮点  46

2.10.5  N标准扩展:用户态中断  46

2.10.6  P标准扩展:封装的单指令多数据(Packed-SIMD)指令  46

2.10.7  Q标准扩展:四精度浮点  46

2.10.8  V标准扩展:基本矢量扩展  46

2.11  RISC-V指令列表  46

2.11.1  I指令子集  47

2.11.2  M指令子集  52

2.11.3  A指令子集  53

2.11.4  F指令子集  55

2.11.5  D指令子集  56

2.11.6  C指令子集  57

第3章  现场可编程逻辑门阵列(FPGA)设计流程  60

3.1  Xilinx  FPGA概述与设计流程  60

3.1.1  Xilinx  FPGA的基本结构  61

3.1.2  Diligent  Nexys  A7  FPGA开发平台介绍  63

3.1.3  FPGA的设计流程  64

3.2  Xilinx  Vivado集成环境安装与开发流程  67

3.2.1  Vivado集成环境的安装  68

3.2.2  Vivado集成环境的开发流程  76

第4章  SiFive  Freedom  E300  SoC的原理与实验  92

4.1  Verilog  HDL语言简介  92

4.1.1  数据类型  93

4.1.2  数据表示  95

4.1.3  运算符及表达式  96

4.1.4  Verilog  HDL常用语法  101

4.1.5  系统函数和任务  106

4.1.6  Verilog  HDL语言规范  111

4.1.7  用于Verilog  HDL设计的Xilinx  7系列  FPGA原语使用方法  118

4.1.8  小结  128

4.2  Chisel  HCL语言简介  129

4.2.1  环境安装  130

4.2.2  Scala编程语言快训  132

4.2.3  Chisel硬件构造语言快训  138

4.2.4  小结  162

4.3  SiFive  Freedom  E300平台架构介绍  162

4.3.1  E31  RISC-V内核概述  164

4.3.2  中断架构  170

4.3.3  内核本地中断器(CLINT)  175

4.3.4  调试支持  176

4.3.5  SiFive  TileLink总线介绍  181

4.4  SiFive  Freedom  E300在Nexys  A7上的开发流程  204

4.4.1  SiFive  Freedom  SoC生成器简介  204

4.4.2  Verilog  IP集成方法与开发流程  210

4.4.3  Freedom  E300在Nexys  A7上的开发流程  215

第5章  SiFive  E21处理器和SoC设计云平台的原理与实验  222

5.1  SiFive  E21处理器  222

5.1.1  缩略语和术语列表  223

5.1.2  E21  RISC-V内核概述  224

5.1.3  内存映射  229

5.1.4  中断架构  229

5.1.5  内核本地中断器  236

5.1.6  调试支持  240

5.1.7  使用E21内核评估套件  245

5.2  Coffee-HDL语言简介  258

5.2.1  开发Coffee-HDL语言的动机  258

5.2.2  文件和模块  259

5.2.3  语言要素  261

5.2.4  数据类型  262

5.2.5  操作符  263

5.2.6  位选择和部分选择  264

5.2.7  表达式  264

5.2.8  语句  265

5.2.9  函数  267

5.2.10  LRU算法模块设计示例  267

5.2.11  E21_SOC_FPGA集成模块设计示例  269

5.3  ezchip?  SoC在线设计云平台  271

5.3.1  IC  Studio主界面布局  272

5.3.2  IC  Studio的使用  276

5.3.3  ezchip?可配置制模块  277

5.3.4  生成代码  279

5.3.5  基于SiFive  E21  处理器的SoC设计实验  280

5.3.6  基于SiFive  E21  处理器的FPGA验证实验  285

第6章  RT-Thread实时多任务操作系统的原理与应用  298

6.1  SiFive  Freedom  Studio集成开发调试环境安装与介绍  298

6.1.1  Freedom  Studio简介与安装  298

6.1.2  启动Freedom  Studio  300

6.1.3  创建sifive-welcome项目  301

6.1.4  配置sifive-welcome项目  303

6.1.5  编译sifive-welcome项目  305

6.1.6  运行sifive-welcome项目  306

6.1.7  调试程序  312

6.2  移植RT-Thread实时多任务操作系统的原理  313

6.2.1  嵌入式操作系统概述  313

6.2.2  RT-Thread实时多任务操作系统介绍  315

6.2.3  RT-Thread的底层结构与移植  317

6.3  RT-Tread的UART驱动结构分析、移植及应用  322

6.3.1  RT-Tread外设驱动  322

6.3.2  UART驱动结构分析  323

6.3.3  UART的移植与应用  330

6.4  完成RT-Thread实时操作系统的编译与运行  330

6.4.1  工具准备  331

6.4.2  修改路径与代码  331

6.4.3  文件编译  333

6.4.4  文件烧录  333

附录A  虚拟机与Ubuntu  Linux操作系统的安装  335

A.1  虚拟机的安装  335

A.1.1  虚拟机简介  335

A.1.2  VMware安装(以VMware15版本为例)  336

A.2  Ubuntu  Linux操作系统安装  337

A.2.1  Ubuntu简介  337

A.2.2  Ubuntu虚拟机的下载和安装  337

A.2.3  虚拟机信息  339

附录B  基于Nexys  A7贪吃蛇游戏的设计与实现  341

B.1  硬件设备概述  341

B.2  设计要求  342

B.3  硬件设计  342

B.4  任务设计  344

B.4.1  程序结构  344

B.4.2  任务的数据结构设计  345

B.4.3  全局变量的使用  345

B.4.4  状态机的使用  345

B.5  程序设计详解  346

B.5.1  top模块的使用  346

B.5.2  display模块的使用  346

B.5.3  snake模块的使用  349

B.5.4  fsm模块的使用  351

B.5.5  turn模块的使用  352

B.5.6  apple模块的使用  353

B.5.7  score模块的使用  354

B.6  测试数据  355

参考文献

推荐帖子 最新更新时间:2022-05-24 09:35

MSP430F5529 统一时钟系统UCS
一个模块时钟源:MODOSC,产生MODCLK时钟源信号,一般只为闪存控制模块和ADC12模块提供服务。 该模块不被使用时自动关闭,任何模块对该时钟源提出使用要求时,MODOSC无需被使能即可响应该请求。430F5529中MODCLK为5MHZ。 *************************************************************** MSP
火辣西米秀 微控制器 MCU
物联网接入协议-MQTT
     MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。实际上现在的物联网接入服务基本都将支持MQTT协议做为标配。      MQTT是一个发布/订阅协议, 与其他协议比如HTTP相比,其非常的简单和轻量级,设计用于限制性设备和低流量、窄带宽(不可靠网络)、低延迟的场景。
fish001 RF/无线
开关电源反馈回路的请教
大家好,我在维修一台开关电源时,看到厂家的图纸,关于有开关电源反馈有几个问题请教各位大侠,我基础比较差,但对电子比较感兴趣,望不屑赐教,非常感激,谢谢了! 备注: 1。这是开关电源反馈电路的一部分 2。 我测量了一下U4-A,2脚,2脚,3脚是2.65V,1脚是5.3V. U3的11脚电压是1.5V。 3。  U1   IR2110S        U2   Uc2801       
xxooi 电源技术
阻抗或者导纳特性曲线若干问
一般情况换能器的特性曲线都是R和X组成的阻抗特性曲线或者由G和B组成的导纳特性曲线 但是现在我的换能器的曲线是Cp和G组成的特性曲线 如下图可见 所以有点困惑,有以下问题 【1】G还是电导的意思,那Cp是指哪儿的电容呢? 【2】每个频率点,对应不同的Cp,那么要算该频率时的阻抗时          电阻就是1/G了, 电抗用公式 Xc=1/(j*2*pi*f*Cp)呢?(f是该频率点的
shaorc 综合技术交流
虚拟机中的Ubuntu和主机无法Ping连接通
      最近刚开学习Linux系统,装的是VMware的虚拟机软件,。电脑主机的IP是192.168.192.1,我在把Ubuntu系统的IP修改为192.168.192.2后,想通过ping命令看虚拟机和主机之间知否能够进行通信,以便我使用Windows下的工具去编写Ubuntu下的程序。但是我不管将虚拟机的网络连接选择,桥接模式还是NET模式,都无法使其ping通。      我用同样的方
FireLife Linux与安卓
【LPC54100】iic读取MPU6050相关数据
本帖最后由 youki12345 于 2015-5-24 15:32 编辑    既然要做自平衡车,那么小车姿态的获取就相当重要的,通常6050是首选,下面这段话来自与6050的手册:          MPU-6000(6050)的角速度全格感测范围为±250、±500、±1000与±2000°/sec (dps),可准确追踪快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为±2g
youki12345 NXP MCU

评论

登录/注册

意见反馈

求资源

回顶部
查找数据手册?

EEWorld Datasheet 技术支持

热门活动

相关视频

可能感兴趣器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
×