2 level design

2 level design
某2 level design 图纸部分。Q为什么输入具有a这种反literal的两级设计也可以叫两级设计非门不算门吗A这个问题问得很好因为它触及了“两级设计”这个术语定义中的一个常见误解。直接回答你的问题非门反相器确实是一个门但在“两级设计”的计数规则里它不算“逻辑级数”——它被归类为“输入缓冲/反相”而不是“逻辑层”。下面我详细解释为什么这样规定一、“两级”指的是逻辑决策层而不是信号变换层在数字逻辑设计中“级”通常指的是从输入到输出之间执行逻辑决策与、或、与非、或非等的门的层数。第一级产生乘积项如 AND 或 NAND。第二级产生和项如 OR 或 NOR。而输入端的反相器a或b并不参与“决策”它只是在准备输入信号的极性。它不决定输出是1还是0它只是把一个信号翻了个面。在逻辑综合工具里反相器和缓冲器通常被归类为“驱动器”用于增大信号驱动能力或调整时钟偏斜它们不被计入逻辑级数。所以一个“两级与-或结构”是输入可能先经过反相 → 第一级与门 → 第二级或门 → 输出这里的“两级”指的是与门和或门这两层不包括前面的反相器。二、如果反相器也算一级那“两级”的说法就几乎不成立了如果反相器也算一级那么任何带有反相输入的两级电路都会变成三级、四级这样“两级”这个概念就失去了意义。因为大多数输入信号都会在早期经过反相器无论是显式的还是隐式的或者输出需要经过缓冲器驱动下一级。更重要的是在CMOS晶体管层面反相器通常被吸收到前级逻辑门内部而不单独占用一级。比如当你用与非门NAND实现与门时a可能根本不需要一个独立的反相器——因为与非门本身就会在输出端产生反相作为逻辑功能的一部分而不是先反相输入再与。换句话说a的形式可以通过调整门电路用与非门或或非门来实现而不需要在输入路径上额外插入一个反相器。三、你可能会想“那我做SOP的时候输入端有反变量物理上确实需要非门啊”是的物理上如果在标准单元库中你需要一个反变量的输入信号确实会有一个反相器单元存在。但逻辑级数看的是数据依赖的深度反相器不依赖于其他输入产生结果它只是单个输入的直接变换在时序路径的“级数”统计中很多EDA工具把它归为“输入级”或“驱动级”不计入“逻辑深度”。在计算关键路径延迟时反相器确实会贡献延迟但在定义“两级逻辑”时我们只计算执行布尔运算如与、或、与非、或非的层数。反相器通常被视为输入调整的一部分而不是逻辑运算的一部分。所以如果作业或考试问“这是几级设计”你只看参与逻辑运算的门的层数忽略输入端的反相器、输出端的缓冲器。输入端那些用来生成反变量的非门不会帮你增加逻辑级数。它们只是让你能够获得所需的输入极性不改变底层逻辑运算的层数。