电平同步

电平同步一般用于由慢时钟域向快时钟域传输单bit信号,具体方法也很简单,就是打两拍

如上图所示,慢时钟域CLOCK1的单bit信号经过慢时钟打一拍后(这很重要),输出到快时钟域,快时钟域通过DFF打两拍,得到同步后的单bit信号。
核心代码

logic a_ff1;
logic a_ff2;
always@(posedge clkb,negedge rst_n)
if(~rst_n){a_ff2,a_ff1}<=2'b00;
else{a_ff2,a_ff1}<={a_ff1,a};

边沿同步

即检测边沿,边沿同步具有以下两个特点:
1、适用于慢到快时钟(同电平同步)
2、使得输出的脉冲宽度和第二个时钟的宽度一致
核心代码

logic a_ff3;
logic a_ff2;
logic a_ff1;
always@(posedge clk2,negedge rst_n)
if(~rst_n){a_ff3,a_ff2,a_ff1}<=3'b000;
else{a_ff3,a_ff2,a_ff1}<={a_ff2,a_ff1,a};
assign up_edge=a_ff2&~a_ff3;   //检测上升沿
assign down_edge=~a_ff2&a_ff3; //检测下降沿
assign edge=a_ff2^a_ff3;       //检测跳变沿

脉冲同步

脉冲同步,即从快时钟域取出一个单时钟宽度脉冲,在慢时钟域建立新的单时钟宽度脉冲。具有以下两个特点:
1、可以实现快到慢时钟域
2、输入脉冲的最小间隔必须等于两个新时钟的时钟周期。
下面是脉冲同步电路的示意图

代码如下:

