在FPGA設(shè)計中,我們遵循的原則之一是同步電路,即所有電路是在同一時鐘下同步地處理數(shù)據(jù)。這個概念可進一步展開,即不局限于同一時鐘,只要時鐘之間是同步關(guān)系(兩者之間有明確的相位延遲,例如同一個MMCM生成的時鐘),這是因為目前的芯片規(guī)模越來越大,設(shè)計越來越復(fù)雜,往往需要多個時鐘同時運算。
通常,我們說某個信號與指定時鐘同步,意味著這個信號是由該時鐘驅(qū)動的邏輯生成的,或者這個信號只有在時鐘有效沿(一般是上升沿有效)下才會被觸發(fā)。以復(fù)位信號為例,就有同步復(fù)位和異步復(fù)位之分。我們從HDL代碼角度看一下二者的區(qū)別。如下圖所示代碼,描述的是同步復(fù)位觸發(fā)器,左側(cè)為VHDL-2008版本的描述方式,右側(cè)為System Verilog版本的描述方式。可以看到敏感變量列表(左側(cè)第15行,右側(cè)第8行)中只有時鐘clk,因此,進程中的狀態(tài)變化就依賴于時鐘的變化即時鐘有效沿。
我們再看看異步復(fù)位是如何描述的,如下圖所示。左側(cè)是VHDL-2008版本,右側(cè)是System Verilog版本。可以看到,此時敏感變量列表中除了時鐘clk之外還有復(fù)位信號rst。在VHDL版本中,可以明確地看到復(fù)位信號位于if條件分支,而時鐘有效沿位于elsif分支,優(yōu)先級低于復(fù)位信號。因此,這里只要復(fù)位有效,無論時鐘沿是否有效都會觸發(fā)操作。
進一步,我們從仿真角度看看這兩者的區(qū)別。同步復(fù)位觸發(fā)器的仿真結(jié)果如下圖所示。可以看到復(fù)位信號只有在時鐘有效沿下才起作用。圖中第二個復(fù)位脈沖并沒有被時鐘有效沿采到,故不會導(dǎo)致觸發(fā)器復(fù)位。
異步復(fù)位觸發(fā)器仿真結(jié)果如下圖所示。可以看到第二個復(fù)位脈沖盡管沒有在時鐘有效沿下,但仍促使觸發(fā)器復(fù)位。這正是異步的原理。
對比兩個仿真結(jié)果,我們可以看到同步復(fù)位的一個明顯的好處就是利用了時鐘的過濾功能,去除了復(fù)位信號上的毛刺,而異步復(fù)位下,如果復(fù)位信號有毛刺就會導(dǎo)致觸發(fā)器誤操作,這在狀態(tài)機電路中尤為嚴重,很有可能導(dǎo)致狀態(tài)機進入無效狀態(tài)。
編輯:lyn
-
仿真
+關(guān)注
關(guān)注
50文章
4124瀏覽量
134005 -
同步復(fù)位
+關(guān)注
關(guān)注
0文章
27瀏覽量
10740 -
異步復(fù)位
+關(guān)注
關(guān)注
0文章
47瀏覽量
13346
原文標題:同步復(fù)位與異步復(fù)位
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
FPGA復(fù)位的8種技巧
![FPGA<b class='flag-5'>復(fù)位</b>的8種技巧](https://file1.elecfans.com/web1/M00/F5/38/wKgaoWc4ATOAbcWyAAASgM8ghVE065.jpg)
復(fù)位電路的設(shè)計問題
![<b class='flag-5'>復(fù)位</b>電路的設(shè)計問題](https://file1.elecfans.com/web2/M00/0B/B0/wKgZomc2vfOAZ8lnAAAT7PiIvHc260.png)
復(fù)位電路的三種方式 復(fù)位電路的原理和作用
復(fù)位電路的電容多大的 復(fù)位電路設(shè)計類型有哪幾種
復(fù)位電路靜電整改案例分享(一)——交換機復(fù)位電路
![<b class='flag-5'>復(fù)位</b>電路靜電整改案例分享(一)——交換機<b class='flag-5'>復(fù)位</b>電路](https://file1.elecfans.com//web2/M00/0A/A4/wKgaomcRzPyAXQS-AADcOLWLkJk432.png)
復(fù)位電路介紹 復(fù)位電路的原理及作用
STM32復(fù)位電路用復(fù)位芯片和阻容復(fù)位電路區(qū)別
FPGA同步復(fù)位和異步復(fù)位
示波器測量復(fù)位信號的原理和方法
電容在復(fù)位電路中的作用(復(fù)位電路具體要怎么設(shè)計)
![電容在<b class='flag-5'>復(fù)位</b>電路中的作用(<b class='flag-5'>復(fù)位</b>電路具體要怎么設(shè)計)](https://file1.elecfans.com/web2/M00/C5/0A/wKgaomXxKQaAVda6AAArJwVzDmI600.png)
L431采用PLL異步時鐘,復(fù)位后ADC采樣值發(fā)生偏差的原因?
MCU復(fù)位RAM會保持嗎,如何實現(xiàn)復(fù)位時變量數(shù)據(jù)保持
![MCU<b class='flag-5'>復(fù)位</b>RAM會保持嗎,如何實現(xiàn)<b class='flag-5'>復(fù)位</b>時變量數(shù)據(jù)保持](https://file1.elecfans.com/web2/M00/C3/24/wKgaomXhMCeAQQjvAAAqcQTOVSI519.png)
ABB變頻器怎么復(fù)位 | 復(fù)位時可能會出現(xiàn)哪些問題?
![ABB變頻器怎么<b class='flag-5'>復(fù)位</b> | <b class='flag-5'>復(fù)位</b>時可能會出現(xiàn)哪些問題?](https://file1.elecfans.com/web2/M00/C1/55/wKgaomXVZSuAVEomAABPP1HiulA951.png)
什么是復(fù)位同步電路 reset synchronizer?
![什么是<b class='flag-5'>復(fù)位</b><b class='flag-5'>同步</b>電路 reset synchronizer?](https://file1.elecfans.com/web2/M00/C1/07/wKgaomXSrhGAfPFtAAAVEFTgyYI591.png)
復(fù)位電路的基本功能介紹
![<b class='flag-5'>復(fù)位</b>電路的基本功能介紹](https://file1.elecfans.com/web2/M00/A8/3E/wKgaomUskVuAYJFFAABI29sTRl8157.png)
評論