问题标签 [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 投票
5 回答
11191 浏览

hdl - 如何在“Nand to Tetris”课程中为 ALU 设置输出标志?

虽然我标记了这个作业,但它实际上是我自己免费完成的一门课程。无论如何,这门课程叫做“从 Nand 到俄罗斯方块”,我希望这里有人看过或上过这门课程,以便我能得到一些帮助。我正处于使用提供的 hdl 语言构建 ALU 的阶段。我的问题是我的芯片无法正确编译。当我尝试为 ALU 设置输出标志时出现错误。我相信问题是我不能下标任何中间变量,因为当我尝试根据一些随机变量(比如输入标志)将标志设置为真或假时,我没有得到错误。我知道问题不在于我尝试使用的芯片,因为我使用的是所有内置芯片。

到目前为止,这是我的 ALU 芯片:

因此,当我尝试将“out”的下标版本发送到 Or8Way 芯片时,问题就出现了。我尝试使用与“out”不同的变量,但遇到了同样的问题。然后我读到你不能下标中间变量。我想也许如果我将中间变量发送到其他芯片,并且该芯片下标它,它会解决问题,但它有同样的错误。不幸的是,我只是想不出一种方法来设置 zr 和 ng 标志而不下标一些中间变量,所以我真的被卡住了!

请注意,如果我用以下内容替换有问题的行,它将编译(但不会给出正确的结果,因为我只是使用一些随机输入):

有人有想法么?

编辑:这是本书的附录,该附录指定了 hdl 的工作原理。具体看第 5 节,它讨论了总线并说:“内部引脚(如上面的 v)可能没有下标”。

编辑:这是我得到的确切错误:“第 68 行,无法将门的输出引脚连接到部件”。不过,错误消息有点令人困惑,因为这似乎不是真正的问题。如果我只是替换“Or8way(in=out[0..7], out=zr1);” 用“Or8way(in=false,out=zr1);” 它不会产生这个错误,这导致我在附录中查找并发现 out 变量,因为它是作为中间派生的,所以不能下标。

0 投票
2 回答
5204 浏览

vhdl - 从几个 1 位 ALU 制作一个 4 位 ALU

我正在尝试将几个 1 位 ALU 组合成一个 4 位 ALU。我对如何在 VHDL 中实际执行此操作感到困惑。这是我正在使用的 1bit ALU 的代码:

我假设我将 alu1 定义为更大实体 alu4 的一个组件,但我怎样才能将它们联系在一起呢?

0 投票
3 回答
661 浏览

cpu - 现代 CPU 中的整数算术错误

我是否需要为现代 CPU 中可能的计算错误做准备,例如两个整数相加11导致3一次?

  • (多久一次)ALU 中是否会出现此类错误?
  • 现在有没有针对这种情况的内置保护?

上面例子中提到的算术错误是否有可能是大多数“heisenbugs”背后的原因?

0 投票
5 回答
25216 浏览

math - CPU是怎么做减法的?

我有一些基本的疑问,但每次我坐下来尝试面试问题时,这些问题和我的疑问都会冒出来。

假设 A = 5,B = -2。假设 A 和 B 都是 4 字节,那么 CPU 是怎么做A + B加法的呢?

我知道 A 的符号位 (MSB) 为 0 表示正值,B 的符号位为 1 表示负整数。

现在在C++程序中,我想打印A + B,ALU(算术逻辑单元)的加法模块是否首先检查符号位,然后决定做减法,然后按照减法的过程。如何进行减法将是我的下一个问题。

我想做A - B。计算机将取 B 的 2 的补码并添加 B 的 A + 2 的补码并返回(在丢弃左侧的额外位之后)?

A - B。在这种情况下,计算机是如何工作的?

我知道任何 if-then 等条件逻辑都将在 ALU 内部的硬件中完成。计算 2s 补码等,丢弃多余的位都将在 ALU 内部的硬件中完成。ALU 的这个组件是什么样子的?

0 投票
1 回答
262 浏览

c# - alutLoadMemoryFromFile 调用错误

这是为我用 C# 和 Tao 制作的精灵游戏加载声音的函数的一部分。

在我的电脑上,这个断言很好。我把我的游戏给了几个人,在他们的电脑上这个断言失败了。可能是什么原因?

谢谢

0 投票
2 回答
3241 浏览

undefined - VHDL ALU 未定义值

我正在学习 VHDL 来编程 FPGA,基本(但对我来说很难)项目。我有这个 ALU。它应该是一个 4 位 ALU。但是当我想让Add操作的值resultUUUU. 对于所有其他操作都工作正常。

有什么建议吗?

0 投票
2 回答
984 浏览

vhdl - ALU 是如何工作的?

仅使用无符号数字在 VHDL 中实现 8 位 ALU。当求和结果为 (1)00000000,1 为进位时,ALU 的零标志是否应设置为 1?或者结果被认为与0不同?

0 投票
3 回答
82 浏览

c - 计算逻辑方程的最佳选择?

所以,我正在制作一个 Hack CPU 模拟器,我想知道计算输出的最佳方法是什么。将输出计算压缩为一行不可读的行会比一次计算结果更有效吗?编译器是否对其进行了优化以使两个选项都可以?基本上,哪一个更有效——

这:

或这个:

0 投票
1 回答
530 浏览

scheme - Scheme中的ALU-n过程

我是 Scheme 语言的初学者,所以我在编写一个程序来接收一个 n 位数字并将其放入 ALU 时遇到了麻烦。ALU 应该使用 1 位 ALU 构建。

这是 1 位 ALU:

它与多路复用器和全加器一起工作。

这是我尝试使用几个程序来模拟 n 位 ALU:

完成后,它应该根据“选择”取 2 个 n 位数字并将它们相加或相减等。这将是输入:

而且我在运行它时遇到错误,这似乎是由于“选择”参数而发生的。我确定我只是对所有参数感到困惑,但我不确定如何解决问题并让 ALU 工作。我正在使用 Dr. Racket 程序,语言 R5RS 运行它。

0 投票
1 回答
477 浏览

scheme - 方案中的 n 位 ALU

我在方案中制作 n 位 ALU,到目前为止我有一个 1 位 ALU。有人可以告诉我如何解决这个问题吗?以下是它的说明:

程序的格式是

其中第一个参数selection可以采用任何值:'add, 'sub, 'and, 'or, 或'xor. 第二个和第三个参数x1x2是列表格式的两个 n 位二进制数。