当前位置:网站首页>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
边栏推荐
- [to be continued] [UE4 notes] L3 import resources and project migration
- YOLOv5添加注意力机制
- PMP考试敏捷占比有多少?解疑
- Binary search basis
- 使用Room数据库报警告: Schema export directory is not provided to the annotation processor so we cannot expor
- FVP和Juno平台的Memory Layout介绍
- SDEI初探-透过事务看本质
- [depth first search] 695 Maximum area of the island
- A new micro ORM open source framework
- YOLOv5添加注意力機制
猜你喜欢
随机推荐
利用HashMap实现简单缓存
[to be continued] [UE4 notes] L3 import resources and project migration
On-off and on-off of quality system construction
剑指 Offer 05. 替换空格
Haut OJ 1221: a tired day
Remote upgrade afraid of cutting beard? Explain FOTA safety upgrade in detail
kubeadm系列-00-overview
游戏商城毕业设计
PMP考试敏捷占比有多少?解疑
剑指 Offer 58 - II. 左旋转字符串
Insert sort
[to be continued] [UE4 notes] L1 create and configure items
ssh免密登录设置及使用脚本进行ssh登录并执行指令
用STM32点个灯
Haut OJ 1401: praise energy
[speed pointer] 142 circular linked list II
A new micro ORM open source framework
Support multi-mode polymorphic gbase 8C database continuous innovation and heavy upgrade
High precision subtraction
Add level control and logger level control of Solon logging plug-in