蜂鸟E203 SOC系统

蜂鸟SOC系统框图:
其中SOC包括E203处理器内核,系统存储总线,私有设备总线,私有外设接口IP,常开域IP(IP复用于SIFive 公司开源的Freedom 310 )以及系统内的存储器
在这里插入图片描述
(1)存储、外设资源及地址分配
E203的片上存储主要有ITCM和DTCM,以及挂载在系统存储总线上的ROM

  • ITCM:大小可配置,默认为64KB大小,起始地址为0x8000_0000,虽然主要用于存放指令,但是其地址区间也可以被处理器核的Load和Store指令访问,从而用来存放数据
  • DTCM:大小可配置,默认为64KB大小,起始地址为0x9000_0000,只能被数据存储器访问指令访问,只能存放数据
  • ROM:大小为4KB,默认仅存放一条跳转指令,直接跳转至ITCM的起始地址开始执行

E203的片外存储资源主要为Flash存储器:外部Flash可以利用Xip(Execution in Place)模式,通过QSPI0被映射为一片只读的地址区间
在这里插入图片描述
(2)SOC时钟域
c
1、常开域
使用always-on时钟,频率为32.768KHZ,时钟可以选择来自片上振荡器、外部晶振或者直接通过芯片引脚输入。在FPGA中,使用xilinx的分频ip,直接输出32.768KHZ的参考时钟
2、主域
由HCLKGEN模块控制生成主域的时钟(16MHZ),同样在FPGA中,使用xilinx的分频ip,直接输出16MHZ的参考时钟
3、调试域
为支持JTAG而添加的相关逻辑,由两个不同的时钟域组成,分别是JTAG时钟核RISC-V处理器核时钟(主域的时钟)

通过时钟的划分,SOC同样工作在三种模式下:
1、正常模式:常开域和MOFF域均处于正常供电状态
2、等待模式:RISC-V处理器执行一条WFI指令,处理器停止执行,时钟被关闭进入等待模式,直到被中断唤醒。
3、休眠模式:常开域正常供电,但是MOFF域的电源切断。

(3)全局复位
SOC的全局复位有三个来源:
1、来自POR(power-on-reset)
在芯片上电后,在电压达到稳定阈值之前一直输出复位信号,保证芯片自动上电复位
2、来自芯片引脚AON_ERST_N
AON_ERST_N引脚可以用于外部复位
3、来自WD产生的reset

复位信号首先通过”或“的形式产生aonrst信号,作为always-on的复位信号;之后由于PMU 复位继而唤醒整个SOC复位,PMU执行默认的唤醒指令生成hclkrst和corerst信号对MOFF域进行复位。

上电复位后,可以从两个不同的地址进行执行程序(通过SOC芯片引脚BOOTROM_N来控制):
1、从外部Flash开始执行,即RISC-V处理器核的PC复位值为0x2000_0000;用户可以通过调试器将开发的程序烧写在Flash中,直接在Flash中被执行
2、从内部的ROM开始执行,即PC复位值为0x0000_1000,在ROM中存放的代码是固定代码,执行完固定代码,直接跳转至ITCM中继续执行。

(4)中断与异常
处理器顶层接口中有4根中断输入信号:

  • 软件中断(一根):CLINT(core local interrupts controller)处理器核局部中断控制器产生,内部实现一个32位的MSIP寄存器,该寄存器只有最低位为有效位,该寄存器有效位直接作为软件中断信号给处理器核。软件可以写1至MSIP寄存器触发软件中断;也可以写0至MSIP寄存器消除软件中断。
  • 计时器中断(一根):CLINT产生一个64的MTIME寄存器,反应一个64位计数器的值。内部还实现了一个64位的MTIMECMP寄存器,存放计数器的比较值,当MTIME值大于等于MTIMECMP寄存器,就会产生计数器中断。
  • 外部中断:外部中断源通过PLIC进行优先级仲裁和派发。PLIC理论上支持高达1024个外部中断源,E203的SOC系统连接了GPIO、URAT、PWM等多个外部中断源,PLIC将多个外部中断源仲裁成一个单比特的中断信号送入处理器的外部中断引脚。由于PLIC模块处于与处理器核相同的时钟域,所以大部分中断源的时钟域与PLIC相同,而RTC和WD中断来自于低速的电源常开时钟,需要对其进行同步处理,所以设计了irq_sync模块。
  • 调试中断(一根):只在调试器介入调试时才会发生。
发布了54 篇原创文章 · 获赞 4 · 访问量 1020

猜你喜欢

转载自blog.csdn.net/buzhiquxiang/article/details/103772525
soc