0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于跨时钟域的详细解答

FPGA之家 来源:似猿非猿的FPGA 作者:似猿非猿的FPGA 2021-04-27 10:52 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

每一个做数字逻辑的都绕不开跨时钟域处理,谈一谈SpinalHDL里用于跨时钟域处理的一些手段方法。

打拍处理 跨时钟域信号的打拍处理往往用于单比特信号或类似于格林码这种信号的跨时钟域处理。其逻辑电路很简单。SpinalHDL提供了BufferCC用于实现这种跨时钟域打拍处理方式:

BufferCC(input: T, init: T = null, bufferDepth: Int = 2)

bufferDepth可用于指定打拍级数。input信号的时钟域为源时钟域,BUfferCC调用的地方的时钟域为目的时钟域。 在日常的电路设计里,计数器是常见的DFX信号,有些情况下需要将一个时钟域的DFX信号转换到另一个时钟域进行HPI读取,这种情况也可以通过打拍进行处理,不过前提是需转换成格林码,如此在源时钟域和目的时钟域需分别做一次转换与反转换。但如果计数器采用格林码进行计数则可以少进行一次转换。SpinalHDL有提供一个GrayCounter方法用于生成格林码计数器:

GrayCounter(width: Int, enable: Bool)

提供一个小demo,GtayCounter+BufferCC:

f4efce9e-a67e-11eb-aece-12bb97331649.png

这里GrayCounter在时钟域clkA中实现,通过BufferCC将其跨时钟域至clkB,bufferDepth为3.Tips:BufferCC的第二个参数init数据类型是T,而T《:Data,即意味着init数据类型为“硬件”数据类型,因而上面init赋值需为U(0,8 bits)而不能直接写0》》脉冲信号处理 脉冲信号的跨时钟域处理,SpinalHDL提供了PulseCCByToggle方法:

PulseCCByToggle(input: Bool,clockIn: ClockDomain,clockOut: ClockDomain): Bool

握手处理

对于吞吐要求不是特别高的场合,跨时钟域信号采用握手形式 进行处理也是一种不错的选择。SpinalHDL有两个抽象类型个人一直很喜欢:Stream,Flow。这两种形式基本囊括了所有的信号交互行为,其也可以说是SpinalHDL lib库的基石。针对跨时钟域的握手处理,SpinalHDL有一个StreamCCByToggle可以使用:

StreamCCByToggle(input: Stream[T], inputClock: ClockDomain, outputClock: ClockDomain): Stream[T]

其输入参数包含源时钟域信号,源时钟域,目的时钟域,其返回一个目的时钟域的Stream信号:

f54fad50-a67e-11eb-aece-12bb97331649.png

这里srcIn隶属于时钟域clkA,destOut隶属于时钟域clkB。 除了StreamCCByToggle,SpinalHDL里还有一个FlowCCByToggle。由于Flow类型没有反压,因而从低时钟域向高时钟域进行传输则没什么问题,但从高时钟域向低时钟域进行转换则存在丢失数据的风险。》》FIFO跨时钟域缓存 对于高吞吐的多比特信号跨时钟域处理,则往往采用FIFO的形式进行处理。在SpinalHDL里则有StreamFifoCC供使用:

val myFifo = StreamFifoCC( dataType = Bits(8 bits), depth = 128, pushClock = clockA, popClock = clockB)myFifo.io.push 《《 streamAmyFifo.io.pop 》》 streamB
编辑:lyn

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电路设计
    +关注

    关注

    6732

    文章

    2576

    浏览量

    217991
  • 计数器
    +关注

    关注

    32

    文章

    2306

    浏览量

    97573
  • 时钟域
    +关注

    关注

    0

    文章

    53

    浏览量

    9993

