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

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

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

復(fù)位那些小事—系統(tǒng)解復(fù)位的特殊處理

冬至子 ? 來源:芯時代青年 ? 作者:尼德蘭的喵 ? 2023-12-04 15:25 ? 次閱讀

解復(fù)位就是復(fù)位撤離,系統(tǒng)解復(fù)位就是復(fù)位結(jié)束了系統(tǒng)準(zhǔn)備開始工作。

前文咱們提過,復(fù)位撤離比復(fù)位要復(fù)雜一些,因為復(fù)位了大家就是一起回到初始狀態(tài)去,寄存器也不采樣了,有什么毛刺啊亞穩(wěn)態(tài)啊只要不影響其他系統(tǒng)(這個之后講)都沒關(guān)系的。這就相當(dāng)于晚上回家上床準(zhǔn)備上床睡覺,你愛穿啥衣服睡就穿啥衣服不穿也沒人管。但是解復(fù)位就不一樣了,這就是起床要出門上班了,怎么著也得準(zhǔn)備好才能出去工作,不能穿著秋褲就往外跑。

所以的對于解復(fù)位(其實也不光是解復(fù)位,局部復(fù)位本身也很危險)就需要做跟多的額外工作了,上一篇說的同步撤離之后,還有什么問題需要解決呢?

主要是復(fù)位信號到達(dá)各個寄存器的時間不一致的問題。復(fù)位信號在系統(tǒng)內(nèi)是有很大的扇出的,連接到所有需要復(fù)位的寄存器的復(fù)位端。這也就導(dǎo)致了復(fù)位在系統(tǒng)中的走線特別長,過長的走線又會導(dǎo)致工具在復(fù)位信號上增加buffer以提升驅(qū)動能力,那么如果時鐘頻率很高,復(fù)位信號最終到達(dá)各個寄存器的時間也就無法保證在同一拍。

圖片

復(fù)位走線到達(dá)各個寄存器不在同一拍會有什么后果呢?這個不能一概而論。對于一些復(fù)位解除后就開始工作的電路系統(tǒng)比如自動計數(shù)取指模塊,各個寄存器之間可能存在依賴關(guān)系,如果只部分寄存器被復(fù)位或解復(fù)位,可能會導(dǎo)致不一致的狀態(tài),從而影響系統(tǒng)的正確運行。同時呢,如果復(fù)位方案做的不好,某系統(tǒng)進(jìn)行復(fù)位時一部分復(fù)位了一部分沒有復(fù)位,也可能會產(chǎn)生毛刺被未復(fù)位的寄存器采樣,進(jìn)而輸出使能影響到其他系統(tǒng)的正常工作。

總之呢,復(fù)位走線到各個寄存器不在同一拍,可能存在系統(tǒng)穩(wěn)定性的風(fēng)險。因此在對復(fù)位還需要對系統(tǒng)的復(fù)位做一些特殊的處理。特殊的處理有哪些呢,不同的團(tuán)隊也有多種多樣的選擇,這里列舉一些我所聽聞過的方案吧。

降頻后復(fù)位。

先把時鐘降頻,再進(jìn)行復(fù)位和解復(fù)位的操作,再提頻回正常工作時鐘頻率。你不是怕復(fù)位走線到各個寄存器的時間不一致導(dǎo)致不在同一拍復(fù)位嗎?那好,我把時鐘降頻總可以吧,1GHz太快了降到500M,500M還快降到100M,100M還快到10M總可以了吧,一個周期這么長時間足夠你復(fù)位信號慢慢溜達(dá)到各個寄存器的。所以采用這種方案時,會在復(fù)位前將工作時鐘32分頻或者64分頻(取決于系統(tǒng)的面積和工作時鐘,可以算的),然后進(jìn)行復(fù)位和解復(fù)位,之后在將時鐘提頻至工作狀態(tài)。

這種方案下,可以在sdc中將復(fù)位信號設(shè)置為multicycle,檢查其在64個時鐘周期內(nèi)能夠作用到所有的寄存器復(fù)位端。

關(guān)時鐘后復(fù)位。

這個方法更徹底,怕各個寄存器看到復(fù)位和解復(fù)位的時間不一致導(dǎo)致功能錯亂?那直接把工作時鐘給關(guān)斷不久好了,反正是異步復(fù)位不用擔(dān)心沒有時鐘復(fù)位信號作用不到寄存器端。時鐘一關(guān)所有寄存器相當(dāng)于原地停工,這個時候別說復(fù)位信號了,啥信號過來都沒事,寄存器都不干了嘛。所以此時復(fù)位信號的走線也就不稱問題了,先復(fù)位再慢慢悠悠的解復(fù)位,都搞定了歇一會再把時鐘打開。

