同步设计技术
在同步设计中,由单个主时钟和单个主置位/复位信号驱动设计中所有的时序器件。
设计中易于忽略的组合延迟
在进行RTL代码编写的过程中,往往只注重逻辑的verilog实现而忽略了其映射到实际的硬件实现。为了写出结构良好的和可综合的RTL代码,我们也应该注意到代码当中会潜在的涉及组合逻辑延迟。
1. 避免使用行波计数器
用触发器的输出驱动其他触发器的时钟输入端时,由于第一个触发器时钟到Q的延迟而使第二个触发器的时钟输入产生偏移。当连接2个以上的触发器时,会使延迟累加。(实际上对于简单的四分频电路,我们便采用了这种结构,由两个二分频电路级联而成。更加好的办法是计数器的方式或者序列发生器的方式)

2. 门控时钟
时钟线上的门控单元会导致时钟偏移,并会引入尖峰脉冲作用于触发器以产生不必要的跳转。对于门控时钟的硬件实现有专门的电路架构在后面会介绍。简单的在时钟线上门控会产生下图所示的尖峰脉冲和时钟偏移。

3. 用触发器驱动另一个触发器的异步复位端
图2.4中第二级触发器的输出不仅仅只受时钟边沿的影响。实际上第二级触发器时钟和复位之间存在潜在竞争 (竞争:信号经由不同的传输路径到达最终目的点)关系。

本文是《硬件架构的艺术》学习笔记,聚焦同步设计技术,特别讨论了设计中容易忽略的组合延迟问题,如行波计数器的延迟、门控时钟的影响、触发器间的竞争关系、组合环路的消除以及异步脉冲产生器的使用等。通过了解这些细节,有助于写出更优化的RTL代码。
最低0.47元/天 解锁文章
1887





