功能描述#
中央处理器 (CPU)#
本芯片搭载基于 RISC-V ISA 的双核心64位的高性能低功耗CPU,具备以下特性:
CPU 指令特点#
强大的双核64位基于开放架构的处理器,具备丰富的社区资源支持
支持I扩展,即基本整数指令集(Base Integer Instruction Set)扩展
支持M扩展,即整数乘除扩展,可硬件加速实现高性能整数乘除
支持A扩展,即原子操作扩展,可硬件实现软件与操作系统需要的原子操作
支持C扩展,即压缩指令扩展,可通过编译器压缩指令实现更高的代码密度与运行效率
支持不同特权等级,可分特权执行指令,更安全
FPU 与浮点计算能力#
FPU满足IEEE754-2008标准,计算流程以流水线方式进行,具备很强的运算能力
核心0与核心1各具备独立FPU,两个核心皆可胜任高性能硬件浮点计算
支持F扩展,即单精度浮点扩展,CPU内嵌的FPU支持单精度浮点硬件加速
支持D扩展,即双精度浮点扩展,CPU内嵌的FPU支持双精度浮点硬件加速
FPU具备除法器,支持单精度、双精度的浮点的硬件除法运算
FPU具备平方根运算器,支持单精度、双精度的浮点的硬件平方根运算
高级中断管理能力#
该 RISC-V CPU 的 PLIC 控制器支持灵活的高级中断管理,可分7个优先级配置64个外部中断源,两个核心都可独立进行配置:
可对两个核心独立进行中断管理与中断路由控制
支持软件中断,并且双核心可以相互触发跨核心中断
支持CPU内置定时器中断,两个核心都可自由配置
高级外部中断管理,支持64个外部中断源,每个中断源可配置7个优先级
调试能力#
支持性能监控指令,可统计指令执行周期
具备用以调试的高速UART与JTAG接口
支持DEBUG模式以及硬件断点
神经网络处理器 (KPU)#
KPU是通用神经网络处理器,内置卷积、批归一化、激活、池化运算单元,可以对人脸或物体进行实时检测,具体特性如下:
支持主流训练框架按照特定限制规则训练出来的定点化模型
对网络层数无直接限制,支持每层卷积神经网络参数单独配置,包括输入输出通道数目、输入输出行宽列高
支持两种卷积内核1x1和3x3
支持任意形式的激活函数
实时工作时最大支持神经网络参数大小为5.5MiB到5.9MiB
非实时工作时最大支持网络参数大小为(Flash容量-软件体积)
[^audio]: 非实时场合一般用于音频应用,这类应用一般不需要33ms内获得神经网络输出结果。 [^flash]: Flash大小可选择为:SPI NOR Flash( 8MiB,16MiB,32MiB),SPI NAND Flash (64MiB,128MiB,256MiB),用户可根据需要选择合适的Flash.
KPU的内部结构如下图所示。
音频处理器 (APU)#
APU前处理模块负责语音方向扫描和语音数据输出的前置处理工作。APU前处理模块的功能特性有:
可以支持最多8路音频输入数据流,即4路双声道
可以支持多达16个方向的声源同时扫描预处理与波束形成
可以支持一路有效的语音数据流输出
内部音频信号处理精度达到16-位
输入音频信号支持12-位,16-位,24-位,32-位精度
支持多路原始信号直接输出
可以支持高达192K采样率的音频输入
内置FFT变换单元,可对音频数据提供512点快速傅立叶变换
利用系统DMAC将输出数据存储到SoC的系统内存中
静态随机存取存储器 (SRAM)#
SRAM包含两个部分,分别是6MiB的片上通用SRAM存储器与2MiB的片上AI SRAM存储器,共计8MiB(1MiB为1兆字节)。其中,AI SRAM存储器是专为KPU分配的存储器。它们分布在连续的地址空间中,不仅可以通过经由CPU的缓存接口访问,而且可以通过非缓存接口直接访问。
SRAM映射分布:
通用 SRAM 存储器#
通用 SRAM 存储器在芯片正常工作的任意时刻都可以访问。该存储器分为两个Bank,分别为MEM0与MEM1,并且DMA控制器可同时操作不同Bank。
通用SRAM存储器地址空间:
AI SRAM 存储器#
AI SRAM 存储器仅在以下条件都满足时才可访问:
PLL1 已使能,时钟系统配置正确
KPU 没有在进行神经网络计算
AI SRAM存储器地址空间:
系统控制器 (SYSCTL)#
控制芯片的时钟,复位和系统控制寄存器:
配置PLL的频率
配置时钟选择
配置外设时钟的分频比
控制时钟使能
控制模块复位
选择DMA握手信号
现场可编程IO阵列 (FPIOA/IOMUX)#
FPIOA允许用户将255个内部功能映射到芯片外围的48个自由IO上:
支持IO的可编程功能选择
支持IO输出的8种驱动能力选择
支持IO的内部上拉电阻选择
支持IO的内部下拉电阻选择
支持IO输入的内部施密特触发器设置
支持IO输出的斜率控制
支持内部输入逻辑的电平设置
一次性可编程存储器 (OTP)#
OTP是一次性可编程存储器单元,具体应用特性如下:
具有128Kbit的大容量存储空间
内部划分多个容量不同的BLOCK,每个BLOCK对应一个写保护位,可以单独进行写保护操作
具有坏点修复功能
内部存储了64个REGISTER_ENABLE标志位,可以作为控制某些SoC的硬件电路行为的开关
可以存储128位的AES加密和解密需要的KEY,由硬件实现只写可信存储区
高级加密加速器 (AES Accelerater)#
AES加速器是用来加密和解密的模块,具体性能如下:
支持ECB,CBC,GCM三种加密方式
支持128位,192位,256位三种长度的KEY
KEY可以通过软件配置,受到硬件电路保护
支持DMA传输
数字视频接口 (DVP)#
DVP是摄像头接口模块,特性如下:
支持DVP接口的摄像头
支持SCCB协议配置摄像头寄存器
最大支持640X480及以下分辨率,每帧大小可配置
支持YUV422和RGB565格式的图像输入
支持图像同时输出到KPU和显示屏: - 输出到KPU的格式可选RGB888,或YUV422输入时的Y分量 - 输出到显示屏的格式为RGB565
检测到一帧开始或一帧图像传输完成时可向CPU发送中断
快速傅立叶变换加速器 (FFT Accelerater)#
FFT加速器是用硬件的方式来实现FFT的基2时分运算。
支持多种运算长度,即支持64点、128点、256点以及512点运算
支持两种运算模式,即FFT以及IFFT运算
支持可配的输入数据位宽,即支持32位及64位输入
支持可配的输入数据排列方式,即支持虚部、实部交替,纯实部以及实部、虚部分离三种数据排列方式
支持DMA传输
安全散列算法加速器 (SHA256 Accelerater)#
SHA256加速器是用来计算SHA-256的计算单元:
支持SHA-256的计算
支持输入数据的DMA传输
通用异步收发传输器 (UART)#
高速 UART#
高速 UART 为 UARTHS(UART0)
通信速率可达5Mbps
8字节发送和接收FIFO
可编程式THRE中断
不支持硬件流控制或其他调制解调器控制信号,或同步串行数据转换器
通用 UART#
通用 UART 为 UART1、UART2和UART3,支持异步通信(RS232和RS485和IRDA,通信速率可达到5Mbps。 UART支持CTS和RTS信号的硬件管理以及软件流控(XON和XOFF)。3个接口均可被DMA访问或者CPU直接访问。
8字节发送和接收FIFO
异步时钟支持 - 为了应对CPU对于数据同步的对波特率的要求, UART可以单独配置数据时钟.全双工模式能保证两个时钟域中数据的同步
RS485接口支持 - UART可以配置为软件可编程式RS485模式。默认为RS232模式
可编程式THRE中断 - 用THRE中断模式来提升串口性能。当THRE模式和FIFO模式被选择之后,如果FIFO中少于阈值便触发THRE中断
看门狗定时器 (WDT)#
WDT是APB的一种从外设,并且也是“同步化硬件组件设计”的组成部分。具有两个WDT,分别为WDT0、WDT1 看门狗定时器主要包含模块有:
一个APB从接口
一个当前计数器同步的寄存器模块
一个随着计数器递减的中断/系统重置模块和逻辑控制电路
一个同步时钟域来为异步时钟同步做支持
看门狗定时器支持如下设置:
APB总线宽度可配置为8、16和32位
时钟计数器从某一个设定的值递减到0来指示时间的计时终止
可选择的外部时钟使能信号,用于控制计数器的计数速率
一个时钟超时WDT可以执行以下任务: - 产生一个系统复位信号 - 首先产生一个中断,即使该位是否已经被中断服务清除,其次它会产生一个系统复位信号
占空比可编程调节
可编程和硬件设定计数器起始值
计数器重新计时保护
暂停模式,仅当使能外部暂停信号时
WDT偶然禁用保护
测试模式,用来进行计数器功能测试(递减操作)
外部异步时钟支持。当该项功能启用时,将会产生时钟中断和系统重置信号,即使APB总线时钟关闭的情况下
通用输入/输出接口 (GPIO)#
高速 GPIO#
高速 GPIO 为 GPIOHS,共32个。具有如下特点:
可配置输入输出信号
每个IO具有独立中断源
中断支持边沿触发和电平触发
每个IO可以分配到FPIOA上48个管脚之一
可配置上下拉,或者高阻
通用 GPIO#
通用 GPIO 共 8 个,具有如下特点:
8个IO使用一个中断源
可配置输入输出信号
可配置触发IO总中断,边沿触发和电平触发
每个IO可以分配到FPIOA上48个管脚之一
可配置上下拉,或者高阻
直接内存存取控制器 (DMAC)#
DMAC 具有高度可配置化,高度可编程,在总线模式下传输数据具有高效率,DMAC控制器具有多主机,多频道等特点。 DMAC具有如下特点:
内存-内存,内存-外设,外设-内存,外设-外设的DMA传输
具有独立的核心,主接口和从接口独立时钟
当所有外设不活动时主接口可以关闭其时钟来省电
多达八个通道,每路通道都有源和目的地对
每个通道数据传输数据时每个时刻只能有一个方向传输,不同通道则不受影响
输入管脚可以动态选择大小端制式
通道锁支持,支持内部通道仲裁,根据数据传输的优先级来使用主接口总线的特权
DMAC 状态输出,空闲/忙指示
DMA传输分配成传输中,被中断,传输完成等传输等级
集成电路内置总线 (I²C)#
集成电路总线有3个I²C总线接口,根据用户的配置,总线接口可以用作I²C MASTER或SLAVE模式。 I²C接口支持:
标准模式(0到100Kb/s)
快速模式(<= 400Kb/s)
7-位/10-位 寻址模式
批量传输模式
中断或轮询模式操作
串行外设接口 (SPI)#
串行外设接口有4组SPI接口,其中SPI0、SPI1、SPI3只能工作在MASTER模式,SPI2只能工作在SLAVE模式,他们有如下特性:
支持1/2/4/8线全双工模式
SPI0、SPI1、SPI2可支持25MHz时钟(待测更新)
SPI3最高可支持100MHz时钟(待测更新)
支持32位宽、32BYTE深的FIFO
独立屏蔽中断 - 主机冲突,发送FIFO溢出,发送FIFO空, 接收FIFO满,接收FIFO下溢,接收FIFO溢出中断都可以被屏蔽独立
支持DMA功能
支持双沿的DDR传输模式
SPI3 支持XIP
集成电路内置音频总线 (I²S)#
集成电路内置音频总线共有3个(I²S0、I²S1、I²S2),都是MASTER模式。其中I²S0支持可配置连接语音处理模块,实现语音增强和声源定向的功能。下面是一些共有的特性:
总线宽度可配置为8,16,和32位
每个接口最多支持4个立体声通道
由于发送器和接收器的独立性,所以支持全双工通讯
APB总线和I²S SCLK的异步时钟
音频数据分辨率为12,16,20,24和32位
I²S0发送FIFO深度为64字节,接收为8字节,I²S1和I²S2的发送和接收FIFO深度都为8字节
支持DMA传输
可编程FIFO阈值
定时器 (TIMER)#
系统有3个TIMER模块,它们有如下特性:
32位计数器宽度
可配置的向上/向下时基计数器:增加或减少
时钟独立可配
每个中断的可配置极性
单个或组合中断输出标志可配置
每个定时器有读/写一致性寄存器
定时器切换输出,每当定时器计数器重新加载时切换
定时器切换输出的脉冲宽度调制(PWM),0%到100%占空比
只读存储器 (ROM)#
AXI ROM负责从SPI FLASH中拷贝程序至芯片的SRAM中。
支持固件AES-128-CBC解密
支持UOP模式烧写FLASH的程序
支持固件SHA256完整性校验防篡改
支持OTP中禁用掉UOP模式,SHA256校验,AES解密
支持进入TURBO模式,可以使得启动时芯片及其外设以较高频率运行
实时时钟 (RTC)#
RTC是用来计时的单元,在设置时间后具备计时功能:
可使用外部高频晶振进行计时
可配置外部晶振频率与分频
支持万年历配置,可配置的项目包含世纪、年、月、日、时、分、秒与星期
可按秒进行计时,并查询当前时刻
支持设置一组闹钟,可配置的项目包含年、月、日、时、分、秒,闹钟到达时触发中断
中断可配置,支持每日、每时、每分、每秒触发中断
可读出小于1秒的计数器计数值,最小刻度单位为外部晶振的单个周期
上电/复位后数据清零
脉冲宽度调制器 (PWM)#
PWM用于控制脉冲输出的占空比。
用户可配置 PWM 定时器模块的以下功能:
通过指定 PWM 定时器频率或周期来控制事件发生的频率
配置特定 PWM 定时器与其他 PWM 定时器或模块同步
使 PWM 定时器与其他 PWM 定时器或模块同相
设置定时器计数模式:递增,递减,或递增递减循环计数模式
使用预分频器更改 PWM 定时器时钟(PT_clk)的速率。每个定时器都有自己的预分频器,通过寄存器PWM_TIMER0_CFG0_REG 的PWM_TIMERx_PRESCALE 配置。PWM 定时器根据该寄存器的设置以较慢的速度递增或递减