数字电路设计:竞争冒险以及消除方法
竞争冒险
在设计数字电路过程中,往往会忽略组合逻辑中各个路径存在延迟。
(1)竞争:对于同一个模块中的同一个变量,可能会有正反输入的情况,而这两个信号来自不同的路径。
(2)冒险: 信号从输入到达输出的时间(延迟)与电路的实现工艺,温度等等因素有关,每一个输入信号到达输出端的时间存在不确定性。
表现在逻辑表达式上,如果一个组合逻辑功能模块能够表达为:
(1)Z = ~A + A 则电路存在“0”型竞争;
(2)Z = (~A) & A 则电路存在“1”型竞争;
竞争表现在输出波形上,则是出现0电平或者1电平的尖峰,称“毛刺”。
竞争冒险的解决
消除毛刺的方法如下(前两种方法较为常用):
(1)逻辑修改
在存在竞争的情况下,增加冗余项,实现输出消除毛刺。
eg:
逻辑表达式如下:
Z = (~A)&B&C + A&B
当B = C = 1时, 电路存在“0”型竞争。
增加项:冗余项 B&C
更变后:
Z = (~A)&B&C + A&B + B & C
ps: 还有卡诺图法,在两个相切的圆之间,相切接触的地方增加一个连接圆。
(2)时序采样
略写: 在输出数据稳定时,再将数据采集。
(3)增加滤波