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

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

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

FPGA跨時(shí)鐘域處理方法(一)

CHANBAEK ? 來源:FPGA自學(xué)筆記分享 ? 作者:FPGA自學(xué)筆記分享 ? 2023-05-25 15:06 ? 次閱讀

時(shí)鐘域是FPGA設(shè)計(jì)中最容易出錯(cuò)的設(shè)計(jì)模塊,而且一旦跨時(shí)鐘域出現(xiàn)問題,定位排查會(huì)非常困難,因?yàn)榭鐣r(shí)鐘域問題一般是偶現(xiàn)的,而且除非是構(gòu)造特殊用例一般的仿真是發(fā)現(xiàn)不了這類問題的。

優(yōu)秀的FPGA工程,系統(tǒng)工程師一定會(huì)進(jìn)行合理的時(shí)鐘域劃分,理想的情況是整個(gè)工程只有一個(gè)時(shí)鐘,完全不考慮跨時(shí)鐘域的問題,但是實(shí)際的工程中一般是不存在的,因此合理的跨時(shí)鐘域設(shè)計(jì)是很有必要的。

圖片

單bit慢變信號(hào)跨時(shí)鐘域方法:

1、信號(hào)展寬

圖片

2、跨時(shí)鐘打兩拍

3、取沿

圖片

// ============================================================
// File Name: cm_cdc_1bit
// VERSION  : V1.0
// DATA     : 2022/9/28
// Author   : FPGA干貨分享
// ============================================================
// 功能:?jiǎn)蝏it慢變信號(hào)跨時(shí)鐘域模塊
// ============================================================




