8、善用芯片内部的PLL或DLL资源完成时钟的分频、倍频率、移相等操作,不仅简化了设计,并且能有效地提高系统的精度和工作稳定性。
9、异步电路和同步时序电路的区别
异步电路:
电路核心逻辑有用组合电路实现;
异步时序电路的最大缺点是容易产生毛刺;
不利于器件移植;
不利于静态时序分析(STA)、验证设计时序性能。
同步时序电路:
电路核心逻辑是用各种触发器实现;
电路主要信号、输出信号等都是在某个时钟沿驱动触发器产生的;
同步时序电路可以很好的避免毛刺;
利于器件移植;
利于静态时序分析(STA)、验证设计时序性能。
10、同步设计中,稳定可靠的数据采样必须遵从以下两个基本原则:
(1)在有效时钟沿到达前,数据输入至少已经稳定了采样寄存器的Setup时间之久,这条原则简称满足Setup时间原则;
(2)在有效时钟沿到达后,数据输入至少还将稳定保持采样寄存器的Hold时钟之久,这条原则简称满足Hold时间原则。
11、同步时序设计注意事项:
异步时钟域的数据转换。
组合逻辑电路的设计方法。
同步时序电路的时钟设计。
同步时序电路的延迟。同步时序电路的延迟最常用的设计方法是用分频或者倍频的时钟或者同步计数器完成所需的延迟,对比较大的和特殊定时要求的延时,一般用高速时钟产生一个计数器,根据计数产生延迟;对于比较小的延迟,可以用D触发器打一下,这样不仅可以使信号延时了一个时钟周期,而且完成了信号与时钟的初次同步。在输入信号采样和增加时序约束余量中使用。另外,还有用行为级方法描述延迟,如“#5 a<=4’0101;”这种常用于仿真测试激励,但是在电路综合时会被忽略,并不能起到延迟作用。
Verilog 定义的reg型,不一定综合成寄存器。在Verilog代码中最常用的两种数据类型是wire和reg型,一般来说,wire型指定的数据和网线通过组合逻辑实现,而reg型指定的数据不一定就是用寄存器实现。
12、常用设计思想与技巧
(1)乒乓操作;
(2)串并转换;
(3)流水线操作;
(4)异步时钟域数据同步。是指如何在两个时钟不同步的数据域之间可靠地进行数据交换的问题。数据时钟域不同步主要有两种情况:
两个域的时钟频率相同,但是相差不固定,或者相差固定但是不可测,简称为同频异相问题。
两个时钟频率根本不同,简称异频问题。
两种不推荐的异步时钟域操作方法:一种是通过增加Buffer或者其他门延时来调整采样;另一种是盲目使用时钟正负沿调整数据采样。