在FPGA設計中,我們遵循的原則之一是同步電路,即所有電路是在同一時鐘下同步地處理數據。這個概念可進一步展開,即不局限于同一時鐘,只要時鐘之間是同步關系(兩者之間有明確的相位延遲,例如同一個MMCM生成的時鐘),這是因為目前的芯片規模越來越大,設計越來越復雜,往往需要多個時鐘同時運算。
通常,我們說某個信號與指定時鐘同步,意味著這個信號是由該時鐘驅動的邏輯生成的,或者這個信號只有在時鐘有效沿(一般是上升沿有效)下才會被觸發。以復位信號為例,就有同步復位和異步復位之分。我們從HDL代碼角度看一下二者的區別。如下圖所示代碼,描述的是同步復位觸發器,左側為VHDL-2008版本的描述方式,右側為System Verilog版本的描述方式。可以看到敏感變量列表(左側第15行,右側第8行)中只有時鐘clk,因此,進程中的狀態變化就依賴于時鐘的變化即時鐘有效沿。

我們再看看異步復位是如何描述的,如下圖所示。左側是VHDL-2008版本,右側是System Verilog版本。可以看到,此時敏感變量列表中除了時鐘clk之外還有復位信號rst。在VHDL版本中,可以明確地看到復位信號位于if條件分支,而時鐘有效沿位于elsif分支,優先級低于復位信號。因此,這里只要復位有效,無論時鐘沿是否有效都會觸發操作。

進一步,我們從仿真角度看看這兩者的區別。同步復位觸發器的仿真結果如下圖所示。可以看到復位信號只有在時鐘有效沿下才起作用。圖中第二個復位脈沖并沒有被時鐘有效沿采到,故不會導致觸發器復位。

異步復位觸發器仿真結果如下圖所示。可以看到第二個復位脈沖盡管沒有在時鐘有效沿下,但仍促使觸發器復位。這正是異步的原理。

對比兩個仿真結果,我們可以看到同步復位的一個明顯的好處就是利用了時鐘的過濾功能,去除了復位信號上的毛刺,而異步復位下,如果復位信號有毛刺就會導致觸發器誤操作,這在狀態機電路中尤為嚴重,很有可能導致狀態機進入無效狀態。
編輯:lyn
-
仿真
+關注
關注
54文章
4482瀏覽量
138253 -
同步復位
+關注
關注
0文章
27瀏覽量
10984 -
異步復位
+關注
關注
0文章
47瀏覽量
13684
原文標題:同步復位與異步復位
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術驛站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
深度解析DS1830/A復位序列器:特性、操作與應用
探索DS1811:經濟高效的電源監控復位芯片
MAX6443–MAX6452:具備長手動復位設置周期的微處理器復位電路
CW32在不同復位方式對應的復位范圍
GraniStudio:軸復位例程
GraniStudio零代碼平臺軸復位算子支持多少個軸同時復位,有哪些回零模式?
HMC859提供復位功能和可編程輸出電壓的26 GHz 8分頻器件技術手冊
LM3724系列 低功率電壓監控和復位IC,帶手動復位功能數據手冊
TPS3840-Q1 具有手動復位和可編程復位時間延遲的汽車高輸入電壓監控器數據手冊
TPS3870-Q1 具有延時和手動復位功能的汽車級高精度過壓復位 IC數據手冊
TLV840系列 具有可調復位時間延遲和手動復位功能的低壓監控器數據手冊
關于同步復位與異步復位的仿真詳解
評論