<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

聊聊寄存器被優化的2種情況

冬至子 ? 來源:IC的世界 ? 作者:IC小鴿 ? 2023-09-08 15:09 ? 次閱讀

在項目初期,在使用FPGA工具quartus或者vivado生成版本燒入開發板進行調試時(DC開啟優化選項后同樣會優化掉寄存器),我們有時會發現部分寄存器被優化掉了,今天簡單聊聊被優化的幾種情況。

1、寄存器被優化的原因

目前鴿子發現寄存器被優化的原因主要有兩種:

1)驅動寄存器的信號沒有驅動源

a. 至少有一個信號沒有驅動源,也可能是多個

2)寄存器負載是懸空的,包含如下場景

a. 寄存器的唯一負載時懸空

b. 寄存器的所有負載均懸空

部分場景下被優化的問題很好排查,有些場景排查會比較麻煩,僅僅從信號連線上看都是正常的,無法通過肉眼快速發現問題,這時候需要去看綜合報告,找到問題的源頭。

image.png

2、案例--大量寄存器被優化

如下圖所示,crm是復制產生時鐘復位的模塊,其中輸出clka/clka_rst_n給模塊a,其中輸出clkb/clkb_rst_n給模塊b。Soft_reset_n是clka_rst_n和clkb_rst_n的源頭之一。Soft_reset_n為0,則clka_rst_n/clkb_rst_n為0,處于復制狀態。Soft_reset_n是配置讀寫模塊CSR的一個可配置寄存器,其內部偏移地址為0x60。

通過quartus/vivado查看網表結構和資源利用率,我們發現模塊A和模塊B大量資源被優化,不符合常理。經過檢測發現,所有信號連接均正常,沒有懸空,所有信號均存在負載。

經過反復排查后發現,CSR模塊被手動添加的Soft_reset_n寄存器地址分配在0x60,而CSR入口wr_addr[5:0]只有6bit,只能訪問0x40以內的地址范圍,因此Soft_reset_n在實際網表中是不存在的,導致clka_rst_n/clkb_rst_n都沒有驅動源,因此模塊A和模塊B大量資源被優化。

image.png

3、推薦檢查方法

在進行FPGA版本調試之前,首先進行spyglass lint檢查 或者檢查quartus/vivado產生的綜合報告,檢查是否存在如下warning:

  • 信號沒有驅動
  • 信號懸空

把這些warning確認完后再進行版本調試。

4、簡單的規律

大量模塊邏輯被優化,重點看時鐘復位

少量模塊邏輯被優化,重點看資源獨享的驅動信號。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1608

    文章

    21358

    瀏覽量

    594369
  • 驅動器
    +關注

    關注

    51

    文章

    7532

    瀏覽量

    143510
  • 寄存器
    +關注

    關注

    30

    文章

    5141

    瀏覽量

    118055
  • CSR
    CSR
    +關注

    關注

    3

    文章

    117

    瀏覽量

    69458
  • Vivado
    +關注

    關注

    18

    文章

    791

    瀏覽量

    65316
收藏 人收藏

    評論

    相關推薦

    解析CPU中的寄存器

    8位寄存器在16位寄存器中,而16位寄存器在32位寄存器中。
    發表于 09-19 10:10 ?3039次閱讀

    ARM開發中幾個常見的寄存器詳解

    筆者今天來聊聊對于ARM幾個特殊寄存器的理解,FP、SP和LR。
    發表于 11-22 09:02 ?3197次閱讀

    寄存器是什么?怎么操作寄存器點亮LED燈?

    寄存器,是集成電路中非常重要的一種存儲單元,通常由觸發器組成。在集成電路設計中,寄存器可分為電路內部使用的寄存器和充當內外部接口的寄存器這兩類。
    的頭像 發表于 07-21 16:59 ?3119次閱讀
    <b class='flag-5'>寄存器</b>是什么?怎么操作<b class='flag-5'>寄存器</b>點亮LED燈?

    寄存器

    的內存。同時,所有的內存操作指令 默認情況下都用它指定操作段(實模式)或內存(作為選擇,在保護模式。這個寄存器可以裝入任意數值,然而在這么做的時候需要小心一些。方法是,首先把數據送
    發表于 08-27 11:17

    請問能提供Fmcomms2開發板一個優化好的寄存器配置情況說明嗎

    就Fmcomms開發板,能不能提供一個優化好的寄存器配置情況說明,我這里主要是想用這塊Demo板實現Qam64的自發自收
    發表于 11-02 09:32

    寄存器與移位寄存器

    寄存器與移位寄存器 寄存器是用來寄存數碼的邏輯部件,所以必須具備接收和寄存數碼的功能。任何一種觸發器都可以構成
    發表于 03-12 15:19 ?59次下載

    寄存器,寄存器是什么意思

    寄存器,寄存器是什么意思 寄存器定義  寄存器是中央處理器內的組成部分。寄存器是有限存貯容量的高速存貯部件,它們可用
    發表于 03-08 14:26 ?2.1w次閱讀

    數據寄存器,數據寄存器是什么意思

    數據寄存器,數據寄存器是什么意思 數據寄存器數據寄存器包括累加器AX、基址寄存器BX、計數寄存器
    發表于 03-08 14:38 ?1.2w次閱讀

    32位寄存器,32位寄存器是什么意思

    32位寄存器,32位寄存器是什么意思  從X8086開始學了一年,第一個ASM的程序就是變32換16進制的程序,不過現在叫我從新開始寫ASM程
    發表于 03-08 17:26 ?1.7w次閱讀

    基于FPGA的可變長度移位寄存器優化設計

    本文以最大可變長度為N、寬度為1bit的移位寄存器為模型,討論如何從結構上優化可變長度移位寄存器和有效的FPGA實現。至于寬度不為1bit的情況,可以此類推
    發表于 07-23 10:55 ?5127次閱讀
    基于FPGA的可變長度移位<b class='flag-5'>寄存器</b><b class='flag-5'>優化</b>設計

    寄存器與移位寄存器

    寄存器與移位寄存器:介紹寄存器原理和移位寄存器的原理及實現。
    發表于 05-20 11:47 ?0次下載

    51寄存器的所有寄存器名稱,(包括寄存器每一位的作用及用法)資源詳解

    51寄存器的所有寄存器名稱,(包括寄存器每一位的作用及用法)資源詳解
    發表于 10-16 13:04 ?14次下載
    51<b class='flag-5'>寄存器</b>的所有<b class='flag-5'>寄存器</b>名稱,(包括<b class='flag-5'>寄存器</b>每一位的作用及用法)資源詳解

    新版IAR調試查看寄存器問題 STM8代碼大小優化問題

    新版IAR調試查看寄存器問題、STM8代碼大小優化問題
    的頭像 發表于 03-07 16:13 ?3419次閱讀

    ARM通用寄存器及狀態寄存器詳解

    筆者來聊聊ARM通用寄存器以及狀態寄存器的認識與理解。
    的頭像 發表于 01-06 14:58 ?5280次閱讀

    淺談寄存器優化的原因

    在項目初期,在使用FPGA工具quartus或者vivado生成版本燒入開發板進行調試時(DC開啟優化選項后同樣會優化寄存器),我們有時會發現部分寄存器
    的頭像 發表于 09-26 09:47 ?618次閱讀
    淺談<b class='flag-5'>寄存器</b>被<b class='flag-5'>優化</b>的原因
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>