首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ALU中实现1位slt操作?(MIPS)

如何在ALU中实现1位slt操作?(MIPS)
EN

Stack Overflow用户
提问于 2014-02-25 21:18:23
回答 2查看 5K关注 0票数 0

这是一个家庭作业,所以我不是在寻找答案,而是寻找指导。指令说:“您将如何在ALU中实现1位slt操作?请描述您的解决方案仅使用AND,OR,而不是。不需要绘制逻辑门图,只需清楚地描述包含所有可能的输入、预期输出和表示SLT的逻辑表达式的过程。”

目前为止..。

我想把A和B作为32位输入输入到ALU中。我也在考虑把B和A相加在一起。如果输出不是负,则返回0。在我看来,这听起来像是我实现了一个1位的slt操作。但是,如何显示“如果结果为负返回1”仅使用AND,OR,而不是?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-25 21:25:40

在您的情况下,假设高位是符号位。用1 << 31屏蔽结果,以检查符号位。如果您希望返回1或0,则可以对掩蔽结果使用另一个NOT操作,然后使用1并返回该操作。

示例:

如果结果为负值,则得到(以位为单位) 1.......,则不会给出0111111.....,最后会给出000....1,这是您想要的结果。

票数 1
EN

Stack Overflow用户

发布于 2016-05-15 13:41:23

指导:为slt教学绘制一个真值表。

答:真值表为1位slt ALU指令。

代码语言:javascript
复制
A  B  Q
0  0  0  //A=B no!
0  1  1  //A<B yes!
1  0  0  //A>B no!
1  1  0  //A=B no!

只有当A< B被设置为高时,Q(输出)才会被设置为高。

因此,Q=A'B. (或verilog中的Q=~A&B )

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22026410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档