在FPGA設(shè)計(jì)中,我們遵循的原則之一是同步電路,即所有電路是在同一時(shí)鐘下同步地處理數(shù)據(jù)。這個(gè)概念可進(jìn)一步展開,即不局限于同一時(shí)鐘,只要時(shí)鐘之間是同步關(guān)系(兩者之間有明確的相位延遲,例如同一個(gè)MMCM生成的時(shí)鐘),這是因?yàn)槟壳暗男酒?guī)模越來越大,設(shè)計(jì)越來越復(fù)雜,往往需要多個(gè)時(shí)鐘同時(shí)運(yùn)算。
通常,我們說某個(gè)信號(hào)與指定時(shí)鐘同步,意味著這個(gè)信號(hào)是由該時(shí)鐘驅(qū)動(dòng)的邏輯生成的,或者這個(gè)信號(hào)只有在時(shí)鐘有效沿(一般是上升沿有效)下才會(huì)被觸發(fā)。以復(fù)位信號(hào)為例,就有同步復(fù)位和異步復(fù)位之分。我們從HDL代碼角度看一下二者的區(qū)別。如下圖所示代碼,描述的是同步復(fù)位觸發(fā)器,左側(cè)為VHDL-2008版本的描述方式,右側(cè)為System Verilog版本的描述方式??梢钥吹矫舾凶兞苛斜恚ㄗ髠?cè)第15行,右側(cè)第8行)中只有時(shí)鐘clk,因此,進(jìn)程中的狀態(tài)變化就依賴于時(shí)鐘的變化即時(shí)鐘有效沿。

我們?cè)倏纯串惒綇?fù)位是如何描述的,如下圖所示。左側(cè)是VHDL-2008版本,右側(cè)是System Verilog版本??梢钥吹剑藭r(shí)敏感變量列表中除了時(shí)鐘clk之外還有復(fù)位信號(hào)rst。在VHDL版本中,可以明確地看到復(fù)位信號(hào)位于if條件分支,而時(shí)鐘有效沿位于elsif分支,優(yōu)先級(jí)低于復(fù)位信號(hào)。因此,這里只要復(fù)位有效,無論時(shí)鐘沿是否有效都會(huì)觸發(fā)操作。

進(jìn)一步,我們從仿真角度看看這兩者的區(qū)別。同步復(fù)位觸發(fā)器的仿真結(jié)果如下圖所示。可以看到復(fù)位信號(hào)只有在時(shí)鐘有效沿下才起作用。圖中第二個(gè)復(fù)位脈沖并沒有被時(shí)鐘有效沿采到,故不會(huì)導(dǎo)致觸發(fā)器復(fù)位。

異步復(fù)位觸發(fā)器仿真結(jié)果如下圖所示??梢钥吹降诙€(gè)復(fù)位脈沖盡管沒有在時(shí)鐘有效沿下,但仍促使觸發(fā)器復(fù)位。這正是異步的原理。

對(duì)比兩個(gè)仿真結(jié)果,我們可以看到同步復(fù)位的一個(gè)明顯的好處就是利用了時(shí)鐘的過濾功能,去除了復(fù)位信號(hào)上的毛刺,而異步復(fù)位下,如果復(fù)位信號(hào)有毛刺就會(huì)導(dǎo)致觸發(fā)器誤操作,這在狀態(tài)機(jī)電路中尤為嚴(yán)重,很有可能導(dǎo)致狀態(tài)機(jī)進(jìn)入無效狀態(tài)。
編輯:lyn
-
仿真
+關(guān)注
關(guān)注
55文章
4531瀏覽量
138642 -
同步復(fù)位
+關(guān)注
關(guān)注
0文章
27瀏覽量
10987 -
異步復(fù)位
+關(guān)注
關(guān)注
0文章
47瀏覽量
13701
原文標(biāo)題:同步復(fù)位與異步復(fù)位
文章出處:【微信號(hào):Lauren_FPGA,微信公眾號(hào):FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
為何跨復(fù)位域問題是危險(xiǎn)的“芯片殺手”
SGM4075-1電池脫離及冷復(fù)位開關(guān):設(shè)計(jì)與應(yīng)用詳解
SGM823A:集復(fù)位、看門狗和手動(dòng)復(fù)位功能于一體的微處理器監(jiān)控電路
SGM823:集成復(fù)位、看門狗和手動(dòng)復(fù)位功能的微處理器監(jiān)控電路
深入剖析SGM800:低功耗微處理器復(fù)位電路的卓越之選
SGM802:低功耗微處理器復(fù)位電路的理想之選
SGM804:低功耗微處理器復(fù)位電路的理想之選
探索DS1811:經(jīng)濟(jì)高效的電源監(jiān)控復(fù)位芯片
MAX6443–MAX6452:具備長(zhǎng)手動(dòng)復(fù)位設(shè)置周期的微處理器復(fù)位電路
CW32在不同復(fù)位方式對(duì)應(yīng)的復(fù)位范圍
用于穩(wěn)定電源設(shè)計(jì)的復(fù)位IC應(yīng)用實(shí)例
求助,為什么studio 仿真debug 沒有復(fù)位建?
GraniStudio:軸復(fù)位例程
GraniStudio零代碼平臺(tái)軸復(fù)位算子支持多少個(gè)軸同時(shí)復(fù)位,有哪些回零模式?
復(fù)位電路的核心功能和主要類型
關(guān)于同步復(fù)位與異步復(fù)位的仿真詳解
評(píng)論