跳到正文
半导体开放世界

可变移位与桶形网络

Variable Shifter and Barrel Networks

把移距编码、循环与填充语义落实为阵列或分级选择网络。

报告问题

速览

约 1 分钟

固定移位可用布线完成;运行时可变移距需要选择网络。先区分循环、逻辑和算术填充,再讨论阵列、对数分级及辅助控制。

系统理解

约 2 分钟

移位器通过有控制的数据选择而非时钟逐位搬运实现组合移位。阵列与对数描述选择网络的分解;前置填充与后置屏蔽描述填充值的组织,两组分类不能混淆。逻辑层数只是估计,选择控制、长环绕线、寄生与输出填充同样可能成为关键路径。

在加法器和数字逻辑基础之后理解专用算术数据通路,再连接处理器与信号处理应用。

关键参数

关键参数
参数单位含义
字长与移距范围bit决定可选位置和边界行为
方向和类型—区分循环、逻辑及算术填充
网络级数与选择数—声明基数和计数模型
控制与数据到达—共同决定输出就绪

常见误区

  • 循环与逻辑右移相同。
  • 一层阵列使任意位宽延时恒定。
  • 较少多路器级数必然更快。

工程深入

12 条结论 · 2 道例题

功能与填充约定

定义

可变移位器是受控制的数据选择网络

运行时选择移位距离需要让每个输出位从合适的输入位置或填充值取数,本质上是一组多路选择网络。它不是逐时钟搬运一位的串行移位寄存器。12

成立条件 本页讨论组合数据通路,流水寄存器可以额外加入但不改变功能定义。

边界

逻辑右移与循环右移的高位来源不同

逻辑右移用0填补空出的高位,循环右移把从低位移出的位送回高端。即使某组输入使二者结果恰好相同,也不能把它们当作同一操作。2

成立条件 固定N位数据,移位范围与超范围行为由接口约定。

边界

补码算术右移复制符号位而不是循环送回低位

对补码数据,算术右移在高端复制原符号位以保持负数的符号扩展;低端移出位被舍去。它与逻辑右移和循环右移分别具有不同的填充规则。12

成立条件 本条不把负数算术右移一概称为向零取整除法;结果依赖规定的整数舍入口径。

公式

循环右移可以用逐位模索引精确定义

N位字循环右移k位后,第i个输出取自输入的第(i+k)模N位。该定义保留全部位,不隐含逻辑移位的清零操作。2

yi=a(i+k) mod Ny_i=a_{(i+k)\bmod N}
yi = a[(i + k) mod N]
yi
第i位循环右移输出,单位 1
a
输入位向量,位0为最低位,单位 1
k
循环右移距离,单位 bit
N
字长,单位 bit

成立条件 位0为最低位,0≤i<N、0≤k<N;索引公式只定义功能,不说明电路延时。

例题:动手算一次教学假设,可复算

比较同一字的循环、逻辑和补码算术右移。

已知

  1. 教学字A=10110010₂,N=8,k=3。

步骤

  1. ROR3(10110010₂) = 01010110₂,低端010回到高端,其余位右移。
  2. LSR3(10110010₂) = 00010110₂,高端填0。
  3. ASR3(10110010₂) = 11110110₂,原最高位为1,复制到高端。
结果 循环01010110₂;逻辑00010110₂;算术11110110₂。

选择网络必须同时实现距离和填充语义。

不能外推到 8位教学数据,距离3不超范围;算术结果按8位补码解释。

网络分解与控制

机制

阵列方案需要一热选择而非直接连接二进制距离码

以每个输出选择N个可能输入的阵列实现时,需要选择其中一条有效路径。若接口给的是二进制距离,译码器将其变成一热控制;控制译码与驱动不能从面积和时序预算中省略。12

成立条件 限定这种阵列连接,不把一热译码要求推广到直接二进制控制的分级网络。

公式

