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

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

    关注

    6678

    文章

    2466

    浏览量

    205634
  • 计数器
    +关注

    关注

    32

    文章

    2276

    浏览量

    95106
  • 时钟域
    +关注

    关注

    0

    文章

    52

    浏览量

    9586

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    混合示波器的原理和应用

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

    在不同时钟下,多片ADS131E08如何实现不间断的同步采集?

    如题,在不同时钟下,多片ADS131E08如何实现不间断的同步采集?
    发表于 12-05 08:10

    一文解析时钟传输

    一、单比特CDC传输1.1 慢到快 快时钟相比慢时钟采样速度更快,也就是说从慢时钟来到快
    的头像 发表于 11-16 11:55 761次阅读
    一文解析<b class='flag-5'>跨</b><b class='flag-5'>时钟</b><b class='flag-5'>域</b>传输

    京准时钟科普:关于北斗卫星同步时钟的那些事?

    京准时钟科普:关于北斗卫星同步时钟的那些事?
    的头像 发表于 10-29 09:28 391次阅读
    京准<b class='flag-5'>时钟</b>科普:<b class='flag-5'>关于</b>北斗卫星同步<b class='flag-5'>时钟</b>的那些事?

    关于\"OPA615\"的SOTA的导大小的疑问求解

    关于OPA615的SOTA部分,看datasheet的page9的figure22,我们可以知道导大小大概是35mA/V左右,并且可以知道其Chold输出一般在5mA以内,但是我从社区里面找到
    发表于 09-13 06:25

    关于UCC25640x LLC谐振控制器的常见问题解答

    电子发烧友网站提供《关于UCC25640x LLC谐振控制器的常见问题解答.pdf》资料免费下载
    发表于 09-04 09:37 0次下载
    <b class='flag-5'>关于</b>UCC25640x LLC谐振控制器的常见问题<b class='flag-5'>解答</b>

    OPA376能用来做阻抗放大电路吗?

    来做阻抗放大电路吗?我们公司都是用了这个芯片做这个电路。 2、10nA的小信号需要用到RF=100Mohm才能达到需要的电压输出要求,请问CF应该设计成多少? 3、RF和CF是用贴片元器件的好,还是用插件元器件好?这个对电路有影响吗? 以上请帮忙解答。谢谢!
    发表于 08-16 06:18

    极限失控的大模型使电力系统面临的攻击风险及应对措施

    分析大规模生成式预训练模型(以下简称为大模型)发生极限失控、使电力系统面临的攻击风险及相关的应对措施,以期引起业内对这一风险的重视、讨论与行动。基于大模型的现状、发展趋势以及它与人工智能反叛之间
    发表于 07-22 12:09 0次下载

    单芯片运行六个操作系统,芯驰科技交卷融合

    关于智能汽车的整车架构如何发展,行业内已经达成了三步走的共识。过去汽车行业采用的是分布式的计算架构,目前正迈入更加集成化的融合阶段,而对于未来的设想则是实现中央计算。
    的头像 发表于 05-09 15:17 607次阅读

    航盛与高通发布全新一代墨子舱驾融合平台

    在2024年的北京国际汽车展览会上,深圳市航盛电子股份有限公司携手高通技术公司,共同发布了全新一代墨子舱驾融合平台。该平台是基于高通技术公司领先的Snapdragon Ride™ Flex SoC(SA8775P)研发的,针对中央计算舱驾融合域控制器系统进行了深度设计
    的头像 发表于 05-07 10:31 702次阅读

    利用LWIP实现的Web server,如何修改响应报文中HTTP header里面的Access-Control-Allow-Origin的值?

    请求。 注:通过不在同一个下浏览器页面,给跑着lwip-httpServer的板子发送get请求,会涉及到问题,需要改变响应HTTP header里面的Access-Contr
    发表于 04-30 06:54

    黑芝麻智能与斑马智行达成单芯片融合平台项目合作

    第十八届北京国际汽车展览会如火如荼进行中。4月26日,黑芝麻智能参展期间再度公布产业链新伙伴,与斑马智行达成单芯片融合平台项目合作。
    的头像 发表于 04-26 18:16 730次阅读

    介绍一个IC设计错误案例:可读debug寄存器错误时钟

    本文将介绍一个时钟错误的案例如图所示,phy_status作为一个多bit的phy_clk时钟的信号,需要输入csr模块作为一个可读状态寄存器
    的头像 发表于 03-11 15:56 619次阅读
    介绍一个IC设计错误案例:可读debug寄存器错误<b class='flag-5'>跨</b><b class='flag-5'>时钟</b>

    联合电子推出面向融合的新一代整车运动域控制器VCU8.6平台

    3月3日,联合电子官微发布,推出面向融合的新一代整车运动域控制器VCU8.6平台。
    的头像 发表于 03-04 09:52 2315次阅读
    联合电子推出面向<b class='flag-5'>跨</b><b class='flag-5'>域</b>融合的新一代整车运动域控制器VCU8.6平台