TA的每日心情 | 开心 2019-11-19 15:19 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
异步时钟信号同步
, x" H3 }2 I" h; a( u- C! E: M' P在异步设计中,为了防止亚稳态,信号的同步是必须要进行的
/ U5 Z/ A |$ |/ V3 o* `单bit信号的同步通常是用时钟锁存的方法
5 g3 H) d$ y' [& b; G从异步的时钟频率来看,还可以细分为两小类
% d7 z$ A2 Y9 c- u% U7 g 第一类
: O/ ?. t- O7 Y: o e被同步的信号时钟域的频率比本时钟域的频率低
0 k5 s; I% l D, P( K9 h- U# {这时候可以直接通过双锁存的方法来进行同步9 _+ A7 n+ x7 f6 p0 s; Q
对于 被同步的信号时钟域的频率比本时钟域的频率高的情况 可以采用如下方法:
E. O8 A# @9 l8 ureg flag1,flag2,flag3;1 e$ X6 h" q2 @5 S H: t5 X
5 X ?% ]& `! r R; [* f wire clr;2 x( |: x9 ^( ^: b }3 w, c
assign clr=flag3 && (!flag);' l5 E( M G' @: |2 w- ?
! \& z+ i: V+ Q1 d8 L; g
always @(posedge flag or poESDge clr) //注意和 always @(posedge flag or clr) 区别 M% `0 |& j' i7 @ r! \
if(clr)
4 N9 G8 X' K n ? p( ~ flag1 <= 0;* ?$ i: ~/ `0 `, e; o2 K( Q0 |
else flag1 <=1;
# C5 I, _+ A5 i3 Q$ Q! n 3 I9 G+ ~# M2 ~! c2 t
always @(posedge clk)
' @, A& c' t0 @8 G# W _ begin
% m4 Q+ W( E+ S7 G1 K$ s flag2<=flag1;
+ }! W6 f4 z: B8 C0 U1 I flag3<=flag2;4 M) B0 K$ Y% }$ G- a
end( l0 b s( t6 Z9 w2 Q0 U; u, C# K
同用同步方法: 无论高低时钟频率,还是单bit或多bit ,都可以用RAM或FIFO同步$ U! O2 T+ T0 Y, q1 k! }
2 c$ [0 n1 o% I) q |
|