在FPGA設(shè)計(jì)中,我們遵循的原則之一是同步電路,即所有電路是在同一時(shí)鐘下同步地處理數(shù)據(jù)。這個(gè)概念可進(jìn)一步展開,即不局限于同一時(shí)鐘,只要時(shí)鐘之間是同步關(guān)系(兩者之間有明確的相位延遲,例如同一個(gè)MMCM生成的時(shí)鐘),這是因?yàn)槟壳暗?a target="_blank">芯片規(guī)模越來(lái)越大,設(shè)計(jì)越來(lái)越復(fù)雜,往往需要多個(gè)時(shí)鐘同時(shí)運(yùn)算。
通常,我們說(shuō)某個(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版本。可以看到,此時(shí)敏感變量列表中除了時(shí)鐘clk之外還有復(fù)位信號(hào)rst。在VHDL版本中,可以明確地看到復(fù)位信號(hào)位于if條件分支,而時(shí)鐘有效沿位于elsif分支,優(yōu)先級(jí)低于復(fù)位信號(hào)。因此,這里只要復(fù)位有效,無(wú)論時(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í)鐘的過(guò)濾功能,去除了復(fù)位信號(hào)上的毛刺,而異步復(fù)位下,如果復(fù)位信號(hào)有毛刺就會(huì)導(dǎo)致觸發(fā)器誤操作,這在狀態(tài)機(jī)電路中尤為嚴(yán)重,很有可能導(dǎo)致狀態(tài)機(jī)進(jìn)入無(wú)效狀態(tài)。
編輯:lyn
-
仿真
+關(guān)注
關(guān)注
50文章
4082瀏覽量
133608 -
同步復(fù)位
+關(guān)注
關(guān)注
0文章
27瀏覽量
10720 -
異步復(fù)位
+關(guān)注
關(guān)注
0文章
47瀏覽量
13314
原文標(biāo)題:同步復(fù)位與異步復(fù)位
文章出處:【微信號(hào):Lauren_FPGA,微信公眾號(hào):FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論