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

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

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

修改寄存器默認(rèn)值有幾種方法?

jf_78858299 ? 來(lái)源:NanDigits ? 作者:NanDigits ? 2023-05-05 14:28 ? 次閱讀

一、DFF的類(lèi)型介紹

寄存器默認(rèn)值,也叫復(fù)位值,是當(dāng)reset或者set有效時(shí)寄存器輸出的值。對(duì)于一個(gè)DFF來(lái)說(shuō),如下圖,當(dāng)reset為0時(shí),Q輸出0;當(dāng)set為0時(shí),Q輸出為1(外部使用時(shí)保證reset與set不同時(shí)為0)。

也就是說(shuō),當(dāng)需要復(fù)位值為1時(shí),把set拉低;當(dāng)需要復(fù)位值為0時(shí),把reset拉低,如下圖。一般來(lái)說(shuō)寄存器的默認(rèn)值不是1就是0,所以接死掉的reset和set pin就可以省掉。

(圖二)

因此,stdcell庫(kù)里的dff可以分成以下幾種:

  • DFFSR,同時(shí)帶set和reset pin
  • DFFR,只帶reset pin
  • DFFS,只帶set pin

另外,QN是Q的取反,很多時(shí)候只需要用到其中的一個(gè),所以QN也不一定有??偨Y(jié)成下表:

帶QN 不帶QN
DFFSRN DFFSR
DFFRN DFFR
DFFSN DFFS

(表一)

二、修改默認(rèn)值的方法

方法一:如果DFF同時(shí)帶RN和SN,交換RN和SN的連線

這種方法最簡(jiǎn)單,premask和postmask eco都適用。但一般自動(dòng)綜合工具是不會(huì)同時(shí)用同時(shí)帶RN和SN的DFF的,因?yàn)檫@樣面積不是最優(yōu)。所以需要在綜合階段人為強(qiáng)制讓綜合工具只用同時(shí)帶RN和SN的DFF,如果面積不是瓶頸的情況下。

方法二:如果只帶RN或者SN,換DFF類(lèi)型(Premask ECO)

在Premask ECO時(shí),我們完全可以像重新綜合的網(wǎng)表一樣直接換DFF類(lèi)型。這種方法對(duì)于premask eco非常友好,不需要增加邏輯單元,也不會(huì)惡化時(shí)序。

方法三:如果只帶RN或者SN,互換DFF(Postmask ECO)

在Postmask ECO時(shí),我們沒(méi)辦法隨意替換DFF類(lèi)型。因?yàn)镈FF的個(gè)數(shù)和類(lèi)型是固定的,這時(shí)只能修改金屬層。

如果修改默認(rèn)值的兩個(gè)dff,一個(gè)需要“0變1”,另一個(gè)需要“1變0”,且這兩個(gè)dff物理位置很近,那么可以互換這兩個(gè)dff的連線。如果是同一個(gè)時(shí)鐘域、復(fù)位域,那么就只需要交換D、RN(SN)、Q/QN這三組pin。

這個(gè)方法除了上面提到的限制,還有如果“0變1”和“1變0”的dff個(gè)數(shù)不相等,那么就無(wú)法完全交換成功。

方法四:如果只帶RN或者SN,D和Q端插inverter(Postmask ECO)

這是一種普遍適用的方法,只需要在D和Q端各插一個(gè)inverter。如果帶QN,又可以省一個(gè)inverter。如下圖,通過(guò)反相器可以等價(jià)變換只帶RN或SN的DFF。

(圖三)

(圖四)

這種替換方法操作簡(jiǎn)單,易實(shí)現(xiàn),不會(huì)帶來(lái)連線擁擠,利于DRC收斂。因?yàn)椴恍枰薷臅r(shí)鐘pin,不會(huì)動(dòng)到時(shí)鐘樹(shù),只需要數(shù)據(jù)通路插入一個(gè)inverter,所以對(duì)時(shí)序影響也非常小。

