当前位置:网站首页>ALU逻辑运算单元
ALU逻辑运算单元
2022-07-05 05:27:00 【李峻枫】
ALU逻辑运算单元
根据(二)中对单周期 CPU 的定义,该模块需要实现以下 4 类运算:加、减、按位与、按位或。因此需要 2 bit 的控制信号 Aluc 来控制 ALU 的运算类型。
信号的对应关系:
表 4 1 Aluc编码及对应功能
Aluc 编码 实现功能 运算类型
00 加 算数运算
01 减 算术运算
10 按位与 逻辑运算
11 按位或 逻辑运算
加减法可以使用 32 位全加器ADDSUB_32实现,按位与使用了AND32,按位或使用了OR32,对功能的选择使用了32位二选一多路选择器MUX2X32实现,返回了结果R,以及ALU的运算结果是否为0的判断Z(若R=0,Z=1;),Z主要是用于beq、bne指令。
代码
module ALU(X,Y,Aluc,R,Z);
input [31:0]X,Y;
input [1:0] Aluc;
output [31:0]R;
output Z;
wire [31:0]d_as,d_and,d_or,d_and_or;
ADDSUB_32 as32(X,Y,Aluc[0],d_as);
AND32 a32(X,Y,d_and);
OR32 o32(X,Y,d_or);
MUX2X32 select1(d_and,d_or,Aluc[0],d_and_or);
MUX2X32 select2(d_as,d_and_or,Aluc[1],R);
isZero i1(R,Z);
endmodule
边栏推荐
猜你喜欢

Shell Sort
![[speed pointer] 142 circular linked list II](/img/f8/222a360c01d8ef120b61bdd2025044.jpg)
[speed pointer] 142 circular linked list II

Acwing 4300. Two operations

Service fusing hystrix

Chapter 6 data flow modeling - after class exercises

object serialization

Fragment addition failed error lookup

Embedded database development programming (V) -- DQL

支持多模多态 GBase 8c数据库持续创新重磅升级
![[轉]: OSGI規範 深入淺出](/img/54/d73a8d3e375dfe430c2eca39617b9c.png)
[轉]: OSGI規範 深入淺出
随机推荐
Shell Sort
Add level control and logger level control of Solon logging plug-in
Pointnet++的改进
读者写者模型
质量体系建设之路的分分合合
剑指 Offer 05. 替换空格
Count sort
sync. Interpretation of mutex source code
[allocation problem] 455 Distribute cookies
Chapter 6 data flow modeling - after class exercises
Zzulioj 1673: b: clever characters???
Embedded database development programming (zero)
kubeadm系列-02-kubelet的配置和启动
lxml.etree.XMLSyntaxError: Opening and ending tag mismatch: meta line 6 and head, line 8, column 8
To the distance we have been looking for -- film review of "flying house journey"
Solon Auth 认证框架使用演示(更简单的认证框架)
剑指 Offer 06.从头到尾打印链表
The present is a gift from heaven -- a film review of the journey of the soul
[to be continued] [UE4 notes] L2 interface introduction
Use of room database