我是靠谱客的博主 高挑小白菜,最近开发中收集的这篇文章主要介绍FPGA设计过程中的心得总结与经验一、跨时钟域处理二、时钟上升沿/下降沿,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、跨时钟域处理

在进行FPGA设计过程中,经常会遇到跨时钟域问题,若由快时钟域向慢时钟域进行转换时,需先把快时钟域的信号进行拉长处理,再进行慢时钟域的跨越,处理方法如下:

usr_clk_w 频率 > sclk 频率

reg f_start = 0;

reg [2:0] f_start_cnt;


always @(posedge usr_clk_w)

begin

    if(frame_start)

        f_start <= 1;

    else if(f_start_cnt == 3'd3)

        f_start <= 0;

    else

        f_start <= f_start;

end


always @(posedge usr_clk_w)

begin

    if(frame_start)

        f_start_cnt <= 0;

    else if(f_start_cnt == 3'd3)

        f_start_cnt <= 0;

    else if(f_start)

        f_start_cnt <= f_start_cnt + 1;

    else

        f_start_cnt <= f_start_cnt;

end



reg f_start_dly1;

reg f_start_dly2;

wire  fs_start;

always @(posedge sclk)

begin

    f_start_dly1 <= f_start;

    f_start_dly2 <= f_start_dly1;

end
      
assign  fs_start =   f_start_dly1 && (!f_start_dly2); 

二、时钟上升沿/下降沿

在设计中,如非必要,最好不要使用时钟下降沿触发的设计方法,原因有以下几个方面:

1.大多数FPGA里面的Flip Flops资源都是上升沿触发的,如果在Verilog代码采用下降沿触发的话 ,综合的时候会在CLK输入信号前面综合出一个反相器,这个反相器会对时钟信号的质量产生影响。

2.集成电路设计的书中有对晶振的描述,外部晶振产生的时钟信号上升沿的时间几乎是一样的,但是每个周期的下降沿的时间却无法保证完全一致,这与工艺有很大关系,所以采用下降沿触发有可能存在风险。

 

最后

以上就是高挑小白菜为你收集整理的FPGA设计过程中的心得总结与经验一、跨时钟域处理二、时钟上升沿/下降沿的全部内容,希望文章能够帮你解决FPGA设计过程中的心得总结与经验一、跨时钟域处理二、时钟上升沿/下降沿所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部