<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天內不再提示

介紹一個IC設計錯誤案例:可讀debug寄存器錯誤跨時鐘

ruikundianzi ? 來源:IC芯視界 ? 2024-03-11 15:56 ? 次閱讀

本文將介紹一個跨時鐘錯誤的案例如圖所示,phy_status作為一個多bit的phy_clk時鐘域的信號,需要輸入csr模塊作為一個可讀狀態寄存器,目的是方便debug,而csr模塊是sys_clk時鐘域,此時phy_status需要進行跨時鐘,得到sys_clk時鐘域的phy_status_sync送到csr模塊。

phy_rst_n是由上電復位釋放模塊產生的phy_clk時鐘域的復位信號,在上電處理流程的初期phy_rst_n一直是0,處于復位狀態,上電解復位流程進行到一定階段后才會將phy_rst_n置為1。

74d5c5e4-df7c-11ee-a297-92fbcf53809c.png ? ? ? ? ?

ip_bus_sync跨時鐘模塊接口信號如下: 本模塊的特點就是只有輸入數據,沒有vld信號。

phy_clk作為源時鐘(i_src_clk),而phy_rst_n作為源時鐘域復位信號(i_src_rst_n)。

sys_clk作為目的時鐘(i_dst_clk),而sys_rst_n作為源時鐘域復位信號(i_dst_rst_n)。

NOTE: 需要注意的是在在源時鐘復位phy_rst_n為0時,輸出的o_dst_dout(phy_status_sync)是跨時鐘模塊Ip_bus_sync的復位值(每bit都是0)

信號名稱 信號IO 位寬 說明
i_src_clk in 1 源端時鐘
i_src_rst_n in 1 源時鐘域的復位信號,0表示復位。根據代碼實現不同,可以是同步復位,也可以是異步復位
i_src_din in 1 源時鐘域bus信號
i_dst_clk in 1 目的端時鐘
i_dst_rst_n in 1 目的時鐘域的復位信號,0表示復位。根據代碼實現不同,可以是同步復位,也可以是異步復位
o_dst_dout out DATA_WDTH 已完成跨時鐘的bus信號

錯誤設計:設計中將phy_status作為一個可讀狀態寄存器,本意是想在上電解復位流程出現異常的時候,能夠讀出phy_status的數值,從而進行分析上電流程異常的原因。而在部分場景中,一旦phy_rst_n沒有從0跳變成1時,此時phy_status_sync為0,無法獲取phy_status的真實數值 。

正確設計:本文場景中應該采用無復位的跨時鐘模塊進行實現,如果存在可用的無復位多bit跨時鐘模塊,可以直接采用,否則可以考慮采用多個無復位的bit跨時鐘模塊實現。雖然采用多個無復位的bit跨時鐘模塊實現多bit跨時鐘可能存在重匯聚問題,但是此場景中,一旦出現上電解復位異常,phy_status信號通常是處于穩定狀態,多bit跨時鐘重匯聚問題將不會存在。




審核編輯:劉清

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

    關注

    30

    文章

    5141

    瀏覽量

    118055
  • IC設計
    +關注

    關注

    37

    文章

    1275

    瀏覽量

    103145
  • PHY
    PHY
    +關注

    關注

    2

    文章

    270

    瀏覽量

    51243
  • CLK
    CLK
    +關注

    關注

    0

    文章

    123

    瀏覽量

    16935

原文標題:IC設計錯誤案例:可讀debug寄存器錯誤跨時鐘

