异步电路
1. 电路的核心逻辑是组合电路,比如异步的FIFO/RAM读写信号、地址译码信号等电路;
2. 电路的输出不依赖于某一个时钟,也就说不是由时钟信号驱动触发器产生的;
3. 异步电路非常容易产生毛刺,且易受环境的影响,不利于器件的移植;
同步电路
1. 电路的核心逻辑是由各种各样的触发器实现的,所以比较容易使用寄存器的异步复位/置位端,以使整个电路有一个确定的初始状态;
2. 整个电路是由时钟沿驱动的;
3. 以触发器为主体的同步时序电路可以很好的避免毛刺的影响,使设计更可靠;
4. 同步时序电路利于器件移植,因为环境以及器件工艺对同步电路的影响几乎可以不考虑
5. 同步电路可以容易的组织流水线,提高芯片的运行速率
6. 同步电路可以很好的利用先进的设计工具,如静态时序分析工具等,为设计者提供了最大便利条件,便于电路错误分析,加快设计进度。
同步时序设计规则
1. 尽可能在整个设计中只使用一个主时钟,同时只适用同一个时钟沿,主时钟走FPGA 全局网络,因为FPGA器件中的全局时钟资源是专门为降低时钟的抖动和扭曲而设计的,在Xilinx FPGA当中,采用专门的时钟管理模块(CMT)来管理全局时钟资源,有效的提高了时钟的质量;
2. 在FPGA设计中,所有输入、输出信号均应通过寄存器寄存,寄存器接口当作异步接口考虑;
3. 当全部电路不能用同步电路设计的时候,也就是说需要多个时钟来实现的时候,原则上将电路分成多个局部同步电路来设计,各局部电路接口之间采用异步电路来考虑;
4. 电路设计中需要考虑时序余量,当设计无法满足理论最高频率的时候,芯片就会无法可靠工作
5. 电路中所有寄存器、状态机在单板上电复位时候应处于一个已知的状态;
总结
同步时序电路更适合现代FPGA设计,另外,随着FPGA/CPLD的规模越来越大,设计者无需像以前一样经常使用行波计数器或者异步脉冲生成器等典型的异步逻辑设计方式以节约设计所消耗的面积资源,而新型FPGA丰富的逻辑资源、强大的EDA综合实现工具为时序驱动优化提供了良好的条件,现代FPGA推荐使用同步时序逻辑设计。
文章转载自: FPGA技术联盟