這種方案下,可以在sdc中將復(fù)位信號設(shè)置為false_path,畢竟相當(dāng)于準(zhǔn)靜態(tài)的信號,工作時復(fù)位信號不會跳變。

復(fù)位保護(hù)。

這個方法的思路是,不是擔(dān)心我這塊的復(fù)位影響其他系統(tǒng)工作嘛,那么不去處理復(fù)位和時鐘,而是把系統(tǒng)裹起來。怎么裹起來呢,把所有的對外輸出使能啊、握手啊這類信號都先和低電平與在一起,保證不管一會發(fā)生啥事,都不會有關(guān)鍵信號發(fā)生跳變。保護(hù)好之后,再去拉復(fù)位信號,過一會再解復(fù)位,再等會時間等系統(tǒng)穩(wěn)定下來了,再把保護(hù)電路解除開始正常工作。

這種方案下,也可以在sdc中將復(fù)位信號設(shè)置為false_path。

復(fù)位之后等待一定時間再開始下任務(wù)。

這個方案更多的是在任務(wù)層面看,也就是說面對解復(fù)位后可能存在的系統(tǒng)不穩(wěn)定性,先不要著急下任務(wù)下配置下指令,而是等待一定時間等系統(tǒng)中可能存在的不穩(wěn)定狀態(tài)都結(jié)束了,再開始進(jìn)入工作模式去下任務(wù)。

當(dāng)然了不是說所有系統(tǒng)都適用以上的方法,比如某個系統(tǒng)確實是解復(fù)位后就立即開始工作,那用復(fù)位保護(hù)就沒效果,因為你內(nèi)部狀態(tài)都亂了保護(hù)其他系統(tǒng)還有啥用呢。所以說還是具體問題具體分析吧,以上也只是經(jīng)驗之談難免有所疏漏。

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

    關(guān)注

    45

    文章

    878

    瀏覽量

    101541
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5294

    瀏覽量

    119816
  • SDC
    SDC
    +關(guān)注

    關(guān)注

    0

    文章

    48

    瀏覽量

    15518
