有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 皋陶 于 2020-10-17 00:02 编辑
目录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顶层引脚分配
1 总体介绍
本文介绍全开源的蜂鸟E203 RISC-V处理器核以及配套开源SoC,为了方便描述,本文档中将此SoC简称为“蜂鸟E203 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总体特性如下:
1.2 SoC整体框图
整个SoC的框图如下所示:
图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地址分配表 注意: 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
CLINT可以用于生成软件中断,其要点如下:
CLINT可以用于生成计时器中断,其要点如下:
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
PLIC理论上可以支持高达1024个外部中断源,在具体的SoC中连接的中断源个数可以不一样。蜂鸟E203内核的SoC系统是基于Sifive公司开源的Freedom E310 SoC开发所得。PLIC在此SoC中连接了GIPO,UART,PWM等等多个外部中断源,其中断分配如下表所示。PLIC将多个外部中断源仲裁为一个单比特的中断信号送入蜂鸟E203内核。
注意:由于本SoC增加了I2C Master,因此增加了I2C的中断。
PLIC中断分配表
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)》
完
|