最近工作涉及到电路的复位和时钟问题,这里追根溯源的总结下异步复位、同步释放以及电路时钟设计技巧
基本原则
- 尽可能避免使用内部生成的时钟(PLL除外),因为它们可能导致设计中的功能和时序问题。 使用组合逻辑生成的时钟会引入产生功能问题的毛刺,并且组合逻辑中固有的延迟可能导致时序问题。
内部逻辑产生的时钟
- 将组合的逻辑的输出寄存器一下:
- 如果将组合逻辑的输出用作时钟信号或异步复位信号,则可能会在设计中看到毛刺。 在同步设计中,寄存器的数据输入上的毛刺是没有后果的正常事件, 但是,寄存器的时钟输入(或异步输入)上的毛刺或尖峰会产生严重后果。窄毛刺可能违反寄存器的最小脉冲宽度要求;如果当毛刺到达时钟输入时寄存器的数据输入发生变化,则也可能违反建立和保持要求。即使设计没有违反时序要求,寄存器输出也会意外地改变值并在设计的其他地方引起功能危险。为避免这些问题,在将其用作时钟信号之前,应始终寄存一下组合逻辑的输出。
使用门控时钟:
- 门控时钟使用控制门控电路的使能信号打开和关闭时钟信号。 当时钟关闭时,相应的时钟域将