精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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
    +關注

    關注

    1626

    文章

    21667

    瀏覽量

    601862
  • 驅動器
    +關注

    關注

    52

    文章

    8156

    瀏覽量

    146019
  • 寄存器
    +關注

    關注

    31

    文章

    5317

    瀏覽量

    120010
  • CSR
    CSR
    +關注

    關注

    3

    文章

    118

    瀏覽量

    69598
  • Vivado
    +關注

    關注

    19

    文章

    808

    瀏覽量

    66327
收藏 人收藏

    評論

    相關推薦

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

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

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

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

    寄存器與移位寄存器

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

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

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

    寄存器的作用有哪些?

    寄存器的作用有哪些? 寄存器用途  1.可將寄存器內的數據執行算術及邏輯運算;  2.存于寄存器內的地址可用來指向
    發表于 03-08 14:35 ?1.6w次閱讀

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

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

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

    移位寄存器,移位寄存器是什么意思 移位寄存器_
    發表于 03-08 14:50 ?1.7w次閱讀

    寄存器培訓教程

    寄存器培訓教程 7.4.1 寄存器1.定義2.電路舉例 3.邏輯功能分析7.4.2 移位寄存器一、單向移位寄存器㈠ 由4個維持阻塞D觸發
    發表于 03-08 14:52 ?1233次閱讀

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

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

    寄存器與移位寄存器

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

    STM32學習筆記(2)——寄存器

    STM32 第二天寄存器寄存器功能:寄存器的功能是存儲二進制代碼,它是由具有存儲功能的觸發組合起來構成的。一個觸發可以存儲1位二進制代碼
    發表于 12-08 17:36 ?18次下載
    STM32學習筆記(<b class='flag-5'>2</b>)——<b class='flag-5'>寄存器</b>

    配置STM32寄存器控制GPIO點亮LED

    STM32點亮LED 寄存器方式IO簡介1、每個IO可以自由編程,但是IO口寄存器必須按照32位字訪問。2、每個IO端口都有7個寄存器來控
    發表于 01-13 16:15 ?3次下載
    配置STM32<b class='flag-5'>寄存器</b>控制GPIO點亮LED

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

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

    淺談寄存器優化的原因

    在項目初期,在使用FPGA工具quartus或者vivado生成版本燒入開發板進行調試時(DC開啟優化選項后同樣會優化寄存器),我們有時會發現部分寄存器
    的頭像 發表于 09-26 09:47 ?1149次閱讀
    淺談<b class='flag-5'>寄存器</b><b class='flag-5'>被</b><b class='flag-5'>優化</b>的原因

    寄存器分為基本寄存器和什么兩

    寄存器是計算機中用于存儲數據的高速存儲單元,它們是CPU內部的重要組成部分。寄存器可以分為基本寄存器和擴展寄存器兩種類型。 一、基本寄存器
    的頭像 發表于 07-12 10:31 ?1128次閱讀