问题标签 [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 回答
3598 浏览

vhdl - 如何设计一个带有单独进位和借位标志的简单加法器?

我正在实现一个简单的加法器。但是,我需要一些独特的转折。

我正在实现的是跨代码段(CS)寄存器和指令指针(IP)寄存器的“翻转”功能。因此,当您进行 +20 的相对跳跃,并且 IP 为 254 时,IP 最终将滚动到 18,而 CS 最终将增加 1。

这部分容易,难的部分是相反的方向。检测借位时,例如跳转为 -20 且 IP 为 0,它需要将 CS 减 1 并使 IP 回滚到 236。

到目前为止我的代码是

但我不知道如何检测借用。有没有一种干净的方法可以做到这一点?

更新

我的新代码是这样的:

有符号数的加法按计划进行,并且 Temp 现在始终是正确的结果,但 SegmentOut 始终等于 SegmentIn。我不明白为什么,因为对于SegmentIn + 1,我实际上是手动计算了 Addend=0x04、DataIn=0xFE、SegmentIn=0x00 和 CarryEnable=1 的输入,并且 if 语句等于 out (1 and ((not 0) and 1 and 1))='1',但是 SegmentOut 永远不会改变。有没有人看到这是如何实现的问题?

0 投票
1 回答
8425 浏览

cpu - 如何在硬件层面实施转变?

当要移位的数字未知时,如何在硬件级别实现位移?

我无法想象每个可以移位的数字都有一个单独的电路(这将是 64 位机器上的 64 个移位电路),我也无法想象它会是一个移位循环(这将在 64 位机器上最多需要 64 个移位周期)。这是两者之间的某种妥协还是有一些巧妙的技巧?

0 投票
2 回答
529 浏览

x86 - x86 溢出标志的简明表达式?

我需要一种简洁的方式将 x86 溢出标志表示为两个操作数的函数。我知道两个操作数具有相同符号但结果具有不同符号时的核心集。

例如,

OF 可以合理地表示为 SRC 和 DEST 位的“单线”布尔函数吗?

0 投票
2 回答
378 浏览

microcontroller - Z80 标志 - 如何生成?

我正在设计一个Z80兼容项目。我负责设计标志寄存器。

我最初认为标志是直接从 ALU 生成的,具体取决于 ALU 操作的输入和类型。

但是在查看指令和标志结果之后,标志似乎并不总是与这个逻辑一致。

因此,我假设我还必须向 ALU 提供操作码,以便每次都生成正确的标志。但这似乎会使设计过于复杂。在进行这个巨大的设计步骤之前,我想在互联网上进行检查。

我对么?或者只是真的很困惑,它和我最初想的一样简单?

0 投票
1 回答
1524 浏览

mips - 为单周期 MIPS 设计 ALU 控制块

希望这不是 Stack Overflow 的主题。

我正在学习 MIPS,但我一直卡在这一步。这是 ALU 控制块的真值表。

图像

现在这是我第一次遇到如此复杂的真值表,其输入中包含无关条件。如果我将不关心扩展到 1 和 0(并保持其他所有内容相同),那么由于每个 X 的各种排列,表格将变得巨大。

为了简化电路或在计算机中计算,有没有其他简单的方法来简化这些表格?

0 投票
0 回答
4438 浏览

logic - 算术逻辑单元实际上是如何工作的?

换言之,能量与金属结合后,如何进行逻辑运算?在我所做的研究中,我总是假设“魔法”是如何发生的,但通常缺乏对物理设备如何“理解”和执行逻辑性质的过程的解释。我认为首先将非常简单的设备理解为计算器是一种很好的方法,但即使如此,我也无法理解(并且感到非常惊讶)如何以能够执行“思考”活动的方式设计电路。谢谢!

0 投票
2 回答
4229 浏览

vhdl - 8 bit ALU for microprocessor

I have a project where i am supposed to develop a RISC microprocessor . this involves creating an ALU in behavioral model . however there seems to be problems/errors/warnings while simulating the design . most of the operations work properly except following :

COMPARING THE 2 INPUTS : when numbers are equal , zero flag is not getting set . ( unequal numbers are working properly ) .

Warning: There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, the result will be 'X'(es).

( this appears every 1 ps , presumably due to the wait statement in the process )

I Wish to work with std_logic_vector, even though i read that they are very messy .

also, there is a problem when i try to use comparing commands ( which update the flags but dont store the difference in the output register ) . How are if commands executed in VHDL ?? are they executed at the same time ?? or line by line ??

CODE BELOW :

testbench code

0 投票
1 回答
2463 浏览

testing - ALU verilog 测试台未正确初始化

我正在尝试为我的 ALU 编写测试台,但是。我不确定它的编写方式是否使它起作用。例如,我应该使用dutoruut吗?我是否正确初始化了我的输入?输出波是直的(不会随着每个位 X 和一个 0 变化)。

这是模块

0 投票
1 回答
4829 浏览

initialization - VHDL:信号初始化

我是 VHDL 的初学者,我在决定是否应该初始化信号时遇到问题......

这是一个例子:

我应该在这里初始化 Q 吗?=> Q <= "0000"; ?

非常感谢,

0 投票
2 回答
2094 浏览

integer - 在 ALU 中区分有符号和无符号整数的最佳方法?

我正在开发自己的虚拟 4 位 ALU。我想创建计算器(+、-、*、/、%,只有整数,可能更多位)。我的目标是彻底理解它,而不是构建一个高效的设备。

目前我已经实现了4个功能:

  1. 添加。
  2. 添加一个。
  3. 正转负。
  4. 减法。

在所有函数中,结果的第 5 位被忽略。我想告诉 ALU 是否应该签署结果。最好的方法是什么?

我的想法:

  1. 使用另外 3 个函数(结果是第一个、第二个和第三个无符号整数)。
  2. 再使用一个输入字节(判断是否忽略第 5 位)。

其中哪一个更好?你知道更好的方法吗?