Verilog之CDC 跨时钟域

张开发
2026/4/16 1:02:13 15 分钟阅读

分享文章

Verilog之CDC 跨时钟域
跨时钟单 bit 两级同步多 bit 格雷码 FIFO窄脉冲转电平1.单比特两级同步器reg q1,q2;always(posedge dst_clk or negedge rst_n)beginif(!rst_n) begin q10;q20;endelse begin q1din; q2q1; endendassign dout q2;信号从慢时钟→快时钟 / 跨时钟容易亚稳态采样不稳、跳变打两拍第一拍缓存、第二拍稳定输出只适合单 bit 信号reset、req、busy不能用于多 bit 数据会乱码2.格雷码转换格雷码特点每次只变 1bit多 bit 跨时钟FIFO 读写指针用格雷码 两级同步杜绝多 bit 同时翻转导致亚稳态报错//如下二进制转格雷码assign wr_gray (wr_ptr 1) ^ wr_ptr;//空读写指针完全相同//满最高2位相反其余位相同3.窄脉冲跨时钟防丢脉冲短脉冲只维持 1 个时钟直接同步会丢先在源时钟把脉冲变成「电平翻转」-// 源时钟脉冲转电平翻转always(posedge src_clk) if(pulse_in) toggle ~toggle;目的时钟同步后检测边沿还原脉冲always(posedge dst_clk){s1,s2} {toggle,s1};assign pulse_out s1 ^ s2;用途中断脉冲、握手短信号跨域

更多文章