1 什么是Setup 和Holdup时间?&nBSP;
* u0 S+ g- Y; H0 A' l建立时间(Setup Time)和保持时间(Hold time)。建立时间是指在时钟边沿前,数据信号需要保持不变的时间。保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。$ t" n: l/ F1 o" N/ ?
如果不满足建立和保持时间的话,那么DFF将不能正确地采样到数据,将会出现METAstability的情况。 如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。
: d6 Y' A, | y/ S3 U6 L$ P9 P1 d: v* n e8 ?& W' m; i
2什么是竞争与冒险现象?怎样判断?如何消除? + z% y( G/ _' _
在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。 产生毛刺叫冒险。 如果布尔式中有相反的信号则可能产生竞争和冒险现象。 解决方法: ) X# C7 S+ f' G: l! |
( @/ J4 C5 K; p
4 z" ^5 l8 F6 }$ I. X: g一是添加布尔式的消去项,二是在芯片外部加电容。 3 用D触发器实现2倍分频的逻辑电路? Verilog描述: , w$ m. }6 U# i A9 e" S! N
* O7 p9 Z: G0 g- m+ ]/ o
+ ?3 l4 L- H* `/ M- Zmodule divide2( clk , clk_o, reset); input clk , reset; output clk_o; wire in; reg out
# G5 J( [/ Y: U# v always @ ( posEDGE clk or posedge reset) if ( reset) out <= 0; else
2 d! N) j6 [# ~: k7 U6 u) I out <= in; assign in = ~out; assign clk_o = out; endmodule \5 B3 H) m8 c9 T. H
|