gpt4 book ai didi

java - 逻辑电路仿真

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:54:11 24 4
gpt4 key购买 nike

我制作了一个计算逻辑电路真值表的小程序。在我选择的表示中(出于无知,我没有受过这方面的教育),我使用 Circuit 类和 Connector 类来表示“电路”(包括基本门,如 NOT,OR ...)和接线.

工厂类用于“焊接引脚和电线”,语句如下所示

factory.addCircuit("OR0", CircuitFactory.OR);
factory.addConnector("N0OUT", "NOT0", 0, "AND1", 1);

电路完成时

factory.createTruthTable();

计算电路的真值表。输入 OR NOT 和 AND 的真值表,代码链接了 XOR、1/2 ADDER、ADDER 和 4 位 ADDER 的创建,在每一步都重复使用前一步的真值表。

对于一个下午的工作来说,一切都很好,很花花公子,但它显然会在循环中中断(例如,人字拖)。有谁知道用循环表示逻辑电路的便捷方法?理想的情况是它可以用一个表来表示,也许是一个包含先前状态、新状态和延迟的表。

让我引用描述这种表示的文献也可以。上网查了一个小时才找到一篇博士论文,有点超出我的理解。

非常感谢!

最佳答案

任何循环都必须包含至少一个具有“状态”的节点,其中触发器(或寄存器)是基本构建 block 。一种有效的方法是将所有有状态节点拆分为两个节点;一个充当数据,另一个充当数据接收器。所以你现在没有循环了。*

为了模拟,在每个时钟周期**,您以前馈方式将数据值从源传播到接收器。然后更新有状态源(从它们相应的接收器),为下一个周期做好准备。


* 如果此时您仍然有环路,那么您的电路图无效。

** 我假设您想模拟同步 逻辑,即您有一个时钟,并且只在时钟边沿更新状态。如果您想模拟异步逻辑,那么事情会变得更加棘手,因为您需要开始对传播延迟等进行建模。

关于java - 逻辑电路仿真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14127426/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com