RM新时代网站-首页

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

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

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

聊聊寄存器被優(yōu)化的2種情況

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

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

1、寄存器被優(yōu)化的原因

目前鴿子發(fā)現(xiàn)寄存器被優(yōu)化的原因主要有兩種:

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

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

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

a. 寄存器的唯一負(fù)載時懸空

b. 寄存器的所有負(fù)載均懸空

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

image.png

2、案例--大量寄存器被優(yōu)化

如下圖所示,crm是復(fù)制產(chǎn)生時鐘復(fù)位的模塊,其中輸出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,處于復(fù)制狀態(tài)。Soft_reset_n是配置讀寫模塊CSR的一個可配置寄存器,其內(nèi)部偏移地址為0x60。

通過quartus/vivado查看網(wǎng)表結(jié)構(gòu)和資源利用率,我們發(fā)現(xiàn)模塊A和模塊B大量資源被優(yōu)化,不符合常理。經(jīng)過檢測發(fā)現(xiàn),所有信號連接均正常,沒有懸空,所有信號均存在負(fù)載。

經(jīng)過反復(fù)排查后發(fā)現(xiàn),CSR模塊被手動添加的Soft_reset_n寄存器地址分配在0x60,而CSR入口wr_addr[5:0]只有6bit,只能訪問0x40以內(nèi)的地址范圍,因此Soft_reset_n在實際網(wǎng)表中是不存在的,導(dǎo)致clka_rst_n/clkb_rst_n都沒有驅(qū)動源,因此模塊A和模塊B大量資源被優(yōu)化。

image.png

3、推薦檢查方法

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

  • 信號沒有驅(qū)動
  • 信號懸空

把這些warning確認(rèn)完后再進行版本調(diào)試。

4、簡單的規(guī)律

大量模塊邏輯被優(yōu)化,重點看時鐘復(fù)位

少量模塊邏輯被優(yōu)化,重點看資源獨享的驅(qū)動信號。

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

    關(guān)注

    1629

    文章

    21729

    瀏覽量

    602986
  • 驅(qū)動器
    +關(guān)注

    關(guān)注

    52

    文章

    8226

    瀏覽量

    146251
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5336

    瀏覽量

    120230
  • CSR
    CSR
    +關(guān)注

    關(guān)注

    3

    文章

    118

    瀏覽量

    69627
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    812

    瀏覽量

    66470
收藏 人收藏

    評論

    相關(guān)推薦

    ARM開發(fā)中幾個常見的寄存器詳解

    筆者今天來聊聊對于ARM幾個特殊寄存器的理解,F(xiàn)P、SP和LR。
    發(fā)表于 11-22 09:02 ?4109次閱讀

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

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

    寄存器與移位寄存器

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

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

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

    寄存器的作用有哪些?

    寄存器的作用有哪些? 寄存器用途  1.可將寄存器內(nèi)的數(shù)據(jù)執(zhí)行算術(shù)及邏輯運算;  2.存于寄存器內(nèi)的地址可用來指向
    發(fā)表于 03-08 14:35 ?1.6w次閱讀

    數(shù)據(jù)寄存器,數(shù)據(jù)寄存器是什么意思

    數(shù)據(jù)寄存器,數(shù)據(jù)寄存器是什么意思 數(shù)據(jù)寄存器數(shù)據(jù)寄存器包括累加AX、基址寄存器BX、計數(shù)
    發(fā)表于 03-08 14:38 ?1.3w次閱讀

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

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

    寄存器培訓(xùn)教程

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

    基于FPGA的可變長度移位寄存器優(yōu)化設(shè)計

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

    寄存器與移位寄存器

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

    STM32學(xué)習(xí)筆記(2)——寄存器

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

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

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

    ARM通用寄存器及狀態(tài)寄存器詳解

    筆者來聊聊ARM通用寄存器以及狀態(tài)寄存器的認(rèn)識與理解。
    的頭像 發(fā)表于 01-06 14:58 ?7142次閱讀

    淺談寄存器優(yōu)化的原因

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

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

    寄存器是計算機中用于存儲數(shù)據(jù)的高速存儲單元,它們是CPU內(nèi)部的重要組成部分。寄存器可以分為基本寄存器和擴展寄存器兩種類型。 一、基本寄存器
    的頭像 發(fā)表于 07-12 10:31 ?1311次閱讀
    RM新时代网站-首页