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

verilog - 使用 Verilog 在 32 位 ALU 中实现一位标志

我正在完成一项任务,有点迷茫,不知道如何开始。我需要在 32 位 ALU 中实现以下标志:

• Z(“Zero”):如果运算结果为零,则设置为 1(“True”)

• N(“Negative”):如果结果的第一位是 1,则设置为 1(“True”),表示负数

• O(“溢出”):设置为1(“真”)表示操作溢出总线宽度。

此外,一个比较函数将输入 a 与输入 b 进行比较,然后设置三个标志之一:

• 如果输入 a 小于输入 b,则为 LT

• GT 如果输入 a 大于输入 b

• EQ 如果输入 a 等于输入 b

我需要修改此 ALU 以包含三个标志和比较输出,然后更改测试台以测试所有这些修改。

这是我为这项作业收到的所有信息,实际上没有教科书或任何其他资源。这是一个在线课程,我无法得到老师的回应。所以我对如何开始有点困惑。在数字逻辑方面,我仍然是个新手,所以请多多包涵。我只需要一些帮助来理解这些标志和比较是如何工作的。如果有人能更好地向我解释它们是如何工作的,它们是做什么的,以及我如何将它们实现到 ALU 和测试平台中,我将不胜感激。

我不指望任何人来完成我的任务,我真的只需要帮助理解它。

铝型材

ALU 测试台

0 投票
2 回答
490 浏览

verilog - 使用 FPGA 板的 8 位 ALU 的输入输出

我是 xilinx 的新手,所以请原谅代码中的任何愚蠢之处。

啊,所以我正在尝试设计一个8 位 ALU,并且该模块在模拟中运行良好,但我们需要在FPGA板上获取输入和显示输出。

从技术上讲,我应该使用RS-232,但由于我们只有一个8 位输入和 8 个开关可用,我们正试图以这种方式对其进行编码。

但是,代码无法编译并给出错误 "expecting 'endmodule', found 'forever'"

我使用'forever'而不是'always'因为总是不允许在其中实例化任何实例。

任何人都可以帮助我们找出代码有什么问题吗?

0 投票
1 回答
5050 浏览

verilog - Verilog中带有溢出的8位ALU

创建一个名为 8 位 palu 的 Verilog 模块,它有两个 8 位输入 a 和 b,以及一个 2 位输入 sel。该模块的输出是一个 8 位信号 f 和一个 1 位信号 ovf。这些输出的值应根据决定操作的 sel 信号值而变化。

我有上述任务,这是我到目前为止在 verilog 中的任务:

我是verilog的新手,所以我不确定这是否正确或者我应该如何处理溢出值。任何提示/建议?

0 投票
1 回答
236 浏览

case - 使用verilog构建一个8位ALU

我正在尝试在 ALU 中构建一个 8 位数据路径,它可以添加、子、或和两个操作数。

我想为代码中的每个操作使用 case 语句,但我不断收到错误消息。

这是到目前为止的样子:

0 投票
1 回答
9580 浏览

overflow - 带有溢出、符号和零标志的 Verilog 32 位 ALU

我有一个任务要求创建一个模块,如标题中所述。我需要添加、减去、AND 和 XOR 两个输入并设置必要的标志。分配不是 100% 明确的,但我假设溢出标志会使其他所有内容无效,所以我不需要担心超过 32 位结果的任何事情。我的问题来自零和溢出标志,无论我尝试什么,它们似乎都不会被设置。我整理了一些我在网上找到的方法,但我不确定这些方法是否错误,或者我的编码是否错误。一切都编译并运行,但无论我使用什么输入,我的标志都不会设置。我只上过一门 Verilog 课程,并且不记得很多限制,因此我们将不胜感激。

这是我的测试平台:

0 投票
1 回答
3002 浏览

vhdl - VHDL 32 位 ALU 代码

我需要创建一个 32 位 ALU,具有 alu 函数、加法器/子、移位器和比较器。当 alu 函数为 0001 时,进入加法器,当 alu 函数为 0010 时,进入 sub,当 alu 函数为 1001 时,进入逻辑移位器左 b-alu 位,当 alu 函数为 1010 时,进入逻辑移位器对 b-alu 位等。

