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

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

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

系統(tǒng)解復位的特殊處理

路科驗證 ? 來源: 芯時代青年 ? 2023-11-28 12:20 ? 次閱讀

書接上文嗷接上文。

芯片設計】復位那些小事 —— 異步復位,同步撤離

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

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

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

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

c484e618-8da3-11ee-939d-92fbcf53809c.png

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

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

降頻后復位。

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

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

關時鐘后復位。

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

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

復位保護。

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

這種方案下,也可以在sdc中將復位信號設置為false_path。

復位之后等待一定時間再開始下任務。

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

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

審核編輯:湯梓紅

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

    關注

    31

    文章

    5294

    瀏覽量

    119814
  • 時鐘
    +關注

    關注

    10

    文章

    1713

    瀏覽量

    131274
  • 復位
    +關注

    關注

    0

    文章

    169

    瀏覽量

    24182
  • 復位信號
    +關注

    關注

    0

    文章

    53

    瀏覽量

    6291

原文標題:【芯片設計】復位那些小事 —— 系統(tǒng)解復位的特殊處理

文章出處:【微信號:Rocker-IC,微信公眾號:路科驗證】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于Xilinx FPGA的復位信號處理

    作者:NingHeChuan Get Smart About Reset: Think Local, Not Global。 對于復位信號的處理,為了方便我們習慣上采用全局復位,博主在很長一段時間
    的頭像 發(fā)表于 12-25 12:08 ?2557次閱讀
    基于Xilinx FPGA的<b class='flag-5'>復位</b>信號<b class='flag-5'>處理</b>

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

    復位就是復位撤離,系統(tǒng)復位就是復位結(jié)束了
    的頭像 發(fā)表于 12-04 15:25 ?1519次閱讀
    <b class='flag-5'>復位</b>那些小事—<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>解</b><b class='flag-5'>復位</b>的<b class='flag-5'>特殊</b><b class='flag-5'>處理</b>

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

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

    請問ADUC7060的復位電路有特殊要求嗎?

    復位,按復位鍵也不能復位;接上JLINK后(沒有進行下載和仿真)上電可以正常復位,但是按復位鍵卻不能夠正常
    發(fā)表于 11-16 09:49

    復位系統(tǒng)組成部件

    復位(內(nèi)核軟復位):將Cortex-M4內(nèi)核的應用中斷和復位控制寄存器(SCB_AIRCR)中的SYSRESEREQ(sys_reset_eq)位 置1在以下三種情況下會產(chǎn)生內(nèi)核復位
    發(fā)表于 08-02 10:35

    引起處理器和系統(tǒng)復位的原因有哪些呢

    關注+星標公眾號,不錯過精彩內(nèi)容每一塊處理器都有復位的功能,不同處理復位的類型可能有差異,引起復位的原因也可能有多種。STM32的
    發(fā)表于 01-17 07:34

    特殊尺寸機器人的位置反算法

    針對特殊尺寸串聯(lián)機器人的種類較多,每一個機器人單獨編程,求解比較繁瑣,尚沒有統(tǒng)一運動學計算方法的問題,嘗試利用一般6R 機器人的位置反程序進行求解。通過把特殊尺寸進
    發(fā)表于 06-24 17:33 ?35次下載
    <b class='flag-5'>特殊</b>尺寸機器人的位置反<b class='flag-5'>解</b>算法

    stm32復位電路設計 淺析stm32復位電路方法

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

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

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

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

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

    STM32學習筆記 | 引起電源和系統(tǒng)異常復位的原因

    關注+星標公眾號,不錯過精彩內(nèi)容每一塊處理器都有復位的功能,不同處理復位的類型可能有差異,引起復位的原因也可能有多種。STM32的
    發(fā)表于 01-17 12:45 ?2次下載
    STM32學習筆記 | 引起電源和<b class='flag-5'>系統(tǒng)</b>異常<b class='flag-5'>復位</b>的原因

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

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

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

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

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

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

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

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