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

simulation - 数字系统设计:模型模拟错误

我真的很不同,我需要你的帮助!首先,这是我在数字系统设计方面的第一门课程,我们被要求做一些项目,它是一个 ALU(算术逻辑单元),它执行多项操作,如加法、减法、递增、递减、2 的补码和一些逻辑门。 ..但是在完成所有工作并尝试模拟项目后,我将所有输出都设为“未知”..

这是截图:

这是 ALU 代码:

这是测试台:

知道可能是什么问题吗?

谢谢大家:)

0 投票
2 回答
285 浏览

module - verilog 看不到我的功能

我认为这是因为您不能在 case 语句中调用函数。我对此完全陌生,不知道该怎么做。我基本上是在做一个alu,前两个案例应该做add和sub。

当我编译时,我得到:

我不知道为什么。有人能帮助我吗?

0 投票
1 回答
192 浏览

vhdl - 何时分解 VHDL?

虽然我的写作有点精通,VHDL但我需要回答一个相对基本的问题:什么时候崩溃VHDL

一个基本的例子:假设我正在设计一个 8bit ALUin VHDL,我有几个VHDL实现选项。

只需将整个 ALU 设计为一个实体。具有实体中所需的所有 I/O(可以通过 IEEE_STD_ARITHMETIC 库来完成)。

- 或者 -

将该 ALU 分解为其后续块,例如进位超前加法器和一些多路复用器。

- 或者 -

将其进一步分解为进行超前进位的块;一堆部分全加器,一个进位路径和多路复用器,然后使用结构元素将它们连接在一起。

然后,我们可以(如果我们愿意)将所有这些分解到门级,为每个创建实体、行为和结构。

当然,我们分解ALU得越多VHDL,我们需要的文件就越多。

这会影响综合后的物理实现吗?我们什么时候应该停止分解?

0 投票
1 回答
881 浏览

opencl - ALU 如何在 AMD GPU (VLIW) 中执行指令?

我想问一些关于 OpenCL 编程的问题。我知道四分之一的波前可以为每个周期时钟发出指令,并且需要四个周期时钟来调用波前。要完成 VLIW 架构中的指令,需要 8 个周期的时钟。因此,调用另一个波前是一种解决方案。如果我调用两个波前,那么它将是八个周期时钟。因此,在波前 A 被执行(4 个周期时钟)之后,波前 B 被执行(另一个 4 个周期时钟)。波前 B 执行完毕后(总周期时钟为 8),波前 A 将用另一条指令再次执行。

问题是:

如果每个处理单元的四个 ALU 已经用于执行另一条指令,ALU 如何执行另一条指令?

例如:在循环 1 中,工作项 0-15 开始执行指令“ADD”。每个处理单元中的第一个 ALU(SIMD/计算单元中总共 16 个 PE)计算“ADD”指令。
它发生在波前的第 2、3 和 4 周期(现在每个 PE 中有 4 个 ALU 忙于执行“ADD”指令)在第 5 周期,波前 2 的四分之一开始执行指令“SUBTRACT”。处理元件中的 ALU 如何计算指令,因为它们忙于从第一个波前计算“ADD”指令(请记住,在第一个周期中四分之一波前的指令“ADD”执行未完成,因为它需要 8 个周期时钟)?

更新:8个周期时钟意味着写入后读取的延迟

0 投票
1 回答
3444 浏览

architecture - 算术逻辑单元如何知道比较的逻辑?

我正在我的大学学习系统工具和架构课程,第一堂课是关于如何CPURAM谈话以及 CPU 如何处理数据。正如教授所解释的,CPU有一个ALU (Arithmetic Logic unit)执行诸如加法和比较之类的算术运算。但他没有解释它是如何做到的。

所以我做了一些搜索,发现这个链接指向一个 youtube 视频,该视频解释了如何执行加法 - 为初学者很好地解释了。甚至此链接也解释了CPU将算术处理定向到ALU但不处理如何ALU执行它。

我的问题是呢ALUcomparison作为人类,我们知道 5 小于 7。但是如何ALU知道这一点,它是否以某种方式硬编码。我敢肯定它必须使用一些logic来进行比较,那是什么逻辑。

很高兴知道主修 CS 是如何工作的

0 投票
1 回答
742 浏览

vhdl - 如何使用 1 位 ALU 在 VHDL 中创建 4 位 ALU 来处理执行

我必须创建一个 1 位 ALU,然后用它来创建一个 4 位 ALU。但是我在处理执行时遇到了很多问题。

4 位 ALU 只能有 2 条选择线,并且进位使用进位来生成 8 种不同的情况。

4位ALU只能有2条选择线和进位。我的问题是如何正确处理进位以便输入到另一个ALU。

例如,如果我必须将“0011”与“0011”相加,您会注意到分配给两个 4 位 WORD 的第一位相加的第一个 ALU 将产生一个进位 1。但是当该进位传递到另一个 ALU 时函数表将从加法切换到减法。由于 Cin = 1 会产生减法。

功能表

0 投票
2 回答
166 浏览

gpu - 当操作具有不同吞吐量时可视化 ALU 管道

当操作具有不同的吞吐量时,如何可视化 ALU 管道?

可以将所有操作都具有相同吞吐量的 ALU 管道可视化为具有传送带装配线的工厂。管道的深度和延迟变成了传送带上的站数。

但是 ALU 流水线对于不同类型的操作通常具有不同的吞吐量。例如,MUL 的吞吐量可能是 ADD 的一半。因此,如果在当前时钟周期将 MUL 添加到流水线,则在下一个周期添加 ADD 可能是可以的,但不能添加新的 MUL。

这有点像说,如果你有一家生产两种汽车的工厂,你可能无法让两辆 A 型汽车在传送带上相互跟随。不过,A 型车后跟 B 型车可能没问题。

0 投票
1 回答
2779 浏览

vhdl - VHDL中的类型不匹配错误?

我正在设计一个 1 位 ALU 并使用结构化方法。出于某种原因,即使我只对所有内容都使用 std_logic_vectors,我也会不断收到类型不匹配错误。我看不出有什么问题?

这是代码: 1 位 ALU:

和 TwoToOneMux 代码:

我是 VHDL 的新手,我感到很头疼,所以感谢您的帮助。

0 投票
1 回答
244 浏览

vhdl - 6运算ALU是否有组合电路设计?

我正在尝试用 VHDL 创建一个 ALU,但我很难实现几个操作。我已经实现了加法、减法和和或操作,但我想知道如何实现逻辑移位操作?ALU 是 32 位的,但任何设计都会受到赞赏。

0 投票
1 回答
307 浏览

boolean-logic - 在 2 的补码和乘法中左移

我正在实现一个简单的(虚拟)ALU 和其他一些芯片(加法器、乘法器等)。

我使用 2 的补码表示我的数字。

对于 x 和 y 这两个 16 位数字的乘法,我想我会沿着这些线使用左移(这当然是在没有实际循环的情况下执行的):

  • 设置总和[0..15]=0

  • 设置 x'=x

  • for i=0...15 //(y[0] 是 LSB,y[15] 是 MSB)

    • 如果 y[i]=1,则将 x' 加到 sum 上,然后将 x' 左移。

(这是标准方式吗?)

我的问题是左移:

如果有 i st x[i]=1,在某个时候 x' 的 MSB 将变为 1,这将否定它。

这是一个问题,因为例如 2*2 使用上述方法给出“-4”。

所以,我的实际问题是:左移时我还需要考虑符号位吗?