`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2022/03/18 21:37:17
// Design Name:
// Module Name: demo
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//module demo
(input logic clka,           //快时钟input logic clkb,           //慢时钟input logic rst,input logic pulse_a,        //快时钟域脉冲output logic pulse_b
);logic data_a;                //电平信号
logic a_ff1;
logic a_ff2;
logic a_ff3;
//data_a
always_ff@(posedge clka,posedge rst)
if(rst)data_a<=0;
else data_a<=data_a^pulse_a;                //也可以改为当检测到pulse_a脉冲时,data_a翻转
//
always_ff@(posedge clkb,posedge rst)
if(rst){a_ff3,a_ff2,a_ff1}<=0;
else{a_ff3,a_ff2,a_ff1}<={a_ff2,a_ff1,data_a};
//
assign pulse_b=a_ff2^a_ff3;
endmodule

仿真波形

从上图中可以看到,当两个脉冲的间隔小于两个clkb周期时,会发生混叠,而间隔大于两个clkb周期时,能够正确检测。这也是脉冲同步法的一个缺陷。
另一个快时钟域到慢时钟域的方法是将信号展宽,例如,clka=10ns,clkb=25ns,那么我们需要将clka展宽三倍,才能保证被clkb采样到,具体的做法如下:

logic a_ff1;
logic a_ff2;
always@(posedge clka,posedge rst)
if(rst){a_ff2,a_ff1}<=2'b00;
else{a_ff2,a_ff1}<={a_ff1,a};
assign wide_a=a|a_ff1|a_ff2;

但是这种方法仅限于两个时钟速度相差不是很大的情况下,因此也有局限性。
当然,当这两种方法都不太奏效时,最万能的方法就是通过握手来进行快时钟域到慢时钟域的单bit信号同步。

【数字IC/FPGA】电平同步、脉冲同步、边沿同步相关推荐

  1. 跟sky学数字IC/FPGA设计学习培训课程:全集已出

    经过2年的努力,数字IC设计前端/FPGA设计培训课程已经录制完毕.并在腾讯课堂收到很多支持和点赞. 授课理念: verilog只是语言,表达的是"思想"(硬件俗称Architec ...

  2. 数字IC/FPGA设计面试与工作_sky

    请问:对于找工作刷题,怎么看? 热身有必要,但是规劝一句:题目是刷不完的.面试通过了,后面还得再工作15年.你咋刷? 得想的长远些.做题不是终点.刷题,面试为了啥? 建议刷题是补充,平时多积累数字IC ...

  3. 数字IC/FPGA设计之——学习路径

    对于在校生或刚学习数字IC/FPGA设计的小伙伴来说,通常迷惑于一个问题:这个方向需要掌握哪些基础知识,学习路径是什么样的? 面对网上各种公众号,知乎分享,应该怎么学习呢? SiliconThink( ...

  4. 数字IC/FPGA 秋招知识点不全面整理

    1. 引言 这篇文章的由来 秋招的时候,刚开始复习一些知识点的时候没有什么思路,只是盲目的看相关的书籍和资料,结果是留在脑子中的知识很有限,而且不够系统,在我需要它的时候,并不能很快的回忆起来. 于是 ...

  5. 数字IC/FPGA设计第一大群(超1600+),群主电子科大06级师兄

    06级师兄于2019年2月创建了一个QQ群(877205676),交流数字IC(目前集中于前端设计)/FPGA设计经验,大家相互解答各种小白的入门问题. 经过2年的发展,已经有1600+成员. 各位师 ...

  6. 数字IC/FPGA面试笔试准备(自用填坑中)

    文章目录 前言 常见的IC问题 数字电路基础问题 Verilog & SV 跨时钟域信号处理类 CRG 同步与异步复位 综合与时序分析类 低功耗方法 STA(静态时序分析) RTL设计(包含手 ...

  7. 2020数字IC/FPGA资料总结

    本人本硕仪器出身,秋招成功跨行,通过学习这些资料,拿到了联发科.紫光展锐.瑞芯微.兆芯.恩智浦和海思的offer.个人觉得这些资料总结的很好,很有意义,适合备战秋招.有问题欢迎沟通交流. 公众号:达尔 ...

  8. 数字IC/FPGA推荐书籍

    以下书籍全部为个人备战秋招时阅读过的,重点推荐第一本,只知道FPGA不知道数字IC,可以好好读读这本书,能学到很多,面试前我都会翻一翻. 超大规模集成电路系统导论--逻辑.电路与系统设计 高性能FPG ...

  9. 【数字IC/FPGA】门控时钟

    门控时钟介绍 功耗是芯片设计中非常重要的一个指标,研究表明,在芯片功耗的组成中,有高达40%甚至更多是由时钟树消耗掉的.这个结果的原因也很直观,因为这些时钟树在系统中具有最高的切换频率,而且有很多时钟 ...

最新文章

  1. Kettle提高表输出写入速度(每秒万条记录)
  2. java mqtt paho_使用eclipse paho在java端实现MQTT消息的收发(客户端与服务端实例)...
  3. Markdown学习测试
  4. Python 之网络编程基础
  5. 精通ASP.NET MVC ——属性路由
  6. Windows7查看无线网络密码
  7. Centos 6.4 开启 VNC
  8. linux脚本中sed -i,Linux Shell 脚本之sed命令详解
  9. 服务器虚拟机解锁苹果,Unlocker(VMware虚拟机MacOS系统解锁工具)v3.0.2 免费版-ucbug软件站...
  10. 罗马数字java代码实现_6.2 罗马数字转整数
  11. 金融市场一周简报(2017-08-18)
  12. 三维匹配_倾斜影像和近景影像空地融合精细化实景三维建模
  13. 阿里云腾讯云服务器安装oracle11g
  14. 阿里云ECS CentOS 7 安装图形化桌面
  15. MIC灵敏度, MIC动态范围下限值估计, -3dB, dB加减
  16. [解题报告]11689 - Soda Surpler
  17. 突破无人驾驶量产瓶颈,威蓝科技利用仿真测试降本增效
  18. 【报告分享】中国互联网经济白皮书3.0-BCG阿里研究院(附下载)
  19. 学生硬件电路设计经验教训浅谈
  20. java 星期一_用java写一个月有多少个星期一,并且显示出

热门文章

  1. 与第三方Api接口对接需要注意的点
  2. torch.meshgrid 使用探究
  3. 应用程序正常初始化 0xc015002 失败
  4. ETABS结构指标查看
  5. 手机投屏不是全屏怎么办_手机、电脑投屏怎么全屏
  6. 打印服务器spoolsv服务自动停止
  7. An internal error occurred during: Fetching child
  8. 电脑上PDF文档怎么做笔记?
  9. 关于.aspx与.aspx.cs的关系
  10. c盘java文件误删_清理C盘误删的文件怎么恢复