单比特跨时钟
- 题目描述: 两个时钟域传单bit数据,输入data_in持续一个cycle(单脉冲信号),要求输出data_out一个cycle(也是单脉冲信号)。两个时钟域的时钟是任意的。
单比特跨时钟方法
(1)慢到快
- 两级寄存器
- 边沿检测
- 握手处理
(2)快到慢
- 电平拓展
- 脉冲同步器
- 握手处理
分析
由于本题并没有说明是快时钟到慢时钟还是慢时钟到快时钟,因此可以采用通用的处理方法——握手处理。
-
verilog代码
-
仿真结果
- 仿真结果分析:在clk1时钟域中,当检测到脉冲信号data_in时将data_en拉高,并在clk2时钟域对data_en进行打两拍的跨时钟域处理,对data_en2做上升沿检测,同时将data_en2再反馈到clk1时钟域做跨时钟域处理当检测到data_fd2时将data_en拉低。