收藏 人收藏

    評論

    相關(guān)推薦

    復(fù)位信號是什么意思?復(fù)位信號的作用?詳解Xilinx FPGA復(fù)位信號那些

    復(fù)位信號幾乎是除了時鐘信號外最常用的信號了,幾乎所有數(shù)字系統(tǒng)在上電的時候都會進(jìn)行復(fù)位,這樣才能保持設(shè)計者確定該系統(tǒng)系統(tǒng)模式的狀態(tài),以便于更
    的頭像 發(fā)表于 07-27 09:48 ?8080次閱讀
    <b class='flag-5'>復(fù)位</b>信號是什么意思?<b class='flag-5'>復(fù)位</b>信號的作用?詳解Xilinx FPGA<b class='flag-5'>復(fù)位</b>信號<b class='flag-5'>那些</b>事

    系統(tǒng)復(fù)位特殊處理

    復(fù)位就是復(fù)位撤離,系統(tǒng)復(fù)位就是復(fù)位結(jié)束了
    的頭像 發(fā)表于 11-28 12:20 ?905次閱讀
    <b class='flag-5'>系統(tǒng)</b><b class='flag-5'>解</b><b class='flag-5'>復(fù)位</b>的<b class='flag-5'>特殊</b><b class='flag-5'>處理</b>

    復(fù)位那些小事—典型的軟復(fù)位流程

    在聊到復(fù)位的時候總會區(qū)分兩個概念:硬復(fù)位和軟復(fù)位
    的頭像 發(fā)表于 12-04 13:46 ?2821次閱讀

    對于芯片中的復(fù)位信號我們通常會有哪些特殊處理

    經(jīng)常在面試時問到一個問題:對于芯片中的復(fù)位信號我們通常會有哪些特殊處理?這個時候我一般希望得到的回答包括:復(fù)位消抖、異步復(fù)位同步撤離、降頻
    的頭像 發(fā)表于 12-25 09:52 ?2033次閱讀
    對于芯片中的<b class='flag-5'>復(fù)位</b>信號我們通常會有哪些<b class='flag-5'>特殊</b><b class='flag-5'>處理</b>?

    復(fù)位電路沒有小事

    就麻煩了,會引起系統(tǒng)頻繁復(fù)位。復(fù)位電路要考慮快速電壓跌落問題,電路設(shè)計不合理,一個5V到4V的瞬時電壓跌落就足以導(dǎo)致復(fù)位,這個往往是人們始料不及的。
    發(fā)表于 07-03 04:20

    復(fù)位電路無小事

    復(fù)位電路無小事,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 09-18 17:15 ?0次下載

    stm32復(fù)位電路設(shè)計 淺析stm32復(fù)位電路方法

    某些系統(tǒng)允許復(fù)位,但對外設(shè)又有特殊要求:某一個IO狀態(tài)不能因為復(fù)位而改變,某一個定時器計數(shù)器不能改變等。
    發(fā)表于 08-08 11:32 ?10.1w次閱讀
    stm32<b class='flag-5'>復(fù)位</b>電路設(shè)計 淺析stm32<b class='flag-5'>復(fù)位</b>電路方法

    STM32復(fù)位來源 以及系統(tǒng)和內(nèi)核復(fù)位區(qū)別

    STM32復(fù)位來源、以及系統(tǒng)和內(nèi)核復(fù)位區(qū)別
    的頭像 發(fā)表于 02-28 17:13 ?7665次閱讀

    CM3(STM32) 內(nèi)核復(fù)位系統(tǒng)復(fù)位區(qū)別及應(yīng)用

    CM3(STM32)內(nèi)核復(fù)位系統(tǒng)復(fù)位區(qū)別及應(yīng)用
    的頭像 發(fā)表于 03-20 09:43 ?4797次閱讀
    CM3(STM32) 內(nèi)核<b class='flag-5'>復(fù)位</b>與<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>復(fù)位</b>區(qū)別及應(yīng)用

    STM32復(fù)位來源、以及系統(tǒng)和內(nèi)核復(fù)位區(qū)別

    每一塊STM32中都有這么一個RCC復(fù)位和時鐘控制模塊。STM32的復(fù)位為三類:系統(tǒng)復(fù)位、電源復(fù)位和后備域
    發(fā)表于 02-10 10:30 ?6次下載
    STM32<b class='flag-5'>復(fù)位</b>來源、以及<b class='flag-5'>系統(tǒng)</b>和內(nèi)核<b class='flag-5'>復(fù)位</b>區(qū)別

    STM32芯片的那些系統(tǒng)復(fù)位功能

    我們知道,STM32芯片里有很多系統(tǒng)級的復(fù)位,比方上電復(fù)位、欠壓復(fù)位、看門狗復(fù)位、軟件復(fù)位、
    的頭像 發(fā)表于 10-19 09:06 ?5037次閱讀

    談?wù)?b class='flag-5'>復(fù)位那些

    復(fù)位信號幾乎是除了時鐘信號外最常用的信號了,幾乎所有數(shù)字系統(tǒng)在上電的時候都會進(jìn)行復(fù)位,這樣才能保持設(shè)計者確定該系統(tǒng)系統(tǒng)模式的狀態(tài),以便于更
    的頭像 發(fā)表于 06-02 15:11 ?1894次閱讀
    談?wù)?b class='flag-5'>復(fù)位</b><b class='flag-5'>那些</b>事

    stm32軟復(fù)位 內(nèi)核復(fù)位系統(tǒng)復(fù)位

    內(nèi)核復(fù)位:它會使STM32內(nèi)核(Cortex-M)進(jìn)行復(fù)位,而不會影響其外設(shè),如GPIO、TIM、USART、SPI等這些寄存器的復(fù)位
    的頭像 發(fā)表于 08-01 17:21 ?4599次閱讀

    GD32 MCU電源復(fù)位系統(tǒng)復(fù)位有什么區(qū)別

    GD32 MCU的復(fù)位分為電源復(fù)位系統(tǒng)復(fù)位,電源復(fù)位又稱為冷復(fù)位,相較于
    的頭像 發(fā)表于 02-02 09:37 ?1398次閱讀
    GD32 MCU電源<b class='flag-5'>復(fù)位</b>和<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>復(fù)位</b>有什么區(qū)別

    STM32復(fù)位電路用復(fù)位芯片和阻容復(fù)位電路區(qū)別

    STM32是一款廣泛使用的微控制器,其復(fù)位電路設(shè)計對于系統(tǒng)的穩(wěn)定性和可靠性至關(guān)重要。本文將詳細(xì)介紹STM32復(fù)位電路中使用復(fù)位芯片和阻容復(fù)位
    的頭像 發(fā)表于 08-06 10:26 ?957次閱讀