我已经有 32 位加法器/减法器和 32 位移位器代码。

包 c31L_pack 是

1 位:

和 32 位加法器/减法器

在使用函数代码找出输出之后,我试图得到每一个结果,我得到了很多错误,我试图找到解决这个问题的方法。我应该怎么办?感谢你的帮助。我只想先得到add和sub,这样我就知道我该怎么做了。

错误消息:ERROR:HDLCompiler:374 第 37 行:实体尚未编译。

错误:HDLCompiler:69 第 40 行:未声明。

错误:HDLCompiler:69 第 41 行:未声明。

错误:HDLCompiler:69 第 42 行:未声明。

错误:HDLCompiler:69 第 43 行:未声明。

错误:HDLCompiler:69 第 45 行:未声明。

错误:HDLCompiler:69 第 46 行:未声明。

错误:HDLCompiler:69 第 47 行:未声明。

错误:HDLCompiler:69 第 50 行:未声明。

错误:HDLCompiler:69 第 51 行:未声明。

错误:HDLCompiler:69 第 52 行:未声明。

错误:HDLCompiler:69 第 53 行:未声明。

错误:HDLCompiler:69 第 54 行:未声明。

错误:HDLCompiler:69 第 55 行:未声明。

错误:HDLCompiler:806 第 58 行:“端口”附近的语法错误。

错误:HDLCompiler:806 第 59 行:“;”附近的语法错误。

0 投票
1 回答
119 浏览

processor - 算术和逻辑电路设计

假设,我们要设计一个算术和逻辑单元 (ALU),以便它执行以下操作: 比如说,两个输入是 A 和 B。cin 表示进位。s2、s1 和 s0 是​​选择变量,这样:

以下电路会根据上述逻辑执行还是需要进行任何修改?该电路设计用于两个阶段。

0 投票
2 回答
5821 浏览

vhdl - 'sra' 在 VHDL 中不起作用

我正在制作一个接收 32 位输入和 7 位控制输入的组件。这个组件的作用是查看 S 的最后 2 位和

  • S = 00,它在 inp 上进行逻辑左移
  • S = 01,它在 inp 上进行逻辑右移
  • S = 10,它在 inp 上进行算术右移
  • S = 11,它确实在 inp 上向右旋转

移位的数量/数量由 S 的前 5 位决定。例如,如果S=0001001,则输入必须在逻辑上右移 2 位。下面是我的代码。问题出现在“sra”中,出现以下错误:

找到运算符“sra”的“0”定义,无法确定“sra”的确切重载匹配定义我的代码是:

0 投票
1 回答
1174 浏览

vhdl - 8 位到 16 位 ALU 转换

我目前正在攻读电气工程学位,并设计了一个 4 位 ALU 作为作业的一部分。

有人问我如何轻松地将其转换为 8 位 ALU。我目前的回答是,我会将所有模块(add、sub、bux 或 xor LS、RS 等)更改为 8 位模块以及 ALU 模块中 FPGA 板的开关号。

这是最简单的方法,还是我可以设计 ALU 来调用每个 4 位门两次,或者用不同的名称再次添加 4 位模块?

我觉得好像我已经用尽了我的教科书和令人沮丧的网络,因为信息必须在那里!

我正在使用 Quartus II 进行编程。

0 投票
1 回答
3446 浏览

vhdl - 带有结构 VHDL 的 ALU?

我正在尝试使用 VHDL 中的结构代码创建 ALU。代码最初是在 Verilog 中,然后我手动将其全部更改为 VHDL,这就是为什么我有许多单独的文件......但理论上这些应该可以工作。以下是相关的代码和文件:

--dwl_fulladd 代码--

--dwl_4bitadder 代码--

--dwl_mux2to1 代码--

--dwl_4mux2to1 代码--

--dwl_Blogic 代码--

-dwl_lu 代码--

--dwl_au 代码--

--dwl_alu 代码--


这是逻辑单元的真值表: 逻辑

这是 BLogic 单元的真值表:在此处输入图像描述

我不断收到以下错误:

这些错误与代码的 dwl_au 诗有关。

有人可以帮忙吗?我不知道如何解决它。