
如上次承诺的那样,我们将开始对算术和逻辑单元(ALU)进行详细分析。
循环的一般内容是“ UDB。 这是什么?
第1部分。简介。 请第2部分。数据路径。第3部分。数据路径FIFO。第4部分。数据路径ALU。 (当前文章)
第5部分。数据路径。 有用的小东西。第6部分。管理和状态模块。第7部分。时序和复位控制模块第8部分。处理UDB21.3.2.4数据路径ALU
ALU内核由三个独立的8位可编程功能组成:算术/逻辑块,移位寄存器块和掩码覆盖块。
算术和逻辑运算
下表显示了使用配置RAM动态选择的ALU功能。
表21-8。 ALU功能
随身携带
进位用于算术运算。 如表21-9所示,某些功能存在默认的进位值。
表21-9。 函数随身携带。
除了这些常规的算术应用程序外,还有三个使用连字符的选项。 CI SELA和CI SELB位为每个小节设置使用进位输入的规则。 动态配置RAM在每个周期选择A或B配置。 参数如表21-10所示。
表21-10。 附加功能。
如果使用了结转,它将用于多种功能,如表21-11所示。 请注意,对于减量和单位减法功能,有效传输电平为低(反)。
表21-11。 跟踪进位功能。
执行
执行-可选的数据路径输出,基于静态指定的高位形成。 该值可以沿链向下传递到较旧块的传输输入。 注意,在减和减功能的情况下,执行是相反的。
表21-12。 功能执行。
转移结构
参数
进位以及用于选择最高有效位,用于生成
进位的参数如图21-15所示。 锁存的
进位值可用作后续算术运算的进位。 此功能可用于使用循环来实现更高容量的功能。
图21-15。 转移操作。换档操作
根据表21-13,移位操作独立于ALU的操作而发生。
表21-13。 移位操作的功能。
移位操作的输出值通过数据路径发布。 向右(
sor )和向左(
sol_msb )移位的输出
配置有相同的位。 静态配置位(寄存器CFG15中的SHIFT SEL)确定哪个移位输出用作数据路径输出。 在没有移位的情况下,信号
sor和
sol_msb分别定义为ALU函数的LSB和MSB。
SI SELA和SI SELB配置位确定指定操作的数据偏移量。 动态配置RAM在每个时钟周期选择配置A或B。 推入数据仅在左右移动时使用,跳过和重新排列半字节时不使用此输入。 选择的值和用例与右移和左移都相关,如表21-14所示。
表21-14。 功能转变
左移时的输出取自指定为高的位。 向右移动时,输入数据将从所选的高级(MSB)位置推出。 即使左移,甚至右移,输出也会被锁存,可用于下一个小节。 此功能可用于在多个周期内实现更大容量的转换。
图21-16。 换档操作。值得注意的是,通过选择MSB隔离的位仍在移位。 在所示示例中,当右移时,位7仍移至sil,当向左移时,位5移至位4。 隔离组的输出(右或左)位将丢失。
ALU遮罩叠加操作
UDB配置寄存器的静态空间中的8位掩码寄存器定义了掩码操作。 在该操作中,具有该寄存器值的掩码(AND操作)叠加在ALU输出上。 ALU屏蔽操作的典型用法是实现自主计时器和计数器,其分辨率是2的幂的倍数。
21.3.2.5。 数据路径输入和多路复用
如表21-15所示,每个数据路径具有9个输入,包括来自通道跟踪的6个输入。 其中包括RAM,FIFO的配置地址,用于加载数据寄存器的控制信号以及移位和传输数据输入。
表24-15。 数据路径输入
如图21-17所示,每个输入都有一个6合1多路复用器,因此,所有输入都是可互换的。 输入有两种处理方式:按级别或按差分。 动态配置RAM中的地址以及移位和数据值对该级别敏感。 FIFO和加载寄存器数据信号对差异很敏感。
图21-17。 数据路径输入信号。在下一篇文章中,我们将继续回顾有用的小事情。