| 
 | 
 
 
发表于 2018-7-7 20:19:23
|
显示全部楼层
 
 
 
回复 1# wangyu135792  
 
初学时,也曾困惑过;我来回答一下吧。 
 
    
         
            - icg_user icg_00 (//
 
 -                 .EN(enable),
 
 -                 .CLK(clk),
 
 -                 .GCLK(gclk));
 
 - wire gclk_and = enable & clk;
 
          
     
    复制代码  
 
 
我例化了一个ICG,输出信号是gclk, 示意图如下所示: 
    
    
            
             
            
            
            
 
同时,也用与逻辑作了简单的gating,输出信号是gclk_and; 
 
    
    
            glitch 
             
            
            
            
 
 
可以看出,如果用and gate来gating clock,那么enable 信号在高电平拉起来时,会出来一个毛刺; 
 
但是icg 就不会存在这种问题,因为经过一级negative level sensitive latch 之后,enable 信号就必定会在低电平之后才会拉起来; 
 
结合仿真图比较一下,应该就能明白了。 |   
 
 
 
 |