Verilog 实现CDC中单bit 跨时钟域,从慢时钟域到快时钟域

news2024/11/18 3:20:16

单bit 跨时钟域,从慢时钟域到快时钟域

    • 1,首先,了解一些问题
    • 2,RTL代码设计
    • 3,testbench测试代码
    • 4,RTL代码和testbench综合的电路原理图
    • 5,前仿真,验证![在这里插入图片描述](https://img-blog.csdnimg.cn/adf0a6ae5ee047abaca98f8deb6ed97e.png)

参考文献1,我的专栏,多bitMUX同步器
参考文献2,本文主要参考

1,首先,了解一些问题

(1)怎么进行跨时钟域的处理? 打两拍进行同步。
(2)同步前后时钟域的快慢延伸出了两种情况:
1,先快后慢;确保在快时钟域内能采样到值,本题解决这个问题。
2,先慢后快;

怎么将信号从快时钟域同步到慢时钟域呢?
答:将一个脉冲信号展宽为电平信号,让一个很短的脉冲信号变成一个很长的电平信号,就可以实现被快时钟域采样到。为了实现这个目的,我们在慢时钟域重新通过组合逻辑设计寄存器外围电路,这里我们使用异或门来进行展宽。

区分电平同步、脉冲同步、边沿同步。
电平同步,就是正常的打两拍;
边沿同步,是在正常的打两拍的基础上,clkb时钟域用边沿检测电路处理一下 output信号,让这个信号保证为一个周期。
脉冲同步,是指在clka时钟域将脉冲信号处理成电平信号,再进行打两拍,再重复边沿同步的边沿检测电路的操作。

2,RTL代码设计


// 单bit 跨时钟域,从慢时钟域到快时钟域
module one_bit_cdc(
data, clka, clkb, rst_n, data_out
);
input  data;
input  clka;
input  clkb;
input  rst_n;

output data_out;

reg data_r;
reg [1:0] data_b_r;

always@(posedge clka or negedge rst_n)
   if(!rst_n)
       data_r <= 0;
   else 
       data_r <= data;

// 打两拍,解决亚稳态
always@(posedge clkb or negedge rst_n)
   if(!rst_n)
       data_b_r <= 0;
   else 
       begin
       	    data_b_r[0] <= data_r;
       	    data_b_r[1] <= data_b_r[0];
       end

assign data_out = data_b_r[1];

endmodule

3,testbench测试代码


// 单bit 测试信号
module one_bit_cdc_tb;
reg  data;
reg  clka;
reg  clkb;
reg  rst_n;

wire data_out;

always #20  data = $random;

always #10   clka = ~clka;   // 时钟  周期20
always #4    clkb = ~clkb;   // 时钟  周期8   

initial begin
	  rst_n = 0;  clka = 1; clkb = 1;
#15;  rst_n = 1;
end

one_bit_cdc uu(
.data(data),
.clka(clka),
.clkb(clkb),
.rst_n(rst_n),
.data_out(data_out)
);

endmodule

4,RTL代码和testbench综合的电路原理图

在这里插入图片描述

5,前仿真,验证在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/29977.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于某些地区延期举办2022年11月27日 PMI认证考试等有关事项的通知

22年.11月22日通知&#xff1a; 关于成都等六个地区延期举办2022年11月27日 PMI认证考试等有关事项的通知 尊敬的考生&#xff1a; 受近日疫情影响&#xff0c;结合当地疫情防控规定和活动举办要求&#xff0c;成都、武汉、西安、昆明、银川、长春地区现不满足组织2022年11月…

A. The Enchanted Forest(思维)

Problem - 1687A - Codeforces 玛丽莎来到魔法森林采摘蘑菇。 魔法森林可以用X轴上编号为1到n的n个点来表示。在玛丽莎开始之前&#xff0c;她的朋友帕秋莉用魔法检测了每个点上的蘑菇的初始数量&#xff0c;用a1,a2,...,an表示。 玛丽莎可以在第0分钟时从森林的任何一点开始…

Allegro如何输出IDF文件操作指导

Allegro如何输出IDF文件操作指导 Allegro支持输出IDF文件,用于导入结构软件中检查和查看,具体操作如下 点击File-export-IDF 会弹出一个对话框,file name type选择IDF 然后点击export,输出IDF文件,文件已经输出 This section is describe what the function allegro h…

项目管理工具需要具备的五点功能

将新产品推向市场是有益的&#xff0c;但也具有挑战性。从一个概念到成功发布的过程涉及很多事情。在产品开发过程中&#xff0c;许多内部团队都参与了将概念推向市场的工作。例如&#xff0c;设计团队、工程团队和营销团队都在这个生命周期中发挥作用。协调时间表、阶段和可交…

【Vue】组件化和声明周期函数

1. 组件化 组件化就是指一个后台我们将它的各个部分拆分成各个组件&#xff0c;比如 csdn 的上边栏、右侧广告区等都可以是组件&#xff0c;组件可以复用。Vue 的一个好处就是组件化。 <!DOCTYPE html> <html lang"en"> <head><meta charset&…

【云原生】Docker的数据卷、数据卷容器,容器互联

内容预知 1.数据卷&#xff08;容器与宿主机之间数据共享&#xff09; 2. 数据卷容器&#xff08;容器与容器之间数据共享&#xff09; 3. 容器互联&#xff08;使用centos镜像&#xff09; 3.1 实现容器互联 3.2 只通过IP进行通信 总结 1.数据卷&#xff08;容器与宿主…

视频编解码 - 帧间预测

目录 帧间预测 块大小 参考帧和运动矢量 运动矢量 运动搜索 1、全搜索算法 2、钻石搜索算法&#xff08;菱形搜索算法&#xff09; 3、六边形搜索算法 搜索起始点的确定 快速搜索与全搜索的优缺点 非整像素的处理 亚像素差值 亚像素精度运动搜索 运动矢量预测 S…

双十二蓝牙耳机哪款好?双十二平价蓝牙耳机推荐

对于许多人来说&#xff0c;音乐即是生活良药&#xff0c;带给我们生活、工作和学习的动力&#xff0c;若想要随时随地都能来上一剂&#xff0c;那么买到一款划算平价的真无线蓝牙耳机便是优秀的选择。 一、南卡小音舱蓝牙耳机 蓝牙&#xff1a;5.3 延迟&#xff1a;45ms 发…

npm、yarn到pnpm的发展历程

npm、yarn到pnpm的发展历程背景价值点npm发展及存在的问题npm v1&#xff08;树状结构&#xff09;安装原则优点不足&#xff1a;npm v3&#xff08;扁平化结构&#xff09;安装原则优点&#xff1a;不足&#xff1a;目录结构不确定依赖A先安装依赖A后安装npm v5优点npm包分身定…

mysql全文索引

引用&#xff1a;https://www.cnblogs.com/miracle-luna/p/11147859.html MySQL 5.7.6之前只支持英文全文索引&#xff0c;不支持中文全文索引&#xff0c;&#xff0c;需要利用分词器把中文段落预处理 拆分成单词&#xff0c;&#xff0c;然后存入数据库 MySQL 5.7.6 开始&am…

FSK/OOK 调制单发射芯片CMT2119A-ESR/CMT2119B-EQR

FSK/OOK 调制单发射芯片CMT2119A-ESR/CMT2119B-EQR CMT2119A 是 HopeRF 旗下CMOSTEK 无线产品线 FSK/OOK 调制单发射芯片&#xff0c;CMT2219A 则是与之对应的 FSK/OOK 调制单接收芯片&#xff0c;均支持 Sub-1G 应用无线发射芯片CMT2119A主要应用&#xff1a; 无线遥控开关、…

接口设计与优化

文章目录接口的注意事项获取对象的属性或方法&#xff0c;先 判断对象是否为空&#xff01;修改老接口&#xff0c;思考接口的兼容性重点接口&#xff0c;考虑线程池隔离调用第三方接口考虑超时、重试接口的熔断、降级接口&#xff0c;需要考虑限流接口要打印好日志接口考虑热点…

ETF动量轮动+RSRS择时,RSRS修正标准分,回撤降至16%

原创文章第113篇&#xff0c;专注“个人成长与财富自由、世界运作的逻辑&#xff0c; AI量化投资”。 昨天的策略我是比较满意的&#xff0c;沿着进化的方向在迭代我们的策略。ETF轮动RSRS择时&#xff0c;加上卡曼滤波&#xff1a;年化48.41%&#xff0c;夏普比1.89 我们会持…

Linux从入门到精通(十)——进程管理

文章篇幅较长&#xff0c;建议先收藏&#xff0c;防止迷路 文章跳转Linux从入门到精通&#xff08;八&#xff09;——Linux磁盘管理goLinux从入门到精通&#xff08;九&#xff09;——Linux编程goLinux从入门到精通&#xff08;十&#xff09;——进程管理goLinux从入门到精…

Go Web项目 接口开发全流程

风离不摆烂学习日志 Day5 — Go Web项目 接口开发全流程 接上篇地址 Web项目学习之项目结构 routes包分析 InitRoutes package routesimport ("fmt""github.com/gin-gonic/gin""go-web-mini/common""go-web-mini/config""go-we…

Charles断点

1、断点测试的含义 1.1、断点&#xff08;英语&#xff1a;Breakpoint&#xff09;是程序中为了调试而故意停止或者暂停的地方。 调试设置断点&#xff1a;可以让程序运行到该行程序时停住&#xff0c;借此观察程序到断点位置时&#xff0c;其变量、寄存器、I/O等相关的变量内…

mysql InnoDB 索引结构

目录 前言 1. InnoDB常见的索引 2. B树索引 2.1 二分查找法 2.2 二叉查找树 2.3 平衡二叉树 2.4 B树索引 2.5 B树索引 2.5.1 聚集索引 2.5.2 非聚集索引 2.5.3 聚集索引与非聚集索引区别 前言 索引的本质是让mysql以最高效、扫描行数最少的方式找到需要的数据。索引…

Paper写作怎么了解题目方面的重要性?

我们常听到&#xff1a;Paper的好坏&#xff0c;从选择题目开始&#xff01;可见选择Paper题目的重要性。这正是我们今天要探讨的内容。 We often hear that the quality of paper starts from choosing the topic!This shows the importance of selecting paper topics.This i…

数字信号处理-9-离散余弦变换

1 波形合成 假定给一系列振幅和一系列频率&#xff0c;要求构建一个信号&#xff0c;此信号是这些频率元素的和。这样的操作就是合成 def synthesize(amps, fs, ts):"""amps 振幅数组fs 频率数组ts 采样时间点"""# ts 和 fs 的外积&#xff0c…

Spring Cloud(十三):Spring 扩展

Spring扩展点 Bean的生命周期中的BeanPostProcessor扩展点Spring扩展点梳理 Spring扩展点应用场景 整合Nacos 服务注册 ApplicationListener扩展场景——监听容器中发布的事件Lifecycle Nacos 发布订阅 & Eureka 服务启动、同步、剔除Lifecycle扩展场景——管理具有启动、停…