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

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

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

3天內不再提示

芯片設計之CDC異步電路分析(五)

全棧芯片工程師 ? 來源:全棧芯片工程師 ? 2024-02-23 18:23 ? 次閱讀

1CDC常見錯誤

1.1Reconvergence

6ca2977a-d235-11ee-a297-92fbcf53809c.png

1.1.1single_source_reconvergence

6cb13596-d235-11ee-a297-92fbcf53809c.png

結構:同一個信號源頭,兩個同步處理器。這里提一下,有兩個CDC分析工具的參數配置:

6cec29a8-d235-11ee-a297-92fbcf53809c.png

1.1.2案列1:divergence_depths為0

// divergence point
always @ (posedge tx_clk)
    ctrl <= ci0 | ci1 ;
 
// two_dff synchronizer
always @ (posedge rx_clk) begin: two_dff
    reg temp;
    temp <= ctrl;
    two_dff_sync <= temp;
end
 
// shift_reg synchronizer
always @ (posedge rx_clk) begin: shift_reg
    shift_reg_sync <= {shift_reg_sync[0], ctrl};
end
 
// reconvergence point
always @ (posedge rx_clk)
    dout <= two_dff_sync ^ shift_reg_sync[1];
 

電路如下:divergence_depth為0

6cfe82c4-d235-11ee-a297-92fbcf53809c.png

CDC報告如下:

6d390a16-d235-11ee-a297-92fbcf53809c.png

1.2Redundant

6d552d22-d235-11ee-a297-92fbcf53809c.png

案例1:

// two_dff synchronizer of tx_sig
always @ (posedge rx_clk) begin: two_dff
    reg s0 , s1;
    s0 <= tx_sig; // 1st flop
    s1 <= s0; // 2nd flop
end


// two_dff synchronizer of tx_sig
always @ (posedge rx_clk) begin: shift_reg
    reg [1:0] sh_reg;
    sh_reg?<=?{sh_reg[0],?tx_sig};
end

6d73ee6a-d235-11ee-a297-92fbcf53809c.png

1.3multi_sync_mux_select (DMUX)


MUX的sel端fan-in信號超過一組同步器,不推薦。通常MUX的sel端只能有一組同步器。

6d8c7d9a-d235-11ee-a297-92fbcf53809c.png

案例1:

always @(posedge rx_clk) begin
    reg s1_sel1, s2_sel1;
    reg [1:0] s_sel2;
    
    s1_sel1 <= tx_sel1;
    s2_sel1 <= s1_sel1;
    
    s_sel2 <= {s_sel2[0], tx_sel2};
    
    if (s_sel2[1] | s2_sel1)
????????rx_data?<=?tx_data;
end

電路如下:

6dcdb86e-d235-11ee-a297-92fbcf53809c.png

6de1f75c-d235-11ee-a297-92fbcf53809c.png

1.4combo_logic

6dfe816a-d235-11ee-a297-92fbcf53809c.png

1.4.1錯誤案列1

always @ (posedge rx_clk) begin
    s1 <= tx_sig & din;
    s2 <= s1;
end

6e14e090-d235-11ee-a297-92fbcf53809c.png

6e32bb42-d235-11ee-a297-92fbcf53809c.png


當然還有如下這種錯誤,除非additional logic全部是靜態變量。

6e43c69e-d235-11ee-a297-92fbcf53809c.png

1.5async_reset_no_sync(異步復位、同步撤離)

1.5.1案列1

// Reset triggered by tx_clk
always @(posedge tx_clk)
tx_sig <= rst;
 
// Unsynchronized reset used in
// Rx domain
always @(posedge rx_clk,negedge tx_sig)
if?(!tx_sig)?rx_sig?<=?1’b0;
else rx_sig <= din;

6e6eb8f4-d235-11ee-a297-92fbcf53809c.png

6e7adbc0-d235-11ee-a297-92fbcf53809c.png

1.5.2錯誤案列2

