《硬件架构的艺术》第3章精华梳理

本文介绍了硬件架构中时钟关系及其面临的亚稳态问题,重点探讨了处理技术,包括时钟命名规则和分模块设计。针对跨时钟域信号传输,提出了握手信号方法和FIFO解决方案,详细分析了同步和异步FIFO的设计原理及优缺点,强调了在设计中避免亚稳态和数据不连贯的重要性。
摘要由CSDN通过智能技术生成

1. 时钟关系

  1. 频率不同
  2. 频率相同,相位不同
    在这里插入图片描述

2. 面临问题

  1. su和hold违背
  2. 亚稳态
    在这里插入图片描述

3. 处理技术

3.1 时钟命名规则

为了保证综合脚本可以使用通配符来对所有时钟进行操作。
在同步时钟中,可以用以下的命名规则:系统时钟 sys_clk、发送时钟 tx_clk、接受时钟 rx_clk。
不同步时钟中,一个时钟域的信号应该有同样的前缀,比如系统时钟驱动的信号:sys_rom_addr、sys_rom_data。

3.2 分模块设计

  1. 每个模块只在单独的clk下工作
  2. 跨时钟域的信号经过额外的同步模块,将信号传到现在的时钟域,详见第4节。
  3. 同步器模块尽量小,不一定要太多级数(简单的同步器就是两级reg,来存并且稳定数据
    在这里插入图片描述

4 跨时钟域信号传输

  1. 控制信号(同步器)
    控制信号直接传输可能会导致多个并行触发器进入亚稳态,常用的解决方法是多级同步器(两级及以上)
    在这里插入图片描述
    只有在时钟频率非常高的设计中才要求使用三级同步器电路,一般两级即可。
    缺点:增加了电路整体delay
  2. 数据信号(①握手信号; ②异步FIFO)

5 跨同步时钟域问题

起源于同一时钟的多个时钟,相位和频率之间的关系是固定的,可以分为以下类型:

5.1 同频0相位差clk(单时钟设计)

(个人理解同频是period一致)
进行STA分析就可以保证数据正确传输
在这里插入图片描述

5.2 同频恒定相位差clk(反相clk or 对上级clk相位移动)

delay约束会变紧,保证组合逻辑的延时满足su和hold即可
在这里插入图片描述

5.3 非同频、可变相位差clk(整数 or 有理数倍时钟)

a. 整数倍时钟
时钟最小相位差=频率较快的时钟period,快时钟传输数据,且满足最小相位差下的su/hold,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值