2004 微芯 技术 公司
初步的
ds70117c-页 21
dspic30f6011/6012/6013/6014
2.4.2.4 数据 空间 写 饱和
在 增加 至 adder/subtracter 饱和, 写 至 数据
空间 将 也 是 saturated 但是 没有 影响 这
内容 的 这 源 accumulator. 这 数据 空间
写 饱和 逻辑 块 accepts 一个 16-位, 1.15 frac-
tional 值 从 这 round 逻辑 块 作 它的 输入,
一起 和 overflow 状态 从 这 原来的 源
(accumulator) 和 这 16-位 round adder. 这些 是
联合的 和 使用 至 选择 这 适合的 1.15
fractional 值 作 输出 至 写 至 数据 空间
记忆.
如果 这 satdw 位 在 这 corcon 寄存器 是 设置, 数据
(之后 rounding 或者 truncation) 是 测试 为 overflow 和
调整 accordingly, 为 输入 数据 更好 比
0x007fff, 数据 写 至 记忆 是 强迫 至 这 最大值-
imum 积极的 1.15 值, 0x7fff. 为 输入 数据 较少
比 0xff8000, 数据 写 至 记忆 是 强迫 至 这
最大 负的 1.15 值, 0x8000. 这 ms 位 的
这 源 (位 39) 是 使用 至 决定 这 sign 的 这
operand 正在 测试.
如果 这 satdw 位 在 这 corcon 寄存器 是 不 设置, 这
输入 数据 是 总是 passed 通过 unmodified 下面
所有 情况.
2.4.3 barrel shifter
这 barrel shifter 是 有能力 的 performing 向上 至 16-位
arithmetic 或者 逻辑 正确的 shifts, 或者 向上 至 16-位 left shifts
在 一个 单独的 循环. 这 源 能 是 也 的 这 二
dsp accumulators, 或者 这 x 总线 (至 支持 multi-位
shifts 的 寄存器 或者 记忆 数据).
这 shifter 需要 一个 signed 二进制的 值 至 决定
两个都 这 巨大 (号码 的 位) 和 方向 的 这
变换 运作. 一个 积极的 值 将 变换 这 operand
正确的. 一个 负的 值 将 变换 这 operand left. 一个
值 的 ‘
0
’ 将 不 modify 这 operand.
这 barrel shifter 是 40-位 宽, 因此 获得 一个
40-位 结果 为 dsp 变换 行动 和 一个 16-位 结果
为 mcu 变换 行动. 数据 从 这 x 总线 是 前-
sented 至 这 barrel shifter 在 位 positions 16 至
31 为 正确的 shifts, 和 位 positions 0 至 16 为 left shifts.