参考:

(1)、PULPino datasheet:https://github.com/pulp-platform/pulpino/blob/master/doc/datasheet/datasheet.pdf

(2)、论文《基于RISC-V的PULPino+SoC的FPGA原型设计和物理实现》

1、OVERVIEW

       PULPino是为RISC-V RI5CY和zero-riscy core 构建的单核芯片系统。PULPino重用了其bigger brother PULP的大部分组件。它使用单独的单端口数据和指令ram。它包括一个引导ROM,其中包含一个引导加载程序,可以通过SPI从外部闪存设备加载程序。
       Figure 1.1 展示了SOC的框图。SoC使用AXI作为其与简单外设的APB桥的主接口。AXI和APB总线都具有32位宽的数据通道。 为了调试目的,SoC包括一个高级调试单元,它允许通过JTAG访问核心寄存器(core register)、两个RAMs和内存映射的IO。这两个ram都通过总线适配器连接到AXI总线。
                                                                      图1.1 PULPino Overview.
 
       PULPino主要针对RTL 仿真和ASICs,尽管也有一个FPGA版本。FPGA版本在性能方面并不是特别优的,因为我们主要使用它作为一个仿真平台,而不是一个standalone platform。

2、Memory Map

       图2.1显示了PULPino的默认内存映射,假设有32kB的数据和指令内存。这可以在PULPino顶级系统版本文件中进行更改。
             Figure 2.1: PULPino memory map.
 

2.1、Interrupt Vector Table

    PULPino的IVT遵循了对RI5CY核心的定义。
                                                           表2.1:中断/异常(exception)偏移向量表

3、CPU Core

      PULPino同时支持RISC-V RI5CY和RISC-V ZERO-RISCY。这两个core 具有相同的外部接口,因此与插头兼容(plug-compatible)。图3.1和3.2显示了两个core体系结构
      The core使用一个非常简单的数据和指令接口来与数据和指令内存进行交互(talk)。为了与AXI接口,在PULPino中实例化了一个 core2axi 协议转换器。
      为了调试,所有core register都被内存映射,允许通过AXI总线访问它们。core内部的调试单元通过此总线处理请求,并读取/设置 core register and/or halts the core。
      The core支持 performance counters。这些主要用于 counting core internal events,如 stalls,但也有可能 count core-external events。为此,有ext_perf_counters_i端口,可以附加任意事件。然后,每当在该端口上看到 a logic high,the core 就会为该事件类型增加其 internal performance counter。
       RISCY 核是一个有序的单发射核心,具有 4 级流水线,每个时钟周期能执行接近 1 条指令。该核心完全支持基本整数指令集、压缩指令集、乘法指令集扩展和单精度浮点指令集扩展,并且实现了多个 ISA 扩展,例如位操作指令、MAC 操作、支持定点操作、打包 SIMD 指令和点积。 它旨在提高超低功耗信号处理应用的能效。(见论文:基于RISC-V的PULPino+SoC的FPGA原型设计和物理实现)
                              Figure 3.1: RISCY core overview
 
       ZERO RISCY 核是一个有序的单发射核心,有 2 级流水线,完全支持基本整数指令集和压缩指令集。它还可以配置为具有乘法指令集扩展和为嵌入式系
统而设计的,减少整数寄存器数目的基本整数指令集。 它旨在实现超低功耗和超低面积。(见论文:基于RISC-V的PULPino+SoC的FPGA原型设计和物理实现)
                              Figure 3.2: zero-riscy core overview
 

4、Advanced Debug Unit

      高级调试单元有一个AXI主接口来访问外围设和内存。与PulpinoV1 the adv.相比,调试单元不再具有专门的调试接口来读出所有的core register。
      所有的核心寄存器(core registers)现在都是内存映射的,这意味着它们可以通过AXI接口读取。因此,调试不仅可以通过JTAG进行,而且还可以通过SPI或任何其他接口进行。
      JTAG信号被连接到SoC的引脚上。(信号:trstn、tck、tms、tdl、tdo、dbginf)
                  Figure 4.1: Advanced Debug Unit.
 
 
 
 
 
 
 
 
 
 
 
 
 
 

