问题标签 [digital-logic]

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 投票
3 回答
10461 浏览

android - Arduino Digital Pins HIGH LOW 输出似乎颠倒了

我去年写了一个代码,当时运行良好。但是,这次加载相同的代码时,我得到了相反的输出。也就是说,当数字引脚设置为高电平时,它返回低电平,反之亦然。

我已经尝试了 BLINK 示例,在这种情况下,输出似乎也反转了。

这是代码:

根据代码,我的 LED 应该打开 1 秒钟,然后关闭 5 秒钟,然后再打开。但是,我得到的输出完全相反,即 LED 亮 5 秒,灭 1 秒。我需要帮助如何解决这个问题。

我的主要代码是基于 arduino 与 android 的接口。我一直在努力通过蓝牙解决 android-arduino 连接的问题,我去年确实做到了,但现在遇到了这个问题。我在三个不同的 arduino uno 板上试过这个,用不同的传感器试过,但 HIGH-LOW 似乎颠倒了。

0 投票
1 回答
435 浏览

cpu - CPU 的 16 位数据线如何访问 RAM 的 8 位数据线的数据?

我有以下情况,其中一个带有 16 位(d0-d15)数据线的 CPU,我想将它连接到 RAM 的 8 位(d0-d7)数据线进行读写。我可以将第一个 d0-d7 相互连接,但 CPU 还剩下另一个 d8-d15,我确信我可以利用这条额外的数据线从 RAM 中读取更多信息,而不仅仅是一次 8 位。但我不确定连接会如何。

这是图表:

在此处输入图像描述

如果我将额外的 d8-d15 线连接到 RAM,我不确定 RAM 的外观如何?我是否使用多路复用器连接来决定何时从哪条 8 位线中选择数据?

0 投票
2 回答
868 浏览

verilog - 使用verilog的quartus RTL查看器中的奇怪组件

我正在学习verilog,当我不知道仅查看verilog代码的电路将如何工作时,我会去RTL查看器查看数字逻辑。但是在这段代码中出现了一个奇怪的组件,我不知道这个组件是什么。是触发器、多路复用器还是逻辑端口?下面是代码和图像,在图像中,组件是红色三角形。

编码 :

在此处输入图像描述

0 投票
1 回答
135 浏览

binary - 找出二进制数中 2 个 1 的组合

我们有一个二进制数,我们需要从给定的数字生成 2 个 1 的组合。如果给定这样一个 2 1 的组合,我们应该能够产生下一个组合。

例子:-

编辑:一旦第二个 1 达到给定二进制数中的最后一个 1,第一个 1 就会递增(设置为二进制数中的下一个“1”,第二个“1”成为第一个之后的“1” 1'(例如 4))

这将在硬件中完成,因此它不应该是计算复杂的。我们如何用 VHDL 设计这个模块。

0 投票
4 回答
1847 浏览

java - 真值表生成

任何人都想在不创建整个表的情况下生成一行真值表。例如,用户将输入一个行号并生成该真值表行。此外,在获得该行号之前,应该在不创建表的情况下完成此操作。本质上,我想知道是否有一种有效的方法可以仅基于真值表行作为输入来计算真值行值。

示例:假设 3 个变量 printTruthTableRow(3) 将产生 010

实际上,我可以将 input-1 转换为二进制值来获取真值表行吗?

编辑:让我给你们更多的背景知识。我用 Java 编写了一个基本的 DPLL SAT Solver。我的目标是让一堆线程运行求解器来解决 n-Queen 问题。目前,我的算法一次生成一行真值表,然后将其提供给线程来解决。问题是我的真值表生成不能由线程同时完成。如果线程抓取真值表行,它必须锁定该方法,生成一行,然后解锁。如果在生成真值表行时完成的工作较少,我可以提高速度。我可以将原子计数值转换为二进制并让线程对其进行测试。谢谢大家的回答。

0 投票
2 回答
146 浏览

java - java中的右移

我只是坚持这个小逻辑,我没有做对

int是 32 位,所以假设以二进制取 20 就像

..现在如果我执行右移操作说 4

..所以结果是1

现在说我再取 20 做 5 右移操作

..所以结果是0

现在,如果我右移 32 次……为什么我得到的数字与分配的数字相同。??

所以我所期待的是在 5 个班次之后 .. 任何班次都应该导致结果为 0.. 但是在 32 个班次时,为什么我要取回分配的值?

0 投票
1 回答
1279 浏览

logic - vhdl 中的 FSM 使用计数器作为输出

我目前正在编写我的第一个 FSM,但不确定我的逻辑是否正确。我的任务是为以下逻辑创建状态图:

输出为 1 时:

因此,我创建了以下 vhdl 代码来完成此操作:

所以每次我让它输出 1 时,我将它发送回 B 并计数 + 1。这应该在 LED 上显示为在 18 位序列中找到的次数。

我是否以正确的方式处理这个问题?我对如何通过 18 位序列移动它感到困惑。我应该将板上的开关作为我的 18 位,表示为 SW。我会用 替换 data_inSW(17 downto 0)吗?

0 投票
1 回答
1341 浏览

time - 实时仿真 Quartus II 出错

我正在学习如何使用 Quartus II 上的时间仿真来查看电路中的实际延迟,并且发生了错误。这个错误表明我不尊重触发器的保持时间。在逻辑模拟中,电路工作。下来可以看到代码:

和错误:

我在 quartus II web 上使用模型 sim 模拟器

0 投票
2 回答
8612 浏览

assembly - 如何检测补体系统中的溢出?

在一个补码系统中,为了显示负二进制数,我们只需对每个位进行补码。例如:+3= 0011,-3= 1100

在二进制补码系统中,我们使用进位位检测溢出,但是一个补码呢?

0 投票
2 回答
581 浏览

embedded - I2C 主机到主机通信是否可行?

I2C 主设备是否可以与另一个 I2C 主设备通信?

谢谢