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

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

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

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

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

書接上文嗷接上文。

芯片設(shè)計】復(fù)位那些小事 —— 異步復(fù)位,同步撤離

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

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

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

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

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

復(fù)位走線到達(dá)各個寄存器不在同一拍會有什么后果呢?這個不能一概而論。對于一些復(fù)位解除后就開始工作的電路系統(tǒng)比如自動計數(shù)取指模塊,各個寄存器之間可能存在依賴關(guān)系,如果只部分寄存器被復(fù)位或解復(fù)位,可能會導(dǎo)致不一致的狀態(tài),從而影響系統(tǒng)的正確運(yùn)行。同時呢,如果復(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)確實(shí)是解復(fù)位后就立即開始工作,那用復(fù)位保護(hù)就沒效果,因?yàn)槟銉?nèi)部狀態(tài)都亂了保護(hù)其他系統(tǒng)還有啥用呢。所以說還是具體問題具體分析吧,以上也只是經(jīng)驗(yàn)之談難免有所疏漏。

審核編輯:湯梓紅

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

    關(guān)注

    31

    文章

    5271

    瀏覽量

    119649
  • 時鐘
    +關(guān)注

    關(guān)注

    10

    文章

    1701

    瀏覽量

    131187
  • 復(fù)位
    +關(guān)注

    關(guān)注

    0

    文章

    169

    瀏覽量

    24159
  • 復(fù)位信號
    +關(guān)注

    關(guān)注

    0

    文章

    53

    瀏覽量

    6285

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    基于Xilinx FPGA的復(fù)位信號處理

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

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

    復(fù)位就是復(fù)位撤離,系統(tǒng)復(fù)位就是復(fù)位結(jié)束了
    的頭像 發(fā)表于 12-04 15:25 ?1431次閱讀
    <b class='flag-5'>復(fù)位</b>那些小事—<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ù)位信號我們通常會有哪些特殊處理?

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

    請問ADUC7060的復(fù)位電路有特殊要求嗎?

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

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

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

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

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

    特殊尺寸機(jī)器人的位置反算法

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

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

    某些系統(tǒng)允許復(fù)位,但對外設(shè)又有特殊要求:某一個IO狀態(tài)不能因?yàn)?b class='flag-5'>復(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 ?7608次閱讀

    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 ?4735次閱讀
    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學(xué)習(xí)筆記 | 引起電源和系統(tǒng)異常復(fù)位的原因

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

    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 ?4944次閱讀

    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 ?4506次閱讀

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

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