// Reset triggered by tx_clk
always @(posedge tx_clk)
tx_sig <= rst;
// Improperly synchronized reset used
// in Rx domain
always @(posedge rx_clk,negedge tx_sig)
if (!tx_sig) rx_reset <= 1’b0;
else rx_reset <= 1’b1;

6e8b1e72-d235-11ee-a297-92fbcf53809c.png

6e9edb42-d235-11ee-a297-92fbcf53809c.png

正確的結構如下:

6ec33690-d235-11ee-a297-92fbcf53809c.png

1.6dff_sync_gated_clk

6ed294c8-d235-11ee-a297-92fbcf53809c.png

案列1,與門做時鐘gating有毛刺,需要clock gating cell。

// gated clock expression
assign gclk = rx_clk & clk_en;
always @(posedge gclk)
    sync1 <= tx_sig; // 1st DFF
always @(posedge rx_clk)
    sync2 <= sync1; // 2nd DFF

6edc718c-d235-11ee-a297-92fbcf53809c.png

6eeb849c-d235-11ee-a297-92fbcf53809c.png

1.7fanin_different_clks


同步器的輸入由兩個異步時鐘域的組合邏輯構成,如下圖所示:(還有combo logic)

6efecb88-d235-11ee-a297-92fbcf53809c.png

值得注意的是,如果sig_a或者sig_b中有一個信號是stable靜態變量,那么上圖結構的電路就不會被報fanin_different_clks或者combo_logic錯誤。

假設有sig_a、sig_b、sig_c三個信號及以上的fan_in呢?拋開靜態變量后,

若所有信號都是同一個時鐘域,CDC錯誤類型就是combo_logic;

若所有信號來自至少2個時鐘域,CDC錯誤類型就是fanin_different_clks;

舉個例子,如下圖:

6f34134c-d235-11ee-a297-92fbcf53809c.png

上圖電路仍會報fanin_different_clks,但是電路確實是設計者的意圖,我們只需要將TEST時鐘域的test_sel設置為常數0即可。

1.7.1案列1

always @ (posedge tx1_clk)
    tx1_sig <= in1;
always @ (posedge tx2_clk)
    tx2_sig <= in2;
always @ (posedge rx_clk) begin
    sync0 <= tx1_sig | tx2_sig;
    sync1 <= sync0;
end

6f490ad6-d235-11ee-a297-92fbcf53809c.png

6f5a6ea2-d235-11ee-a297-92fbcf53809c.png





審核編輯:劉清

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

    關注

    68

    文章

    19160

    瀏覽量

    229115
  • 芯片設計
    +關注

    關注

    15

    文章

    1001

    瀏覽量

    54811
  • CDC
    CDC
    +關注

    關注

    0

    文章

    57

    瀏覽量

    17770
  • 異步電路
    +關注

    關注

    2

    文章

    48

    瀏覽量

    11088
  • 靜態變量
    +關注

    關注

    0

    文章

    13

    瀏覽量

    6643

原文標題:芯片設計之CDC異步電路(五)

