查看: 2063|回复: 0
收起左侧

蜂鸟FPGA开发板全知道篇3: 开源SoC简介(1)

[复制链接]

  离线 

  • TA的每日心情
    奋斗
    2021-3-3 12:32
  • 签到天数: 10 天

    [LV.3]

    发表于 2020-10-16 23:51:55 | 显示全部楼层 |阅读模式

    有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    本帖最后由 皋陶 于 2020-10-17 00:02 编辑



    目录
    1  总体介绍

    1.1    总体特性

    1.2    SoC整体框图

    1.3    总线地址分配

    2  RISC-V核介绍

    2.1    处理器核简介

    2.2    处理器核中断

    2.2.1    CLINT

    2.2.2    PLIC

    2.3    JTAG调试模块

    3  SoC总线介绍

    3.1    ICB总线协议信号

    3.2    ICB总线协议时序

    3.3    SoC总线结构

    4  SoC外设介绍

    4.1    QSPIMaster

    4.2    GPIO

    4.3    UART

    4.4    PWM

    4.5    Always-On模块

    4.5.1    WatchDog

    4.5.2    RTC

    4.5.3    PMU

    4.5.4    LCLKGEN

    4.5.5    RESETGEN

    4.6    I2CMaster

    4.7    HCLKGEN

    5  SoC片上存储器介绍

    5.1    ITCM

    5.2    DTCM

    5.3    ROM

    6  SoC电源域管理

    6.1    电源域划分

    6.2    低功耗模式

    7  SoC时钟管理

    7.1    时钟域划分

    8  SoC复位管理

    8.1    芯片复位策略

    8.1.1    POR电路Reset

    8.1.2    WatchDogReset

    8.1.3    芯片引脚AON_ERST_N

    8.1.4    复位树关系

    9  上电流程控制

    9.1    上电流程

    9.1.1    从外部Flash开始执行

    9.1.2    从内部ROM开始执行

    9.2    上电地址选择

    10  SoC 顶层引脚

    10.1    SoC顶层引脚分配


    1  总体介绍
    本文介绍全开源的蜂鸟E203 RISC-V处理器核以及配套开源SoC,为了方便描述,本文档中将此SoC简称为“蜂鸟E203 SoC”。
    注意:

    • 本文档对蜂鸟E203内核以及RISC-V指令集架构的介绍尚不够详细,在中文书籍《手把手教你设计CPU:RISC-V处理器篇》或者《RISC-V架构与嵌入式开发快速入门》中对其进行深入浅出地系统的讲解,感兴趣的用户可以自行搜索书籍。



    • 本文档对SoC的各外设的介绍尚不够详细,在中文书籍《RISC-V架构与嵌入式开发快速入门》中进行了深入浅出的系统讲解。感兴趣的用户可以自行搜索此书。


    注意:


    • 本开源SoC主要面向教育教学和爱好者领域,源代码全部开放。理论上可以用于商业目的,但是不保证其商用质量和服务;


    • The main purpose ofthis open-sourced core is to be used by students/university/research andentry-level-beginners, hence, the commercial quality (bug-free) and service ofthis core is not not not warranted!!!

    1.1    总体特性

    本SoC总体特性如下:

    • 使用全开源的蜂鸟E203处理器核,此处理器核包括如下特性:

      (1)超低功耗2级流水线处理器核

      (2)64KB ITCM,64KB DTCM

      (3)有关蜂鸟E203的更多信息参见第3章



    • 为了尽量的共享当前RISC-V的软件生态,将尽可能的复用SiFive公司开源的Freedom 310(HiFive1开发板所使用)SoC,包括:

      (1)对其已有的IP进行复用兼容

      (2)对其总线地址分配进行兼容



    • 在兼容Freedom 310 SoC的基础上,增加如下IP,使其SoC功能更加丰富:

      (1) I2C Master



    1.2    SoC整体框图

    整个SoC的框图如下所示:

    国内芯片技术交流-蜂鸟FPGA开发板全知道篇3: 开源SoC简介(1)risc-v单片机中文社区(1)

    图1‑1 SoC整体框图


    上图中除了蜂鸟E203处理器核和总线之外,其他的主要外部设备IP模块均复用来自Freedom E310 SoC平台。图中用红色线框包含的模块为开源Freedom E310 SoC平台所不具备的(因为其开源的是FPGA平台源代码),需要我们自己设计添加,包括:

    • I2C Master:使用开源的I2C Master IP。

    • HCLKGEN:用于使用PLL生成高速时钟(用于Main Domain)。

    • LCLKGEN:生成低速时钟(用于Always-onDomain)。

    • RESETGEN:用于为SoC生成复位逻辑。




    1.3    总线地址分配

    本SoC的总线地址分配如下表所示。注意,下表中:

    • 普通部分为与Freedom E310兼容且已经存在的IP及其地址分配。

    • 绿色高亮部分为本项目自研RISC-V核特有的部分。

    • 黄色高亮部分为本项目新定义的系统IP及其地址分配区间。

    • 蓝色高亮部分为FreedomE310芯片中存在的IP及其地址分配,但是目前本SoC中还没有的IP。


    SoC地址分配表

    国内芯片技术交流-蜂鸟FPGA开发板全知道篇3: 开源SoC简介(1)risc-v单片机中文社区(2)

    注意:

    • 本文档对蜂鸟E203处理器内核以及RISC-V指令集架构的介绍尚不够详细,在中文书籍《手把手教你设计CPU:RISC-V处理器篇》中对其进行深入浅出地系统的讲解。感兴趣的用户可以自行搜索此书。


    2.1    处理器核简介

    本SoC使用的处理器核为开源的蜂鸟E203 RISC-V处理器核。

    蜂鸟E203内核的特性简介如下:


    • E203内核采用2级流水线结构,通过一流的处理器架构设计,该CPU核的功耗与面积均优于同级ARM Cortex-M核,实现业界最高的能效比与最低的成本

    • E203内核能够运行RISC-V指令集,支持RV32IMAC等指令子集的配置组合,仅支持机器模式(Machine Mode Only)。

    • E203内核提供标准的JTAG调试接口,以及成熟的软件调试工具。

    • E203内核提供成熟的GCC编译工具链。


    参见《手把手教你设计CPU——RISC-V处理器篇》了解开源蜂鸟E203的详情。


    2.2    处理器核中断

    蜂鸟E203内核的中断分为三种类型:

    • 计时器中断,由CLINT模块产生。

    • 软件中断,由CLINT模块产生。

    • 外部中断,由PLIC管理产生。


    对于RISC-V架构中断的详细介绍,本文档在此不展开赘述,用户参见中文书籍《手把手教你设计CPU:RISC-V处理器篇》第13章中对其进行深入浅出地系统的讲解。

    2.2.1     CLINT


    本文在此仅对CLINT进行中文简述。

    有关CLINT的详细,用户可以选择中文书籍《手把手教你设计CPU:RISC-V处理器篇》第13章中对其进行深入浅出地系统的讲解。
    CLINT全称为Core Local Interrupts Controller。CLINT是一个存储器地址映射(Memory Address Mapped)的模块,挂载在处理器核为其实现的专用总线接口上,在蜂鸟E203内核配套的SoC中其寄存器的地址区间如下表所示。CLINT的寄存器只支持size为32位的读写访问。
    CLINT寄存器的Memory MappedAddress
    国内芯片技术交流-蜂鸟FPGA开发板全知道篇3: 开源SoC简介(1)risc-v单片机中文社区(3)

    CLINT可以用于生成软件中断,其要点如下:


    • CLINT中实现了一个32位的msip寄存器,该寄存器只有最低位为有效位,该寄存器有效位直接作为软件中断(Software Interrupt)信号通给处理器核。

    • 当软件写1至msip寄存器触发了软件中断之后,前文中介绍的CSR寄存器mip中的MSIP域便会置高指示当前中断pending状态。

    • 软件可通过写0至msip寄存器来清除该软件中断。




    CLINT可以用于生成计时器中断,其要点如下:


    • CLINT中实现了一个64位的mtime寄存器,该寄存器反映了64位计时器的值。计时器根据低速的输入节拍信号进行计时。

    • CLINT中实现了一个64位的mtimecmp寄存器,该寄存器作为计时器的比较值,假设计时器的值mtime大于或者等于mtimecmp的值时,则产生计时器中断。软件可以通过改写mtimecmp的值来清除计时器中断。



    2.2.2     PLIC


    本文在此仅对PLIC进行中文简述。


    有关PLIC的详细,用户可以参见中文书籍《手把手教你设计CPU:RISC-V处理器篇》第13章中对其进行深入浅出地系统的讲解。

    PLIC全称为Platform Level Interrupt Controller。PLIC是RISC-V架构标准定义的系统中断控制器,主要用于多个外部中断源的优先级仲裁和派发。

    如图1-1中所示,PLIC是一个存储器地址映射(Memory Address Mapped)的模块,挂载在处理器核为其实现的专用总线接口上,在蜂鸟E203内核配套的SoC中其寄存器的地址区间如下表所示。PLIC的寄存器只支持size为32位的读写访问。


    PLIC寄存器的Memory MappedAddress
    国内芯片技术交流-蜂鸟FPGA开发板全知道篇3: 开源SoC简介(1)risc-v单片机中文社区(4)

    PLIC理论上可以支持高达1024个外部中断源,在具体的SoC中连接的中断源个数可以不一样。蜂鸟E203内核的SoC系统是基于Sifive公司开源的Freedom E310 SoC开发所得。PLIC在此SoC中连接了GIPO,UART,PWM等等多个外部中断源,其中断分配如下表所示。PLIC将多个外部中断源仲裁为一个单比特的中断信号送入蜂鸟E203内核。

    注意:由于本SoC增加了I2C Master,因此增加了I2C的中断。

    PLIC中断分配表
    国内芯片技术交流-蜂鸟FPGA开发板全知道篇3: 开源SoC简介(1)risc-v单片机中文社区(5)

    2.3    JTAG调试模块

    蜂鸟E203内核采用标准(1149.1)JTAG 连接模块用于连接系统外部调试器(Debugger)与内部的调试模块(Debug Module)。
    如图1-1中所示,Debug Module调试模块,用于支持外部JTAG通过该模块调试处理器核,是的处理器核能够通过GDB对其进行交互式调试,譬如设置断点,单步执行等调试功能。

    后续文章
    此篇为《蜂鸟FPGA开发板全知道篇3:  开源SoC简介(1)》,请持续关注,后续即将发布:
    《蜂鸟FPGA开发板全知道篇3:  开源SoC简介(2)》
    《蜂鸟FPGA开发板全知道篇3:  开源SoC简介(3)》
    《蜂鸟FPGA开发板全知道篇3:  开源SoC简介(4)》






    上一篇:蜂鸟FPGA开发板全知道篇2:快速上手介绍(下)
    下一篇:蜂鸟FPGA开发板全知道篇3: 开源SoC简介(2)
    RISCV作者优文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    回复

    使用道具 举报

    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

    RISC-V单片机中文网上一条 /2 下一条



    版权及免责声明|RISC-V单片机中文网 |网站地图

    GMT+8, 2024-3-29 19:03 , Processed in 0.410604 second(s), 48 queries .

    快速回复 返回顶部 返回列表