问题标签 [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.
hardware - 数字逻辑 - 状态机?
我了解 Mealy 状态机的工作方式 - 输出逻辑现在不仅是当前状态的函数,而且也是直接输入的函数。
但这比摩尔机器有什么优势呢?人们通常使用 Mealy FSM 吗?
race-condition - 比赛条件
我目前正试图理解与比赛条件相关的两件事。
问题一:
我收到了以下问题:
给出的答案如下:
这究竟是如何实现的?到目前为止,这是我的想法:
- c从 1 开始,因为a从 0 开始
- d从 0 开始,因为b从 1 开始
- 当时间等于 2 时,a变为 1... c切换到 0的传播延迟为 1,因此它在 3 个时间单位变为 0
- 同样的逻辑适用于d
- e和f应该是常数 1 或 0,但似乎受到某些东西的影响。
这里到底发生了什么?它是否与布尔函数或某些东西有关。如果是这样呢?
问题 2:
有没有人有一种简单的方法或逻辑方法来产生一个简单的电路(使用 XOR、AND、OR、NOT、NAND 布尔函数:
- 静态竞争条件 - 当值是常量时
- 动态竞争条件 - 当一个值预期改变时
提前谢谢了!
hardware - 如何提高我的 VHDL 体验?
我是电子工程学院的学生,去年我们学习了 VHDL 基础知识,我想提高我在这个领域和数字设计领域的经验,我想成为这个领域的专家。我怎样才能做到这一点?我在网上搜索了很多,没有找到任何东西。请提供任何帮助。十分感谢。
floating-point - 使用浮点转换从二进制转换为基数 10
这是我第一次发帖。
所以这是我的问题,我不明白下面的例子。
二进制表示:01000000011000000000000000000000
=+(1.11)base 2x 2^(128-127)
<-所有问题都参考这一行。
•=+(1.11)base 2 x2^1
•=+(11.1) base 2
•=+(1x21+1x20+1x2-1)=(3.5) base 10
问题:128-127 来自哪里?
为什么是1.11?
logic - 这张卡诺图是如何组织的?
一个 K-map 生成器为我生成了这个!卡诺地图
我一直在试图弄清楚这些价值观是如何相互匹配的。例如。表上的值 7 似乎由 01101 标识,而不是 7,依此类推。
rotation - 桶形移位器的应用
我正在做一个 VLSI 项目,我正在使用一个名为 DSCH 的工具来实现一个桶形移位器。同样的原理图是使用传输门实现的。
该电路的作用是,它在一个时钟周期内从解码器中选择尽可能多的旋转来旋转 8 位字(8 位移位器)。
但是我想知道旋转器的用途以及为什么即使它在旋转它仍然被称为移位器。
还请帮助我处理一些关于 Rotator 的应用程序,这些应用程序可以添加到当前电路中以显示它的用途?
hardware - 画半加器电路
我正在使用加法器单元,特别是半加法器。
目前,我在数字作品中制定了标准的半加器单元(如下图所示)。
但是,我被要求使用选择的门来绘制半加器单元电路,例如 AND OR XOR NOT。
那么绘制半加器还有哪些其他方法呢?
loops - 如何处理数字逻辑模拟器中的循环?
我正在开发一个数字逻辑模拟器,以便稍后在其中构建我自己的 CPU(所以这是一个长期项目)。一切都适用于没有环路的电路,例如全梯。然后是像 SR 锁存器这样的电路,其中一个门的输入连接到另一个门的输出。所以我处于一个循环中,因为两个门都需要另一个门的输出来计算它们自己的输出。
解决这个问题的最佳方法是什么?我以某种方式实现了它,即(当检测到循环时)它将返回它的最后一个输出。或者,当这是第一次运行时(因此没有先前的输出),我将返回零(低)。所以我只是假设一开始所有的输出都是低/零。到目前为止它有效,但我确信这不是解决问题的好方法。
有任何想法吗?
boolean - 简化布尔代数
我试图证明BC + !A!B + !A!C = ABC +!A
我曾尝试使用德摩根定律,并用 和 代替X for !A!B
,Y for !A!C
但是我在这方面没有取得任何进展。
我也尝试过像这样对 A 进行 gruopoing !A(!B+!C)
,但是我还是无法到达任何地方。如果有人能指出我正确的方向,帮助我解决问题,向我展示一个可以做到的工具,等等。我会感激。
boolean-expression - 如何解决这个布尔代数表达式
我想帮助简化这个布尔代数表达式:
B*C + ~A*~B + ~A*~C => A*B*C + ~A
我需要知道如何将其简化为 ABC + ~A 的步骤
'*' 表示“与”
'+' 表示“或”
“~A”表示“A NOT”
任何帮助,将不胜感激!谢谢!