文章出處:【微信號:全棧芯片工程師,微信公眾號:全棧芯片工程師】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    FPGA User Guidereport_cdc

    report_cdc 可以報告設計中所有的 cdc 路徑并將其分類(前提是時鐘被約束好),我們可以基于該報告來檢查設計中是否有不安全的 cdc 路徑。
    發表于 11-28 10:53 ?1180次閱讀

    分析單元電路放大電路的特點及其功能作用

    一個復雜電路圖是由很多個單元電路組合實現的。 掌握單元電路分析方法,就能夠看懂整個電路圖。 本文我們將
    發表于 02-20 09:19 ?1881次閱讀
    <b class='flag-5'>分析</b>單元<b class='flag-5'>電路</b><b class='flag-5'>之</b>放大<b class='flag-5'>電路</b>的特點及其功能作用

    異步時序邏輯電路

    異步時序邏輯電路:本章主要從同步時序邏輯電路異步時序邏輯電路狀態改變方式不同的特殊性出發, 系統的介紹
    發表于 09-01 09:12 ?0次下載

    《新編印制電路板故障排除手冊》

    《新編印制電路板故障排除手冊》,下來看看
    發表于 01-12 12:39 ?0次下載

    如何使用report_cdc命令分析、調試和修復CDC問題

    了解如何使用命令report_cdc分析,調試和修復設計中的CDC問題。 命令report_cdc是一個僅限TCL的命令,用于分析您的設計
    的頭像 發表于 11-21 06:05 ?4693次閱讀

    ic設計——CDC的基本概念

    一個系統中往往會存在多個時鐘,這些時鐘之間有可能是同步的,也有可能是異步的。如果一個系統中,異步時鐘之間存在信號通道,則就會存在CDC(clock domain crossing)問題。在下面的文章里,我們將會討論
    發表于 01-04 16:59 ?1.5w次閱讀
    ic設計——<b class='flag-5'>CDC</b>的基本概念

    電路理論的基礎知識正弦穩態電路分析

    電路理論的基礎知識正弦穩態電路分析
    發表于 01-13 13:53 ?0次下載

    電路分析基礎第章正弦電路的穩態分析課件下載

    電路分析基礎第章正弦電路的穩態分析課件下載
    發表于 02-11 09:09 ?0次下載

    要實現CDC驗證標準,ASIC開發團隊將會面臨哪些挑戰

    在多個第三方IP核、外部接口和低功耗設計驅動下,數十億門級的專用集成電路(ASIC)已具備幾十甚至數百個異步時鐘域,而要解決跨時鐘域(CDC)問題,RTL仿真和靜態時序分析(STA)都
    的頭像 發表于 03-21 12:12 ?1853次閱讀

    ASIC/FPGA設計中的CDC問題分析

    CDC(不同時鐘之間傳數據)問題是ASIC/FPGA設計中最頭疼的問題。CDC本身又分為同步時鐘域和異步時鐘域。這里要注意,同步時鐘域是指時鐘頻率和相位具有一定關系的時鐘域,并非一定只有頻率和相位相同的時鐘才是同步時鐘域。
    的頭像 發表于 05-12 15:29 ?1685次閱讀

    芯片設計模擬IC設計全流程分析

     射頻芯片作為模擬電路王冠上的明珠,一直被認為是芯片設計中的“華山巔”。一方面因為射頻電路的物理形狀和周圍介質分布會對射頻信號的傳輸造成很
    發表于 01-09 14:07 ?6213次閱讀

    XDC約束技巧CDC

    上一篇《XDC 約束技巧之時鐘篇》介紹了 XDC 的優勢以及基本語法,詳細說明了如何根據時鐘結構和設計要求來創建合適的時鐘約束。我們知道 XDC 與 UCF 的根本區別之一就是對跨時鐘域路徑(CDC
    的頭像 發表于 04-03 11:41 ?2000次閱讀

    PyTorch教程13.2異步計算

    電子發燒友網站提供《PyTorch教程13.2異步計算.pdf》資料免費下載
    發表于 06-05 14:46 ?0次下載
    PyTorch教程13.2<b class='flag-5'>之</b><b class='flag-5'>異步</b>計算

    PyTorch教程19.3異步隨機搜索

    電子發燒友網站提供《PyTorch教程19.3異步隨機搜索.pdf》資料免費下載
    發表于 06-05 10:43 ?0次下載
    PyTorch教程19.3<b class='flag-5'>之</b><b class='flag-5'>異步</b>隨機搜索

    芯片設計進階之路—SpyGlass CDC流程深入理解

    隨著技術的發展,數字電路的集成度越來越高,設計也越來越復雜。很少有系統會只工作在同一個時鐘頻率。一個系統中往往會存在多個時鐘,這些時鐘之間有可能是同步的,也有可能是異步的。如果一個系統中,異步時鐘之間存在信號通道,則就會存在
    發表于 06-21 10:54 ?1.7w次閱讀
    <b class='flag-5'>芯片</b>設計進階之路—SpyGlass <b class='flag-5'>CDC</b>流程深入理解