跨时钟域传输处理

跨时钟域传输处理面临的基本问题:消除亚稳态

1.打两拍

`timescale 1ns/1ns
module odd_sel(
input clk,
input rst_n,
input reg d,
output q
);

reg  reg_r1;

reg  reg_r2;

always@(posedge clk or negedge rst_n)
begin
    if(!rst)
    begin
        d      <= 1'b0;
        reg_r1 <= 1'b0;
        reg_r2 <= 1'b0;
    end    
    else
        {reg_r2,reg_r1} <= {reg_r1,d};

end
endmodule

2.异步FIFO(多bit)

FIFO的英文全称是First In First Out,即先进先出。FPGA使用的FIFO一般指的是对数据的存储具有先进先出特性的一个缓存器,常被用于数据的缓_存,或者高速异步数据的交互也即所谓的跨时钟域信号传递。它与FPGA内部的RAM和ROM的区别是没有外部读写地址线,采取顺序写入数据,顺序读出数据的方式,使用起来简单方便,由此带来的缺点就是不能像RAM和ROM那样可以由地址线决定读取或写入某个指定的地址。

标准的FIFO是延迟一个时钟传输数据,经验来看,FIFO初始化时最好打十拍。

 3.格雷码

这里不展开讨论,有需要的可以百度,主要还是用于消除亚稳态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值