问题标签 [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.
simulation - 数字系统设计:模型模拟错误
我真的很不同,我需要你的帮助!首先,这是我在数字系统设计方面的第一门课程,我们被要求做一些项目,它是一个 ALU(算术逻辑单元),它执行多项操作,如加法、减法、递增、递减、2 的补码和一些逻辑门。 ..但是在完成所有工作并尝试模拟项目后,我将所有输出都设为“未知”..
这是 ALU 代码:
这是测试台:
知道可能是什么问题吗?
谢谢大家:)
module - verilog 看不到我的功能
我认为这是因为您不能在 case 语句中调用函数。我对此完全陌生,不知道该怎么做。我基本上是在做一个alu,前两个案例应该做add和sub。
当我编译时,我得到:
我不知道为什么。有人能帮助我吗?
vhdl - 何时分解 VHDL?
虽然我的写作有点精通,VHDL
但我需要回答一个相对基本的问题:什么时候崩溃VHDL
?
一个基本的例子:假设我正在设计一个 8bit ALU
in VHDL
,我有几个VHDL
实现选项。
只需将整个 ALU 设计为一个实体。具有实体中所需的所有 I/O(可以通过 IEEE_STD_ARITHMETIC 库来完成)。
- 或者 -
将该 ALU 分解为其后续块,例如进位超前加法器和一些多路复用器。
- 或者 -
将其进一步分解为进行超前进位的块;一堆部分全加器,一个进位路径和多路复用器,然后使用结构元素将它们连接在一起。
然后,我们可以(如果我们愿意)将所有这些分解到门级,为每个创建实体、行为和结构。
当然,我们分解ALU
得越多VHDL
,我们需要的文件就越多。
这会影响综合后的物理实现吗?我们什么时候应该停止分解?
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个周期时钟意味着写入后读取的延迟
architecture - 算术逻辑单元如何知道比较的逻辑?
我正在我的大学学习系统工具和架构课程,第一堂课是关于如何CPU
和RAM
谈话以及 CPU 如何处理数据。正如教授所解释的,CPU
有一个ALU (Arithmetic Logic unit)
执行诸如加法和比较之类的算术运算。但他没有解释它是如何做到的。
所以我做了一些搜索,发现这个链接指向一个 youtube 视频,该视频解释了如何执行加法 - 为初学者很好地解释了。甚至此链接也解释了CPU
将算术处理定向到ALU
但不处理如何ALU
执行它。
我的问题是呢ALU
?comparison
作为人类,我们知道 5 小于 7。但是如何ALU
知道这一点,它是否以某种方式硬编码。我敢肯定它必须使用一些logic
来进行比较,那是什么逻辑。
很高兴知道主修 CS 是如何工作的
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 会产生减法。
gpu - 当操作具有不同吞吐量时可视化 ALU 管道
当操作具有不同的吞吐量时,如何可视化 ALU 管道?
可以将所有操作都具有相同吞吐量的 ALU 管道可视化为具有传送带装配线的工厂。管道的深度和延迟变成了传送带上的站数。
但是 ALU 流水线对于不同类型的操作通常具有不同的吞吐量。例如,MUL 的吞吐量可能是 ADD 的一半。因此,如果在当前时钟周期将 MUL 添加到流水线,则在下一个周期添加 ADD 可能是可以的,但不能添加新的 MUL。
这有点像说,如果你有一家生产两种汽车的工厂,你可能无法让两辆 A 型汽车在传送带上相互跟随。不过,A 型车后跟 B 型车可能没问题。
vhdl - VHDL中的类型不匹配错误?
我正在设计一个 1 位 ALU 并使用结构化方法。出于某种原因,即使我只对所有内容都使用 std_logic_vectors,我也会不断收到类型不匹配错误。我看不出有什么问题?
这是代码: 1 位 ALU:
和 TwoToOneMux 代码:
我是 VHDL 的新手,我感到很头疼,所以感谢您的帮助。
vhdl - 6运算ALU是否有组合电路设计?
我正在尝试用 VHDL 创建一个 ALU,但我很难实现几个操作。我已经实现了加法、减法和和或操作,但我想知道如何实现逻辑移位操作?ALU 是 32 位的,但任何设计都会受到赞赏。
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”。
所以,我的实际问题是:左移时我还需要考虑符号位吗?