有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 皋陶 于 2020-10-16 23:56 编辑
目录1 总体介绍 1.1 总体特性 1.2 SoC整体框图 1.3 总线地址分配 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顶层引脚分配
7 Soc时钟管理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的时钟),因此其内部有时钟跨越异步处理。
8 Soc复位管理
8.1 芯片复位策略
首先,Always-On Domain的复位可以来源于三个来源:
8.1.1 POR电路Reset
有关Watchdog模块的详细介绍请参见文档《SiFive-E300-platform-reference-manual-v1.0.1.pdf》或者中文书籍《RISC-V架构与嵌入式开发快速入门》。
8.1.3 芯片引脚AON_ERST_N
此部分与FreedomE310完全相同:
图8‑1外部复位电路
上述描述的三种复位来源,任一种驱动都将触发系统进行复位,具体的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中处理器核上电复位之后,可以从两个不同的地址进行执行程序,分别为:
下文分别予以论述。
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上电控制表
11.1 SoC顶层引脚分配
本SoC的顶层引脚分布如下表所示。
SoC 顶层引脚分配表 此篇为《蜂鸟FPGA开发板全知道篇3: 开源SoC简介(4)》。
文章回顾:
完
|