但這個(gè)方法也會(huì)帶來(lái)一個(gè)問(wèn)題,就是在做LEC(邏輯等價(jià)性檢查)時(shí),需要讓工具開(kāi)啟phase inversion的檢測(cè),不然會(huì)報(bào)很多虛假non equal。

三、使用GOF來(lái)自動(dòng)修改寄存器的默認(rèn)值

方法二:換DFF類(lèi)型(Premask ECO)

set_top("digital_top");
run_lec;
fix_design();
run_lec();
report_eco;

GOF默認(rèn)就是用換DFF類(lèi)型的方法,所以自動(dòng)ECO腳本比較簡(jiǎn)潔,讀進(jìn)library和design后,先run_lec確認(rèn)待eco的點(diǎn)是否正確,接下來(lái)做ECO,做完后再運(yùn)行一次run_lec確認(rèn)是否eco成功。

方法四:D和Q端插inverter(Postmask ECO)

set_top("digital_top");
set_flop_default_eco(1);
run_lec;
fix_design();
set_top("digital_top");
set_mapping_method("-phase");
run_lec();
report_eco;

與方法二相比,需要設(shè)置修改寄存器的方式后,再做ECO。做完ECO后需要設(shè)置phase inversion,讓工具自動(dòng)檢測(cè)phase inversion的keypoint,以防虛假的non equal。

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

    關(guān)注

    31

    文章

    5255

    瀏覽量

    119315
  • reset
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    12835
  • SET
    SET
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    7915
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如果使用HSM更改SMU寄存器默認(rèn)值

    功能被禁用,它會(huì)在重置觸發(fā)后直接跳轉(zhuǎn)到引導(dǎo)加載程序軟件,Tricore 安全手冊(cè)中預(yù)計(jì)會(huì)有 SUM 寄存器默認(rèn)值,如下所示。 所以我懷疑 HSM 內(nèi)核的使用是否會(huì)影響 SMU 模塊或 SMU 寄存器? 任何建議都會(huì)對(duì)我
    發(fā)表于 01-29 06:31

    AD7195配置寄存器默認(rèn)值與實(shí)際不同

    急求:AD7195配置寄存器默認(rèn)值0X000117 +-39.06mv,實(shí)際0X000116實(shí)際測(cè)量范圍+-78.125。G0位修改后,還是0。
    發(fā)表于 01-15 06:37

    什么不能修改寄存器

    各位有沒(méi)有用過(guò)ADS131E08,為什么不能修改寄存器,01h CONFIG1 ,03h CONFIG3,修改之后就停止工作了。下面是讀出的各個(gè)寄存器0x01: 0x930x02:
    發(fā)表于 06-20 15:30

    修改PRIMASK寄存器方法

    除NMI和HardFalut外的所有異常和中斷。修改PRIMASK寄存器方法兩種匯編使用CPS指令
    發(fā)表于 08-13 07:20

    寄存器更新的幾種方法介紹

    2 處理模型2.5 寄存器2.5.3 寄存器更新幾種方法可以用來(lái)更新寄存器。通常,當(dāng)使用指令
    發(fā)表于 12-09 07:29

    怎樣將LIS3DH寄存器的內(nèi)容重置為開(kāi)機(jī)默認(rèn)值呢?

    我正在使用 LIS3DH 加速度計(jì)。我想通過(guò)軟件方法將所有寄存器內(nèi)容重置為開(kāi)機(jī)默認(rèn)值。我知道重啟電源會(huì)將寄存器的內(nèi)容重置為默認(rèn)值,但我正在尋
    發(fā)表于 12-22 06:04

    IMX6在啟動(dòng)時(shí)寄存器并不總是默認(rèn)值的原因?

    的狀態(tài)。例如:我將 SD4 的 DCD gpio 設(shè)置為0x0001D020,但是當(dāng)設(shè)備掉到 USB 時(shí)我 0x000070F0。它不是默認(rèn)值 ( 0x0001B0B0 )。 您可以看到兩個(gè)
    發(fā)表于 03-31 06:31

    可以修改單片機(jī)寄存器默認(rèn)值嗎?

    可以修改單片機(jī)寄存器默認(rèn)值
    發(fā)表于 10-23 07:20

    使用FPGA通過(guò)SPI總線控制AD9266寄存器,可以回讀寄存器默認(rèn)值,但是無(wú)法改變寄存器怎么解決?

    使用FPGA通過(guò)SPI總線控制AD9266寄存器,可以回讀寄存器默認(rèn)值,但是無(wú)法改變寄存器。 不知道有沒(méi)有人遇到過(guò)同樣的問(wèn)題。 程序是
    發(fā)表于 12-13 08:29

    AD2S1210修改寄存器中的閾值對(duì)位置碼的準(zhǔn)確性會(huì)有影響嗎?

    AD2S1210中很多故障閾值設(shè)置的地方,比如DOS超量程、LOS上下限等等,這些閾值都可以在寄存器中設(shè)置。我們?cè)谑褂脮r(shí)沒(méi)有修改過(guò)這些閾值,但發(fā)現(xiàn)經(jīng)常報(bào)故障,但位置碼也能采回來(lái)。
    發(fā)表于 12-18 07:31

    STM32單片機(jī)修改寄存器的位操作方法(全網(wǎng)最全)

    使用 C語(yǔ)言對(duì)寄存器賦值時(shí),我們常常要求只修改寄存器的某幾位的,且其它的寄存器位不變,這個(gè)時(shí)候我們就需要用到 C 語(yǔ)言的位操作
    發(fā)表于 11-19 09:06 ?33次下載
    STM32單片機(jī)<b class='flag-5'>修改寄存器</b>的位操作<b class='flag-5'>方法</b>(全網(wǎng)最全)

    修改寄存器默認(rèn)值方法

    寄存器默認(rèn)值,也叫復(fù)位,是當(dāng)reset或者set有效時(shí)寄存器輸出的。對(duì)于一個(gè)DFF來(lái)說(shuō),如下圖,當(dāng)reset為0時(shí),Q輸出0;當(dāng)set為
    的頭像 發(fā)表于 09-28 14:13 ?1327次閱讀

    修改寄存器默認(rèn)值方法哪些

    寄存器默認(rèn)值,也叫復(fù)位,是當(dāng)reset或者set有效時(shí)寄存器輸出的。對(duì)于一個(gè)DFF來(lái)說(shuō),如下圖,當(dāng)reset為0時(shí),Q輸出0;當(dāng)set為
    的頭像 發(fā)表于 01-30 16:30 ?2152次閱讀
    <b class='flag-5'>修改寄存器</b><b class='flag-5'>默認(rèn)值</b>的<b class='flag-5'>方法</b><b class='flag-5'>有</b>哪些

    應(yīng)用筆記|直接修改寄存器來(lái)輸出內(nèi)部時(shí)鐘的方法

    關(guān)鍵字:MCO,手動(dòng)修改寄存器 目錄預(yù)覽 1 在特殊情況下使能 MCO 功能的方法 2 具體實(shí)現(xiàn) 3 總結(jié) 1. 在特殊情況下使能 MCO 功能的方法 在對(duì)某些不容易復(fù)現(xiàn)的問(wèn)題進(jìn)行代碼調(diào)時(shí),需要觀察
    的頭像 發(fā)表于 06-13 17:35 ?813次閱讀
    應(yīng)用筆記|直接<b class='flag-5'>修改寄存器</b>來(lái)輸出內(nèi)部時(shí)鐘的<b class='flag-5'>方法</b>

    直接修改寄存器來(lái)輸出內(nèi)部時(shí)鐘的方法

    電子發(fā)燒友網(wǎng)站提供《直接修改寄存器來(lái)輸出內(nèi)部時(shí)鐘的方法.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 15:43 ?0次下載
    直接<b class='flag-5'>修改寄存器</b>來(lái)輸出內(nèi)部時(shí)鐘的<b class='flag-5'>方法</b>