原文标题:跨时钟域那点事儿

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    航盛电子搭载QNX技术的墨子融合平台正式量产

    近日,航盛创新引领行业的单芯片级舱驾融合解决方案--墨子融合平台实现全球量产首发,并将配套国内某头部合资车企。该平台搭载QNX Hypervisor for Safety技术,具备更强的稳定性、灵活性和安全性,实现车规级设计与功能安全、网络信息安全要求,为消费者带来舱
    的头像 发表于 12-04 15:19 173次阅读

    黑芝麻智能武当C1200家族作为计算芯片的核心突破

    本文围绕汽车电子电气架构(EEA)向中央计算演进的技术需求,分析分布式、集中架构的碎片化、间壁垒等痛点,重点阐述武当 C1200 家族作为计算芯片的核心突破:7nm 异构融合架
    的头像 发表于 11-20 16:38 1010次阅读

    时钟设计优化实战

    1、时钟设计,芯片性能的节拍器 在现代 IC 设计中,时钟网络的优化是实现高性能、高可靠性和低功耗的关键。本文聚焦四大核心技术:CTS 优化、DCD 最小化、时钟门控和时钟
    的头像 发表于 10-09 10:07 290次阅读

    手机板 layout 走线分割问题

    初学习layout时,都在说信号线不可分割,但是在工作中为了成本不能分割似乎也非绝对。 在后续工作中,分割的基础都是相邻层有一面完整的GND参考,分割发生在相邻的另外一层。 但
    发表于 09-16 14:56

    黑芝麻智能时间同步技术:消除多计算单元的时钟信任鸿沟

    上海2025年7月21日 /美通社/ -- 本文围绕时间同步技术展开,作为智能汽车 "感知-决策-执行 -交互" 全链路的时间基准,文章介绍了 PTP、gPTP、CAN 等主流同步技术及特点
    的头像 发表于 07-22 09:17 413次阅读
    黑芝麻智能<b class='flag-5'>跨</b><b class='flag-5'>域</b>时间同步技术:消除多<b class='flag-5'>域</b>计算单元的<b class='flag-5'>时钟</b>信任鸿沟

    PTR54L15蓝牙模组的引脚规划——电源

    更加的强大,使用上也有些不同,关于这个模组的引脚该如何规划使用呢,现在我们来说下电源: “电源”是芯片的一部分,可以独立开机或关机以优化能耗 引脚规划需注意,PTR54L15架构分 MCU、无线电、外设、低功耗四个电源
    发表于 06-25 19:13

    异步时钟处理方法大全

    该方法只用于慢到快时钟的1bit信号传递。在Xilinx器件中,可以使用(* ASYNC_REG = "TRUE" *)标记,将两个寄存器尽量靠近综合,降低 亚稳态因导线延迟太大而传播到第二个寄存器的可能性。
    的头像 发表于 05-14 15:33 1282次阅读
    <b class='flag-5'>跨</b>异步<b class='flag-5'>时钟</b><b class='flag-5'>域</b>处理方法大全

    航盛电子推出基于高通和QNX技术的全新一代墨子舱驾融合平台

    for Safety开发的全球首创单芯片级舱驾融合解决方案--墨子融合平台。该平台集成了信息娱乐系统、数字仪表盘、L2+级辅助驾驶功能,以及由GPT技术驱动的下一代语音助手等功能。
    的头像 发表于 04-30 09:52 1858次阅读

    RISC-V核低功耗MCU动态时钟门控技术解析

    机制‌ 时钟动态隔离‌ 通过硬件级时钟门控电路,按任务需求实时关闭空闲模块(如未使用的UART、SPI外设)的时钟信号,降低动态功耗。例如,当通信接口处于闲置状态时,自动切断其
    的头像 发表于 04-24 15:11 846次阅读

    是德示波器混合测试应用

    应用中表现卓越。本文将详细介绍是德示波器的混合测试能力,及其在通信、汽车电子、物联网等领域的广泛应用,助您洞察未来技术趋势。 随着电子系统的复杂性日益增加,传统的单一测试方法已难以满足现代工程师的需求。是德示波器的混合测试功
    的头像 发表于 02-22 11:18 675次阅读

    常见问题解答:低压运算放大器

    本应用笔记解答了一些关于低压运算放大器的常见问题。
    的头像 发表于 02-21 14:10 880次阅读
    常见问题<b class='flag-5'>解答</b>:低压运算放大器

    探索对抗训练的概率分布偏差:DPA双概率对齐的通用自适的目标检测方法

    ://arxiv.org/abs/2412.11443 代码地址: https://github.com/WeitaiKang/SegVG/tree/main ▲ 图1. UniDAOD任务示例 (通用目标
    的头像 发表于 01-15 13:45 1174次阅读
    探索对抗训练的概率分布偏差:DPA双概率对齐的通用<b class='flag-5'>域</b>自适的目标检测方法

    求助,关于ADS58C20使用问题求解答

    关于ADS58C20使用问题,情况如下: 1,供电正常 2,配置信息配置后 读取正确 3,参考时钟(PIN30,31)的vcm 0.9v 没有电压,芯片端管脚 对地电阻无穷大 ,导致参考时钟进不去
    发表于 01-10 07:10

    TSP研究:车内网联服务向融合、全场景融合、舱驾融合方向拓展

    的数据采集与供应,进而为车主提供更加多样化服务。其服务内容涵盖导航服务、社交服务、娱乐服务、远程保养服务、安全服务等。 来源:公开资料 随着融合、舱驾融合等趋势的演进,TSP供应商也在悄然进步,从纯车内网联服务应用向
    的头像 发表于 01-06 09:40 2097次阅读
    TSP研究:车内网联服务向<b class='flag-5'>跨</b><b class='flag-5'>域</b>融合、全场景融合、舱驾融合方向拓展

    混合示波器的原理和应用

    混合示波器是一种集示波器和频谱仪于一体的革新性测试仪器,其原理和应用可以详细阐述如下:一、原理 组成:混合示波器主要由模拟部分和数字部分组成,同时还包含专门用于射频(RF)信号处理的通道。模拟
    发表于 12-27 15:54