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

boolean-logic - 打开或关闭逻辑门

如果我有一个带有三个输入“A、B 和控制线 C”的“与门”

我可以控制开关与门的开或关吗.. 就像这样如果 C == 1 那么与门与输入 A,B 一起工作 如果 C==0 那么什么也不会发生

这可以通过任何方法完成吗?

0 投票
1 回答
578 浏览

scala - Chisel: how to avoid errors NO DEFAULT SPECIFIED FOR WIRE

I'm trying to implement a structured read port to Mem:

When I use combinational

instead of sequential

I get errors

What is the meaning of this error message?

The second question:

Is it possible to have a structured red port a la SystemVerilog, i.e. read directly

instead of

Thanks!

0 投票
1 回答
867 浏览

scala - 在 Chisel 中有 Vec[Mem] 会很好

对 Vec[Mem] 来说说集合关联缓存会很好。

不幸的是,Chisel 不支持 Vec[Mem] 构造:

确实:

但是,一个简单的解决方法可以正常工作:

并用于编写标签(在某些 when(...) 子句下的原因)

意见,改进拟议方案的建议?谢谢!

0 投票
2 回答
3632 浏览

assembly - MIPS 指令集的字节操作

我想使用 MIPS 指令集进行一些字节操作。

  • 我有 register $S0which has0x8C2E5F1E和 register $S1which has 0x10AC32BB
  • 我想将 , 的第二个字节存储到$S0,5F的第三个字节$S1AC

我的逻辑是将寄存器的字节存储$S0到另一个寄存器中,将其转移到所需的字节。然后我会和$S1注册0xFF00FFFF。最后,我将只是或两个寄存器。听上去怎么样?这是对的吗?有更好的办法吗?

任何建议或解决方案将不胜感激。

0 投票
1 回答
300 浏览

scala - Chisel 既没有为 verilog 也没有为 C++ 综合

对于以下片段 Chisel 没有合成:

如果手动展开循环 for (level <- 1 until num_levels) 并折叠常量,则行为相同:

为两个片段(原始和展开/实例化的 16 路案例)生成的 verilog(和类似的 C++ 代码):

不太明白为什么只有虚拟结构 我应该怎么做才能强制综合逻辑?谢谢!

0 投票
1 回答
2333 浏览

boolean - 测试两个输入门(AND、OR、NAND、NOR 和 XOR)的程序

我正在尝试设计一个满足这些参数的 Arduino 程序。起初我认为这不会那么难,但我不知道解决这个问题的逻辑或方法是什么。现在我有点卡住了。无论如何,是我到目前为止所拥有的。非常感谢任何帮助和输入。谢谢。

0 投票
3 回答
321 浏览

c - 与使用语言的标准操作相比,用 C 语言建模数字电路是否有任何实际好处?

因此,我开始研究数字电路设计并发现几乎每个操作(我知道)都源自 3 个逻辑操作:ANDORNOT。作为一个类比,这些有点像构成其他一切的原子的亚原子粒子。亚原子粒子之于逻辑门,就像原子之于处理器指令一样。如果用汇编编程就像把原子放在一起,那么用 C 语言编程就像把分子(和原子)放在一起。 有人请告诉我,如果我在这里离开基地。

话虽如此,我知道 GCC 和大多数其他编译器在从 C 到机器代码的优化方面做得很好。假设我们正在查看 x386 指令集。$$如果我只使用、||和构建一个 32 位全加器~编译器是否足够聪明,可以使用处理器提供的现有指令,或者我的全加器最终会成为一个更臃肿、效率更低的版本处理器。

免责声明: 我开始研究数字电路是为了开始学习汇编,我在 C 语言中是公平的。我想用 C 语言对这些电路中的一些电路进行建模,以进一步了解数字电路,因为这些是我理解的术语。但我不想引诱自己误以为使用简单的代码也会是高效的代码(或学习以外的任何其他实际好处)+。是的,我知道代码的可怕可维护性将远远超过这种编码“风格”可能提供的任何好处。

0 投票
2 回答
109 浏览

algorithm - Number theory: solution need

Suppose a = a31 a30 . . . a1 a0 is a 32-bit binary word.
Consider the 32-bit binary word b = b31 b30 . . . b1 b0 computed by the following algorithm:

  1. Scan a from right to left and copy its bits to b until the first 1 is found (which is also copied to b)
  2. After that, copy the Boolean negations of the bits in a.

For example, a = 10100 . . . 00 is transformed to b = 01100 . . . 00. Explain what this algorithm computes if a and b are interpreted as binary numbers.

0 投票
1 回答
121 浏览

c - 将 4 位分配给 8 位寄存器

如何在一个步骤中将一个寄存器(8 位)中的最高半字节(4 位)分配给另一个寄存器的最高半字节?不改变 4 个 LSb?

这是我提出的解决方案,当我可以分两步完成时,但我相信有更巧妙的解决方案只需一步即可完成(可能需要更少的门或指令):

  • REGA &= (REGB | 0x0F);
  • REGA |= (REGB & 0xF0);

任何擅长数字设计的人都可以帮忙吗?(现在是凌晨 3 点,我睡不着觉:-/)

0 投票
1 回答
104 浏览

digital - 什么是异步电路?

有组合电路和时序电路。在时序电路中,使用了存储元件。是异步电路,电路中也使用了触发器之类的存储元件。以及它们如何不稳定,这使其成为电路的糟糕选择。如何解释异步电路的不稳定性?