PULPino datasheet中文翻译并给了部分论文注释(前四章:Overview、Memory Map、CPU Core、Advanced Debug Unit)的更多相关文章

  1. 《Entity Framework 6 Recipes》中文翻译系列 目录篇 -持续更新

    为了方便大家的阅读和学习,也是响应网友的建议,在这里为这个系列做一个目录.在目录开始这前,我先来回答之前遇到的几个问题. 1.为什么要学习EF? 这个问题很简单,项目需要.这不像学校,没人强迫你学习! ...

  2. Spark官方文档 - 中文翻译

    Spark官方文档 - 中文翻译 Spark版本:1.6.0 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 引入Spark(Linki ...

  3. PS网页设计教程——30个优秀的PS网页设计教程的中文翻译教程

    PS网页设计教程--30个优秀的PS网页设计教程的中文翻译教程   作为编码者,美工基础是偏弱的.我们可以参考一些成熟的网页PS教程,提高自身的设计能力.套用一句话,"熟读唐诗三百首,不会作 ...

  4. Spark SQL 官方文档-中文翻译

    Spark SQL 官方文档-中文翻译 Spark版本:Spark 1.5.2 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 Data ...

  5. Learning Spark: Lightning-Fast Big Data Analysis 中文翻译

    Learning Spark: Lightning-Fast Big Data Analysis 中文翻译行为纯属个人对于Spark的兴趣,仅供学习. 如果我的翻译行为侵犯您的版权,请您告知,我将停止 ...

  6. 苹果App Store审核指南中文翻译(2014.9.1更新)

    转:http://www.cocoachina.com/appstore/20140901/9500.html CocoaChina对<苹果应用商店审核指南>中文翻译最近一次更新时间为20 ...

  7. (转)PK系列之六:该不该读中文翻译的专业书

    本文引用地址:http://blog.sciencenet.cn/blog-2999994-956596.html 此文来自科学网王立新博客,转载请注明出处. 刘新建:这几天在读一本译著:投入产出分析 ...

  8. Umbraco官方技术文档 中文翻译

    Umbraco 官方技术文档中文翻译 http://blog.csdn.net/u014183619/article/details/51919973 http://www.cnblogs.com/m ...

  9. 《Introduction to Tornado》中文翻译计划——第五章:异步Web服务

    http://www.pythoner.com/294.html 本文为<Introduction to Tornado>中文翻译,将在https://github.com/alioth3 ...

随机推荐

  1. java中 字符串的构造方法和直接创建

    java.long.String类代表字符串.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现.(程序当中所有的双引号字符串,都是String类的对象[没 ...

  2. Java面向对象06——类与对象小结

    小结  /* 1. 类与对象    类是一个模板:抽象,对象是一个具体的实例 2. 方法    定义.调用 ​ 3. 对应的引用    引用类型: 基本类型(8)    对象是通过引用来操作的:栈-- ...

  3. [WesternCTF2018]shrine(SSTI+过滤)

    记一道存在过滤的模板注入的题.直接给源代码 import flask import os app = flask.Flask(__name__) app.config['FLAG'] = os.env ...

  4. 最全总结 | 聊聊 Python 数据处理全家桶(PgSQL篇)

    1. 前言 大家好,我是安果! Python 数据处理全家桶,截止到现在,一共写过 6 篇文章,有兴趣的小伙伴可以去了解一下! 最全总结 | 聊聊 Python 数据处理全家桶(Mysql 篇) 最全 ...

  5. javaSE面向对象编程

    面向对象编程 构造器 构造器就是和类名相同但无返回类型的方法. public class Person { //一个类即使什么都不写,它也会存在一个方法 //显示的定义构造器 String name; ...

  6. Distribute SSH Pubkey to Multiple Hosts with Fabric

    Generate ssh keys on source host with ssh-keygen; Disable known_hosts prompt(optional): add "St ...

  7. Linux进程理解与实践(二)僵尸&孤儿进程 和文件共享

    孤儿进程与僵尸进程 孤儿进程: 如果父进程先退出,子进程还没退出那么子进程的父进程将变为init进程.(注:任何一个进程都必须有父进程) [cpp] view plaincopy #include & ...

  8. STM32_从SystemInit、__main到main()

    STM32 的 SystemInit() 和 __main Author by [YuCloud](https://www.cnblogs.com/yucloud/) 上篇文章 STM32启动代码分析 ...

  9. Java课程设计 SSM新闻资讯管理系统 博客论坛管理系统 Java编程 博客系统源代码

    注意:该项目只展示部分功能,如需了解,评论区咨询即可. 1.开发环境 开发语言:Java后台框架:SSM(Spring+SpringMVC+Mybatis)前端技术:HTML+CSS+JavaScri ...

  10. SpringBoot开发二十一-发送私信

    发送私信功能开发: 功能开发 数据访问层 message-mapper.xml 增加 <insert id="insertMessage" parameterType=&qu ...