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

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

說起來(lái),這兩個(gè)玩意兒看起來(lái)簡(jiǎn)單,但要真讓你說清楚什么時(shí)候用哪個(gè)、為什么,可能還真有點(diǎn)含糊。今天咱就把這事兒徹底聊明白。

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

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

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

Verilog寫起來(lái)是這樣的:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

具體怎么實(shí)現(xiàn)??jī)杉?jí)寄存器打拍同步:

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

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

真實(shí)案例分享

說個(gè)我之前踩過的坑吧。

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

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

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

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

總結(jié)一下

其實(shí)這個(gè)問題沒有標(biāo)準(zhǔn)答案,關(guān)鍵看場(chǎng)景:

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

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

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

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

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

    關(guān)注

    31

    文章

    5619

    瀏覽量

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

    關(guān)注

    0

    文章

    28

    瀏覽量

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

    關(guān)注

    0

    文章

    48

    瀏覽量

    13701

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

    針對(duì)異步復(fù)位、同步釋放,一直沒搞明白在使用同步化以后的復(fù)位信號(hào)時(shí),到底是使用
    發(fā)表于 06-21 09:59 ?2402次閱讀
    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>該當(dāng)作<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 ?6916次閱讀
    <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)缺點(diǎn)!

     異步復(fù)位原理:異步復(fù)位只要有復(fù)位信號(hào)系統(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)缺點(diǎn)!

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

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

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

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

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

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

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

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

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

    同步復(fù)位:顧名思義,同步復(fù)位就是指復(fù)位信號(hào)只有在時(shí)鐘上升沿到來(lái)時(shí),才能有效。否則,無(wú)法完成對(duì)系統(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)缺點(diǎn)和對(duì)比說明

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

    針對(duì)異步復(fù)位、同步釋放,一直沒搞明白在使用同步化以后的復(fù)位信號(hào)時(shí),到底是使用
    的頭像 發(fā)表于 04-27 18:12 ?5979次閱讀
    詳細(xì)講解<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ū)別

    請(qǐng)簡(jiǎn)述同步復(fù)位異步復(fù)位的區(qū)別,說明兩種復(fù)位方式的優(yōu)缺點(diǎn),并解釋“異步
    的頭像 發(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)場(chǎng)可編程門陣列)中的復(fù)位操作是設(shè)計(jì)過程中不可或缺的一環(huán),它負(fù)責(zé)將電路恢復(fù)到初始狀態(tài),以確保系統(tǒng)的正確啟動(dòng)和穩(wěn)定運(yùn)行。在FPGA設(shè)計(jì)中,復(fù)位方式主要分為同步
    的頭像 發(fā)表于 07-17 11:12 ?3722次閱讀
    诏安县| 阿勒泰市| 西平县| 三河市| 华池县| 龙游县| 屏山县| 彭阳县| 开原市| 襄城县| 榕江县| 南木林县| 太原市| 湖州市| 樟树市| 常宁市| 齐齐哈尔市| 清丰县| 五台县| 满洲里市| 汤原县| 湖州市| 宁强县| 瑞丽市| 邻水| 萍乡市| 庆安县| 曲水县| 金寨县| 玛曲县| 嘉黎县| 泰顺县| 涞源县| 同仁县| 平江县| 镇沅| 加查县| 永泰县| 藁城市| 于都县| 荔浦县|