FLT_MACC
简介
滤波器数学加速器可执行有限脉冲响应(FIR)和无限脉冲响应(IIR)滤波。该单元允许将频繁或耗时的滤波运算从 CPU 卸载,从而让处理器专注于其他任务。在许多情况下,相比纯软件实现,它能显著加速此类计算,进而加速对时序要求严格的任务。
该单元内置一块用于输入与输出数据的本地存储器,可通过寄存器接口进行访问。
主要特性
- FLT_MACC 的主要特性包括:
支持 q7、q15、q31 数据类型
支持 FIR 和 IIR(直接形式 1)函数,最大抽头数 1023
可在本地存储器中定义至多 3 个数据缓冲区区域(两个输入,一个输出),由可编程基地址指针与配套大小寄存器指定
输入与输出缓冲区可配置为循环缓冲区,系数缓冲区为固定缓冲区
支持向量函数:点积、卷积、相关
ICB 从机接口
DMA 读写请求与应答通道
本地存储器支持由 SoC 中的其他主机访问
功能描述
FLT_MACC 单元执行定点的乘法与累加(MAC)。
FLT_MACC 的框图如图 6.1 所示。
- FLT_MACC 可以从本地存储器中取两个 Q 类型数据(q7、q15 或 q31),将它们相乘并累加到累加器。本地存储器被划分为三个区域:X1 缓冲区(输入)、X2 缓冲区(系数)、Y 缓冲区(输出)。每个缓冲区的大小与基地址可由软件配置。
点积:CPU 或 DMA 先将输入向量与系数向量装入本地存储器;取出每对元素相乘并累加;处理完所有元素后,将累加器结果写回本地存储器,供 CPU 或 DMA 读取。
FIR:重复计算“系数向量 B 与输入样本向量 X”的点积;每次重复输入向量右移 1 个样本(丢弃最旧、加入最新)。
IIR:在 FIR 卷积结果基础上,再叠加“延迟输出向量与反馈系数向量”的卷积。
本地存储器和缓冲区
- 该单元内置 2080×32 位读/写本地存储器,用于保存数据与系数:
输入值存放于 X1 缓冲区(最大 1024)
系数值存放于 X2 缓冲区(最大 1024)
输出值存放于 Y 缓冲区(最大 32)
- 缓冲区的位置和大小如下所示:
x1_base:X1 缓冲区基地址
x1_size:X1 缓冲区条目数
x2_base:X2 缓冲区基地址
x2_size:X2 缓冲区条目数
y_base:Y 缓冲区基地址
y_size:Y 缓冲区条目数
上述参数在配置单元时通过相应寄存器进行编程。
CPU 或 DMA 可通过“初始化函数”并向写数据寄存器写入,初始化各缓冲区内容。写指针每次写后自增;到达分配空间末尾后回绕至基地址。此机制用于在操作前加载向量元素,或在滤波器初始化时加载滤波器系数。
初始化函数
- 以下函数用于初始化 FLT_MACC 单元:
加载 X1 缓冲区
加载 X2 缓冲区
加载 Y 缓冲区
触发方式:向 FLT_MACC_PARAM1 寄存器的 FUNC 位字段写入对应功能值,并置位 START。与此同时,FLT_MACC_PARAM0 寄存器中的 N、M 位字段需按函数要求提供正确参数;G 在初始化函数中不使用。函数完成后,START 由硬件自动清零。
建议在初始化期间禁用 DMA 请求与中断。由于初始化无流控需求,数据写入 FLT_MACC 本地存储器可由软件或 DMA 完成。
加载X1缓冲区
此函数从 X1_BASE 开始预加载 X1 缓冲区的 N 个值。连续写 FLT_MACC_XWDATA 将数据装入 X1 并递增写地址。函数完成时,写指针指向 X1_BASE + N。可用于预装输入向量元素,或初始化滤波器输入存储单元。
- 参数:
N:写入到 X1 的值数量
M、G:不使用
当对 FLT_MACC_XWDATA 完成 N 次写入时,函数完成。
加载X2缓冲区
此函数从 X2_BASE 开始预加载 X2 缓冲区的 N + M 个值。连续写 FLT_MACC_XWDATA 将数据装入 X2 并递增写地址。可用于预装系数或向量元素。IIR 情况下,先 N 个前馈系数后接 M 个反馈系数拼接装载,总数 N + M;FIR 情况下 M=0。
- 参数:
N:从 X2_BASE 开始写入到 X2 的数量
M:从 X2_BASE + N 开始再写入到 X2 的数量
G:不使用
当对 FLT_MACC_XWDATA 完成 N + M 次写入时,函数完成。
加载Y缓冲区
此函数从 Y_BASE 开始预加载 Y 缓冲区的 N 个值。连续写 FLT_MACC_YWDATA 将数据装入 Y 并递增写地址。函数完成时读指针指向 Y_BASE + N。可用于预装 IIR 的反馈延迟线。
- 参数:
N:写入到 Y 的值数量
M、G:不使用
当对 FLT_MACC_YWDATA 完成 N 次写入时,函数完成。
滤波器函数
FLT_MACC 支持以下滤波器函数。通过向 FLT_MACC_PARAM1.FUNC 写入对应值并置位 START 触发。FLT_MACC_PARAM0 的 N、M、G 需按下述规定提供正确参数。
注意:滤波器函数会持续运行,直到软件清除 START 位。
FIR滤波器
Y = B*X
此函数计算长度为 N+1 的系数向量 B 与无限长度输入向量 X 的卷积。对每个 n,输出 yn = B·Xn,其中 Xn = [xn−N, …, xn] 为 X 在 n−N 到 n 的 N+1 个元素。 该函数即有限脉冲响应(FIR)滤波,B 为系数,X 为采样数据。
注意:交叉相关可通过反转系数向量 B 的顺序实现。
- 输入:
X1:向量 X 元素,长度 N + 1 + d 的循环缓冲区
X2:向量 B 元素,长度 N + 1 的固定缓冲区
- 输出:
Y:输出 yn,长度 d 的循环缓冲区
- 参数:
N:系数向量 B 的长度(范围内)
G:增益;输出到 Y 的值乘以 2**G,G ∈ [0:7]
M:不使用
当软件清除 FLT_MACC_PARAM1.START 时,函数完成。
IIR滤波器
Y = B*X + A*Y’
此函数为无限脉冲响应(IIR)滤波。输出向量 Y 由两部分相加:长度 N+1 的系数 B 与 X 的卷积,以及长度 M 的系数 A 与延迟输出向量 Y’ 的卷积。 对每个 n,yn = B·Xn + A·Yn−1,其中 Xn = [xn−N, …, xn],Yn−1 = [yn−M, …, yn−1]。
- 输入:
X1:向量 X 元素,长度 N + 1 + d 的循环缓冲区
X2:系数向量 B 与 A 串接(b0…bN, a1…aM),长度 N+M+1 的固定缓冲区
- 输出:
Y:输出 yn,长度 M + d 的循环缓冲区
- 参数:
N:系数向量 B 的长度
M:系数向量 A 的长度
G:增益;输出到 Y 的值乘以 2**G,G ∈ [0:7]
当软件清除 FLT_MACC_PARAM1.START 时,函数完成。
使用FLT_MACC实现FIR滤波器
FLT_MACC 支持长度 N 的 FIR(N 为抽头/系数数)。最小本地存储需求:2N + 2(N 个系数、N 个输入样本、2 个输出样本)。为最大吞吐可在输入/输出缓冲区分别预留 d1 与 d2,总需求为 2N + d1 + d2。
- 缓冲区配置建议:
X1_BUF_SIZE = N + d1
X2_BUF_SIZE = N
Y_BUF_SIZE = d2(如无额外空间则为 2)
- 缓冲区基地址可任意分配,但 X2 不得与其他区域重叠,以免系数被覆盖。示例:
X2_BASE = 0
X1_BASE = N
Y_BASE = 2N + d1
Note
X1 与 Y 缓冲区区域不得重叠。
X1 配置寄存器 FULL_WM ≤ log2(d1),否则在写满 N 个输入样本前即标满,不再请求新样本。
Y 配置寄存器 EMPTY_WM ≤ log2(d2)。
系数须通过“加载 X2 缓冲区”预装到 X2。X1 可选预装至多 N 个样本(q7 需 4 的倍数,q15 需 2 的倍数)。FIR 无反馈路径,无需预装 Y。
数据搬运方式(由 FLT_MACC_CR 选择):
轮询:不使能 DMA/中断;写前检查 X1_FULL 为低,读前检查 Y_EMPTY 为低
中断:当 X1_FULL 为低(写)或 Y_EMPTY 为低(读)时产生中断请求
DMA:当 X1_FULL 为低(写通道)或 Y_EMPTY 为低(读通道)时产生 DMA 请求
Note
同一方向不可同时启用“中断”和“DMA”。
WIEN |
RIEN |
DMAWEN |
DMAREN |
写方式 |
读方式 |
0 |
0 |
0 |
0 |
轮询 |
轮询 |
0 |
1 |
0 |
0 |
轮询 |
中断 |
1 |
0 |
0 |
0 |
中断 |
轮询 |
1 |
1 |
0 |
0 |
中断 |
中断 |
0 |
0 |
0 |
1 |
轮询 |
DMA |
0 |
0 |
1 |
0 |
DMA |
轮询 |
0 |
0 |
1 |
1 |
DMA |
DMA |
0 |
1 |
1 |
0 |
DMA |
中断 |
1 |
0 |
0 |
1 |
中断 |
DMA |
- 启动 FIR 滤波:
FUNC = 7’b000_1000
N = 系数数量
M = don’t care
G = 增益
START = 1
- 若 X1 预装少于 N + d − 2**FULL_WM,则 X1FULL 保持为低。
若 FLT_MACC_CR.WIEN 置位,则立即拉起写中断请求,提示处理器经 FLT_MACC_XWDATA 补写 2**FULL_WM 个样本;每完成 2**FULL_WM 次写入检查一次 X1FULL,直至其为高;若 DMAWEN 置位,则持续产生 DMA 写通道请求直至 X1FULL 置高。
当至少写入 N 个样本后产生首个输出。
当向 Y 写入满 2**EMPTY_WM 个输出样本时,YEMPTY 置低;若 RIEN 置位,拉起读中断请求,提示处理器经 FLT_MACC_RDATA 读取 2**EMPTY_WM 个样本;中断保持,直到 YEMPTY 置高。若 DMAREN 置位,则持续产生 DMA 读通道请求,直到 YEMPTY 置高。
中断服务程序应每完成 2**EMPTY_WM 次从 FLT_MACC_RDATA 读取后检查一次 YEMPTY,直至该标志置高。
滤波持续运行,直到软件清除 START。
使用FLT_MACC实现IIR滤波器
FLT_MACC 支持长度 N 的前馈与长度 M 的反馈 IIR(仅支持直接形式 1;其他结构需先转换)。为最大吞吐建议在输入与输出缓冲区额外预留 d1 与 d2,总需求为 2M + 2N + d1 + d2。
- 缓冲区配置:
X1_BUF_SIZE = N + d1
X2_BUF_SIZE = N + M
Y_BUF_SIZE = M + d2
Note
各缓冲区基地址可任意分配,但不得重叠。
FULL_WM、EMPTY_WM 的设置要求同 FIR。
系数(先 N 个前馈,再 M 个反馈)须通过“加载 X2 缓冲区”预装到 X2。X1 可选预装至多 N 个样本;Y 可选预装至多 M 个值以初始化反馈延迟线。
数据搬运方式与组合规则同 FIR。
- 启动配置:
轮询:不使能 DMA/中断;写前检查 X1_FULL 为低再写 FLT_MACC_XWDATA,读前检查 Y_EMPTY 为低再读 FLT_MACC_RDATA
FUNC = 7’b001_0000
N = 前馈系数数
M = 反馈系数数
G = 增益
START = 1
- 若 X1 预装少于 N + d − 2**FULL_WM,则 X1FULL 保持为低:
若 WIEN 置位,连续请求补写 2**FULL_WM 个样本;服务程序每完成 2**FULL_WM 次写入检查 X1FULL,直至为高。若 DMAWEN 置位,持续产生 DMA 写通道请求,直至 X1FULL 置高。
至少写入 N 个样本后计算首个输出:使用 X1 中前 N 个样本与 Y 中前 M 个样本(无论是否预装);首个输出写入地址为 Y_BASE + M。
当累计写入 2**EMPTY_WM 个新输出样本时,YEMPTY 置低;若 RIEN 置位,提示处理器经 FLT_MACC_RDATA 读取 2**EMPTY_WM 个样本;中断保持直到 YEMPTY 置高;若 DMAREN 置位,持续产生 DMA 读请求直到 YEMPTY 置高。
中断服务程序应每完成 2**EMPTY_WM 次从 FLT_MACC_RDATA 读取后检查一次 YEMPTY,直至该标志置高。
滤波持续运行,直到软件清除 START。
中断
FLT_MACC 提供五个可屏蔽中断。通过 FLT_CR 可分别使能/禁止各中断;将相应屏蔽位置 1 即启用。
- 五个中断源如下:
饱和错误标志(SAT)
下溢错误标志(UNFL)
溢出错误标志(OVFL)
读中断标志(RIF)
写中断标志(WIF)
寄存器
FLT_MACC寄存器
FLT_MACC中寄存器和相应的偏移量如下表所示。
偏移量 |
寄存器名 |
功能描述 |
|---|---|---|
0x0 |
FLT_X1BUF_CFG |
FLT_MACC X1缓冲区配置寄存器 |
0x4 |
FLT_X2BUF_CFG |
FLT_MACC X2缓冲区配置寄存器 |
0x8 |
FLT_YBUF_CFG |
FLT_MACC Y缓冲区配置寄存器 |
0xC |
FLT_PARAM0 |
FLT_MACC 参数0寄存器 |
0x10 |
FLT_PARAM1 |
FLT_MACC 参数1寄存器 |
0x14 |
FLT_CR |
FLT_MACC 控制寄存器 |
0x18 |
FLT_SR |
FLT_MACC 状态寄存器 |
0x1C |
FLT_XWDATA |
FLT_MACC x缓冲区写数据寄存器 |
0x20 |
FLT_RDATA |
FLT_MACC 读数据寄存器 |
0x24 |
FLT_YWDATA |
FLT_MACC y缓冲区写数据寄存器 |
0x2C |
FLT_CFG |
FLT_MACC 配置寄存器 |
0x30 |
FLT_MACC_VER |
FLT_MACC 版本寄存器 |
FLT_MACC X1 缓冲区配置寄存器
地址偏移:0x0。
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
base |
11:0 |
R/W |
0x0 |
X1缓冲区的基地址 |
Reserved |
15:12 |
/ |
0x0 |
/ |
size |
26:16 |
R/W |
0x0 |
X1缓冲区大小。(缓冲区宽度为32位 最小缓冲区大小是滤波器中前馈抽头数(+水印阈值-1)) |
Reserved |
29:27 |
/ |
0x0 |
/ |
full_wm |
31:30 |
R/W |
0x0 |
缓冲区满标志的水印 - 2’b00: 阈值=1 - 2’b01: 阈值=2 - 2’b10: 阈值=4 - 2’b11: 阈值=8 |
FLT_MACC X2 缓冲区配置寄存器
地址偏移:0x4。
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
base |
11:0 |
R/W |
0x0 |
X2缓冲区的基地址 |
Reserved |
15:12 |
/ |
0x0 |
/ |
size |
26:16 |
R/W |
0x0 |
X2缓冲区大小。(缓冲区宽度为32位 最小缓冲区大小是滤波器中前馈抽头数(+水印阈值-1)) |
Reserved |
31:27 |
/ |
0x0 |
/ |
FLT_MACC Y 缓冲区配置寄存器
地址偏移:0x8。
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
base |
11:0 |
R/W |
0x0 |
Y缓冲区的基地址 |
Reserved |
15:12 |
/ |
0x0 |
/ |
size |
26:16 |
R/W |
0x0 |
Y缓冲区大小。(缓冲区宽度为32位 最小缓冲区大小是滤波器中前馈抽头数(+水印阈值-1)) |
Reserved |
29:27 |
/ |
0x0 |
/ |
empty_wm |
31:30 |
R/W |
0x0 |
缓冲区空标志的水印 - 2’b00: 阈值=1 - 2’b01: 阈值=2 - 2’b10: 阈值=4 - 2’b11: 阈值=8 |
FLT_MACC 参数0寄存器
地址偏移:0xC。
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
n |
10:0 |
R/W |
0x0 |
输入参数N(前馈系数数量) 当函数正在进行时(START=1),此位字段不能被修改 |
m |
21:11 |
R/W |
0x0 |
输入参数M(反馈系数数量) 当函数正在进行时(START=1),此位字段不能被修改 |
g |
26:22 |
R/W |
0x0 |
输入参数G(增益系数) 当函数正在进行时(START=1),此位字段不能被修改 |
Reserved |
31:27 |
/ |
0x0 |
/ |
FLT_MACC 参数1寄存器
地址偏移:0x10。
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
func |
6:0 |
R/W |
0x0 |
功能 - 7’b000_0001: 加载X1缓冲区 - 7’b000_0010: 加载X2缓冲区 - 7’b000_0100: 加载Y缓冲区 - 7’b000_1000: FIR滤波器 - 7’b001_0000: IIR滤波器(默认为直接形式1,若 n=2,m=2,则为双二阶(直接形式2)) - 其他:保留 当函数正在进行时(START=1),此位字段不能被修改 |
Reserved |
30:7 |
/ |
0x0 |
/ |
start |
31 |
R/W |
0x0 |
启用执行 - 1’b0: 停止执行 - 1’b1: 开始执行 设置此位触发 FUNC 位字段中选择的函数的执行。通过软件复位它停止任何正在进行的函数。 |
FLT_MACC 控制寄存器
地址偏移:0x14。
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
rien |
0 |
R/W |
0x0 |
启用读中断 - 1’b0: 禁用。不生成读中断请求。 - 1’b1: 启用。当Y缓冲区EMPTY标志未设置时生成中断请求。 此位由软件设置和清除。读取返回位的当前状态。 |
wien |
1 |
R/W |
0x0 |
启用写中断 - 1’b0: 禁用。不生成写中断请求。 - 1’b1: 启用。当X1缓冲区FULL标志未设置时生成中断请求。 此位由软件设置和清除。读取返回位的当前状态。 |
ovflien |
2 |
R/W |
0x0 |
启用溢出错误中断 - 1’b0: 禁用。在溢出检测时不生成中断。 - 1’b1: 启用。如果OVFL标志被设置,则生成中断请求。 此位由软件设置和清除。读取返回位的当前状态。 |
unflien |
3 |
R/W |
0x0 |
启用下溢错误中断 - 1’b0: 禁用。在下溢检测时不生成中断。 - 1’b1: 启用。如果UNFL标志被设置,则生成中断请求。 此位由软件设置和清除。读取返回位的当前状态。 |
satien |
4 |
R/W |
0x0 |
启用饱和错误中断 - 1’b0: 禁用。在饱和检测时不生成中断。 - 1’b1: 启用。如果SAT标志被设置,则生成中断请求。 此位由软件设置和清除。读取返回位的当前状态。 |
dmaren |
5 |
R/W |
0x0 |
启用DMA读通道请求 - 1’b0: 禁用。不生成DMA请求 - 1’b1: 启用。当Y缓冲区非空时生成DMA请求。 只有当FLT_PARAM寄存器中START=0时,此位才能被修改。读取返回位的当前状态。 |
dmawen |
6 |
R/W |
0x0 |
启用DMA写通道请求 - 1’b0: 禁用。不生成DMA请求 - 1’b1: 启用。当X1缓冲区未满时生成DMA请求。 只有当FLT_PARAM寄存器中START=0时,此位才能被修改。读取返回位的当前状态。 |
clipen |
7 |
R/W |
0x0 |
启用裁剪 - 1’b0: 裁剪禁用。累加器输出超出q1.15范围的值会回绕。 - 1’b1: 裁剪启用。累加器输出超出q1.15范围的值根据符号饱和到最大正值或负值(+1或-1)。 |
Reserved |
15:8 |
/ |
0x0 |
/ |
reset |
16 |
R/W |
0x0 |
复位FLT_MACC单元 这复位写和读指针、内部控制逻辑、FLT_SR寄存器和FLT_PARAM寄存器,包括如果活动的START位。其他寄存器设置不受影响。此位由硬件复位。 - 1’b0: 复位非活动 - 1’b1: 复位活动 |
Reserved |
31:17 |
/ |
0x0 |
/ |
FLT_MACC 状态寄存器
地址偏移:0x18。
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
yempty |
0 |
RO |
0x1 |
Y缓冲区空标志 如果未读数据的数量小于EMPTY_WM阈值,则缓冲区被标记为空。 未读数据的数量是读指针和当前输出目标地址之间的差。 - 1’b0: Y缓冲区非空。如果RIEN位被设置,中断请求被断言直到标志被设置。如果DMAREN被设置,DMA读通道请求被生成直到标志被设置。 - 1’b1: Y缓冲区空。 此位由硬件设置和清除,或通过复位。 |
x1full |
1 |
RO |
0x1 |
X1缓冲区满标志 如果可用空间的数量小于FULL_WM阈值,则缓冲区被标记为满。 可用空间的数量是写指针和当前使用的最近样本之间的差。 - 1’b0: X1缓冲区未满。如果WIEN位被设置,中断请求被断言直到标志被设置。如果DMAWEN被设置,DMA写通道请求被生成直到标志被设置。 - 1’b1: X1缓冲区满。 此位由硬件设置和清除,或通过复位。 |
ovfl |
2 |
RO |
0x0 |
溢出错误标志 当在X1缓冲区中没有可用空间时对FLT_WDATA进行写入时发生溢出。 - 1’b0: 未检测到溢出。 - 1’b1: 检测到溢出。如果OVFILEN位被设置,则生成中断。 此标志通过单元复位清除。 |
unfl |
3 |
RO |
0x0 |
下溢错误标志 当在Y缓冲区中没有有效数据可用时从FLT_RDATA进行读取时发生下溢。 - 1’b0: 未检测到下溢 - 1’b1: 检测到下溢。如果UNFLIEN被设置,则生成中断。 此标志通过单元复位清除。 |
sat |
4 |
RO |
0x0 |
饱和错误标志 当累加的结果超出累加器的数值范围时发生饱和。 - 1’b0: 未检测到饱和 - 1’b1: 检测到饱和。如果SATIEN位被设置,则生成中断。 此位通过单元复位清除。 |
rif |
5 |
W1C |
0x0 |
读中断标志 |
wif |
6 |
W1C |
0x0 |
写中断标志 |
Reserved |
31:7 |
/ |
0x0 |
/ |
FLT_MACC 写数据寄存器
地址偏移:0x1C。
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
wdata |
31:0 |
WO |
0x0 |
写数据。对该寄存器执行写访问时,写数据将被传输到由写指针指示的地址偏移;指针地址在每次写访问后自动递增。 |
FLT_MACC 读数据寄存器
地址偏移:0x20。
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
rdata |
31:0 |
RO |
0x0 |
读数据。对该寄存器执行读访问时,读数据为由写指针指示地址偏移处的 Y 输出缓冲区内容;指针地址在每次读访问后自动递增。 |
FLT_MACC Y 缓冲区写数据寄存器
地址偏移:0x24。
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
wdata |
31:0 |
WO |
0x0 |
写数据。对该寄存器执行写访问时,写数据将被传输到由写指针指示的地址偏移;指针地址在每次写访问后自动递增。 |
FLT_MACC 配置寄存器
地址偏移:0x2C。
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
rm |
2:0 |
R/W |
0x0 |
舍入模式 | 定点:3’b000 向下;3’b001 最近偶数;3’b010 最近向上;3’b011 奇数;其他:保留 | 浮点:3’b000 最近且偶数;3’b001 到零;3’b010 向下;3’b011 向上;3’b100 最近且最大幅度;3’b101 最近且奇数;其他:保留 |
Reserved |
3 |
/ |
0x0 |
/ |
fm |
5:4 |
R/W |
0x0 |
数据格式 - 2’b00: Q7 - 2’b01: Q15 - 2’b10: Q31 - 2’b11: 保留 |
Reserved |
31:6 |
/ |
0x0 |
/ |
FLT_MACC 版本寄存器
地址偏移:0x30。
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
version |
31:0 |
RO |
0x10002 |
flt_macc版本 |