`timescale 1ns/1ps
module cm_cdc_1bit (
    input wire      I_clk_a     , ///輸入時(shí)鐘a
    input wire      I_clk_b     , ///輸入時(shí)鐘b
    input wire      I_single_a  , ///a時(shí)鐘輸入信號(hào)
    output reg      O_single_b    ///b時(shí)鐘輸出信號(hào)
    );


// ============================================================
// wire reg
// ============================================================
reg          S_clr_flag_a_d0  ;
reg          S_clr_flag_a_d1  ;
reg          S_clr_flag_a_all ;


reg          S_clr_flag_b_d0  ;
reg          S_clr_flag_b_d1  ;
reg          S_clr_flag_b_d2  ;
reg          S_clr_b_posedge  ;




// ============================================================
// a時(shí)鐘域
// ============================================================


always @(posedge I_clk_a)
    begin
        S_clr_flag_a_d0 <= I_single_a;
        S_clr_flag_a_d1 <= S_clr_flag_a_d0;
    end


///跨時(shí)鐘域之前先擴(kuò)展
always @(posedge I_clk_a)
    S_clr_flag_a_all <= I_single_a|S_clr_flag_a_d0|S_clr_flag_a_d1 ;


// ============================================================
// b時(shí)鐘域
// ============================================================
///使用第二個(gè)時(shí)鐘進(jìn)行打拍
always @(posedge I_clk_b)
    begin
        S_clr_flag_b_d0 <= S_clr_flag_a_all;
        S_clr_flag_b_d1 <= S_clr_flag_b_d0 ;
        S_clr_flag_b_d2 <= S_clr_flag_b_d1 ;
    end


//打兩拍之后的信號(hào)進(jìn)行處理
always @(posedge I_clk_b)
    O_single_b <= (!S_clr_flag_b_d2)&(S_clr_flag_b_d1);




endmodule

圖片

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

    關(guān)注

    1625

    文章

    21620

    瀏覽量

    601231
  • FPGA設(shè)計(jì)
    +關(guān)注

    關(guān)注

    9

    文章

    428

    瀏覽量

    26465
  • 信號(hào)
    +關(guān)注

    關(guān)注

    11

    文章

    2773

    瀏覽量

    76538
  • bit
    bit
    +關(guān)注

    關(guān)注

    0

    文章

    47

    瀏覽量

    31966
  • 時(shí)鐘域
    +關(guān)注

    關(guān)注

    0

    文章

    51

    瀏覽量

    9524
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA設(shè)計(jì)中解決時(shí)鐘的三大方案

    時(shí)鐘處理FPGA設(shè)計(jì)中經(jīng)常遇到的問題,而如何處理
    的頭像 發(fā)表于 11-21 11:13 ?3815次閱讀
    <b class='flag-5'>FPGA</b>設(shè)計(jì)中解決<b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>的三大方案

    關(guān)于時(shí)鐘信號(hào)的處理方法

    我在知乎看到了多bit信號(hào)時(shí)鐘的問題,于是整理了下自己對(duì)于時(shí)鐘信號(hào)的
    的頭像 發(fā)表于 10-09 10:44 ?5902次閱讀

    如何處理FPGA設(shè)計(jì)中時(shí)鐘問題?

    時(shí)鐘處理FPGA 設(shè)計(jì)中經(jīng)常遇到的問題,而如何處理
    發(fā)表于 09-22 10:24

    探尋FPGA中三種時(shí)鐘處理方法

    時(shí)鐘處理FPGA 設(shè)計(jì)中經(jīng)常遇到的問題,而如何處理
    發(fā)表于 10-20 09:27

    三種時(shí)鐘處理方法

      時(shí)鐘處理FPGA設(shè)計(jì)中經(jīng)常遇到的問題,而如何處理
    發(fā)表于 01-08 16:55

    FPGA初學(xué)者的必修課:FPGA時(shí)鐘處理3大方法

    時(shí)鐘處理FPGA設(shè)計(jì)中經(jīng)常遇到的問題,而如何處理
    發(fā)表于 03-04 09:22

    如何處理FPGA設(shè)計(jì)中時(shí)鐘間的數(shù)據(jù)

    時(shí)鐘處理FPGA設(shè)計(jì)中經(jīng)常遇到的問題,而如何處理
    發(fā)表于 07-29 06:19

    FPGA時(shí)鐘處理簡(jiǎn)介

    (10)FPGA時(shí)鐘處理1.1 目錄1)目錄2)FPGA簡(jiǎn)介3)Verilog HDL簡(jiǎn)介4
    發(fā)表于 02-23 07:47

    FPGA界最常用也最實(shí)用的3種時(shí)鐘處理方法

    時(shí)鐘處理FPGA設(shè)計(jì)中經(jīng)常遇到的問題,而如何處理
    發(fā)表于 11-15 20:08 ?1.4w次閱讀

    揭秘FPGA時(shí)鐘處理的三大方法

    時(shí)鐘處理FPGA 設(shè)計(jì)中經(jīng)常遇到的問題,而如何處理
    的頭像 發(fā)表于 12-05 16:41 ?1598次閱讀

    介紹3種方法時(shí)鐘處理方法

    時(shí)鐘處理FPGA設(shè)計(jì)中經(jīng)常遇到的問題,而如何處理
    的頭像 發(fā)表于 09-18 11:33 ?2.2w次閱讀
    介紹3種<b class='flag-5'>方法</b><b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b><b class='flag-5'>處理</b><b class='flag-5'>方法</b>

    (10)FPGA時(shí)鐘處理

    (10)FPGA時(shí)鐘處理1.1 目錄1)目錄2)FPGA簡(jiǎn)介3)Verilog HDL簡(jiǎn)介4
    發(fā)表于 12-29 19:40 ?7次下載
    (10)<b class='flag-5'>FPGA</b><b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b><b class='flag-5'>處理</b>

    SpinalHDL里用于時(shí)鐘處理些手段方法

    個(gè)做數(shù)字邏輯的都繞不開時(shí)鐘處理,談談SpinalHDL里用于
    的頭像 發(fā)表于 07-11 10:51 ?1769次閱讀

    三種時(shí)鐘處理方法

    時(shí)鐘處理FPGA設(shè)計(jì)中經(jīng)常遇到的問題,而如何處理
    的頭像 發(fā)表于 10-18 09:12 ?7477次閱讀

    FPGA時(shí)鐘處理方法(二)

    篇文章已經(jīng)講過了單bit時(shí)鐘處理方法,這次解說
    的頭像 發(fā)表于 05-25 15:07 ?960次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b><b class='flag-5'>處理</b><b class='flag-5'>方法</b>(二)