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

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

    关注

    6748

    文章

    2907

    浏览量

    220811
  • 计数器
    +关注

    关注

    32

    文章

    2325

    浏览量

    98771
  • 时钟域
    +关注

    关注

    0

    文章

    53

    浏览量

    10089

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    浏览器窗口通信技术调研:window.open 与 postMessage

    浏览器窗口通信技术调研:window.open 与 postMessage 本调研定位 :以 2aran.com 调研文章一键分发到 syncblog.cn 内容同步页 为具体案例,解释浏览器
    的头像 发表于 05-23 00:58 144次阅读

    英诺达ECDC上线RDC复位检查新功能

    英诺达自主研发的静态验证系列产品EnAltius昂屹CDC(ECDC),近日正式上线了复位(Reset Domain Crossing, RDC)检查新功能,其静态验证EDA工具链得以进一步完善,为芯片设计团队提供更严谨、更高效的RTL签核整体解决方案。
    的头像 发表于 04-21 09:34 342次阅读

    为何复位问题是危险的“芯片杀手”

    在追求更高性能、更低功耗的当今芯片设计中,工程师们除了要应对复杂的时钟网络,还面临着一个同样关键却常被忽视的挑战——复位信号的管理,这就是复位(Reset Domain Crossing, 简称
    的头像 发表于 04-13 15:35 319次阅读
    为何<b class='flag-5'>跨</b>复位<b class='flag-5'>域</b>问题是危险的“芯片杀手”

    使用PYTHON进行的平台仿真

    如何使用编程语言Python来调用和控制VirtualLab Fusion中的模拟。请查看下面链接的文档,以找到关于如何设置和使用Python和VirtualLab Fusion之间的接口的详细指南,以及一个
    发表于 04-02 08:21

    ONET8541T:11.3 Gbps限幅阻放大器的详细解析

    ONET8541T:11.3 Gbps限幅阻放大器的详细解析 在高速光通信领域,一款性能卓越的阻放大器至关重要。今天我们就来深入探讨德州仪器(TI)的ONET8541T,这是一款具备接收
    的头像 发表于 12-24 10:10 612次阅读

    SysClk系统时钟的切换

    系统时钟 SysClk 可选择 5 种时钟源,包括 HSE、LSE、PLL、HSI、LSI,通过对系统控制寄存器 SYSCTRL_CR0的 SYSCLK 位进行设置,可在不同时钟源之
    发表于 12-16 08:00

    什么是位

    数据结构,称为“位”或“位段”。 所谓“位”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。 每个有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字
    发表于 12-15 08:07

    如何降低系统时钟频率?

    使用低频率的高速时钟 HSI、HSE 或低速时钟 LSI、LSE 通过编程预分频寄存器,降低 SYSCLK、HCLK、PCLK 的频率 - 设置 SYSCTRL_CR0 寄存器的 SYSCLK 位
    发表于 12-10 07:34

    关于六类网线一些问题的解答

    今天我们就围绕网友一些常见的关于六类网线的问题进行一下汇总式解答: 问 六类网线可以当电源用吗? 答 六类网线并不是设计用于传输电力的电缆,因此一般不建议将其用于电源传输。 尽管六类网线的线芯可以
    的头像 发表于 12-09 11:13 889次阅读

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

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

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

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

    关于太阳光模拟器的常见问题解答(一)

    太阳光模拟器是研究与测试中不可或缺的核心设备,其性能直接关系到数据的准确性与可靠性。为帮助大家更深入地理解其工作原理与选型要点,下文,紫创测控Luminbox梳理了关于太阳光模拟器的高频疑问以及解答
    的头像 发表于 10-15 18:04 733次阅读
    <b class='flag-5'>关于</b>太阳光模拟器的常见问题<b class='flag-5'>解答</b>(一)

    时钟设计优化实战

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

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

    上海2025年7月21日 /美通社/ -- 本文围绕时间同步技术展开,作为智能汽车 "感知-决策-执行 -交互" 全链路的时间基准,文章介绍了 PTP、gPTP、CAN 等主流同步技术及特点
    的头像 发表于 07-22 09:17 752次阅读
    黑芝麻智能<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