
本文共 1856 字,大约阅读时间需要 6 分钟。
时序逻辑设计
时序逻辑电路特征
时序逻辑电路与组合逻辑电路不同,它不仅包含输入信号的逻辑操作,还需要记录与保持电路状态。常见的关键组成部分包括状态寄存器、触发器以及同步时序逻辑电路。
锁存器与触发器
锁存器(Latch)和触发器(Flip-Flop)是时序逻辑电路的核心元件。它们能存储电路的当前状态,并在特定时刻根据输入信号更新状态。
SR 锁存器
SR 锁存器有两个输入端(A和B)和两个输出端(Q和Q̄)。根据输入信号的组合,可以实现四种主要功能状态,即“A→Q”、“B→Q”、“A→Q̄”以及“B→Q̄”。
D 锁存器
D 锁存器是 SR 锁存器的升级版,兼容 D 输入信号并修正了 SR 锁存器在同时为 1 时的不稳定状态。D 锁存器仅使用一个输入信号 D 和一个时钟信号 Clk。
D 牐触发器
D 触发器是一种边沿触发型触发器。它在时钟信号的上升沿对输入信号 D 进行采样。触发器的实现主要分为主从式和异构式两种架构。
寄存器
寄存器是由多个 D 触发器组成的具有共享时钟输入的电路。一个 n 位寄存器需要 n 个 D 触发器。
同步逻辑设计
同步逻辑设计要求所有状态改变仅在时钟信号的有效边沿发生。为了实现这一点,在信号传播路径中需要插入寄存器,使时序逻辑电路成为组合逻辑电路与寄存器(触发器)的组合。
同步逻辑设计总结
状态仅在时钟信号边沿改变,确保电路行为可控且具有预知性。
有限状态机
有限状态机(Finite State Machine, FSM)是由状态寄存器和组合逻辑电路共同构成的复杂时序逻辑电路。它可以实现状态机控制功能。
Fsm 的基本概念
Fsm 由状态寄存器和组合逻辑电路构成,状态寄存器负责存储当前状态,组合逻辑电路根据输入信号计算下一个状态。
Fsm 的类型
有限状态机分为 Moore 型和 Mealy 型两种。Moore 型输出仅由当前状态决定,而 Mealy 型输出还与输入信号相关。
Fsm 设计实例
Mealy 型 Fsm 总结
- 输入信号与输出信号共同决定下一状态。
- 状态转换表需要同时包含状态和输出信息。
状态编码
状态编码主要采用二进制方式(如 00,01,10,11)和独热编码(如 1000,0100,0010,0001)两种方式。选择编码方式需根据具体设计需求进行权衡。
Fsm 的分解
为了简化设计复杂度,可以将复杂的 Fsm 分解为多个简单的状态机,然后通过状态机之间的调控作用来实现整体功能。
时序约束
时序约束涉及输入信号和输出信号的建立时间、保持时间以及孔径时间(Aperture Time)。这些时间参数直接影响电路的稳定性。
输入时序约束
- 建立时间(Setup Time):输入信号在时钟有效边沿前需要一定时间准备好。
- 保持时间(Hold Time):输入信号在时钟有效边沿期间需要保持稳定。
- 孔径时间:输入信号在采样点前必须不变。
输出时序约束
输出信号需满足输出延迟(tpd)和输出保持时间(t hold)的要求。这些时序约束确保输出信号的正确性。
系统时序
- 时钟周期:两个连续时钟上升沿之间的间隔。
- 时钟频率:1/时钟周期。
- 建立时间约束:在时钟有效边沿前输入信号需要达到稳定状态。
- 最小延迟约束:确保电路输出在关键路径上的传播延迟不超过允许范围。
寄存器的 Verilog 实现
寄存器是时序逻辑设计中的核心元件。在 Verilog 中,寄存器可以通过 always_latch 和 always_ff 模型实现。
always_ff 寄存器
always_ff寄存器用于模型逻辑寄存器。需要注意寄存器的复位策略,建议使用低电平异步复位方式。
always_latch 锁存器
always_latch)} 锁存器不建议使用,除非有特定的设计需求。
时序逻辑中的时序问题
在设计时序逻辑电路时,必须确保时序约束得到充分考虑。例如,D 输入信号在采样点前的稳定性直接影响锁存器的亚稳态表现。
locked 关键字
locked 关键字用于阻止 Verilog 外部时钟信号的敏感性。它确保代码中只响应指定的时钟信号输入。
总结
时序逻辑设计关注状态变化规律和时序约束管理。理解时序逻辑电路的本质特征,对于现代数字电路设计具有重要意义。
发表评论
最新留言
关于作者
