對于從FPGA外部進(jìn)來的信號,我們通常采用“異步復(fù)位同步釋放的策略”,具體電路如下圖所示。圖中src_arst是輸入異步復(fù)位信號,dest_arst是同步釋放的異步復(fù)位信號,其后負(fù)載為需要異步復(fù)位的觸發(fā)器。
從時序關(guān)系的角度來看,結(jié)合如下仿真波形,異步復(fù)位信號在藍(lán)色標(biāo)記的時鐘上升沿被釋放,所有觸發(fā)器將在紅色邊沿開始輸出D端口數(shù)據(jù)。
問題是如果后續(xù)觸發(fā)器公眾在不同的時鐘頻率下,這種方式是否仍能確保所有觸發(fā)器的異步復(fù)位信號在同一個時鐘上升沿被釋放?為便于說明,我們假定設(shè)計(jì)中有兩個時鐘,分別為100MHz和200MHz,均有同一個MMCM/PLL生成,即二者是同步時鐘(同相不同頻)。
第一種情況:同步器工作在100MHz時鐘的上升沿
在這種情況下,假定異步復(fù)位在標(biāo)記(1)被釋放,那么200M時鐘域下的觸發(fā)器將在標(biāo)記(3)開始輸出D端數(shù)據(jù),而100M時鐘域下的觸發(fā)器則要在標(biāo)記(5)開始輸出D端數(shù)據(jù),顯然,兩者并沒有在同一個時鐘沿下開始工作。
第二種情況:同步器工作在200MHz時鐘的上升沿
在這種情況下,如果異步復(fù)位是在標(biāo)記(3)釋放,那么100M時鐘域下的觸發(fā)器和200M時鐘域下的觸發(fā)器都將在標(biāo)記(5)結(jié)束復(fù)位,開始輸出D端口數(shù)據(jù)。
但是,如果復(fù)位是在標(biāo)記(1)釋放,如下圖所示,100M時鐘域下的觸發(fā)器將在標(biāo)記(5)輸出D端口數(shù)據(jù),而200M時鐘域下的觸發(fā)器將在標(biāo)記(3)輸出D端口數(shù)據(jù)。
第三種情況:同步器工作在100MHz時鐘的下降沿
在這種情況下,同步器工作在100MHz時鐘的下降沿,但后續(xù)觸發(fā)器仍工作在時鐘的上升沿。如下圖所示。異步復(fù)位在標(biāo)記(3)釋放,那么100M時鐘域下的觸發(fā)器將在標(biāo)記(5)開始輸出D端口數(shù)據(jù),200M時鐘域下的觸發(fā)器也在此刻輸出D端口數(shù)據(jù),故兩者可以在同一個時刻開始釋放復(fù)位正常工作。
如果兩個時鐘是異步時鐘,都要使用外部提供的同一個復(fù)位信號,這時無法做到這兩個時鐘域下的觸發(fā)器實(shí)現(xiàn)復(fù)位信號同步釋放。這是因?yàn)檫@兩個時鐘之間沒有明確的相位關(guān)系,這就造成同步器引發(fā)的延遲差是不確定的。這種情況下,我們需要對每個時鐘域添加同步器,生成各自時鐘域下的復(fù)位信號,如下圖所示。
審核編輯:劉清
-
FPGA
+關(guān)注
關(guān)注
1629文章
21736瀏覽量
603419 -
pll
+關(guān)注
關(guān)注
6文章
776瀏覽量
135163 -
時鐘
+關(guān)注
關(guān)注
10文章
1733瀏覽量
131483 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2000瀏覽量
61158 -
同步器
+關(guān)注
關(guān)注
1文章
98瀏覽量
14637 -
異步復(fù)位
+關(guān)注
關(guān)注
0文章
47瀏覽量
13315 -
PLL電路
+關(guān)注
關(guān)注
0文章
92瀏覽量
6408
原文標(biāo)題:異步復(fù)位同步釋放有多個時鐘域時如何處理
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論