文章出處:【微信號:IP與SoC設計,微信公眾號:IP與SoC設計】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    請問AD7799狀態寄存器讀取錯誤,數據位與錯誤位關系?

    ,狀態寄存器讀數有兩種狀態8A(1000 1010)與4A(0100 1010),按照官方DataSheet,第位判斷數據準備狀態,第二位是錯誤位,8A數據沒有準備好,未報錯,4A數據準備好了,但是提醒報錯,是怎么回事?還是數
    發表于 07-27 06:47

    如何處理使用另一個寄存器引用寄存器中的位的錯誤?

    數據 輸出reg [7:0] spi_out, 輸出reg [(NUM_REG)* 8 - 1:0]寄存器);spi_out我以為這是允許的......我錯過了什么?有沒有更好的方法來做到這點?我看到的唯選擇是
    發表于 07-31 07:23

    時鐘域為什么要雙寄存器同步

    出現了題目中的時鐘域的同步問題?怎么辦?十年不變的老難題。為了獲取穩定可靠的異步時鐘域送來的信號,種經典的處理方式就是雙寄存器同步處理(
    發表于 08-20 11:32

    如何處理好FPGA設計中時鐘域問題?

    第二級寄存器的延拍,所以意義是不大的。02方法二:異步雙口 RAM處理多 bit 數據的時鐘域,般采用異步雙口?RAM。假設我們現在有
    發表于 09-22 10:24

    SysTick寄存器介紹

    設置系統時鐘SYSCLK 等于72M。當重裝載數值寄存器的值遞減到0 的時候,系統定時就產生次中斷,以此循環往復。SysTick 寄存器
    發表于 01-21 11:37

    256bits用戶密鑰寄存器, 是不是普通的可讀寄存器?

    看了說明書,有地方不是很明白 256bits 用戶密鑰寄存器, 是不是普通的可讀寄存器?如果哪樣的話理論上解密者跟據原代碼,可以找到密
    發表于 05-26 07:37

    AD7799狀態寄存器讀取錯誤是怎么回事?

    ,狀態寄存器讀數有兩種狀態8A(1000 1010)與4A(0100 1010),按照官方DataSheet,第位判斷數據準備狀態,第二位是錯誤位,8A數據沒有準備好,未報錯,4A數據準備好了,但是提醒報錯,是怎么回事?還是數
    發表于 12-08 06:52

    GD32硬件中斷錯誤寄存器及相應位功能

    本文描述的是GD32硬件中斷錯誤的所有寄存器以及相應的位功能。
    發表于 08-28 15:32 ?10次下載

    PCIe總線的三種錯誤報告方式

    PCIe設備的配置空間中的狀態與控制寄存器如上圖所示,通過這些寄存器可以使能(或禁止)通過錯誤消息(Error Message)發送錯誤報告、查詢
    的頭像 發表于 08-23 10:14 ?1.4w次閱讀
    PCIe總線的三種<b class='flag-5'>錯誤</b>報告方式

    51單片機的寄存器組詳細介紹和使用說明

    大家都知道51單片機有的寄存器R0-R7共有四組。最近1年來,我在與新手朋友交流時發現,很多朋友對寄存器組的使用時經常出現問題。雖然這并不是多難的問題,但如果出現錯誤,也會造成很嚴重的后果。首先
    發表于 07-05 17:41 ?6次下載
    51單片機的<b class='flag-5'>寄存器</b>組詳細<b class='flag-5'>介紹</b>和使用說明

    Debug】串口發送數據時部分字節被拉長,出現幀錯誤,原因MCU進入低功耗模式導致串口時鐘停了!...

    Debug】串口發送數據時部分字節被拉長,出現幀錯誤,原因MCU進入低功耗模式導致串口時鐘停了!...
    發表于 12-07 20:21 ?7次下載
    【<b class='flag-5'>Debug</b>】串口發送數據時部分字節被拉長,出現幀<b class='flag-5'>錯誤</b>,原因MCU進入低功耗模式導致串口<b class='flag-5'>時鐘</b>停了!...

    為調試寄存器 DBGDRAR 設置的值錯誤

    每個 RPU 處理器都有 1 個 DBGDRAR 寄存器,其中包含 CoreSight 根 ROM 表的地址。但讀取此寄存器時會返回錯誤的地址 0xfe800003。正確的返回地址應為 0xf0800003。嘗試訪問包含
    的頭像 發表于 08-02 15:57 ?782次閱讀

    Efinity在Debug時會出現UUID mismatch錯誤案例分享

    Efinity在Debug時會出現UUID mismatch錯誤。很多剛開始使用的人經常遇到。
    的頭像 發表于 02-20 10:56 ?1279次閱讀
    Efinity在<b class='flag-5'>Debug</b>時會出現UUID mismatch<b class='flag-5'>錯誤</b>案例分享

    你一定要懂的CDC錯誤

    本文描述的跨時鐘錯誤在特定場景下,有些是允許的,甚至有些是正常設計。因此IC設計者想要確認跨時鐘錯誤需要分析應用場景。
    的頭像 發表于 07-24 17:00 ?2006次閱讀
    你一定要懂的CDC<b class='flag-5'>錯誤</b>

    STM32 CAN接收/發送錯誤寄存器如何清零?

    STM32 CAN接收/發送錯誤寄存器如何清零?? CAN總線是一種常用的串行總線,其具有高可靠性、高速率、容錯能力強等特點,廣泛應用于汽車電子、制造業自動化、工程控制等領域。在CAN總線的標準
    的頭像 發表于 09-14 14:22 ?3263次閱讀
    亚洲欧美日韩精品久久_久久精品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>