1 FPGA跨时钟域处理方法(一)-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA跨时钟域处理方法(一)

CHANBAEK 来源:FPGA自学笔记分享 作者:FPGA自学笔记分享 2023-05-25 15:06 次阅读

时钟域是FPGA设计中最容易出错的设计模块,而且一旦跨时钟域出现问题,定位排查会非常困难,因为跨时钟域问题一般是偶现的,而且除非是构造特殊用例一般的仿真是发现不了这类问题的。

优秀的FPGA工程,系统工程师一定会进行合理的时钟域划分,理想的情况是整个工程只有一个时钟,完全不考虑跨时钟域的问题,但是实际的工程中一般是不存在的,因此合理的跨时钟域设计是很有必要的。

图片

单bit慢变信号跨时钟域方法:

1、信号展宽

图片

2、跨时钟打两拍

3、取沿

图片

// ============================================================
// File Name: cm_cdc_1bit
// VERSION  : V1.0
// DATA     : 2022/9/28
// Author   : FPGA干货分享
// ============================================================
// 功能:单bit慢变信号跨时钟域模块
// ============================================================




`timescale 1ns/1ps
module cm_cdc_1bit (
    input wire      I_clk_a     , ///输入时钟a
    input wire      I_clk_b     , ///输入时钟b
    input wire      I_single_a  , ///a时钟输入信号
    output reg      O_single_b    ///b时钟输出信号
    );


// ============================================================
// 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时钟域
// ============================================================


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


///跨时钟域之前先扩展
always @(posedge I_clk_a)
    S_clr_flag_a_all <= I_single_a|S_clr_flag_a_d0|S_clr_flag_a_d1 ;


// ============================================================
// b时钟域
// ============================================================
///使用第二个时钟进行打拍
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


//打两拍之后的信号进行处理
always @(posedge I_clk_b)
    O_single_b <= (!S_clr_flag_b_d2)&(S_clr_flag_b_d1);




endmodule

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21729

    浏览量

    602960
  • FPGA设计
    +关注

    关注

    9

    文章

    428

    浏览量

    26505
  • 信号
    +关注

    关注

    11

    文章

    2789

    浏览量

    76727
  • bit
    bit
    +关注

    关注

    0

    文章

    48

    浏览量

    32008
  • 时钟域
    +关注

    关注

    0

    文章

    52

    浏览量

    9535
收藏 人收藏

    评论

    相关推荐

    FPGA设计中解决时钟的三大方案

    时钟处理FPGA设计中经常遇到的问题,而如何处理
    的头像 发表于 11-21 11:13 3862次阅读
    <b class='flag-5'>FPGA</b>设计中解决<b class='flag-5'>跨</b><b class='flag-5'>时钟</b><b class='flag-5'>域</b>的三大方案

    关于时钟信号的处理方法

    我在知乎看到了多bit信号时钟的问题,于是整理了下自己对于时钟信号的
    的头像 发表于 10-09 10:44 6152次阅读

    如何处理FPGA设计中时钟问题?

    时钟处理FPGA 设计中经常遇到的问题,而如何处理
    发表于 09-22 10:24

    探寻FPGA中三种时钟处理方法

    时钟处理FPGA 设计中经常遇到的问题,而如何处理
    发表于 10-20 09:27

    三种时钟处理方法

      时钟处理FPGA设计中经常遇到的问题,而如何处理
    发表于 01-08 16:55

    FPGA初学者的必修课:FPGA时钟处理3大方法

    时钟处理FPGA设计中经常遇到的问题,而如何处理
    发表于 03-04 09:22

    如何处理FPGA设计中时钟间的数据

    时钟处理FPGA设计中经常遇到的问题,而如何处理
    发表于 07-29 06:19

    FPGA时钟处理简介

    (10)FPGA时钟处理1.1 目录1)目录2)FPGA简介3)Verilog HDL简介4
    发表于 02-23 07:47

    FPGA界最常用也最实用的3种时钟处理方法

    时钟处理FPGA设计中经常遇到的问题,而如何处理
    发表于 11-15 20:08 1.4w次阅读

    揭秘FPGA时钟处理的三大方法

    时钟处理FPGA 设计中经常遇到的问题,而如何处理
    的头像 发表于 12-05 16:41 1641次阅读

    介绍3种方法时钟处理方法

    时钟处理FPGA设计中经常遇到的问题,而如何处理
    的头像 发表于 09-18 11:33 2.2w次阅读
    介绍3种<b class='flag-5'>方法</b><b class='flag-5'>跨</b><b class='flag-5'>时钟</b><b class='flag-5'>域</b><b class='flag-5'>处理</b><b class='flag-5'>方法</b>

    (10)FPGA时钟处理

    (10)FPGA时钟处理1.1 目录1)目录2)FPGA简介3)Verilog HDL简介4
    发表于 12-29 19:40 7次下载
    (10)<b class='flag-5'>FPGA</b><b class='flag-5'>跨</b><b class='flag-5'>时钟</b><b class='flag-5'>域</b><b class='flag-5'>处理</b>

    SpinalHDL里用于时钟处理些手段方法

    个做数字逻辑的都绕不开时钟处理,谈谈SpinalHDL里用于
    的头像 发表于 07-11 10:51 1857次阅读

    三种时钟处理方法

    时钟处理FPGA设计中经常遇到的问题,而如何处理
    的头像 发表于 10-18 09:12 7749次阅读

    FPGA时钟处理方法(二)

    篇文章已经讲过了单bit时钟处理方法,这次解说
    的头像 发表于 05-25 15:07 1021次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>跨</b><b class='flag-5'>时钟</b><b class='flag-5'>域</b><b class='flag-5'>处理</b><b class='flag-5'>方法</b>(二)