哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

同步復(fù)位和異步復(fù)位到底該用哪個

FPGA研究院 ? 來源:FPGA研究院 ? 2026-04-22 09:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

開篇:復(fù)位的困惑

FPGA/數(shù)字IC設(shè)計的,平時寫得最多的可能就是復(fù)位邏輯了。但你有沒有這種感覺:看別人代碼,有的用同步復(fù)位,有的用異步復(fù)位,有的又搞什么"異步復(fù)位同步釋放"——到底該用哪個?

說起來,這兩個玩意兒看起來簡單,但要真讓你說清楚什么時候用哪個、為什么,可能還真有點含糊。今天咱就把這事兒徹底聊明白。

同步復(fù)位是怎么工作的

同步復(fù)位的意思很直接:復(fù)位信號必須等到時鐘邊沿來了才起作用。

舉個例子,你在第10ns把復(fù)位信號拉低了,但下一個時鐘沿在15ns,那寄存器要等到15ns才會被復(fù)位,中間這5ns寄存器還是保持原來的狀態(tài)。

Verilog寫起來是這樣的:

always @(posedge clk) begin if (rst) q <= 1'b0; else q <= d; end

注意看敏感列表,只有posedge clk,沒有復(fù)位信號什么事兒。復(fù)位信號本質(zhì)上被當成普通的數(shù)據(jù)輸入來處理。

異步復(fù)位是怎么工作的

異步復(fù)位就不一樣了,它有點像開關(guān)——只要復(fù)位信號一變,寄存器立馬就被復(fù)位,根本不鳥時鐘在干嘛。

這種設(shè)計的好處是"快",壞處嘛,后面再說。

always @(posedge clk or negedge rst_n) begin if (!rst_n) q <= 1'b0; else q <= d; end

敏感列表里多了個negedge rst_n,這就是異步的意思——復(fù)位信號一變,邏輯立刻響應(yīng)。

兩種復(fù)位到底該怎么選

按我的經(jīng)驗,別急著下結(jié)論,先看看各自的脾氣。

