这是一个家庭作业,所以我不是在寻找答案,而是寻找指导。指令说:“您将如何在ALU中实现1位slt操作?请描述您的解决方案仅使用AND,OR,而不是。不需要绘制逻辑门图,只需清楚地描述包含所有可能的输入、预期输出和表示SLT的逻辑表达式的过程。”
目前为止..。
我想把A和B作为32位输入输入到ALU中。我也在考虑把B和A相加在一起。如果输出不是负,则返回0。在我看来,这听起来像是我实现了一个1位的slt操作。但是,如何显示“如果结果为负返回1”仅使用AND,OR,而不是?
发布于 2014-02-25 21:25:40
在您的情况下,假设高位是符号位。用1 << 31屏蔽结果,以检查符号位。如果您希望返回1或0,则可以对掩蔽结果使用另一个NOT操作,然后使用1并返回该操作。
示例:
如果结果为负值,则得到(以位为单位) 1.......,则不会给出0111111.....,最后会给出000....1,这是您想要的结果。
发布于 2016-05-15 13:41:23
指导:为slt教学绘制一个真值表。
答:真值表为1位slt ALU指令。
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 )
https://stackoverflow.com/questions/22026410
复制相似问题