关于组合逻辑电路的一点总结和思考
2017-10-25 14:51
1161 查看
最近一段时间读了《Digital Design and Computer Architecture》一书,在这里对读书的收获做一些简单的归纳和思考
数字电路可以分为组合逻辑电路和时序逻辑电路。组合逻辑电路的输出至于当前输入有关,也就是说仅仅靠当前的输入值就可以得到输出值
B0+B1+B2⋅⋅⋅¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯=B0¯¯¯¯∗B1¯¯¯¯∗B2¯¯¯¯⋅⋅⋅
(B+C)∗(B¯¯¯+D)∗(C+D)=(B+C)∗(B¯¯¯+D)
关键路径是组合逻辑中输入到输出的最长路径,这条路径的周期决定了整个数字系统能够达到的最短周期,即决定了系统能够达到的最高频率
在PCB走线中,存在分布电感和电容,可以自然滤除竞争冒险产生的毛刺。但在FPGA资源中不存在这样的电容电感,所以预防竞争与冒险的出现就变得格外重要
为了消除竞争与冒险可以在组合逻辑电路中做一些冗余设计,在卡诺图两个相邻但不重合的质蕴涵项之间添加一个公共的质蕴含项。具体细节在大学数电内容中有详细介绍
数字电路可以分为组合逻辑电路和时序逻辑电路。组合逻辑电路的输出至于当前输入有关,也就是说仅仅靠当前的输入值就可以得到输出值
组合逻辑中的门
组合逻辑电路通常是由逻辑门组成的,与、或、非、同或、异或、与非、或非门,其中与非门十分重要,它被称为是万能门,可以构成任意其他门布尔表达式
布尔表达式是用来解决组合逻辑中TRUE和FALSE的问题的,它的基本公理这里不再赘述,仅记录两项非常有用的化简法则:摩根定律:(break the line,change the sign)
B0∗B1∗B2⋅⋅⋅¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯=B0¯¯¯¯+B1¯¯¯¯+B2¯¯¯¯⋅⋅⋅B0+B1+B2⋅⋅⋅¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯=B0¯¯¯¯∗B1¯¯¯¯∗B2¯¯¯¯⋅⋅⋅
一致律:
(B∗C)+(B¯¯¯∗D)+(C∗D)=B∗C+B¯¯¯∗D(B+C)∗(B¯¯¯+D)∗(C+D)=(B+C)∗(B¯¯¯+D)
什么是关键路径(critical path)?
组合逻辑中存在两种延迟,propagation delay传播延迟tpd和contamination delay最短延迟tcd,传播延迟是组合逻辑上从信号到达输入端到输出端信号最终稳定的延迟,最短延迟是这一过程的最短值关键路径是组合逻辑中输入到输出的最长路径,这条路径的周期决定了整个数字系统能够达到的最短周期,即决定了系统能够达到的最高频率
竞争与冒险
因为组合逻辑电路中的路径有长有短(critical path,short path),所以组合逻辑的输出也有先后顺序,不是同时变化,所以会出现一些不正常的尖峰信号,这种现象叫做竞争与冒险在PCB走线中,存在分布电感和电容,可以自然滤除竞争冒险产生的毛刺。但在FPGA资源中不存在这样的电容电感,所以预防竞争与冒险的出现就变得格外重要
为了消除竞争与冒险可以在组合逻辑电路中做一些冗余设计,在卡诺图两个相邻但不重合的质蕴涵项之间添加一个公共的质蕴含项。具体细节在大学数电内容中有详细介绍
相关文章推荐
- 关于MVC,MVP,MVVM的一点总结和思考
- 关于深度思考的一点总结
- 关于会计对账的一点总结和思考
- 关于工作的一点总结和思考
- 关于xml学习的一点思考与总结
- 关于变位词的一点总结和思考
- 关于java.io的一点总结
- 关于雷军:十年的思考和总结
- 关于c语言中自增自减运算符的一点思考
- 关于程序员成长的一点思考
- 关于敏捷开发的一点总结与感悟
- 关于为什么要使用脚本引擎与脚本的一点思考
- 关于编写服务应用程序的一点总结
- 关于Switch Case 的一点思考
- 关于多线程Thread 与 Runnable 的一点总结
- 关于深度学习中激活函数的思考总结(转载+原创)
- 关于对象之间通信的一点思考
- 关于指针的一点思考
- 关于移动互联网的一点思考
- 关于foreach和for的一点思考