首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用C++模拟一个数字电路(只有输入/输出,没有图形)

如何用C++模拟一个数字电路(只有输入/输出,没有图形)
EN

Stack Overflow用户
提问于 2012-02-03 22:40:46
回答 4查看 7K关注 0票数 1

我需要在C++中创建一个基于输入/输出的数字电路仿真。

输入以一系列元素(或、and、nand等)的形式给出。并且作为那些元件的管脚之间的连接列表(即,元件1的输入管脚1连接到元件2的输出管脚)。

源被认为是一个只有一个输出引脚的元素,在输入文件的末尾,描述了源,比如它是周期性的,还是在随机时刻自定义为1或0。

探头在电路的末端,它被认为是一个只有一个输入引脚的元件,它自然地检查信号的值在任何时间点是0还是1。

所以我的问题是,如何创建表示电路的数据结构?它可以像元素的连接列表一样,或者每个元素都应该有指向其他元素的指针吗?如何在整个电路模型中传输信号?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-03 22:53:41

  1. 从组件的基类开始:

类Component { imlpementations.

  • Add ** inputs;Component** outputs;int numOfInputs;int numOfOutputs;PropagateLogic PropagateLogic() = 0;}

  • 子类特定逻辑传播代码的基组件,以告诉组件有多少输入/输出要通过分配expect.

  • Connect来提升电路最后,当您想要执行电路时,从输入端开始并沿着调用pointers

  • ...and的链向下遍历。

票数 1
EN

Stack Overflow用户

发布于 2012-11-30 00:15:12

您所描述的是一种称为"Flow-Based Programming“的编程范例。

如果您感兴趣,我已经开发了一个名为DSPatch (或“C++”)的基于调度的面向对象的编程库。通用的面向对象的API允许您创建和路由几乎任何类型的工艺链,从基本的逻辑电路到全面的电子模拟。它快速,非常容易使用,并且对个人/专有使用免费。

票数 2
EN

Stack Overflow用户

发布于 2012-02-03 22:41:44

我要说的是,你应该寻找一种类似于图的结构。您可以添加一个字段,指定其是否处于活动/打开状态,并将所有传入数据转发到活动的相邻节点。但这可能会在AN方向上走得更远一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9130395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档