對比維度 同步復(fù)位 異步復(fù)位
響應(yīng)速度 慢(等時鐘沿) 快(即時生效)
資源消耗 可能更多(LUT實現(xiàn)) 更少(用專用端口
抗毛刺能力 強(時鐘沿過濾) 弱(毛刺直接觸發(fā))
亞穩(wěn)態(tài)風險 有(釋放時刻)
時鐘依賴 強依賴 不依賴
時序分析 簡單 復(fù)雜

什么時候用同步復(fù)位

其實選同步復(fù)位的情況還挺多的:

1.高速設(shè)計:當你的時鐘跑到100MHz往上,異步復(fù)位的亞穩(wěn)態(tài)風險就變得很突出。這種時候老老實實用同步復(fù)位,時序收斂也更容易。

2.狀態(tài)機:狀態(tài)機的復(fù)位時機必須精準,否則可能出現(xiàn)"半復(fù)位"狀態(tài)——有些寄存器復(fù)位的早,有些晚,狀態(tài)機直接卡死。同步復(fù)位能保證所有寄存器在同一拍復(fù)位。

3.多時鐘域系統(tǒng):跨時鐘域的復(fù)位信號必須各自同步,否則輕則亞穩(wěn)態(tài),重則整個系統(tǒng)亂套。

4.毛刺敏感的環(huán)境:如果你PCB上復(fù)位走線很長,或者環(huán)境電磁干擾嚴重,同步復(fù)位的"過濾"特性能幫你擋住不少麻煩。

什么時候用異步復(fù)位

異步復(fù)位也不是一無是處,這些場景它就是香:

1.上電復(fù)位:系統(tǒng)上電的時候時鐘可能還沒穩(wěn)定呢,這時候需要強制把所有寄存器搞成已知狀態(tài)。異步復(fù)位正好不挑食,有電就能干活。

2.看門狗/緊急復(fù)位:出過事兒需要立即清零的場景,等一個時鐘周期可能就是災(zāi)難。異步復(fù)位立竿見影。

3.低速簡單邏輯:如果你的設(shè)計跑個幾十MHz,用異步復(fù)位問題不大,而且還能省點資源。

4.時鐘可能停止的場景:比如低功耗模式下把時鐘關(guān)了,同步復(fù)位這時候就歇菜了,但異步復(fù)位還能用。

實際設(shè)計中的最佳實踐

光知道什么時候用還不夠,實戰(zhàn)中還有個黃金法則:異步復(fù)位,同步釋放

啥意思呢?復(fù)位到來的時候,異步生效——保證快速響應(yīng);復(fù)位撤銷的時候,必須跟時鐘同步——避免亞穩(wěn)態(tài)。

1406f3a4-3ddb-11f1-90a1-92fbcf53809c.jpg

坑在這里:很多人以為復(fù)位"生效"才重要,其實更危險的是"釋放"時刻。如果復(fù)位釋放的時候剛好在時鐘沿附近,不同寄存器可能,有的已經(jīng)退出復(fù)位,有的還在復(fù)位里,系統(tǒng)直接進入"半初始化"狀態(tài),后果不堪設(shè)想。

具體怎么實現(xiàn)?兩級寄存器打拍同步:

always @(posedge clk or negedge rst_async_n) if (!rst_async_n) begin rst_sync1 <= 1'b0; rst_sync2 <= 1'b0; end else begin rst_sync1 <= 1'b1; rst_sync2 <= rst_sync1; end assign rst_sync_n = rst_sync2;

147f4c00-3ddb-11f1-90a1-92fbcf53809c.jpg

第一級D端接的是1,不是接的復(fù)位信號。這個小細節(jié)很關(guān)鍵——只有復(fù)位釋放的那一刻,第一級才會被拉高,然后再過一拍同步出去。這樣設(shè)計最省資源,也是業(yè)界標準做法。

真實案例分享

說個我之前踩過的坑吧。

有個項目,用的是異步復(fù)位,設(shè)計的時候圖省事兒,所有模塊都直接用外部復(fù)位信號。結(jié)果有個模塊的復(fù)位信號釋放在時鐘沿附近,引發(fā)了亞穩(wěn)態(tài)。

問題來了:功能仿真沒問題,時序仿真也過了,但上板子就是不穩(wěn)定,有時候能跑幾個小時,有時候幾分鐘就掛。

最后怎么修的?老老實實加了兩級同步器,給復(fù)位信號做了"異步復(fù)位同步釋放"。之后再也沒出過問題。

所以啊,別覺得自己設(shè)計簡單就不做同步化。異步復(fù)位的亞穩(wěn)態(tài)問題是概率性的,不是不報,時候未到。

總結(jié)一下

其實這個問題沒有標準答案,關(guān)鍵看場景:

高速、時序敏感、多時鐘域——用同步復(fù)位;

上電初始化、緊急復(fù)位、時鐘可能停止——用異步復(fù)位,但要記得同步釋放;

復(fù)雜系統(tǒng)——通常采用混合策略,各模塊根據(jù)需求選擇合適的復(fù)位方式。

記住,復(fù)位設(shè)計雖然基礎(chǔ),但它往往是系統(tǒng)穩(wěn)定性的基石。別圖一時省事兒,后面的debug會讓你懷疑人生。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5619

    瀏覽量

    130391
  • 同步復(fù)位
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    10987
  • 異步復(fù)位
    +關(guān)注

    關(guān)注

    0

    文章

    48

    瀏覽量

    13701

原文標題:同步復(fù)位和異步復(fù)位,什么時候用哪個,說清楚才算懂

文章出處:【微信號:FPGA研究院,微信公眾號:FPGA研究院】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Xilinx FPGA異步復(fù)位同步釋放—同步后的復(fù)位該當作同步復(fù)位還是異步復(fù)位

    針對異步復(fù)位、同步釋放,一直沒搞明白在使用同步化以后的復(fù)位信號時,到底是使用
    發(fā)表于 06-21 09:59 ?2401次閱讀
    Xilinx FPGA<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b><b class='flag-5'>同步</b>釋放—<b class='flag-5'>同步</b>后的<b class='flag-5'>復(fù)位</b>該當作<b class='flag-5'>同步</b><b class='flag-5'>復(fù)位</b>還是<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b>?

    異步復(fù)位同步撤離是什么意思?如何做到異步復(fù)位同步撤離呢?

    復(fù)位消抖之后的下一件事,[異步復(fù)位]()同步撤離。這句話什么意思呢?
    的頭像 發(fā)表于 12-04 13:57 ?6915次閱讀
    <b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b><b class='flag-5'>同步</b>撤離是什么意思?如何做到<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b><b class='flag-5'>同步</b>撤離呢?

    同步復(fù)位異步復(fù)位到底孰優(yōu)孰劣呢

    異步復(fù)位,同步釋放的理解目錄目錄同步復(fù)位異步復(fù)位
    發(fā)表于 01-17 07:01

    同步復(fù)位異步復(fù)位有什么聯(lián)系與區(qū)別,優(yōu)缺點!

     異步復(fù)位原理:異步復(fù)位只要有復(fù)位信號系統(tǒng)馬上復(fù)位,因此異步
    發(fā)表于 11-30 08:45 ?10w次閱讀
    <b class='flag-5'>同步</b><b class='flag-5'>復(fù)位</b>和<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b>有什么聯(lián)系與區(qū)別,優(yōu)缺點!

    FPGA設(shè)計中的異步復(fù)位同步釋放問題

    異步復(fù)位同步釋放 首先要說一下同步復(fù)位異步復(fù)位的區(qū)
    發(fā)表于 06-07 02:46 ?2649次閱讀

    如何區(qū)分同步復(fù)位異步復(fù)位?

    問:如何區(qū)分同步復(fù)位異步復(fù)位?可以理解為同步復(fù)位是作用于狀態(tài),然后通過狀態(tài)來驅(qū)動電路
    的頭像 發(fā)表于 06-11 15:15 ?7562次閱讀

    Xilinx FPGA的同步復(fù)位異步復(fù)位

    對于xilinx 7系列的FPGA而言,flip-flop支持高有效的異步復(fù)/置位和同步復(fù)位/置位。對普通邏輯設(shè)計,同步復(fù)位
    發(fā)表于 07-13 09:31 ?7724次閱讀

    同步復(fù)位異步復(fù)位電路簡介

    同步復(fù)位異步復(fù)位都是狀態(tài)機的常用復(fù)位機制,圖1中的復(fù)位電路結(jié)合了各自的優(yōu)點。
    的頭像 發(fā)表于 08-12 15:20 ?8589次閱讀
    <b class='flag-5'>同步</b><b class='flag-5'>復(fù)位</b>和<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b>電路簡介

    同步復(fù)位異步復(fù)位的優(yōu)缺點和對比說明

    同步復(fù)位:顧名思義,同步復(fù)位就是指復(fù)位信號只有在時鐘上升沿到來時,才能有效。否則,無法完成對系統(tǒng)的復(fù)位
    發(fā)表于 09-14 08:00 ?0次下載
    <b class='flag-5'>同步</b><b class='flag-5'>復(fù)位</b>和<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b>的優(yōu)缺點和對比說明

    詳細講解同步后的復(fù)位同步復(fù)位還是異步復(fù)位?

    針對異步復(fù)位、同步釋放,一直沒搞明白在使用同步化以后的復(fù)位信號時,到底是使用
    的頭像 發(fā)表于 04-27 18:12 ?5979次閱讀
    詳細講解<b class='flag-5'>同步</b>后的<b class='flag-5'>復(fù)位</b>是<b class='flag-5'>同步</b><b class='flag-5'>復(fù)位</b>還是<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b>?

    【FPGA】異步復(fù)位同步釋放的理解

    異步復(fù)位,同步釋放的理解目錄目錄 同步復(fù)位異步復(fù)位
    發(fā)表于 01-17 12:53 ?4次下載
    【FPGA】<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b>,<b class='flag-5'>同步</b>釋放的理解

    同步復(fù)位異步復(fù)位的區(qū)別

    請簡述同步復(fù)位異步復(fù)位的區(qū)別,說明兩種復(fù)位方式的優(yōu)缺點,并解釋“異步
    的頭像 發(fā)表于 08-14 11:49 ?8980次閱讀

    淺析異步復(fù)位同步釋放與同步復(fù)位打拍模塊

    異步復(fù)位同步釋放:rst_synchronizer.v
    的頭像 發(fā)表于 08-21 09:27 ?1970次閱讀
    淺析<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b><b class='flag-5'>同步</b>釋放與<b class='flag-5'>同步</b><b class='flag-5'>復(fù)位</b>打拍模塊

    同步復(fù)位異步復(fù)位到底孰優(yōu)孰劣呢?

    同步復(fù)位異步復(fù)位到底孰優(yōu)孰劣呢? 同步復(fù)位
    的頭像 發(fā)表于 01-16 16:25 ?2939次閱讀

    FPGA同步復(fù)位異步復(fù)位

    FPGA(Field-Programmable Gate Array,現(xiàn)場可編程門陣列)中的復(fù)位操作是設(shè)計過程中不可或缺的一環(huán),它負責將電路恢復(fù)到初始狀態(tài),以確保系統(tǒng)的正確啟動和穩(wěn)定運行。在FPGA設(shè)計中,復(fù)位方式主要分為同步
    的頭像 發(fā)表于 07-17 11:12 ?3721次閱讀
    湄潭县| 安庆市| 河北区| 长岭县| 松阳县| 凉城县| 神木县| 资中县| 洞口县| 三门县| 治多县| 竹溪县| 满城县| 凭祥市| 壶关县| 镇远县| 开鲁县| 惠东县| 军事| 雅安市| 松原市| 乐至县| 铜山县| 永胜县| 木兰县| 纳雍县| 方山县| 确山县| 易门县| 五台县| 将乐县| 林周县| 大城县| 章丘市| 苍溪县| 五家渠市| 临沭县| 安岳县| 花莲市| 孝感市| 昌都县|