基2分级网络把距离拆成若干个二次幂选择

若可选距离为0至N−1且N是2的幂,使用log₂N级二选一网络,每一级选择通过或移动对应的2ⁱ位。按距离各位控制,就能组合出全部允许距离。12

N=2L,k=∑i=0L−1bi2i,Nmux=NLN=2^L,\qquad k=\sum_{i=0}^{L-1}b_i2^i,\qquad N_{\mathrm{mux}}=NL
N = 2ᴸ,k = Σi=0…L−1 bi2ⁱ,Nmux = NL
N
数据字长及可选距离数,单位 bit
L
基2网络级数,单位 1
k
所选移位距离,单位 bit
bi
距离编码的第i位,单位 1
Nmux
未优化均匀实现的二选一位多路器数,单位 1

成立条件 完整N位各级均匀网络的逻辑模型;边界填充、布线和缓冲另外计入。

例题:动手算一次教学假设,可复算

计算32位循环网络的级数、选择数和13位移距的控制分解。

已知

  1. 教学结构为32位字、支持0至31位循环右移,每级每个输出均用一个二选一位多路器。

步骤

  1. L = log₂32 = 5,五级分别选择1、2、4、8、16位。
  2. 13 = 1 + 4 + 8 = 01101₂,启用1、4、8位选择级,其余级通过。
  3. Nmux = 32 × 5 = 160,只计算声明的均匀逻辑网络。
结果 5级、160个二选一位多路器;13由1+4+8组成。

逻辑级数随距离范围对数增长,但仍需看每级负载。

不能外推到 不含类型屏蔽、控制缓冲、寄存器及综合边界优化;不是晶体管数。

边界

一层传输阵列不意味着物理延时与位宽无关

阵列可让被选数据只经过较少的开关层,但可选输入增多会增加寄生和连线负载。不能把开关层数近似为常量,进一步写成任意规模的传播时间都相同。12

成立条件 必须比较相同驱动、负载、摆幅和实现工艺。

边界

更高基的多路器减少级数也增加扇出与连线

将多个二进制距离位合并到四选一或八选一选择级能减少级数,却使每级选择结构、译码、扇出和布线变复杂。不能仅按更少级数判定更快或更省电。2

成立条件 所选基数应结合数据及控制到达时间、布局与负载比较。

填充位置与物理实现

机制

前置填充与后置屏蔽是两种不同组织方式

可先组成带补充值的宽输入字再选择连续输出字段,也可先循环再用屏蔽字把移出位置替换为0或符号位。两者功能可对应,辅助逻辑的位置及宽度不同。2

成立条件 本文以具体数据流描述结构;不因不同教材的barrel中文译名直接判定同一拓扑。

边界

长环绕线和高扇出控制会成为实现约束

循环选择的环绕连接以及广播给整字的控制信号可能带来很大电容。适当缓冲与布局折叠是实现的一部分,逻辑图中的短连接不等于芯片上的短连线。12

成立条件 不提供跨工艺通用的缓冲级数或扇出阈值。

边界

只支持部分操作时可以删去不需要的选择与填充逻辑

若接口仅需循环或只需特定方向/类型移位,可以简化通用网络。优化必须以已声明的操作集合为前提,不应以少功能实现的面积或延时代表全功能移位器。12

成立条件 不改变调用者可见的合法输入及边界语义。

关联

距离与类型控制的到达时间也应进入关键路径检查

移位器的输出不仅取决于数据输入,还取决于距离、方向、类型与符号填充控制。数据提前到达不保证结果早就绪,译码、控制缓冲或屏蔽仍可能限制输出。12

成立条件 同时检查所有合法功能与控制到达模式,不只测试单一输入字。

出处

2 本教材 · 20 处引用
  1. 1

    数字集成电路:电路、系统与设计(第2版)

    查看这个来源 →
  2. 2

    CMOS超大规模集成电路设计(第4版)

    查看这个来源 →