皋陶 发表于 2020-10-16 23:53:14

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

本帖最后由 皋陶 于 2020-10-16 23:56 编辑

蜂鸟FPGA开发板全知道篇1:开源内核简介蜂鸟FPGA开发板全知道篇2:快速上手介绍(上)蜂鸟FPGA开发板全知道篇2:快速上手介绍(中)蜂鸟FPGA开发板全知道篇2:快速上手介绍(下)蜂鸟FPGA开发板全知道篇3:开源SoC简介(1)蜂鸟FPGA开发板全知道篇3:开源SoC简介(2)蜂鸟FPGA开发板全知道篇3:开源SoC简介(3)蜂鸟FPGA开发板全知道篇3:开源SoC简介(4)蜂鸟FPGA开发板全知道篇4:移植RTOS


目录1总体介绍1.1    总体特性1.2    SoC整体框图1.3    总线地址分配2RISC-V核介绍2.1    处理器核简介2.2    处理器核中断2.2.1    CLINT2.2.2    PLIC2.3    JTAG调试模块3SoC总线介绍3.1    ICB总线协议信号3.2    ICB总线协议时序3.3    SoC总线结构4SoC外设介绍4.1    QSPIMaster4.2    GPIO4.3    UART4.4    PWM4.5    Always-On模块4.5.1    WatchDog4.5.2    RTC4.5.3    PMU4.5.4    LCLKGEN4.5.5    RESETGEN4.6    I2CMaster4.7    HCLKGEN5SoC片上存储器介绍5.1    ITCM5.2    DTCM5.3    ROM6SoC电源域管理6.1    电源域划分6.2    低功耗模式7SoC时钟管理7.1    时钟域划分8SoC复位管理8.1    芯片复位策略8.1.1    POR电路Reset8.1.2    WatchDogReset8.1.3    芯片引脚AON_ERST_N8.1.4    复位树关系9上电流程控制9.1    上电流程9.1.1    从外部Flash开始执行9.1.2    从内部ROM开始执行9.2    上电地址选择10SoC 顶层引脚10.1    SoC顶层引脚分配

7Soc时钟管理7.1    时钟域划分
图7‑1SoC时钟域划分
如上图所示,将整个芯片划分为三个主要的时钟域:

[*]Always-On Domain:(1)此Domain主要使用低速的Always-on时钟,频率为32.768KHz。(2)时钟可以选择来自外部的晶振或者直接通过芯片引脚输入。
[*]Main Domain:(1)此Domain包含了芯片的主体,在此Domain中没有再划分时钟域,因此处理器核和总线以及外设IP均使用同样的时钟。(2)此Domain自带HCLKGEN时钟生成模块,使用片上PLL产生高速时钟。PLL也可以通过软件配置旁路其时钟,请参见第5章对于HCLKGEN模块的详细介绍。
[*]Debug Domain:(1)此Domain包含了为了支持JTAG对RISC-V调试功能而添加的相关逻辑。(2)此模块由两个不同的时钟域组成,分别是JTAG时钟和RISC-V Core时钟(即Main Domain的时钟),因此其内部有时钟跨越异步处理。
8Soc复位管理
8.1   芯片复位策略
首先,Always-On Domain的复位可以来源于三个来源:

[*]来自于POR(Power-On-Reset)电路;
[*]来自于芯片引脚AON_ERST_N;
[*]来自于WatchDog 生成的Reset;

8.1.1POR电路Reset

8.1.2   WatchDog Reset
有关Watchdog模块的详细介绍请参见文档《SiFive-E300-platform-reference-manual-v1.0.1.pdf》或者中文书籍《RISC-V架构与嵌入式开发快速入门》。
8.1.3   芯片引脚AON_ERST_N
此部分与FreedomE310完全相同:
图8‑1外部复位电路

8.1.4   复位树关系
上述描述的三种复位来源,任一种驱动都将触发系统进行复位,具体的reset原因都会反应在PMU的pmucause寄存器中,供复位后软件读取查询。
图8‑2SoC复位结构图
经三个来源最终生成的reset经过Always-On Clock同步成为异步置位、同步释放的aonrst信号,由aonrst信号进一步驱动PMU复位芯片的其他部分,
其复位树的关系如上图所示,要点如下:

[*]aonrst信号将作为Always-On模块本身的主复位信号,复位Always-On模块的PMU,WatchDog,RTC等。
[*]PMU被aonrst复位之后,将进入默认的wakeup sequence,生成hclkrst和corerst信号:(1) hclkrst信号用于驱动HCLKGEN模块(主要包含PLL时钟生成)。(2)corerst将用于除了HCLKGEN模块之外的所有Main Domain中的复位。
注意:每个复位信号都应该在相应的时钟域内进行同步,使之成为异步置位同步释放的复位信号。
10上电流程控制
10.1    上电流程
本SoC中处理器核上电复位之后,可以从两个不同的地址进行执行程序,分别为:

[*]从外部Flash开始执行。
[*]从内部ROM开始执行。
下文分别予以论述。
10.1.1   从外部Flash开始执行
如2.3节中所述,由于在本SoC中外部Flash的地址区间位于0x2000_0000 ~ 0x3FFF_FFFF,因此,如果从外部Flash开始执行,则RISC-V处理器核的PC复位值为0x20000000。
如果从Flash中启动,软件应该设置上电启动引导程序,将Flash中的代码和数据搬运到片上ITCM和DTCM中,然后跳转到ITCM中开始执行。
10.1.2   从内部ROM开始执行
如2.3节中所述,由于在本SoC中内部ROM的地址区间位于0x0000_1000~ 0x0000_1FFF,因此,如果从内部ROM开始执行,则RISC-V处理器核的PC复位值为0x0000_1000。
在ROM中存放的代码为固定代码,其直接跳转至ITCM(地址为0x8000_0000)中继续执行。
从内部ROM(继而从ITCM)开始执行的方式,只有在调试阶段(调试器初始化了ITCM之后)才有意义,否则由于ITCM中没有初始化程序,将无法正常执行。
10.2    上电地址选择
本SoC可以通过顶层引脚的值来选择上电地址,如下表所示。
SoC上电控制表
11Soc顶层引脚11.1    SoC顶层引脚分配
本SoC的顶层引脚分布如下表所示。
SoC 顶层引脚分配表
文章回顾
此篇为《蜂鸟FPGA开发板全知道篇3:开源SoC简介(4)》。
文章回顾:《蜂鸟FPGA开发板全知道篇3:开源SoC简介(1)》《蜂鸟FPGA开发板全知道篇3:开源SoC简介(2)》《蜂鸟FPGA开发板全知道篇3:开源SoC简介(3)》

页: [1]
查看完整版本: 蜂鸟FPGA开发板全知道篇3: 开源SoC简介(4)