1 - 运行方法和操作方法:
- 见 README.md
2 - 设计思路 :
因为我们保密没学数电,就想借这个项目顺便学下数电,于是做了时序电路,实现了一些数电芯片,做了显示学号的作业和一个时钟大作业。
组合逻辑用深搜实现拓扑排序,然后按拓扑排序的顺序遍历。当检测到环时(深度搜索出现后向边),用求强连通分量的算法输出所有的环。
时序电路中,由于允许环的存在,更重要的是还要有传输延迟,因此按拓扑排序的顺序结合广度搜索,把所有周围的门加入队列,并允许重复入队,当电路稳定时输出。但是这样付出了很大的时间代价,在时钟那个实验中,即使没有sleep,执行一次也要花费不止一秒的时间。。。
-
实现功能
- 各种各样的异常检查
- 允许引入模块
- 提供了七段数码管接口
- 可将电路图导出到文件
-
改进空间
- 时序电路显示时无法退出。考虑调用两个进程实现非阻塞输入
- 模块封装得不够彻底。因为工程过于庞大,没有太多耐心。。。
- 文档不够详细。同上。
- 因为终端没有余辉效应,每次显现一个数字无法产生显现所有数字的感觉,所有时钟采用全部显现的方式。I dont't know.
- 时序电路时间复杂度过高。I don't know.