问题标签 [alu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
902 浏览

algorithm - Add-Shift Right 算法 - 它是如何工作的?

所以我必须只使用 Add 和 Shift Right 来构建一个基本的 4 位乘法器。我基本上知道 Shift Add 算法是如何工作的,但我不知道如何让它与右移而不是左移一起工作。从技术的角度来看,假设我们有一个累加器、两个 4 位右移寄存器和一个 ALU,它基本上看起来像这样,考虑到一开始被乘数在累加器中,而乘数在 ShiftReg2 中,所以我们可以使用累加器(位 7-4)和 ShiftReg1(位 3-0)作为我们 8 位产品的输出。Acc=abcd ShiftReg1=到目前为止没有什么重要的和 ShiftReg2=wxyz

考虑到您必须始终向右移动并且只能将被乘数添加到累加器中,知道如何开始执行 4 步算法吗?

0 投票
2 回答
10570 浏览

verilog - 设计 32 位算术逻辑单元 (ALU)

我为 ALU 编写了这个编码器。该 ALU 使用ctrl信号进行控制,并执行一些工作,例如加、减、和、或……当输出为零时,oZero信号应该处于活动状态。

我在标记的行中有一些错误。我的错误是什么?

0 投票
0 回答
115 浏览

cpu - Intel Xeon 处理器是如何做减法的?

我可以想到以下方法:

  1. 使用加法器。对于 AB,首先计算-B的补码。然后将A' 的补码与-B' 的补码相加。
  2. 使用像Adder–subtractor这样的减法器。

英特尔至强使用哪种方法?如果英特尔至强不使用上述任何方法,英特尔至强还使用什么方法?

0 投票
1 回答
39 浏览

microcontroller - 执行代码后寄存器的值

执行此代码后r16的值是多少?r17

所以我知道r16 = 12在逻辑左移之后,使其等于r17。是否独占或设置r16为 0 并r17停留在 12?或者他们都被设置为零?是否设置了零标志?

0 投票
1 回答
1729 浏览

memory - 在汇编中存储 Word 和 ALU

我对程序集中的 Store Word 函数有疑问。我知道存储字将值写入内存位置。但我作业中的问题是 ALU 在这些 SW 操作期间做了什么。

当我第一次模拟它时,我们将一个 0 值添加到我们称为 a 的值上。并且 ALU 在此操作期间显示 0 位 1。但是,当我将另一个 0 分配给值 b 时,ALU 显示为 4。最后,当我将 a 和 b 与 add 相加并将结果与​​ sw 一起放入寄存器时,ALU 显示为 8。

以下是操作:

我的问题是:ALU 在这些存储字功能期间做了什么?

0 投票
1 回答
1279 浏览

parameter-passing - 结构 Verilog 8 函数 ALU

我知道如何使用行为风格编写 ALU,但我完全不知道如何使用结构设计来编写 ALU。我需要一个 8 功能位片结构 ALU,因此我可以通过传递的参数更改字长,并且它仍然有效。我找到了一个 2 功能 ALU 的示意图,但有人能告诉我如何将它翻译成 8 功能,或者可能将我链接到 Verilog 示例吗?这是 2 功能 ALU 原理图:

在此处输入图像描述

我对真值表、k-maps 等的记忆太远了,甚至无法自己尝试找出其中的逻辑。甚至不知道从哪里开始。非常感谢任何帮助,谢谢!

0 投票
1 回答
2305 浏览

verilog - 实施 ALU

我正在尝试实现给定特定功能代码的 ALU。

出于某种原因,下面的代码没有运行,并且根据编译器有错误。

错误(可抑制):alu.v(61): (vlog-2388) 'result' 已在此范围 (alu) 中声明。
错误(可抑制):alu.v(67): (vlog-2388) 'operand0' 已在此范围 (alu) 中声明。
错误(可抑制):alu.v(67): (vlog-2388) 'operand1' 已在此范围 (alu) 中声明。
错误(可抑制):alu.v(68):(vlog-2388)“控制”已在此范围(alu)中声明。
错误:(vlog-13069)alu.v(71):靠近“<=:语法错误,意外<=。
错误:alu.v(71): (vlog-13205) 在“结果”之后的范围内发现语法错误。是否缺少'::'?

如果我将 result、operand0、operand1 和 control 的声明删除为线和 regs,我仍然会收到错误消息,指出“结果”超出范围或无法访问。我真的对这部分感到困惑,任何帮助将不胜感激。

我觉得问题出在注册表和电线的某个地方,但我不确定。

我将上面的代码更改为修改后的版本。我仍然收到错误:

现在它说:(vlog-2110)非法引用网络“结果”。3次

0 投票
0 回答
99 浏览

java - java中什么更便宜:设置还是比较?

很多次我遇到了如何实现这个条件设置的问题?. 我知道这听起来可能很混乱,所以让我解释一下我使用代码的意思。

本质上,我想知道以下哪一项可以实现最快的执行时间和最少的内存消耗,以及为什么会出现这种情况(希望使用对堆栈和/或寄存器的引用 - 可能还有计算机的组件,例如ALU 每次处理比较所需的时间,与 CU 每次存储变量所需的时间)。

关于这种情况的一些背景知识:我正在设计如何将组合键潜在地实现到游戏中,但我想让Combination该类尽可能通用,而不是有两个单独的类,例如CombinationToggleCombinationAlwaysOff,但是,我 - 可能还有许多其他类——遇到过这种情况。

我正在尝试确定是否切换了此特定组合,如果没有切换,则关闭pressed布尔值。但我不确定是否应该包括一个测试来确定它是否需要关闭。

0 投票
2 回答
3246 浏览

verilog - Verilog Design of a 32-bit ALU

Can you help me guys do a 32-bit ALU and explain me some things? Wanna do:

Done this so far:

0 投票
1 回答
329 浏览

cpu-architecture - IJVM 中的简单求和

假设我们需要在 ijvm 中对两个二进制数求和,例如:

100 + 11 = 111

在 ijvm 中翻译所有内容:

在不对代码进行任何更改的情况下,变量 i 的内容是什么?正如他们在 ijvm 数字中所代表的那样?一个简单的加法就足够了?为什么我需要右移或左移?