摘自 何宾著《XilinxFPGA设计权威指南》P86~P91
同步电路和异步电路的区别在于电路触发是否与驱动时钟同步,从行为上讲,就是所有电路是否在同一时钟沿下同步地处理数据。
同步复位和异步复位电路是同步电路和异步电路中两个典型的逻辑单元。在同步复位电路中,当复位信号有效时,必须要等到时钟沿有效时,才能处理复位信号相关逻辑行为;而在异步复位电路中,当复位信号有效时,立即处理复位信号相关逻辑行为。
在实际的数字系统中,常存在多时钟源驱动多逻辑单元的情况。因此实际的数字系统应该是一个异步的系统。对于这样的系统,可以采用先局部同步处理,然后对全局异步单元加入同步化处理机制来实现。
下面给出异步复位的VerilogHDL描述:
always @(posedge clk or posedge RST)
if(RST)
Q<=1'b0;
else
Q<=A|(B&C&D&E);
下面给出同步复位的VerilogHDL描述:
always @(posedge clk)
if(RST)
Q<=1'b0;
else
Q<=A|(B&C&D&E);
困扰我多久的同步和异步的区别终于理解了,仔细读读上面文字,对比下面代码应该就很好理解了。