如何知道一個(gè)信號(hào)上升沿或下降沿是否到來?下面是一個(gè)簡單的邊沿檢測(cè)電路。

這個(gè)電路的原理很簡單。當(dāng)din上升沿或下降沿到來時(shí),din_re_fe_p產(chǎn)生一個(gè)脈沖。后續(xù)電路看到這個(gè)脈沖,就知道din上升沿或下降沿發(fā)生了。
如果din是異步輸入,前面要加一個(gè)兩級(jí)同步器(其實(shí)就是兩級(jí)DFF)。

邊沿檢測(cè)可以演化出只檢測(cè)上升沿,只檢測(cè)下降沿。

邊沿檢測(cè)電路非常有用。
例1:作為跨時(shí)鐘域同步握手信號(hào)
有一組信號(hào)data_bus,需要從clk_a同步到clk_b。如果每一個(gè)信號(hào)都經(jīng)過兩級(jí)同步器,那就太浪費(fèi)資源了。而且有時(shí)一組信號(hào)要保證所有位傳到clk_b時(shí)同時(shí)更新,就更不能用兩級(jí)同步器了。兩級(jí)同步器的latency在1到3個(gè)周期之間,有隨機(jī)性,無法保證兩個(gè)信號(hào)各自通過同步器后同時(shí)更新。
這個(gè)場(chǎng)景可以加一個(gè)簡單的握手信號(hào)data_toggle。當(dāng)clk_a這邊信號(hào)變化時(shí),data_toggle也改變狀態(tài)(0->1或1->0)。data_toggle送到clk_b,經(jīng)過兩級(jí)同步+邊沿檢測(cè)產(chǎn)生data_toggle_re_fe_p,clk_b這邊的邏輯看到data_toggle_re_fe_p脈沖后,就可以放心大膽地鎖存data_bus。

喜歡low power的朋友可以把data_toggle_re_fe_p作為ICG的EN信號(hào)。RTL寫得干凈,工具也能自動(dòng)infer ICG。
邊沿檢測(cè)輸出作為ICG EN其實(shí)是非常有用的low power技巧之一。
當(dāng)然,這個(gè)例子是很簡單地握手方式。復(fù)雜一些的可以用request,acknowledge之類的雙向握手。
clk_a送一個(gè)req=1到clk_b,告訴clk_b數(shù)據(jù)ready。
clk_b同步req并做上升沿檢測(cè)。檢測(cè)到req上升沿后鎖存數(shù)據(jù)。
clk_b發(fā)一個(gè)ack=1給clk_a,告訴clk_a數(shù)據(jù)已經(jīng)鎖存。
clk_a同步ack并做上升沿檢測(cè)。檢測(cè)到ack上升沿后清除req=0,準(zhǔn)備下一次傳數(shù)據(jù)。
clk_b這邊檢測(cè)到req下降沿,清除ack=0,準(zhǔn)備接受下一次數(shù)據(jù)。
審核編輯:黃飛
-
電路圖
+關(guān)注
關(guān)注
10482文章
10760瀏覽量
555849 -
檢測(cè)電路
+關(guān)注
關(guān)注
13文章
315瀏覽量
59672 -
同步器
+關(guān)注
關(guān)注
1文章
117瀏覽量
15669
發(fā)布評(píng)論請(qǐng)先 登錄
FPGA設(shè)計(jì)經(jīng)驗(yàn)之邊沿檢測(cè)
FPGA設(shè)計(jì)經(jīng)驗(yàn):邊沿檢測(cè)
IC數(shù)字前端設(shè)計(jì)實(shí)戰(zhàn)案例系列pdf
尋找數(shù)字前端設(shè)計(jì)的講師
[招聘] 新思科技(Synopsys)上海/西安招聘數(shù)字前端AC
fpga應(yīng)用篇(二):邊沿檢測(cè)
小白入門數(shù)字前端,求大神指教需要學(xué)什么知識(shí)以及用哪些軟件
如何去實(shí)現(xiàn)一種數(shù)字前端的設(shè)計(jì)?包括哪些步驟?
數(shù)字IC前端和后端有何區(qū)別
針對(duì)TD-SCDMA標(biāo)準(zhǔn)的數(shù)字前端解決方案
軟件無線電中的數(shù)字前端
數(shù)字前端電路:簡單的邊沿檢測(cè)電路分析
評(píng)論