UDB。 这是什么 第4部分。数据路径ALU



如上次承诺的那样,我们将开始对算术和逻辑单元(ALU)进行详细分析。

循环的一般内容是“ UDB。 这是什么?
第1部分。简介。
第2部分。数据路径。
第3部分。数据路径FIFO。
第4部分。数据路径ALU。 (当前文章)
第5部分。数据路径。 有用的小东西。
第6部分。管理和状态模块。
第7部分。时序和复位控制模块
第8部分。处理UDB

21.3.2.4数据路径ALU


ALU内核由三个独立的8位可编程功能组成:算术/逻辑块,移位寄存器块和掩码覆盖块。

算术和逻辑运算


下表显示了使用配置RAM动态选择的ALU功能。

表21-8。 ALU功能
函数[2:0]功能介绍运作方式
000通行证斯卡
001INC++ srca
010十二月--srca
011新增srca + srcb
100潜艇srca-srcb
101异或srca ^ srcb
110srca和srcb
111srca | srcb

随身携带


进位用于算术运算。 如表21-9所示,某些功能存在默认的进位值。

表21-9。 函数随身携带。
功能介绍运作方式默认执行
INC++ srcasrca + 00h + ci,其中ci为1
十二月--srcasrca + ffh + ci,其中ci为0
新增srca + srcbsrca + srcb + ci,其中ci为0
潜艇srca-srcbsrca +〜srcb + ci,其中ci为1

除了这些常规的算术应用程序外,还有三个使用连字符的选项。 CI SELA和CI SELB位为每个小节设置使用进位输入的规则。 动态配置RAM在每个周期选择A或B配置。 参数如表21-10所示。

表21-10。 附加功能。
CI SEL A
CI SEL B
模式
随身携带
内容描述
00默认情况下
(默认)
默认情况下为算术模式,
详见表21-9。
01快照
(注册)
携带标志是
从上一个周期转移的结果。
该模式用于实现
结转和减法运算
与职业。
10Probros
(已路由)
转移在其他地方生成。
并转发到这个入口。 这个模式
可以用来实现
托管柜台。
11链式
(束缚)
转移后放置在链中
先前的数据路径。 此模式可以
用于实现单周期
更高的比特率操作
使用两个或多个
数据路径。

如果使用了结转,它将用于多种功能,如表21-11所示。 请注意,对于减量和单位减法功能,有效传输电平为低(反)。

表21-11。 跟踪进位功能。
功能介绍极性进位进位处于活动状态进位无效
INC直达++ srca斯卡
十二月倒数--srca斯卡
新增直达(srca + srcb)+1srca + srcb
潜艇倒数(srca-srcb)-1(srca-srcb)

执行


执行-可选的数据路径输出,基于静态指定的高位形成。 该值可以沿链向下传递到较旧块的传输输入。 注意,在减和减功能的情况下,执行是相反的。

表21-12。 功能执行。
功能介绍极性执行执行活动执行不活跃
INC直达++ srca == 0斯卡
十二月倒数--srca == -1斯卡
新增直达srca + srcb> 255srca + srcb
潜艇倒数srca-srcb <0(srca-srcb)

转移结构


参数进位以及用于选择最高有效位,用于生成位的参数如图21-15所示。 锁存的进位值可用作后续算术运算的进位。 此功能可用于使用循环来实现更高容量的功能。



图21-15。 转移操作。

换档操作


根据表21-13,移位操作独立于ALU的操作而发生。

表21-13。 移位操作的功能。
Shift [1:0]功能介绍
00通行证
01左移
10右移
11交换半字节(半字节交换)

移位操作的输出值通过数据路径发布。 向右( sor )和向左( sol_msb )移位的输出配置有相同的位。 静态配置位(寄存器CFG15中的SHIFT SEL)确定哪个移位输出用作数据路径输出。 在没有移位的情况下,信号sorsol_msb分别定义为ALU函数的LSB和MSB。

SI SELA和SI SELB配置位确定指定操作的数据偏移量。 动态配置RAM在每个时钟周期选择配置A或B。 推入数据仅在左右移动时使用,跳过和重新排列半字节时不使用此输入。 选择的值和用例与右移和左移都相关,如表21-14所示。

表21-14。 功能转变
塞拉
塞尔塞尔
来源

资料
内容描述
00默认/算术
(默认/算术)
默认情况下,DEFSI位的值
(常数1或0)。 但是,如果MSB SI处于翘起状态,
那么来源就是选定的值
高位ALU(仅适用于右移)。
01捕捉
(注册)
设置移位的输入值
当前锁存输出值
剪切(来自上一个循环)。 运作方式
左移使用最后一个值
左移。 右移操作用途
最后输出右移。
10Probros
(已路由)
班次输入到达
在外部,通过跟踪资源(SI输入)。
11链式
(束缚)
输入左移
从右侧障碍物的出口抛出
链中的数据路径,用于输入移位
右边-从左边

左移时的输出取自指定为高的位。 向右移动时,输入数据将从所选的高级(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。 数据路径输入
登入内容描述
RAD2
RAD1
RAD0
动态配置RAM中的异步地址。 地址
八个用户可编程的16位字。 每个字
包含当前循环的数据路径控制位。 顺序
指令可由这些地址输入确定。
F0ld
F1LD
如果在此周期中处于阻塞状态,则将数据加载到选定的FIFO中
来自电池A0或A1,或来自ALU的输出。 选择来源
使用配置位Fx INSEL [1:0]。 该输入对摆幅敏感。
它在数据路径中采样; 在过渡检测时
从“ 0”到“ 1”,负载在时钟信号的下一个沿发生。
D0ld
D1LD
如果阻塞在此循环中,则从
其关联的FIFO Fx。 该输入对摆幅敏感。 它被采样
数据路径 在检测到从“ 0”到“ 1”的过渡时,加载
发生在时钟信号的下一个沿。
SI这是一个数据输入值,可用于移位
右或左。
CI如果控制信号使用该进位值
转移等于“路由进位”。

如图21-17所示,每个输入都有一个6合1多路复用器,因此,所有输入都是可互换的。 输入有两种处理方式:按级别或按差分。 动态配置RAM中的地址以及移位和数据值对该级别敏感。 FIFO和加载寄存器数据信号对差异很敏感。



图21-17。 数据路径输入信号。

在下一篇文章中,我们将继续回顾有用的小事情。

Source: https://habr.com/ru/post/zh-CN437096/


All Articles