全局复位及局部复位设计

时间:2008-09-12

  随着FPGA设计越来越复杂,芯片内部的时钟域也越来越多,使全局复位已不能够适应FPGA设计的需求,更多的设计趋向于使用局部的复位。本节将会从FPGA内部复位“树”的结构来分析复位的结构。

  我们的复位线将会是一个和时钟一样多扇出的网络,如此多的扇出,时钟信号是采用全局时钟网络的,那么复位如何处理?有人提出用全局时钟网络来传递复位信号,但是在FPGA设计中,这种方法还是有其弊端。一是无法解决复位结束可能造成的时序问题,因为全局网络的延时较大,并且不可以直接连到寄存器的复位端。仍然需要局部走线,这对于时序要求紧张的场合,较难满足时序;二是会占用全局时钟资源,多个复位信号会占用更多的全局时钟资源。

  在这里提出一个区域化复位的方案,如图1所示。外部的异步复位信号被二级寄存器同步化之后,复制不同的复位寄存器连到不同的模块来作为复位控制。如果单个模块的复位扇出太大的话,还可以在模块内部复制复位寄存器。强烈建议那些在datapath上不需要复位的寄存器不要在代码中复位,因为这样会增加复位信号的扇出,并增加逻辑资源和降低逻辑速度。

  对于那些有多个时钟区域,需要多个时钟区域内独立复位的设计由多个同步化的寄存器的模块来完成同步,然后送到各模块进行复位。

  当然,对于选择同步化的异步复位的方案,也可以如图2所示来安排复位。将复位信号转换成同步后送到不同的模块,在各模块中进行同步化处理,各模块完成自己的本地复位。

模块化复位

  图1模块化复位

同步化异步复位之模块化复位

  图2 同步化异步复位之模块化复位

  综合本节说明的复位路径设计,推荐采用局部复位,即各模块或多个模块采用自己的独立复位信号。
  


  
上一篇:同步复位及异步复位设计
下一篇:逻辑器件的同步设计

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料